[svn:parrot] r48298 - in branches/gc_massacre: . compilers/imcc compilers/opsc compilers/opsc/src/Ops compilers/opsc/src/Ops/Trans compilers/pct/src/PAST compilers/pct/src/POST compilers/pirc/src config/auto config/gen config/gen/makefiles config/gen/platform/ansi config/gen/platform/darwin config/gen/platform/generic config/gen/platform/netbsd config/gen/platform/openbsd config/gen/platform/solaris config/init docs docs/book/pir docs/pdds docs/pdds/draft docs/project docs/resources editor examples/compilers examples/embed examples/io examples/languages/squaak examples/languages/squaak/doc examples/languages/squaak/src examples/languages/squaak/src/Squaak examples/languages/squaak/src/builtins examples/languages/squaak/src/parser examples/pir ext/Parrot-Embed/lib/Parrot ext/nqp-rx/src/stage0 include/parrot include/parrot/oplib lib/Parrot lib/Parrot/Configure/Options/Conf lib/Parrot/Docs lib/Parrot/Docs/Section lib/Parrot/Harness lib/Parrot/Pmc2c lib/Parrot/Pmc2c/PMC lib/Parrot/Test/Util lib/Pod/Simple ports/cygwin ports/debian ports/debian/patches ports/fedora/2.3.0 ports/fedora/2.6.0 ports/suse/2.2.0 ports/suse/2.5.0 runtime/parrot/library runtime/parrot/library/LWP runtime/parrot/library/URI src src/call src/dynoplibs src/dynpmc src/interp src/io src/nci src/ops src/packfile src/pmc src/runcore src/string src/string/charset t/codingstd t/compilers/imcc/syn t/compilers/pct t/configure t/dynoplibs t/dynpmc t/examples t/library t/native_pbc t/oo t/op t/pir t/pmc t/postconfigure t/src t/steps/auto t/steps/gen t/steps/init t/tools t/tools/pmc2cutils tools/dev tools/util
bacek at svn.parrot.org
bacek at svn.parrot.org
Tue Aug 3 22:27:24 UTC 2010
Author: bacek
Date: Tue Aug 3 22:27:14 2010
New Revision: 48298
URL: https://trac.parrot.org/parrot/changeset/48298
Log:
Merge branch 'master' into gc_massacre
Conflicts:
MANIFEST
config/gen/makefiles/root.in
src/call/context_accessors.c
src/gc/gc_private.h
src/pmc/imageio.pmc
Added:
branches/gc_massacre/compilers/opsc/README.pod
branches/gc_massacre/examples/languages/squaak/src/Squaak/
branches/gc_massacre/examples/languages/squaak/src/Squaak/Actions.pm
branches/gc_massacre/examples/languages/squaak/src/Squaak/Compiler.pm
branches/gc_massacre/examples/languages/squaak/src/Squaak/Grammar.pm
branches/gc_massacre/examples/languages/squaak/src/Squaak/Runtime.pm
branches/gc_massacre/examples/languages/squaak/src/squaak.pir
branches/gc_massacre/include/parrot/namespace.h
- copied, changed from r47995, branches/gc_massacre/include/parrot/global.h
branches/gc_massacre/ports/debian/patches/04_fix_opsc_man.patch
branches/gc_massacre/ports/fedora/2.6.0/
branches/gc_massacre/ports/fedora/2.6.0/parrot.desk.in.tar.gz
- copied, changed from r47995, branches/gc_massacre/ports/fedora/2.3.0/parrot.desk.in.tar.gz
branches/gc_massacre/ports/fedora/2.6.0/parrot.spec
- copied, changed from r47995, branches/gc_massacre/ports/fedora/2.3.0/parrot.spec
branches/gc_massacre/ports/suse/2.5.0/
branches/gc_massacre/ports/suse/2.5.0/parrot.diff
branches/gc_massacre/ports/suse/2.5.0/parrot.spec
- copied, changed from r47995, branches/gc_massacre/ports/suse/2.2.0/parrot.spec
branches/gc_massacre/runtime/parrot/library/URI/
branches/gc_massacre/runtime/parrot/library/URI/Escape.pir
branches/gc_massacre/src/namespace.c
- copied, changed from r47995, branches/gc_massacre/src/global.c
branches/gc_massacre/src/pmc/bytebuffer.pmc
branches/gc_massacre/t/dynoplibs/io-old.t
branches/gc_massacre/t/library/uri_escape.t
branches/gc_massacre/t/oo/objects.t
- copied, changed from r47995, branches/gc_massacre/t/pmc/objects.t
branches/gc_massacre/t/pir/timer_exit.t
branches/gc_massacre/t/pmc/bytebuffer.t
branches/gc_massacre/t/tools/parrot_config.t
Deleted:
branches/gc_massacre/config/gen/platform/darwin/memalign.c
branches/gc_massacre/config/gen/platform/generic/memalign.c
branches/gc_massacre/examples/languages/squaak/src/builtins/say.pir
branches/gc_massacre/examples/languages/squaak/src/parser/actions.pm
branches/gc_massacre/examples/languages/squaak/src/parser/grammar.pg
branches/gc_massacre/include/parrot/global.h
branches/gc_massacre/ports/fedora/2.3.0/parrot.desk.in.tar.gz
branches/gc_massacre/ports/fedora/2.3.0/parrot.patch
branches/gc_massacre/ports/fedora/2.3.0/parrot.spec
branches/gc_massacre/ports/suse/2.2.0/parrot.diff
branches/gc_massacre/ports/suse/2.2.0/parrot.spec
branches/gc_massacre/src/global.c
branches/gc_massacre/t/pmc/objects.t
branches/gc_massacre/tools/dev/pprof2cg.nqp
Modified:
branches/gc_massacre/.gitignore
branches/gc_massacre/CREDITS
branches/gc_massacre/ChangeLog
branches/gc_massacre/DEPRECATED.pod
branches/gc_massacre/MANIFEST
branches/gc_massacre/MANIFEST.SKIP
branches/gc_massacre/MANIFEST.generated
branches/gc_massacre/NEWS
branches/gc_massacre/PBC_COMPAT
branches/gc_massacre/README
branches/gc_massacre/VERSION
branches/gc_massacre/compilers/imcc/pbc.c
branches/gc_massacre/compilers/opsc/src/Ops/Op.pm
branches/gc_massacre/compilers/opsc/src/Ops/Trans/C.pm
branches/gc_massacre/compilers/pct/src/PAST/Compiler.pir
branches/gc_massacre/compilers/pct/src/PAST/Node.pir
branches/gc_massacre/compilers/pct/src/POST/Node.pir
branches/gc_massacre/compilers/pirc/src/bcgen.c
branches/gc_massacre/compilers/pirc/src/pircapi.c
branches/gc_massacre/config/auto/icu.pm
branches/gc_massacre/config/gen/config_pm.pm
branches/gc_massacre/config/gen/core_pmcs.pm
branches/gc_massacre/config/gen/makefiles/editor.in
branches/gc_massacre/config/gen/makefiles/root.in
branches/gc_massacre/config/gen/opengl.pm
branches/gc_massacre/config/gen/platform.pm
branches/gc_massacre/config/gen/platform/ansi/dl.c
branches/gc_massacre/config/gen/platform/ansi/exec.c
branches/gc_massacre/config/gen/platform/ansi/time.c
branches/gc_massacre/config/gen/platform/generic/dl.c
branches/gc_massacre/config/gen/platform/generic/env.c
branches/gc_massacre/config/gen/platform/generic/exec.c
branches/gc_massacre/config/gen/platform/generic/math.c
branches/gc_massacre/config/gen/platform/generic/stat.c
branches/gc_massacre/config/gen/platform/generic/time.c
branches/gc_massacre/config/gen/platform/netbsd/math.c
branches/gc_massacre/config/gen/platform/openbsd/math.c
branches/gc_massacre/config/gen/platform/solaris/math.c
branches/gc_massacre/config/gen/platform/solaris/time.c
branches/gc_massacre/config/init/defaults.pm
branches/gc_massacre/docs/book/pir/ch04_variables.pod
branches/gc_massacre/docs/book/pir/ch07_objects.pod
branches/gc_massacre/docs/embed.pod
branches/gc_massacre/docs/parrothist.pod
branches/gc_massacre/docs/pdds/draft/pdd06_pasm.pod
branches/gc_massacre/docs/pdds/draft/pdd11_extending.pod
branches/gc_massacre/docs/pdds/pdd27_multiple_dispatch.pod
branches/gc_massacre/docs/pdds/pdd28_strings.pod
branches/gc_massacre/docs/project/release_manager_guide.pod
branches/gc_massacre/docs/project/support_policy.pod
branches/gc_massacre/docs/resources/parrot.css
branches/gc_massacre/editor/README.pod
branches/gc_massacre/editor/filetype_parrot.vim
branches/gc_massacre/editor/mk_skeleton.pir
branches/gc_massacre/examples/compilers/japhc.c
branches/gc_massacre/examples/embed/cotorra.c
branches/gc_massacre/examples/io/http.pir
branches/gc_massacre/examples/io/httpd.pir
branches/gc_massacre/examples/languages/squaak/MAINTAINER
branches/gc_massacre/examples/languages/squaak/README
branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_1.pod
branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_2.pod
branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_3.pod
branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_4.pod
branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_5.pod
branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_6.pod
branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_7.pod
branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_8.pod
branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_9.pod
branches/gc_massacre/examples/languages/squaak/setup.pir
branches/gc_massacre/examples/languages/squaak/squaak.pir
branches/gc_massacre/examples/pir/make_hello_pbc.pir
branches/gc_massacre/ext/Parrot-Embed/lib/Parrot/Embed.xs
branches/gc_massacre/ext/nqp-rx/src/stage0/HLL-s0.pir
branches/gc_massacre/ext/nqp-rx/src/stage0/NQP-s0.pir
branches/gc_massacre/ext/nqp-rx/src/stage0/P6Regex-s0.pir
branches/gc_massacre/ext/nqp-rx/src/stage0/Regex-s0.pir
branches/gc_massacre/ext/nqp-rx/src/stage0/nqp-setting.nqp
branches/gc_massacre/include/parrot/call.h
branches/gc_massacre/include/parrot/context.h
branches/gc_massacre/include/parrot/dynext.h
branches/gc_massacre/include/parrot/extend.h
branches/gc_massacre/include/parrot/hash.h
branches/gc_massacre/include/parrot/interpreter.h
branches/gc_massacre/include/parrot/key.h
branches/gc_massacre/include/parrot/oplib.h
branches/gc_massacre/include/parrot/oplib/core_ops.h
branches/gc_massacre/include/parrot/packfile.h
branches/gc_massacre/include/parrot/parrot.h
branches/gc_massacre/include/parrot/pmc_freeze.h
branches/gc_massacre/include/parrot/runcore_api.h
branches/gc_massacre/include/parrot/warnings.h
branches/gc_massacre/lib/Parrot/Configure/Options/Conf/File.pm
branches/gc_massacre/lib/Parrot/Docs/HTMLPage.pm
branches/gc_massacre/lib/Parrot/Docs/Section/Parrot.pm
branches/gc_massacre/lib/Parrot/Harness/DefaultTests.pm
branches/gc_massacre/lib/Parrot/Install.pm
branches/gc_massacre/lib/Parrot/Manifest.pm
branches/gc_massacre/lib/Parrot/Pmc2c/PMC/Object.pm
branches/gc_massacre/lib/Parrot/Pmc2c/PMCEmitter.pm
branches/gc_massacre/lib/Parrot/Test.pm
branches/gc_massacre/lib/Parrot/Test/Util/Runloop.pm
branches/gc_massacre/lib/Pod/Simple/Search.pm
branches/gc_massacre/ports/cygwin/README
branches/gc_massacre/ports/debian/changelog
branches/gc_massacre/ports/debian/control
branches/gc_massacre/ports/debian/control.in
branches/gc_massacre/ports/debian/parrot-devel.install.in
branches/gc_massacre/ports/debian/patches/series
branches/gc_massacre/ports/debian/rules
branches/gc_massacre/runtime/parrot/library/LWP/UserAgent.pir
branches/gc_massacre/runtime/parrot/library/P6object.pir
branches/gc_massacre/runtime/parrot/library/Pg.pir
branches/gc_massacre/runtime/parrot/library/SDL.pir
branches/gc_massacre/runtime/parrot/library/distutils.pir
branches/gc_massacre/src/call/args.c
branches/gc_massacre/src/call/context.c
branches/gc_massacre/src/call/context_accessors.c
branches/gc_massacre/src/call/pcc.c
branches/gc_massacre/src/debug.c
branches/gc_massacre/src/dynext.c
branches/gc_massacre/src/dynoplibs/Rules.in
branches/gc_massacre/src/dynpmc/Defines.in
branches/gc_massacre/src/dynpmc/gziphandle.pmc
branches/gc_massacre/src/dynpmc/rational.pmc
branches/gc_massacre/src/embed.c
branches/gc_massacre/src/exceptions.c
branches/gc_massacre/src/extend.c
branches/gc_massacre/src/hash.c
branches/gc_massacre/src/hll.c
branches/gc_massacre/src/interp/inter_cb.c
branches/gc_massacre/src/interp/inter_misc.c
branches/gc_massacre/src/io/api.c
branches/gc_massacre/src/io/io_private.h
branches/gc_massacre/src/io/socket_unix.c
branches/gc_massacre/src/io/socket_win32.c
branches/gc_massacre/src/io/win32.c
branches/gc_massacre/src/key.c
branches/gc_massacre/src/library.c
branches/gc_massacre/src/multidispatch.c
branches/gc_massacre/src/nci/core_thunks.c
branches/gc_massacre/src/nci/extra_thunks.c
branches/gc_massacre/src/nci_test.c
branches/gc_massacre/src/oo.c
branches/gc_massacre/src/ops/core.ops
branches/gc_massacre/src/ops/core_ops.c
branches/gc_massacre/src/ops/experimental.ops
branches/gc_massacre/src/ops/math.ops
branches/gc_massacre/src/ops/object.ops
branches/gc_massacre/src/ops/pmc.ops
branches/gc_massacre/src/ops/var.ops
branches/gc_massacre/src/packdump.c
branches/gc_massacre/src/packfile.c
branches/gc_massacre/src/packfile/pf_items.c
branches/gc_massacre/src/packout.c
branches/gc_massacre/src/pbc_merge.c
branches/gc_massacre/src/pmc/arrayiterator.pmc
branches/gc_massacre/src/pmc/callcontext.pmc
branches/gc_massacre/src/pmc/capture.pmc
branches/gc_massacre/src/pmc/class.pmc
branches/gc_massacre/src/pmc/default.pmc
branches/gc_massacre/src/pmc/eval.pmc
branches/gc_massacre/src/pmc/filehandle.pmc
branches/gc_massacre/src/pmc/fixedintegerarray.pmc
branches/gc_massacre/src/pmc/handle.pmc
branches/gc_massacre/src/pmc/hash.pmc
branches/gc_massacre/src/pmc/hashiterator.pmc
branches/gc_massacre/src/pmc/imageio.pmc
branches/gc_massacre/src/pmc/key.pmc
branches/gc_massacre/src/pmc/lexinfo.pmc
branches/gc_massacre/src/pmc/namespace.pmc
branches/gc_massacre/src/pmc/object.pmc
branches/gc_massacre/src/pmc/oplib.pmc
branches/gc_massacre/src/pmc/orderedhashiterator.pmc
branches/gc_massacre/src/pmc/packfileconstanttable.pmc
branches/gc_massacre/src/pmc/packfilefixupentry.pmc
branches/gc_massacre/src/pmc/packfilerawsegment.pmc
branches/gc_massacre/src/pmc/parrotinterpreter.pmc
branches/gc_massacre/src/pmc/pmcproxy.pmc
branches/gc_massacre/src/pmc/resizableintegerarray.pmc
branches/gc_massacre/src/pmc/resizablepmcarray.pmc
branches/gc_massacre/src/pmc/role.pmc
branches/gc_massacre/src/pmc/scheduler.pmc
branches/gc_massacre/src/pmc/string.pmc
branches/gc_massacre/src/pmc/stringhandle.pmc
branches/gc_massacre/src/pmc/stringiterator.pmc
branches/gc_massacre/src/pmc/sub.pmc
branches/gc_massacre/src/pmc/timer.pmc
branches/gc_massacre/src/pmc/unmanagedstruct.pmc
branches/gc_massacre/src/pmc_freeze.c
branches/gc_massacre/src/runcore/main.c
branches/gc_massacre/src/runcore/profiling.c
branches/gc_massacre/src/runcore/trace.c
branches/gc_massacre/src/scheduler.c
branches/gc_massacre/src/string/api.c
branches/gc_massacre/src/string/charset/ascii.c
branches/gc_massacre/src/string/charset/binary.c
branches/gc_massacre/src/string/charset/iso-8859-1.c
branches/gc_massacre/src/string/charset/unicode.c
branches/gc_massacre/src/thread.c
branches/gc_massacre/src/utils.c
branches/gc_massacre/src/vtable.tbl
branches/gc_massacre/src/warnings.c
branches/gc_massacre/t/codingstd/c_function_docs.t
branches/gc_massacre/t/compilers/imcc/syn/regressions.t
branches/gc_massacre/t/compilers/pct/complete_workflow.t
branches/gc_massacre/t/configure/017-revision_from_cache.t
branches/gc_massacre/t/configure/018-revision_to_cache.t
branches/gc_massacre/t/configure/061-revision_from_cache.t
branches/gc_massacre/t/dynpmc/gziphandle.t
branches/gc_massacre/t/examples/pir.t
branches/gc_massacre/t/library/p6object.t
branches/gc_massacre/t/library/pcre.t
branches/gc_massacre/t/native_pbc/annotations.pbc
branches/gc_massacre/t/native_pbc/integer.pbc
branches/gc_massacre/t/native_pbc/integer_1.pbc
branches/gc_massacre/t/native_pbc/number.pbc
branches/gc_massacre/t/native_pbc/number_1.pbc
branches/gc_massacre/t/native_pbc/string.pbc
branches/gc_massacre/t/native_pbc/string_1.pbc
branches/gc_massacre/t/oo/vtableoverride.t
branches/gc_massacre/t/op/64bit.t
branches/gc_massacre/t/op/annotate-old.t
branches/gc_massacre/t/op/calling.t
branches/gc_massacre/t/op/integer.t
branches/gc_massacre/t/op/sprintf2.t
branches/gc_massacre/t/op/string.t
branches/gc_massacre/t/pir/macro.t
branches/gc_massacre/t/pmc/arrayiterator.t
branches/gc_massacre/t/pmc/capture.t
branches/gc_massacre/t/pmc/eval.t
branches/gc_massacre/t/pmc/exception.t
branches/gc_massacre/t/pmc/exceptionhandler.t
branches/gc_massacre/t/pmc/exporter.t
branches/gc_massacre/t/pmc/filehandle.t
branches/gc_massacre/t/pmc/fixedintegerarray.t
branches/gc_massacre/t/pmc/float.t
branches/gc_massacre/t/pmc/handle.t
branches/gc_massacre/t/pmc/hash.t
branches/gc_massacre/t/pmc/hashiterator.t
branches/gc_massacre/t/pmc/io.t
branches/gc_massacre/t/pmc/opcode.t
branches/gc_massacre/t/pmc/oplib.t
branches/gc_massacre/t/pmc/orderedhashiterator.t
branches/gc_massacre/t/pmc/packfile.t
branches/gc_massacre/t/pmc/resizableintegerarray.t
branches/gc_massacre/t/pmc/schedulermessage.t
branches/gc_massacre/t/pmc/sockaddr.t
branches/gc_massacre/t/pmc/stringbuilder.t
branches/gc_massacre/t/pmc/stringhandle.t
branches/gc_massacre/t/pmc/stringiterator.t
branches/gc_massacre/t/postconfigure/05-trace.t
branches/gc_massacre/t/src/embed.t
branches/gc_massacre/t/src/extend.t
branches/gc_massacre/t/steps/auto/format-01.t
branches/gc_massacre/t/steps/auto/inline-01.t
branches/gc_massacre/t/steps/auto/warnings-01.t
branches/gc_massacre/t/steps/gen/opengl-01.t
branches/gc_massacre/t/steps/init/hints-01.t
branches/gc_massacre/t/tools/pbc_disassemble.t
branches/gc_massacre/t/tools/pbc_dump.t
branches/gc_massacre/t/tools/pmc2cutils/05-gen_c.t
branches/gc_massacre/tools/dev/fetch_languages.pl
branches/gc_massacre/tools/dev/mk_inno.pl
branches/gc_massacre/tools/dev/mk_manifest_and_skip.pl
branches/gc_massacre/tools/dev/nci_thunk_gen.pir
branches/gc_massacre/tools/dev/pbc_to_exe.pir
branches/gc_massacre/tools/dev/pprof2cg.pl (contents, props changed)
branches/gc_massacre/tools/dev/vgp
branches/gc_massacre/tools/util/parrot-config.pir
branches/gc_massacre/tools/util/release.json
Modified: branches/gc_massacre/.gitignore
==============================================================================
--- branches/gc_massacre/.gitignore Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/.gitignore Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,6 +1,6 @@
# ex: set ro:
-# $Id
-# generated by tools/dev/mk_manifest_and_skip.pl Mon May 17 15:32:39 2010 UT
+# $Id: MANIFEST.SKIP 47057 2010-05-27 15:39:08Z fperrad
+# generated by tools/dev/mk_manifest_and_skip.pl Thu May 27 15:25:37 2010 UT
#
# This file should contain a transcript of the svn:ignore properties
# of the directories in the Parrot subversion repository. (Needed for
@@ -47,6 +47,10 @@
libparrot.dll
miniparrot
myconfig
+ops2c
+ops2c.c
+ops2c.pbc
+ops2c.pir
parrot
parrot-nqp
parrot-nqp.c
@@ -102,6 +106,12 @@
compilers/imcc/imcparser.c
compilers/imcc/imcparser.h
compilers/imcc/imcparser.output
+# generated from svn:ignore of 'compilers/opsc/gen/Ops/'
+compilers/opsc/gen/Ops/*.pir
+# generated from svn:ignore of 'compilers/opsc/gen/Ops/Compiler/'
+compilers/opsc/gen/Ops/Compiler/*.pir
+# generated from svn:ignore of 'compilers/opsc/gen/Ops/Trans/'
+compilers/opsc/gen/Ops/Trans/*.pir
# generated from svn:ignore of 'compilers/pct/src/PAST/'
compilers/pct/src/PAST/*.pbc
# generated from svn:ignore of 'compilers/pct/src/PCT/'
@@ -235,6 +245,8 @@
ext/Parrot-Embed/lib/Parrot/*.obj
# generated from svn:ignore of 'ext/Parrot-Embed/t/'
ext/Parrot-Embed/t/*.pbc
+# generated from svn:ignore of 'ext/nqp-rx/src/stage0/'
+ext/nqp-rx/src/stage0/nqp-setting.pir
# generated from svn:ignore of 'include/parrot/'
include/parrot/*.tmp
include/parrot/config.h
@@ -248,11 +260,6 @@
include/parrot/platform_interface.h
include/parrot/platform_limits.h
include/parrot/vtable.h
-# generated from svn:ignore of 'include/parrot/oplib/'
-include/parrot/oplib/*_ops.h
-include/parrot/oplib/*_ops_cg*.h
-include/parrot/oplib/*_ops_switch.h
-include/parrot/oplib/ops.h
# generated from svn:ignore of 'include/pmc/'
include/pmc/*.h
# generated from svn:ignore of 'lib/'
@@ -314,6 +321,8 @@
runtime/parrot/library/Getopt/Obj.pbc
# generated from svn:ignore of 'runtime/parrot/library/HTTP/'
runtime/parrot/library/HTTP/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/LWP/'
+runtime/parrot/library/LWP/*.pbc
# generated from svn:ignore of 'runtime/parrot/library/MIME/'
runtime/parrot/library/MIME/*.pbc
# generated from svn:ignore of 'runtime/parrot/library/Math/'
@@ -582,6 +591,7 @@
# generated from svn:ignore of 't/tools/'
t/tools/*.pbc
t/tools/*.pir
+t/tools/*.stdout
t/tools/pdb.t.*
t/tools/pmc2c.*.c
t/tools/pmc2c.*.dump
Modified: branches/gc_massacre/CREDITS
==============================================================================
--- branches/gc_massacre/CREDITS Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/CREDITS Tue Aug 3 22:27:14 2010 (r48298)
@@ -129,8 +129,7 @@
E: ask at develooper.com
N: Audrey Tang
-U: audreyt
-U: autrijus
+U: au
E: audreyt at audreyt.org
D: Pugs, a Perl6->Parrot implementation.
@@ -248,6 +247,7 @@
D: Range check in Env PMC
A: christoph_googleacct at mksig.org
A: christop... at mksig.org
+A: Christoph Otto
D: Pipp
E: christoph at mksig.org
@@ -402,7 +402,7 @@
N: Gerd Pokorra
E: pokorra at uni-siegen.de
-D: Release manager for 1.9.0 and 2.3.0
+D: Release manager for 1.9.0, 2.3.0 and 2.5.0
N: Goplat
D: Win98 and other fixes.
@@ -514,6 +514,10 @@
E: zhuomingliang at yahoo.com.cn
D: Bugfixes, cage cleaning
+N: John Harrison
+E: ash at greatethaninfinity.com
+U: ash_
+
N: John J. Trammell
E: trammell at el-swifto.com
D: coding standard tests
@@ -576,6 +580,7 @@
N: Julian Albo
U: NotFound
A: julianalbo
+A: julian.notfound
E: julian.notfound at gmail.com
N: Julian Fondren
@@ -1005,6 +1010,14 @@
N: Tony Payne
D: Example hanoi.pasm
+N: Tyler Curtis
+U: tcurtis
+E: tyler.l.curtis at gmail.com
+E: ekiru.0 at gmail.com
+D: PAST Optimization GSoC 2010
+A: tylercurtis
+A: ekiru
+
N: Ujwal Reddy Malipeddi
U: ujwalic
E: ujwalic at gmail.com
@@ -1032,7 +1045,8 @@
U: coke
A: wcoleda
E: will at coleda.com
-D: Tcl language (partcl), APL, website, various languages/ upkeep, misc.
+D: Tcl HLL implementation (partcl), APL, website,
+D: Release Manager, PaFo board member, curmudgeon
N: Zach Lipton
Modified: branches/gc_massacre/ChangeLog
==============================================================================
--- branches/gc_massacre/ChangeLog Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/ChangeLog Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,8 +1,16 @@
#1 $Id$
+2010.07.10 coke
+ * Released 2.6.0
+ See NEWS for more.
+
+2010.06.15 Gerd
+ * Released 2.5.0
+ See NEWS for more.
+
2010.05.18 Whiteknight
- * Released 2.4.0
- See NEWS for more
+ * Released 2.4.0
+ See NEWS for more
2010.04.20 Gerd
* Released 2.3.0
@@ -157,7 +165,7 @@
See NEWS for more.
2007.3.10 coke
- * removed parakeet
+ * removed parakeet
2007.02.22 pmichaud
* Released 0.4.9
@@ -223,7 +231,7 @@
2006.07.20 audreyt
* --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
(or some such --leo)
- (at the moment code is checking for 2.0 -- ambs)
+ (at the moment code is checking for 2.0 -- ambs)
2006.07.17 chip
partial implementation of new pdd21:
@@ -236,7 +244,7 @@
See NEWS for more.
2006.06.03 leo
- * I and N registers are never cleared to 0 / 0.0 on subroutine entry
+ * I and N registers are never cleared to 0 / 0.0 on subroutine entry
2006.05.14 leo
* Released 0.4.4
@@ -250,7 +258,7 @@
See NEWS for more.
2006.03.06 leo
- * Shifted argument type bits left by 2 according to r11754
+ * Shifted argument type bits left by 2 according to r11754
change of docs/pdds/pdd03_calling_conventions.pod
* if you are creating PASM then code needs adjustment
@@ -353,7 +361,7 @@
* the usual bug fixes and improvements
2005-03-06 leo
- * Released 0.1.2
+ * Released 0.1.2
* big rewrite of string code, not yet finished but ...
* partial implementation of a generational garbage collector
* indirect register frame addressing
@@ -368,7 +376,7 @@
* and as always a lot more
2004-10-09 leo
- * Released 0.1.1
+ * Released 0.1.1
* Need Perl 5.6 now for building
* Basic AST support, PAST file parser, bits of code generation
* BigInt PMC using GMP
@@ -398,39 +406,39 @@
* ... and a lot more
2004-02-29 leo
- * Released 0.1.0
- * "Ladies and gentlemen, I give you... objects!"
- * Huge documentation overhaul
- * More supported platforms, s. PLATFORMS
- * Basic thread support for pthread based architectures
- * Basic event handling for timers and signals including:
- * PASM callbacks for NCI (native C) functions.
- * Improved platform configuration
- * COW stacks now working, stacks code redone
- * Structure handling vastly improved
- * Random PMC and rand primitives
- * Better subroutine call syntax in PIR
- * Make PIR subroutines compliant with pdd03
- * Improved profiling (DOD, GC timings)
- * Hash code improvements, incl. random key order support
- * Experimental freeze/thaw code for some PMC types
- * IO improvements for buffered layer and Win32
- * String iterators
- * String bitwise vtables
- * Many new opcodes
- * Support for JIT, where malloced memory isn't executable
- * Priority DOD scheme for objects that need timely destruction
- * Improved bytecode loading (e.g. onLoad functions)
- * Language updates: forth, Perl6/P6C, m4
- * Libraries: Getopt_Long, SDL, Dumper, Sort
- * new JAPH examples
- * Unified imcc and parrot test handling
- * Many new tests (make test reports 1386 tests)
- * Numerous bug fixes
+ * Released 0.1.0
+ * "Ladies and gentlemen, I give you... objects!"
+ * Huge documentation overhaul
+ * More supported platforms, s. PLATFORMS
+ * Basic thread support for pthread based architectures
+ * Basic event handling for timers and signals including:
+ * PASM callbacks for NCI (native C) functions.
+ * Improved platform configuration
+ * COW stacks now working, stacks code redone
+ * Structure handling vastly improved
+ * Random PMC and rand primitives
+ * Better subroutine call syntax in PIR
+ * Make PIR subroutines compliant with pdd03
+ * Improved profiling (DOD, GC timings)
+ * Hash code improvements, incl. random key order support
+ * Experimental freeze/thaw code for some PMC types
+ * IO improvements for buffered layer and Win32
+ * String iterators
+ * String bitwise vtables
+ * Many new opcodes
+ * Support for JIT, where malloced memory isn't executable
+ * Priority DOD scheme for objects that need timely destruction
+ * Improved bytecode loading (e.g. onLoad functions)
+ * Language updates: forth, Perl6/P6C, m4
+ * Libraries: Getopt_Long, SDL, Dumper, Sort
+ * new JAPH examples
+ * Unified imcc and parrot test handling
+ * Many new tests (make test reports 1386 tests)
+ * Numerous bug fixes
2003-10-31 leo
- * Released 0.0.13
+ * Released 0.0.13
* Yep thirteen - haunted by the ghost of 0.0.12
* Build imcc as parrot
* Objects more finished
@@ -453,7 +461,7 @@
* Many new tests and fixes
2003-10-22 melvin
- * imcc moved from parrot/languages/ to parrot/
+ * imcc moved from parrot/languages/ to parrot/
2003-09-20 sfink
@@ -493,7 +501,7 @@
2003-06-14 13:50 dan
* Moved the registers out of the context structure, since they
- really aren't context
+ really aren't context
* Changed the register stack frames to hold only 16 registers
rather than 32, added half-set push and pop ops, and reworked
the full set push/pops to do two half-set push/pops. Should
@@ -506,7 +514,7 @@
* Various files
Update Yet Another copyright statements to reflect the (no longer
- so) shiny new year.
+ so) shiny new year.
2003-03-11 22:06 chip
Modified: branches/gc_massacre/DEPRECATED.pod
==============================================================================
--- branches/gc_massacre/DEPRECATED.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/DEPRECATED.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -141,12 +141,25 @@
L<https://trac.parrot.org/parrot/ticket/1655>
+=item Method is_tty in PMCs derived from Handle [eligible in 2.7]
+
+Use isatty instead.
+
+L<https://trac.parrot.org/parrot/ticket/1689>
+
=back
=head1 Opcodes
=over 4
+=item open and close opcodes will be removed [eligible in 2.7]
+
+L<https://trac.parrot.org/parrot/ticket/1697>
+
+These opcodes will be removed. The open/close methods on File or
+the FileHandle PMC should be used instead.
+
=item get_addr and set_addr [eligible in 1.5]
L<https://trac.parrot.org/parrot/ticket/218>
@@ -156,15 +169,6 @@
for Sub, Exception, and related PMC types will instead be handled by
get_label and set_label.
-=item All bitwise ops [eligible in 2.1]
-
-All bitwise ops (all ops containing C<bitwise> in their names) will be provided
-by dynops. B<NOTE>: Before removing the bitwise ops, make sure that the
-equivalent dynops are available and that the major HLLs (Rakudo, Partcl, Lua,
-etc) have switched to using them.
-
-L<https://trac.parrot.org/parrot/ticket/1260>
-
=item get_results opcode order and features [eligible in 2.1]
get_results no longer used to fetch exception object.
@@ -301,6 +305,27 @@
L<https://trac.parrot.org/parrot/ticket/1624>
+=item :main Sub behaviour and selection. [eligible in 2.7]
+
+Currently, if no :main sub is found, the first .sub in a file is used as
+main. Also, arguments are passed to the main sub regardless of the .param
+declarations in that sub.
+
+After this change, if no sub is marked with :main, an exception will be
+raised. Multiple :main declarations will be still be allowed, and all but the
+first will be ignored.
+
+This change will also force all subs, including :main, to have their
+arguments checked - to allow an arbitrary number of arguments, have
+this be the only .param declaration in the sub.
+
+ .param pmc args :slurpy
+
+
+L<https://trac.parrot.org/parrot/ticket/1033>
+L<https://trac.parrot.org/parrot/ticket/1704>
+L<https://trac.parrot.org/parrot/ticket/1705>
+
=back
=head1 Functions
@@ -319,6 +344,12 @@
L<https://trac.parrot.org/parrot/ticket/443>
+=item C<Parrot_find_global_s> and C<Parrot_store_global_s>
+
+This function is not used or tested anywhere.
+
+http://trac.parrot.org/parrot/ticket/1660
+
=item PMC Attributes Allocation Functions [experimental]
Parrot_gc_allocate_pmc_attributes
@@ -348,6 +379,12 @@
L<https://trac.parrot.org/parrot/ticket/1628>
+=item Parrot_get_runtime_prefix [eligible in 2.7]
+
+Use Parrot_get_runtime_path instead.
+
+L<https://trac.parrot.org/parrot/ticket/1191>
+
=back
=head1 Compiler tools
@@ -390,13 +427,22 @@
L<https://trac.parrot.org/parrot/ticket/463>
-=item PAST::Val node generation [eligible in 1.5]
-
-The PAST::Compiler may generate the code for PAST::Val nodes
-(i.e., constants) at the beginning of the block (Parrot sub) instead
-of the location where they occur in the PAST tree.
+=item PAST::Val node generation [eligible in 1.5]
-L<https://trac.parrot.org/parrot/ticket/868>
+The PAST::Compiler may generate the code for PAST::Val nodes
+(i.e., constants) at the beginning of the block (Parrot sub) instead
+of the location where they occur in the PAST tree.
+
+L<https://trac.parrot.org/parrot/ticket/868>
+
+=item Meta-model implementation used by PCT [eligible in 2.7]
+
+PCT is set to switch to a new meta-model implementation for its classes
+and objects. This will most likely only affect those who rely on the
+interface of what is returned from .HOW, or rely on PCT objects exhibiting
+various other peculiarities of the P6object implementation. (Even when that
+is the case, the HOW API will not be changing too drastically, so for most
+PCT users there should be little to no upheavel.)
=back
@@ -421,7 +467,7 @@
L<https://trac.parrot.org/parrot/ticket/1598>
-=item LWP, HTTP::Message & URI [experimental]
+=item LWP, HTTP::Message, URI & URI::Escape [experimental]
L<http://trac.parrot.org/parrot/ticket/1637>
Modified: branches/gc_massacre/MANIFEST
==============================================================================
--- branches/gc_massacre/MANIFEST Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/MANIFEST Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,7 +1,7 @@
# ex: set ro:
# $Id$
#
-# generated by tools/dev/mk_manifest_and_skip.pl Tue Jun 8 22:47:40 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Tue Aug 3 18:21:50 2010 UT
#
# See below for documentation on the format of this file.
#
@@ -63,6 +63,7 @@
compilers/imcc/symreg.h [imcc]
compilers/imcc/unit.h [imcc]
compilers/opsc/Defines.mak [opsc]
+compilers/opsc/README.pod []doc
compilers/opsc/Rules.mak [opsc]
compilers/opsc/TODO [opsc]
compilers/opsc/gen/Ops/Compiler/IGNOREME [opsc]
@@ -278,7 +279,6 @@
config/gen/platform/cygwin/math.c []
config/gen/platform/darwin/begin.c []
config/gen/platform/darwin/hires_timer.c []
-config/gen/platform/darwin/memalign.c []
config/gen/platform/generic/dl.c []
config/gen/platform/generic/dl.h []
config/gen/platform/generic/env.c []
@@ -288,7 +288,6 @@
config/gen/platform/generic/itimer.c []
config/gen/platform/generic/math.c []
config/gen/platform/generic/math.h []
-config/gen/platform/generic/memalign.c []
config/gen/platform/generic/memexec.c []
config/gen/platform/generic/platform_limits.h []
config/gen/platform/generic/signal.c []
@@ -636,9 +635,11 @@
examples/languages/squaak/examples/life.sq [examples]
examples/languages/squaak/setup.pir [examples]
examples/languages/squaak/squaak.pir [examples]
-examples/languages/squaak/src/builtins/say.pir [examples]
-examples/languages/squaak/src/parser/actions.pm [examples]
-examples/languages/squaak/src/parser/grammar.pg [examples]
+examples/languages/squaak/src/Squaak/Actions.pm [examples]
+examples/languages/squaak/src/Squaak/Compiler.pm [examples]
+examples/languages/squaak/src/Squaak/Grammar.pm [examples]
+examples/languages/squaak/src/Squaak/Runtime.pm [examples]
+examples/languages/squaak/src/squaak.pir [examples]
examples/languages/squaak/t/00-sanity.t [examples]
examples/languages/squaak/t/01-math.t [examples]
examples/library/acorn.life [examples]
@@ -960,7 +961,6 @@
include/parrot/exit.h [main]include
include/parrot/extend.h [main]include
include/parrot/gc_api.h [main]include
-include/parrot/global.h [main]include
include/parrot/global_setup.h [main]include
include/parrot/hash.h [main]include
include/parrot/hll.h [main]include
@@ -977,6 +977,7 @@
include/parrot/memory.h [main]include
include/parrot/misc.h [main]include
include/parrot/multidispatch.h [main]include
+include/parrot/namespace.h [main]include
include/parrot/nci.h [main]include
include/parrot/oo.h [main]include
include/parrot/oo_private.h [main]include
@@ -1221,6 +1222,7 @@
runtime/parrot/library/Test/Class.pir [library]
runtime/parrot/library/Test/More.pir [library]
runtime/parrot/library/URI.pir [library]
+runtime/parrot/library/URI/Escape.pir [library]
runtime/parrot/library/YAML/Dumper.pir [library]
runtime/parrot/library/YAML/Dumper/Base.pir [library]
runtime/parrot/library/YAML/Dumper/Default.pir [library]
@@ -1326,6 +1328,7 @@
src/main.c []
src/misc.c []
src/multidispatch.c []
+src/namespace.c []
src/nci/api.c []
src/nci/core_thunks.c []
src/nci/core_thunks.nci []
@@ -1361,6 +1364,7 @@
src/pmc/bigint.pmc []
src/pmc/bignum.pmc []
src/pmc/boolean.pmc []
+src/pmc/bytebuffer.pmc []
src/pmc/callcontext.pmc []
src/pmc/capture.pmc []
src/pmc/class.pmc []
@@ -1663,6 +1667,7 @@
t/dynoplibs/bit.t [test]
t/dynoplibs/debug.t [test]
t/dynoplibs/deprecated.t [test]
+t/dynoplibs/io-old.t [test]
t/dynoplibs/io.t [test]
t/dynoplibs/math.t [test]
t/dynoplibs/obscure.t [test]
@@ -1732,6 +1737,7 @@
t/library/test_class.t [test]
t/library/test_more.t [test]
t/library/uri.t [test]
+t/library/uri_escape.t [test]
t/library/uuid.t [test]
t/library/yaml_dumper.t [test]
t/manifest/01-basic.t [test]
@@ -1782,6 +1788,7 @@
t/oo/names.t [test]
t/oo/new-old.t [test]
t/oo/new.t [test]
+t/oo/objects.t [test]
t/oo/ops.t [test]
t/oo/proxy.t [test]
t/oo/root_new.t [test]
@@ -1848,11 +1855,13 @@
t/pharness/04-Usage.t [test]
t/pir/macro.t [test]
t/pir/registernames.t [test]
+t/pir/timer_exit.t [test]
t/pmc/addrregistry.t [test]
t/pmc/arrayiterator.t [test]
t/pmc/bigint.t [test]
t/pmc/bignum.t [test]
t/pmc/boolean.t [test]
+t/pmc/bytebuffer.t [test]
t/pmc/callcontext.t [test]
t/pmc/capture.t [test]
t/pmc/class.t [test]
@@ -1905,7 +1914,6 @@
t/pmc/object-meths.t [test]
t/pmc/object-mro.t [test]
t/pmc/object.t [test]
-t/pmc/objects.t [test]
t/pmc/opcode.t [test]
t/pmc/oplib.t [test]
t/pmc/orderedhash.t [test]
@@ -2074,6 +2082,7 @@
t/tools/install/testlib/src/pmc/pmc_object.h [test]
t/tools/install/testlib/tools/build/ops2c.pl [test]
t/tools/install/testlib/vtable.dump [test]
+t/tools/parrot_config.t [test]
t/tools/parrot_debugger.t [test]
t/tools/pbc_disassemble.t [test]
t/tools/pbc_dump.t [test]
@@ -2141,8 +2150,7 @@
tools/dev/pbc_to_exe.pir [devel]
tools/dev/pmcrenumber.pl []
tools/dev/pmctree.pl []
-tools/dev/pprof2cg.nqp []
-tools/dev/pprof2cg.pl []
+tools/dev/pprof2cg.pl [devel]
tools/dev/reconfigure.pl [devel]
tools/dev/search-ops.pl []
tools/dev/svnclobber.pl []
Modified: branches/gc_massacre/MANIFEST.SKIP
==============================================================================
--- branches/gc_massacre/MANIFEST.SKIP Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/MANIFEST.SKIP Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,6 +1,6 @@
# ex: set ro:
# $Id$
-# generated by tools/dev/mk_manifest_and_skip.pl Thu May 27 15:25:37 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Thu Jun 24 14:06:33 2010 UT
#
# This file should contain a transcript of the svn:ignore properties
# of the directories in the Parrot subversion repository. (Needed for
@@ -69,6 +69,8 @@
^config_lib\.pir/
^cover_db$
^cover_db/
+^generated_hello\.pbc$
+^generated_hello\.pbc/
^install_config\.fpmc$
^install_config\.fpmc/
^installable.*$
@@ -624,6 +626,9 @@
# generated from svn:ignore of 'runtime/parrot/library/Test/Builder/'
^runtime/parrot/library/Test/Builder/.*\.pbc$
^runtime/parrot/library/Test/Builder/.*\.pbc/
+# generated from svn:ignore of 'runtime/parrot/library/URI/'
+^runtime/parrot/library/URI/.*\.pbc$
+^runtime/parrot/library/URI/.*\.pbc/
# generated from svn:ignore of 'runtime/parrot/library/YAML/'
^runtime/parrot/library/YAML/.*\.pbc$
^runtime/parrot/library/YAML/.*\.pbc/
Modified: branches/gc_massacre/MANIFEST.generated
==============================================================================
--- branches/gc_massacre/MANIFEST.generated Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/MANIFEST.generated Tue Aug 3 22:27:14 2010 (r48298)
@@ -2,11 +2,11 @@
# See tools/dev/install_files.pl for documentation on the
# format of this file.
# Please re-sort this file after *EVERY* modification
-blib/lib/libparrot.2.4.0.dylib [main]lib
+blib/lib/libparrot.2.6.0.dylib [main]lib
blib/lib/libparrot.a [main]lib
blib/lib/libparrot.dylib [main]lib
blib/lib/libparrot.so [main]lib
-blib/lib/libparrot.so.2.4.0 [main]lib
+blib/lib/libparrot.so.2.6.0 [main]lib
compilers/data_json/data_json.pbc [data_json]
config/gen/call_list/opengl.in []
docs/ops/bit.pod [doc]
@@ -42,6 +42,7 @@
include/pmc/pmc_bigint.h [devel]include
include/pmc/pmc_bignum.h [devel]include
include/pmc/pmc_boolean.h [devel]include
+include/pmc/pmc_bytebuffer.h [devel]include
include/pmc/pmc_callcontext.h [devel]include
include/pmc/pmc_capture.h [devel]include
include/pmc/pmc_class.h [devel]include
@@ -295,7 +296,7 @@
runtime/parrot/library/TAP/Formatter.pbc [main]
runtime/parrot/library/TAP/Harness.pbc [main]
runtime/parrot/library/TAP/Parser.pbc [main]
-runtime/parrot/library/TGE.pbc [main]
+runtime/parrot/library/TGE.pbc [main]
runtime/parrot/library/Tcl/Glob.pbc [main]
runtime/parrot/library/TclLibrary.pbc [main]
runtime/parrot/library/Test/Builder.pbc [main]
@@ -336,6 +337,7 @@
src/pmc/bigint.dump [devel]src
src/pmc/bignum.dump [devel]src
src/pmc/boolean.dump [devel]src
+src/pmc/bytebuffer.dump [devel]src
src/pmc/callcontext.dump [devel]src
src/pmc/capture.dump [devel]src
src/pmc/class.dump [devel]src
Modified: branches/gc_massacre/NEWS
==============================================================================
--- branches/gc_massacre/NEWS Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/NEWS Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,8 +1,44 @@
# $Id$
+New in 2.6.0
+- Core
+ + Plug some memory leaks
+ + As always, bug fixes and some optimizations
+- Runtime
+ + added (experimental) URI::Escape
+- Testing
+ + Improved test coverage of core parrot
+- Documentation
+ + Updated the Squaak tutorial to use modern NQP-rx and PCT
+- Platforms
+ + The Fedora package 'parrot-devel' install the files for syntax-highlighting
+ and automatic indenting for the vim editor
+- 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)
+
New in 2.5.0
+- Core
+ + Added ByteBuffer PMC to allow direct byte manipulation
+ + Modified some PMC vtable functions to reduce complexity, simplifying coverage.
+ + Modified PAST to generate symbolic PASM constants in PIR output.
+ + General STRING API cleanups
+ + Increased test coverage of core PMCs
+ + Fixed up 'exit' opcode, added CONTROL_EXIT exception type.
+ + Experimental 'unroll' opcode renamed to 'finalize'
+- NQP-rx
+ + Added proper support for multisubs and multimethods
+ + Fixed sigspace handling ** quantifier in regexes
+ + Added \e strings
+ + Added use of inversion lists for charclass lists in regexes
- Platforms
+ EPEL (Extra Packages for Enterprise Linux) packages for RHEL6.beta are available
+- Begin moving towards Lorito, the ops refactor to enable pervasive self-hosting and JIT compilation.
+ + All ops are now built with the self-hosted opsc compiler.
+ + For more Information about Lorito see:
+ http://trac.parrot.org/parrot/wiki/Lorito
+ http://trac.parrot.org/parrot/wiki/LoritoRoadmap
New in 2.4.0
- Core
Modified: branches/gc_massacre/PBC_COMPAT
==============================================================================
--- branches/gc_massacre/PBC_COMPAT Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/PBC_COMPAT Tue Aug 3 22:27:14 2010 (r48298)
@@ -28,20 +28,8 @@
# please insert tab separated entries at the top of the list
-6.20 2010.05.29 plobsing eliminate unused fixup type 'label'
-6.19 2010.05.27 plobsing removed numerous core ops (TT #449)
-6.18 2010.05.25 cotto removed ops.num
-6.17 2010.05.20 NotFound store encoding of string constants
-6.16 2010.05.18 plobsing move freeze/thaw adjacent to visit
-6.15 2010.05.06 bacek add StringBuilder PMC
-6.14 2010.05.03 coke remove popaction, pushmark, pushaction ops.
-6.13 2010.05.03 coke move File/OS pmcs to src/dynpmc
-6.12 2010.05.02 plobsing store constant PMC strings as top level constant strings
-6.11 2010.04.29 tewk remove ParrotRunningThread
-6.10 2010.04.29 NotFound packfiledebug.pmc
-6.9 2010.04.27 bacek remove deprecated in-place string ops (bitwise, charset, case change)
-6.8 2010.04.27 bacek remove deprecated in-place substr ops
-6.7 2010.04.22 coke remove RetContinuation PMC
+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)
6.6 2010.04.17 bacek add replace op
6.5 2010.03.09 cotto remove cpu_ret op
6.4 2010.03.02 cotto remove prederef__ and reserved
Modified: branches/gc_massacre/README
==============================================================================
--- branches/gc_massacre/README Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/README Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,4 +1,4 @@
-This is Parrot, version 2.4.0
+This is Parrot, version 2.6.0
------------------------------
Parrot is Copyright (C) 2001-2010, Parrot Foundation.
@@ -79,7 +79,7 @@
By default, this installs in /usr/local, with the Parrot executable in
/usr/local/bin. If you want to install Parrot into another location use:
- perl Configure.pl --prefix=/Users/foo/parrot-0.7.0
+ perl Configure.pl --prefix=/home/joe/bird
make install
But please note that dynamic libs will not be found for non-standard
Modified: branches/gc_massacre/VERSION
==============================================================================
--- branches/gc_massacre/VERSION Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/VERSION Tue Aug 3 22:27:14 2010 (r48298)
@@ -1 +1 @@
-2.4.0
+2.6.0
Modified: branches/gc_massacre/compilers/imcc/pbc.c
==============================================================================
--- branches/gc_massacre/compilers/imcc/pbc.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/compilers/imcc/pbc.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -147,7 +147,7 @@
__attribute__nonnull__(1);
PARROT_WARN_UNUSED_RESULT
-static size_t get_codesize(PARROT_INTERP,
+static size_t get_code_size(PARROT_INTERP,
ARGIN(const IMC_Unit *unit),
ARGOUT(size_t *src_lines))
__attribute__nonnull__(1)
@@ -257,7 +257,7 @@
, PARROT_ASSERT_ARG(pc))
#define ASSERT_ARGS_fixup_globals __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_get_codesize __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_get_code_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(unit) \
, PARROT_ASSERT_ARG(src_lines))
@@ -352,14 +352,11 @@
const size_t oldcount = interp->code->const_table->const_count;
const size_t newcount = oldcount + 1;
- /* Allocate a new constant */
- PackFile_Constant *new_constant = PackFile_Constant_new(interp);
-
/* Update the constant count and reallocate */
if (interp->code->const_table->constants) {
interp->code->const_table->constants =
mem_gc_realloc_n_typed_zeroed(interp, interp->code->const_table->constants,
- newcount, oldcount, PackFile_Constant *);
+ newcount, oldcount, PackFile_Constant);
}
else {
/* initialize rlookup cache */
@@ -369,10 +366,9 @@
(hash_comp_fn)STRING_compare_distinct_cs_enc;
interp->code->const_table->constants =
- mem_gc_allocate_n_zeroed_typed(interp, newcount, PackFile_Constant *);
+ mem_gc_allocate_n_zeroed_typed(interp, newcount, PackFile_Constant);
}
- interp->code->const_table->constants[oldcount] = new_constant;
interp->code->const_table->const_count = newcount;
return oldcount;
@@ -394,7 +390,7 @@
{
ASSERT_ARGS(add_const_table_pmc)
const int newitem = add_const_table(interp);
- PackFile_Constant * const constant = interp->code->const_table->constants[newitem];
+ PackFile_Constant * const constant = &interp->code->const_table->constants[newitem];
constant->type = PFC_PMC;
constant->u.key = pmc;
@@ -418,7 +414,7 @@
{
ASSERT_ARGS(add_const_table_key)
const int newitem = add_const_table(interp);
- PackFile_Constant * const constant = interp->code->const_table->constants[newitem];
+ PackFile_Constant * const constant = &interp->code->const_table->constants[newitem];
constant->type = PFC_KEY;
constant->u.key = key;
@@ -630,7 +626,7 @@
/*
-=item C<static size_t get_codesize(PARROT_INTERP, const IMC_Unit *unit, size_t
+=item C<static size_t get_code_size(PARROT_INTERP, const IMC_Unit *unit, size_t
*src_lines)>
Stores globals for later fixup, returning the code size in number of ops.
@@ -641,9 +637,9 @@
PARROT_WARN_UNUSED_RESULT
static size_t
-get_codesize(PARROT_INTERP, ARGIN(const IMC_Unit *unit), ARGOUT(size_t *src_lines))
+get_code_size(PARROT_INTERP, ARGIN(const IMC_Unit *unit), ARGOUT(size_t *src_lines))
{
- ASSERT_ARGS(get_codesize)
+ ASSERT_ARGS(get_code_size)
Instruction *ins = unit->instructions;
size_t code_size;
@@ -669,7 +665,7 @@
else if (ins->opname && *ins->opname) {
(*src_lines)++;
if (ins->opnum < 0)
- IMCC_fatal(interp, 1, "get_codesize: "
+ IMCC_fatal(interp, 1, "get_code_size: "
"no opnum ins#%d %I\n",
ins->index, ins);
@@ -685,7 +681,7 @@
code_size += ins->opsize;
}
else if (ins->opsize)
- IMCC_fatal(interp, 1, "get_codesize: "
+ IMCC_fatal(interp, 1, "get_code_size: "
"non instruction with size found\n");
}
@@ -901,7 +897,6 @@
const CHARSET *s_charset;
const ENCODING *s_encoding = NULL;
const ENCODING *src_encoding;
- const char *charset;
#define MAX_NAME 31
char charset_name[MAX_NAME + 1];
char encoding_name[MAX_NAME + 1];
@@ -1063,7 +1058,7 @@
/* otherwise... */
{
int k = add_const_table(interp);
- PackFile_Constant *constant = table->constants[k];
+ PackFile_Constant *constant = &table->constants[k];
constant->type = PFC_STRING;
constant->u.string = s;
@@ -1092,7 +1087,7 @@
const int k = add_const_table(interp);
STRING * const s = Parrot_str_new(interp, buf, 0);
- PackFile_Constant * const constant = interp->code->const_table->constants[k];
+ PackFile_Constant * const constant = &interp->code->const_table->constants[k];
constant->type = PFC_NUMBER;
constant->u.number = Parrot_str_to_num(interp, s);
@@ -1137,7 +1132,7 @@
r = pcc_sub->multi[i];
if (r->set == 'S') {
- STRING * const type_name = ct->constants[r->color]->u.string;
+ STRING * const type_name = ct->constants[r->color].u.string;
const INTVAL type_num = Parrot_pmc_get_type_str(interp, type_name);
if (type_num == enum_type_undef) {
@@ -1150,7 +1145,7 @@
}
else {
PARROT_ASSERT(r->set == 'K');
- sig_pmc = ct->constants[r->color]->u.key;
+ sig_pmc = ct->constants[r->color].u.key;
}
VTABLE_set_pmc_keyed_int(interp, multi_sig, i, sig_pmc);
@@ -1181,10 +1176,10 @@
int need_lex)
{
ASSERT_ARGS(create_lexinfo)
- PMC *lex_info = NULL;
- SymHash *hsh = &unit->hash;
- PackFile_Constant **constants = interp->code->const_table->constants;
- const INTVAL lex_info_id = Parrot_get_ctx_HLL_type(interp,
+ PMC *lex_info = NULL;
+ SymHash *hsh = &unit->hash;
+ PackFile_Constant *constants = interp->code->const_table->constants;
+ const INTVAL lex_info_id = Parrot_get_ctx_HLL_type(interp,
enum_class_LexInfo);
unsigned int i;
@@ -1209,7 +1204,7 @@
Parrot_Sub_attributes *sub;
PARROT_ASSERT(k >= 0);
- lex_name = constants[k]->u.string;
+ lex_name = constants[k].u.string;
PARROT_ASSERT(PObj_is_string_TEST(lex_name));
PMC_get_sub(interp, sub_pmc, sub);
@@ -1404,7 +1399,7 @@
Sub_comp_get_FLAGS(sub) |= (r->pcc_sub->pragma & SUB_COMP_FLAG_MASK);
r->color = add_const_str(interp, IMCC_string_from_reg(interp, r));
- sub->name = ct->constants[r->color]->u.string;
+ sub->name = ct->constants[r->color].u.string;
/* If the unit has no subid, set the subid to match the name. */
if (!unit->subid)
@@ -1421,18 +1416,18 @@
IMCC_string_from_reg(interp, unit->subid));
}
- sub->subid = ct->constants[unit->subid->color]->u.string;
+ sub->subid = ct->constants[unit->subid->color].u.string;
ns_pmc = NULL;
if (ns_const >= 0 && ns_const < ct->const_count) {
- switch (ct->constants[ns_const]->type) {
+ switch (ct->constants[ns_const].type) {
case PFC_KEY:
- ns_pmc = ct->constants[ns_const]->u.key;
+ ns_pmc = ct->constants[ns_const].u.key;
break;
case PFC_STRING:
ns_pmc = Parrot_pmc_new_constant(interp, enum_class_String);
VTABLE_set_string_native(interp, ns_pmc,
- ct->constants[ns_const]->u.string);
+ ct->constants[ns_const].u.string);
break;
default:
break;
@@ -1466,7 +1461,7 @@
if (unit->vtable_name) {
vtable_name = Parrot_str_new(interp, unit->vtable_name + 1,
strlen(unit->vtable_name) - 2);
- UNIT_FREE_CHAR(unit->method_name);
+ UNIT_FREE_CHAR(unit->vtable_name);
}
else
vtable_name = sub->name;
@@ -1507,7 +1502,7 @@
else
sub->ns_entry_name = sub->name;
- Parrot_store_sub_in_namespace(interp, sub_pmc);
+ Parrot_ns_store_sub(interp, sub_pmc);
/*
* store the sub's strings
@@ -1525,8 +1520,8 @@
/* store the sub */
{
- const int k = add_const_table(interp);
- PackFile_Constant * const pfc = ct->constants[k];
+ const int k = add_const_table(interp);
+ PackFile_Constant * const pfc = &ct->constants[k];
pfc->type = PFC_PMC;
pfc->u.key = sub_pmc;
@@ -2090,10 +2085,10 @@
e_pbc_end_sub(PARROT_INTERP, SHIM(void *param), ARGIN(IMC_Unit *unit))
{
ASSERT_ARGS(e_pbc_end_sub)
- Instruction *ins;
+ Instruction *ins = unit->instructions;
int pragma;
- if (!unit->instructions)
+ if (!ins)
return 0;
/*
@@ -2101,7 +2096,6 @@
* This is *dangerous*: all possible global state can be messed
* up, e.g. when that sub starts loading bytecode
*/
- ins = unit->instructions;
/* we run only PCC subs */
if (!ins->symregs[0] || !ins->symregs[0]->pcc_sub)
@@ -2152,7 +2146,7 @@
{
ASSERT_ARGS(verify_signature)
PMC *changed_sig = NULL;
- PMC * const sig_arr = interp->code->const_table->constants[pc[-1]]->u.key;
+ PMC * const sig_arr = interp->code->const_table->constants[pc[-1]].u.key;
int needed = 0;
int no_consts = (ins->opnum == PARROT_OP_get_results_pc
|| ins->opnum == PARROT_OP_get_params_pc);
@@ -2235,42 +2229,42 @@
/* first instruction, do initialisation ... */
if (ins == unit->instructions) {
- size_t ins_size;
- const size_t oldsize = get_old_size(interp,
+ size_t ins_size, seg_size;
+ const size_t old_size = get_old_size(interp,
&IMCC_INFO(interp)->ins_line);
- const size_t code_size = get_codesize(interp, unit, &ins_size);
- const size_t bytes = (oldsize + code_size) * sizeof (opcode_t);
+ const size_t code_size = get_code_size(interp, unit, &ins_size);
+ const size_t bytes = (old_size + code_size) * sizeof (opcode_t);
- IMCC_debug(interp, DEBUG_PBC, "code_size(ops) %d oldsize %d\n",
- code_size, oldsize);
+ IMCC_debug(interp, DEBUG_PBC, "code_size(ops) %d old_size %d\n",
+ code_size, old_size);
constant_folding(interp, unit);
store_sub_size(interp, code_size, ins_size);
/* allocate code */
- interp->code->base.data = (opcode_t *)
+ interp->code->base.data = (opcode_t *)
mem_sys_realloc(interp->code->base.data, bytes);
/* reallocating this removes its mmaped-ness; needs encapsulation */
interp->code->base.pf->is_mmap_ped = 0;
- interp->code->base.size = oldsize + code_size;
+ interp->code->base.size = old_size + code_size;
- IMCC_INFO(interp)->pc = (opcode_t *)interp->code->base.data + oldsize;
- IMCC_INFO(interp)->npc = 0;
+ IMCC_INFO(interp)->pc = (opcode_t *)interp->code->base.data + old_size;
+ IMCC_INFO(interp)->npc = 0;
/* FIXME length and multiple subs */
- IMCC_INFO(interp)->debug_seg = Parrot_new_debug_seg(interp,
- interp->code,
- (size_t)IMCC_INFO(interp)->ins_line + ins_size + 1);
+ seg_size = (size_t)IMCC_INFO(interp)->ins_line + ins_size + 1;
+ IMCC_INFO(interp)->debug_seg =
+ Parrot_new_debug_seg(interp, interp->code, seg_size);
Parrot_debug_add_mapping(interp, IMCC_INFO(interp)->debug_seg,
- IMCC_INFO(interp)->ins_line, unit->file);
+ old_size, unit->file);
/* if item is a PCC_SUB entry then store it constants */
if (ins->symregs[0] && ins->symregs[0]->pcc_sub) {
- add_const_pmc_sub(interp, ins->symregs[0], oldsize,
- oldsize + code_size);
+ add_const_pmc_sub(interp, ins->symregs[0], old_size,
+ old_size + code_size);
}
else {
/* need a dummy to hold register usage */
@@ -2278,7 +2272,7 @@
r->type = VT_PCC_SUB;
r->pcc_sub = mem_gc_allocate_zeroed_typed(interp, pcc_sub_t);
- add_const_pmc_sub(interp, r, oldsize, oldsize + code_size);
+ add_const_pmc_sub(interp, r, old_size, old_size + code_size);
}
}
Added: branches/gc_massacre/compilers/opsc/README.pod
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gc_massacre/compilers/opsc/README.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -0,0 +1,47 @@
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+opsc - An opcode compiler for Parrot
+
+=head1 DESCRIPTION
+
+Ops-to-C is a compiler to generate opcode definition files in C from
+Parrot's opcode definition language.
+
+=head1 SYNOPSIS
+
+ opsc [-options] <file>
+
+=head1 OPTIONS
+
+=over 4
+
+=item -c, --core
+
+Generate C code for core ops (for use only in building the Parrot VM)
+
+=item -d, --dynamic
+
+Generate C code for dynamic ops in a single file.
+
+=item -q, --quiet
+
+Only report error messages, other messages are silent.
+
+=item -h, --help
+
+Print usage information.
+
+=item -n, --no-lines
+
+Do not print #line directives in generated C code.
+
+=item -g, --debug
+
+Perform all processing but do not write to any files.
+
+=back
+
+=cut
Modified: branches/gc_massacre/compilers/opsc/src/Ops/Op.pm
==============================================================================
--- branches/gc_massacre/compilers/opsc/src/Ops/Op.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/compilers/opsc/src/Ops/Op.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -284,61 +284,54 @@
}
# Recursively process body chunks returning string.
-# Ideally bunch of multisubs, but...
-method process_body_chunk($trans, $chunk) {
- my $what := $chunk.WHAT;
- # Poor man multis...
- if $what eq 'PAST::Var()' {
- my $n := +$chunk.name;
- return $trans.access_arg( self.arg_type($n - 1), $n);
+
+our multi method process_body_chunk($trans, PAST::Var $chunk) {
+ my $n := +$chunk.name;
+ $trans.access_arg( self.arg_type($n - 1), $n);
+}
+
+our multi method process_body_chunk($trans, PAST::Op $chunk) {
+ my $type := $chunk.pasttype;
+ #say('OP ' ~ $type);
+ if $type eq 'inline' {
+ #_dumper($chunk);
+ #pir::say('RET ' ~ $chunk<inline>);
+ return $chunk.inline;
}
- elsif $what eq 'PAST::Op()' {
- my $type := $chunk.pasttype;
- #say('OP ' ~ $type);
- if $type eq 'inline' {
- #_dumper($chunk);
- #pir::say('RET ' ~ $chunk<inline>);
- return $chunk.inline;
+ elsif $type eq 'call' {
+ my $name := $chunk.name;
+ #say('NAME '~$name ~ ' ' ~ $is_next);
+ if $name eq 'OPSIZE' {
+ #say('is_next');
+ return ~self.size;
}
- elsif $type eq 'call' {
- my $name := $chunk.name;
- #say('NAME '~$name ~ ' ' ~ $is_next);
- if $name eq 'OPSIZE' {
- #say('is_next');
- return ~self.size;
- }
-
- my @children := list();
- for @($chunk) {
- @children.push(self.process_body_chunk($trans, $_));
- }
- my $children := join('', |@children);
-
- #pir::say('children ' ~ $children);
- my $ret := Q:PIR<
- $P0 = find_lex '$trans'
- $P1 = find_lex '$name'
- $S0 = $P1
- $P1 = find_lex '$children'
- %r = $P0.$S0($P1)
- >;
- #pir::say('RET ' ~ $ret);
- return $ret;
- }
- }
- elsif $what eq 'PAST::Stmts()' {
+
my @children := list();
for @($chunk) {
@children.push(self.process_body_chunk($trans, $_));
}
my $children := join('', |@children);
- return $children;
- }
- else {
- pir::die('HOLEY');
+
+ #pir::say('children ' ~ $children);
+ my $ret := Q:PIR<
+ $P0 = find_lex '$trans'
+ $P1 = find_lex '$name'
+ $S0 = $P1
+ $P1 = find_lex '$children'
+ %r = $P0.$S0($P1)
+ >;
+ #pir::say('RET ' ~ $ret);
+ return $ret;
}
}
+our multi method process_body_chunk($trans, PAST::Stmts $chunk) {
+ my @children := list();
+ for @($chunk) {
+ @children.push(self.process_body_chunk($trans, $_));
+ }
+ join('', |@children);
+}
=begin
Modified: branches/gc_massacre/compilers/opsc/src/Ops/Trans/C.pm
==============================================================================
--- branches/gc_massacre/compilers/opsc/src/Ops/Trans/C.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/compilers/opsc/src/Ops/Trans/C.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -25,10 +25,10 @@
:ki("IREG(NUM)"),
:ic("cur_opcode[NUM]"),
- :nc("CONST(NUM)->u.number"),
- :pc("CONST(NUM)->u.key"),
- :sc("CONST(NUM)->u.string"),
- :kc("CONST(NUM)->u.key"),
+ :nc("CONST(NUM).u.number"),
+ :pc("CONST(NUM).u.key"),
+ :sc("CONST(NUM).u.string"),
+ :kc("CONST(NUM).u.key"),
:kic("cur_opcode[NUM]")
);
@@ -95,7 +95,7 @@
method expr_address($addr) { $addr; }
-method expr_offset($offset) { "cur_opcode + $offset"; }
+method expr_offset($offset) { " cur_opcode + $offset"; }
=begin
@@ -299,7 +299,10 @@
* returns >= 0 (found idx into info_table), -1 if not
*/
-static size_t hash_str(const char *str) {
+PARROT_PURE_FUNCTION
+static
+size_t hash_str(ARGIN(const char *str))
+{
size_t key = 0;
const char *s = str;
@@ -311,7 +314,8 @@
return key;
}
-static void store_op(PARROT_INTERP, op_info_t *info, int full) {
+static void store_op(PARROT_INTERP, op_info_t *info, int full)
+{
HOP * const p = mem_gc_allocate_zeroed_typed(interp, HOP);
const size_t hidx =
hash_str(full ? info->full_name : info->name) % OP_HASH_SIZE;
@@ -320,7 +324,9 @@
p->next = hop[hidx];
hop[hidx] = p;
}
-static int get_op(PARROT_INTERP, const char * name, int full) {
+
+static int get_op(PARROT_INTERP, const char * name, int full)
+{
const HOP * p;
const size_t hidx = hash_str(name) % OP_HASH_SIZE;
if (!hop) {
@@ -333,7 +339,9 @@
}
return -1;
}
-static void hop_init(PARROT_INTERP) {
+
+static void hop_init(PARROT_INTERP)
+{
size_t i;
op_info_t * const info = [[BS]]op_lib.op_info_table;
/* store full names */
@@ -344,6 +352,7 @@
if (get_op(interp, info[i].name, 0) == -1)
store_op(interp, info + i, 0);
}
+
static void hop_deinit(PARROT_INTERP)
{
if (hop) {
Modified: branches/gc_massacre/compilers/pct/src/PAST/Compiler.pir
==============================================================================
--- branches/gc_massacre/compilers/pct/src/PAST/Compiler.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/compilers/pct/src/PAST/Compiler.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -18,6 +18,7 @@
basic flags are:
P,S,I,N PMC, string, int, or num register
+ Q keyed PMC, next flag indicates type of key
s string register or constant
i int register or constant
n num register or constant
@@ -27,6 +28,7 @@
+ PMC, int register, num register, or numeric constant
~ PMC, string register, or string constant
: argument (same as '*'), possibly with :named or :flat
+ 0-9 use the nth input operand as the output result of this operation
These flags are used to describe signatures and desired return
types for various operations. For example, if an opcode is
@@ -67,11 +69,13 @@
piropsig['concat'] = 'PP~'
piropsig['copy'] = '0PP'
piropsig['defined'] = 'IP'
+ piropsig['delete'] = 'vQ*'
piropsig['die'] = 'v~'
piropsig['div'] = 'PP+'
piropsig['does'] = 'IPs'
piropsig['downcase'] = 'Ss'
piropsig['elements'] = 'IP'
+ piropsig['exists'] = 'IQ*'
piropsig['exit'] = 'vi'
piropsig['fdiv'] = 'PP+'
piropsig['find_codepoint'] = 'Is'
@@ -109,7 +113,7 @@
piropsig['shl'] = 'PP+'
piropsig['shr'] = 'PP+'
piropsig['sleep'] = 'v+'
- piropsig['splice'] = 'PPii'
+ piropsig['splice'] = '0PPii'
piropsig['split'] = 'Pss'
piropsig['sub'] = 'PP+'
piropsig['substr'] = 'Ssii'
@@ -430,6 +434,7 @@
sigidx = 1
rtype = substr signature, sigidx, 1
iter_loop:
+ if rtype == 'Q' goto keyed_pos
unless iter goto iter_end
.local pmc cpast, cpost
cpast = shift iter
@@ -472,6 +477,31 @@
inc sigidx
rtype = substr signature, sigidx, 1
goto iter_loop
+ keyed_pos:
+ # rtype is 'Q', so construct a keyed pmc argument
+ # first, get the base PMC
+ unless iter goto iter_end
+ cpast = shift iter
+ cpost = self.'as_post'(cpast, 'rtype'=>'P')
+ cpost = self.'coerce'(cpost, 'P')
+ # now process the key arg
+ unless iter goto iter_end
+ .local pmc kpast, kpost
+ kpast = shift iter
+ inc sigidx
+ rtype = substr signature, sigidx, 1
+ kpost = self.'as_post'(kpast, 'rtype'=>rtype)
+ kpost = self.'coerce'(kpost, rtype)
+ ops.'push'(kpost)
+ ops.'push'(cpost)
+ # now construct the keyed PMC
+ $S0 = cpost
+ concat $S0, '['
+ $S1 = kpost
+ concat $S0, $S1
+ concat $S0, ']'
+ push posargs, $S0
+ goto iter_rtype
iter_end:
.return (ops, posargs, namedargs)
.end
@@ -1101,8 +1131,8 @@
signature = 'vP'
have_signature:
- .local pmc ops
- ops = self.'post_children'(node, 'signature'=>signature)
+ .local pmc ops, posargs
+ (ops, posargs) = self.'post_children'(node, 'signature'=>signature)
.local pmc arglist
arglist = ops.'list'()
@@ -1118,10 +1148,10 @@
.local string result
result = self.'uniquereg'($S0)
ops.'result'(result)
- ops.'push_pirop'(pirop, result, arglist :flat)
+ ops.'push_pirop'(pirop, result, posargs :flat)
.return (ops)
pirop_void:
- ops.'push_pirop'(pirop, arglist :flat)
+ ops.'push_pirop'(pirop, posargs :flat)
.return (ops)
.end
Modified: branches/gc_massacre/compilers/pct/src/PAST/Node.pir
==============================================================================
--- branches/gc_massacre/compilers/pct/src/PAST/Node.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/compilers/pct/src/PAST/Node.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -406,14 +406,6 @@
Get/set whether this node is an lvalue, or treats its first
child as an lvalue (e.g., for assignment).
-=cut
-
-.sub 'lvalue' :method
- .param pmc value :optional
- .param int has_value :opt_flag
- .tailcall self.'attr'('lvalue', value, has_value)
-.end
-
=item inline([STRING code])
Get/set the code to be used for inline PIR when C<pasttype> is
Modified: branches/gc_massacre/compilers/pct/src/POST/Node.pir
==============================================================================
--- branches/gc_massacre/compilers/pct/src/POST/Node.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/compilers/pct/src/POST/Node.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -46,10 +46,6 @@
=over 4
-=item result([value])
-
-Get/set
-
=cut
.namespace [ 'POST';'Node' ]
Modified: branches/gc_massacre/compilers/pirc/src/bcgen.c
==============================================================================
--- branches/gc_massacre/compilers/pirc/src/bcgen.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/compilers/pirc/src/bcgen.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -1271,7 +1271,7 @@
* XXX must this be done always? (this w.r.t. the recent discussion about :vtable/:method
* and being :anon etc.
*/
- Parrot_store_sub_in_namespace(bc->interp, sub_pmc);
+ Parrot_ns_store_sub(bc->interp, sub_pmc);
subconst_index = add_pmc_const(bc, sub_pmc);
/* Add a new fixup entry in the fixup table for this sub. */
Modified: branches/gc_massacre/compilers/pirc/src/pircapi.c
==============================================================================
--- branches/gc_massacre/compilers/pirc/src/pircapi.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/compilers/pirc/src/pircapi.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -17,6 +17,9 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
/*
@@ -72,16 +75,14 @@
=item C<void parse_file(PARROT_INTERP, int flexdebug, FILE *infile, char * const
filename, int flags, int thr_id, unsigned macro_size, char * const outputfile)>
-=cut
-
This will be the proper declaration after testing for thread-safety:
void parse_file(int flexdebug, FILE *infile, char * const filename, int flags,
char * const outputfile)
-*/
-
+=cut
+*/
void
parse_file(PARROT_INTERP, int flexdebug, ARGIN(FILE *infile),
@@ -260,6 +261,8 @@
=item C<PackFile_ByteCode * pirc_compile_file(PARROT_INTERP, const char
*filename, STRING **error_message)>
+Returns NULL.
+
=cut
*/
@@ -274,8 +277,6 @@
}
-/* HEADERIZER END: static */
-
/*
Modified: branches/gc_massacre/config/auto/icu.pm
==============================================================================
--- branches/gc_massacre/config/auto/icu.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/auto/icu.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -312,7 +312,8 @@
else {
# on MacOS X there's sometimes an errornous \c at the end of the
# output line. Remove it.
- $icushared =~ s/\s\\c$//;
+ # see TT #1722
+ $icushared =~ s/\s\\c\s/ /g;
}
}
Modified: branches/gc_massacre/config/gen/config_pm.pm
==============================================================================
--- branches/gc_massacre/config/gen/config_pm.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/config_pm.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -65,6 +65,18 @@
open( my $OUT, ">", $gen_pm )
or die "Can't open $gen_pm: $!";
+ # escape spaces in current directory
+ my $cwd = cwd();
+ $cwd =~ s{ }{\\ }g;
+
+ # Build directory can have non ascii characters
+ # Maybe not the better fix, but allows keep working on the issue.
+ # See TT #1717
+ my $cwdcharset = q{};
+ if ($cwd =~ /[^[:ascii:]]/) {
+ $cwdcharset = 'binary:';
+ }
+
my $pkg = __PACKAGE__;
print {$OUT} <<"END";
# ex: set ro:
@@ -117,9 +129,16 @@
die "type of '$k' is not supported : $type\n";
}
# String
- $v =~ s/(["\\])/\\$1/g;
+ $v =~ s/\\/\\\\/g;
+ $v =~ s/\\\\"/\\"/g;
+ # escape unescaped double quotes
+ $v =~ s/(?<!\\)"/\\"/g;
$v =~ s/\n/\\n/g;
- print {$OUT} qq( set \$P0["$k"], "$v"\n);
+ my $charset = q{};
+ if ($v =~ /[^[:ascii:]]/) {
+ $charset = 'binary:';
+ }
+ print {$OUT} qq( set \$P0["$k"], $charset"$v"\n);
}
else {
# Null
@@ -127,7 +146,7 @@
}
}
}
- elsif (s/\@PWD\@/cwd/e) {
+ elsif (s/\"\@PWD\@\"/$cwdcharset\"$cwd\"/) {
print {$OUT} $_;
}
else {
Modified: branches/gc_massacre/config/gen/core_pmcs.pm
==============================================================================
--- branches/gc_massacre/config/gen/core_pmcs.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/core_pmcs.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -76,7 +76,7 @@
END_H
print {$OUT} coda();
- close $OUT or die "Can't close file: $!";;
+ close $OUT or die "Can't close file: $!";
move_if_diff( "$file.tmp", $file );
Modified: branches/gc_massacre/config/gen/makefiles/editor.in
==============================================================================
--- branches/gc_massacre/config/gen/makefiles/editor.in Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/makefiles/editor.in Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2009, Parrot Foundation.
+# Copyright (C) 2005-2010, Parrot Foundation.
# $Id$
#IF(win32):VIM_DIR = $(USERPROFILE)/vimfiles
@@ -13,6 +13,9 @@
MKPATH = @mkpath@
RM_F = @rm_f@
+SKEL_FILE_DIR = `$(PERL) -e 'print "$(SKELETON)" || "$(VIM_DIR)"'`
+LINE = "au BufNewFile *.pir 0r $(SKEL_FILE_DIR)/skeleton.pir"
+
default: all
all: pir.vim imc.kate skeleton.pir
@@ -49,6 +52,7 @@
$(CP) pmc.vim "$(VIM_SYN_DIR)"
$(MKPATH) "$(VIM_FT_DIR)"
$(CP) filetype_parrot.vim "$(VIM_FT_DIR)/parrot.vim"
+ echo $(LINE) >> "$(VIM_FT_DIR)/parrot.vim"
$(MKPATH) "$(VIM_IN_DIR)"
$(CP) indent_pir.vim "$(VIM_IN_DIR)/pir.vim"
Modified: branches/gc_massacre/config/gen/makefiles/root.in
==============================================================================
--- branches/gc_massacre/config/gen/makefiles/root.in Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/makefiles/root.in Tue Aug 3 22:27:14 2010 (r48298)
@@ -320,6 +320,7 @@
$(LIBRARY_DIR)/Tcl/Glob.pbc \
$(LIBRARY_DIR)/TclLibrary.pbc \
$(LIBRARY_DIR)/URI.pbc \
+ $(LIBRARY_DIR)/URI/Escape.pbc \
$(LIBRARY_DIR)/uuid.pbc \
$(LIBRARY_DIR)/YAML/Dumper/Base.pbc \
$(LIBRARY_DIR)/YAML/Dumper/Default.pbc \
@@ -390,7 +391,7 @@
$(INC_DIR)/vtables.h \
$(INC_DIR)/multidispatch.h \
$(INC_DIR)/library.h \
- $(INC_DIR)/global.h \
+ $(INC_DIR)/namespace.h \
$(INC_DIR)/stat.h \
$(INC_DIR)/hll.h \
$(INC_DIR)/pbcversion.h \
@@ -474,6 +475,7 @@
src/longopt$(O) \
src/misc$(O) \
src/multidispatch$(O) \
+ src/namespace$(O) \
src/frame_builder$(O) \
src/nci/api$(O) \
src/nci/core_thunks$(O) \
@@ -641,9 +643,10 @@
$(LIBRARY_DIR)/Configure/genfile.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
-$(LIBRARY_DIR)/HTTP/Message.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+# Message.pbc and distutils.pbc load io_ops to work around TT #1663
+638 $(LIBRARY_DIR)/HTTP/Message.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT) $(DYNEXT_DIR)/io_ops$(LOAD_EXT)
-$(LIBRARY_DIR)/distutils.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+$(LIBRARY_DIR)/distutils.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT) $(DYNEXT_DIR)/io_ops$(LOAD_EXT)
$(LIBRARY_DIR)/pcre.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
@@ -667,7 +670,6 @@
src/debug.str \
src/dynext.str \
src/exceptions.str \
- src/global.str \
src/global_setup.str \
src/hll.str \
src/call/pcc.str \
@@ -679,6 +681,7 @@
src/key.str \
src/library.str \
src/multidispatch.str \
+ src/namespace.str \
src/frame_builder.str \
src/nci/api.str \
src/nci/core_thunks.str \
@@ -993,18 +996,9 @@
# Parrot Debugger
#
-src/parrot_debugger$(O) : $(INC_DIR)/embed.h \
- src/parrot_debugger.c \
- $(INC_DIR)/runcore_api.h \
- compilers/imcc/imc.h $(PARROT_H_HEADERS) compilers/imcc/parser.h \
- compilers/imcc/cfg.h \
- compilers/imcc/debug.h \
- compilers/imcc/imcparser.h \
- compilers/imcc/instructions.h \
- compilers/imcc/sets.h \
- compilers/imcc/symreg.h \
- compilers/imcc/unit.h \
- $(INC_DIR)/oplib/ops.h
+src/parrot_debugger$(O) : $(PARROT_H_HEADERS) src/parrot_debugger.c \
+ $(INC_DIR)/embed.h \
+ $(INC_DIR)/runcore_api.h
$(PDB) : src/parrot_debugger$(O) src/parrot_config$(O) $(LIBPARROT)
$(LINK) @ld_out@$@ \
@@ -1224,7 +1218,8 @@
examples/mops/mops$(EXE) \
examples/pasm/hello.pbc \
examples/pasm/hello$(O) \
- examples/pasm/hello$(EXE)
+ examples/pasm/hello$(EXE) \
+ generated_hello.pbc
# hello
hello: test_prep examples/pasm/hello$(EXE)
@@ -1261,7 +1256,7 @@
src/global_setup$(O) : $(PARROT_H_HEADERS) src/global_setup.str src/global_setup.c
-src/global$(O) : $(PARROT_H_HEADERS) src/global.str src/global.c \
+src/namespace$(O) : $(PARROT_H_HEADERS) src/namespace.str src/namespace.c \
include/pmc/pmc_sub.h
src/pmc$(O) : include/pmc/pmc_class.h src/pmc.c \
@@ -1817,7 +1812,7 @@
manifest_tests :
$(PERL) t/harness $(MANIFEST_TEST_FILES)
-examples_tests :
+examples_tests : test_prep
$(PERL) t/harness $(EXAMPLES_TEST_FILES)
# benchmark tests
@@ -2436,6 +2431,8 @@
tar -zcv -T - -f parrot-$(VERSION).tar.gz
$(PERL) -lane 'print"parrot-$(VERSION)/$$F[0]"unless!length||/#/' \
MANIFEST | tar -jcv -T - -f parrot-$(VERSION).tar.bz2
+ sha256sum parrot-$(VERSION).tar.gz > parrot-$(VERSION).tar.gz.sha256
+ sha256sum parrot-$(VERSION).tar.bz2 > parrot-$(VERSION).tar.bz2.sha256
mv MANIFEST.real MANIFEST
rm parrot-$(VERSION)
@@ -2486,6 +2483,12 @@
src/extra_nci_thunks.c : src/nci/extra_thunks.nci $(NCI_THUNK_GEN)
$(NCI_THUNK_GEN) --dynext --no-warn-dups \
--output=src/extra_nci_thunks.c <src/nci/extra_thunks.nci
+#
+# remove the following two lines commited in r48180 which cause this to be re-generated
+# every time the all target is invoked - see TT #1719
+#
+# $(NCI_THUNK_GEN) --core --loader-name=Parrot_nci_load_extra_thunks --no-warn-dups \
+# --output=src/nci/extra_thunks.c <src/nci/extra_thunks.nci
## SUFFIX OVERRIDE
src/extra_nci_thunks$(O) : $(PARROT_H_HEADERS) src/extra_nci_thunks.c \
@@ -2532,6 +2535,11 @@
tags.vi.dummy:
+tags: tags.dummy
+ @echo 'There is no "tags" target. You want tags-vi or tags-emacs.'
+
+tags.dummy:
+
CRITIC_FILES = 'lib/Parrot'
perlcritic:
Modified: branches/gc_massacre/config/gen/opengl.pm
==============================================================================
--- branches/gc_massacre/config/gen/opengl.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/opengl.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -245,6 +245,7 @@
GLsizeiptr => 'ptrdiff_t',
GLintptrARB => 'ptrdiff_t',
GLsizeiptrARB => 'ptrdiff_t',
+ GLvdpauSurfaceNV => 'ptrdiff_t',
);
my %NCI_TYPE = (
@@ -265,6 +266,7 @@
'short*' => 'p',
'int*' => 'p',
'long*' => 'p',
+ 'ptrdiff_t*' => 'p',
'longlong*' => 'p',
'float*' => 'p',
'double*' => 'p',
Modified: branches/gc_massacre/config/gen/platform.pm
==============================================================================
--- branches/gc_massacre/config/gen/platform.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/platform.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -191,7 +191,6 @@
dl.c
stat.c
math.c
- memalign.c
signal.c
itimer.c
memexec.c
Modified: branches/gc_massacre/config/gen/platform/ansi/dl.c
==============================================================================
--- branches/gc_massacre/config/gen/platform/ansi/dl.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/platform/ansi/dl.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2007, Parrot Foundation.
+ * Copyright (C) 2007-2010, Parrot Foundation.
*/
/*
@@ -11,20 +11,16 @@
=head1 DESCRIPTION
-Dynlib stuff. (Currently, just placeholders.)
+Parrot functions -- B<none yet implemented> -- which wrap around standard
+library functions for handling dynamic libraries.
=head2 Functions
=over 4
-=cut
-
-*/
-
-/*
+=item C<void * Parrot_dlopen(const char *filename, Parrot_dlopen_flags flags)>
-=item C<void * Parrot_dlopen(const char *filename, SHIM(Parrot_dlopen_flags
-flags)>
+Parrot wrapper around C<dlopen>. B<Not yet implemented.>
=cut
@@ -42,6 +38,8 @@
=item C<const char * Parrot_dlerror(void)>
+Parrot wrapper around C<dlerror>. B<Not yet implemented.>
+
=cut
*/
@@ -57,6 +55,8 @@
=item C<void * Parrot_dlsym(void *handle, const char *symbol)>
+Parrot wrapper around C<dlsym>. B<Not yet implemented.>
+
=cut
*/
@@ -73,6 +73,8 @@
=item C<int Parrot_dlclose(void *handle)>
+Parrot wrapper around C<dlclose>. B<Not yet implemented.>
+
=cut
*/
Modified: branches/gc_massacre/config/gen/platform/ansi/exec.c
==============================================================================
--- branches/gc_massacre/config/gen/platform/ansi/exec.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/platform/ansi/exec.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2004-2008, Parrot Foundation.
+ * Copyright (C) 2004-2010, Parrot Foundation.
*/
/*
@@ -25,7 +25,7 @@
=item C<INTVAL Parrot_Run_OS_Command(PARROT_INTERP, STRING *command)>
-Spawn a subprocess
+B<Not yet implemented on this platform.> Spawn a subprocess.
=cut
@@ -43,6 +43,8 @@
=item C<INTVAL Parrot_Run_OS_Command_Argv(PARROT_INTERP, PMC *cmdargs)>
+B<Not yet implemented on this platform.>
+
=cut
*/
Modified: branches/gc_massacre/config/gen/platform/ansi/time.c
==============================================================================
--- branches/gc_massacre/config/gen/platform/ansi/time.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/platform/ansi/time.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2007, Parrot Foundation.
+ * Copyright (C) 2007-2010, Parrot Foundation.
*/
/*
@@ -27,6 +27,8 @@
=item C<INTVAL Parrot_intval_time(void)>
+Parrot wrapper around standard library C<time()> function, returning an INTVAL.
+
=cut
*/
@@ -42,6 +44,9 @@
=item C<FLOATVAL Parrot_floatval_time(void)>
+Note: We are unable to provide this level of precision under ANSI-C, so we
+just fall back to intval time for this.
+
=cut
*/
@@ -49,8 +54,6 @@
FLOATVAL
Parrot_floatval_time(void)
{
- /* unable to provide this level of precision under ANSI-C, so just fall
- back to intval time for this. */
Parrot_warn(NULL, PARROT_WARNINGS_PLATFORM_FLAG, "Parrot_floatval_time not accurate");
return (FLOATVAL)Parrot_intval_time();
}
Deleted: branches/gc_massacre/config/gen/platform/darwin/memalign.c
==============================================================================
--- branches/gc_massacre/config/gen/platform/darwin/memalign.c Tue Aug 3 22:27:14 2010 (r48297)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,201 +0,0 @@
-/*
- * $Id$
- * Copyright (C) 2007-2008, Parrot Foundation.
- */
-
-/*
-
-=head1 NAME
-
-memalign.c
-
-=head1 DESCRIPTION
-
-memalign related stuff
-
-=head2 Functions
-
-=over 4
-
-=cut
-
-*/
-
-#include <mach/vm_map.h>
-#include <mach/mach_init.h>
-
-/*
-
-=item C<static unsigned long log2int(unsigned long x)>
-
-=cut
-
-*/
-
-static unsigned long log2int(unsigned long x) {
- return (x < 2) ? 0 : log2int(x >> 1) + 1;
-}
-
-/*
-
-=item C<static unsigned long roundDownPowerOf2(unsigned long x)>
-
-=cut
-
-*/
-
-static unsigned long roundDownPowerOf2(unsigned long x) {
- return (1 << log2int(x));
-}
-
-/*
-
-=item C<static unsigned long roundUpPowerOf2(unsigned long x)>
-
-=cut
-
-*/
-
-static unsigned long roundUpPowerOf2(unsigned long x)
-{
- static unsigned long one = 1;
- unsigned long log2Int = log2int(x);
-
- return ((one << log2Int) == x) ? x : (one << (log2Int + 1));
-}
-
-/*
-
-=item C<static unsigned long roundUpToPageBoundary(unsigned long x)>
-
-=cut
-
-*/
-
-static unsigned long roundUpToPageBoundary(unsigned long x)
-{
- unsigned long roundedDown = trunc_page(x);
-
- return (roundedDown == x) ? x : (roundedDown + vm_page_size);
-}
-
-typedef struct _memalign_marker_t {
- vm_address_t start;
- vm_size_t size;
-} memalign_marker_t;
-
-/*
-
-=item C<void * Parrot_memalign(size_t align, size_t size)>
-
-=cut
-
-*/
-
-void *
-Parrot_memalign(size_t align, size_t size)
-{
- size_t effectiveAlign = align;
- size_t padding = 0;
- size_t amountToAllocate = 0;
-
- if (effectiveAlign < sizeof (void *))
- effectiveAlign = roundUpPowerOf2(sizeof (void *));
- else
- effectiveAlign = roundUpPowerOf2(effectiveAlign);
-
- if (effectiveAlign < sizeof (memalign_marker_t))
- padding = sizeof (memalign_marker_t);
- else
- padding = effectiveAlign;
-
- amountToAllocate = roundUpToPageBoundary(size + padding);
-
- {
- vm_address_t p = (vm_address_t)NULL;
- kern_return_t status = vm_allocate(mach_task_self(), &p,
- amountToAllocate, 1);
-
- if (status != KERN_SUCCESS)
- return NULL;
- else {
- vm_size_t logEffectiveAlign = log2int(effectiveAlign);
- vm_address_t lowestAvaliableAddress =
- p + sizeof (memalign_marker_t);
- vm_address_t roundedDownAddress =
- ((lowestAvaliableAddress >> logEffectiveAlign)
- << logEffectiveAlign);
- vm_address_t returnAddress =
- (roundedDownAddress == lowestAvaliableAddress)
- ? lowestAvaliableAddress
- : (roundedDownAddress + effectiveAlign);
- vm_address_t firstUnneededPage = 0;
-
- memalign_marker_t *marker =
- (memalign_marker_t *)returnAddress - 1;
-
- /* lowest address used, then round down to vm_page boundary */
- vm_address_t usedPageBase = trunc_page((vm_address_t)marker);
- marker->start = usedPageBase;
- marker->size = returnAddress + size - usedPageBase;
-
- if (usedPageBase > p) {
- status = vm_deallocate(mach_task_self(), p, usedPageBase - p);
-
- if (status != KERN_SUCCESS)
- fprintf(stderr, "Parrot_memalign(%zx, %zx) failed "
- "to deallocate extra header space.\n",
- align, size);
- }
-
- firstUnneededPage = roundUpToPageBoundary(returnAddress + size);
-
- if (firstUnneededPage < p + amountToAllocate) {
- status = vm_deallocate(mach_task_self(), firstUnneededPage,
- p + amountToAllocate - firstUnneededPage);
-
- if (status != KERN_SUCCESS) {
- fprintf(stderr, "Parrot_memalign(%zx, %zx) failed "
- "to deallocate extra footer space.\n",
- align, size);
- }
- }
-
- return (void *)returnAddress;
- }
- }
-}
-
-/*
-
-=item C<void Parrot_free_memalign(void *p)>
-
-=cut
-
-*/
-
-void
-Parrot_free_memalign(void *p)
-{
- memalign_marker_t *marker = (memalign_marker_t *)p - 1;
- kern_return_t status = vm_deallocate(mach_task_self(),
- marker->start, marker->size);
-
- if (status != KERN_SUCCESS)
- fprintf(stderr, "Parrot_free_memalign(%p) failed!\n", p);
-}
-
-/*
-
-=back
-
-=cut
-
-*/
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Modified: branches/gc_massacre/config/gen/platform/generic/dl.c
==============================================================================
--- branches/gc_massacre/config/gen/platform/generic/dl.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/platform/generic/dl.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2004-2006, Parrot Foundation.
+ * Copyright (C) 2004-2010, Parrot Foundation.
*/
/*
@@ -11,7 +11,7 @@
=head1 DESCRIPTION
-Dynlib stuff
+Parrot functions which wrap around standard library functions for handling dynamic libraries.
=head2 Functions
@@ -31,6 +31,9 @@
=item C<void * Parrot_dlopen(const char *filename, Parrot_dlopen_flags flags)>
+Parrot wrapper around C<dlopen>. Loads dynamic library file named by first
+argument and returns a handle to it.
+
=cut
*/
@@ -50,6 +53,9 @@
=item C<const char * Parrot_dlerror(void)>
+Wrapper around C<dlerror>. System-dependent string that indicates most recent
+failure in use of C<Parrot_dlopen>, C<Parrot_dlclose> or C<Parrot_dlsym>.
+
=cut
*/
@@ -68,6 +74,9 @@
=item C<void * Parrot_dlsym(void *handle, const char *symbol)>
+Wrapper around C<dlysm>. Takes a handle returned by C<Parrot_dlopen> and
+returns address where symbol is located.
+
=cut
*/
@@ -86,6 +95,9 @@
=item C<int Parrot_dlclose(void *handle)>
+Wrapper around C<dlclose>. Releases reference to dynamic library specified
+by argument. Returns C<0> on success and C<-1> on failure.
+
=cut
*/
Modified: branches/gc_massacre/config/gen/platform/generic/env.c
==============================================================================
--- branches/gc_massacre/config/gen/platform/generic/env.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/platform/generic/env.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -74,13 +74,13 @@
void
Parrot_unsetenv(PARROT_INTERP, STRING *str_name)
{
- char * const name = Parrot_str_to_cstring(interp, str_name);
#ifdef PARROT_HAS_UNSETENV
+ char * const name = Parrot_str_to_cstring(interp, str_name);
unsetenv(name);
+ Parrot_str_free_cstring(name);
#else
- Parrot_setenv(name, "");
+ Parrot_setenv(interp, str_name, Parrot_str_new(interp, "", 0));
#endif
- Parrot_str_free_cstring(name);
}
/*
Modified: branches/gc_massacre/config/gen/platform/generic/exec.c
==============================================================================
--- branches/gc_massacre/config/gen/platform/generic/exec.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/platform/generic/exec.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2004-2009, Parrot Foundation.
+ * Copyright (C) 2004-2010, Parrot Foundation.
*/
/*
@@ -11,7 +11,7 @@
=head1 DESCRIPTION
-system() stuff
+Parrot functions to run operating system commands.
=head2 Functions
@@ -28,8 +28,8 @@
=item C<INTVAL Parrot_Run_OS_Command(PARROT_INTERP, STRING *command)>
-Spawn off a subprocess and wait for the damn thing to complete,
-returning the return value of the process
+Spawn off a subprocess provided in a string. Wait for it to complete,
+returning the return value of the process.
=cut
@@ -72,6 +72,9 @@
=item C<INTVAL Parrot_Run_OS_Command_Argv(PARROT_INTERP, PMC *cmdargs)>
+Spawn off a subprocess provided in command-line arguments. Wait for it to
+complete, returning the return value of the process.
+
=cut
*/
@@ -125,6 +128,14 @@
}
/*
+
+=back
+
+=cut
+
+*/
+
+/*
* Local variables:
* c-file-style: "parrot"
* End:
Modified: branches/gc_massacre/config/gen/platform/generic/math.c
==============================================================================
--- branches/gc_massacre/config/gen/platform/generic/math.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/platform/generic/math.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2004-2007, Parrot Foundation.
+ * Copyright (C) 2004-2010, Parrot Foundation.
*/
/*
@@ -11,29 +11,21 @@
=head1 DESCRIPTION
-math stuff
+Mathematical functions.
=head2 Functions
=over 4
-=cut
-
-*/
-
-/*
-
=item C<extern int Parrot_signbit(double x)>
-return true if the Numval has a negative sign.
+Return true if the Numval has a negative sign.
This is mostly for handling the -0.0 case.
=cut
*/
-/*
- */
#if DOUBLE_SIZE == 2 * INT_SIZE
extern int
Parrot_signbit(double x)
@@ -55,6 +47,8 @@
=item C<int Parrot_signbit_l(long double x)>
+Like C<Parrot_signbit()>, only taking long double instead of double.
+
=cut
*/
Deleted: branches/gc_massacre/config/gen/platform/generic/memalign.c
==============================================================================
--- branches/gc_massacre/config/gen/platform/generic/memalign.c Tue Aug 3 22:27:14 2010 (r48297)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,94 +0,0 @@
-/*
- * $Id$
- * Copyright (C) 2004-2006, Parrot Foundation.
- */
-
-/*
-
-=head1 NAME
-
-config/gen/platform/generic/memalign.c
-
-=head1 DESCRIPTION
-
-memalign related stuff
-
-=head2 Functions
-
-=over 4
-
-=cut
-
-*/
-
-#if defined(PARROT_HAS_POSIX_MEMALIGN)
-# include <stdlib.h>
-
-/*
-
-=item C<void * Parrot_memalign(size_t align, size_t size)>
-
-=cut
-
-*/
-
-void *
-Parrot_memalign(size_t align, size_t size)
-{
- void *p;
- int i = posix_memalign(&p, align, size);
- return i == 0 ? p : NULL;
-}
-
-#elif defined(PARROT_HAS_MEMALIGN)
-
-# if defined(PARROT_HAS_HEADER_MALLOC)
-# include <malloc.h>
-# else
-# include <stdlib.h>
-# endif
-
-/*
-
-=item C<void * Parrot_memalign(size_t align, size_t size)>
-
-=cut
-
-*/
-
-void *
-Parrot_memalign(size_t align, size_t size)
-{
- return memalign(align, size);
-}
-
-#endif
-
-/*
-
-=item C<void Parrot_free_memalign(void *p)>
-
-=cut
-
-*/
-
-void
-Parrot_free_memalign(void *p)
-{
- free(p);
-}
-
-/*
-
-=back
-
-=cut
-
-*/
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Modified: branches/gc_massacre/config/gen/platform/generic/stat.c
==============================================================================
--- branches/gc_massacre/config/gen/platform/generic/stat.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/platform/generic/stat.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2007-2008, Parrot Foundation.
+ * Copyright (C) 2007-2010, Parrot Foundation.
*/
/*
@@ -26,6 +26,8 @@
=item C<PMC * Parrot_stat_file(PARROT_INTERP, STRING *filename)>
+B<Not implemented.> Returns C<NULL>.
+
=cut
*/
@@ -41,6 +43,8 @@
=item C<PMC * Parrot_stat_info_pmc(PARROT_INTERP, STRING *filename, INTVAL
thing)>
+B<Not implemented.> Returns C<NULL>.
+
=cut
*/
@@ -56,6 +60,55 @@
=item C<static INTVAL stat_common(PARROT_INTERP, struct stat *statbuf, INTVAL
thing, int status)>
+Stats the file, and returns the information specified by C<thing>. C<thing> can
+be one of:
+
+=over 4
+
+=item * C<STAT_EXISTS>
+
+=item * C<STAT_FILESIZE>
+
+=item * C<STAT_ISDIR>
+
+=item * C<STAT_ISREG>
+
+=item * C<STAT_ISDEV>
+
+=item * C<STAT_ACCESSTIME>
+
+=item * C<STAT_MODIFYTIME>
+
+=item * C<STAT_CHANGETIME>
+
+=item * C<STAT_UID>
+
+=item * C<STAT_GID>
+
+=item * C<STAT_PLATFORM_DEV>
+
+=item * C<STAT_PLATFORM_INODE>
+
+=item * C<STAT_PLATFORM_MODE>
+
+=item * C<STAT_PLATFORM_NLINKS>
+
+=item * C<STAT_PLATFORM_DEVTYPE>
+
+=item * C<STAT_PLATFORM_MODE>
+
+=item * C<STAT_PLATFORM_NLINKS>
+
+=item * C<STAT_PLATFORM_DEVTYPE>
+
+=item * C<STAT_PLATFORM_BLOCKSIZE>
+
+=item * C<STAT_PLATFORM_BLOCKS>
+
+=back
+
+C<STAT_CREATETIME> and C<STAT_BACKUPTIME> are not supported and will return C<-1>.
+
=cut
*/
@@ -141,6 +194,8 @@
=item C<INTVAL Parrot_stat_info_intval(PARROT_INTERP, STRING *file, INTVAL
thing)>
+Returns the stat field given by C<thing> of file C<file>.
+
=cut
*/
@@ -164,6 +219,8 @@
=item C<INTVAL Parrot_fstat_info_intval(PARROT_INTERP, INTVAL file, INTVAL
thing)>
+Returns the fstat field given by C<thing> from file identifier C<file>.
+
=cut
*/
@@ -184,6 +241,8 @@
=item C<FLOATVAL Parrot_stat_info_floatval(PARROT_INTERP, STRING *filename,
INTVAL thing)>
+Currently returns C<-1.0> and has no side effects.
+
=cut
*/
@@ -199,6 +258,8 @@
=item C<STRING * Parrot_stat_info_string(PARROT_INTERP, STRING *filename, INTVAL
thing)>
+B<Not implemented.> Returns C<NULL>.
+
=cut
*/
Modified: branches/gc_massacre/config/gen/platform/generic/time.c
==============================================================================
--- branches/gc_massacre/config/gen/platform/generic/time.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/platform/generic/time.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2004-2006, Parrot Foundation.
+ * Copyright (C) 2004-2010, Parrot Foundation.
*/
/*
@@ -11,7 +11,7 @@
=head1 DESCRIPTION
-Time stuff
+Parrot time-related functions.
=head2 Functions
@@ -28,6 +28,8 @@
=item C<INTVAL Parrot_intval_time(void)>
+Parrot wrapper around standard library C<time()> function, returning an INTVAL.
+
=cut
*/
@@ -43,6 +45,8 @@
=item C<FLOATVAL Parrot_floatval_time(void)>
+Parrot wrapper around standard library C<time()> function, returning a FLOATVAL.
+
=cut
*/
@@ -59,6 +63,8 @@
=item C<void Parrot_sleep(unsigned int seconds)>
+Parrot wrapper around standard library C<sleep()> function.
+
=cut
*/
@@ -90,6 +96,8 @@
=item C<struct tm * Parrot_gmtime_r(const time_t *t, struct tm *tm)>
+Parrot wrapper around standard library C<gmtime_r()> function.
+
=cut
*/
@@ -105,6 +113,8 @@
=item C<struct tm * Parrot_localtime_r(const time_t *t, struct tm *tm)>
+Parrot wrapper around standard library C<localtime_r()> function.
+
=cut
*/
@@ -120,6 +130,8 @@
=item C<char* Parrot_asctime_r(const struct tm *tm, char *buffer)>
+Parrot wrapper around standard library C<asctime_r()> function.
+
=cut
*/
Modified: branches/gc_massacre/config/gen/platform/netbsd/math.c
==============================================================================
--- branches/gc_massacre/config/gen/platform/netbsd/math.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/platform/netbsd/math.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,7 +1,7 @@
/* $Id$ */
/*
- * Copyright (C) 2006-2007, Parrot Foundation.
+ * Copyright (C) 2006-2010, Parrot Foundation.
*/
/*
@@ -12,7 +12,7 @@
=head1 DESCRIPTION
-math stuff
+Mathematical functions.
=head2 Functions
@@ -29,7 +29,7 @@
=item C<extern int Parrot_signbit(double x)>
-return true if the Numval has a negative sign.
+Return true if the Numval has a negative sign.
This is mostly for handling the -0.0 case.
=cut
@@ -57,6 +57,8 @@
=item C<int Parrot_signbit_l(long double x)>
+Like C<Parrot_signbit()>, only taking long double instead of double.
+
=cut
*/
Modified: branches/gc_massacre/config/gen/platform/openbsd/math.c
==============================================================================
--- branches/gc_massacre/config/gen/platform/openbsd/math.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/platform/openbsd/math.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2006-2007, Parrot Foundation.
+ * Copyright (C) 2006-2010, Parrot Foundation.
*/
/*
@@ -11,7 +11,7 @@
=head1 DESCRIPTION
-math stuff
+Mathematical functions.
=head2 Functions
@@ -37,7 +37,7 @@
=item C<extern int Parrot_signbit(double x)>
-return true if the Numval has a negative sign.
+Return true if the Numval has a negative sign.
This is mostly for handling the -0.0 case.
=cut
@@ -65,6 +65,8 @@
=item C<int Parrot_signbit_l(long double x)>
+Like C<Parrot_signbit()>, only taking long double instead of double.
+
=cut
*/
Modified: branches/gc_massacre/config/gen/platform/solaris/math.c
==============================================================================
--- branches/gc_massacre/config/gen/platform/solaris/math.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/platform/solaris/math.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2006-2007, Parrot Foundation.
+ * Copyright (C) 2006-2010, Parrot Foundation.
*/
/*
@@ -11,7 +11,7 @@
=head1 DESCRIPTION
-math stuff
+Mathematical functions.
=head2 Functions
@@ -35,7 +35,7 @@
=item C<extern int Parrot_signbit(double x)>
-return true if the Numval has a negative sign.
+Return true if the Numval has a negative sign.
This is mostly for handling the -0.0 case.
=cut
@@ -63,6 +63,8 @@
=item C<int Parrot_signbit_l(long double x)>
+Like C<Parrot_signbit()>, only taking long double instead of double.
+
=cut
*/
Modified: branches/gc_massacre/config/gen/platform/solaris/time.c
==============================================================================
--- branches/gc_massacre/config/gen/platform/solaris/time.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/gen/platform/solaris/time.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2004-2006, Parrot Foundation.
+ * Copyright (C) 2004-2010, Parrot Foundation.
*/
/*
@@ -11,7 +11,7 @@
=head1 DESCRIPTION
-Time stuff
+Parrot time-related functions.
=head2 Functions
@@ -28,6 +28,8 @@
=item C<INTVAL Parrot_intval_time(void)>
+Parrot wrapper around standard library C<time()> function, returning an INTVAL.
+
=cut
*/
@@ -43,6 +45,8 @@
=item C<FLOATVAL Parrot_floatval_time(void)>
+Parrot wrapper around standard library C<time()> function, returning a FLOATVAL.
+
=cut
*/
@@ -59,6 +63,8 @@
=item C<void Parrot_sleep(unsigned int seconds)>
+Parrot wrapper around standard library C<sleep()> function.
+
=cut
*/
@@ -90,6 +96,8 @@
=item C<struct tm * Parrot_gmtime_r(const time_t *t, struct tm *tm)>
+Parrot wrapper around standard library C<gmtime_r()> function.
+
=cut
*/
@@ -105,6 +113,8 @@
=item C<struct tm * Parrot_localtime_r(const time_t *t, struct tm *tm)>
+Parrot wrapper around standard library C<localtime_r()> function.
+
=cut
*/
@@ -120,6 +130,8 @@
=item C<char* Parrot_asctime_r(const struct tm *tm, char *buffer)>
+Parrot wrapper around standard library C<asctime_r()> function.
+
=cut
*/
Modified: branches/gc_massacre/config/init/defaults.pm
==============================================================================
--- branches/gc_massacre/config/init/defaults.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/config/init/defaults.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -80,13 +80,17 @@
my $ccdlflags = $Config{ccdlflags};
$ccdlflags =~ s/\s*-Wl,-rpath,\S*//g if $conf->options->get('disable-rpath');
+ # escape spaces in build directory
+ my $build_dir = abs_path($FindBin::Bin);
+ $build_dir =~ s{ }{\\ }g;
+
my $cc_option = $conf->options->get('cc');
# We need a Glossary somewhere!
$conf->data->set(
debugging => $conf->options->get('debugging') ? 1 : 0,
optimize => '',
verbose => $conf->options->get('verbose'),
- build_dir => abs_path($FindBin::Bin),
+ build_dir => $build_dir,
configured_from_file =>
$conf->options->get('configured_from_file') || '',
configuration_steps => ( join q{ } => $conf->get_list_of_steps() ),
Modified: branches/gc_massacre/docs/book/pir/ch04_variables.pod
==============================================================================
--- branches/gc_massacre/docs/book/pir/ch04_variables.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/docs/book/pir/ch04_variables.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -182,7 +182,7 @@
$P0 = or $P1, $P2
-=end PIR_FRAGMENT_INVALID[
+=end PIR_FRAGMENT_INVALID
Both C<and> and C<or> are short-circuiting ops. If they can determine what
value to return from the first argument, they'll never evaluate the second.
Modified: branches/gc_massacre/docs/book/pir/ch07_objects.pod
==============================================================================
--- branches/gc_massacre/docs/book/pir/ch07_objects.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/docs/book/pir/ch07_objects.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -94,6 +94,53 @@
=end PIR_FRAGMENT
+=head2 Instantiation
+
+With a created class, we can use the C<new> opcode to instantiate an object of
+that class in the same way we can instantiate a new PMC.
+
+=begin PIR_FRAGMENT
+
+ $P0 = newclass "Foo"
+ $P1 = new $P0
+
+=end PIR_FRAGMENT
+
+Or, if we don't have the class object handy, we can do it by name too:
+
+=begin PIR_FRAGMENT
+
+ $P1 = new "Foo"
+
+=end PIR_FRAGMENT
+
+PMCs have two VTABLE interface functions for dealing with instantiating a new
+object: C<init> and C<init_pmc>. The former is called when a new PMC is
+created, the later is called when a new PMC is created with an initialization
+argument.
+
+=begin PIR
+
+ .namespace ["Foo"]
+ .sub 'init' :vtable
+ say "Creating a new Foo"
+ .end
+
+ .sub 'init_pmc' :vtable
+ .param pmc args
+ print "Creating a new Foo with argument "
+ say args
+ .end
+
+ .namespace[]
+ .sub 'main' :main
+ $P1 = new ['Foo'] # init
+ $P2 = new ['Foo'], $P1 # init_pmc
+ .end
+
+=end PIR
+
+
=head2 Methods
X<methods>
@@ -346,7 +393,7 @@
Classes defined in PIR using the C<newclass> opcode are instances of the
C<Class> PMCX<Class PMC>. This PMC contains all the meta-information for
the class, such as attribute definitions, methods, vtable overrides, and
-its inheritance hierarchy. The opcode C<inspect>X<inspect opcode>
+its inheritance hierarchy. The opcode C<inspect>X<inspect opcode>
provides a way to peek behind the curtain of encapsulation to see what
makes a class tick. When called with no arguments, C<inspect> returns an
associative array containing data on all characteristics of the class
Modified: branches/gc_massacre/docs/embed.pod
==============================================================================
--- branches/gc_massacre/docs/embed.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/docs/embed.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -288,12 +288,12 @@
=over 4
-=item C<Parrot_PMC Parrot_find_global_cur(PARROT_INTERP, Parrot_String name)>
+=item C<Parrot_PMC Parrot_ns_find_current_namespace_global(PARROT_INTERP, Parrot_String name)>
Find and return a global called C<name> in the current namespace. Returns
C<PMCNULL> if not found.
-=item C<Parrot_PMC Parrot_find_global_n(PARROT_INTERP, PMC namespace, Parrot_String name)>
+=item C<Parrot_PMC Parrot_ns_find_namespace_global(PARROT_INTERP, PMC namespace, Parrot_String name)>
Search the namespace PMC C<namespace> for an object with name C<globalname>.
Return the object, or NULL if not found.
@@ -303,7 +303,7 @@
Find and return a global called C<name> in the namespace C<namespace>. Returns
C<PMCNULL> if not found.
-=item C<void Parrot_store_global_n(PARROT_INTERP, PMC namespace, Parrot_String name, Parrot_PMC val)>
+=item C<void Parrot_ns_store_global(PARROT_INTERP, PMC namespace, Parrot_String name, Parrot_PMC val)>
Store the PMC C<val> into the namespace PMC C<namespace> with name C<globalname>.
@@ -467,7 +467,7 @@
/* find the subroutine named "foo" in the global namespace */
pstr = string_from_literal(interp, "foo");
- sub = Parrot_find_global_cur(interp, pstr);
+ sub = Parrot_ns_find_current_namespace_global(interp, pstr);
/* run foo(), which returns nothing */
Parrot_ext_call(interp, sub, "->");
@@ -709,13 +709,13 @@
=item C<Parrot_find_encoding_converter>
-=item C<Parrot_find_global_cur>
+=item C<Parrot_ns_find_current_namespace_global>
=item C<Parrot_find_global_k>
-=item C<Parrot_find_global_n>
+=item C<Parrot_ns_find_namespace_global>
-=item C<Parrot_find_global_op>
+=item C<Parrot_ns_find_global_from_op>
=item C<Parrot_find_global_s>
@@ -725,7 +725,7 @@
=item C<Parrot_find_method_with_cache>
-=item C<Parrot_find_name_op>
+=item C<Parrot_ns_find_named_item>
=item C<Parrot_float_rand>
@@ -761,7 +761,7 @@
=item C<Parrot_get_encoding>
-=item C<Parrot_get_global>
+=item C<Parrot_ns_get_global>
=item C<Parrot_get_HLL_id>
@@ -775,9 +775,9 @@
=item C<Parrot_get_namespace_autobase>
-=item C<Parrot_get_namespace_keyed>
+=item C<Parrot_ns_get_namespace_keyed>
-=item C<Parrot_get_namespace_keyed_str>
+=item C<Parrot_ns_get_namespace_keyed_str>
=item C<Parrot_get_numreg>
@@ -949,11 +949,11 @@
=item C<Parrot_make_default_encoding>
-=item C<Parrot_make_namespace_autobase>
+=item C<Parrot_ns_make_namespace_autobase>
-=item C<Parrot_make_namespace_keyed>
+=item C<Parrot_ns_make_namespace_keyed>
-=item C<Parrot_make_namespace_keyed_str>
+=item C<Parrot_ns_make_namespace_keyed_str>
=item C<Parrot_mmd_cache_create>
@@ -1105,12 +1105,6 @@
=item C<Parrot_PMC_get_integer_keyed_str>
-=item C<Parrot_PMC_get_intval>
-
-=item C<Parrot_PMC_get_intval_intkey>
-
-=item C<Parrot_PMC_get_intval_pmckey>
-
=item C<Parrot_PMC_get_iter>
=item C<Parrot_PMC_get_namespace>
@@ -1503,7 +1497,7 @@
=item C<Parrot_set_flag>
-=item C<Parrot_set_global>
+=item C<Parrot_ns_set_global>
=item C<Parrot_set_intreg>
@@ -1533,11 +1527,11 @@
=item C<Parrot_srand>
-=item C<Parrot_store_global_n>
+=item C<Parrot_ns_store_global>
=item C<Parrot_store_global_s>
-=item C<Parrot_store_sub_in_namespace>
+=item C<Parrot_ns_store_sub>
=item C<Parrot_str_boolean>
Modified: branches/gc_massacre/docs/parrothist.pod
==============================================================================
--- branches/gc_massacre/docs/parrothist.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/docs/parrothist.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -109,5 +109,8 @@
Gerd 2.3.0 * 2010-Apr-20 "Samoan Lory"
Whiteknight 2.4.0 2010-May-18 "Sulfer Crest"
+ Gerd 2.5.0 2010-Jun-15 "Cheops"
+
+ coke 2.6.0 * 2010-Jul-20 "Red-rumped"
=cut
Modified: branches/gc_massacre/docs/pdds/draft/pdd06_pasm.pod
==============================================================================
--- branches/gc_massacre/docs/pdds/draft/pdd06_pasm.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/docs/pdds/draft/pdd06_pasm.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -18,9 +18,7 @@
language for it for those people who may need to generate bytecode directly,
rather than indirectly through a high-level language.
-{{ NOTE: out-of-date and incomplete. It seems that it would be more
-useful as a specification of the format of PASM than as a comprehensive
-listing of all opcodes. }}
+{{ NOTE: out-of-date and incomplete. }}
=head2 Questions
@@ -84,7 +82,9 @@
PC.
All registers have a type prefix of P, S, I, or N, for PMC, string, integer,
-and number respectively.
+and number respectively. While parrot bytecode does not have a fixed limit
+on the number of registers, PASM has an implementation limit on the number of
+addressable registers of each type, currently set at 100 (0-99).
=head2 Assembly Syntax
@@ -158,7 +158,7 @@
=head2 Opcode List
-In the following list, there may be multiple (but unlisted) versions of an
+There may be multiple (but unlisted) versions of an
opcode. If an opcode takes a register that might be keyed, the keyed version
of the opcode has a _k suffix. If an opcode might take multiple types of
registers for a single parameter, the opcode function really has a _x suffix,
@@ -184,831 +184,7 @@
either a register or constant of the appropriate type (PMC, string, integer,
or number)
-=head3 Control flow
-
-The control flow opcodes check conditions and manage program flow.
-
-=over 4
-
-=item if tx, ix
-
-Check register tx. If true, branch by X.
-
-=item unless tx, ix
-
-Check register tx. If false, branch by X.
-
-=item jump tx
-
-Jump to the address held in register x (Px, Sx, or Ix).
-
-=item branch tx
-
-Branch forward or backward by the amount in register x. (X may be either Ix,
-Nx, or Px) Branch offset may also be an integer constant.
-
-=back
-
-=head3 Data manipulation
-
-These ops handle manipulating the data in registers
-
-=over 4
-
-=item new Px, iy
-
-Create a new PMC of class y stored in PMC register x.
-
-=item destroy Px
-
-Destroy the PMC in register X, leaving it undef
-
-=item set tx, ty
-
-Copies y into x. Note that strings and PMCs are referred to by pointer, so if
-you do something like:
-
- set S0, S1
-
-this will copy the pointer in S1 into S0, leaving B<both> registers pointing
-at the same string.
-
-=item exchange tx, ty
-
-Exchange the contents of registers X and Y, which must be of the same type.
-(Generally cheaper than using the stack as an intermediary when setting up
-registers for function calls)
-
-=item assign Px, ty
-
-Takes the contents of Y and assigns them into the existing PMC in X.
-
-While set just copies pointers from one register to another, assign actually
-does a value assignment, as:
-
- $foo = $bar;
-
-X's assign vtable function is invoked and it does whatever is appropriate.
-
-=item clone Px, Py
-
-=item clone Sx, xy
-
-Performs a "deeper" copy of y into x, using the vtable appropriate to the
-class of Py if cloning a PMC.
-
-=item tostring Sx, ty, Iz
-
-Take the value in register y and convert it to a string of type z, storing the
-result in string register x.
-
-=item add tx, ty, tz *
-
-Add registers y and z and store the result in register x. (x = y + z) The
-registers must all be the same type, PMC, integer, or number.
-
-=item sub tx, ty, tz *
-
-Subtract register z from register y and store the result in register x. (x = y
-- z) The registers must all be the same type, PMC, integer, or number.
-
-=item mul tx, ty, tz *
-
-Multiply register y by register z and store the results in register x. The
-registers must be the same type.
-
-=item div tx, ty, tz *
-
-Divide register y by register z, and store the result in register x.
-
-=item inc tx, nn *
-
-Increment register x by nn. nn is an integer constant. If nn is omitted,
-increment is 1.
-
-=item dec tx, nn *
-
-Decrement register x by nn. nn is an integer constant. If nn is omitted,
-decrement by 1.
-
-=item length Ix, Sy
-
-Put the length of string y into integer register x.
-
-=item concat Sx, Sy
-
-Add string y to the end of string x.
-
-=item repeat Sx, Sy, iz
-
-Copies string y z times into string x.
-
-=back
-
-=head3 Transcendental operations
-
-These opcodes handle the transcendental math functions. The destination
-register here must always be either a numeric or a PMC register.
-
-=over 4
-
-=item sin nx, ty
-
-Return the sine of the number in Y
-
-=item cos nx, ty
-
-Return the cosine of the number in Y
-
-=item tan nx, ty
-
-Return the tangent of the number in Y
-
-=item sec nx, ty
-
-Return the secant of the number in Y
-
-=item atan nx, ty
-
-Return the arctangent of Y
-
-=item atan2 nx, ty
-
-Return the result of atan2 of Y
-
-=item asin nx, ty
-
-Return the arcsine of y
-
-=item acos nx, ty
-
-Return the arccosine of y
-
-=item asec nx, ty
-
-Return the arcsecant of y
-
-=item cosh nx, ty
-
-Return the hyperbolic cosine of y
-
-=item sinh nx, ty
-
-Return the hyperbolic sine of y
-
-=item tanh nx, ty
-
-Return the hyperbolic tangent of y
-
-=item sech nx, ty
-
-Return the hyperbolic secant of y
-
-=item log2 nx, ty
-
-Return the base 2 log of y
-
-=item log10 nx, ty
-
-Return the base 10 log of y
-
-=item ln Nx, ty
-
-Return the base e log of y
-
-=item log nx, ty, tz
-
-Return the base Z log of Y
-
-=item pow nx, ty, tz
-
-Return Y to the Z power
-
-=item exp nx, ty
-
-Return e to the Y power
-
-=back
-
-=head3 Register and stack ops
-
-These opcodes deal with registers and stacks
-
-=over 4
-
-=item clearp
-
-Clean out the current set of PMC registers, setting them to NULL
-
-=item cleari
-
-Clean out the current set of I registers, setting them to 0
-
-=item clears
-
-Clean out the current set of S registers, setting them to NULL
-
-=item clearn
-
-Clean out the current set of N registers, setting them to 0
-
-=item null tx
-
-Set register X to a null value; for S and P registers, this will be NULL,
-while for I and N registers it is 0
-
-=item save tx
-
-Push register or constant X onto the generic stack
-
-=item restore tx
-
-Restore register X from the generic stack by popping off the topmost entry.
-The type of this entry must match the register type.
-
-=item entrytype Ix, iy
-
-Put the type of generic stack entry Y into integer register X
-
-=item depth Ix
-
-Get the current depth of the generic stack
-
-=item lookback tx, iy
-
-Fetch the entry that's at position Y from the top of the generic stack. This
-does not remove an entry from the stack, merely fetches the entry off it.
-
-0 is the entry at the top of the stack, 1 is the entry immediately previous to
-that, and so on. Entry -1 is the very bottom-most entry in the stack. (While
-the stack may be a tree when looked at from the bottom up, you don't have
-access to any other branches when looking this way).
-
-=back
-
-=head3 Names, pads, and globals
-
-These operations are responsible for finding names in lexical or global
-scopes, as well as storing data into those slots. A static scope is captured
-by a scratchpad. The current dynamic scope is represented by the state of the
-lexical stack (which contains scratchpads). For more detail on these ops see
-the inline POD documentation in F<ops/var.ops>.
-
-=over 4
-
-=item store_lex sx, Py
-
-=item find_lex Px, sy
-
-Instructions for storing in, and retrieving from, the scratchpad associated
-with the current context.
-
-=item find_global Px, sy, sz
-
-Find the PMC for the global variable sy from the table sz and store it in
-register X
-
-{{ DEPRECATED: op find_global was deprecated }}
-
-=item find_global Px, sy
-
-Find the PMC for the global in the default table and put it in X.
-
-{{ DEPRECATED: op find_global was deprecated }}
-
-=item find_global_table Px, sy
-
-Find the global symbol table Y and store its PMC in X
-
-=item find_global_slot ix, Py, sz
-
-Find the slot in the global table Y for the global named Z, and store its slot
-in register X.
-
-=item fetch_global Px, Py, iz
-
-Fetch the global in slot Z of the symbol table pointed to by Y
-
-=item store_global Px, sy
-
-Store X in the default global symbol table with a name of Y.
-
-{{ DEPRECATED: op store_global was deprecated }}
-
-=back
-
-=head3 Exceptions
-
-These opcodes deal with exception handling at the lowest level. Exception
-handlers are dynamically scoped, and any exception handler set in a scope will
-be removed when that scope is exited.
-
-=over 4
-
-=item set_eh Px
-
-Sets an exception handler in place. The code referred to by register Px will
-get called if an exception is thrown while the exception handler is in scope.
-
-=item pop_eh
-
-Pop the most recently placed exception off the handler stack.
-
-=item throw Px
-
-Throw an exception represented by the object in PMC register x.
-
-=item rethrow Px
-
-Only valid inside an exception handler. Rethrow the exception represented by
-the object in PMC register x. This object may have been altered by the
-exception handler.
-
-=back
-
-=head3 Object things
-
-These opcodes deal with PMCs as objects, rather than as opaque data items.
-
-=over 4
-
-=item find_method Px, Py, tz
-
-Find the method Z for object Y, and return a PMC for it in X.
-
-=item callmethod Px, ty
-
-=item set_attribute Px, ty, tz
-
-=item can Ix, Py, sz
-
-Sets X to TRUE if object Y can perform method Z; otherwise, X is set to FALSE.
-
-=item does Ix, Py, sz
-
-Sets X to TRUE if object Y can implements interface Z; otherwise, X is set to
-FALSE.
-
-=item isa Px, ty
-
-=back
-
-=head3 Module handling
-
-These opcodes deal with loading in bytecode or executable code libraries, and
-fetching info about those libraries. This is all dealing with precompiled
-bytecode or shared libraries.
-
-=over 4
-
-=item load_bytecode sx
-
-Load in the bytecode in file X. Search the library path if need be.
-
-=item load_opcode_lib sx, iy
-
-Load in the opcode library X, starting at opcode number Y. Search the path if
-needed.
-
-=item load_string_lib sx
-
-Load in the string handling library named X
-
-=item get_op_count sx
-
-Return the number of opcodes in opcode library X
-
-=item get_string_name sx
-
-Get the name of the string encoding that the library X handles
-
-=item find_string_lib sx, sy
-
-Find the string library that handles strings of type Y. Return its name in X.
-
-=back
-
-=head3 I/O operations
-
-Reads and writes read and write records, for some value of record.
-
-=over 4
-
-=item new_fh px
-
-Create a new filehandle px
-
-=item open px, sy
-
-Open the file Y on filehandle X
-
-=item read px, py, pz
-
-Issue a read on the filehandle in y, and put the result in PMC X. PMC Z is the
-sync object.
-
-=item write px, sy, pz
-
-Write the string Y to filehandle X. PMC Z is the sync object.
-
-=item wait px
-
-Wait for the I/O operation represented by sync object X to finish
-
-=item readw px, py
-
-Read from filehandle Y and put the results in PMC X. Blocks until the read
-completes.
-
-=item writew px, sy
-
-Write string Y to filehandle X, waiting for the write to complete.
-
-=item seek px, ty
-
-Seek filehandle X to position Y.
-
-=item tell tx, py
-
-Return the current position of filehandle Y and put it in X. Returns -1 for
-filehandles where this can't be determined. (Such as stream connections)
-
-=item status px, py, tz
-
-Get informational item Z for filehandle Y and put the result in X. This
-fetches things like the number of entries in the IO pipe, number of
-outstanding I/O ops, number of ops on the filehandle, and so forth.
-
-=back
-
-=head3 Threading ops
-
-=over 4
-
-=item lock Px
-
-Take out a high-level lock on the PMC in register X
-
-=item unlock Px
-
-Unlock the PMC in register X
-
-=item pushunlock Px
-
-Push an unlock request on the stack
-
-=back
-
-=head3 Interpreter ops
-
-=over 4
-
-=item newinterp Px, flags
-
-Create a new interpreter in X, using the passed flags.
-
-=item runinterp Px, iy
-
-Jump into interpreter X and run the code starting at offset Y from the current
-location. (This is temporary until we get something better)
-
-=item callout Pw, Px, sy, pz
-
-Call routine Y in interpreter x, passing it the list of parameters Z. W is a
-synchronization object returned. It can be waited on like the sync objects
-returned from async I/O routines.
-
-=item interpinfo Ix, iy
-
-Get information item Y and put it in register X. Currently defined are:
-
-=over 4
-
-=item 1 TOTAL_MEM_ALLOC
-
-The total amount of system memory allocated for later parceling out to
-Buffers. Doesn't include any housekeeping memory, memory for Buffer or PMC
-structs, or things of that nature.
-
-=item 2 GC_MARK_RUNS
-
-The total number of garbage collection mark runs that have been made.
-
-=item 3 GC_COLLECT_RUNS
-
-The total number of garbage collection sweep runs that have been made.
-
-=item 4 ACTIVE_PMCS
-
-The number of PMCs considered active. This means the GC scan hasn't noted
-them as dead.
-
-=item 5 ACTIVE_BUFFERS
-
-The number of Buffers (usually STRINGs but could be other things) considered
-active.
-
-=item 6 TOTAL_PMCS
-
-The total number of PMCs the interpreter has available. Includes both active
-and free PMCs
-
-=item 7 TOTAL_BUFFERS
-
-The total number of Buffer structs the interpreter has available.
-
-=item 8 HEADERS_ALLOC_SINCE_COLLECT
-
-The number of new Buffer header block allocations that have been made since
-the last GC mark run. (Buffers, when allocated, are allocated in chunks)
-
-=item 9 MEM_ALLOCS_SINCE_COLLECT
-
-The number of times we've requested a block of memory from the system for
-allocation to Buffers since the last time we compacted the memory heap.
-
-=back
-
-=back
-
-=head3 Garbage collection
-
-=over 4
-
-=item sweep
-
-Fire off a dead object sweep
-
-=item collect
-
-Fire off a garbage collection sweep
-
-=item pausecollect
-
-Pause the garbage collector. No collections will be done for this interpreter
-until the collector is unpaused.
-
-=item resumecollect
-
-Unpause the collector. This doesn't necessarily do a GC run, merely allows the
-interpreter to fire one off when it deems it necessary.
-
-=back
-
-=head3 Key operations
-
-Keys are used to get access to individual elements of an aggregate variable.
-This is done to allow for opaque, packed, and multidimensional aggregate
-types.
-
-A key entry may be an integer, string, or PMC. Integers are used for array
-lookups, strings for hash lookups, and PMCs for either.
-
-=over 4
-
-=item new_key Sx
-
-Create a new key structure and put a pointer to it in register X.
-
-=item clone_key Sx, ky
-
-Make a copy of the key Y and put a pointer to it in register X. Y may be
-either an S register or a constant.
-
-=item size_key Sx, iy
-
-Make the key structure X large enough to hold Y key entries
-
-=item key_size Ix, ky
-
-Put the number of elements in key Y into integer register X.
-
-=item toss_key Sx
-
-Nuke key X. Throws the structure away and invalidates the register.
-
-=item ke_type Ix, ky, iz
-
-Put the type of key Y's entry Z in register X. Current values are 0, 1, and 2
-for Integer, String, and PMC, respectively.
-
-=item ke_value tx, ky, iz
-
-Put the value from key Y, entry Z into register X.
-
-=item chop_key Sx
-
-Toss the topmost entry from key X.
-
-=item inc_key Sx, iy
-
-Increment entry Y of key X by one.
-
-=item set_key Sw, [isp]x, iy[, iz]
-
-Set key W, offset Y, to value X. If X is a PMC, then the fourth operand must
-be specified. It can have a value of 0, 1, or 2, corresponding to integer,
-string, or object. Aggregates use this to figure out how to treat the key
-entry.
-
-=back
-
-=head3 Properties
-
-Properties are a sort of runtime note attached to a PMC. Any PMC can have
-properties on it. Properties live in a flat namespace, and they are not in any
-way associated with the class of the PMC that they are attached to.
-
-Properties may be used for runtime notes on variables, or other metadata that
-may change. They are not for object attributes.
-
-=over 4
-
-=item setprop Px, sy, Pz
-
-Set the property named Y of PMC X to the PMC in Z
-
-=item getprop Px, sy, Pz
-
-Get the property named Y from PMC Z and put the result in register X. Returns
-a NULL if the property doesn't exist.
-
-=item delprop Px, sy
-
-Delete the property Y from PMC X
-
-=item prophash Px, Py
-
-Fetch the properties from Y, put them in a Hash, and put the Hash in X.
-
-=back
-
-=head3 Symbolic support for HLLs
-
-=over 4
-
-=item setline ix
-
-Sets the 'current line' marker.
-
-=item setfile sx
-
-Sets the 'current file' marker.
-
-=item setpackage sx
-
-Sets the 'current package' marker.
-
-=item getline ix
-
-Fetches the 'current line' marker.
-
-=item getfile sx
-
-Fetches the 'current file' marker.
-
-=item getpackage sx
-
-Fetches the 'current package' marker.
-
-=back
-
-=head3 Foreign library access
-
-These are the ops we use to load in and interface to non-parrot libraries.
-
-=over 4
-
-=item loadlib Px, Sy
-
-Load in the library whose name is specified by y, and put a handle to it into
-P register x.
-
-=item dlfunc Pw, Px, Sy, Sz
-
-Find a routine named Y, in library X (which you did, of course, open with
-loadlib), and put a sub PMC onto W for it. You can call this sub as if it were
-any other parrot subroutine.
-
-Z has the function signature, which tells Parrot how to build the interface
-from parrot (and parrot's calling conventions) to the calling conventions of
-the library routine. Yes, this does mean that you must know the function
-signature, but if you don't know that why the heck would you be invoking the
-function, right?
-
-The signature is a series of 1 or more characters, representing the types for
-the call. The first character is the return type, while the rest are the
-parameters. The types are:
-
-=over 4
-
-=item v
-
-Void. As a return type indicates that there I<is> no return type. As a
-parameter indicates that there are no parameters. Can't be mixed with other
-parameter types.
-
-=item c
-
-Char. This is an integer type, taken from (or put into) an I register.
-
-=item s
-
-short. An integer type, taken from 0 or put into an I register
-
-=item i
-
-int. An integer type.
-
-=item l
-
-long. An integer type. You know the drill.
-
-=item f
-
-float. F register denizen.
-
-=item d
-
-double. F register, double-precision floating point type
-
-=item p
-
-PMC thingie. A generic pointer, taken from or stuck into a PMC's data pointer.
-If this is a return type, parrot will create a new UnManagedStruct PMC type,
-which is just a generic "pointer so some damn thing or other" PMC type which
-Parrot does I<no> management of.
-
-=item t
-
-string pointer. Taken from, or stuck into, a string register. (Converted to a
-null-terminated C string before passing in)
-
-=back
-
-So the signature for, for example, this SDL routine:
-
- int SDL_BlitSurface(SDL_Surface *src,
- SDL_Rect *srcrect,
- SDL_Surface *dst,
- SDL_Rect *dstrect);
-
-would be C<ipppp>, since it returns an integer and takes four pointers.
-Presumably previous calls would have set those pointers up properly.
-
-Do note that parrot makes no guarantees as to the behaviour of the libraries,
-and currently does no type checking on the input parameters. We will fix that
-later.
-
-The generated routine follows the calling conventions in PDD03. Note that int,
-string, pmc, and float parameters are counted separately. So if you have a
-signature of C<ippiidd> the return goes into I5, and the parameters come from
-P5, P6, I5, I6, N5, and N6, respectively. A signature of C<ipdiidp> has the
-identical same set of registers used (and in the same order).
-
-=item invoke
-
-Invoke a subroutine in P0. Presumes that all the registers are set up right
-for the call. The invoked subroutine I<must> preserve any registers that are
-not explicitly return parameters or calling convention metadata parameters.
-(Such as the number of I reg parameters, for example)
-
-=back
-
-=head3 Runtime compilation
-
-These opcodes deal with runtime creation of bytecode and compilation of source
-code.
-
-=over 4
-
-=item compile Px, Py, Sz
-
-Compile source string Z, with compiler unit Y, and stick a handle to a
-subroutine for the resulting bytecode segment (already loaded into the current
-interpreter) into X.
-
-Y is a assembler/compiler object of some sort, as registered with the
-B<compreg> opcode or the Parrot_compreg function. This will be something like
-"Perl5", "Perl6", "Perl5RE", "Perl6RE", "Python", "Ruby"... you get the
-picture.
-
-Imcc registers "PASM" and "PIR" compilers automatically.
-
-This is a high-level op, with the assumption that the resulting sub will be
-called. It's the equivalent of perl 5's string eval, except for the actual
-execution of the resulting code.
-
-=item compreg Px, Sy
-
-Get a compiler for source type Y.
-
-=item compreg Sx, Py
-
-Register the sub Y as a parser/compiler function named X. It will be called
-whenever anyone invokes the compile op with the name X.
-
-=back
+L<docs/ops> for a list of current parrot opcodes,
=head2 References
Modified: branches/gc_massacre/docs/pdds/draft/pdd11_extending.pod
==============================================================================
--- branches/gc_massacre/docs/pdds/draft/pdd11_extending.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/docs/pdds/draft/pdd11_extending.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -73,13 +73,13 @@
A keyed version of C<Parrot_PMC_get_pointer>. Returns the pointer value of
whatever is stored at the element of the PMC indexed by C<key>.
-=item C<Parrot_PMC_get_intval(interp, pmc)>
+=item C<Parrot_PMC_get_integer(interp, pmc)>
Returns the integer value of the PMC.
-=item C<Parrot_PMC_get_intval_intkey(interp, pmc, Parrot_Int key)>
+=item C<Parrot_PMC_get_integer_keyed_int(interp, pmc, Parrot_Int key)>
-A keyed version of C<Parrot_PMC_get_intval>. Returns the integer value of
+A keyed version of C<Parrot_PMC_get_integer>. Returns the integer value of
whatever is stored at the element of the PMC indexed by C<key>.
=item C<Parrot_PMC_get_numval(interp, pmc)>
Modified: branches/gc_massacre/docs/pdds/pdd27_multiple_dispatch.pod
==============================================================================
--- branches/gc_massacre/docs/pdds/pdd27_multiple_dispatch.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/docs/pdds/pdd27_multiple_dispatch.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -207,11 +207,7 @@
=item Parrot_mmd_invoke
-Make a multiple dispatch call. Similar in syntax to C<Parrot_PCCINVOKE>, but
-doesn't separate out the invocant before the signature since the call can have
-multiple invocants. A significant part of the code from C<Parrot_PCCINVOKE>
-can be factored out to helper routines used by both C<Parrot_PCCINVOKE> and
-C<Parrot_mmd_invoke>.
+Make a multiple dispatch call.
void
Parrot_mmd_invoke(PARROT_INTERP, NOTNULL(STRING *sub_name),
Modified: branches/gc_massacre/docs/pdds/pdd28_strings.pod
==============================================================================
--- branches/gc_massacre/docs/pdds/pdd28_strings.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/docs/pdds/pdd28_strings.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -583,7 +583,7 @@
=head4 string_make
A crippled version of a string initializer, now replaced with the full version
-C<Parrot_string_new_init>.
+C<Parrot_str_new_init>.
=head4 string_capacity
Modified: branches/gc_massacre/docs/project/release_manager_guide.pod
==============================================================================
--- branches/gc_massacre/docs/project/release_manager_guide.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/docs/project/release_manager_guide.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -118,10 +118,23 @@
=item f
+In the two files F<src/ops/core_ops.c> and F<include/parrot/oplib/core_ops.h>
+is the function C<Parrot_DynOp_core_a_b_c>, which has a name that includes
+the version number. a_b_c is the version number. You have to update this
+version number on two places in the file F<src/ops/core_ops.c>.
+In the file F<include/parrot/oplib/core_ops.h> you have to change this line:
+
+ op_lib_t *Parrot_DynOp_core_a_b_c(PARROT_INTERP, long init);
+
+Ignore the warning to not edit this files. It is necessary to edit this files,
+so that "make" builds with the increased version number.
+
+=item g
+
Configure parrot and run C<make distro_tests>, and either fix
what those tests complain about, or fix them so they don't complain.
-=item g
+=item h
If this is a developer release, or there have been no new entries to the
F<PBC_COMPAT> file, skip this step.
@@ -137,12 +150,13 @@
policy. (Those changes are all included within the major version number
increase for the supported release.)
-Once you've updated PBC_COMPAT, run C<sh tools/dev/mk_native_pbc> to update the
+Once you've updated PBC_COMPAT, running C<sh tools/dev/mk_packfile_pbc> if
+necessary, then run C<sh tools/dev/mk_native_pbc> to update the
pbc files used in the native pbc tests. Note that you must have Parrot already
built for this to work, and that this script will reconfigure and rebuild
Parrot with various primitive size options.
-=item h
+=item i
Make sure everything works:
@@ -218,9 +232,11 @@
$ mkdir ~/ftp/releases/supported/a.b.c
-Copy the different compressed tarballs from your machine into the new directory.
+Copy the different compressed tarballs and the according checksum files from
+your machine into the new directory.
$ scp parrot-a.b.c.tar.gz parrot-a.b.c.tar.bz2 \
+ parrot-a.b.c.tar.gz.sha256 parrot-a.b.c.tar.bz2.sha256 \
<USERNAME>@ftp-osl.osuosl.org:~/ftp/releases/devel/a.b.c/.
(Or using C<wget> or whatever tool you prefer.)
@@ -246,6 +262,9 @@
bad idea to add a "highlights" section to draw attention to major new
features, just be sure to say the same thing in both text and HTML versions.
+Be sure to include the SHA1 sums of the tarballs in the release announcement;
+They're automatically generated by C<make release>.
+
=item 10.
Update the website. You will need an account with editor rights
@@ -394,10 +413,12 @@
visible at
L<http://www.google.com/calendar/render?cid=ldhctdamsgfg5a1cord52po9h8@group.calendar.google.com>.
- - Jun 15, 2010 - 2.5 - gerd
- - Jul 20, 2010 - 2.6* - coke
- - Aug 17, 2010 - 2.7 - ??
- - Sep 21, 2010 - 2.8 - gerd
+ - Aug 17, 2010 - 2.7 - mikehh
+ - Sep 21, 2010 - 2.8 - gerd
+ - Oct 19, 2010 - 2.9* - gerd
+ - Nov 16, 2010 - 2.10 - ??
+ - Dec 21, 2010 - 2.11 - ??
+ - Jan 18, 2010 - 3.0* - ??
=cut
Modified: branches/gc_massacre/docs/project/support_policy.pod
==============================================================================
--- branches/gc_massacre/docs/project/support_policy.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/docs/project/support_policy.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -58,9 +58,12 @@
features we will also regularly deprecate features and remove them. To
ease the burden of these changes on the users, our policy is to notify
users of these deprecations in at least one supported release before
-removal. Deprecation notices are listed in the file L<DEPRECATED.pod>,
-together with a version number to help us track when the feature is safe
-to remove.
+removal and to provide users with a reasonable upgrade path. Deprecation
+notices are listed in the file L<DEPRECATED.pod>, together with a version
+number to help us track when the feature is safe to remove. The suggested
+upgrade paths for deprecated features can be found on the ParrotDeprecations
+wiki page. Note that deprecation removals that are committed without an
+appropriate upgrade path are subject to reversion.
For example, if a feature exists in Parrot 2.0 (January 2010), and is
not listed for deprecation in that release, the user can be confident
@@ -71,13 +74,45 @@
next supported release. We sometimes delay removing deprecated features
for various reasons, including dependencies by other parts of the core.
-The developer releases have more flexibility in feature removal, while
-still meeting the deprecation requirements for support releases. A
-feature that has a deprecation notification in the 2.0 release may be
-removed from any monthly developer release between 2.0 and the next
-supported release, though we're likely to stagger the removals. An
-experimental feature that was never included in a supported release may
-be removed before a supported release without a deprecation cycle.
+The developer releases have more flexibility in feature removal, while still
+meeting the deprecation requirements for support releases. A feature that has a
+deprecation notification in the 2.0 release may be removed from any monthly
+developer release between 2.0 and the next supported release, though we're
+likely to stagger the removals.
+
+=head2 Deprecation Notifications
+
+HLLs, libraries and other users of Parrot will inevitably find that we
+deprecate some core features which they depend on. In order to minimize the
+pain caused by this deprecation and the subsequent "upgrade tax" (i.e. the time
+users must spend to keep their code working after an upgrade), we now forbid
+the removal of any deprecated feature until an appropriate upgrade path has
+been documented. Any deprecated features that are removed without an
+appropriate notification are subject to reversion until such notifications have
+been added. The single (rare) exception to this rule is any core feature which
+is broken or incomplete to the point that it is deemed unusable by any user.
+
+These notifications must be listed on the ParrotDeprecations wiki page, along
+with ticket numbers, a short summary of the deprecation and the expected impact
+on users. A longer explanation of each deprecation must be put on a page
+dedicated to the deprecations for a specific supported release. This page
+provides a short description of each change, its rationale and at least one
+example of how affected code can be modified to work after the deprecation
+takes effect.
+
+The purpose of these notifications is to make life easier for users of Parrot.
+If an existing feature is incomplete or broken to the degree that no external
+projects is likely to be able to make use of it, the removal of that feature
+does not require a documented upgrade path. We expect such deprecations to be
+very rare.
+
+=head2 Experimental Features
+
+From time to time, we may add features to get feedback on their utility and
+design. Marking them as "Experimental" in F<DEPRECATED.pod> indicates that we
+may modify or remove them without official deprecation notices. Use them at
+your own risk--and please provide feedback through official channels if you use
+them successfully or otherwise.
=head2 Supported Older Versions
Modified: branches/gc_massacre/docs/resources/parrot.css
==============================================================================
--- branches/gc_massacre/docs/resources/parrot.css Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/docs/resources/parrot.css Tue Aug 3 22:27:14 2010 (r48298)
@@ -79,6 +79,7 @@
div#footer {
background: #121A28;
text-align: center;
+ color: white;
padding-top: 1px;
padding-bottom: 10px;
}
Modified: branches/gc_massacre/editor/README.pod
==============================================================================
--- branches/gc_massacre/editor/README.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/editor/README.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -14,14 +14,20 @@
=head2 Vim
-Calling C<make vim-install> in the F<editor/> directory will
-install several files in F<~/.vim>. All these files have the F<.vim>
+By default calling C<make vim-install> in the F<editor/> directory will
+install several files in F<~/.vim>. You can use the variable C<VIM_DIR>
+on the command line by calling C<make> to choose a different target directory
+for the vim files.
+
+ make vim-install [VIM_DIR=/vim_files_target_directory]
+
+All these files have the F<.vim>
extension. F<pir.vim> (generated from F<pir_vim.in>), F<pasm.vim>, and
F<pmc.vim> are syntax files; F<indent_pir.vim> is an indent plugin;
and F<filetype_parrot.vim> is a filetype script that tells vim to
associate the extensions .pir, .pasm, and .pmc with the
right syntax. The syntax files are installed to F<~/.vim/syntax/>;
-F<filetype_parrot.vim> is installed to F<~/.vim/ftdetect>;
+F<filetype_parrot.vim> is installed to F<~/.vim/parrot.vim>;
F<indent_pir.vim> is copied to F<~/.vim/indent/pir.vim>. If you want
indenting, you should also place C<filetype indent on> somewhere in
your F<~/.vimrc>.
@@ -35,7 +41,7 @@
in F<editor/> to build it.
-TODO: How do we install Kate syntax files?
+Copy the file F<imcc.xml> to F<~/.kde/share/apps/katepart/syntax>.
=head2 Emacs
@@ -77,7 +83,7 @@
(function (lambda ()
(setq indent-tabs-mode nil))))
-to F<~/.emacs> as this seems to prevent the odd behavior that is noted when
+to F<~/.emacs> as this seems to prevent the odd behavior that is noted when
using tabs in the pasm mode.
=back
Modified: branches/gc_massacre/editor/filetype_parrot.vim
==============================================================================
--- branches/gc_massacre/editor/filetype_parrot.vim Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/editor/filetype_parrot.vim Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,4 +1,3 @@
au BufNewFile,BufRead *.pmc set ft=pmc cindent
au BufNewFile,BufRead *.pasm set ft=pasm ai sw=4
au BufNewFile,BufRead *.pir set ft=pir ai sw=4
-au BufNewFile *.pir 0r ~/.vim/skeleton.pir
Modified: branches/gc_massacre/editor/mk_skeleton.pir
==============================================================================
--- branches/gc_massacre/editor/mk_skeleton.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/editor/mk_skeleton.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -4,6 +4,7 @@
# Generate a skeleton PIR file that adheres to parrot developer standards.
# intended for people who hack on parrot itself, not users of parrot.
+.loadlib 'sys_ops'
.include 'tm.pasm'
.sub 'main' :main
Modified: branches/gc_massacre/examples/compilers/japhc.c
==============================================================================
--- branches/gc_massacre/examples/compilers/japhc.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/compilers/japhc.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -69,6 +69,8 @@
=item C<static int unescape(char *string)>
+Unescape a string.
+
=cut
*/
Modified: branches/gc_massacre/examples/embed/cotorra.c
==============================================================================
--- branches/gc_massacre/examples/embed/cotorra.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/embed/cotorra.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -227,18 +227,18 @@
if (stname) {
Parrot_PMC rootns = Parrot_get_root_namespace(interp);
Parrot_String parrotname = create_string(interp, "parrot");
- Parrot_PMC parrotns = Parrot_PMC_get_pmc_strkey(interp, rootns, parrotname);
+ Parrot_PMC parrotns = Parrot_PMC_get_pmc_keyed_str(interp, rootns, parrotname);
Parrot_String name = create_string(interp, stname);
- Parrot_PMC start = Parrot_PMC_get_pmc_strkey(interp, parrotns, name);
+ Parrot_PMC start = Parrot_PMC_get_pmc_keyed_str(interp, parrotns, name);
if (Parrot_pmc_is_null(interp, start))
fail("start sub not found");
if (i < argc) {
int pos;
Parrot_PMC arg = Parrot_PMC_new(interp,
Parrot_PMC_typenum(interp, "FixedStringArray"));
- Parrot_PMC_set_intval(interp, arg, argc - i);
+ Parrot_PMC_set_integer_native(interp, arg, argc - i);
for (pos = 0; i < argc; ++i, ++pos) {
- Parrot_PMC_set_string_intkey(interp, arg, pos, create_string(interp, argv[i]));
+ Parrot_PMC_set_string_keyed_int(interp, arg, pos, create_string(interp, argv[i]));
}
Parrot_ext_call(interp, start, "P->", arg);
}
Modified: branches/gc_massacre/examples/io/http.pir
==============================================================================
--- branches/gc_massacre/examples/io/http.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/io/http.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -13,9 +13,7 @@
HTTP client, connects to WWW port and grabs a page (L<http://www.ibm.com>).
-You should be running the echo service on your box (port 7). Be sure to
-set C<PARROT_NET_DEVEL> to 1 in F<io/io_private.h> and rebuld Parrot or
-the network layer won't exist.
+You should be running the echo service on your box (port 7).
=cut
Modified: branches/gc_massacre/examples/io/httpd.pir
==============================================================================
--- branches/gc_massacre/examples/io/httpd.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/io/httpd.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -270,7 +270,6 @@
ERR_NO_SOCKET:
print "Could not open socket.\n"
- print "Did you enable PARROT_NET_DEVEL in include/io_private.h?\n"
end
ERR_bind:
print "bind failed\n"
Modified: branches/gc_massacre/examples/languages/squaak/MAINTAINER
==============================================================================
--- branches/gc_massacre/examples/languages/squaak/MAINTAINER Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/languages/squaak/MAINTAINER Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,4 +1,5 @@
# $Id$
-N: Klaas-Jan Stol (kj,kjs)
-E: parrotcode at gmail dot com
+N: Tyler Curtis
+U: tcurtis
+E: tyler.l.curtis at gmail.com
\ No newline at end of file
Modified: branches/gc_massacre/examples/languages/squaak/README
==============================================================================
--- branches/gc_massacre/examples/languages/squaak/README Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/languages/squaak/README Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,51 +1,5 @@
-Squaak: A Simple Language
-
-Squaak is a case-study language described in the Parrot Compiler Tools
-tutorial at http://www.parrotblog.org/2008/03/targeting-parrot-vm.html.
-
-Note that Squaak is NOT an implementation Squeak; it has nothing to do
-with any SmallTalk implementation.
-
-Squaak demonstrates some common language constructs, but at the same
-time is currently lacking some other, seemingly simple features. For instance,
-Squaak does not have break or continue statements (or equivalents
-in your favorite syntax). Once PCT has built-in support for these, they
-will be added.
-
-Squaak has the following features:
-
- * global and local variables
- * basic types: integer, floating-point and strings
- * aggregate types: arrays and hash tables
- * operators: +, -, /, *, %, <, <=, >, >=, ==, !=, .., and, or, not
- * subroutines and parameters
- * assignments and various control statements, such as "if" and "while" and "return"
- * library functions: print, read
-
-A number of common (more advanced) features are missing.
-Most notable are:
-
- * classes and objects
- * exceptional control statements such as break and continue
- * advanced control statements such as switch
- * closures (nested subroutines and accessing local variables in an outer scope)
-
-Squaak is designed to be a simple showcase language, to show the use of the
-Parrot Compiler Tools for implementing a language.
-
-In order to use Squaak:
-
- $ make
-
-Running Squaak in interactive mode:
-
- $ ../../parrot squaak.pbc
-
-Running Squaak with a file (for instance, the included Game of Life example):
-
- $ ../../parrot squaak.pbc examples/life.sq
-
-Bug reports and improvements can be sent to the maintainer or Parrot porters
-mailing list.
+Language 'Squaak' was created with tools/dev/mk_language_shell.pl, r47087.
+ $ parrot setup.pir
+ $ parrot setup.pir test
Modified: branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_1.pod
==============================================================================
--- branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_1.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_1.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -99,36 +99,29 @@
=over 4
-=item B<P>arrot B<G>rammar B<E>ngine (PGE).
+=item B<N>ot B<Q>uite B<P>erl (6) (NQP-rx).
-The PGE is an advanced engine for regular expressions. Besides regexes as found
-in Perl 5, it can also be used to define language grammars, using Perl 6 syntax.
-(Check the references for the specification.)
+NQP is a lightweight language inspired by Perl 6 and can be used to write the
+methods that must be executed during the parsing phase, just as you can write
+actions in a Yacc/Bison input file. It also provides the regular expression engine we'll use to
+write our grammar. In addition to the capabilities of Perl 5's regexes, the Perl 6 regexes that NQP
+ implements can be used to define language grammars. (Check the references for the specification.)
=item B<P>arrot B<A>bstract B<S>yntax B<T>ree (PAST).
The PAST nodes are a set of classes defining generic abstract syntax tree nodes
that represent common language constructs.
-=item HLLCompiler class.
+=item HLL::Compiler class.
This class is the compiler driver for any PCT-based compiler.
-=item B<N>ot B<Q>uite B<P>erl (6) (NQP).
-
-NQP is a lightweight language inspired by Perl 6 and can be used to write the
-methods that must be executed during the parsing phase, just as you can write
-actions in a Yacc/Bison input file.
-
=back
=head2 Getting Started
For this tutorial, it is assumed you have successfully compiled parrot
-(and maybe even run the test suite). If you browse through the languages
-directory in the Parrot source tree, you'll find a number of language
-implementations. Most of them are not complete yet; some are maintained
-actively and others aren't. If, after reading this tutorial, you feel like
+(and maybe even run the test suite). If, after reading this tutorial, you feel like
contributing to one of these languages, you can check out the mailing list or
join IRC (see the references section for details).
@@ -137,13 +130,13 @@
language implementation. In order to generate these files for our language,
type (assuming you're in Parrot's root directory):
- $ perl tools/dev/mk_language_shell.pl Squaak languages/squaak
+ $ perl tools/dev/mk_language_shell.pl Squaak ~/src/squaak
(Note: if you're on Windows, you should use backslashes.) This will generate the
-files in a directory F<languages/squaak>, and use the name Squaak as the language's
+files in a directory F<~/src/squaak>, and use the name Squaak as the language's
name.
-After this, go to the directory F<languages/squaak> and type:
+After this, go to the directory F<~/src/squaak> and type:
$ parrot setup.pir test
@@ -165,20 +158,22 @@
Save it the as file F<test.sq> and type:
- $ ../../parrot squaak.pbc test.sq
+ $ ./installable_squaak test.sq
+"installable_squaak" is a "fake-cutable" an executable that bundles the Parrot interpreter and the
+compiled bytecode for a program to allow treating a Parrot program as a normal executable program.
This will run Parrot, specifying squaak.pbc as the file to be run by Parrot,
which takes a single argument: the file test.sq. If all went well, you should
see the following output:
- $ ../../parrot squaak.pbc test.sq
+ $ ./installable_squaak test.sq
Squaak!
Instead of running a script file, you can also run the Squaak compiler as an
interactive interpreter. Run the Squaak compiler without specifying a script
file, and type the same statement as you wrote in the file:
- $ ../../parrot squaak.pbc
+ $ ./installable_squaak
say "Squaak!";
which will print:
@@ -191,7 +186,7 @@
coming. Hopefully you now have a global idea of what the Parrot Compiler Tools
are, and how they can be used to build a compiler targeting Parrot. If you want
to check out some serious usage of the PCT, check out Rakudo (Perl 6 on Parrot)
-in languages/perl6 or Pynie (Python on Parrot) in languages/pynie.
+at http://rakudo.org/ or Pynie (Python on Parrot) at http://code.google.com/p/pynie/ .
The next episodes will focus on the step-by-step implementation of our language,
including the following topics:
@@ -200,7 +195,7 @@
=item structure of PCT-based compilers
-=item using PGE rules to define the language grammar
+=item using NQP-rx rules to define the language grammar
=item implementing operator precedence using an operator precedence table
@@ -223,8 +218,8 @@
=head3 Advanced interactive mode.
-Launch your favorite editor and look at the file squaak.pir in the directory
-languages/squaak. This file contains the main function (entry point) of the
+Launch your favorite editor and look at the file Compiler.pm in the directory
+F<~/src/squaak/src/Squaak/>. This file contains the main function (entry point) of the
compiler. The class HLLCcompiler defines methods to set a command-line banner
and prompt for your compiler when it is running in interactive mode. For
instance, when you run Python in interactive mode, you'll see:
@@ -242,19 +237,19 @@
running in interactive mode (of course you can change this according to your
personal taste):
- $ ../../parrot squaak.pbc
+ $ ./installable_squaak
Squaak for Parrot VM.
>
Add code to the file squaak.pir to achieve this.
-Hint 1: Look in the onload subroutine.
+Hint 1: Look in the INIT block.
-Hint 2: Note that only double-quoted strings in PIR can interpret
+Hint 2: Note that only double-quoted strings in NQP can interpret
escape-characters such as '\n'.
Hint 3: The functions to do this are documented in
-compilers/pct/src/PCT/HLLCompiler.pir.
+F<compilers/pct/src/PCT/HLLCompiler.pir>.
=head2 References
@@ -270,7 +265,7 @@
=item * Operator Precedence Parsing with PCT: docs/pct/pct_optable_guide.pod
-=item * Perl 6/PGE rules syntax: Synopsis 5
+=item * Perl 6/NQP rules syntax: Synopsis 5 at http://perlcabal.org/syn/S05.html or http://svn.pugscode.org/pugs/docs/Perl6/Spec/S05-regex.pod
=back
Modified: branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_2.pod
==============================================================================
--- branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_2.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_2.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -24,7 +24,7 @@
compiler enters the interactive mode. Consider the first case, passing the file
test.sq, just as we did before:
- $ ../../parrot squaak.pbc test.sq
+ $ ./installable_squeak test.sq
When invoking our compiler like this, the file test.sq is compiled and the
generated code (bytecode) is executed immediately by Parrot. How does this work,
@@ -50,7 +50,7 @@
This is an example of using the target option set to "parse", which will print
the parse tree of the input to stdout:
- $ ../../parrot squaak.pbc --target=parse test.sq
+ $ ./installable_squeak --target=parse test.sq
In interactive mode, giving this input:
@@ -58,24 +58,32 @@
will print this parse tree (without the line numbers):
- 1 "parse" => PMC 'Squaak::Grammar' => "say 42;\r\n" @ 0 {
- 2 <statement> => ResizablePMCArray (size:1) [
- 3 PMC 'Squaak::Grammar' => "say 42;\r\n" @ 0 {
- 4 <value> => ResizablePMCArray (size:1) [
- 5 PMC 'Squaak::Grammar' => "42" @ 4 {
- 6 <integer> => PMC 'Squaak::Grammar' => "42" @ 4
- 7 }
- 8 ]
- 9 }
- 10 ]
- 11 }
+ 1 "parse" => PMC 'Regex;Match' => "say 42;\n" @ 0 {
+ 2 <statementlist> => PMC 'Regex;Match' => "say 42;\n" @ 0 {
+ 3 <statement> => ResizablePMCArray (size:1) [
+ 4 PMC 'Regex;Match' => "say 42" @ 0 {
+ 5 <statement_control> => PMC 'Regex;Match' => "say 42" @ 0 {
+ 6 <sym> => PMC 'Regex;Match' => "say" @ 0
+ 7 <EXPR> => ResizablePMCArray (size:1) [
+ 8 PMC 'Regex;Match' => "42" @ 4 {
+ 9 <integer> => PMC 'Regex;Match' => "42" @ 4 {
+ 10 <VALUE> => PMC 'Regex;Match' => "42" @ 4
+ 11 <decint> => \parse[0][0]
+ 12 }
+ 13 }
+ 14 ]
+ 15 }
+ 16 }
+ 17 ]
+ 18 }
+ 19 }
When changing the value of the target option, the output changes into a
different representation of the input. Why don't you try that right now?
So, a HLLCompiler object has four compilation phases: parsing, construction of a
Parrot Abstract Syntax Tree (PAST), construction of a Parrot Opcode Syntax Tree
-(POST), generation of Parrot Intermediate Representation (PIR). After
+(POST) and generation of Parrot Intermediate Representation (PIR). After
compilation, the generated PIR is executed immediately.
If your compiler needs additional stages, you can add them to your HLLCompiler
@@ -89,58 +97,55 @@
Parse phase: match objects and PAST construction
During the parsing phase, the input is analyzed using Perl 6's extended regular
expressions, known as Rules (see Synopsis 5 for details). When a rule matches
-some input string, a so-called Match object is created. A Match object is a
-combined array and hashtable, implying it can be indexed by integers as well as
+some input string, a Match object is created. A Match object is a
+combined array and hashtable and can be indexed by integers as well as
strings. As rules typically consist of other (sub) rules, it is easy to retrieve
a certain part of the match. For instance, this rule:
rule if_statement {
'if' <expression> 'then' <statement> 'end'
- {*}
}
has two other subrules: expression and statement. The match object for the rule
-if_statement represents the whole string from if to end. When you're interested
-only in the expression or statement part, you can retrieve that by indexing the
-match object by the name of the subrule (in this case, expression and statement,
-respectively).
+C<if_statement> represents the whole string from if to end. You can retrieve a
+the Match for a subrule by indexing into the Match object using the name of
+that subrule. For instance, to get the match for C<< <expression> >>, you
+would use C<< $/<expression> >>. (In nqp, C<< $foo<bar> >> indexes into
+C<$foo> using the constant string C<bar> as a hash key.)
During the parse phase, the PAST is constructed. There is a small set of PAST
-node types, for instance, C<PAST::Var> to represent variables (identifiers, such
-as C<print>), C<PAST::Val> to represent literal values (for instance, C<"hello">
-and C<42>), and so on. Later we shall discuss the various PAST nodes in more
-detail.
+node types. For instance, C<PAST::Var> to represent variables (identifiers, such
+as C<print>) and C<PAST::Val> to represent literal values (for instance, C<"hello">
+and C<42>). Later we'll go through the various PAST nodes in more detail.
Now, you might wonder, at which point exactly is this PAST construction
-happening? This is where the special {*} symbol comes in, just below the string
-'if' in the if_statement rule shown above. These special markers indicate that a
-parse action should be invoked. Such a parse action is just a method that has
-the same name as the rule in which it is written (in this case: if_statement).
-So, during the parsing phase, several parse actions are executed, each of which
-builds a piece of the total PAST representing the input string. More on this
-will be explained later.
-
-The Parrot Abstract Syntax Tree is just a different representation of the same
-input string (your program being compiled). It is a convenient data structure to
-transform into something different (such as executable Parrot code) but also to
-do all sorts of analysis, such as compile-time type checking.
+happening? At the end of a successfully matching rule, the rule's parse action
+is performed. Such a parse action is just a method that has the same name as
+the rule which triggers it (in this case: C<if_statement>). So, during the
+parsing phase, several parse actions are executed, each of which builds a piece
+of the total PAST representing the input string.
+
+A Parrot Abstract Syntax Tree is just a compiler-friendly tree-based
+representation of your program. It is convenient both for analysis and
+optimization, and for further transformation into a lower-level representation
+such as POST.
=head2 PAST to POST
-After the parse phase during which the PAST is constructed, the HLLCompiler
-transforms this PAST into something called a Parrot Opcode Syntax Tree (POST).
-The POST representation is also a tree structure, but these nodes are on a lower
-abstraction level. For instance, on the PAST level there is a node type to
-represent a while statement (constructed as
-C<PAST::Op.new( :pasttype('while') )> ).
+After the PAST is constructed, the HLLCompiler transforms this PAST into a
+Parrot Opcode Syntax Tree (POST). The POST representation is also a tree
+structure, but these nodes are on a lower abstraction level and correspond very
+closely to PIR ops. For instance, the PAST node type which represents a while
+statement (constructed as C<PAST::Op.new( :pasttype('while') )> ) decomposes
+into several POST nodes.
-The template for a while statement typically consists of a number of labels and
+The template for a C<while> statement typically consists of a number of labels and
jump instructions. On the POST level, the same while statement is represented by
-a set of nodes, each representing a one instruction or a label. Therefore, it is
-much easier to transform a POST into something executable than when this is done
-from the PAST level.
+a set of nodes, each representing a one instruction or a label. This makes it
+much easier to transforn POST into executable code.
+
Usually, as a user of the PCT, you don't need to know details of POST nodes,
-which is why this will not be discussed in further detail. Use the target option
+which is why this will not be discussed in further detail. Use C<--target=post>
to see what a POST looks like.
=head2 POST to PIR
@@ -168,34 +173,35 @@
=back
-where we noted that the first two are done during the parse stage. Now, as
-you're reading this tutorial, you're probably interested in using the PCT for
-implementing Your Favorite Language for Parrot. We already saw that a language
-grammar is expressed in Perl 6 Rules. What about the other transformations?
-Well, earlier in this episode we mentioned the term parse actions, and that
-these actions create PAST nodes. After you have written a parse action for each
-grammar rule, you're done!
+The first two transformations happen during the parse stage. Now, as you're
+reading this tutorial, you're probably interested in using the PCT to implement
+Your Favorite Language on top of Parrot. We already saw that a language grammar
+is expressed in Perl 6 Rules. What about the other transformations? Well,
+earlier in this episode we mentioned parse actions and that these actions
+create PAST nodes. After you have written a parse action for each grammar rule,
+you're done!
Say what?
That's right. Once you have correctly constructed a PAST, your compiler can
generate executable PIR, which means you just implemented your first language
-for Parrot. Of course, you still need to implement any language specific
-libraries, but that's besides the point.
+on top of Parrot. Of course, you'll still need to implement any language specific
+libraries, but that's beside the point.
-PCT-based compilers already know how to transform a PAST into a POST, and how to
-transform a POST into PIR. These transformation stages are already provided by
+PCT-based compilers already know how to transform PAST into POST and how to
+transform POST into PIR. These transformation stages are already provided by
the PCT.
=head2 What's next?
In this episode we took a closer look at the internals of a PCT-based compiler.
-We discussed the four compilation stages, that transform an input string (a
-program, or script, depending on your definition) into a PAST, a POST and
-finally executable PIR.
+We discussed the four compilation stages which transform an input string (a
+program or script, depending on your definition) into PAST, POST and finally
+executable PIR.
+
The next episodes is where the Fun Stuff is: we will be implementing Squaak for
Parrot. Piece by piece, we will implement the parser and the parse actions.
-Finally, we shall demonstrate John Conway's "Game of Life" running on Parrot,
+Finally, we'll demonstrate John Conway's "Game of Life" running on Parrot,
implemented in Squaak.
=head2 Exercises
@@ -203,27 +209,22 @@
Last episode's exercise was to add a command line banner and prompt for the
interactive mode of our compiler. Given the hints that were provided, it was
probably not too hard to find the solution, which is shown below. This
-subroutine onload can be found in the file Squaak.pir. The relevant lines are
+INIT block can be found in the file src/Squaak/Compiler.pm. The relevant lines are
marked with a comment
- .sub 'onload' :anon :load :init
- load_bytecode 'PCT.pbc'
-
- $P0 = get_hll_global ['PCT'], 'HLLCompiler'
- $P1 = $P0.'new'()
- $P1.'language'('Squaak')
- $P1.'parsegrammar'('Squaak::Grammar')
- $P1.'parseactions'('Squaak::Grammar::Actions')
-
- $P1.'commandline_banner'("Squaak for Parrot VM\n") ## set banner
- $P1.'commandline_prompt'('> ') ## set prompt
-
- .end
+ INIT {
+ Squaak::Compiler.language('Squaak');
+ Squaak::Compiler.parsegrammar(Squaak::Grammar);
+ Squaak::Compiler.parseactions(Squaak::Actions);
+
+ Squaak::Compiler.commandline_banner("Squaak for Parrot VM.\n"); # set banner
+ Squaak::Compiler.commandline_prompt('> '); # set prompt
+ }
Starting in the next episode, the exercises will be more interesting. For now,
it would be useful to browse around through the source files of the compiler,
-and see if you understand the relation between the grammar rules in grammar.pg
-and the methods in actions.pm.
+and see if you understand the relation between the grammar rules in src/Squaak/Grammar.pm
+and the methods in src/Squaak/Actions.pm.
It's also useful to experiment with the --target option described in this
episode. If you don't know PIR, now is the time to do some preparation for that.
There's sufficient information to be found on PIR, see the References section
@@ -236,10 +237,7 @@
=item 1. PIR language specification: docs/pdds/draft/PDD19_pir.pod
-=item 2. PIR articles: docs/art/*.pod
-
=back
-
=cut
Modified: branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_3.pod
==============================================================================
--- branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_3.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_3.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -10,11 +10,10 @@
language called I<Squaak>, using a Perl script provided with Parrot. We
discussed the general structure of PCT-based compilers, and each of the default
four transformation phases.
-This third episode is where the Fun begins. In this episode, we shall introduce
-the full specification of Squaak. In this and following episodes, we will
-implement this specification step by step, in small increments that are easy to
-digest. Once you get a feel for it, you'll notice implementing Squaak is almost
-trivial, and most important, a lot of fun! So, let's get started!
+This third episode is where the Fun begins. In this episode, we'll introduce
+the full specification of Squaak. In this and following episodes, we'll
+implement this specification step by step in small easy-to-digest increments.
+So let's get started!
=head2 Squaak Grammar
@@ -26,7 +25,7 @@
[step] indicates an optional step
'do' indicates the keyword 'do'
-Below is Squaak's grammar. The start symbol is program.
+Below is Squaak's grammar. The start symbol is C<program>.
program ::= {stat-or-def}
@@ -123,66 +122,66 @@
"real world" languages such as C, not to mention Perl 6. No worries though, we
won't implement the whole thing at once, but in small steps. What's more, the
exercises section contains enough exercises for you to learn to use the PCT
-yourself! The solutions to these exercises will be posted a few days later (but
-you really only need a couple of hours to figure them out).
+yourself! The solutions to these exercises are in later episodes if you don't
+want to take the time to solve them yourself.
=head2 Semantics
-Most of the Squaak language is straightforward; the if-statement executes
+Most of the Squaak language is straightforward; the C<if-statement> executes
exactly as you would expect. When we discuss a grammar rule (for its
-implementation), a semantic specification will be included. This is to prevent
-myself from writing a complete language manual, which could take some pages.
-
-=head2 Interactive Squaak
-
-Although the Squaak compiler can be used in interactive mode, there is one point
-of attention to be noted. When defining a local variable using the C<var>
-keyword, this variable will be lost in any consecutive commands. The variable
-will only be available to other statements within the same command (a command is
-a set of statements before you press enter). This has to do with the code
-generation by the PCT, and will be fixed at a later point. For now, just
-remember it doesn't work.
+implementation), a semantic specification will be included. This is to avoid
+writing a complete language manual since that's probably not what you're here
+for.
=head2 Let's get started!
In the rest of this episode we will implement the basic parts of the grammar,
such as the basic data types and assignments. At the end of this episode,
-you'll be able to assign simple values to (global) variables. It ain't much, but
+you'll be able to assign simple values to (global) variables. It's not much but
it's a very important first step. Once these basics are in place, you'll notice
-that adding a certain syntactic construct becomes a matter of minutes.
+that adding a certain syntactic construct can be done in a matter of minutes.
-First, open your editor and open the files F<src/parser/grammar.pg> and
-F<src/parser/actions.pm>. The former implements the parser using Perl 6 rules,
+First, open your editor and open the files F<src/Squaak/Grammar.pm> and
+F<src/Squaak/Actions.pm>. The former implements the parser using Perl 6 rules
and the latter contains the parse actions, which are executed during the parsing
stage.
-In the file grammar.pg, you'll see the top-level rule, named C<TOP>. It's
+In the file Grammar.pm you'll see the top-level rule, named C<TOP>. It's
located at, ehm... the top. When the parser is invoked, it will start at this
-rule (a rule is nothing else than a method of the grammar class).
-When we generated this language (in the first episode), some default rules were
-defined. Now we're going to make some small changes, just enough to get us
-started. Firstly, change the statement rule to this:
+rule. A rule is nothing else than a method of the Grammar class. When we
+generated this language some default rules were defined. Now we're going to
+make some small changes, just enough to get us started. Replace the
+C<statement> rule with this rule:
rule statement {
<assignment>
- {*}
}
-and add these rules:
+Replace the statementlist rule with this:
+
+ rule statement_list {
+ <stat_or_def>*
+ }
+
+When you work on the action methods later, you'll also want to replace $<statement> in the action
+method with $<stat_or_def>
+
+Add these rules:
+
+ rule stat_or_def {
+ <statement>
+ }
rule assignment {
- <primary> '=' <expression>
- {*}
+ <primary> '=' <EXPR>
}
rule primary {
<identifier>
- {*}
}
token identifier {
<!keyword> <ident>
- {*}
}
token keyword {
@@ -190,15 +189,33 @@
|'not'|'or' |'sub' |'throw'|'try' |'var'|'while']>>
}
-Now, change the rule "value" into this (renaming to "expression"):
+ token term:sym<primary> {
+ <primary>
+ }
+
+Rename the token C<< term:sym<integer> >> to C<< term:sym<integer_constant> >> and
+C<< term:sym<quote> >> to C<< term:sym<string_constant> >> (to better match our
+language specification).
+
+Add action methods for term:sym<integer_constant> and term:sym<string_constant>
+to F<src/Squaak/Actions.pm>:
- rule expression {
- | <string_constant> {*} #= string_constant
- | <integer_constant> {*} #= integer_constant
+ method term:sym<integer_constant>($/) {
+ make PAST::Val.new(:value($<integer>.ast), :returns<Integer>);
+ }
+ method term:sym<string_constant>($/) {
+ my $past := $<quote>.ast;
+ $past.returns('String');
+ make $past;
}
+ method term:sym<primary>($/) {
+ make $<primary>.ast;
+ }
+
+PAST::Val nodes are used the represent constant values.
-Rename the rule C<integer> as C<integer_constant>, and C<quote> as
-C<string_constant> (to better match our language specification).
+Finally, remove the rules C<proto token statement_control>,
+C<< rule statement_control:sym<say> >>, and C<< rule statement_control:sym<print> >>.
Phew, that was a lot of information! Let's have a closer look at some things
that may look unfamiliar. The first new thing is in the rule C<identifier>.
@@ -206,16 +223,21 @@
doesn't skip whitespace between the different parts specified in the token,
while a rule does. For now, it's enough to remember to use a token if you want
to match a string that doesn't contain any whitespace (such as literal constants
-and identifiers), and use a rule if your string does (and should) contain
+and identifiers) and use a rule if your string does (and should) contain
whitespace (such as a an if-statement). We shall use the word C<rule> in a
general sense, which could refer to a token. For more information on rules and
-tokens (and there's a third type, called C<regex>), take a look at synopsis 5.
+tokens take a look at Synopsis 5 or look at Moritz's blog post on the subject
+in the references.
-In token C<identifier>, the first subrule is called an assertion. It asserts
-that an C<identifier> does not match the rule keyword. In other words, a keyword
-cannot be used as an identifier. The second subrule is called C<ident>, which is
-a built-in rule in the class C<PCT::Grammar>, of which this grammar is a
-subclass.
+In rule C<assignment>, the <EXPR> subrule is one that we haven't defined. The
+EXPR rule is inherited from HLL::Grammar, and it initiates the grammar's
+operator-precedence parser to parse an expression. For now, don't worry about
+it. All you need to know is that it will give us one of our terms.
+
+In token C<identifier> the first subrule is called an assertion. It asserts
+that an C<identifier> does not match the rule keyword. In other words a keyword
+cannot be used as an identifier. The second subrule is called C<ident> which is
+a built-in rule in the class C<PCT::Grammar>, the parent class of this grammar.
In token C<keyword>, all keywords of Squaak are listed. At the end there's a
C<<< >> >>> marker, which indicates a word boundary. Without this marker, an
@@ -225,18 +247,6 @@
matched), the string "forloop" cannot be matched as an identifier. The required
presence of the word boundary prevents this.
-The last rule is C<expression>. An expression is either a string-constant or an
-integer-constant. Either way, an action is executed. However, when the action is
-executed, it does not know what the parser matched; was it a string-constant, or
-an integer-constant? Of course, the match object can be checked, but consider
-the case where you have 10 alternatives, then doing 9 checks only to find out
-the last alternative was matched is somewhat inefficient (and adding new
-alternatives requires you to update this check). That's why you see the special
-comments starting with a "#=" character. Using this notation, you can specify a
-key, which will be passed as a second argument to the action method. As we will
-see, this allows us to write very simple and efficient action methods for rules
-such as expression. (Note there's a space between the C<#=> and the key's name).
-
=head2 Testing the Parser
It is useful to test the parser before writing any action methods. This can save
@@ -253,24 +263,21 @@
Now we have implemented the initial version of the Squaak grammar, it's time to
implement the parse actions we mentioned before. The actions are written in a
-file called F<src/parser/actions.pm>. If you look at the methods in this file,
-here and there you'll see that the match object ($/) , or rather, hash fields of
-it (like $<statement>) is evaluated in scalar context, by writing "$( ... )".
-As mentioned in Synopsis 5, evaluating a Match object in scalar context returns
-its result object. Normally the result object is the matched portion of the
-source text, but the special make function can be used to set the result object
-to some other value.
+file called F<src/Squaak/Actions.pm>. If you look at the methods in this file,
+here and there you'll see that the C<ast> method being called on the match object ($/) , or rather,
+hash fields of it (like $<statement>).
+The special make function can be used to set the ast to a value.
This means that each node in the parse tree (a Match object) can also hold its
PAST representation. Thus we use the make function to set the PAST
-representation of the current node in the parse tree, and later use the $( ... )
-operator to retrieve the PAST representation from it.
+representation of the current node in the parse tree, and later use the C<ast>
+method to retrieve the PAST representation from it.
In recap, the match object ($/) and any subrules of it (for instance
$<statement>) represent the parse tree; of course, $<statement>
represents only the parse tree what the $<statement> rule matched. So, any
action method has access to the parse tree that the equally named grammar rule
-matched, as the match object is always passed as an argument. Evaluating a parse
-tree in scalar context yields the PAST representation (obviously, this PAST
+matched, as the match object is always passed as an argument. Calling the C<ast> method
+on a parse tree yields the PAST representation (obviously, this PAST
object should be set using the make function).
If you're following this tutorial, I highly advise you to get your feet wet, and
@@ -300,8 +307,7 @@
=item 1.
Rename the names of the action methods according to the name changes we made on
-the grammar rules. So, "integer" becomes "integer_constant", "value" becomes
-"expression", and so on.
+the grammar rules. So, "integer" becomes "integer_constant", and so on.
=item 2.
@@ -326,6 +332,11 @@
=item 5.
+Write the action method for stat_or_def. Simply retrieve the result object from statement and make
+that the result object.
+
+=item 6.
+
Run your compiler on a script or in interactive mode. Use the target option to
see what PIR is being generated on the input "x = 42".
@@ -338,8 +349,7 @@
=item * Help! I get the error message "no result object".
This means that the result object was not set properly (duh!).
-Make sure each action method is invoked (check each rule for a "{*}" marker),
-and that there is an action method for that rule, and that "make" is used to set
+Make sure there is an action method for that rule and that "make" is used to set
the appropriate PAST node. Note that not all rules have action methods, for
instance the C<keyword> rule (there's no point in that).
@@ -354,6 +364,8 @@
=over 4
+=item * rules, regexes and tokens: http://perlgeek.de/blog-en/perl-5-to-6/07-rules.writeback#Named_Regexes_and_Grammars
+
=item * pdd26: ast
=item * synopsis 5: Rules
@@ -374,8 +386,7 @@
=item 1
Rename the names of the action methods according to the name changes we made
-on the grammar rules. So, "integer" becomes "integer_constant", "value" becomes
-"expression", and so on.
+on the grammar rules. So, "integer" becomes "integer_constant", and so on.
I assume you don't need any help with this.
@@ -387,15 +398,11 @@
special make function. Do the same for rule primary.
method statement($/) {
- make $( $<assignment> );
+ make $<assignment>.ast;
}
-Note that at this point, the rule statement doesn't define different #= keys
-for each type of statement, so we don't declare a parameter C<$key>. This will
-be changed later.
-
method primary($/) {
- make $( $<identifier> );
+ make $<identifier>.ast;
}
=item 3
@@ -417,8 +424,8 @@
find out how you do such a binding).
method assignment($/) {
- my $lhs := $( $<primary> );
- my $rhs := $( $<expression> );
+ my $lhs := $<primary>.ast;
+ my $rhs := $<EXPR>.ast;
$lhs.lvalue(1);
make PAST::Op.new( $lhs, $rhs, :pasttype('bind'), :node($/) );
}
@@ -427,6 +434,15 @@
=item 5
+Write the action method for stat_or_def. Simply retrieve the result object from statement and make
+that the result object.
+
+ method stat_or_def($/) {
+ make $<statement>.ast;
+ }
+
+=item 6
+
Run your compiler on a script or in interactive mode. Use the target option to
see what PIR is being generated on the input "x = 42".
Modified: branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_4.pod
==============================================================================
--- branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_4.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_4.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -60,39 +60,37 @@
The first statement we're going to implement now is the if-statement. An
if-statement has typically three parts (but this of course depends on the
programming language): a conditional expression, a "then" part and an "else"
-part. Implementing this in Perl 6 rules and PAST is almost trivial:
+part. Implementing this in Perl 6 rules and PAST is almost trivial, but first, let's add a little
+infrastructure to simplify adding new statement types. Replace the statement rule with the
+following:
+ proto rule statement { <...> }
+
+Delete the statement method from Action.pm, and rename the assignment rule in both Grammar.pm and
+Actions.pm to statement:sym<assignment>. The new statement rule is a "proto" rule. A proto rule is
+equivalent to a normal rule whose body contains each specialization of the rule separated by the |
+operator. The name of a particular specialization of a proto rule is placed between the angle
+brackets. Within the body of the rule, it can be matched literally with <sym>.
- rule if_statement {
- 'if' <expression> 'then' <block>
+ rule statement:sym<if> {
+ <sym> <EXPR> 'then' $<then>=<block>
['else' $<else>=<block> ]?
'end'
- {*}
}
rule block {
<statement>*
- {*}
}
- rule statement {
- | <assignment> {*} #= assignment
- | <if_statement> {*} #= if_statement
- }
-
-Note that the optional else block is stored in the match object's "else" field.
+Note that the optional else block is stored in the match object's "else" field, and the then block
+is stored in the match object's "then" field.
If we hadn't written this $<else>= part, then <block> would have been an array,
with block[0] the "then" part, and block[1] the optional else part. Assigning
the optional else block to a different field, makes the action method slightly
easier to read.
-Also note that the statement rule has been updated; a statement is now either
-an assignment or an if-statement. As a result, the action method statement now
-takes a key argument. The relevant action methods are shown below:
-
- method statement($/, $key) {
- # get the field stored in $key from the $/ object,
- # and retrieve the result object from that field.
- make $( $/{$key} );
- }
+Note that the proto declaration for statement means that the result object for $<statement> in any
+rule which calls statement as a subrule will be result object for whichever statement type matched.
+Because of this, we can delete the statement action method.
+ The relevant action methods are shown below:
method block($/) {
# create a new block, set its type to 'immediate',
@@ -105,19 +103,18 @@
# for each statement, add the result
# object to the block
for $<statement> {
- $past.push( $( $_ ) );
+ $past.push($_.ast);
}
make $past;
}
- method if_statement($/) {
- my $cond := $( $<expression> );
- my $then := $( $<block> );
- my $past := PAST::Op.new( $cond, $then,
+ method statement:sym<if>($/) {
+ my $cond := $<EXPR>.ast;
+ my $past := PAST::Op.new( $cond, $<then>.ast,
:pasttype('if'),
:node($/) );
if $<else> {
- $past.push( $( $<else>[0] ) );
+ $past.push($<else>[0].ast);
}
make $past;
}
@@ -133,13 +130,12 @@
At this point it's wise to spend a few words on the make function, the parse
actions and how the whole PAST is created by the individual parse actions.
-Have another look at the action method if_statement. In the first two lines,
+Have another look at the action method statement:sym<if>. In the first two lines,
we request the result objects for the conditional expression and the "then"
block. When were these result objects created? How can we be sure they're there?
-The answer lies in the order in which the parse actions are executed. The
-special "{*}" symbol that triggers a parse action invocation, is usually placed
-at the end of the rule. For this input string: "if 42 then x = 1 end" this
-implies the following order:
+The answer lies in the order in which the parse actions are executed. The parse action invocation
+usually occurs at the end of the rule. For this input string: "if 42 then x = 1 end" this implies
+the following order:
=over 4
@@ -147,9 +143,9 @@
=item 2. parse statement
-=item 3. parse if_statement
+=item 3. parse statement:sym<if>
-=item 4. parse expression
+=item 4. parse EXPR
=item 5. parse integer
@@ -159,7 +155,7 @@
=item 8. parse statement
-=item 9. parse assignment
+=item 9. parse statement:sym<assignment>
=item 10. parse identifier
@@ -179,7 +175,7 @@
=back
-As you can see, PAST nodes are created in the leafs of the parse tree first,
+As you can see, PAST nodes are created in the leaves of the parse tree first,
so that later, action methods higher in the parse tree can retrieve them.
=head2 Throwing Exceptions
@@ -188,12 +184,11 @@
to discuss the parse action, as it shows the use of generating custom PIR
instructions. First the grammar rule:
- rule throw_statement {
- 'throw' <expression>
- {*}
+ rule statement:sym<throw> {
+ <sym> <EXPR>
}
-I assume you know how to update the "statement" rule by now. The throw statement
+The throw statement
will compile down to Parrot's "throw" instruction, which takes one argument.
In order to generate a custom Parrot instruction, the instruction can be
specified in the C<:pirop> attribute when creating a C<PAST::Op> node. Any child
@@ -201,16 +196,15 @@
object of the expression being thrown as a child of the C<PAST::Op> node
representing the "throw" instruction.
- method throw_statement($/) {
- make PAST::Op.new( $( $<expression> ),
- :pirop('throw'),
+ method statement:sym<throw>($/) {
+ make PAST::Op.new( $<EXPR>.ast,
+ :pirop('die'),
:node($/) );
}
-
=head2 What's Next?
-In this episode we implemented two more statement types of Squaak. You should
+In this episode we implemented two more Squaak statement types. You should
get a general idea of how and when PAST nodes are created, and how they can be
retrieved as sub (parse) trees. In the next episode we'll take a closer look at
variable scope and subroutines.
@@ -266,31 +260,29 @@
The while-statement is straightforward:
- method while_statement($/) {
- my $cond := $( $<expression> );
- my $body := $( $<block> );
+ method statement:sym<while>($/) {
+ my $cond := $<EXPR>.ast;
+ my $body := $<block>.ast;
make PAST::Op.new( $cond, $body, :pasttype('while'), :node($/) );
}
The try-statement is a bit more complex. Here are the grammar rules and
action methods.
- rule try_statement {
- 'try' $<try>=<block>
+ rule statement:sym<try> {
+ <sym> $<try>=<block>
'catch' <exception>
$<catch>=<block>
'end'
- {*}
}
rule exception {
<identifier>
- {*}
}
- method try_statement($/) {
+ method statement:sym<try>($/) {
## get the try block
- my $try := $( $<try> );
+ my $try := $<try>.ast;
## create a new PAST::Stmts node for
## the catch block; note that no
@@ -299,12 +291,12 @@
## exception object. For now this will
## do.
my $catch := PAST::Stmts.new( :node($/) );
- $catch.push( $( $<catch> ) );
+ $catch.push($<catch>.ast);
## get the exception identifier;
## set a declaration flag, the scope,
## and clear the viviself attribute.
- my $exc := $( $<exception> );
+ my $exc := $<exception>.ast;
$exc.isdecl(1);
$exc.scope('lexical');
$exc.viviself(0);
@@ -323,17 +315,10 @@
}
method exception($/) {
- our $?BLOCK;
- my $past := $( $<identifier> );
- $?BLOCK.symbol( $past.name(), :scope('lexical') );
+ my $past := $<identifier>.ast;
make $past;
}
-Instead of putting "identifier" after the "catch" keyword, we made it a
-separate rule, with its own action method. This allows us to insert the
-identifier into the symbol table of the current block (the try-block),
-before the catch block is parsed.
-
First the PAST node for the try block is retrieved. Then, the catch block is
retrieved, and stored into a C<PAST::Stmts> node. This is needed, so that we
can make sure that the instructions that retrieve the exception object come
@@ -378,41 +363,53 @@
conditional expression, which represent the "then" block, and which represent
the "else" block (if any).
+Note that this may not be the exact result produced when you try it. Sub ids, block numbers, and
+register numbers may differ, but it should be analogous.
+
> if 1 then else end
+ .HLL "squaak"
+
.namespace []
- .sub "_block16"
- new $P18, "Integer"
- assign $P18, 1
-
- ## this is the condition:
- if $P18, if_17
-
- ## this is invoking the else-block:
- get_global $P21, "_block19"
- newclosure $P21, $P21
- $P20 = $P21()
- set $P18, $P20
- goto if_17_end
-
- ## this is invoking the then-block:
- if_17:
- get_global $P24, "_block22"
- newclosure $P24, $P24
- $P23 = $P24()
- set $P18, $P23
- if_17_end:
- .return ($P18)
+ .sub "_block11" :anon :subid("10_1279319328.02043")
+ .annotate 'line', 0
+ .const 'Sub' $P20 = "12_1279319328.02043"
+ capture_lex $P20
+ .const 'Sub' $P17 = "11_1279319328.02043"
+ capture_lex $P17
+ .annotate 'line', 1
+ set $I15, 1
+ if $I15, if_14
+ .const 'Sub' $P20 = "12_1279319328.02043"
+ capture_lex $P20
+ $P21 = $P20()
+ set $P13, $P21
+ goto if_14_end
+ if_14:
+ .const 'Sub' $P17 = "11_1279319328.02043"
+ capture_lex $P17
+ $P18 = $P17()
+ set $P13, $P18
+ if_14_end:
+ .return ($P13)
.end
+
+ .HLL "squaak"
+
.namespace []
- .sub "_block22" :outer("_block16")
- .return ()
+ .sub "_block19" :anon :subid("12_1279319328.02043") :outer("10_1279319328.02043")
+ .annotate 'line', 1
+ .return ()
.end
+
+ .HLL "squaak"
+
.namespace []
- .sub "_block19" :outer("_block16")
- .return ()
+ .sub "_block16" :anon :subid("11_1279319328.02043") :outer("10_1279319328.02043")
+ .annotate 'line', 1
+ .return ()
.end
=back
Modified: branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_5.pod
==============================================================================
--- branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_5.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_5.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -30,9 +30,8 @@
Squaak has a so-called do-block statement, that is defined below.
- rule do_block {
- 'do' <block> 'end'
- {*}
+ rule statement:sym<do> {
+ <sym> <block> 'end'
}
Each do-block defines a new scope; local variables declared between the C<do>
@@ -94,9 +93,8 @@
statement, so I assume you know how to extend the statement rule to allow for
variable declarations.
- rule variable_declaration {
- 'var' <identifier> ['=' <expression>]?
- {*}
+ rule statement:sym<var> {
+ <sym> <identifier> ['=' <EXPR>]?
}
A local variable is declared using the C<var> keyword, and has an optional
@@ -104,9 +102,9 @@
defaults to the undefined value called "Undef". Let's see what the parse action
looks like:
- method variable_declaration($/) {
+ method statement:sym<var>($/) {
# get the PAST for the identifier
- my $past := $( $<identifier> );
+ my $past := $<identifier>.ast;
# this is a local (it's being defined)
$past.scope('lexical');
@@ -115,10 +113,10 @@
$past.isdecl(1);
# check for the initialization expression
- if $<expression> {
+ if $<EXPR> {
# use the viviself clause to add a
# an initialization expression
- $past.viviself( $( $<expression>[0] );
+ $past.viviself($<EXPR>[0].ast);
}
else { # no initialization, default to "Undef"
$past.viviself('Undef');
@@ -152,46 +150,27 @@
symbols in the block's symbol table), we add a few extra parse actions. Let's
take a look at them.
- rule TOP {
- {*} #= open
- <statement>*
- [ $ || <.panic: syntax error> ]
- {*} #= close
- }
+Add this token to the grammar:
-We now have two parse actions for TOP, which are differentiated by an
-additional key parameter. The first parse action is executed before any input
-is parsed, which is particularly suitable for any initialization actions you
-might need. The second action (which was already there) is executed after the
-whole input string is parsed. Now we can create a C<PAST::Block> node before
-any statements are parsed, so that when we need the current block, it's there
-(somewhere, later we'll see where exactly). Let's take a look at the parse
-action for TOP.
+ token begin_TOP {
+ <?>
+ }
- method TOP($/, $key) {
- our $?BLOCK;
+It uses something we haven't seen before, <?>. The null pattern <?> always returns true without
+consuming any text. Tokens consisting of only <?> are frequently used to invoke additional action
+methods.
+
+Add this method to Actions.pm:
+
+ method begin_TOP ($/) {
+ our $?BLOCK := PAST::Block.new(:blocktype<declaration>, :node($/),
+ :hll<squaak>);
our @?BLOCK;
-
- if $key eq 'open' {
- $?BLOCK := PAST::Block.new( :blocktype('declaration'),
- :node($/) );
-
- @?BLOCK.unshift($?BLOCK);
- }
- else { # key is 'close'
- my $past := @?BLOCK.shift();
-
- for $<statement> {
- $past.push( $( $_ ) );
- }
-
- make $past;
- }
+ @?BLOCK.unshift($?BLOCK);
}
-Let's see what's happening here. When the parse action is invoked for the first
-time (when C<$key> equals "open"), a new C<PAST::Block> node is created and
-assigned to a strange-looking (if you don't know Perl, like me. Oh wait,
+We create a new C<PAST::Block> node and
+assign it to a strange-looking (if you don't know Perl, like me. Oh wait,
this is Perl. Never mind..) variable called C<$?BLOCK>. This variable is
declared as "our", which means that it is a package variable. This means that
the variable is shared by all methods in the same package (or class), and,
@@ -203,98 +182,61 @@
C<@?BLOCK>. This variable has a "@" sigil, meaning this is an array. The
unshift method puts its argument on the front of the list. In a sense, you
could think of the front of this list as the top of a stack. Later we'll see
-why this stack is necessary.
+why this stack is necessary. This C<@?BLOCK> variable is also declared with "our", meaning it's also
+package-scoped. Since it's an array variable, it is automatically initialized with an empty
+ResizablePMCArray.
+
+Now we need to modify our TOP rule to call begin_TOP.
+
+ rule TOP {
+ <.begin_TOP>
+ <statementlist>
+ [ $ || <.panic: "Syntax error"> ]
+ }
+
+"<.begin_TOP>" is just like <begin_TOP>, calling the subrule begin_TOP, with one difference: The
+<.subrule> form does not capture. Normally, when match a subrule <foo>, $<foo> on the match object
+is bound to the subrule's match result. With <.foo>, $<foo> is not bound.
-This C<@?BLOCK> variable is also declared with "our", meaning it's also
-package-scoped. However, as we call a method on this variable, it should have
-been already created; otherwise you'd invoke the method on an undefined
-("Undef") variable. So, this variable should have been created before the
-parsing starts. We can do this in the compiler's main program, squaak.pir.
-Before doing so, let's take a quick look at the "else" part of the parse action
+The parse action for begin_TOP is executed before any input
+is parsed, which is particularly suitable for any initialization actions you
+might need. The action for TOP is executed after the
+whole input string is parsed. Now we can create a C<PAST::Block> node before
+any statements are parsed, so that when we need the current block, it's there
+(somewhere, later we'll see where exactly). Let's take a look at the parse
+action for TOP.
+
+ method TOP($/, $key) {
+ our @?BLOCK;
+ my $past := @?BLOCK.shift();
+ $past.push($<statementlist>.ast);
+ make $past;
+ }
+
+Let's take a quick look at the updated parse action
for TOP, which is executed after the whole input string is parsed. The
C<PAST::Block> node is retrieved from C<@?BLOCK>, which makes sense, as it was
created in the first part of the method and unshifted on C<@?BLOCK>. Now this
node can be used as the final result object of TOP. So, now we've seen how to
use the scope stack, let's have a look at its implementation.
-=head2 A List Class
-
-We'll implement the scope stack as a C<ResizablePMCArray> object. This is a
-built-in PMC type. However, this built-in PMC does not have any methods; in
-PIR it can only be used as an operand of the built-in shift and unshift
-instructions. In order to allow us to write this as method calls, we create a
-new subclass of ResizablePMCArray. The code below creates the new class and
-defines the methods we need.
-
- 1 .namespace []
-
- 2 .sub 'initlist' :anon :init :load
- 3 subclass $P0, 'ResizablePMCArray', 'List'
- 4 new $P1, 'List'
- 5 set_hll_global ['Squaak';'Grammar';'Actions'], '@?BLOCK', $P1
- 6 .end
-
- 7 .namespace ['List']
-
- 8 .sub 'unshift' :method
- 9 .param pmc obj
- 10 unshift self, obj
- 11 .end
-
- 12 .sub 'shift' :method
- 13 shift $P0, self
- 14 .return ($P0)
- 15 .end
-
-Well, here you have it: part of the small amount of PIR code you need to write
-for the Squaak compiler (there's some more for some built-in subroutines, more
-on that later). Let's discuss this code snippet in more detail (if you know
-PIR, you could skip this section).
-Line 1 resets the namespace to the root namespace in Parrot, so that the sub
-C<initlist> is stored in that namespace. The sub 'initlist' defined in lines
-2-6 has some flags: C<:anon> means that the sub is not stored by name in the
-namespace, implying it cannot be looked up by name. The :init flag means that
-the sub is executed before the main program (the "main" sub) is executed. The
-C<:load> flag makes sure that the sub is executed if this file was compiled and
-loaded by another file through the load_bytecode instruction. If you don't
-understand this, no worries. You can forget about it now. In any case, we know
-for sure there's a List class when we need it, because the class creation is
-done before running the actual compiler code.
-Line 3 creates a new subclass of ResizablePMCArray, called "List". This results
-in a new class object, which is left in register $P0, but it's not used after
-that.
-Line 4 creates a new List object, and stores it in register $P1. Line 5,
-stores this List object by name of C<@?BLOCK> (that name should ring a bell
-now...) in the namespace of the Actions class. The semicolons in between the
-several key strings indicate nested namespaces. So, lines 4 and 5 are important,
-because the create the @?BLOCK variable and store it in a place that can be
-accessed from the action methods in the Actions class.
-Lines 7-11 define the unshift method, which is a method in the "List" namespace.
-This means that it can be invoked as a method on a List object. As the sub is
-marked with the :method flag, the sub has an implicit first parameter called
-"self", which refers to the invocant object. The unshift method invokes
-Parrot's unshift instruction on self, passing the obj argument as the second
-operand. So, obj is unshifted onto self, which is the List object itself.
-Finally, lines 12-15 define the "shift" method, which does the opposite of
-"unshift", removing the first element and returning it to its caller.
-
=head2 Storing Symbols
Now, we set up the necessary infrastructure to store the current scope block,
and we created a datastructure that acts as a scope stack, which we will need
-later. We'll now go back to the parse action for variable_declaration, because
+later. We'll now go back to the parse action for statement:sym<var>, because
we didn't enter the declared variable into the current block's symbol table yet.
We'll see how to do that now.
First, we need to make the current block accessible from the method
-variable_declaration. We've already seen how to do that, using the "our"
+statement:sym<var>. We've already seen how to do that, using the "our"
keyword. It doesn't really matter where in the action method we enter the
symbol's name into the symbol table, but let's do it at the end, after the
initialization stuff. Naturally, we're only going to enter the symbol if it's
not there already; duplicate variable declarations (in the same scope) should
result in an error message (using the panic method of the match object).
-The code to be added to the method variable_declaration looks then like this:
+The code to be added to the method statement:sym<var> looks then like this:
- method variable_declaration($/) {
+ method statement:sym<var>($/) {
our $?BLOCK;
# get the PAST node for identifier
# set the scope and declaration flag
@@ -304,7 +246,7 @@
if $?BLOCK.symbol( $name ) {
# symbol is already present
- $/.panic("Error: symbol " ~ $name ~ " was already defined.\n");
+ $/.CURSOR.panic("Error: symbol " ~ $name ~ " was already defined.\n");
}
else {
$?BLOCK.symbol( $name, :scope('lexical') );
@@ -329,14 +271,15 @@
=item *
In this episode, we changed the action method for the C<TOP> rule; it is now
-invoked twice, once at the beginning of the parse, once at the end of the parse.
+invokes the new begin_TOP action at the beginning of the parse.
The block rule, which defines a block to be a series of statements, represents
a new scope. This rule is used in for instance if-statement
(the then-part and else-part), while-statement (the loop body) and others.
-Update the parse action for block so it is invoked twice; once before parsing
-the statements, during which a new C<PAST::Block> is created and stored onto the
-scope stack, and once after parsing the statements, during which this PAST node
-is set as the result object. Make sure C<$?BLOCK> is always pointing to the
+Add a new begin_block rule consisting of <?>; in the action for it, create a new PAST::Block and
+store it onto the scope stack.
+Update the rule for block so that it calls begin_block before parsing
+the statements. Update the parse action for block after parsing the statements, during which this
+PAST node is set as the result object. Make sure C<$?BLOCK> is always pointing to the
current block. In order to do this exercise correctly, you should understand
well what the shift and unshift methods do, and why we didn't implement methods
to push and pop, which are more appropriate words in the context of a (scope)
@@ -385,24 +328,35 @@
I hope it's clear what I mean here... otherwise, have a look at the code,
and try to figure out what's happening:
+ # In src/Squaak/Grammar.pm
+ token begin_block {
+ <?>
+ }
+
+ rule block {
+ <.begin_block>
+ <statement>*
+ }
+
+ # In src/Squaak/Actions.pm
+ method begin_block {
+ our $?BLOCK;
+ our @?BLOCK;
+ $?BLOCK := PAST::Block.new(:blocktype('immediate'),
+ :node($/));
+ @?BLOCK.unshift($?BLOCK);
+ }
+
method block($/, $key) {
- our $?BLOCK;
- our @?BLOCK;
- if $key eq 'open' {
- $?BLOCK := PAST::Block.new(
- :blocktype('immediate'),
- :node($/) );
- @?BLOCK.unshift($?BLOCK);
- }
- else {
- my $past := @?BLOCK.shift();
- $?BLOCK := @?BLOCK[0];
-
- for $<statement> {
- $past.push( $( $_ ) );
- }
- make $past;
+ our $?BLOCK;
+ our @?BLOCK;
+ my $past := @?BLOCK.shift();
+ $?BLOCK := @?BLOCK[0];
+
+ for $<statement> {
+ $past.push($_.ast);
}
+ make $past;
}
=cut
Modified: branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_6.pod
==============================================================================
--- branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_6.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_6.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -77,14 +77,26 @@
'sub' <identifier> <parameters>
<statement>*
'end'
- {*}
}
rule parameters {
- '(' [<identifier> [',' <identifier>]* ]? ')'
- {*}
+ '(' [<identifier> ** ',']? ')'
}
+And we need to add it to rule stat_or_def:
+
+ rule stat_or_def {
+ | <statement>
+ | <sub_definition>
+ }
+
+Appropriately modifying the action method is simple. It's analogous to the action method for
+expression.
+
+"**" is the repetition specifier; "<identifier> ** ','" matches <identifier> separated by commas.
+Since it's in a rule and there is space between the ** and its operands, whitespace is allowed
+between the commas and both the preceding and following identifiers.
+
This is rather straightforward, and the action methods for these rules are
quite simple, as you will see. First, however, let's have a look at the rule
for sub definitions. Why is the sub body defined as <statement>* and not as a
@@ -112,7 +124,7 @@
# now add all parameters to this block
for $<identifier> {
- my $param := $( $_ );
+ my $param := $_.ast;
$param.scope('parameter');
$past.push($param);
@@ -128,23 +140,23 @@
}
method sub_definition($/) {
- our $?BLOCK;
- our @?BLOCK;
- my $past := $( $<parameters> );
- my $name := $( $<identifier> );
-
- # set the sub's name
- $past.name( $name.name() );
-
- # add all statements to the sub's body
- for $<statement> {
- $past.push( $( $_ ) );
- }
-
- # and remove the block from the scope stack and restore the current block
- @?BLOCK.shift();
- $?BLOCK := @?BLOCK[0];
- make $past;
+ our $?BLOCK;
+ our @?BLOCK;
+ my $past := $<parameters>.ast;
+ my $name := $<identifier>.ast;
+
+ # set the sub's name
+ $past.name($name.name);
+
+ # add all statements to the sub's body
+ for $<statement> {
+ $past.push($_.ast);
+ }
+
+ # and remove the block from the scope stack and restore the current block
+ @?BLOCK.shift();
+ $?BLOCK := @?BLOCK[0];
+ make $past;
}
First, let's check out the parse action for parameters. First, a new
@@ -178,26 +190,29 @@
subroutine invocation. In this section, we'll give a complete description.
First we'll introduce the grammar rules.
- rule sub_call {
+ rule statement:sym<sub_call> {
<primary> <arguments>
- {*}
+ }
+
+ rule arguments {
+ '(' [<EXPR> ** ',']? ')'
}
Not only allows this to invoke subroutines by their name, you can also store
the subroutines in an array or hash field, and invoke them from there. Let's
take a look at the action method, which is really quite straightforward.
- method sub_call($/) {
- my $invocant := $( $<primary> );
- my $past := $( $<arguments> );
+ method statement:sym<sub_call>($/) {
+ my $invocant := $<primary>.ast;
+ my $past := $<arguments>.ast;
$past.unshift($invocant);
make $past;
}
method arguments($/) {
my $past := PAST::Op.new( :pasttype('call'), :node($/) );
- for $<expression> {
- $past.push( $( $_ ) );
+ for $<EXPR> {
+ $past.push($_.ast);
}
make $past;
}
@@ -260,20 +275,17 @@
It's pretty easy to convert this to Perl 6 rules:
- rule for_statement {
- 'for' <for_init> ',' <expression> <step>?
+ rule statement:sym<for> {
+ <sym> <for_init> ',' <EXPR> <step>?
'do' <statement>* 'end'
- {*}
}
rule step {
- ',' <expression>
- {*}
+ ',' <EXPR>
}
rule for_init {
- 'var' <identifier> '=' <expression>
- {*}
+ 'var' <identifier> '=' <EXPR>
}
Pretty easy huh? Let's take a look at the semantics. A for-loop is just
@@ -323,12 +335,12 @@
:node($/) );
@?BLOCK.unshift($?BLOCK);
- my $iter := $( $<identifier> );
+ my $iter := $<identifier>.ast;
## set a flag that this identifier is being declared
$iter.isdecl(1);
$iter.scope('lexical');
## the identifier is initialized with this expression
- $iter.viviself( $( $<expression> ) );
+ $iter.viviself( $<EXPR>.ast );
## enter the loop variable into the symbol table.
$?BLOCK.symbol($iter.name(), :scope('lexical'));
@@ -339,16 +351,22 @@
So, just as we created a new C<PAST::Block> for the subroutine in the action
method for parameters, we create a new C<PAST::Block> for the for-statement in
the action method that defines the loop variable. (Guess why we made for-init
-a subrule, and didn't put in "C<var> <ident> = <expression>" in the rule of
+a subrule, and didn't put in "C<var> <ident> = <EXPR>" in the rule of
for-statement). This block is the place to live for the loop variable. The
loop variable is declared, initialized using the viviself attribute, and
entered into the new block's symbol table. Note that after creating the new
C<PAST::Block> object, we put it onto the stack scope.
+The action method for step is simple:
+
+ method step($/) {
+ make $<EXPR>.ast;
+ }
+
Now, the action method for the for statement is quite long, so I'll just
embed my comments, which makes reading it easier.
- method for_statement($/) {
+ method statement:sym<for>($/) {
our $?BLOCK;
our @?BLOCK;
@@ -356,7 +374,7 @@
is the C<PAST::Var> object, representing the declaration and initialization
of the loop variable.
- my $init := $( $<for_init> );
+ my $init := $<for_init>.ast;
Then, create a new node for the loop variable. Yes, another one (besides the
one that is currently contained in the C<PAST::Block>). This one is used when
@@ -381,7 +399,7 @@
my $body := @?BLOCK.shift();
$?BLOCK := @?BLOCK[0];
for $<statement> {
- $body.push($($_));
+ $body.push($_.ast);
}
If there was a step, we use that value; otherwise, we use assume a default
@@ -392,8 +410,9 @@
my $step;
if $<step> {
- my $stepsize := $( $<step>[0] );
- $step := PAST::Op.new( $iter, $stepsize, :pirop('add'), :node($/) );
+ my $stepsize := $<step>[0].ast;
+ $step := PAST::Op.new( $iter, $stepsize,
+ :pirop('add__OP+'), :node($/) );
}
else { ## default is increment by 1
$step := PAST::Op.new( $iter, :pirop('inc'), :node($/) );
@@ -404,13 +423,13 @@
$body.push($step);
-The loop condition uses the "<=" operator, and compares the loop variable
-with the maximum value that was specified.
+The loop condition uses the isle opcode, which checks that its first operand is less than or equal
+to its second, and compares the loop variable with the maximum value that was specified.
## while loop iterator <= end-expression
- my $cond := PAST::Op.new( $iter,
- $( $<expression> ),
- :name('infix:<=') );
+ my $cond := PAST::Op.new( :pirop<isle__IPP>,
+ $iter,
+ $<EXPR>.ast );
Now we have the PAST for the loop condition and the loop body, so now create
a PAST to represent the (while) loop.
Modified: branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_7.pod
==============================================================================
--- branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_7.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_7.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -13,7 +13,7 @@
=head2 Operators, precedence and parse trees
We will first briefly introduce the problem with recursive-descent parsers
-(which parsers generated with the PCT are) when parsing expressions. Consider
+(which parsers generated with NQP are) when parsing expressions. Consider
the following mini-grammar, which is a very basic calculator.
rule TOP {
@@ -116,29 +116,39 @@
and I don't remember the particular details. If you really want to know, check
out the links at the end of the previous section. It's actually worth checking
out. For now, I'll just assume you know what the problem is, so that I'll
-introduce the solution for PCT-based compilers immediately.
+introduce the solution for NQP-based compilers immediately.
At some point when parsing your input, you might encounter an expression. At
this point, we'd like the parser to switch from top-down to bottom-up parsing.
-The Parrot Grammar Engine supports this, and is used as follows:
+NQP-rx supports this, and is used as follows:
- rule expression is optable { ... }
+ <EXPR>
-Note that we used the word C<expression> here, but you can name it anything.
-This declares that, whenever you need an expression, the bottom-up parser is
-activated. Of course, this "optable" must be populated with some operators that
-we need to be able to parse. This can be done by declaring operators as follows:
+Of course, the optable must be populated with some operators that
+we need to be able to parse and it might be told what precedence and associativity they have. The
+easiest way to do this is by setting up precedence levels in an C<INIT> block:
- proto 'infix:*' is tighter('infix:+') { ... }
+ INIT {
+ Squaak::Grammar.O(':prec<t>, :assoc<left>', '%additive');
+ Squaak::Grammar.O(':prec<u>, :assoc<lefT>', '%multiplicative');
+ }
+
+In this C<INIT> block, we use the C<O> method of the compiler to set up two precedence levels: one
+for operators like addition (named C<%additive>), and one for operators like multiplication (named
+C<%multiplicative>). Each of themhas a ":prec" value and an ":assoc" value. ":prec" determines the
+precedence. Lexicographically greater values indicate higher precedence, so C<%additive> operators,
+with a precedence value of "t", have lower precedence than C<%multiplicative> operators with a
+precedence value of "u".":assoc" defines the associativity of the operators. If C<@> is a left
+associative operator, then 1 @ 2 @ 3 is equivalent to (1 @ 2) @ 3. However, if C<@> is right
+associative, then 1 @ 2 @ 3 is equivalent to 1 @ (2 @ 3). There are other options for the
+associativity, but we'll discuss them as we come to them.
+
+ token infix:sym<*> { <sym> <O('%multiplicative, :pirop<mul>')> }
This defines the operator C<*> (the C<infix:> is a prefix that tells the
operator parser that this operator is an infix operator; there are other types,
-such as prefix, postfix and others). The C<is tighter> clause tells that the
-C<*> operator has a higher precedence than the C<+> operator. As you could have
-guessed, there are other clauses to declare equivalent precedence (C<is equiv>)
-and lower precedence (C<is looser>).It is very important to spell all clauses,
-such as C<is equiv> correctly (for instance, not C<is equil>), otherwise you
-might get some cryptic error message when trying to run your compiler. See the
-references section for the optable guide, that has more details on this.
+such as prefix, postfix and others). As you can see, it uses the O rule to specify that it is part
+of the C<%multiplicative> group of operators. The ":pirop" value specifies that the operator should
+compile to the C<mul> PIR opcode.
Of course, the expression parser does not just parse operators, it must also
parse the operands. So, how do we declare the most basic entity that represents
@@ -146,19 +156,12 @@
or even a function definition (but adding two function definition doesn't
really make sense, does it?). The operands are parsed in a recursive-descent
fashion, so somewhere the parser must switch back from bottom-up
-(expression parsing) to top-down. To declare this "switch-back" point, write:
-
- proto 'term:' is tighter('prefix:-') is parsed(&term) { ... }
+(expression parsing) to top-down. This "switch-back" point is the proto token C<term>. This is the
+reason why integer constants are parsed by the rule term:sym<integer_constant>, for example, in our
+grammar.
-The name C<term:> is a built-in name of the operator bottom-up parser; it is
-invoked every time a new operand is needed. The C<is parsed> clause tells the
-parser that C<term> (which accidentally looks like C<term:>, but you could also
-have named it anything else) parses the operands.
-
-Note: it is very important to add a C<is tighter> clause to the declaration of
-the C<term:> rule. Otherwise your expression parser will not work! My knowledge
-here is a bit limited, but I usually define it as C<is tighter> relative to the
-tightest operator defined.
+The C<term> proto token is
+invoked every time a new operand is needed
=head2 Squaak Operators
@@ -179,25 +182,30 @@
or
(".." is the string concatenation operator). Besides defining an entry and exit
-point for the expression parser, you need to define some operator as a reference
-point, so that other operators' precedence can be defined relative to that
-reference point. My personal preference is to declare the operator with the
-lowest precedence as the reference point. This can be done like this:
-
- proto 'infix:or' is precedence('1') { ... }
-
-Now, other operators can be defined:
-
- proto 'infix:and' is tighter('infix:or') { ... }
- proto 'infix:<' is tighter('infix:and') { ... }
- proto 'infix:+' is tighter('infix:<') { ... }
- proto 'infix:*' is tighter('infix:+') { ... }
- proto 'prefix:not' is tighter('infix:*') { ... }
- proto 'prefix:-' is tighter('prefix:not') { ... }
+point for the expression parser, you need to define precedence levels for your operators. Find the
+C<INIT> block in Grammar.pm below the "## Operators" comment, and replace it with this:
+
+ INIT {
+ Squaak::Grammar.O(':prec<w>, :assoc<unary>', '%unary-negate');
+ Squaak::Grammar.O(':prec<v>, :assoc<unary>', '%unary-not');
+ Squaak::Grammar.O(':prec<u>, :assoc<left>', '%multiplicative');
+ Squaak::Grammar.O(':prec<t>, :assoc<left>', '%additive');
+ Squaak::Grammar.O(':prec<s>, :assoc<left>', '%relational');
+ Squaak::Grammar.O(':prec<r>, :assoc<left>', '%conjunction');
+ Squaak::Grammar.O(':prec<q>, :assoc<left>', '%disjunction');
+ }
+
+Now, we need to define the actual operators:
+
+ token infix:sym<or> { <sym> <O('%disjunction, :pasttype<unless>')> }
+ token infix:sym<and> { <sym> <O('%conjunction, :pasttype<if>')> }
+ token infix:sym«<» { <sym> <O('%relational, :pirop<islt>')> }
+ token infix:sym<+> { <sym> <O('%additive, :pirop<add>')> }
+ token infix:sym<*> { <sym> <O('%multiplicative, :pirop<mul>')> }
+ token prefix:sym<not> { <sym> <O('%unary-not, :pirop<isfalse>')> }
+ token prefix:sym<-> { <sym> <O('%unary-negate, :pirop<neg>')> }
Note that some operators are missing. See the exercises section for this.
-For more details on the use of the optable, check out
-F<docs/pct/pct_optable_guide.pod> in the Parrot repository.
=head2 Short-circuiting logical operators
@@ -216,9 +224,9 @@
(the C<then> block) is evaluated (remember, the third child -- the C<else>
clause -- is optional). It would be great to be able to implement the and
operator using a C<PAST::Op( :pasttype('if') )> node. Well, you can, using
-the C<is pasttype> clause! Here's how:
+the ":pasttype" option! Here's how:
- proto 'infix:and' is tighter('infix:or') is pasttype('if') { ... }
+ token infix:sym<and> { <sym> <O('%conjunction, :pasttype<if>')> }
So what about the or operator? When evaluating an or-expression, the first
operand is evaluated. If it evaluates to true, then there's no need to evaluate
@@ -232,12 +240,8 @@
In the previous section, we introduced the C<pasttype> clause that you can
specify. This means that for that operator (for instance, the C<and> operator
we discussed), a C<PAST::Op( :pasttype('if') )> node is created. What happens
-if you don't specify a pasttype? In that case a default C<PAST::Op> node is
-created, and the default pasttype is C<call>. In other words, a C<PAST::Op>
-node is created that calls the declared operator. For instance, the C<infix:+>
-operator results in a call to the subroutine "infix:+". This means you'll need
-to implement subroutines for each operator. Now, that's a bit of a shame.
-Obviously, some languages have very exotic semantics for the C<+> operator,
+if you don't specify a pasttype? In that case, the corresponding action method is called. Obviously,
+some languages have very exotic semantics for the C<+> operator,
but many languages just want to use Parrot's built-in C<add> instruction. How
do we achieve that?
@@ -247,20 +251,13 @@
operands as arguments, it will generate the specified instruction with the
operator's operands as arguments. Neat huh? Let's look at an example:
- proto 'infix:+' is tighter('infix:<') is pirop('n_add') { ... }
-
-This specifies to use the C<n_add> instruction, which tells Parrot to create a
-new result object instead of changing one of the operands. Why not just the
-C<add> instruction (which takes two operands, updating the first), you might
-think. Well, if you leave out this C<is pirop> stuff, this will be generated:
-
- $P12 = "infix:+"($P10, $P11)
+ token infix:sym<+> { <sym> <O('%additive, :pirop<add>')> }
-You see, three registers are involved. As we mentioned before, PCT does not do
-any optimizations. Therefore, instead of the generated instruction above, it
-just emit the following:
+This specifies to use the C<add> instruction, which tells Parrot to create a
+new result object instead of changing one of the operands. PCT
+just emits the following for this:
- n_add $P12, $P10, $P11
+ add $P12, $P10, $P11
which means that the PMCs in registers C<$P10> and C<$P11> are added, and
assigned to a newly created PMC which is stored in register C<$P12>.
@@ -268,71 +265,25 @@
=head2 To circumfix or not to circumfix
Squaak supports parenthesized expressions. Parentheses can be used to change
-the order of evaluation in an expression, just as you're probably have seen
-this in other languages. Besides infix, prefix and postfix operators, you can
-define circumfix operators, which is specified with the left and right
-delimiter. This is an ideal way to implement parenthesized expressions:
-
- proto 'circumfix:( )' is looser('infix:+') is pirop('set') { ... }
-
-By default, a subroutine invocation will be generated for each operator,
-in this case a call to C<circumfix:( )>. However, we are merely interested in
-the expression that has been parenthesized. The subroutine would merely return
-the expression. Instead, we can use the pirop attribute to specify what PIR
-operation should be generated; in this case that is the C<set> operation, which
-sets one register to the contents of another. This solution works fine, except
-that C<set> instructions are a bit of a waste. What happens is, the contents of
-some register is just copied to another register, which is then used in further
-code generation. This C<set> instruction might as well be optimized away.
-Currently, there are no optimizations implemented in the PCT.
-
-There is an alternative solution for adding grammar rules for the parenthesized
-expressions, by adding it as an alternative of term. The grammar rule term then
-ends up as:
-
- rule term {
- | <float_constant> {*} #= float_constant
- | <integer_constant> {*} #= integer_constant
- | <string_constant> {*} #= string_constant
- | <primary> {*} #= primary
- | '(' <expression> ')' {*} #= expression
- }
-
-Of course, although we save one generated instruction, the parser will be
-slightly more inefficient, for reasons that we discussed at the beginning of
-this episode. Of course, you are free to decide for yourself how to implement
-this; this section just explains both methods. At some point, optimizations
-will be implemented in the PCT. I suspect "useless" instructions (such as the
-C<set> instruction we just saw) will then be removed.
+the order of evaluation in an expression, just as you probably have seen in other languages. Besides
+infix, prefix and postfix operators, you can define circumfix operators, which is specified with the
+left and right delimiter. This is an ideal way to implement parenthesized expressions:
+
+ token circumfix:sym<( )> { '(' <.ws> <EXPR> ')' }
+
+ # with the action method:
+ method circumfix:sym<( )> { make $<EXPR>.ast; }
+
+This rule and action method were generated for us when we ran mk_language_shell.pl; you don't need
+to add them to the grammar and actions yourself. Circumfix operators are treated as terms by the
+operator-precedence parser, so it will parse as we want it to automatically.
=head2 Expression parser's action method
For all grammar rules we introduced, we also introduced an action method that
is invoked after the grammar rule was done matching. What about the action
-method for the optable? Naturally, there must be some actions to be executed.
-Well, there is, but to be frank, I cannot explain it to you. Every time I
-needed the action method for an optable, I just copied it from an existing
-actions file. Of course, the action method's name should match the name of the
-optable (the rule that has the "is optable" clause). So, here goes:
-
- method expression($/, $key) {
- if ($key eq 'end') {
- make $($<expr>);
- }
- else {
- my $past := PAST::Op.new( :name($<type>),
- :pasttype($<top><pasttype>),
- :pirop($<top><pirop>),
- :lvalue($<top><lvalue>),
- :node($/) );
-
- for @($/) {
- $past.push( $($_) );
- }
-
- make $past;
- }
- }
+method for EXPR? Our Squaak::Actions class inherits that from HLL::Actions. We don't have to write
+one.
=head2 What's Next?
@@ -360,21 +311,14 @@
There may be no whitespace between the individual digits and the dot. Make sure
you understand the difference between a "rule" and a "token".
-Hint: currently, the Parrot Grammar Engine (PGE), the component that "executes"
-the regular expressions (your grammar rules), matches alternative subrules in
-order. This means that this won't work:
-
- rule term {
- | <integer_constant>
- | <float_constant>
- ...
- }
+Hint: a floating-point constant should produce a value of type 'Float'.
-because when giving the input C<42.0>, C<42> will be matched by
-<integer_constant>, and the dot and "0" will remain. Therefore, put the
-<float_constant> alternative in rule term before <integer_constant>.
-At some point, PGE will support I<longest-token matching>, so that this issue
-will disappear.
+Note: in Perl 6 regexes, when matching an alternation as in a proto rule, the alternative which
+matches the most of the string is supposed to match. However, NQP-rx does not yet implement this. As
+a work-around, NQP-rx specifies that the version of a proto regex with the longest name will match.
+Since the part of a floating-point constant before the decimal place is the same as an integer
+constant, unless the token for floating-point constants has a longer name than the token for
+integer-constants, the latter will match and a syntax error will result.
=item *
@@ -399,12 +343,25 @@
between the individual digits and the dot. Make sure you understand the
difference between a C<rule> and a C<token>.
- token float_constant {
+Hint: a floating-point constant should produce a value of type 'Float'.
+
+Note: in Perl 6 regexes, when matching an alternation as in a proto rule, the alternative which
+matches the most of the string is supposed to match. However, NQP-rx does not yet implement this. As
+a work-around, NQP-rx specifies that the version of a proto regex with the longest name will match.
+Since the part of a floating-point constant before the decimal place is the same as an integer
+constant, unless the token for floating-point constants has a longer name than the token for
+integer-constants, the latter will match and a syntax error will result.
+
+ token term:sym<float_constant_long> { # longer to work around lack of LTM
[
| \d+ '.' \d*
| \d* '.' \d+
]
- {*}
+ }
+
+ # with action method:
+ method term:sym<float_constant_long>($/) { # name worksaround lack of LTM
+ make PAST::Val.new(:value(+$/), :returns<Float>);
}
=item 2
@@ -412,43 +369,38 @@
For sake of completeness (and easy copy-paste for you), here's the list of
operator declarations as I wrote them for Squaak:
- rule expression is optable { ... }
+ INIT {
+ Squaak::Grammar.O(':prec<w>, :assoc<unary>', '%unary-negate');
+ Squaak::Grammar.O(':prec<v>, :assoc<unary>', '%unary-not');
+ Squaak::Grammar.O(':prec<u>, :assoc<left>', '%multiplicative');
+ Squaak::Grammar.O(':prec<t>, :assoc<left>', '%additive');
+ Squaak::Grammar.O(':prec<s>, :assoc<left>', '%relational');
+ Squaak::Grammar.O(':prec<r>, :assoc<left>', '%conjunction');
+ Squaak::Grammar.O(':prec<q>, :assoc<left>', '%disjunction');
+ }
+
+ token circumfix:sym<( )> { '(' <.ws> <EXPR> ')' }
- proto 'infix:or' is precedence('1')
- is pasttype('unless') { ... }
- proto 'infix:and' is tighter('infix:or')
- is pasttype('if') { ... }
-
- proto 'infix:<' is tighter('infix:and') { ... }
- proto 'infix:<=' is equiv('infix:<') { ... }
- proto 'infix:>' is equiv('infix:<') { ... }
- proto 'infix:>=' is equiv('infix:<') { ... }
- proto 'infix:==' is equiv('infix:<') { ... }
- proto 'infix:!=' is equiv('infix:<') { ... }
-
- proto 'infix:+' is tighter('infix:<')
- is pirop('n_add') { ... }
- proto 'infix:-' is equiv('infix:+')
- is pirop('n_sub') { ... }
-
- proto 'infix:..' is equiv('infix:+')
- is pirop('n_concat') { ... }
-
- proto 'infix:*' is tighter('infix:+')
- is pirop('n_mul') { ... }
- proto 'infix:%' is equiv('infix:*')
- is pirop('n_mod') { ... }
- proto 'infix:/' is equiv('infix:*')
- is pirop('n_div') { ... }
-
- proto 'prefix:not' is tighter('infix:*')
- is pirop('not') { ... }
- proto 'prefix:-' is tighter('prefix:not')
- is pirop('neg') { ... }
+ token prefix:sym<-> { <sym> <O('%unary-negate, :pirop<neg>')> }
+ token prefix:sym<not> { <sym> <O('%unary-not, :pirop<isfalse>')> }
- proto 'term:' is tighter('prefix:-')
- is parsed(&term) { ... }
+ token infix:sym<*> { <sym> <O('%multiplicative, :pirop<mul>')> }
+ token infix:sym<%> { <sym> <O('%multiplicative, :pirop<mod>')> }
+ token infix:sym</> { <sym> <O('%multiplicative, :pirop<div>')> }
+
+ token infix:sym<+> { <sym> <O('%additive, :pirop<add>')> }
+ token infix:sym<-> { <sym> <O('%additive, :pirop<sub>')> }
+ token infix:sym<..> { <sym> <O('%additive, :pirop<concat>')> }
+
+ token infix:sym«<» { <sym> <O('%relational, :pirop<isle iPP>')> }
+ token infix:sym«<=» { <sym> <O('%relational, :pirop<islt iPP>')> }
+ token infix:sym«>» { <sym> <O('%relational, :pirop<isgt iPP>')> }
+ token infix:sym«>=» { <sym> <O('%relational, :pirop<isge iPP>')> }
+ token infix:sym«==» { <sym> <O('%relational, :pirop<iseq iPP>')> }
+ token infix:sym«!=» { <sym> <O('%relational, :pirop<isne iPP>')> }
+ token infix:sym<and> { <sym> <O('%conjunction, :pasttype<if>')> }
+ token infix:sym<or> { <sym> <O('%disjunction, :pasttype<unless>')> }
=back
Modified: branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_8.pod
==============================================================================
--- branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_8.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_8.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -37,9 +37,8 @@
that can be assigned to variables, you can have array literals. Below is the
grammar rule for this:
- rule array_constructor {
- '[' [ <expression> [',' <expression>]*]? ']'
- {*}
+ rule circumfix:sym<[ ]> {
+ '[' [<EXPR> ** ',']? ']'
}
Some examples are shown below:
@@ -60,16 +59,21 @@
constructed through a hashtable constructor. The syntax for this is expressed
below:
- rule hash_constructor {
- '{' [<named_field> [',' <named_field>]* ]? '}'
- {*}
+ rule circumfix:sym<{ }> {
+ '{' [<named_field> ** ',']? '}'
}
rule named_field {
- <string_constant> '=>' <expression>
- {*}
+ <string_constant> '=>' <EXPR>
}
+ # We need to rename our existing string_constant term to a separate rule
+ # so that we can use it specifically.
+ token term:sym<string_constant> { <string_constant> }
+
+ # Don't forget to rename the action method.
+ token string_constant { <quote> }
+
Some examples are shown below:
foo = {}
@@ -91,23 +95,13 @@
rule primary {
<identifier> <postfix_expression>*
- {*}
}
- rule postfix_expression {
- | <index> {*} #= index
- | <key> {*} #= key
- }
+ proto rule postfix_expression { <...> }
- rule index {
- '[' <expression> ']'
- {*}
- }
+ rule postfix_expression:sym<index> { '[' <EXPR> ']' }
- rule key {
- '{' <expression> '}'
- {*}
- }
+ rule postfix_expression:sym<key> { '{' <EXPR> '}' }
A primary object is now an identifier followed by any number of
postfix-expressions. A postfix expression is either a hashtable key or an array
@@ -121,8 +115,8 @@
is actually quite simple. First, let us see how to implement the action method
index.
- method index($/) {
- my $index := $( $<expression> );
+ method postfix_expression:sym<index>($/) {
+ my $index := $<EXPR>.ast;
my $past := PAST::Var.new( $index,
:scope('keyed'),
:viviself('Undef'),
@@ -132,7 +126,7 @@
make $past;
}
-First, we retrieve the PAST node for expression. Then, we create a keyed
+First, we retrieve the PAST node for EXPR. Then, we create a keyed
variable access operation, by creating a PAST::Var node and setting its scope
to C<keyed>. If a C<PAST::Var> node has keyed scope, then the first child is
evaluated as the aggregate object, and the second child is evaluated as the
@@ -144,10 +138,10 @@
This is shown below.
method primary($/) {
- my $past := $( $<identifier> );
+ my $past := $<identifier>.ast;
for $<postfix_expression> {
- my $expr := $( $_ );
+ my $expr := $_.ast;
$expr.unshift( $past );
$past := $expr;
}
@@ -219,15 +213,19 @@
hashtable is created. This happens to be exactly what we need! Implementing
the array and hash constructors becomes trivial:
- .sub '!array'
- .param pmc fields :slurpy
- .return (fields)
- .end
+ # Inset this in src/Squaak/Runtime.pm
- .sub '!hash'
- .param pmc fields :named :slurpy
- .return (fields)
- .end
+ {
+ my sub array (*@args) { @args; }
+ my sub hash (*%args) { %args; }
+
+ Q:PIR {
+ $P0 = find_lex 'array'
+ set_global '!array', $P0
+ $P0 = find_lex 'hash'
+ set_global '!hash', $P1
+ }
+ }
Array and hashtable constructors can then be compiled into subroutine calls to
the respective Parrot subroutines, passing all fields as arguments. (Note that
@@ -236,8 +234,8 @@
=head2 Basic data types and Aggregates as arguments
-All data types, both basic and aggregate data types are represented by Parrot
-Magic Cookies (PMCs). The PMC is one of the four built-in data types that Parrot
+All data types, both basic and aggregate data types are represented by Polymorphic
+Containers (PMCs). The PMC is one of the four built-in data types that Parrot
can handle; the others are integer, floating-point and string. Currently, the
PCT can only generate code to handle PMCs, not the other basic data types.
Parrot has registers for each its four built-in data types. The integer,
@@ -290,7 +288,7 @@
=item *
-Implement the action methods for array_constructor and hash_constructor. Use a
+Implement the action methods for circumfix:sym<[ ]> and circumfix:sym<{ }>. Use a
C<PAST::Op> node and set the pasttype to 'call'. Use the "name" attribute to
specify the names of the subs to be invoked (e.g., C<:name("!array")> ). Note
that all hash fields must be passed as named arguments. Check out PDD26 for
@@ -315,27 +313,29 @@
=item 1
- method key($/) {
- my $key := $( $<expression> );
+ method postfix_expression:sym<key>($/) {
+ my $key := $<expression>.ast;
- make PAST::Var.new( $key, :scope('keyed'),
- :vivibase('Hash'),
- :viviself('Undef'),
- :node($/) );
+ make PAST::Var.new( $key, :scope('keyed'),
+ :vivibase('Hash'),
+ :viviself('Undef'),
+ :node($/) );
}
=item 2
+ method term:sym<string_constant>($/) { make $<string_constant>.ast; }
+
method named_field($/) {
- my $past := $( $<expression> );
- my $name := $( $<string_constant> );
+ my $past := $<EXPR>.ast;
+ my $name := $<string_constant>.ast;
## the passed expression is in fact a named argument,
## use the named() accessor to set that name.
$past.named($name);
make $past;
}
- method array_constructor($/) {
+ method circumfix:sym<[ ]>($/) {
## use the parrot calling conventions to
## create an array,
## using the "anonymous" sub !array
@@ -343,13 +343,13 @@
my $past := PAST::Op.new( :name('!array'),
:pasttype('call'),
:node($/) );
- for $<expression> {
- $past.push($($_));
+ for $<EXPR> {
+ $past.push($_.ast);
}
make $past;
}
- method hash_constructor($/) {
+ method circumfix:sym<{ }>($/) {
## use the parrot calling conventions to
## create a hash, using the "anonymous" sub
## !hash (which is not a valid Squaak name)
@@ -357,31 +357,25 @@
:pasttype('call'),
:node($/) );
for $<named_field> {
- $past.push($($_));
+ $past.push($_.ast);
}
make $past;
}
=item 3
- rule postfix_expression {
- | <key> {*} #= key
- | <member> {*} #= member
- | <index> {*} #= index
- }
- rule member {
+ rule postfix_expression:sym<member> {
'.' <identifier>
- {*}
}
- method member($/) {
- my $member := $( $<identifier> );
+ method postfix_expression:sym<member>($/) {
+ my $member := $<identifier>.ast;
## x.y is syntactic sugar for x{"y"},
## so stringify the identifier:
- my $key := PAST::Val.new( :returns('String'),
- :value($member.name()),
- :node($/) );
+ my $key := PAST::Val.new( :returns('String'),
+ :value($member.name),
+ :node($/) );
## the rest of this method is the same
## as method key() above.
Modified: branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_9.pod
==============================================================================
--- branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_9.pod Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/languages/squaak/doc/tutorial_episode_9.pod Tue Aug 3 22:27:14 2010 (r48298)
@@ -181,9 +181,9 @@
## start here.
main()
-Note the use of a subroutine "print". Check out the file src/builtins/say.pir,
-and rename the sub "say" (which was generated by the language shell creation
-script) to "print".
+Note the use of a subroutine "print". Check out the file src/Squaak/Runtime.pm,
+delete the generated sub "print" and rename the sub "say" to "print" (which was generated by the
+language shell creation script).
=head2 Exercises
Modified: branches/gc_massacre/examples/languages/squaak/setup.pir
==============================================================================
--- branches/gc_massacre/examples/languages/squaak/setup.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/languages/squaak/setup.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,5 +1,5 @@
-#! ../../../parrot
-# Copyright (C) 2009, Parrot Foundation.
+#!/usr/bin/env parrot
+# Copyright (C) 2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -10,11 +10,9 @@
No Configure step, no Makefile generated.
-See F<runtime/library/distutils.pir>.
-
=head1 USAGE
- $ parrot setup.pir
+ $ parrot setup.pir build
$ parrot setup.pir test
$ sudo parrot setup.pir install
@@ -25,58 +23,86 @@
$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'] = 'Squaak'
- $P0['abstract'] = 'Squaak is a case-study language'
- $P0['description'] = 'Squaak is a case-study language'
- $P0['license_type'] = 'Artistic License 2.0'
- $P0['license_uri'] = 'http://www.perlfoundation.org/artistic_license_2_0'
- $P0['copyright_holder'] = 'Parrot Foundation'
- $P0['checkout_uri'] = 'https://svn.parrot.org/parrot/trunk/examples/languages/squaak'
- $P0['browser_uri'] = 'http://trac.parrot.org/parrot/browser/trunk/examples/languages/squaak'
- $P0['project_uri'] = 'http://trac.parrot.org/parrot/browser/trunk/examples/languages/squaak'
+ $P0['abstract'] = 'the Squaak compiler'
+ $P0['description'] = 'the Squaak for Parrot VM.'
# build
- $P1 = new 'Hash'
- $P1['src/gen_grammar.pir'] = 'src/parser/grammar.pg'
- $P0['pir_pge'] = $P1
-
- $P2 = new 'Hash'
- $P2['src/gen_actions.pir'] = 'src/parser/actions.pm'
- $P0['pir_nqprx'] = $P2
-
- $P3 = new 'Hash'
- $P4 = split "\n", <<'SOURCES'
-squaak.pir
+# $P1 = new 'Hash'
+# $P1['squaak_ops'] = 'src/ops/squaak.ops'
+# $P0['dynops'] = $P1
+
+# $P2 = new 'Hash'
+# $P3 = split ' ', 'src/pmc/squaak.pmc'
+# $P2['squaak_group'] = $P3
+# $P0['dynpmc'] = $P2
+
+ $P4 = new 'Hash'
+ $P4['src/gen_actions.pir'] = 'src/Squaak/Actions.pm'
+ $P4['src/gen_compiler.pir'] = 'src/Squaak/Compiler.pm'
+ $P4['src/gen_grammar.pir'] = 'src/Squaak/Grammar.pm'
+ $P4['src/gen_runtime.pir'] = 'src/Squaak/Runtime.pm'
+ $P0['pir_nqp-rx'] = $P4
+
+ $P5 = new 'Hash'
+ $P6 = split "\n", <<'SOURCES'
+src/squaak.pir
src/gen_actions.pir
+src/gen_compiler.pir
src/gen_grammar.pir
-src/builtins/say.pir
+src/gen_runtime.pir
SOURCES
- $S0 = pop $P4
- $P3['squaak.pbc'] = $P4
- $P0['pbc_pir'] = $P3
-
- $P5 = new 'Hash'
- $P5['parrot-squaak'] = 'squaak.pbc'
- $P0['exe_pbc'] = $P5
- $P0['installable_pbc'] = $P5
+ $S0 = pop $P6
+ $P5['squaak/squaak.pbc'] = $P6
+ $P5['squaak.pbc'] = 'squaak.pir'
+ $P0['pbc_pir'] = $P5
+
+ $P7 = new 'Hash'
+ $P7['parrot-squaak'] = 'squaak.pbc'
+ $P0['installable_pbc'] = $P7
# test
$S0 = get_parrot()
$S0 .= ' squaak.pbc'
$P0['prove_exec'] = $S0
+ # install
+ $P0['inst_lang'] = 'squaak/squaak.pbc'
+
# dist
- $P6 = glob('doc/*.pod examples/*.sq')
- $P0['manifest_includes'] = $P6
- $P5 = split ' ', 'MAINTAINER README'
- $P0['doc_files'] = $P5
+ $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:
+
Modified: branches/gc_massacre/examples/languages/squaak/squaak.pir
==============================================================================
--- branches/gc_massacre/examples/languages/squaak/squaak.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/languages/squaak/squaak.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,4 +1,4 @@
-# Copyright (C) 2008, Parrot Foundation.
+# Copyright (C) 2010, Parrot Foundation.
# $Id$
=head1 TITLE
@@ -7,39 +7,12 @@
=head2 Description
-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,
-and registers the compiler under the name 'Squaak'.
+This is the entry point for the Squaak compiler.
=head2 Functions
=over 4
-=item onload()
-
-Creates the Squaak compiler using a C<PCT::HLLCompiler>
-object.
-
-=cut
-
-.namespace [ 'Squaak';'Compiler' ]
-
-.sub 'onload' :anon :load :init
- load_bytecode 'PCT.pbc'
-
- $P0 = get_hll_global ['PCT'], 'HLLCompiler'
- $P1 = $P0.'new'()
- $P1.'language'('Squaak')
- $P1.'parsegrammar'('Squaak::Grammar')
- $P1.'parseactions'('Squaak::Grammar::Actions')
-
- $P1.'commandline_banner'("Squaak for Parrot VM\n")
- $P1.'commandline_prompt'('> ')
-
-.end
-
=item main(args :slurpy) :main
Start compilation by passing any command line C<args>
@@ -50,36 +23,12 @@
.sub 'main' :main
.param pmc args
+ load_language 'squaak'
+
$P0 = compreg 'Squaak'
$P1 = $P0.'command_line'(args)
.end
-
-.include 'src/builtins/say.pir'
-.include 'src/gen_grammar.pir'
-.include 'src/gen_actions.pir'
-
-
-.namespace []
-
-.sub 'initlist' :anon :load :init
- $P0 = new 'ResizablePMCArray'
- set_hll_global ['Squaak';'Grammar';'Actions'], '@?BLOCK', $P0
-.end
-
-.namespace []
-
-.sub '!array'
- .param pmc fields :slurpy
- .return (fields)
-.end
-
-.sub '!hash'
- .param pmc fields :slurpy :named
- .return (fields)
-.end
-
-
=back
=cut
Added: branches/gc_massacre/examples/languages/squaak/src/Squaak/Actions.pm
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gc_massacre/examples/languages/squaak/src/Squaak/Actions.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -0,0 +1,404 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+class Squaak::Actions is HLL::Actions;
+
+method begin_TOP ($/) {
+ our $?BLOCK := PAST::Block.new(:blocktype<declaration>, :node($/),
+ :hll<squaak>);
+ our @?BLOCK;
+ @?BLOCK.unshift($?BLOCK);
+}
+
+method TOP($/) {
+ our @?BLOCK;
+ my $past := @?BLOCK.shift();
+ $past.push($<statementlist>.ast);
+ make $past;
+}
+
+method statementlist($/) {
+ my $past := PAST::Stmts.new( :node($/) );
+ for $<stat_or_def> { $past.push( $_.ast ); }
+ make $past;
+}
+
+method stat_or_def($/) {
+ if $<statement> {
+ make $<statement>.ast;
+ }
+ else { # Must be a def
+ make $<sub_definition>.ast;
+ }
+}
+
+method sub_definition($/) {
+ our $?BLOCK;
+ our @?BLOCK;
+ my $past := $<parameters>.ast;
+ my $name := $<identifier>.ast;
+
+ # set the sub's name
+ $past.name($name.name);
+
+ # add all statements to the sub's body
+ for $<statement> {
+ $past.push($_.ast);
+ }
+
+ # and remove the block from the scope stack and restore the current block
+ @?BLOCK.shift();
+ $?BLOCK := @?BLOCK[0];
+ make $past;
+}
+
+method parameters($/) {
+ our $?BLOCK;
+ our @?BLOCK;
+ my $past := PAST::Block.new( :blocktype('declaration'), :node($/) );
+
+ # now add all parameters to this block
+ for $<identifier> {
+ my $param := $_.ast;
+ $param.scope('parameter');
+ $past.push($param);
+
+ # register the parameter as a local symbol
+ $past.symbol($param.name(), :scope('lexical'));
+ }
+
+ # now put the block into place on the scope stack
+ $?BLOCK := $past;
+ @?BLOCK.unshift($past);
+
+ make $past;
+}
+
+
+method statement:sym<assignment>($/) {
+ my $lhs := $<primary>.ast;
+ my $rhs := $<EXPR>.ast;
+ $lhs.lvalue(1);
+ make PAST::Op.new($lhs, $rhs, :pasttype<bind>, :node($/));
+}
+
+method for_init($/) {
+ our $?BLOCK;
+ our @?BLOCK;
+
+ ## create a new scope here, so that we can
+ ## add the loop variable
+ ## to this block here, which is convenient.
+ $?BLOCK := PAST::Block.new( :blocktype('immediate'),
+ :node($/) );
+ @?BLOCK.unshift($?BLOCK);
+
+ my $iter := $<identifier>.ast;
+ ## set a flag that this identifier is being declared
+ $iter.isdecl(1);
+ $iter.scope('lexical');
+ ## the identifier is initialized with this expression
+ $iter.viviself( $<EXPR>.ast );
+
+ ## enter the loop variable into the symbol table.
+ $?BLOCK.symbol($iter.name(), :scope('lexical'));
+
+ make $iter;
+}
+
+method step($/) {
+ make $<EXPR>.ast;
+}
+
+method statement:sym<for>($/) {
+ our $?BLOCK;
+ our @?BLOCK;
+
+ my $init := $<for_init>.ast;
+ ## cache the name of the loop variable
+ my $itername := $init.name();
+ my $iter := PAST::Var.new( :name($itername),
+ :scope('lexical'),
+ :node($/) );
+ ## the body of the loop consists of the statements written by the user and
+ ## the increment instruction of the loop iterator.
+
+ my $body := @?BLOCK.shift();
+ $?BLOCK := @?BLOCK[0];
+ for $<statement> {
+ $body.push($_.ast);
+ }
+
+ my $step;
+ if $<step> {
+ my $stepsize := $<step>[0].ast;
+ $step := PAST::Op.new( $iter, $stepsize,
+ :pirop('add__0P+'), :node($/) );
+ }
+ else { ## default is increment by 1
+ $step := PAST::Op.new( $iter, :pirop('inc'), :node($/) );
+ }
+ $body.push($step);
+
+ ## while loop iterator <= end-expression
+ my $cond := PAST::Op.new( :pirop<isle__IPP>,
+ $iter,
+ $<EXPR>.ast );
+ my $loop := PAST::Op.new( $cond, $body, :pasttype('while'), :node($/) );
+
+ make PAST::Stmts.new( $init, $loop, :node($/) );
+}
+
+method statement:sym<if>($/) {
+ my $cond := $<EXPR>.ast;
+ my $past := PAST::Op.new( $cond, $<then>.ast,
+ :pasttype('if'),
+ :node($/) );
+ if $<else> {
+ $past.push($<else>[0].ast);
+ }
+ make $past;
+}
+
+method statement:sym<sub_call>($/) {
+ my $invocant := $<primary>.ast;
+ my $past := $<arguments>.ast;
+ $past.unshift($invocant);
+ make $past;
+}
+
+method arguments($/) {
+ my $past := PAST::Op.new( :pasttype('call'), :node($/) );
+ for $<EXPR> {
+ $past.push($_.ast);
+ }
+ make $past;
+}
+
+method statement:sym<throw>($/) {
+ make PAST::Op.new( $<EXPR>.ast,
+ :pirop('die'),
+ :node($/) );
+}
+
+method statement:sym<try>($/) {
+ ## get the try block
+ my $try := $<try>.ast;
+
+ ## create a new PAST::Stmts node for
+ ## the catch block; note that no
+ ## PAST::Block is created, as this
+ ## currently has problems with the
+ ## exception object. For now this will
+ ## do.
+ my $catch := PAST::Stmts.new( :node($/) );
+ $catch.push($<catch>.ast);
+
+ ## get the exception identifier;
+ ## set a declaration flag, the scope,
+ ## and clear the viviself attribute.
+ my $exc := $<exception>.ast;
+ $exc.isdecl(1);
+ $exc.scope('lexical');
+ $exc.viviself(0);
+ ## generate instruction to retrieve the exception object (and the
+ ## exception message, that is passed automatically in PIR, this is stored
+ ## into $S0 (but not used).
+ my $pir := " .get_results (\%r, \$S0)\n"
+ ~ " store_lex '" ~ $exc.name()
+ ~ "', \%r";
+
+ $catch.unshift( PAST::Op.new( :inline($pir), :node($/) ) );
+
+ ## do the declaration of the exception object as a lexical here:
+ $catch.unshift( $exc );
+ make PAST::Op.new( $try, $catch, :pasttype('try'), :node($/) );
+}
+
+method exception($/) {
+ my $past := $<identifier>.ast;
+ make $past;
+}
+
+method statement:sym<var>($/) {
+ our $?BLOCK;
+ # get the PAST for the identifier
+ my $past := $<identifier>.ast;
+
+ # this is a local (it's being defined)
+ $past.scope('lexical');
+
+ # set a declaration flag
+ $past.isdecl(1);
+
+ # check for the initialization expression
+ if $<EXPR> {
+ # use the viviself clause to add a
+ # an initialization expression
+ $past.viviself($<EXPR>[0].ast);
+ }
+ else { # no initialization, default to "Undef"
+ $past.viviself('Undef');
+ }
+
+ my $name := $past.name();
+
+ if $?BLOCK.symbol( $name ) {
+ # symbol is already present
+ $/.CURSOR.panic("Error: symbol " ~ $name ~ " was already defined.\n");
+ }
+ else {
+ $?BLOCK.symbol( $name, :scope('lexical') );
+ }
+ make $past;
+}
+
+method statement:sym<while>($/) {
+ my $cond := $<EXPR>.ast;
+ my $body := $<block>.ast;
+ make PAST::Op.new( $cond, $body, :pasttype('while'), :node($/) );
+}
+
+method begin_block($/) {
+ our $?BLOCK;
+ our @?BLOCK;
+ $?BLOCK := PAST::Block.new(:blocktype('immediate'),
+ :node($/));
+ @?BLOCK.unshift($?BLOCK);
+}
+
+method block($/) {
+ our $?BLOCK;
+ our @?BLOCK;
+ my $past := @?BLOCK.shift();
+ $?BLOCK := @?BLOCK[0];
+
+ for $<statement> {
+ $past.push($_.ast);
+ }
+ make $past;
+}
+
+method primary($/) {
+ my $past := $<identifier>.ast;
+
+ for $<postfix_expression> {
+ my $expr := $_.ast;
+ $expr.unshift( $past );
+ $past := $expr;
+ }
+
+ make $past;
+}
+
+method postfix_expression:sym<index>($/) {
+ my $index := $<EXPR>.ast;
+ my $past := PAST::Var.new( $index,
+ :scope('keyed'),
+ :viviself('Undef'),
+ :vivibase('ResizablePMCArray'),
+ :node($/) );
+
+ make $past;
+}
+
+method postfix_expression:sym<key>($/) {
+ my $key := $<EXPR>.ast;
+
+ make PAST::Var.new( $key, :scope('keyed'),
+ :vivibase('Hash'),
+ :viviself('Undef'),
+ :node($/) );
+}
+
+method postfix_expression:sym<member>($/) {
+ my $member := $<identifier>.ast;
+ ## x.y is syntactic sugar for x{"y"},
+ ## so stringify the identifier:
+ my $key := PAST::Val.new( :returns('String'),
+ :value($member.name),
+ :node($/) );
+
+ ## the rest of this method is the same
+ ## as method key() above.
+ make PAST::Var.new( $key, :scope('keyed'),
+ :vivibase('Hash'),
+ :viviself('Undef'),
+ :node($/) );
+}
+
+method identifier($/) {
+ our @?BLOCK;
+ my $name := ~$<ident>;
+ my $scope := 'package'; # default value
+ # go through all scopes and check if the symbol
+ # is registered as a local. If so, set scope to
+ # local.
+ for @?BLOCK {
+ if $_.symbol($name) {
+ $scope := 'lexical';
+ }
+ }
+
+ make PAST::Var.new( :name($name),
+ :scope($scope),
+ :viviself('Undef'),
+ :node($/) );
+}
+
+method term:sym<integer_constant>($/) {
+ make PAST::Val.new(:value($<integer>.ast), :returns<Integer>);
+}
+method term:sym<string_constant>($/) { make $<string_constant>.ast; }
+method string_constant($/) {
+ my $past := $<quote>.ast;
+ $past.returns('String');
+ make $past;
+}
+method term:sym<float_constant_long>($/) { # name worksaround lack of LTM
+ make PAST::Val.new(:value(+$/), :returns<Float>);
+}
+method term:sym<primary>($/) {
+ make $<primary>.ast;
+}
+
+method quote:sym<'>($/) { make $<quote_EXPR>.ast; }
+method quote:sym<">($/) { make $<quote_EXPR>.ast; }
+
+method circumfix:sym<( )>($/) { make $<EXPR>.ast; }
+
+method named_field($/) {
+ my $past := $<EXPR>.ast;
+ my $name := $<string_constant>.ast;
+ ## the passed expression is in fact a named argument,
+ ## use the named() accessor to set that name.
+ $past.named($name);
+ make $past;
+}
+
+method circumfix:sym<[ ]>($/) {
+ ## use the parrot calling conventions to
+ ## create an array,
+ ## using the "anonymous" sub !array
+ ## (which is not a valid Squaak name)
+ my $past := PAST::Op.new( :name('!array'),
+ :pasttype('call'),
+ :node($/) );
+ for $<EXPR> {
+ $past.push($_.ast);
+ }
+ make $past;
+}
+
+method circumfix:sym<{ }>($/) {
+ ## use the parrot calling conventions to
+ ## create a hash, using the "anonymous" sub
+ ## !hash (which is not a valid Squaak name)
+ my $past := PAST::Op.new( :name('!hash'),
+ :pasttype('call'),
+ :node($/) );
+ for $<named_field> {
+ $past.push($_.ast);
+ }
+ make $past;
+}
Added: branches/gc_massacre/examples/languages/squaak/src/Squaak/Compiler.pm
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gc_massacre/examples/languages/squaak/src/Squaak/Compiler.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -0,0 +1,12 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+class Squaak::Compiler is HLL::Compiler;
+
+INIT {
+ Squaak::Compiler.language('Squaak');
+ Squaak::Compiler.parsegrammar(Squaak::Grammar);
+ Squaak::Compiler.parseactions(Squaak::Actions);
+ Squaak::Compiler.commandline_banner("Squaak for Parrot VM.\n");
+ Squaak::Compiler.commandline_prompt('> ');
+}
Added: branches/gc_massacre/examples/languages/squaak/src/Squaak/Grammar.pm
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gc_massacre/examples/languages/squaak/src/Squaak/Grammar.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -0,0 +1,205 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+=begin overview
+
+This is the grammar for Squaak in Perl 6 rules.
+
+=end overview
+
+grammar Squaak::Grammar is HLL::Grammar;
+
+token begin_TOP {
+ <?>
+}
+
+token TOP {
+ <.begin_TOP>
+ <statementlist>
+ [ $ || <.panic: "Syntax error"> ]
+}
+
+## Lexer items
+
+# This <ws> rule treats # as "comment to eol".
+token ws {
+ <!ww>
+ [ '#' \N* \n? | \s+ ]*
+}
+
+## Statements
+
+rule statementlist {
+ <stat_or_def>*
+}
+
+rule stat_or_def {
+ | <statement>
+ | <sub_definition>
+}
+
+rule sub_definition {
+ 'sub' <identifier> <parameters>
+ <statement>*
+ 'end'
+}
+
+rule parameters {
+ '(' [<identifier> ** ',']? ')'
+}
+
+proto rule statement { <...> }
+
+rule statement:sym<assignment> {
+ <primary> '=' <EXPR>
+}
+
+rule statement:sym<do> {
+ <sym> <block> 'end'
+}
+
+rule statement:sym<for> {
+ <sym> <for_init> ',' <EXPR> <step>?
+ 'do' <statement>* 'end'
+}
+
+rule step {
+ ',' <EXPR>
+}
+
+rule for_init {
+ 'var' <identifier> '=' <EXPR>
+}
+
+rule statement:sym<if> {
+ <sym> <EXPR> 'then' $<then>=<block>
+ ['else' $<else>=<block> ]?
+ 'end'
+}
+
+rule statement:sym<sub_call> {
+ <primary> <arguments>
+}
+
+rule arguments {
+ '(' [<EXPR> ** ',']? ')'
+}
+
+rule statement:sym<throw> {
+ <sym> <EXPR>
+}
+
+rule statement:sym<try> {
+ <sym> $<try>=<block>
+ 'catch' <exception>
+ $<catch>=<block>
+ 'end'
+}
+
+rule exception {
+ <identifier>
+}
+
+rule statement:sym<var> {
+ <sym> <identifier> ['=' <EXPR>]?
+}
+
+rule statement:sym<while> {
+ <sym> <EXPR> 'do' <block> 'end'
+}
+
+token begin_block {
+ <?>
+}
+
+rule block {
+ <.begin_block>
+ <statement>*
+}
+
+## Terms
+
+rule primary {
+ <identifier> <postfix_expression>*
+}
+
+proto rule postfix_expression { <...> }
+
+rule postfix_expression:sym<index> { '[' <EXPR> ']' }
+
+rule postfix_expression:sym<key> { '{' <EXPR> '}' }
+
+rule postfix_expression:sym<member> { '.' <identifier> }
+
+token identifier {
+ <!keyword> <ident>
+}
+
+token keyword {
+ ['and'|'catch'|'do' |'else' |'end' |'for' |'if'
+ |'not'|'or' |'sub' |'throw'|'try' |'var'|'while']>>
+}
+
+token term:sym<integer_constant> { <integer> }
+token term:sym<string_constant> { <string_constant> }
+token string_constant { <quote> }
+token term:sym<float_constant_long> { # longer to work-around lack of LTM
+ [
+ | \d+ '.' \d*
+ | \d* '.' \d+
+ ]
+}
+token term:sym<primary> {
+ <primary>
+}
+
+proto token quote { <...> }
+token quote:sym<'> { <?[']> <quote_EXPR: ':q'> }
+token quote:sym<"> { <?["]> <quote_EXPR: ':qq'> }
+
+## Operators
+
+INIT {
+ Squaak::Grammar.O(':prec<w>, :assoc<unary>', '%unary-negate');
+ Squaak::Grammar.O(':prec<v>, :assoc<unary>', '%unary-not');
+ Squaak::Grammar.O(':prec<u>, :assoc<left>', '%multiplicative');
+ Squaak::Grammar.O(':prec<t>, :assoc<left>', '%additive');
+ Squaak::Grammar.O(':prec<s>, :assoc<left>', '%relational');
+ Squaak::Grammar.O(':prec<r>, :assoc<left>', '%conjunction');
+ Squaak::Grammar.O(':prec<q>, :assoc<left>', '%disjunction');
+}
+
+token circumfix:sym<( )> { '(' <.ws> <EXPR> ')' }
+
+rule circumfix:sym<[ ]> {
+ '[' [<EXPR> ** ',']? ']'
+}
+
+rule circumfix:sym<{ }> {
+ '{' [<named_field> ** ',']? '}'
+}
+
+rule named_field {
+ <string_constant> '=>' <EXPR>
+}
+
+token prefix:sym<-> { <sym> <O('%unary-negate, :pirop<neg>')> }
+token prefix:sym<not> { <sym> <O('%unary-not, :pirop<isfalse>')> }
+
+token infix:sym<*> { <sym> <O('%multiplicative, :pirop<mul>')> }
+token infix:sym<%> { <sym> <O('%multiplicative, :pirop<mod>')> }
+token infix:sym</> { <sym> <O('%multiplicative, :pirop<div>')> }
+
+token infix:sym<+> { <sym> <O('%additive, :pirop<add>')> }
+token infix:sym<-> { <sym> <O('%additive, :pirop<sub>')> }
+token infix:sym<..> { <sym> <O('%additive, :pirop<concat>')> }
+
+token infix:sym«<» { <sym> <O('%relational, :pirop<islt iPP>')> }
+token infix:sym«<=» { <sym> <O('%relational, :pirop<isle iPP>')> }
+token infix:sym«>» { <sym> <O('%relational, :pirop<isgt iPP>')> }
+token infix:sym«>=» { <sym> <O('%relational, :pirop<isge iPP>')> }
+token infix:sym«==» { <sym> <O('%relational, :pirop<iseq iPP>')> }
+token infix:sym«!=» { <sym> <O('%relational, :pirop<isne iPP>')> }
+
+token infix:sym<and> { <sym> <O('%conjunction, :pasttype<if>')> }
+token infix:sym<or> { <sym> <O('%disjunction, :pasttype<unless>')> }
Added: branches/gc_massacre/examples/languages/squaak/src/Squaak/Runtime.pm
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gc_massacre/examples/languages/squaak/src/Squaak/Runtime.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -0,0 +1,22 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+# language-specific runtime functions go here
+
+{
+ my sub array (*@args) { @args; }
+ my sub hash (*%args) { %args; }
+
+ Q:PIR {
+ $P0 = find_lex 'array'
+ set_global '!array', $P0
+ $P0 = find_lex 'hash'
+ set_global '!hash', $P0
+ }
+}
+
+sub print(*@args) {
+ pir::say(pir::join('', @args));
+ pir::return();
+}
Deleted: branches/gc_massacre/examples/languages/squaak/src/builtins/say.pir
==============================================================================
--- branches/gc_massacre/examples/languages/squaak/src/builtins/say.pir Tue Aug 3 22:27:14 2010 (r48297)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,99 +0,0 @@
-# Copyright (C) 2008, Parrot Foundation.
-# $Id$
-
-
-=head1
-
-Squaak built-in routines
-
-=cut
-
-.namespace []
-
-.sub 'print'
- .param pmc args :slurpy
- .local pmc it
- it = iter args
- iter_loop:
- unless it goto iter_end
- $P0 = shift it
- print $P0
- goto iter_loop
- iter_end:
- print "\n"
- .return ()
-.end
-
-.include 'stdio.pasm'
-
-.sub 'read'
- .local pmc stdin
- $P0 = getinterp
- stdin = $P0.'stdhandle'(.PIO_STDIN_FILENO)
- $S0 = stdin.'readline'()
- .return ($S0)
-.end
-
-
-## this doesn't work for me :-(
-## once this works, Game of Life runs much nicer.
-## --kjs
-##
-.sub 'clearscreen'
- print binary:"\027[2J"
- print binary:"\027[H"
- #print binary:"\e[2J"
- #print binary:"\e[H"
-.end
-
-
-.sub 'infix:<'
- .param pmc a
- .param pmc b
- islt $I0, a, b
- .return ($I0)
-.end
-
-
-.sub 'infix:<='
- .param pmc a
- .param pmc b
- isle $I0, a, b
- .return ($I0)
-.end
-
-.sub 'infix:>'
- .param pmc a
- .param pmc b
- isgt $I0, a, b
- .return ($I0)
-.end
-
-.sub 'infix:>='
- .param pmc a
- .param pmc b
- isge $I0, a, b
- .return ($I0)
-.end
-
-.sub 'infix:=='
- .param pmc a
- .param pmc b
- iseq $I0, a, b
- .return ($I0)
-.end
-
-.sub 'infix:!='
- .param pmc a
- .param pmc b
- isne $I0, a, b
- .return ($I0)
-.end
-
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
-
Deleted: branches/gc_massacre/examples/languages/squaak/src/parser/actions.pm
==============================================================================
--- branches/gc_massacre/examples/languages/squaak/src/parser/actions.pm Tue Aug 3 22:27:14 2010 (r48297)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,446 +0,0 @@
-# Copyright (C) 2008, Parrot Foundation.
-# $Id$
-
-
-=begin comments
-
-Squaak::Grammar::Actions - ast transformations for Squaak
-
-This file contains the methods that are used by the parse grammar
-to build the PAST representation of an Squaak program.
-Each method below corresponds to a rule in F<src/parser/grammar.pg>,
-and is invoked at the point where C<{*}> appears in the rule,
-with the current match object as the first argument. If the
-line containing C<{*}> also has a C<#= key> comment, then the
-value of the comment is passed as the second argument to the method.
-
-=end comments
-
-class Squaak::Grammar::Actions;
-
-method TOP($/, $key) {
- our @?BLOCK;
- our $?BLOCK;
-
- if $key eq 'open' {
- ## create the top-level block here; any top-level variable
- ## declarations are entered into this block's symbol table.
- ## Note that TOP *must* deliver a PAST::Block with blocktype
- ## "declaration".
- $?BLOCK := PAST::Block.new( :blocktype('declaration'), :node($/) );
- $?BLOCK.symbol_defaults( :scope('package') );
- @?BLOCK.unshift($?BLOCK);
- }
- else {
- ## retrieve the block created in the "if" section in this method.
- my $past := @?BLOCK.shift();
-
- for $<stat_or_def> {
- $past.push($_.ast);
- }
- make $past;
- }
-}
-
-method stat_or_def($/, $key) {
- make $/{$key}.ast;
-}
-
-method statement($/, $key) {
- make $/{$key}.ast;
-}
-
-method if_statement($/) {
- my $cond := $<expression>.ast;
- my $then := $<block>.ast;
- my $past := PAST::Op.new( $cond, $then, :pasttype('if'), :node($/) );
-
- ## if there's an else clause, add it to the PAST node.
- if $<else> {
- $past.push( $<else>[0].ast );
- }
- make $past;
-}
-
-method while_statement($/) {
- my $cond := $<expression>.ast;
- my $body := $<block>.ast;
- make PAST::Op.new( $cond, $body, :pasttype('while'), :node($/) );
-}
-
-## for var <ident> = <expr1> , <expr2> do <block> end
-##
-## translates to:
-## do
-## var <ident> = <expr1>
-## while <ident> <= <expr2> do
-## <block>
-## <ident> = <ident> + 1
-## end
-## end
-##
-method for_statement($/) {
- our $?BLOCK;
- our @?BLOCK;
-
- my $init := $<for_init>.ast;
-
- ## cache the name of the loop variable
- my $itername := $init.name();
-
- ## create another PAST::Var node for the loop variable, this one is used
- ## for the loop condition; the node in $init has a isdecl(1) flag and a
- ## viviself object; $init represents the declaration of the loop var,
- ## $iter represents the loop variable in normal usage.
- my $iter := PAST::Var.new( :name($itername), :scope('lexical'), :node($/) );
-
- ## the body of the loop consists of the statements written by the user and
- ## the increment instruction of the loop iterator.
-
- my $body := @?BLOCK.shift();
- $?BLOCK := @?BLOCK[0];
- for $<statement> {
- $body.push( $_.ast );
- }
-
- ## if a step was specified, use that; otherwise, use the default of +1.
- ## Note that a negative step will NOT work (unless YOU fix that :-) ).
- ##
- my $step;
- if $<step> {
- my $stepsize := $<step>[0].ast;
- $step := PAST::Op.new( $iter, $stepsize, :pirop('add'), :node($/) );
- }
- else { ## default is increment by 1
- $step := PAST::Op.new( $iter, :pirop('inc'), :node($/) );
- }
- $body.push($step);
-
- ## while loop iterator <= end-expression
- my $cond := PAST::Op.new( $iter, $<expression>.ast, :name('infix:<=') );
- my $loop := PAST::Op.new( $cond, $body, :pasttype('while'), :node($/) );
-
- make PAST::Stmts.new( $init, $loop, :node($/) );
-}
-
-method for_init($/) {
- our $?BLOCK;
- our @?BLOCK;
-
- ## create a new scope here, so that we can add the loop variable
- ## to this block here, which is convenient.
- $?BLOCK := PAST::Block.new( :blocktype('immediate'), :node($/) );
- @?BLOCK.unshift($?BLOCK);
-
- my $iter := $<identifier>.ast;
- ## set a flag that this identifier is being declared
- $iter.isdecl(1);
- $iter.scope('lexical');
- ## the identifier is initialized with this expression
- $iter.viviself( $<expression>.ast );
-
- ## enter the loop variable as a local into the symbol table.
- $?BLOCK.symbol($iter.name(), :scope('lexical'));
-
- make $iter;
-}
-
-method try_statement($/) {
- ## get the try block
- my $try := $<try>.ast;
-
- ## create a new PAST::Stmts node for the catch block;
- ## note that no PAST::Block is created, as this currently
- ## has problems with the exception object. For now this will do.
- my $catch := PAST::Stmts.new( :node($/) );
- $catch.push( $<catch>.ast );
-
- ## get the exception identifier;
- my $exc := $<exception>.ast;
- $exc.isdecl(1);
- $exc.scope('lexical');
- $exc.viviself( PAST::Val.new( :value(0) ) );
-
- ## generate instruction to retrieve the exception objct (and the exception message,
- ## that is passed automatically in PIR, this is stored into $S0 (but not used).
- my $pir := " .get_results (%r)\n"
- ~ " store_lex '" ~ $exc.name() ~ "', %r";
-
- $catch.unshift( PAST::Op.new( :inline($pir), :node($/) ) );
- ## do the declaration of the exception object as a lexical here:
- $catch.unshift( $exc );
-
- make PAST::Op.new( $try, $catch, :pasttype('try'), :node($/) );
-}
-
-method exception($/) {
- our $?BLOCK;
-
- my $exc := $<identifier>.ast;
- ## the exception identifier is local to the exception handler
- $?BLOCK.symbol($exc.name(), :scope('lexical'));
- make $exc;
-}
-
-method throw_statement($/) {
- make PAST::Op.new( $<expression>.ast, :pirop('throw'), :node($/) );
-}
-
-method block($/, $key) {
- our $?BLOCK; ## the current block
- our @?BLOCK; ## the scope stack
-
- if $key eq 'open' {
- $?BLOCK := PAST::Block.new( :blocktype('immediate'), :node($/) );
- @?BLOCK.unshift($?BLOCK);
- }
- else {
- ## retrieve the current block, remove it from the scope stack
- ## and restore the "current" block.
- my $past := @?BLOCK.shift();
- $?BLOCK := @?BLOCK[0];
-
- for $<statement> {
- $past.push( $_.ast );
- }
- make $past
- }
-}
-
-method return_statement($/) {
- my $expr := $<expression>.ast;
- make PAST::Op.new( $expr, :pasttype('return'), :node($/) );
-}
-
-method do_block($/) {
- make $<block>.ast;
-}
-
-method assignment($/) {
- my $rhs := $<expression>.ast;
- my $lhs := $<primary>.ast;
- $lhs.lvalue(1);
- make PAST::Op.new( $lhs, $rhs, :pasttype('bind'), :node($/) );
-}
-
-method sub_definition($/) {
- our @?BLOCK;
- our $?BLOCK;
-
- ## note that $<parameters> creates a new PAST::Block.
- my $past := $<parameters>.ast;
- my $name := $<identifier>.ast;
-
- ## set the function name
- $past.name( $name.name() );
- for $<statement> {
- $past.push( $_.ast );
- }
-
- ## remove the block from the scope stack
- ## and restore the "current" block
- @?BLOCK.shift();
- $?BLOCK := @?BLOCK[0];
-
- $past.control('return_pir');
- make $past;
-}
-
-method variable_declaration($/) {
- our $?BLOCK;
-
- my $past := $<identifier>.ast;
- $past.isdecl(1);
- $past.scope('lexical');
-
- ## if there's an initialization value, use it to viviself the variable.
- if $<expression> {
- $past.viviself( $<expression>[0].ast );
- }
- else { ## otherwise initialize to undef.
- $past.viviself( 'Undef' );
- }
-
- ## cache this identifier's name
- my $name := $past.name();
-
- ## if the symbol is already declared, emit an error. Otherwise,
- ## enter it into the current block's symbol table.
- if $?BLOCK.symbol($name) {
- $/.panic("Error: symbol " ~ $name ~ " was already defined\n");
- }
- else {
- $?BLOCK.symbol($name, :scope('lexical'));
- }
- make $past;
-}
-
-method parameters($/) {
- our $?BLOCK;
- our @?BLOCK;
-
- my $past := PAST::Block.new( :blocktype('declaration'), :node($/) );
- for $<identifier> {
- my $param := $_.ast;
- $param.scope('parameter');
- $past.push($param);
-
- ## enter the parameter as a lexical into the block's symbol table
- $past.symbol($param.name(), :scope('lexical'));
- }
-
- ## set this block as the current block, and store it on the scope stack
- $?BLOCK := $past;
- @?BLOCK.unshift($past);
-
- make $past;
-}
-
-method sub_call($/) {
- my $invocant := $<primary>.ast;
- my $past := $<arguments>.ast;
- ## set the invocant as the first child of the PAST::Op(:pasttype('call')) node
- $past.unshift( $invocant );
- make $past;
-}
-
-method arguments($/) {
- my $past := PAST::Op.new( :pasttype('call'), :node($/) );
- for $<expression> {
- $past.push( $_.ast );
- }
- make $past;
-}
-
-method primary($/) {
- my $past := $<identifier>.ast ;
- for $<postfix_expression> {
- my $expr := $_.ast;
- ## set the current $past as the first child of $expr;
- ## $expr is either a key or an index; both are "keyed"
- ## variable access, where the first child is assumed
- ## to be the aggregate.
- $expr.unshift($past);
- $past := $expr;
- }
- make $past;
-}
-
-method postfix_expression($/, $key) {
- make $/{$key}.ast;
-}
-
-method key($/) {
- my $key := $<expression>.ast;
-
- make PAST::Var.new( $key, :scope('keyed'),
- :vivibase('Hash'),
- :viviself('Undef'),
- :node($/) );
-
-}
-
-method member($/) {
- my $member := $<identifier>.ast;
- ## x.y is syntactic sugar for x{"y"}, so stringify the identifier:
- my $key := PAST::Val.new( :returns('String'), :value($member.name()), :node($/) );
-
- ## the rest of this method is the same as method key() above.
- make PAST::Var.new( $key, :scope('keyed'),
- :vivibase('Hash'),
- :viviself('Undef'),
- :node($/) );
-}
-
-method index($/) {
- my $index := $<expression>.ast;
-
- make PAST::Var.new( $index, :scope('keyed'),
- :vivibase('ResizablePMCArray'),
- :viviself('Undef'),
- :node($/) );
-}
-
-method named_field($/) {
- my $past := $<expression>.ast;
- my $name := $<string_constant>.ast;
- ## the passed expression is in fact a named argument,
- ## use the named() accessor to set that name.
- $past.named($name);
- make $past;
-}
-
-method array_constructor($/) {
- ## use the parrot calling conventions to
- ## create an array,
- ## using the "anonymous" sub !array
- ## (which is not a valid Squaak name)
- my $past := PAST::Op.new( :name('!array'), :pasttype('call'), :node($/) );
- for $<expression> {
- $past.push( $_.ast );
- }
- make $past;
-}
-
-method hash_constructor($/) {
- ## use the parrot calling conventions to
- ## create a hash, using the "anonymous" sub
- ## !hash (which is not a valid Squaak name)
- my $past := PAST::Op.new( :name('!hash'), :pasttype('call'), :node($/) );
- for $<named_field> {
- $past.push( $_.ast );
- }
- make $past;
-}
-
-method term($/, $key) {
- make $/{$key}.ast;
-}
-
-method identifier($/) {
- my $name := ~$/;
- ## instead of ~$/, you can also write ~$<ident>, as an identifier
- ## uses the built-in <ident> rule to match identifiers.
- make PAST::Var.new( :name($name), :viviself('Undef'), :node($/) );
-}
-
-method integer_constant($/) {
- make PAST::Val.new( :value( ~$/ ), :returns('Integer'), :node($/) );
-}
-
-method float_constant($/) {
- make PAST::Val.new( :value( ~$/ ), :returns('Float'), :node($/) );
-}
-
-method string_constant($/) {
- make PAST::Val.new( :value( $<string_literal>.ast ), :returns('String'), :node($/) );
-}
-
-## Handle the operator precedence table.
-method expression($/, $key) {
- if ($key eq 'end') {
- make $<expr>.ast;
- }
- else {
- my $past := PAST::Op.new( :name($<type>),
- :pasttype($<top><pasttype>),
- :pirop($<top><pirop>),
- :lvalue($<top><lvalue>),
- :node($/)
- );
- for @($/) {
- $past.push( $_.ast );
- }
- make $past;
- }
-}
-
-
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
-
Deleted: branches/gc_massacre/examples/languages/squaak/src/parser/grammar.pg
==============================================================================
--- branches/gc_massacre/examples/languages/squaak/src/parser/grammar.pg Tue Aug 3 22:27:14 2010 (r48297)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,235 +0,0 @@
-# Copyright (C) 2008, Parrot Foundation.
-# $Id$
-
-
-=begin overview
-
-This is the grammar for Squaak written as a sequence of Perl 6 rules.
-
-=end overview
-
-grammar Squaak::Grammar is PCT::Grammar;
-
-rule TOP {
- {*} #= open
- <stat_or_def>*
- [ $ || <.panic: 'Syntax error'> ]
- {*} #= close
-}
-
-rule stat_or_def {
- | <statement> {*} #= statement
- | <sub_definition> {*} #= sub_definition
-}
-
-rule statement {
- | <if_statement> {*} #= if_statement
- | <while_statement> {*} #= while_statement
- | <for_statement> {*} #= for_statement
- | <try_statement> {*} #= try_statement
- | <throw_statement> {*} #= throw_statement
- | <return_statement> {*} #= return_statement
- | <sub_call> {*} #= sub_call
- | <assignment> {*} #= assignment
- | <variable_declaration> {*} #= variable_declaration
- | <do_block> {*} #= do_block
-}
-
-rule if_statement {
- 'if' <expression> 'then' <block> ['else' <else=block>]? 'end'
- {*}
-}
-
-rule while_statement {
- 'while' <expression> 'do' <block> 'end'
- {*}
-}
-
-rule for_statement {
- 'for' <for_init> ',' <expression> [',' <step=expression>]? 'do'
- <statement>*
- 'end'
- {*}
-}
-
-rule for_init {
- 'var' <identifier> '=' <expression>
- {*}
-}
-
-rule try_statement {
- 'try' <try=block> 'catch' <exception> <catch=block> 'end'
- {*}
-}
-
-rule exception {
- <identifier>
- {*}
-}
-
-rule throw_statement {
- 'throw' <expression>
- {*}
-}
-
-rule return_statement {
- 'return' <expression>
- {*}
-}
-
-rule block {
- {*} #= open
- <statement>*
- {*} #= close
-}
-
-rule do_block {
- 'do' <block> 'end'
- {*}
-}
-
-rule assignment {
- <primary> '=' <expression>
- {*}
-}
-
-rule sub_definition {
- 'sub' <identifier> <parameters>
- <statement>*
- 'end'
- {*}
-}
-
-rule parameters {
- '(' [ <identifier> [',' <identifier>]* ]? ')'
- {*}
-}
-
-rule variable_declaration {
- 'var' <identifier> ['=' <expression>]?
- {*}
-}
-
-rule sub_call {
- <primary> <arguments>
- {*}
-}
-
-rule arguments {
- '(' [ <expression> [',' <expression>]* ]? ')'
- {*}
-}
-
-rule primary {
- <identifier> <postfix_expression>*
- {*}
-}
-
-rule postfix_expression {
- | <key> {*} #= key
- | <member> {*} #= member
- | <index> {*} #= index
-}
-
-rule key {
- '{' <expression> '}'
- {*}
-}
-
-rule member {
- '.' <identifier>
- {*}
-}
-
-rule index {
- '[' <expression> ']'
- {*}
-}
-
-rule term {
- | <float_constant> {*} #= float_constant
- | <integer_constant> {*} #= integer_constant
- | <string_constant> {*} #= string_constant
- | <hash_constructor> {*} #= hash_constructor
- | <array_constructor> {*} #= array_constructor
- | <sub_call> {*} #= sub_call
- | <primary> {*} #= primary
- | '(' <expression> ')' {*} #= expression
-}
-
-rule hash_constructor {
- '{' [ <named_field> [',' <named_field>]* ]? '}'
- {*}
-}
-
-rule named_field {
- <string_constant> '=>' <expression>
- {*}
-}
-
-rule array_constructor {
- '[' [ <expression> [',' <expression>]* ]? ']'
- {*}
-}
-
-token identifier {
- <!keyword> <ident>
- {*}
-}
-
-token integer_constant {
- \d+
- {*}
-}
-
-token float_constant {
- [
- | \d+ '.' \d*
- | \d* '.' \d+
- ]
- {*}
-}
-
-token string_constant {
- \" <string_literal: '"'> \"
- {*}
-}
-
-token keyword {
- ['and'|'catch' |'do' |'else' |'end' |'for'|'if' |'not'
- |'or' |'return'|'sub'|'throw'|'try' |'var'|'while']>>
-}
-
-rule expression is optable { ... }
-
-proto 'infix:or' is precedence('1') is pasttype('unless') { ... }
-proto 'infix:and' is tighter('infix:or') is pasttype('if') { ... }
-
-proto 'infix:<' is tighter('infix:and') { ... }
-proto 'infix:<=' is equiv('infix:<') { ... }
-proto 'infix:>' is equiv('infix:<') { ... }
-proto 'infix:>=' is equiv('infix:<') { ... }
-proto 'infix:==' is equiv('infix:<') { ... }
-proto 'infix:!=' is equiv('infix:<') { ... }
-
-proto 'infix:+' is tighter('infix:<') is pirop('add') { ... }
-proto 'infix:-' is equiv('infix:+') is pirop('sub') { ... }
-
-proto 'infix:..' is equiv('infix:+') is pirop('concat') { ... }
-
-proto 'infix:*' is tighter('infix:+') is pirop('mul') { ... }
-proto 'infix:%' is equiv('infix:*') is pirop('mod') { ... }
-proto 'infix:/' is equiv('infix:*') is pirop('div') { ... }
-
-proto 'prefix:not' is tighter('infix:*') is pirop('not') { ... }
-proto 'prefix:-' is tighter('prefix:not') is pirop('neg') { ... }
-
-proto 'term:' is tighter('prefix:-') is parsed(&term) { ... }
-
-
-## this <ws> rule treats # as "comment to eol"
-## you may want to replace it with something appropriate
-token ws {
- <!ww>
- [ '#' \N* \n? | \s+ ]*
-}
Added: branches/gc_massacre/examples/languages/squaak/src/squaak.pir
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gc_massacre/examples/languages/squaak/src/squaak.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -0,0 +1,56 @@
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 TITLE
+
+squaak.pir - A Squaak compiler.
+
+=head2 Description
+
+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,
+and registers the compiler under the name 'Squaak'.
+
+=head2 Functions
+
+=over 4
+
+=item onload()
+
+Creates the Squaak compiler using a C<PCT::HLLCompiler>
+object.
+
+=cut
+
+.HLL 'squaak'
+#.loadlib 'squaak_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:
+
Modified: branches/gc_massacre/examples/pir/make_hello_pbc.pir
==============================================================================
--- branches/gc_massacre/examples/pir/make_hello_pbc.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/examples/pir/make_hello_pbc.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -66,6 +66,7 @@
$P0['ns_entry_name']= 'hello'
$P0['method'] = ''
$P0['HLL_id'] = 0
+ $P0['vtable_index'] = -1 # It required to store sub in namespace
$P1 = new 'Sub', $P0
# and store it in PackfileConstantTable
@@ -78,7 +79,7 @@
$P1 = new 'PackfileFixupEntry'
$P1 = 'hello'
- $P1.'set_type'(2)
+ $P1.'set_type'(1)
$P1 = 5 # offset
pffixup[0] = $P1
Modified: branches/gc_massacre/ext/Parrot-Embed/lib/Parrot/Embed.xs
==============================================================================
--- branches/gc_massacre/ext/Parrot-Embed/lib/Parrot/Embed.xs Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/ext/Parrot-Embed/lib/Parrot/Embed.xs Tue Aug 3 22:27:14 2010 (r48298)
@@ -153,26 +153,26 @@
ns_str += 2;
if (!ns)
- ns = Parrot_find_global_cur(real_interp,
+ ns = Parrot_ns_find_current_namespace_global(real_interp,
Parrot_str_new_constant(real_interp, prev));
else
- ns = Parrot_find_global_n(real_interp, ns,
+ ns = Parrot_ns_find_namespace_global(real_interp, ns,
Parrot_str_new_constant(real_interp, prev));
prev = ns_str;
}
if (!ns)
- ns = Parrot_find_global_cur(real_interp,
+ ns = Parrot_ns_find_current_namespace_global(real_interp,
Parrot_str_new_constant(real_interp, prev));
else
- ns = Parrot_find_global_n(real_interp, ns,
+ ns = Parrot_ns_find_namespace_global(real_interp, ns,
Parrot_str_new_constant(real_interp, prev));
- pmc = Parrot_find_global_n(real_interp, ns, p_global);
+ pmc = Parrot_ns_find_namespace_global(real_interp, ns, p_global);
Safefree(ns_copy);
}
else
- pmc = Parrot_find_global_cur( real_interp, p_global );
+ pmc = Parrot_ns_find_current_namespace_global( real_interp, p_global );
RETVAL = make_pmc( aTHX_ ST(0), pmc );
OUTPUT:
Modified: branches/gc_massacre/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- branches/gc_massacre/ext/nqp-rx/src/stage0/HLL-s0.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/ext/nqp-rx/src/stage0/HLL-s0.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -902,7 +902,7 @@
### .include 'gen/hllgrammar-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1275811471.14938")
+.sub "_block11" :anon :subid("10_1280467467.13603")
.annotate 'line', 0
get_hll_global $P14, ["HLL";"Grammar"], "_block13"
capture_lex $P14
@@ -916,103 +916,103 @@
.annotate 'line', 5
get_hll_global $P14, ["HLL";"Grammar"], "_block13"
capture_lex $P14
- $P348 = $P14()
+ $P332 = $P14()
.annotate 'line', 1
- .return ($P348)
- .const 'Sub' $P350 = "106_1275811471.14938"
- .return ($P350)
+ .return ($P332)
+ .const 'Sub' $P334 = "106_1280467467.13603"
+ .return ($P334)
.end
.namespace []
-.sub "" :load :init :subid("post107") :outer("10_1275811471.14938")
+.sub "" :load :init :subid("post107") :outer("10_1280467467.13603")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1275811471.14938"
+ .const 'Sub' $P12 = "10_1280467467.13603"
.local pmc block
set block, $P12
- $P353 = get_root_global ["parrot"], "P6metaclass"
- $P353."new_class"("HLL::Grammar", "Regex::Cursor" :named("parent"))
+ $P337 = get_root_global ["parrot"], "P6metaclass"
+ $P337."new_class"("HLL::Grammar", "Regex::Cursor" :named("parent"))
.end
.namespace ["HLL";"Grammar"]
-.sub "_block13" :subid("11_1275811471.14938") :outer("10_1275811471.14938")
+.sub "_block13" :subid("11_1280467467.13603") :outer("10_1280467467.13603")
.annotate 'line', 5
- .const 'Sub' $P334 = "103_1275811471.14938"
- capture_lex $P334
- .const 'Sub' $P327 = "101_1275811471.14938"
- capture_lex $P327
- .const 'Sub' $P314 = "98_1275811471.14938"
- capture_lex $P314
- .const 'Sub' $P282 = "93_1275811471.14938"
- capture_lex $P282
- .const 'Sub' $P276 = "91_1275811471.14938"
- capture_lex $P276
- .const 'Sub' $P271 = "89_1275811471.14938"
- capture_lex $P271
- .const 'Sub' $P265 = "87_1275811471.14938"
- capture_lex $P265
- .const 'Sub' $P259 = "85_1275811471.14938"
- capture_lex $P259
- .const 'Sub' $P254 = "83_1275811471.14938"
- capture_lex $P254
- .const 'Sub' $P249 = "81_1275811471.14938"
- capture_lex $P249
- .const 'Sub' $P244 = "79_1275811471.14938"
- capture_lex $P244
- .const 'Sub' $P239 = "77_1275811471.14938"
- capture_lex $P239
- .const 'Sub' $P234 = "75_1275811471.14938"
- capture_lex $P234
- .const 'Sub' $P229 = "73_1275811471.14938"
- capture_lex $P229
- .const 'Sub' $P224 = "71_1275811471.14938"
- capture_lex $P224
- .const 'Sub' $P219 = "69_1275811471.14938"
- capture_lex $P219
- .const 'Sub' $P208 = "65_1275811471.14938"
- capture_lex $P208
- .const 'Sub' $P195 = "63_1275811471.14938"
+ .const 'Sub' $P319 = "103_1280467467.13603"
+ capture_lex $P319
+ .const 'Sub' $P313 = "101_1280467467.13603"
+ capture_lex $P313
+ .const 'Sub' $P300 = "98_1280467467.13603"
+ capture_lex $P300
+ .const 'Sub' $P268 = "93_1280467467.13603"
+ capture_lex $P268
+ .const 'Sub' $P262 = "91_1280467467.13603"
+ capture_lex $P262
+ .const 'Sub' $P257 = "89_1280467467.13603"
+ capture_lex $P257
+ .const 'Sub' $P251 = "87_1280467467.13603"
+ capture_lex $P251
+ .const 'Sub' $P245 = "85_1280467467.13603"
+ capture_lex $P245
+ .const 'Sub' $P240 = "83_1280467467.13603"
+ capture_lex $P240
+ .const 'Sub' $P235 = "81_1280467467.13603"
+ capture_lex $P235
+ .const 'Sub' $P230 = "79_1280467467.13603"
+ capture_lex $P230
+ .const 'Sub' $P225 = "77_1280467467.13603"
+ capture_lex $P225
+ .const 'Sub' $P220 = "75_1280467467.13603"
+ capture_lex $P220
+ .const 'Sub' $P215 = "73_1280467467.13603"
+ capture_lex $P215
+ .const 'Sub' $P210 = "71_1280467467.13603"
+ capture_lex $P210
+ .const 'Sub' $P205 = "69_1280467467.13603"
+ capture_lex $P205
+ .const 'Sub' $P195 = "65_1280467467.13603"
capture_lex $P195
- .const 'Sub' $P183 = "61_1275811471.14938"
- capture_lex $P183
- .const 'Sub' $P176 = "59_1275811471.14938"
- capture_lex $P176
- .const 'Sub' $P167 = "57_1275811471.14938"
- capture_lex $P167
- .const 'Sub' $P160 = "55_1275811471.14938"
- capture_lex $P160
- .const 'Sub' $P151 = "53_1275811471.14938"
+ .const 'Sub' $P182 = "63_1280467467.13603"
+ capture_lex $P182
+ .const 'Sub' $P170 = "61_1280467467.13603"
+ capture_lex $P170
+ .const 'Sub' $P164 = "59_1280467467.13603"
+ capture_lex $P164
+ .const 'Sub' $P157 = "57_1280467467.13603"
+ capture_lex $P157
+ .const 'Sub' $P151 = "55_1280467467.13603"
capture_lex $P151
- .const 'Sub' $P144 = "51_1275811471.14938"
+ .const 'Sub' $P144 = "53_1280467467.13603"
capture_lex $P144
- .const 'Sub' $P135 = "49_1275811471.14938"
- capture_lex $P135
- .const 'Sub' $P128 = "47_1275811471.14938"
- capture_lex $P128
- .const 'Sub' $P121 = "45_1275811471.14938"
- capture_lex $P121
- .const 'Sub' $P111 = "43_1275811471.14938"
- capture_lex $P111
- .const 'Sub' $P103 = "41_1275811471.14938"
- capture_lex $P103
- .const 'Sub' $P93 = "40_1275811471.14938"
- capture_lex $P93
- .const 'Sub' $P87 = "38_1275811471.14938"
- capture_lex $P87
- .const 'Sub' $P82 = "36_1275811471.14938"
- capture_lex $P82
- .const 'Sub' $P74 = "34_1275811471.14938"
- capture_lex $P74
- .const 'Sub' $P68 = "32_1275811471.14938"
- capture_lex $P68
- .const 'Sub' $P62 = "30_1275811471.14938"
- capture_lex $P62
- .const 'Sub' $P56 = "28_1275811471.14938"
- capture_lex $P56
- .const 'Sub' $P23 = "14_1275811471.14938"
- capture_lex $P23
- .const 'Sub' $P15 = "12_1275811471.14938"
+ .const 'Sub' $P138 = "51_1280467467.13603"
+ capture_lex $P138
+ .const 'Sub' $P131 = "49_1280467467.13603"
+ capture_lex $P131
+ .const 'Sub' $P125 = "47_1280467467.13603"
+ capture_lex $P125
+ .const 'Sub' $P119 = "45_1280467467.13603"
+ capture_lex $P119
+ .const 'Sub' $P110 = "43_1280467467.13603"
+ capture_lex $P110
+ .const 'Sub' $P102 = "41_1280467467.13603"
+ capture_lex $P102
+ .const 'Sub' $P92 = "40_1280467467.13603"
+ capture_lex $P92
+ .const 'Sub' $P86 = "38_1280467467.13603"
+ capture_lex $P86
+ .const 'Sub' $P81 = "36_1280467467.13603"
+ capture_lex $P81
+ .const 'Sub' $P73 = "34_1280467467.13603"
+ capture_lex $P73
+ .const 'Sub' $P67 = "32_1280467467.13603"
+ capture_lex $P67
+ .const 'Sub' $P61 = "30_1280467467.13603"
+ capture_lex $P61
+ .const 'Sub' $P55 = "28_1280467467.13603"
+ capture_lex $P55
+ .const 'Sub' $P22 = "14_1280467467.13603"
+ capture_lex $P22
+ .const 'Sub' $P15 = "12_1280467467.13603"
capture_lex $P15
$P0 = find_dynamic_lex "$*CTXSAVE"
if null $P0 goto ctxsave_done
@@ -1021,17 +1021,17 @@
$P0."ctxsave"()
ctxsave_done:
.annotate 'line', 33
- .const 'Sub' $P334 = "103_1275811471.14938"
- capture_lex $P334
+ .const 'Sub' $P319 = "103_1280467467.13603"
+ capture_lex $P319
.annotate 'line', 5
- .return ($P334)
- .const 'Sub' $P345 = "105_1275811471.14938"
- .return ($P345)
+ .return ($P319)
+ .const 'Sub' $P329 = "105_1280467467.13603"
+ .return ($P329)
.end
.namespace ["HLL";"Grammar"]
-.sub "ws" :subid("12_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "ws" :subid("12_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 5
.local string rx16_tgt
.local int rx16_pos
@@ -1039,8 +1039,7 @@
.local int rx16_eos
.local int rx16_rep
.local pmc rx16_cur
- (rx16_cur, rx16_pos, rx16_tgt) = self."!cursor_start"()
- rx16_cur."!cursor_debug"("START ", "ws")
+ (rx16_cur, rx16_pos, rx16_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx16_cur
.local pmc match
.lex "$/", match
@@ -1051,6 +1050,8 @@
sub rx16_off, rx16_pos, 1
substr rx16_tgt, rx16_tgt, rx16_off
rx16_start:
+ eq $I10, 1, rx16_restart
+ rx16_cur."!cursor_debug"("START ", "ws")
$I10 = self.'from'()
ne $I10, -1, rxscan19_done
goto rxscan19_scan
@@ -1068,8 +1069,8 @@
$P10 = rx16_cur."ww"()
if $P10, rx16_fail
# rx rxquantr20 ** 0..*
- set_addr $I22, rxquantr20_done
- rx16_cur."!mark_push"(0, rx16_pos, $I22)
+ set_addr $I10, rxquantr20_done
+ rx16_cur."!mark_push"(0, rx16_pos, $I10)
rxquantr20_loop:
alt21_0:
set_addr $I10, alt21_1
@@ -1094,14 +1095,18 @@
find_cclass $I11, 4096, rx16_tgt, $I10, rx16_eos
add rx16_pos, rx16_off, $I11
alt21_end:
- (rx16_rep) = rx16_cur."!mark_commit"($I22)
- rx16_cur."!mark_push"(rx16_rep, rx16_pos, $I22)
+ set_addr $I10, rxquantr20_done
+ (rx16_rep) = rx16_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr20_done
+ rx16_cur."!mark_push"(rx16_rep, rx16_pos, $I10)
goto rxquantr20_loop
rxquantr20_done:
# rx pass
rx16_cur."!cursor_pass"(rx16_pos, "ws")
rx16_cur."!cursor_debug"("PASS ", "ws", " at pos=", rx16_pos)
.return (rx16_cur)
+ rx16_restart:
+ rx16_cur."!cursor_debug"("NEXT ", "ws")
rx16_fail:
(rx16_rep, rx16_pos, $I10, $P10) = rx16_cur."!mark_fail"(0)
lt rx16_pos, -1, rx16_done
@@ -1116,7 +1121,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws" :subid("13_1275811471.14938") :method
+.sub "!PREFIX__ws" :subid("13_1280467467.13603") :method
.annotate 'line', 5
new $P18, "ResizablePMCArray"
push $P18, ""
@@ -1125,1123 +1130,1292 @@
.namespace ["HLL";"Grammar"]
-.sub "termish" :subid("14_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "termish" :subid("14_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 5
- .local string rx24_tgt
- .local int rx24_pos
- .local int rx24_off
- .local int rx24_eos
- .local int rx24_rep
- .local pmc rx24_cur
- (rx24_cur, rx24_pos, rx24_tgt) = self."!cursor_start"()
- rx24_cur."!cursor_debug"("START ", "termish")
- rx24_cur."!cursor_caparray"("postfixish", "prefixish")
- .lex unicode:"$\x{a2}", rx24_cur
+ .local string rx23_tgt
+ .local int rx23_pos
+ .local int rx23_off
+ .local int rx23_eos
+ .local int rx23_rep
+ .local pmc rx23_cur
+ (rx23_cur, rx23_pos, rx23_tgt, $I10) = self."!cursor_start"()
+ rx23_cur."!cursor_caparray"("prefixish", "postfixish")
+ .lex unicode:"$\x{a2}", rx23_cur
.local pmc match
.lex "$/", match
- length rx24_eos, rx24_tgt
- gt rx24_pos, rx24_eos, rx24_done
- set rx24_off, 0
- lt rx24_pos, 2, rx24_start
- sub rx24_off, rx24_pos, 1
- substr rx24_tgt, rx24_tgt, rx24_off
- rx24_start:
+ length rx23_eos, rx23_tgt
+ gt rx23_pos, rx23_eos, rx23_done
+ set rx23_off, 0
+ lt rx23_pos, 2, rx23_start
+ sub rx23_off, rx23_pos, 1
+ substr rx23_tgt, rx23_tgt, rx23_off
+ rx23_start:
+ eq $I10, 1, rx23_restart
+ rx23_cur."!cursor_debug"("START ", "termish")
$I10 = self.'from'()
- ne $I10, -1, rxscan27_done
- goto rxscan27_scan
- rxscan27_loop:
- ($P10) = rx24_cur."from"()
+ ne $I10, -1, rxscan26_done
+ goto rxscan26_scan
+ rxscan26_loop:
+ ($P10) = rx23_cur."from"()
inc $P10
- set rx24_pos, $P10
- ge rx24_pos, rx24_eos, rxscan27_done
- rxscan27_scan:
- set_addr $I10, rxscan27_loop
- rx24_cur."!mark_push"(0, rx24_pos, $I10)
- rxscan27_done:
+ set rx23_pos, $P10
+ ge rx23_pos, rx23_eos, rxscan26_done
+ rxscan26_scan:
+ set_addr $I10, rxscan26_loop
+ rx23_cur."!mark_push"(0, rx23_pos, $I10)
+ rxscan26_done:
.annotate 'line', 8
- # rx rxquantr28 ** 0..*
- set_addr $I29, rxquantr28_done
- rx24_cur."!mark_push"(0, rx24_pos, $I29)
- rxquantr28_loop:
+ # rx rxquantr27 ** 0..*
+ set_addr $I10, rxquantr27_done
+ rx23_cur."!mark_push"(0, rx23_pos, $I10)
+ rxquantr27_loop:
# rx subrule "prefixish" subtype=capture negate=
- rx24_cur."!cursor_pos"(rx24_pos)
- $P10 = rx24_cur."prefixish"()
- unless $P10, rx24_fail
- rx24_cur."!mark_push"(0, -1, 0, $P10)
+ rx23_cur."!cursor_pos"(rx23_pos)
+ $P10 = rx23_cur."prefixish"()
+ unless $P10, rx23_fail
+ goto rxsubrule28_pass
+ rxsubrule28_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx23_fail
+ rxsubrule28_pass:
+ set_addr $I10, rxsubrule28_back
+ rx23_cur."!mark_push"(0, rx23_pos, $I10, $P10)
$P10."!cursor_names"("prefixish")
- rx24_pos = $P10."pos"()
- (rx24_rep) = rx24_cur."!mark_commit"($I29)
- rx24_cur."!mark_push"(rx24_rep, rx24_pos, $I29)
- goto rxquantr28_loop
- rxquantr28_done:
+ rx23_pos = $P10."pos"()
+ set_addr $I10, rxquantr27_done
+ (rx23_rep) = rx23_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr27_done
+ rx23_cur."!mark_push"(rx23_rep, rx23_pos, $I10)
+ goto rxquantr27_loop
+ rxquantr27_done:
.annotate 'line', 9
# rx subrule "term" subtype=capture negate=
- rx24_cur."!cursor_pos"(rx24_pos)
- $P10 = rx24_cur."term"()
- unless $P10, rx24_fail
- rx24_cur."!mark_push"(0, -1, 0, $P10)
+ rx23_cur."!cursor_pos"(rx23_pos)
+ $P10 = rx23_cur."term"()
+ unless $P10, rx23_fail
+ rx23_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("term")
- rx24_pos = $P10."pos"()
+ rx23_pos = $P10."pos"()
.annotate 'line', 10
- # rx rxquantr30 ** 0..*
- set_addr $I31, rxquantr30_done
- rx24_cur."!mark_push"(0, rx24_pos, $I31)
- rxquantr30_loop:
+ # rx rxquantr29 ** 0..*
+ set_addr $I10, rxquantr29_done
+ rx23_cur."!mark_push"(0, rx23_pos, $I10)
+ rxquantr29_loop:
# rx subrule "postfixish" subtype=capture negate=
- rx24_cur."!cursor_pos"(rx24_pos)
- $P10 = rx24_cur."postfixish"()
- unless $P10, rx24_fail
- rx24_cur."!mark_push"(0, -1, 0, $P10)
+ rx23_cur."!cursor_pos"(rx23_pos)
+ $P10 = rx23_cur."postfixish"()
+ unless $P10, rx23_fail
+ goto rxsubrule30_pass
+ rxsubrule30_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx23_fail
+ rxsubrule30_pass:
+ set_addr $I10, rxsubrule30_back
+ rx23_cur."!mark_push"(0, rx23_pos, $I10, $P10)
$P10."!cursor_names"("postfixish")
- rx24_pos = $P10."pos"()
- (rx24_rep) = rx24_cur."!mark_commit"($I31)
- rx24_cur."!mark_push"(rx24_rep, rx24_pos, $I31)
- goto rxquantr30_loop
- rxquantr30_done:
+ rx23_pos = $P10."pos"()
+ set_addr $I10, rxquantr29_done
+ (rx23_rep) = rx23_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr29_done
+ rx23_cur."!mark_push"(rx23_rep, rx23_pos, $I10)
+ goto rxquantr29_loop
+ rxquantr29_done:
.annotate 'line', 7
# rx pass
- rx24_cur."!cursor_pass"(rx24_pos, "termish")
- rx24_cur."!cursor_debug"("PASS ", "termish", " at pos=", rx24_pos)
- .return (rx24_cur)
- rx24_fail:
+ rx23_cur."!cursor_pass"(rx23_pos, "termish")
+ rx23_cur."!cursor_debug"("PASS ", "termish", " at pos=", rx23_pos)
+ .return (rx23_cur)
+ rx23_restart:
.annotate 'line', 5
- (rx24_rep, rx24_pos, $I10, $P10) = rx24_cur."!mark_fail"(0)
- lt rx24_pos, -1, rx24_done
- eq rx24_pos, -1, rx24_fail
+ rx23_cur."!cursor_debug"("NEXT ", "termish")
+ rx23_fail:
+ (rx23_rep, rx23_pos, $I10, $P10) = rx23_cur."!mark_fail"(0)
+ lt rx23_pos, -1, rx23_done
+ eq rx23_pos, -1, rx23_fail
jump $I10
- rx24_done:
- rx24_cur."!cursor_fail"()
- rx24_cur."!cursor_debug"("FAIL ", "termish")
- .return (rx24_cur)
+ rx23_done:
+ rx23_cur."!cursor_fail"()
+ rx23_cur."!cursor_debug"("FAIL ", "termish")
+ .return (rx23_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish" :subid("15_1275811471.14938") :method
+.sub "!PREFIX__termish" :subid("15_1280467467.13603") :method
.annotate 'line', 5
- new $P26, "ResizablePMCArray"
- push $P26, ""
- .return ($P26)
+ new $P25, "ResizablePMCArray"
+ push $P25, ""
+ .return ($P25)
.end
.namespace ["HLL";"Grammar"]
-.sub "term" :subid("16_1275811471.14938") :method
+.sub "term" :subid("16_1280467467.13603") :method
.annotate 'line', 13
- $P33 = self."!protoregex"("term")
- .return ($P33)
+ $P32 = self."!protoregex"("term")
+ .return ($P32)
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term" :subid("17_1275811471.14938") :method
+.sub "!PREFIX__term" :subid("17_1280467467.13603") :method
.annotate 'line', 13
- $P35 = self."!PREFIX__!protoregex"("term")
- .return ($P35)
+ $P34 = self."!PREFIX__!protoregex"("term")
+ .return ($P34)
.end
.namespace ["HLL";"Grammar"]
-.sub "infix" :subid("18_1275811471.14938") :method
+.sub "infix" :subid("18_1280467467.13603") :method
.annotate 'line', 14
- $P37 = self."!protoregex"("infix")
- .return ($P37)
+ $P36 = self."!protoregex"("infix")
+ .return ($P36)
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix" :subid("19_1275811471.14938") :method
+.sub "!PREFIX__infix" :subid("19_1280467467.13603") :method
.annotate 'line', 14
- $P39 = self."!PREFIX__!protoregex"("infix")
- .return ($P39)
+ $P38 = self."!PREFIX__!protoregex"("infix")
+ .return ($P38)
.end
.namespace ["HLL";"Grammar"]
-.sub "prefix" :subid("20_1275811471.14938") :method
+.sub "prefix" :subid("20_1280467467.13603") :method
.annotate 'line', 15
- $P41 = self."!protoregex"("prefix")
- .return ($P41)
+ $P40 = self."!protoregex"("prefix")
+ .return ($P40)
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix" :subid("21_1275811471.14938") :method
+.sub "!PREFIX__prefix" :subid("21_1280467467.13603") :method
.annotate 'line', 15
- $P43 = self."!PREFIX__!protoregex"("prefix")
- .return ($P43)
+ $P42 = self."!PREFIX__!protoregex"("prefix")
+ .return ($P42)
.end
.namespace ["HLL";"Grammar"]
-.sub "postfix" :subid("22_1275811471.14938") :method
+.sub "postfix" :subid("22_1280467467.13603") :method
.annotate 'line', 16
- $P45 = self."!protoregex"("postfix")
- .return ($P45)
+ $P44 = self."!protoregex"("postfix")
+ .return ($P44)
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix" :subid("23_1275811471.14938") :method
+.sub "!PREFIX__postfix" :subid("23_1280467467.13603") :method
.annotate 'line', 16
- $P47 = self."!PREFIX__!protoregex"("postfix")
- .return ($P47)
+ $P46 = self."!PREFIX__!protoregex"("postfix")
+ .return ($P46)
.end
.namespace ["HLL";"Grammar"]
-.sub "circumfix" :subid("24_1275811471.14938") :method
+.sub "circumfix" :subid("24_1280467467.13603") :method
.annotate 'line', 17
- $P49 = self."!protoregex"("circumfix")
- .return ($P49)
+ $P48 = self."!protoregex"("circumfix")
+ .return ($P48)
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix" :subid("25_1275811471.14938") :method
+.sub "!PREFIX__circumfix" :subid("25_1280467467.13603") :method
.annotate 'line', 17
- $P51 = self."!PREFIX__!protoregex"("circumfix")
- .return ($P51)
+ $P50 = self."!PREFIX__!protoregex"("circumfix")
+ .return ($P50)
.end
.namespace ["HLL";"Grammar"]
-.sub "postcircumfix" :subid("26_1275811471.14938") :method
+.sub "postcircumfix" :subid("26_1280467467.13603") :method
.annotate 'line', 18
- $P53 = self."!protoregex"("postcircumfix")
- .return ($P53)
+ $P52 = self."!protoregex"("postcircumfix")
+ .return ($P52)
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix" :subid("27_1275811471.14938") :method
+.sub "!PREFIX__postcircumfix" :subid("27_1280467467.13603") :method
.annotate 'line', 18
- $P55 = self."!PREFIX__!protoregex"("postcircumfix")
- .return ($P55)
+ $P54 = self."!PREFIX__!protoregex"("postcircumfix")
+ .return ($P54)
.end
.namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>" :subid("28_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "term:sym<circumfix>" :subid("28_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 5
- .local string rx57_tgt
- .local int rx57_pos
- .local int rx57_off
- .local int rx57_eos
- .local int rx57_rep
- .local pmc rx57_cur
- (rx57_cur, rx57_pos, rx57_tgt) = self."!cursor_start"()
- rx57_cur."!cursor_debug"("START ", "term:sym<circumfix>")
- .lex unicode:"$\x{a2}", rx57_cur
+ .local string rx56_tgt
+ .local int rx56_pos
+ .local int rx56_off
+ .local int rx56_eos
+ .local int rx56_rep
+ .local pmc rx56_cur
+ (rx56_cur, rx56_pos, rx56_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx56_cur
.local pmc match
.lex "$/", match
- length rx57_eos, rx57_tgt
- gt rx57_pos, rx57_eos, rx57_done
- set rx57_off, 0
- lt rx57_pos, 2, rx57_start
- sub rx57_off, rx57_pos, 1
- substr rx57_tgt, rx57_tgt, rx57_off
- rx57_start:
+ length rx56_eos, rx56_tgt
+ gt rx56_pos, rx56_eos, rx56_done
+ set rx56_off, 0
+ lt rx56_pos, 2, rx56_start
+ sub rx56_off, rx56_pos, 1
+ substr rx56_tgt, rx56_tgt, rx56_off
+ rx56_start:
+ eq $I10, 1, rx56_restart
+ rx56_cur."!cursor_debug"("START ", "term:sym<circumfix>")
$I10 = self.'from'()
- ne $I10, -1, rxscan61_done
- goto rxscan61_scan
- rxscan61_loop:
- ($P10) = rx57_cur."from"()
+ ne $I10, -1, rxscan60_done
+ goto rxscan60_scan
+ rxscan60_loop:
+ ($P10) = rx56_cur."from"()
inc $P10
- set rx57_pos, $P10
- ge rx57_pos, rx57_eos, rxscan61_done
- rxscan61_scan:
- set_addr $I10, rxscan61_loop
- rx57_cur."!mark_push"(0, rx57_pos, $I10)
- rxscan61_done:
+ set rx56_pos, $P10
+ ge rx56_pos, rx56_eos, rxscan60_done
+ rxscan60_scan:
+ set_addr $I10, rxscan60_loop
+ rx56_cur."!mark_push"(0, rx56_pos, $I10)
+ rxscan60_done:
.annotate 'line', 20
# rx subrule "circumfix" subtype=capture negate=
- rx57_cur."!cursor_pos"(rx57_pos)
- $P10 = rx57_cur."circumfix"()
- unless $P10, rx57_fail
- rx57_cur."!mark_push"(0, -1, 0, $P10)
+ rx56_cur."!cursor_pos"(rx56_pos)
+ $P10 = rx56_cur."circumfix"()
+ unless $P10, rx56_fail
+ rx56_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("circumfix")
- rx57_pos = $P10."pos"()
+ rx56_pos = $P10."pos"()
# rx pass
- rx57_cur."!cursor_pass"(rx57_pos, "term:sym<circumfix>")
- rx57_cur."!cursor_debug"("PASS ", "term:sym<circumfix>", " at pos=", rx57_pos)
- .return (rx57_cur)
- rx57_fail:
+ rx56_cur."!cursor_pass"(rx56_pos, "term:sym<circumfix>")
+ rx56_cur."!cursor_debug"("PASS ", "term:sym<circumfix>", " at pos=", rx56_pos)
+ .return (rx56_cur)
+ rx56_restart:
.annotate 'line', 5
- (rx57_rep, rx57_pos, $I10, $P10) = rx57_cur."!mark_fail"(0)
- lt rx57_pos, -1, rx57_done
- eq rx57_pos, -1, rx57_fail
+ rx56_cur."!cursor_debug"("NEXT ", "term:sym<circumfix>")
+ rx56_fail:
+ (rx56_rep, rx56_pos, $I10, $P10) = rx56_cur."!mark_fail"(0)
+ lt rx56_pos, -1, rx56_done
+ eq rx56_pos, -1, rx56_fail
jump $I10
- rx57_done:
- rx57_cur."!cursor_fail"()
- rx57_cur."!cursor_debug"("FAIL ", "term:sym<circumfix>")
- .return (rx57_cur)
+ rx56_done:
+ rx56_cur."!cursor_fail"()
+ rx56_cur."!cursor_debug"("FAIL ", "term:sym<circumfix>")
+ .return (rx56_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>" :subid("29_1275811471.14938") :method
+.sub "!PREFIX__term:sym<circumfix>" :subid("29_1280467467.13603") :method
.annotate 'line', 5
- $P59 = self."!PREFIX__!subrule"("circumfix", "")
- new $P60, "ResizablePMCArray"
- push $P60, $P59
- .return ($P60)
+ $P58 = self."!PREFIX__!subrule"("circumfix", "")
+ new $P59, "ResizablePMCArray"
+ push $P59, $P58
+ .return ($P59)
.end
.namespace ["HLL";"Grammar"]
-.sub "infixish" :subid("30_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "infixish" :subid("30_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 5
- .local string rx63_tgt
- .local int rx63_pos
- .local int rx63_off
- .local int rx63_eos
- .local int rx63_rep
- .local pmc rx63_cur
- (rx63_cur, rx63_pos, rx63_tgt) = self."!cursor_start"()
- rx63_cur."!cursor_debug"("START ", "infixish")
- .lex unicode:"$\x{a2}", rx63_cur
+ .local string rx62_tgt
+ .local int rx62_pos
+ .local int rx62_off
+ .local int rx62_eos
+ .local int rx62_rep
+ .local pmc rx62_cur
+ (rx62_cur, rx62_pos, rx62_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx62_cur
.local pmc match
.lex "$/", match
- length rx63_eos, rx63_tgt
- gt rx63_pos, rx63_eos, rx63_done
- set rx63_off, 0
- lt rx63_pos, 2, rx63_start
- sub rx63_off, rx63_pos, 1
- substr rx63_tgt, rx63_tgt, rx63_off
- rx63_start:
+ length rx62_eos, rx62_tgt
+ gt rx62_pos, rx62_eos, rx62_done
+ set rx62_off, 0
+ lt rx62_pos, 2, rx62_start
+ sub rx62_off, rx62_pos, 1
+ substr rx62_tgt, rx62_tgt, rx62_off
+ rx62_start:
+ eq $I10, 1, rx62_restart
+ rx62_cur."!cursor_debug"("START ", "infixish")
$I10 = self.'from'()
- ne $I10, -1, rxscan67_done
- goto rxscan67_scan
- rxscan67_loop:
- ($P10) = rx63_cur."from"()
+ ne $I10, -1, rxscan66_done
+ goto rxscan66_scan
+ rxscan66_loop:
+ ($P10) = rx62_cur."from"()
inc $P10
- set rx63_pos, $P10
- ge rx63_pos, rx63_eos, rxscan67_done
- rxscan67_scan:
- set_addr $I10, rxscan67_loop
- rx63_cur."!mark_push"(0, rx63_pos, $I10)
- rxscan67_done:
+ set rx62_pos, $P10
+ ge rx62_pos, rx62_eos, rxscan66_done
+ rxscan66_scan:
+ set_addr $I10, rxscan66_loop
+ rx62_cur."!mark_push"(0, rx62_pos, $I10)
+ rxscan66_done:
.annotate 'line', 22
# rx subrule "infix" subtype=capture negate=
- rx63_cur."!cursor_pos"(rx63_pos)
- $P10 = rx63_cur."infix"()
- unless $P10, rx63_fail
- rx63_cur."!mark_push"(0, -1, 0, $P10)
+ rx62_cur."!cursor_pos"(rx62_pos)
+ $P10 = rx62_cur."infix"()
+ unless $P10, rx62_fail
+ rx62_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("OPER=infix")
- rx63_pos = $P10."pos"()
+ rx62_pos = $P10."pos"()
# rx pass
- rx63_cur."!cursor_pass"(rx63_pos, "infixish")
- rx63_cur."!cursor_debug"("PASS ", "infixish", " at pos=", rx63_pos)
- .return (rx63_cur)
- rx63_fail:
+ rx62_cur."!cursor_pass"(rx62_pos, "infixish")
+ rx62_cur."!cursor_debug"("PASS ", "infixish", " at pos=", rx62_pos)
+ .return (rx62_cur)
+ rx62_restart:
.annotate 'line', 5
- (rx63_rep, rx63_pos, $I10, $P10) = rx63_cur."!mark_fail"(0)
- lt rx63_pos, -1, rx63_done
- eq rx63_pos, -1, rx63_fail
+ rx62_cur."!cursor_debug"("NEXT ", "infixish")
+ rx62_fail:
+ (rx62_rep, rx62_pos, $I10, $P10) = rx62_cur."!mark_fail"(0)
+ lt rx62_pos, -1, rx62_done
+ eq rx62_pos, -1, rx62_fail
jump $I10
- rx63_done:
- rx63_cur."!cursor_fail"()
- rx63_cur."!cursor_debug"("FAIL ", "infixish")
- .return (rx63_cur)
+ rx62_done:
+ rx62_cur."!cursor_fail"()
+ rx62_cur."!cursor_debug"("FAIL ", "infixish")
+ .return (rx62_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish" :subid("31_1275811471.14938") :method
+.sub "!PREFIX__infixish" :subid("31_1280467467.13603") :method
.annotate 'line', 5
- $P65 = self."!PREFIX__!subrule"("infix", "")
- new $P66, "ResizablePMCArray"
- push $P66, $P65
- .return ($P66)
+ $P64 = self."!PREFIX__!subrule"("infix", "")
+ new $P65, "ResizablePMCArray"
+ push $P65, $P64
+ .return ($P65)
.end
.namespace ["HLL";"Grammar"]
-.sub "prefixish" :subid("32_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "prefixish" :subid("32_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 5
- .local string rx69_tgt
- .local int rx69_pos
- .local int rx69_off
- .local int rx69_eos
- .local int rx69_rep
- .local pmc rx69_cur
- (rx69_cur, rx69_pos, rx69_tgt) = self."!cursor_start"()
- rx69_cur."!cursor_debug"("START ", "prefixish")
- .lex unicode:"$\x{a2}", rx69_cur
+ .local string rx68_tgt
+ .local int rx68_pos
+ .local int rx68_off
+ .local int rx68_eos
+ .local int rx68_rep
+ .local pmc rx68_cur
+ (rx68_cur, rx68_pos, rx68_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx68_cur
.local pmc match
.lex "$/", match
- length rx69_eos, rx69_tgt
- gt rx69_pos, rx69_eos, rx69_done
- set rx69_off, 0
- lt rx69_pos, 2, rx69_start
- sub rx69_off, rx69_pos, 1
- substr rx69_tgt, rx69_tgt, rx69_off
- rx69_start:
+ length rx68_eos, rx68_tgt
+ gt rx68_pos, rx68_eos, rx68_done
+ set rx68_off, 0
+ lt rx68_pos, 2, rx68_start
+ sub rx68_off, rx68_pos, 1
+ substr rx68_tgt, rx68_tgt, rx68_off
+ rx68_start:
+ eq $I10, 1, rx68_restart
+ rx68_cur."!cursor_debug"("START ", "prefixish")
$I10 = self.'from'()
- ne $I10, -1, rxscan73_done
- goto rxscan73_scan
- rxscan73_loop:
- ($P10) = rx69_cur."from"()
+ ne $I10, -1, rxscan72_done
+ goto rxscan72_scan
+ rxscan72_loop:
+ ($P10) = rx68_cur."from"()
inc $P10
- set rx69_pos, $P10
- ge rx69_pos, rx69_eos, rxscan73_done
- rxscan73_scan:
- set_addr $I10, rxscan73_loop
- rx69_cur."!mark_push"(0, rx69_pos, $I10)
- rxscan73_done:
+ set rx68_pos, $P10
+ ge rx68_pos, rx68_eos, rxscan72_done
+ rxscan72_scan:
+ set_addr $I10, rxscan72_loop
+ rx68_cur."!mark_push"(0, rx68_pos, $I10)
+ rxscan72_done:
.annotate 'line', 23
# rx subrule "prefix" subtype=capture negate=
- rx69_cur."!cursor_pos"(rx69_pos)
- $P10 = rx69_cur."prefix"()
- unless $P10, rx69_fail
- rx69_cur."!mark_push"(0, -1, 0, $P10)
+ rx68_cur."!cursor_pos"(rx68_pos)
+ $P10 = rx68_cur."prefix"()
+ unless $P10, rx68_fail
+ rx68_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("OPER=prefix")
- rx69_pos = $P10."pos"()
+ rx68_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx69_cur."!cursor_pos"(rx69_pos)
- $P10 = rx69_cur."ws"()
- unless $P10, rx69_fail
- rx69_pos = $P10."pos"()
+ rx68_cur."!cursor_pos"(rx68_pos)
+ $P10 = rx68_cur."ws"()
+ unless $P10, rx68_fail
+ rx68_pos = $P10."pos"()
# rx pass
- rx69_cur."!cursor_pass"(rx69_pos, "prefixish")
- rx69_cur."!cursor_debug"("PASS ", "prefixish", " at pos=", rx69_pos)
- .return (rx69_cur)
- rx69_fail:
+ rx68_cur."!cursor_pass"(rx68_pos, "prefixish")
+ rx68_cur."!cursor_debug"("PASS ", "prefixish", " at pos=", rx68_pos)
+ .return (rx68_cur)
+ rx68_restart:
.annotate 'line', 5
- (rx69_rep, rx69_pos, $I10, $P10) = rx69_cur."!mark_fail"(0)
- lt rx69_pos, -1, rx69_done
- eq rx69_pos, -1, rx69_fail
+ rx68_cur."!cursor_debug"("NEXT ", "prefixish")
+ rx68_fail:
+ (rx68_rep, rx68_pos, $I10, $P10) = rx68_cur."!mark_fail"(0)
+ lt rx68_pos, -1, rx68_done
+ eq rx68_pos, -1, rx68_fail
jump $I10
- rx69_done:
- rx69_cur."!cursor_fail"()
- rx69_cur."!cursor_debug"("FAIL ", "prefixish")
- .return (rx69_cur)
+ rx68_done:
+ rx68_cur."!cursor_fail"()
+ rx68_cur."!cursor_debug"("FAIL ", "prefixish")
+ .return (rx68_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish" :subid("33_1275811471.14938") :method
+.sub "!PREFIX__prefixish" :subid("33_1280467467.13603") :method
.annotate 'line', 5
- $P71 = self."!PREFIX__!subrule"("prefix", "")
- new $P72, "ResizablePMCArray"
- push $P72, $P71
- .return ($P72)
+ $P70 = self."!PREFIX__!subrule"("prefix", "")
+ new $P71, "ResizablePMCArray"
+ push $P71, $P70
+ .return ($P71)
.end
.namespace ["HLL";"Grammar"]
-.sub "postfixish" :subid("34_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "postfixish" :subid("34_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 5
- .local string rx75_tgt
- .local int rx75_pos
- .local int rx75_off
- .local int rx75_eos
- .local int rx75_rep
- .local pmc rx75_cur
- (rx75_cur, rx75_pos, rx75_tgt) = self."!cursor_start"()
- rx75_cur."!cursor_debug"("START ", "postfixish")
- .lex unicode:"$\x{a2}", rx75_cur
+ .local string rx74_tgt
+ .local int rx74_pos
+ .local int rx74_off
+ .local int rx74_eos
+ .local int rx74_rep
+ .local pmc rx74_cur
+ (rx74_cur, rx74_pos, rx74_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx74_cur
.local pmc match
.lex "$/", match
- length rx75_eos, rx75_tgt
- gt rx75_pos, rx75_eos, rx75_done
- set rx75_off, 0
- lt rx75_pos, 2, rx75_start
- sub rx75_off, rx75_pos, 1
- substr rx75_tgt, rx75_tgt, rx75_off
- rx75_start:
+ length rx74_eos, rx74_tgt
+ gt rx74_pos, rx74_eos, rx74_done
+ set rx74_off, 0
+ lt rx74_pos, 2, rx74_start
+ sub rx74_off, rx74_pos, 1
+ substr rx74_tgt, rx74_tgt, rx74_off
+ rx74_start:
+ eq $I10, 1, rx74_restart
+ rx74_cur."!cursor_debug"("START ", "postfixish")
$I10 = self.'from'()
- ne $I10, -1, rxscan80_done
- goto rxscan80_scan
- rxscan80_loop:
- ($P10) = rx75_cur."from"()
+ ne $I10, -1, rxscan79_done
+ goto rxscan79_scan
+ rxscan79_loop:
+ ($P10) = rx74_cur."from"()
inc $P10
- set rx75_pos, $P10
- ge rx75_pos, rx75_eos, rxscan80_done
- rxscan80_scan:
- set_addr $I10, rxscan80_loop
- rx75_cur."!mark_push"(0, rx75_pos, $I10)
- rxscan80_done:
- alt81_0:
+ set rx74_pos, $P10
+ ge rx74_pos, rx74_eos, rxscan79_done
+ rxscan79_scan:
+ set_addr $I10, rxscan79_loop
+ rx74_cur."!mark_push"(0, rx74_pos, $I10)
+ rxscan79_done:
+ alt80_0:
.annotate 'line', 24
- set_addr $I10, alt81_1
- rx75_cur."!mark_push"(0, rx75_pos, $I10)
+ set_addr $I10, alt80_1
+ rx74_cur."!mark_push"(0, rx74_pos, $I10)
.annotate 'line', 25
# rx subrule "postfix" subtype=capture negate=
- rx75_cur."!cursor_pos"(rx75_pos)
- $P10 = rx75_cur."postfix"()
- unless $P10, rx75_fail
- rx75_cur."!mark_push"(0, -1, 0, $P10)
+ rx74_cur."!cursor_pos"(rx74_pos)
+ $P10 = rx74_cur."postfix"()
+ unless $P10, rx74_fail
+ rx74_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("OPER=postfix")
- rx75_pos = $P10."pos"()
- goto alt81_end
- alt81_1:
+ rx74_pos = $P10."pos"()
+ goto alt80_end
+ alt80_1:
.annotate 'line', 26
# rx subrule "postcircumfix" subtype=capture negate=
- rx75_cur."!cursor_pos"(rx75_pos)
- $P10 = rx75_cur."postcircumfix"()
- unless $P10, rx75_fail
- rx75_cur."!mark_push"(0, -1, 0, $P10)
+ rx74_cur."!cursor_pos"(rx74_pos)
+ $P10 = rx74_cur."postcircumfix"()
+ unless $P10, rx74_fail
+ rx74_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("OPER=postcircumfix")
- rx75_pos = $P10."pos"()
- alt81_end:
+ rx74_pos = $P10."pos"()
+ alt80_end:
.annotate 'line', 24
# rx pass
- rx75_cur."!cursor_pass"(rx75_pos, "postfixish")
- rx75_cur."!cursor_debug"("PASS ", "postfixish", " at pos=", rx75_pos)
- .return (rx75_cur)
- rx75_fail:
+ rx74_cur."!cursor_pass"(rx74_pos, "postfixish")
+ rx74_cur."!cursor_debug"("PASS ", "postfixish", " at pos=", rx74_pos)
+ .return (rx74_cur)
+ rx74_restart:
.annotate 'line', 5
- (rx75_rep, rx75_pos, $I10, $P10) = rx75_cur."!mark_fail"(0)
- lt rx75_pos, -1, rx75_done
- eq rx75_pos, -1, rx75_fail
+ rx74_cur."!cursor_debug"("NEXT ", "postfixish")
+ rx74_fail:
+ (rx74_rep, rx74_pos, $I10, $P10) = rx74_cur."!mark_fail"(0)
+ lt rx74_pos, -1, rx74_done
+ eq rx74_pos, -1, rx74_fail
jump $I10
- rx75_done:
- rx75_cur."!cursor_fail"()
- rx75_cur."!cursor_debug"("FAIL ", "postfixish")
- .return (rx75_cur)
+ rx74_done:
+ rx74_cur."!cursor_fail"()
+ rx74_cur."!cursor_debug"("FAIL ", "postfixish")
+ .return (rx74_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish" :subid("35_1275811471.14938") :method
+.sub "!PREFIX__postfixish" :subid("35_1280467467.13603") :method
.annotate 'line', 5
- $P77 = self."!PREFIX__!subrule"("postcircumfix", "")
- $P78 = self."!PREFIX__!subrule"("postfix", "")
- new $P79, "ResizablePMCArray"
- push $P79, $P77
- push $P79, $P78
- .return ($P79)
+ $P76 = self."!PREFIX__!subrule"("postcircumfix", "")
+ $P77 = self."!PREFIX__!subrule"("postfix", "")
+ new $P78, "ResizablePMCArray"
+ push $P78, $P76
+ push $P78, $P77
+ .return ($P78)
.end
.namespace ["HLL";"Grammar"]
-.sub "nullterm" :subid("36_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "nullterm" :subid("36_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 5
- .local string rx83_tgt
- .local int rx83_pos
- .local int rx83_off
- .local int rx83_eos
- .local int rx83_rep
- .local pmc rx83_cur
- (rx83_cur, rx83_pos, rx83_tgt) = self."!cursor_start"()
- rx83_cur."!cursor_debug"("START ", "nullterm")
- .lex unicode:"$\x{a2}", rx83_cur
+ .local string rx82_tgt
+ .local int rx82_pos
+ .local int rx82_off
+ .local int rx82_eos
+ .local int rx82_rep
+ .local pmc rx82_cur
+ (rx82_cur, rx82_pos, rx82_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx82_cur
.local pmc match
.lex "$/", match
- length rx83_eos, rx83_tgt
- gt rx83_pos, rx83_eos, rx83_done
- set rx83_off, 0
- lt rx83_pos, 2, rx83_start
- sub rx83_off, rx83_pos, 1
- substr rx83_tgt, rx83_tgt, rx83_off
- rx83_start:
+ length rx82_eos, rx82_tgt
+ gt rx82_pos, rx82_eos, rx82_done
+ set rx82_off, 0
+ lt rx82_pos, 2, rx82_start
+ sub rx82_off, rx82_pos, 1
+ substr rx82_tgt, rx82_tgt, rx82_off
+ rx82_start:
+ eq $I10, 1, rx82_restart
+ rx82_cur."!cursor_debug"("START ", "nullterm")
$I10 = self.'from'()
- ne $I10, -1, rxscan86_done
- goto rxscan86_scan
- rxscan86_loop:
- ($P10) = rx83_cur."from"()
+ ne $I10, -1, rxscan85_done
+ goto rxscan85_scan
+ rxscan85_loop:
+ ($P10) = rx82_cur."from"()
inc $P10
- set rx83_pos, $P10
- ge rx83_pos, rx83_eos, rxscan86_done
- rxscan86_scan:
- set_addr $I10, rxscan86_loop
- rx83_cur."!mark_push"(0, rx83_pos, $I10)
- rxscan86_done:
+ set rx82_pos, $P10
+ ge rx82_pos, rx82_eos, rxscan85_done
+ rxscan85_scan:
+ set_addr $I10, rxscan85_loop
+ rx82_cur."!mark_push"(0, rx82_pos, $I10)
+ rxscan85_done:
.annotate 'line', 29
# rx pass
- rx83_cur."!cursor_pass"(rx83_pos, "nullterm")
- rx83_cur."!cursor_debug"("PASS ", "nullterm", " at pos=", rx83_pos)
- .return (rx83_cur)
- rx83_fail:
+ rx82_cur."!cursor_pass"(rx82_pos, "nullterm")
+ rx82_cur."!cursor_debug"("PASS ", "nullterm", " at pos=", rx82_pos)
+ .return (rx82_cur)
+ rx82_restart:
.annotate 'line', 5
- (rx83_rep, rx83_pos, $I10, $P10) = rx83_cur."!mark_fail"(0)
- lt rx83_pos, -1, rx83_done
- eq rx83_pos, -1, rx83_fail
+ rx82_cur."!cursor_debug"("NEXT ", "nullterm")
+ rx82_fail:
+ (rx82_rep, rx82_pos, $I10, $P10) = rx82_cur."!mark_fail"(0)
+ lt rx82_pos, -1, rx82_done
+ eq rx82_pos, -1, rx82_fail
jump $I10
- rx83_done:
- rx83_cur."!cursor_fail"()
- rx83_cur."!cursor_debug"("FAIL ", "nullterm")
- .return (rx83_cur)
+ rx82_done:
+ rx82_cur."!cursor_fail"()
+ rx82_cur."!cursor_debug"("FAIL ", "nullterm")
+ .return (rx82_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm" :subid("37_1275811471.14938") :method
+.sub "!PREFIX__nullterm" :subid("37_1280467467.13603") :method
.annotate 'line', 5
- new $P85, "ResizablePMCArray"
- push $P85, ""
- .return ($P85)
+ new $P84, "ResizablePMCArray"
+ push $P84, ""
+ .return ($P84)
.end
.namespace ["HLL";"Grammar"]
-.sub "nullterm_alt" :subid("38_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "nullterm_alt" :subid("38_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 5
- .local string rx88_tgt
- .local int rx88_pos
- .local int rx88_off
- .local int rx88_eos
- .local int rx88_rep
- .local pmc rx88_cur
- (rx88_cur, rx88_pos, rx88_tgt) = self."!cursor_start"()
- rx88_cur."!cursor_debug"("START ", "nullterm_alt")
- .lex unicode:"$\x{a2}", rx88_cur
+ .local string rx87_tgt
+ .local int rx87_pos
+ .local int rx87_off
+ .local int rx87_eos
+ .local int rx87_rep
+ .local pmc rx87_cur
+ (rx87_cur, rx87_pos, rx87_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx87_cur
.local pmc match
.lex "$/", match
- length rx88_eos, rx88_tgt
- gt rx88_pos, rx88_eos, rx88_done
- set rx88_off, 0
- lt rx88_pos, 2, rx88_start
- sub rx88_off, rx88_pos, 1
- substr rx88_tgt, rx88_tgt, rx88_off
- rx88_start:
+ length rx87_eos, rx87_tgt
+ gt rx87_pos, rx87_eos, rx87_done
+ set rx87_off, 0
+ lt rx87_pos, 2, rx87_start
+ sub rx87_off, rx87_pos, 1
+ substr rx87_tgt, rx87_tgt, rx87_off
+ rx87_start:
+ eq $I10, 1, rx87_restart
+ rx87_cur."!cursor_debug"("START ", "nullterm_alt")
$I10 = self.'from'()
- ne $I10, -1, rxscan92_done
- goto rxscan92_scan
- rxscan92_loop:
- ($P10) = rx88_cur."from"()
+ ne $I10, -1, rxscan91_done
+ goto rxscan91_scan
+ rxscan91_loop:
+ ($P10) = rx87_cur."from"()
inc $P10
- set rx88_pos, $P10
- ge rx88_pos, rx88_eos, rxscan92_done
- rxscan92_scan:
- set_addr $I10, rxscan92_loop
- rx88_cur."!mark_push"(0, rx88_pos, $I10)
- rxscan92_done:
+ set rx87_pos, $P10
+ ge rx87_pos, rx87_eos, rxscan91_done
+ rxscan91_scan:
+ set_addr $I10, rxscan91_loop
+ rx87_cur."!mark_push"(0, rx87_pos, $I10)
+ rxscan91_done:
.annotate 'line', 30
# rx subrule "nullterm" subtype=capture negate=
- rx88_cur."!cursor_pos"(rx88_pos)
- $P10 = rx88_cur."nullterm"()
- unless $P10, rx88_fail
- rx88_cur."!mark_push"(0, -1, 0, $P10)
+ rx87_cur."!cursor_pos"(rx87_pos)
+ $P10 = rx87_cur."nullterm"()
+ unless $P10, rx87_fail
+ rx87_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("term")
- rx88_pos = $P10."pos"()
+ rx87_pos = $P10."pos"()
# rx pass
- rx88_cur."!cursor_pass"(rx88_pos, "nullterm_alt")
- rx88_cur."!cursor_debug"("PASS ", "nullterm_alt", " at pos=", rx88_pos)
- .return (rx88_cur)
- rx88_fail:
+ rx87_cur."!cursor_pass"(rx87_pos, "nullterm_alt")
+ rx87_cur."!cursor_debug"("PASS ", "nullterm_alt", " at pos=", rx87_pos)
+ .return (rx87_cur)
+ rx87_restart:
.annotate 'line', 5
- (rx88_rep, rx88_pos, $I10, $P10) = rx88_cur."!mark_fail"(0)
- lt rx88_pos, -1, rx88_done
- eq rx88_pos, -1, rx88_fail
+ rx87_cur."!cursor_debug"("NEXT ", "nullterm_alt")
+ rx87_fail:
+ (rx87_rep, rx87_pos, $I10, $P10) = rx87_cur."!mark_fail"(0)
+ lt rx87_pos, -1, rx87_done
+ eq rx87_pos, -1, rx87_fail
jump $I10
- rx88_done:
- rx88_cur."!cursor_fail"()
- rx88_cur."!cursor_debug"("FAIL ", "nullterm_alt")
- .return (rx88_cur)
+ rx87_done:
+ rx87_cur."!cursor_fail"()
+ rx87_cur."!cursor_debug"("FAIL ", "nullterm_alt")
+ .return (rx87_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt" :subid("39_1275811471.14938") :method
+.sub "!PREFIX__nullterm_alt" :subid("39_1280467467.13603") :method
.annotate 'line', 5
- $P90 = self."!PREFIX__!subrule"("nullterm", "")
- new $P91, "ResizablePMCArray"
- push $P91, $P90
- .return ($P91)
+ $P89 = self."!PREFIX__!subrule"("nullterm", "")
+ new $P90, "ResizablePMCArray"
+ push $P90, $P89
+ .return ($P90)
.end
.namespace ["HLL";"Grammar"]
.include "except_types.pasm"
-.sub "nulltermish" :subid("40_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "nulltermish" :subid("40_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- new $P95, 'ExceptionHandler'
- set_addr $P95, control_94
- $P95."handle_types"(.CONTROL_RETURN)
- push_eh $P95
- .lex "self", self
- find_lex $P98, "self"
- $P99 = $P98."termish"()
- unless $P99, unless_97
- set $P96, $P99
- goto unless_97_end
- unless_97:
- find_lex $P100, "self"
- $P101 = $P100."nullterm_alt"()
- set $P96, $P101
- unless_97_end:
- .return ($P96)
- control_94:
- .local pmc exception
- .get_results (exception)
- getattribute $P102, exception, "payload"
- .return ($P102)
+ new $P94, 'ExceptionHandler'
+ set_addr $P94, control_93
+ $P94."handle_types"(.CONTROL_RETURN)
+ push_eh $P94
+ .lex "self", self
+ find_lex $P97, "self"
+ $P98 = $P97."termish"()
+ unless $P98, unless_96
+ set $P95, $P98
+ goto unless_96_end
+ unless_96:
+ find_lex $P99, "self"
+ $P100 = $P99."nullterm_alt"()
+ set $P95, $P100
+ unless_96_end:
+ .return ($P95)
+ control_93:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P101, exception, "payload"
+ .return ($P101)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_delimited" :subid("41_1275811471.14938") :method :outer("11_1275811471.14938")
-.annotate 'line', 33
- .local string rx104_tgt
- .local int rx104_pos
- .local int rx104_off
- .local int rx104_eos
- .local int rx104_rep
- .local pmc rx104_cur
- (rx104_cur, rx104_pos, rx104_tgt) = self."!cursor_start"()
- rx104_cur."!cursor_debug"("START ", "quote_delimited")
- rx104_cur."!cursor_caparray"("quote_atom")
- .lex unicode:"$\x{a2}", rx104_cur
+.sub "quote_delimited" :subid("41_1280467467.13603") :method :outer("11_1280467467.13603")
+.annotate 'line', 33
+ .local string rx103_tgt
+ .local int rx103_pos
+ .local int rx103_off
+ .local int rx103_eos
+ .local int rx103_rep
+ .local pmc rx103_cur
+ (rx103_cur, rx103_pos, rx103_tgt, $I10) = self."!cursor_start"()
+ rx103_cur."!cursor_caparray"("quote_atom")
+ .lex unicode:"$\x{a2}", rx103_cur
.local pmc match
.lex "$/", match
- length rx104_eos, rx104_tgt
- gt rx104_pos, rx104_eos, rx104_done
- set rx104_off, 0
- lt rx104_pos, 2, rx104_start
- sub rx104_off, rx104_pos, 1
- substr rx104_tgt, rx104_tgt, rx104_off
- rx104_start:
+ length rx103_eos, rx103_tgt
+ gt rx103_pos, rx103_eos, rx103_done
+ set rx103_off, 0
+ lt rx103_pos, 2, rx103_start
+ sub rx103_off, rx103_pos, 1
+ substr rx103_tgt, rx103_tgt, rx103_off
+ rx103_start:
+ eq $I10, 1, rx103_restart
+ rx103_cur."!cursor_debug"("START ", "quote_delimited")
$I10 = self.'from'()
- ne $I10, -1, rxscan108_done
- goto rxscan108_scan
- rxscan108_loop:
- ($P10) = rx104_cur."from"()
+ ne $I10, -1, rxscan107_done
+ goto rxscan107_scan
+ rxscan107_loop:
+ ($P10) = rx103_cur."from"()
inc $P10
- set rx104_pos, $P10
- ge rx104_pos, rx104_eos, rxscan108_done
- rxscan108_scan:
- set_addr $I10, rxscan108_loop
- rx104_cur."!mark_push"(0, rx104_pos, $I10)
- rxscan108_done:
+ set rx103_pos, $P10
+ ge rx103_pos, rx103_eos, rxscan107_done
+ rxscan107_scan:
+ set_addr $I10, rxscan107_loop
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ rxscan107_done:
.annotate 'line', 37
# rx subrule "starter" subtype=capture negate=
- rx104_cur."!cursor_pos"(rx104_pos)
- $P10 = rx104_cur."starter"()
- unless $P10, rx104_fail
- rx104_cur."!mark_push"(0, -1, 0, $P10)
+ rx103_cur."!cursor_pos"(rx103_pos)
+ $P10 = rx103_cur."starter"()
+ unless $P10, rx103_fail
+ rx103_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("starter")
- rx104_pos = $P10."pos"()
- # rx rxquantr109 ** 0..*
- set_addr $I110, rxquantr109_done
- rx104_cur."!mark_push"(0, rx104_pos, $I110)
- rxquantr109_loop:
+ rx103_pos = $P10."pos"()
+ # rx rxquantr108 ** 0..*
+ set_addr $I10, rxquantr108_done
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ rxquantr108_loop:
# rx subrule "quote_atom" subtype=capture negate=
- rx104_cur."!cursor_pos"(rx104_pos)
- $P10 = rx104_cur."quote_atom"()
- unless $P10, rx104_fail
- rx104_cur."!mark_push"(0, -1, 0, $P10)
+ rx103_cur."!cursor_pos"(rx103_pos)
+ $P10 = rx103_cur."quote_atom"()
+ unless $P10, rx103_fail
+ goto rxsubrule109_pass
+ rxsubrule109_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx103_fail
+ rxsubrule109_pass:
+ set_addr $I10, rxsubrule109_back
+ rx103_cur."!mark_push"(0, rx103_pos, $I10, $P10)
$P10."!cursor_names"("quote_atom")
- rx104_pos = $P10."pos"()
- (rx104_rep) = rx104_cur."!mark_commit"($I110)
- rx104_cur."!mark_push"(rx104_rep, rx104_pos, $I110)
- goto rxquantr109_loop
- rxquantr109_done:
+ rx103_pos = $P10."pos"()
+ set_addr $I10, rxquantr108_done
+ (rx103_rep) = rx103_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr108_done
+ rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I10)
+ goto rxquantr108_loop
+ rxquantr108_done:
# rx subrule "stopper" subtype=capture negate=
- rx104_cur."!cursor_pos"(rx104_pos)
- $P10 = rx104_cur."stopper"()
- unless $P10, rx104_fail
- rx104_cur."!mark_push"(0, -1, 0, $P10)
+ rx103_cur."!cursor_pos"(rx103_pos)
+ $P10 = rx103_cur."stopper"()
+ unless $P10, rx103_fail
+ rx103_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("stopper")
- rx104_pos = $P10."pos"()
+ rx103_pos = $P10."pos"()
.annotate 'line', 36
# rx pass
- rx104_cur."!cursor_pass"(rx104_pos, "quote_delimited")
- rx104_cur."!cursor_debug"("PASS ", "quote_delimited", " at pos=", rx104_pos)
- .return (rx104_cur)
- rx104_fail:
-.annotate 'line', 33
- (rx104_rep, rx104_pos, $I10, $P10) = rx104_cur."!mark_fail"(0)
- lt rx104_pos, -1, rx104_done
- eq rx104_pos, -1, rx104_fail
+ rx103_cur."!cursor_pass"(rx103_pos, "quote_delimited")
+ rx103_cur."!cursor_debug"("PASS ", "quote_delimited", " at pos=", rx103_pos)
+ .return (rx103_cur)
+ rx103_restart:
+.annotate 'line', 33
+ rx103_cur."!cursor_debug"("NEXT ", "quote_delimited")
+ rx103_fail:
+ (rx103_rep, rx103_pos, $I10, $P10) = rx103_cur."!mark_fail"(0)
+ lt rx103_pos, -1, rx103_done
+ eq rx103_pos, -1, rx103_fail
jump $I10
- rx104_done:
- rx104_cur."!cursor_fail"()
- rx104_cur."!cursor_debug"("FAIL ", "quote_delimited")
- .return (rx104_cur)
+ rx103_done:
+ rx103_cur."!cursor_fail"()
+ rx103_cur."!cursor_debug"("FAIL ", "quote_delimited")
+ .return (rx103_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited" :subid("42_1275811471.14938") :method
+.sub "!PREFIX__quote_delimited" :subid("42_1280467467.13603") :method
.annotate 'line', 33
- $P106 = self."!PREFIX__!subrule"("starter", "")
- new $P107, "ResizablePMCArray"
- push $P107, $P106
- .return ($P107)
+ $P105 = self."!PREFIX__!subrule"("starter", "")
+ new $P106, "ResizablePMCArray"
+ push $P106, $P105
+ .return ($P106)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_atom" :subid("43_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_atom" :subid("43_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx112_tgt
- .local int rx112_pos
- .local int rx112_off
- .local int rx112_eos
- .local int rx112_rep
- .local pmc rx112_cur
- (rx112_cur, rx112_pos, rx112_tgt) = self."!cursor_start"()
- rx112_cur."!cursor_debug"("START ", "quote_atom")
- .lex unicode:"$\x{a2}", rx112_cur
+ .local string rx111_tgt
+ .local int rx111_pos
+ .local int rx111_off
+ .local int rx111_eos
+ .local int rx111_rep
+ .local pmc rx111_cur
+ (rx111_cur, rx111_pos, rx111_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx111_cur
.local pmc match
.lex "$/", match
- length rx112_eos, rx112_tgt
- gt rx112_pos, rx112_eos, rx112_done
- set rx112_off, 0
- lt rx112_pos, 2, rx112_start
- sub rx112_off, rx112_pos, 1
- substr rx112_tgt, rx112_tgt, rx112_off
- rx112_start:
+ length rx111_eos, rx111_tgt
+ gt rx111_pos, rx111_eos, rx111_done
+ set rx111_off, 0
+ lt rx111_pos, 2, rx111_start
+ sub rx111_off, rx111_pos, 1
+ substr rx111_tgt, rx111_tgt, rx111_off
+ rx111_start:
+ eq $I10, 1, rx111_restart
+ rx111_cur."!cursor_debug"("START ", "quote_atom")
$I10 = self.'from'()
- ne $I10, -1, rxscan115_done
- goto rxscan115_scan
- rxscan115_loop:
- ($P10) = rx112_cur."from"()
+ ne $I10, -1, rxscan114_done
+ goto rxscan114_scan
+ rxscan114_loop:
+ ($P10) = rx111_cur."from"()
inc $P10
- set rx112_pos, $P10
- ge rx112_pos, rx112_eos, rxscan115_done
- rxscan115_scan:
- set_addr $I10, rxscan115_loop
- rx112_cur."!mark_push"(0, rx112_pos, $I10)
- rxscan115_done:
+ set rx111_pos, $P10
+ ge rx111_pos, rx111_eos, rxscan114_done
+ rxscan114_scan:
+ set_addr $I10, rxscan114_loop
+ rx111_cur."!mark_push"(0, rx111_pos, $I10)
+ rxscan114_done:
.annotate 'line', 41
# rx subrule "stopper" subtype=zerowidth negate=1
- rx112_cur."!cursor_pos"(rx112_pos)
- $P10 = rx112_cur."stopper"()
- if $P10, rx112_fail
- alt116_0:
+ rx111_cur."!cursor_pos"(rx111_pos)
+ $P10 = rx111_cur."stopper"()
+ if $P10, rx111_fail
+ alt115_0:
.annotate 'line', 42
- set_addr $I10, alt116_1
- rx112_cur."!mark_push"(0, rx112_pos, $I10)
+ set_addr $I10, alt115_1
+ rx111_cur."!mark_push"(0, rx111_pos, $I10)
.annotate 'line', 43
# rx subrule "quote_escape" subtype=capture negate=
- rx112_cur."!cursor_pos"(rx112_pos)
- $P10 = rx112_cur."quote_escape"()
- unless $P10, rx112_fail
- rx112_cur."!mark_push"(0, -1, 0, $P10)
+ rx111_cur."!cursor_pos"(rx111_pos)
+ $P10 = rx111_cur."quote_escape"()
+ unless $P10, rx111_fail
+ rx111_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_escape")
- rx112_pos = $P10."pos"()
- goto alt116_end
- alt116_1:
+ rx111_pos = $P10."pos"()
+ goto alt115_end
+ alt115_1:
.annotate 'line', 44
- # rx rxquantr117 ** 1..*
- set_addr $I120, rxquantr117_done
- rx112_cur."!mark_push"(0, -1, $I120)
- rxquantr117_loop:
+ # rx rxquantr116 ** 1..*
+ set_addr $I10, rxquantr116_done
+ rx111_cur."!mark_push"(0, -1, $I10)
+ rxquantr116_loop:
# rx subrule "stopper" subtype=zerowidth negate=1
- rx112_cur."!cursor_pos"(rx112_pos)
- $P10 = rx112_cur."stopper"()
- if $P10, rx112_fail
+ rx111_cur."!cursor_pos"(rx111_pos)
+ $P10 = rx111_cur."stopper"()
+ if $P10, rx111_fail
# rx subrule "quote_escape" subtype=zerowidth negate=1
- rx112_cur."!cursor_pos"(rx112_pos)
- $P10 = rx112_cur."quote_escape"()
- if $P10, rx112_fail
+ rx111_cur."!cursor_pos"(rx111_pos)
+ $P10 = rx111_cur."quote_escape"()
+ if $P10, rx111_fail
# rx charclass .
- ge rx112_pos, rx112_eos, rx112_fail
- inc rx112_pos
- (rx112_rep) = rx112_cur."!mark_commit"($I120)
- rx112_cur."!mark_push"(rx112_rep, rx112_pos, $I120)
- goto rxquantr117_loop
- rxquantr117_done:
- alt116_end:
+ ge rx111_pos, rx111_eos, rx111_fail
+ inc rx111_pos
+ set_addr $I10, rxquantr116_done
+ (rx111_rep) = rx111_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr116_done
+ rx111_cur."!mark_push"(rx111_rep, rx111_pos, $I10)
+ goto rxquantr116_loop
+ rxquantr116_done:
+ alt115_end:
.annotate 'line', 40
# rx pass
- rx112_cur."!cursor_pass"(rx112_pos, "quote_atom")
- rx112_cur."!cursor_debug"("PASS ", "quote_atom", " at pos=", rx112_pos)
- .return (rx112_cur)
- rx112_fail:
-.annotate 'line', 33
- (rx112_rep, rx112_pos, $I10, $P10) = rx112_cur."!mark_fail"(0)
- lt rx112_pos, -1, rx112_done
- eq rx112_pos, -1, rx112_fail
+ rx111_cur."!cursor_pass"(rx111_pos, "quote_atom")
+ rx111_cur."!cursor_debug"("PASS ", "quote_atom", " at pos=", rx111_pos)
+ .return (rx111_cur)
+ rx111_restart:
+.annotate 'line', 33
+ rx111_cur."!cursor_debug"("NEXT ", "quote_atom")
+ rx111_fail:
+ (rx111_rep, rx111_pos, $I10, $P10) = rx111_cur."!mark_fail"(0)
+ lt rx111_pos, -1, rx111_done
+ eq rx111_pos, -1, rx111_fail
jump $I10
- rx112_done:
- rx112_cur."!cursor_fail"()
- rx112_cur."!cursor_debug"("FAIL ", "quote_atom")
- .return (rx112_cur)
+ rx111_done:
+ rx111_cur."!cursor_fail"()
+ rx111_cur."!cursor_debug"("FAIL ", "quote_atom")
+ .return (rx111_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom" :subid("44_1275811471.14938") :method
+.sub "!PREFIX__quote_atom" :subid("44_1280467467.13603") :method
.annotate 'line', 33
- new $P114, "ResizablePMCArray"
- push $P114, ""
- .return ($P114)
+ new $P113, "ResizablePMCArray"
+ push $P113, ""
+ .return ($P113)
.end
.namespace ["HLL";"Grammar"]
-.sub "decint" :subid("45_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "decint" :subid("45_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx122_tgt
- .local int rx122_pos
- .local int rx122_off
- .local int rx122_eos
- .local int rx122_rep
- .local pmc rx122_cur
- (rx122_cur, rx122_pos, rx122_tgt) = self."!cursor_start"()
- rx122_cur."!cursor_debug"("START ", "decint")
- .lex unicode:"$\x{a2}", rx122_cur
+ .local string rx120_tgt
+ .local int rx120_pos
+ .local int rx120_off
+ .local int rx120_eos
+ .local int rx120_rep
+ .local pmc rx120_cur
+ (rx120_cur, rx120_pos, rx120_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx120_cur
.local pmc match
.lex "$/", match
- length rx122_eos, rx122_tgt
- gt rx122_pos, rx122_eos, rx122_done
- set rx122_off, 0
- lt rx122_pos, 2, rx122_start
- sub rx122_off, rx122_pos, 1
- substr rx122_tgt, rx122_tgt, rx122_off
- rx122_start:
+ length rx120_eos, rx120_tgt
+ gt rx120_pos, rx120_eos, rx120_done
+ set rx120_off, 0
+ lt rx120_pos, 2, rx120_start
+ sub rx120_off, rx120_pos, 1
+ substr rx120_tgt, rx120_tgt, rx120_off
+ rx120_start:
+ eq $I10, 1, rx120_restart
+ rx120_cur."!cursor_debug"("START ", "decint")
$I10 = self.'from'()
- ne $I10, -1, rxscan125_done
- goto rxscan125_scan
- rxscan125_loop:
- ($P10) = rx122_cur."from"()
+ ne $I10, -1, rxscan123_done
+ goto rxscan123_scan
+ rxscan123_loop:
+ ($P10) = rx120_cur."from"()
inc $P10
- set rx122_pos, $P10
- ge rx122_pos, rx122_eos, rxscan125_done
- rxscan125_scan:
- set_addr $I10, rxscan125_loop
- rx122_cur."!mark_push"(0, rx122_pos, $I10)
- rxscan125_done:
+ set rx120_pos, $P10
+ ge rx120_pos, rx120_eos, rxscan123_done
+ rxscan123_scan:
+ set_addr $I10, rxscan123_loop
+ rx120_cur."!mark_push"(0, rx120_pos, $I10)
+ rxscan123_done:
.annotate 'line', 48
- # rx rxquantr126 ** 1..*
- set_addr $I127, rxquantr126_done
- rx122_cur."!mark_push"(0, -1, $I127)
- rxquantr126_loop:
+ # rx rxquantr124 ** 1..*
+ set_addr $I10, rxquantr124_done
+ rx120_cur."!mark_push"(0, -1, $I10)
+ rxquantr124_loop:
# rx charclass_q d r 1..-1
- sub $I10, rx122_pos, rx122_off
- find_not_cclass $I11, 8, rx122_tgt, $I10, rx122_eos
+ sub $I10, rx120_pos, rx120_off
+ find_not_cclass $I11, 8, rx120_tgt, $I10, rx120_eos
add $I12, $I10, 1
- lt $I11, $I12, rx122_fail
- add rx122_pos, rx122_off, $I11
- (rx122_rep) = rx122_cur."!mark_commit"($I127)
- rx122_cur."!mark_push"(rx122_rep, rx122_pos, $I127)
+ lt $I11, $I12, rx120_fail
+ add rx120_pos, rx120_off, $I11
+ set_addr $I10, rxquantr124_done
+ (rx120_rep) = rx120_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr124_done
+ rx120_cur."!mark_push"(rx120_rep, rx120_pos, $I10)
# rx literal "_"
- add $I11, rx122_pos, 1
- gt $I11, rx122_eos, rx122_fail
- sub $I11, rx122_pos, rx122_off
- substr $S10, rx122_tgt, $I11, 1
- ne $S10, "_", rx122_fail
- add rx122_pos, 1
- goto rxquantr126_loop
- rxquantr126_done:
+ add $I11, rx120_pos, 1
+ gt $I11, rx120_eos, rx120_fail
+ sub $I11, rx120_pos, rx120_off
+ substr $S10, rx120_tgt, $I11, 1
+ ne $S10, "_", rx120_fail
+ add rx120_pos, 1
+ goto rxquantr124_loop
+ rxquantr124_done:
# rx pass
- rx122_cur."!cursor_pass"(rx122_pos, "decint")
- rx122_cur."!cursor_debug"("PASS ", "decint", " at pos=", rx122_pos)
- .return (rx122_cur)
- rx122_fail:
-.annotate 'line', 33
- (rx122_rep, rx122_pos, $I10, $P10) = rx122_cur."!mark_fail"(0)
- lt rx122_pos, -1, rx122_done
- eq rx122_pos, -1, rx122_fail
+ rx120_cur."!cursor_pass"(rx120_pos, "decint")
+ rx120_cur."!cursor_debug"("PASS ", "decint", " at pos=", rx120_pos)
+ .return (rx120_cur)
+ rx120_restart:
+.annotate 'line', 33
+ rx120_cur."!cursor_debug"("NEXT ", "decint")
+ rx120_fail:
+ (rx120_rep, rx120_pos, $I10, $P10) = rx120_cur."!mark_fail"(0)
+ lt rx120_pos, -1, rx120_done
+ eq rx120_pos, -1, rx120_fail
jump $I10
- rx122_done:
- rx122_cur."!cursor_fail"()
- rx122_cur."!cursor_debug"("FAIL ", "decint")
- .return (rx122_cur)
+ rx120_done:
+ rx120_cur."!cursor_fail"()
+ rx120_cur."!cursor_debug"("FAIL ", "decint")
+ .return (rx120_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint" :subid("46_1275811471.14938") :method
+.sub "!PREFIX__decint" :subid("46_1280467467.13603") :method
.annotate 'line', 33
- new $P124, "ResizablePMCArray"
- push $P124, ""
- .return ($P124)
+ new $P122, "ResizablePMCArray"
+ push $P122, ""
+ .return ($P122)
.end
.namespace ["HLL";"Grammar"]
-.sub "decints" :subid("47_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "decints" :subid("47_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx129_tgt
- .local int rx129_pos
- .local int rx129_off
- .local int rx129_eos
- .local int rx129_rep
- .local pmc rx129_cur
- (rx129_cur, rx129_pos, rx129_tgt) = self."!cursor_start"()
- rx129_cur."!cursor_debug"("START ", "decints")
- rx129_cur."!cursor_caparray"("decint")
- .lex unicode:"$\x{a2}", rx129_cur
+ .local string rx126_tgt
+ .local int rx126_pos
+ .local int rx126_off
+ .local int rx126_eos
+ .local int rx126_rep
+ .local pmc rx126_cur
+ (rx126_cur, rx126_pos, rx126_tgt, $I10) = self."!cursor_start"()
+ rx126_cur."!cursor_caparray"("decint")
+ .lex unicode:"$\x{a2}", rx126_cur
.local pmc match
.lex "$/", match
- length rx129_eos, rx129_tgt
- gt rx129_pos, rx129_eos, rx129_done
- set rx129_off, 0
- lt rx129_pos, 2, rx129_start
- sub rx129_off, rx129_pos, 1
- substr rx129_tgt, rx129_tgt, rx129_off
- rx129_start:
+ length rx126_eos, rx126_tgt
+ gt rx126_pos, rx126_eos, rx126_done
+ set rx126_off, 0
+ lt rx126_pos, 2, rx126_start
+ sub rx126_off, rx126_pos, 1
+ substr rx126_tgt, rx126_tgt, rx126_off
+ rx126_start:
+ eq $I10, 1, rx126_restart
+ rx126_cur."!cursor_debug"("START ", "decints")
$I10 = self.'from'()
- ne $I10, -1, rxscan132_done
- goto rxscan132_scan
- rxscan132_loop:
- ($P10) = rx129_cur."from"()
+ ne $I10, -1, rxscan129_done
+ goto rxscan129_scan
+ rxscan129_loop:
+ ($P10) = rx126_cur."from"()
inc $P10
- set rx129_pos, $P10
- ge rx129_pos, rx129_eos, rxscan132_done
- rxscan132_scan:
- set_addr $I10, rxscan132_loop
- rx129_cur."!mark_push"(0, rx129_pos, $I10)
- rxscan132_done:
+ set rx126_pos, $P10
+ ge rx126_pos, rx126_eos, rxscan129_done
+ rxscan129_scan:
+ set_addr $I10, rxscan129_loop
+ rx126_cur."!mark_push"(0, rx126_pos, $I10)
+ rxscan129_done:
.annotate 'line', 49
- # rx rxquantr133 ** 1..*
- set_addr $I134, rxquantr133_done
- rx129_cur."!mark_push"(0, -1, $I134)
- rxquantr133_loop:
+ # rx rxquantr130 ** 1..*
+ set_addr $I10, rxquantr130_done
+ rx126_cur."!mark_push"(0, -1, $I10)
+ rxquantr130_loop:
# rx subrule "ws" subtype=method negate=
- rx129_cur."!cursor_pos"(rx129_pos)
- $P10 = rx129_cur."ws"()
- unless $P10, rx129_fail
- rx129_pos = $P10."pos"()
+ rx126_cur."!cursor_pos"(rx126_pos)
+ $P10 = rx126_cur."ws"()
+ unless $P10, rx126_fail
+ rx126_pos = $P10."pos"()
# rx subrule "decint" subtype=capture negate=
- rx129_cur."!cursor_pos"(rx129_pos)
- $P10 = rx129_cur."decint"()
- unless $P10, rx129_fail
- rx129_cur."!mark_push"(0, -1, 0, $P10)
+ rx126_cur."!cursor_pos"(rx126_pos)
+ $P10 = rx126_cur."decint"()
+ unless $P10, rx126_fail
+ rx126_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("decint")
- rx129_pos = $P10."pos"()
+ rx126_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx129_cur."!cursor_pos"(rx129_pos)
- $P10 = rx129_cur."ws"()
- unless $P10, rx129_fail
- rx129_pos = $P10."pos"()
- (rx129_rep) = rx129_cur."!mark_commit"($I134)
- rx129_cur."!mark_push"(rx129_rep, rx129_pos, $I134)
+ rx126_cur."!cursor_pos"(rx126_pos)
+ $P10 = rx126_cur."ws"()
+ unless $P10, rx126_fail
+ rx126_pos = $P10."pos"()
+ set_addr $I10, rxquantr130_done
+ (rx126_rep) = rx126_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr130_done
+ rx126_cur."!mark_push"(rx126_rep, rx126_pos, $I10)
# rx literal ","
- add $I11, rx129_pos, 1
- gt $I11, rx129_eos, rx129_fail
- sub $I11, rx129_pos, rx129_off
- substr $S10, rx129_tgt, $I11, 1
- ne $S10, ",", rx129_fail
- add rx129_pos, 1
- goto rxquantr133_loop
- rxquantr133_done:
+ add $I11, rx126_pos, 1
+ gt $I11, rx126_eos, rx126_fail
+ sub $I11, rx126_pos, rx126_off
+ substr $S10, rx126_tgt, $I11, 1
+ ne $S10, ",", rx126_fail
+ add rx126_pos, 1
+ goto rxquantr130_loop
+ rxquantr130_done:
# rx pass
- rx129_cur."!cursor_pass"(rx129_pos, "decints")
- rx129_cur."!cursor_debug"("PASS ", "decints", " at pos=", rx129_pos)
- .return (rx129_cur)
- rx129_fail:
-.annotate 'line', 33
- (rx129_rep, rx129_pos, $I10, $P10) = rx129_cur."!mark_fail"(0)
- lt rx129_pos, -1, rx129_done
- eq rx129_pos, -1, rx129_fail
+ rx126_cur."!cursor_pass"(rx126_pos, "decints")
+ rx126_cur."!cursor_debug"("PASS ", "decints", " at pos=", rx126_pos)
+ .return (rx126_cur)
+ rx126_restart:
+.annotate 'line', 33
+ rx126_cur."!cursor_debug"("NEXT ", "decints")
+ rx126_fail:
+ (rx126_rep, rx126_pos, $I10, $P10) = rx126_cur."!mark_fail"(0)
+ lt rx126_pos, -1, rx126_done
+ eq rx126_pos, -1, rx126_fail
jump $I10
- rx129_done:
- rx129_cur."!cursor_fail"()
- rx129_cur."!cursor_debug"("FAIL ", "decints")
- .return (rx129_cur)
+ rx126_done:
+ rx126_cur."!cursor_fail"()
+ rx126_cur."!cursor_debug"("FAIL ", "decints")
+ .return (rx126_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decints" :subid("48_1275811471.14938") :method
+.sub "!PREFIX__decints" :subid("48_1280467467.13603") :method
.annotate 'line', 33
- new $P131, "ResizablePMCArray"
- push $P131, ""
- .return ($P131)
+ new $P128, "ResizablePMCArray"
+ push $P128, ""
+ .return ($P128)
.end
.namespace ["HLL";"Grammar"]
-.sub "hexint" :subid("49_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "hexint" :subid("49_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx136_tgt
- .local int rx136_pos
- .local int rx136_off
- .local int rx136_eos
- .local int rx136_rep
- .local pmc rx136_cur
- (rx136_cur, rx136_pos, rx136_tgt) = self."!cursor_start"()
- rx136_cur."!cursor_debug"("START ", "hexint")
- .lex unicode:"$\x{a2}", rx136_cur
+ .local string rx132_tgt
+ .local int rx132_pos
+ .local int rx132_off
+ .local int rx132_eos
+ .local int rx132_rep
+ .local pmc rx132_cur
+ (rx132_cur, rx132_pos, rx132_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx132_cur
.local pmc match
.lex "$/", match
- length rx136_eos, rx136_tgt
- gt rx136_pos, rx136_eos, rx136_done
- set rx136_off, 0
- lt rx136_pos, 2, rx136_start
- sub rx136_off, rx136_pos, 1
- substr rx136_tgt, rx136_tgt, rx136_off
- rx136_start:
+ length rx132_eos, rx132_tgt
+ gt rx132_pos, rx132_eos, rx132_done
+ set rx132_off, 0
+ lt rx132_pos, 2, rx132_start
+ sub rx132_off, rx132_pos, 1
+ substr rx132_tgt, rx132_tgt, rx132_off
+ rx132_start:
+ eq $I10, 1, rx132_restart
+ rx132_cur."!cursor_debug"("START ", "hexint")
$I10 = self.'from'()
- ne $I10, -1, rxscan139_done
- goto rxscan139_scan
- rxscan139_loop:
- ($P10) = rx136_cur."from"()
+ ne $I10, -1, rxscan135_done
+ goto rxscan135_scan
+ rxscan135_loop:
+ ($P10) = rx132_cur."from"()
inc $P10
- set rx136_pos, $P10
- ge rx136_pos, rx136_eos, rxscan139_done
- rxscan139_scan:
- set_addr $I10, rxscan139_loop
- rx136_cur."!mark_push"(0, rx136_pos, $I10)
- rxscan139_done:
+ set rx132_pos, $P10
+ ge rx132_pos, rx132_eos, rxscan135_done
+ rxscan135_scan:
+ set_addr $I10, rxscan135_loop
+ rx132_cur."!mark_push"(0, rx132_pos, $I10)
+ rxscan135_done:
.annotate 'line', 51
- # rx rxquantr140 ** 1..*
- set_addr $I143, rxquantr140_done
- rx136_cur."!mark_push"(0, -1, $I143)
- rxquantr140_loop:
- # rx rxquantr141 ** 1..*
- set_addr $I142, rxquantr141_done
- rx136_cur."!mark_push"(0, -1, $I142)
- rxquantr141_loop:
+ # rx rxquantr136 ** 1..*
+ set_addr $I10, rxquantr136_done
+ rx132_cur."!mark_push"(0, -1, $I10)
+ rxquantr136_loop:
+ # rx rxquantr137 ** 1..*
+ set_addr $I10, rxquantr137_done
+ rx132_cur."!mark_push"(0, -1, $I10)
+ rxquantr137_loop:
# rx enumcharlist negate=0
- ge rx136_pos, rx136_eos, rx136_fail
- sub $I10, rx136_pos, rx136_off
- substr $S10, rx136_tgt, $I10, 1
+ ge rx132_pos, rx132_eos, rx132_fail
+ sub $I10, rx132_pos, rx132_off
+ substr $S10, rx132_tgt, $I10, 1
index $I11, "0123456789abcdefABCDEF", $S10
- lt $I11, 0, rx136_fail
- inc rx136_pos
- (rx136_rep) = rx136_cur."!mark_commit"($I142)
- rx136_cur."!mark_push"(rx136_rep, rx136_pos, $I142)
- goto rxquantr141_loop
- rxquantr141_done:
- (rx136_rep) = rx136_cur."!mark_commit"($I143)
- rx136_cur."!mark_push"(rx136_rep, rx136_pos, $I143)
+ lt $I11, 0, rx132_fail
+ inc rx132_pos
+ set_addr $I10, rxquantr137_done
+ (rx132_rep) = rx132_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr137_done
+ rx132_cur."!mark_push"(rx132_rep, rx132_pos, $I10)
+ goto rxquantr137_loop
+ rxquantr137_done:
+ set_addr $I10, rxquantr136_done
+ (rx132_rep) = rx132_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr136_done
+ rx132_cur."!mark_push"(rx132_rep, rx132_pos, $I10)
# rx literal "_"
- add $I11, rx136_pos, 1
- gt $I11, rx136_eos, rx136_fail
- sub $I11, rx136_pos, rx136_off
- substr $S10, rx136_tgt, $I11, 1
- ne $S10, "_", rx136_fail
- add rx136_pos, 1
- goto rxquantr140_loop
- rxquantr140_done:
+ add $I11, rx132_pos, 1
+ gt $I11, rx132_eos, rx132_fail
+ sub $I11, rx132_pos, rx132_off
+ substr $S10, rx132_tgt, $I11, 1
+ ne $S10, "_", rx132_fail
+ add rx132_pos, 1
+ goto rxquantr136_loop
+ rxquantr136_done:
+ # rx pass
+ rx132_cur."!cursor_pass"(rx132_pos, "hexint")
+ rx132_cur."!cursor_debug"("PASS ", "hexint", " at pos=", rx132_pos)
+ .return (rx132_cur)
+ rx132_restart:
+.annotate 'line', 33
+ rx132_cur."!cursor_debug"("NEXT ", "hexint")
+ rx132_fail:
+ (rx132_rep, rx132_pos, $I10, $P10) = rx132_cur."!mark_fail"(0)
+ lt rx132_pos, -1, rx132_done
+ eq rx132_pos, -1, rx132_fail
+ jump $I10
+ rx132_done:
+ rx132_cur."!cursor_fail"()
+ rx132_cur."!cursor_debug"("FAIL ", "hexint")
+ .return (rx132_cur)
+ .return ()
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "!PREFIX__hexint" :subid("50_1280467467.13603") :method
+.annotate 'line', 33
+ new $P134, "ResizablePMCArray"
+ push $P134, ""
+ .return ($P134)
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "hexints" :subid("51_1280467467.13603") :method :outer("11_1280467467.13603")
+.annotate 'line', 33
+ .local string rx139_tgt
+ .local int rx139_pos
+ .local int rx139_off
+ .local int rx139_eos
+ .local int rx139_rep
+ .local pmc rx139_cur
+ (rx139_cur, rx139_pos, rx139_tgt, $I10) = self."!cursor_start"()
+ rx139_cur."!cursor_caparray"("hexint")
+ .lex unicode:"$\x{a2}", rx139_cur
+ .local pmc match
+ .lex "$/", match
+ length rx139_eos, rx139_tgt
+ gt rx139_pos, rx139_eos, rx139_done
+ set rx139_off, 0
+ lt rx139_pos, 2, rx139_start
+ sub rx139_off, rx139_pos, 1
+ substr rx139_tgt, rx139_tgt, rx139_off
+ rx139_start:
+ eq $I10, 1, rx139_restart
+ rx139_cur."!cursor_debug"("START ", "hexints")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan142_done
+ goto rxscan142_scan
+ rxscan142_loop:
+ ($P10) = rx139_cur."from"()
+ inc $P10
+ set rx139_pos, $P10
+ ge rx139_pos, rx139_eos, rxscan142_done
+ rxscan142_scan:
+ set_addr $I10, rxscan142_loop
+ rx139_cur."!mark_push"(0, rx139_pos, $I10)
+ rxscan142_done:
+.annotate 'line', 52
+ # rx rxquantr143 ** 1..*
+ set_addr $I10, rxquantr143_done
+ rx139_cur."!mark_push"(0, -1, $I10)
+ rxquantr143_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx139_cur."!cursor_pos"(rx139_pos)
+ $P10 = rx139_cur."ws"()
+ unless $P10, rx139_fail
+ rx139_pos = $P10."pos"()
+ # rx subrule "hexint" subtype=capture negate=
+ rx139_cur."!cursor_pos"(rx139_pos)
+ $P10 = rx139_cur."hexint"()
+ unless $P10, rx139_fail
+ rx139_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("hexint")
+ rx139_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx139_cur."!cursor_pos"(rx139_pos)
+ $P10 = rx139_cur."ws"()
+ unless $P10, rx139_fail
+ rx139_pos = $P10."pos"()
+ set_addr $I10, rxquantr143_done
+ (rx139_rep) = rx139_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr143_done
+ rx139_cur."!mark_push"(rx139_rep, rx139_pos, $I10)
+ # rx literal ","
+ add $I11, rx139_pos, 1
+ gt $I11, rx139_eos, rx139_fail
+ sub $I11, rx139_pos, rx139_off
+ substr $S10, rx139_tgt, $I11, 1
+ ne $S10, ",", rx139_fail
+ add rx139_pos, 1
+ goto rxquantr143_loop
+ rxquantr143_done:
# rx pass
- rx136_cur."!cursor_pass"(rx136_pos, "hexint")
- rx136_cur."!cursor_debug"("PASS ", "hexint", " at pos=", rx136_pos)
- .return (rx136_cur)
- rx136_fail:
-.annotate 'line', 33
- (rx136_rep, rx136_pos, $I10, $P10) = rx136_cur."!mark_fail"(0)
- lt rx136_pos, -1, rx136_done
- eq rx136_pos, -1, rx136_fail
+ rx139_cur."!cursor_pass"(rx139_pos, "hexints")
+ rx139_cur."!cursor_debug"("PASS ", "hexints", " at pos=", rx139_pos)
+ .return (rx139_cur)
+ rx139_restart:
+.annotate 'line', 33
+ rx139_cur."!cursor_debug"("NEXT ", "hexints")
+ rx139_fail:
+ (rx139_rep, rx139_pos, $I10, $P10) = rx139_cur."!mark_fail"(0)
+ lt rx139_pos, -1, rx139_done
+ eq rx139_pos, -1, rx139_fail
jump $I10
- rx136_done:
- rx136_cur."!cursor_fail"()
- rx136_cur."!cursor_debug"("FAIL ", "hexint")
- .return (rx136_cur)
+ rx139_done:
+ rx139_cur."!cursor_fail"()
+ rx139_cur."!cursor_debug"("FAIL ", "hexints")
+ .return (rx139_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint" :subid("50_1275811471.14938") :method
+.sub "!PREFIX__hexints" :subid("52_1280467467.13603") :method
.annotate 'line', 33
- new $P138, "ResizablePMCArray"
- push $P138, ""
- .return ($P138)
+ new $P141, "ResizablePMCArray"
+ push $P141, ""
+ .return ($P141)
.end
.namespace ["HLL";"Grammar"]
-.sub "hexints" :subid("51_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "octint" :subid("53_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
.local string rx145_tgt
.local int rx145_pos
@@ -2249,9 +2423,7 @@
.local int rx145_eos
.local int rx145_rep
.local pmc rx145_cur
- (rx145_cur, rx145_pos, rx145_tgt) = self."!cursor_start"()
- rx145_cur."!cursor_debug"("START ", "hexints")
- rx145_cur."!cursor_caparray"("hexint")
+ (rx145_cur, rx145_pos, rx145_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx145_cur
.local pmc match
.lex "$/", match
@@ -2262,6 +2434,8 @@
sub rx145_off, rx145_pos, 1
substr rx145_tgt, rx145_tgt, rx145_off
rx145_start:
+ eq $I10, 1, rx145_restart
+ rx145_cur."!cursor_debug"("START ", "octint")
$I10 = self.'from'()
ne $I10, -1, rxscan148_done
goto rxscan148_scan
@@ -2274,59 +2448,63 @@
set_addr $I10, rxscan148_loop
rx145_cur."!mark_push"(0, rx145_pos, $I10)
rxscan148_done:
-.annotate 'line', 52
+.annotate 'line', 54
# rx rxquantr149 ** 1..*
- set_addr $I150, rxquantr149_done
- rx145_cur."!mark_push"(0, -1, $I150)
+ set_addr $I10, rxquantr149_done
+ rx145_cur."!mark_push"(0, -1, $I10)
rxquantr149_loop:
- # rx subrule "ws" subtype=method negate=
- rx145_cur."!cursor_pos"(rx145_pos)
- $P10 = rx145_cur."ws"()
- unless $P10, rx145_fail
- rx145_pos = $P10."pos"()
- # rx subrule "hexint" subtype=capture negate=
- rx145_cur."!cursor_pos"(rx145_pos)
- $P10 = rx145_cur."hexint"()
- unless $P10, rx145_fail
- rx145_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("hexint")
- rx145_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx145_cur."!cursor_pos"(rx145_pos)
- $P10 = rx145_cur."ws"()
- unless $P10, rx145_fail
- rx145_pos = $P10."pos"()
- (rx145_rep) = rx145_cur."!mark_commit"($I150)
- rx145_cur."!mark_push"(rx145_rep, rx145_pos, $I150)
- # rx literal ","
+ # rx rxquantr150 ** 1..*
+ set_addr $I10, rxquantr150_done
+ rx145_cur."!mark_push"(0, -1, $I10)
+ rxquantr150_loop:
+ # rx enumcharlist negate=0
+ ge rx145_pos, rx145_eos, rx145_fail
+ sub $I10, rx145_pos, rx145_off
+ substr $S10, rx145_tgt, $I10, 1
+ index $I11, "01234567", $S10
+ lt $I11, 0, rx145_fail
+ inc rx145_pos
+ set_addr $I10, rxquantr150_done
+ (rx145_rep) = rx145_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr150_done
+ rx145_cur."!mark_push"(rx145_rep, rx145_pos, $I10)
+ goto rxquantr150_loop
+ rxquantr150_done:
+ set_addr $I10, rxquantr149_done
+ (rx145_rep) = rx145_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr149_done
+ rx145_cur."!mark_push"(rx145_rep, rx145_pos, $I10)
+ # rx literal "_"
add $I11, rx145_pos, 1
gt $I11, rx145_eos, rx145_fail
sub $I11, rx145_pos, rx145_off
substr $S10, rx145_tgt, $I11, 1
- ne $S10, ",", rx145_fail
+ ne $S10, "_", rx145_fail
add rx145_pos, 1
goto rxquantr149_loop
rxquantr149_done:
# rx pass
- rx145_cur."!cursor_pass"(rx145_pos, "hexints")
- rx145_cur."!cursor_debug"("PASS ", "hexints", " at pos=", rx145_pos)
+ rx145_cur."!cursor_pass"(rx145_pos, "octint")
+ rx145_cur."!cursor_debug"("PASS ", "octint", " at pos=", rx145_pos)
.return (rx145_cur)
- rx145_fail:
+ rx145_restart:
.annotate 'line', 33
+ rx145_cur."!cursor_debug"("NEXT ", "octint")
+ rx145_fail:
(rx145_rep, rx145_pos, $I10, $P10) = rx145_cur."!mark_fail"(0)
lt rx145_pos, -1, rx145_done
eq rx145_pos, -1, rx145_fail
jump $I10
rx145_done:
rx145_cur."!cursor_fail"()
- rx145_cur."!cursor_debug"("FAIL ", "hexints")
+ rx145_cur."!cursor_debug"("FAIL ", "octint")
.return (rx145_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints" :subid("52_1275811471.14938") :method
+.sub "!PREFIX__octint" :subid("54_1280467467.13603") :method
.annotate 'line', 33
new $P147, "ResizablePMCArray"
push $P147, ""
@@ -2335,7 +2513,7 @@
.namespace ["HLL";"Grammar"]
-.sub "octint" :subid("53_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "octints" :subid("55_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
.local string rx152_tgt
.local int rx152_pos
@@ -2343,8 +2521,8 @@
.local int rx152_eos
.local int rx152_rep
.local pmc rx152_cur
- (rx152_cur, rx152_pos, rx152_tgt) = self."!cursor_start"()
- rx152_cur."!cursor_debug"("START ", "octint")
+ (rx152_cur, rx152_pos, rx152_tgt, $I10) = self."!cursor_start"()
+ rx152_cur."!cursor_caparray"("octint")
.lex unicode:"$\x{a2}", rx152_cur
.local pmc match
.lex "$/", match
@@ -2355,6 +2533,8 @@
sub rx152_off, rx152_pos, 1
substr rx152_tgt, rx152_tgt, rx152_off
rx152_start:
+ eq $I10, 1, rx152_restart
+ rx152_cur."!cursor_debug"("START ", "octints")
$I10 = self.'from'()
ne $I10, -1, rxscan155_done
goto rxscan155_scan
@@ -2367,57 +2547,63 @@
set_addr $I10, rxscan155_loop
rx152_cur."!mark_push"(0, rx152_pos, $I10)
rxscan155_done:
-.annotate 'line', 54
+.annotate 'line', 55
# rx rxquantr156 ** 1..*
- set_addr $I159, rxquantr156_done
- rx152_cur."!mark_push"(0, -1, $I159)
+ set_addr $I10, rxquantr156_done
+ rx152_cur."!mark_push"(0, -1, $I10)
rxquantr156_loop:
- # rx rxquantr157 ** 1..*
- set_addr $I158, rxquantr157_done
- rx152_cur."!mark_push"(0, -1, $I158)
- rxquantr157_loop:
- # rx enumcharlist negate=0
- ge rx152_pos, rx152_eos, rx152_fail
- sub $I10, rx152_pos, rx152_off
- substr $S10, rx152_tgt, $I10, 1
- index $I11, "01234567", $S10
- lt $I11, 0, rx152_fail
- inc rx152_pos
- (rx152_rep) = rx152_cur."!mark_commit"($I158)
- rx152_cur."!mark_push"(rx152_rep, rx152_pos, $I158)
- goto rxquantr157_loop
- rxquantr157_done:
- (rx152_rep) = rx152_cur."!mark_commit"($I159)
- rx152_cur."!mark_push"(rx152_rep, rx152_pos, $I159)
- # rx literal "_"
+ # rx subrule "ws" subtype=method negate=
+ rx152_cur."!cursor_pos"(rx152_pos)
+ $P10 = rx152_cur."ws"()
+ unless $P10, rx152_fail
+ rx152_pos = $P10."pos"()
+ # rx subrule "octint" subtype=capture negate=
+ rx152_cur."!cursor_pos"(rx152_pos)
+ $P10 = rx152_cur."octint"()
+ unless $P10, rx152_fail
+ rx152_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("octint")
+ rx152_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx152_cur."!cursor_pos"(rx152_pos)
+ $P10 = rx152_cur."ws"()
+ unless $P10, rx152_fail
+ rx152_pos = $P10."pos"()
+ set_addr $I10, rxquantr156_done
+ (rx152_rep) = rx152_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr156_done
+ rx152_cur."!mark_push"(rx152_rep, rx152_pos, $I10)
+ # rx literal ","
add $I11, rx152_pos, 1
gt $I11, rx152_eos, rx152_fail
sub $I11, rx152_pos, rx152_off
substr $S10, rx152_tgt, $I11, 1
- ne $S10, "_", rx152_fail
+ ne $S10, ",", rx152_fail
add rx152_pos, 1
goto rxquantr156_loop
rxquantr156_done:
# rx pass
- rx152_cur."!cursor_pass"(rx152_pos, "octint")
- rx152_cur."!cursor_debug"("PASS ", "octint", " at pos=", rx152_pos)
+ rx152_cur."!cursor_pass"(rx152_pos, "octints")
+ rx152_cur."!cursor_debug"("PASS ", "octints", " at pos=", rx152_pos)
.return (rx152_cur)
- rx152_fail:
+ rx152_restart:
.annotate 'line', 33
+ rx152_cur."!cursor_debug"("NEXT ", "octints")
+ rx152_fail:
(rx152_rep, rx152_pos, $I10, $P10) = rx152_cur."!mark_fail"(0)
lt rx152_pos, -1, rx152_done
eq rx152_pos, -1, rx152_fail
jump $I10
rx152_done:
rx152_cur."!cursor_fail"()
- rx152_cur."!cursor_debug"("FAIL ", "octint")
+ rx152_cur."!cursor_debug"("FAIL ", "octints")
.return (rx152_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint" :subid("54_1275811471.14938") :method
+.sub "!PREFIX__octints" :subid("56_1280467467.13603") :method
.annotate 'line', 33
new $P154, "ResizablePMCArray"
push $P154, ""
@@ -2426,2477 +2612,2477 @@
.namespace ["HLL";"Grammar"]
-.sub "octints" :subid("55_1275811471.14938") :method :outer("11_1275811471.14938")
-.annotate 'line', 33
- .local string rx161_tgt
- .local int rx161_pos
- .local int rx161_off
- .local int rx161_eos
- .local int rx161_rep
- .local pmc rx161_cur
- (rx161_cur, rx161_pos, rx161_tgt) = self."!cursor_start"()
- rx161_cur."!cursor_debug"("START ", "octints")
- rx161_cur."!cursor_caparray"("octint")
- .lex unicode:"$\x{a2}", rx161_cur
- .local pmc match
- .lex "$/", match
- length rx161_eos, rx161_tgt
- gt rx161_pos, rx161_eos, rx161_done
- set rx161_off, 0
- lt rx161_pos, 2, rx161_start
- sub rx161_off, rx161_pos, 1
- substr rx161_tgt, rx161_tgt, rx161_off
- rx161_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan164_done
- goto rxscan164_scan
- rxscan164_loop:
- ($P10) = rx161_cur."from"()
- inc $P10
- set rx161_pos, $P10
- ge rx161_pos, rx161_eos, rxscan164_done
- rxscan164_scan:
- set_addr $I10, rxscan164_loop
- rx161_cur."!mark_push"(0, rx161_pos, $I10)
- rxscan164_done:
-.annotate 'line', 55
- # rx rxquantr165 ** 1..*
- set_addr $I166, rxquantr165_done
- rx161_cur."!mark_push"(0, -1, $I166)
- rxquantr165_loop:
- # rx subrule "ws" subtype=method negate=
- rx161_cur."!cursor_pos"(rx161_pos)
- $P10 = rx161_cur."ws"()
- unless $P10, rx161_fail
- rx161_pos = $P10."pos"()
- # rx subrule "octint" subtype=capture negate=
- rx161_cur."!cursor_pos"(rx161_pos)
- $P10 = rx161_cur."octint"()
- unless $P10, rx161_fail
- rx161_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("octint")
- rx161_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx161_cur."!cursor_pos"(rx161_pos)
- $P10 = rx161_cur."ws"()
- unless $P10, rx161_fail
- rx161_pos = $P10."pos"()
- (rx161_rep) = rx161_cur."!mark_commit"($I166)
- rx161_cur."!mark_push"(rx161_rep, rx161_pos, $I166)
- # rx literal ","
- add $I11, rx161_pos, 1
- gt $I11, rx161_eos, rx161_fail
- sub $I11, rx161_pos, rx161_off
- substr $S10, rx161_tgt, $I11, 1
- ne $S10, ",", rx161_fail
- add rx161_pos, 1
- goto rxquantr165_loop
- rxquantr165_done:
- # rx pass
- rx161_cur."!cursor_pass"(rx161_pos, "octints")
- rx161_cur."!cursor_debug"("PASS ", "octints", " at pos=", rx161_pos)
- .return (rx161_cur)
- rx161_fail:
-.annotate 'line', 33
- (rx161_rep, rx161_pos, $I10, $P10) = rx161_cur."!mark_fail"(0)
- lt rx161_pos, -1, rx161_done
- eq rx161_pos, -1, rx161_fail
- jump $I10
- rx161_done:
- rx161_cur."!cursor_fail"()
- rx161_cur."!cursor_debug"("FAIL ", "octints")
- .return (rx161_cur)
- .return ()
-.end
-
-
-.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints" :subid("56_1275811471.14938") :method
-.annotate 'line', 33
- new $P163, "ResizablePMCArray"
- push $P163, ""
- .return ($P163)
-.end
-
-
-.namespace ["HLL";"Grammar"]
-.sub "binint" :subid("57_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "binint" :subid("57_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx168_tgt
- .local int rx168_pos
- .local int rx168_off
- .local int rx168_eos
- .local int rx168_rep
- .local pmc rx168_cur
- (rx168_cur, rx168_pos, rx168_tgt) = self."!cursor_start"()
- rx168_cur."!cursor_debug"("START ", "binint")
- .lex unicode:"$\x{a2}", rx168_cur
+ .local string rx158_tgt
+ .local int rx158_pos
+ .local int rx158_off
+ .local int rx158_eos
+ .local int rx158_rep
+ .local pmc rx158_cur
+ (rx158_cur, rx158_pos, rx158_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx158_cur
.local pmc match
.lex "$/", match
- length rx168_eos, rx168_tgt
- gt rx168_pos, rx168_eos, rx168_done
- set rx168_off, 0
- lt rx168_pos, 2, rx168_start
- sub rx168_off, rx168_pos, 1
- substr rx168_tgt, rx168_tgt, rx168_off
- rx168_start:
+ length rx158_eos, rx158_tgt
+ gt rx158_pos, rx158_eos, rx158_done
+ set rx158_off, 0
+ lt rx158_pos, 2, rx158_start
+ sub rx158_off, rx158_pos, 1
+ substr rx158_tgt, rx158_tgt, rx158_off
+ rx158_start:
+ eq $I10, 1, rx158_restart
+ rx158_cur."!cursor_debug"("START ", "binint")
$I10 = self.'from'()
- ne $I10, -1, rxscan171_done
- goto rxscan171_scan
- rxscan171_loop:
- ($P10) = rx168_cur."from"()
+ ne $I10, -1, rxscan161_done
+ goto rxscan161_scan
+ rxscan161_loop:
+ ($P10) = rx158_cur."from"()
inc $P10
- set rx168_pos, $P10
- ge rx168_pos, rx168_eos, rxscan171_done
- rxscan171_scan:
- set_addr $I10, rxscan171_loop
- rx168_cur."!mark_push"(0, rx168_pos, $I10)
- rxscan171_done:
+ set rx158_pos, $P10
+ ge rx158_pos, rx158_eos, rxscan161_done
+ rxscan161_scan:
+ set_addr $I10, rxscan161_loop
+ rx158_cur."!mark_push"(0, rx158_pos, $I10)
+ rxscan161_done:
.annotate 'line', 57
- # rx rxquantr172 ** 1..*
- set_addr $I175, rxquantr172_done
- rx168_cur."!mark_push"(0, -1, $I175)
- rxquantr172_loop:
- # rx rxquantr173 ** 1..*
- set_addr $I174, rxquantr173_done
- rx168_cur."!mark_push"(0, -1, $I174)
- rxquantr173_loop:
+ # rx rxquantr162 ** 1..*
+ set_addr $I10, rxquantr162_done
+ rx158_cur."!mark_push"(0, -1, $I10)
+ rxquantr162_loop:
+ # rx rxquantr163 ** 1..*
+ set_addr $I10, rxquantr163_done
+ rx158_cur."!mark_push"(0, -1, $I10)
+ rxquantr163_loop:
# rx enumcharlist negate=0
- ge rx168_pos, rx168_eos, rx168_fail
- sub $I10, rx168_pos, rx168_off
- substr $S10, rx168_tgt, $I10, 1
+ ge rx158_pos, rx158_eos, rx158_fail
+ sub $I10, rx158_pos, rx158_off
+ substr $S10, rx158_tgt, $I10, 1
index $I11, "01", $S10
- lt $I11, 0, rx168_fail
- inc rx168_pos
- (rx168_rep) = rx168_cur."!mark_commit"($I174)
- rx168_cur."!mark_push"(rx168_rep, rx168_pos, $I174)
- goto rxquantr173_loop
- rxquantr173_done:
- (rx168_rep) = rx168_cur."!mark_commit"($I175)
- rx168_cur."!mark_push"(rx168_rep, rx168_pos, $I175)
+ lt $I11, 0, rx158_fail
+ inc rx158_pos
+ set_addr $I10, rxquantr163_done
+ (rx158_rep) = rx158_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr163_done
+ rx158_cur."!mark_push"(rx158_rep, rx158_pos, $I10)
+ goto rxquantr163_loop
+ rxquantr163_done:
+ set_addr $I10, rxquantr162_done
+ (rx158_rep) = rx158_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr162_done
+ rx158_cur."!mark_push"(rx158_rep, rx158_pos, $I10)
# rx literal "_"
- add $I11, rx168_pos, 1
- gt $I11, rx168_eos, rx168_fail
- sub $I11, rx168_pos, rx168_off
- substr $S10, rx168_tgt, $I11, 1
- ne $S10, "_", rx168_fail
- add rx168_pos, 1
- goto rxquantr172_loop
- rxquantr172_done:
+ add $I11, rx158_pos, 1
+ gt $I11, rx158_eos, rx158_fail
+ sub $I11, rx158_pos, rx158_off
+ substr $S10, rx158_tgt, $I11, 1
+ ne $S10, "_", rx158_fail
+ add rx158_pos, 1
+ goto rxquantr162_loop
+ rxquantr162_done:
# rx pass
- rx168_cur."!cursor_pass"(rx168_pos, "binint")
- rx168_cur."!cursor_debug"("PASS ", "binint", " at pos=", rx168_pos)
- .return (rx168_cur)
- rx168_fail:
-.annotate 'line', 33
- (rx168_rep, rx168_pos, $I10, $P10) = rx168_cur."!mark_fail"(0)
- lt rx168_pos, -1, rx168_done
- eq rx168_pos, -1, rx168_fail
+ rx158_cur."!cursor_pass"(rx158_pos, "binint")
+ rx158_cur."!cursor_debug"("PASS ", "binint", " at pos=", rx158_pos)
+ .return (rx158_cur)
+ rx158_restart:
+.annotate 'line', 33
+ rx158_cur."!cursor_debug"("NEXT ", "binint")
+ rx158_fail:
+ (rx158_rep, rx158_pos, $I10, $P10) = rx158_cur."!mark_fail"(0)
+ lt rx158_pos, -1, rx158_done
+ eq rx158_pos, -1, rx158_fail
jump $I10
- rx168_done:
- rx168_cur."!cursor_fail"()
- rx168_cur."!cursor_debug"("FAIL ", "binint")
- .return (rx168_cur)
+ rx158_done:
+ rx158_cur."!cursor_fail"()
+ rx158_cur."!cursor_debug"("FAIL ", "binint")
+ .return (rx158_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint" :subid("58_1275811471.14938") :method
+.sub "!PREFIX__binint" :subid("58_1280467467.13603") :method
.annotate 'line', 33
- new $P170, "ResizablePMCArray"
- push $P170, ""
- .return ($P170)
+ new $P160, "ResizablePMCArray"
+ push $P160, ""
+ .return ($P160)
.end
.namespace ["HLL";"Grammar"]
-.sub "binints" :subid("59_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "binints" :subid("59_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx177_tgt
- .local int rx177_pos
- .local int rx177_off
- .local int rx177_eos
- .local int rx177_rep
- .local pmc rx177_cur
- (rx177_cur, rx177_pos, rx177_tgt) = self."!cursor_start"()
- rx177_cur."!cursor_debug"("START ", "binints")
- rx177_cur."!cursor_caparray"("binint")
- .lex unicode:"$\x{a2}", rx177_cur
+ .local string rx165_tgt
+ .local int rx165_pos
+ .local int rx165_off
+ .local int rx165_eos
+ .local int rx165_rep
+ .local pmc rx165_cur
+ (rx165_cur, rx165_pos, rx165_tgt, $I10) = self."!cursor_start"()
+ rx165_cur."!cursor_caparray"("binint")
+ .lex unicode:"$\x{a2}", rx165_cur
.local pmc match
.lex "$/", match
- length rx177_eos, rx177_tgt
- gt rx177_pos, rx177_eos, rx177_done
- set rx177_off, 0
- lt rx177_pos, 2, rx177_start
- sub rx177_off, rx177_pos, 1
- substr rx177_tgt, rx177_tgt, rx177_off
- rx177_start:
+ length rx165_eos, rx165_tgt
+ gt rx165_pos, rx165_eos, rx165_done
+ set rx165_off, 0
+ lt rx165_pos, 2, rx165_start
+ sub rx165_off, rx165_pos, 1
+ substr rx165_tgt, rx165_tgt, rx165_off
+ rx165_start:
+ eq $I10, 1, rx165_restart
+ rx165_cur."!cursor_debug"("START ", "binints")
$I10 = self.'from'()
- ne $I10, -1, rxscan180_done
- goto rxscan180_scan
- rxscan180_loop:
- ($P10) = rx177_cur."from"()
+ ne $I10, -1, rxscan168_done
+ goto rxscan168_scan
+ rxscan168_loop:
+ ($P10) = rx165_cur."from"()
inc $P10
- set rx177_pos, $P10
- ge rx177_pos, rx177_eos, rxscan180_done
- rxscan180_scan:
- set_addr $I10, rxscan180_loop
- rx177_cur."!mark_push"(0, rx177_pos, $I10)
- rxscan180_done:
+ set rx165_pos, $P10
+ ge rx165_pos, rx165_eos, rxscan168_done
+ rxscan168_scan:
+ set_addr $I10, rxscan168_loop
+ rx165_cur."!mark_push"(0, rx165_pos, $I10)
+ rxscan168_done:
.annotate 'line', 58
- # rx rxquantr181 ** 1..*
- set_addr $I182, rxquantr181_done
- rx177_cur."!mark_push"(0, -1, $I182)
- rxquantr181_loop:
+ # rx rxquantr169 ** 1..*
+ set_addr $I10, rxquantr169_done
+ rx165_cur."!mark_push"(0, -1, $I10)
+ rxquantr169_loop:
# rx subrule "ws" subtype=method negate=
- rx177_cur."!cursor_pos"(rx177_pos)
- $P10 = rx177_cur."ws"()
- unless $P10, rx177_fail
- rx177_pos = $P10."pos"()
+ rx165_cur."!cursor_pos"(rx165_pos)
+ $P10 = rx165_cur."ws"()
+ unless $P10, rx165_fail
+ rx165_pos = $P10."pos"()
# rx subrule "binint" subtype=capture negate=
- rx177_cur."!cursor_pos"(rx177_pos)
- $P10 = rx177_cur."binint"()
- unless $P10, rx177_fail
- rx177_cur."!mark_push"(0, -1, 0, $P10)
+ rx165_cur."!cursor_pos"(rx165_pos)
+ $P10 = rx165_cur."binint"()
+ unless $P10, rx165_fail
+ rx165_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("binint")
- rx177_pos = $P10."pos"()
+ rx165_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx177_cur."!cursor_pos"(rx177_pos)
- $P10 = rx177_cur."ws"()
- unless $P10, rx177_fail
- rx177_pos = $P10."pos"()
- (rx177_rep) = rx177_cur."!mark_commit"($I182)
- rx177_cur."!mark_push"(rx177_rep, rx177_pos, $I182)
+ rx165_cur."!cursor_pos"(rx165_pos)
+ $P10 = rx165_cur."ws"()
+ unless $P10, rx165_fail
+ rx165_pos = $P10."pos"()
+ set_addr $I10, rxquantr169_done
+ (rx165_rep) = rx165_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr169_done
+ rx165_cur."!mark_push"(rx165_rep, rx165_pos, $I10)
# rx literal ","
- add $I11, rx177_pos, 1
- gt $I11, rx177_eos, rx177_fail
- sub $I11, rx177_pos, rx177_off
- substr $S10, rx177_tgt, $I11, 1
- ne $S10, ",", rx177_fail
- add rx177_pos, 1
- goto rxquantr181_loop
- rxquantr181_done:
+ add $I11, rx165_pos, 1
+ gt $I11, rx165_eos, rx165_fail
+ sub $I11, rx165_pos, rx165_off
+ substr $S10, rx165_tgt, $I11, 1
+ ne $S10, ",", rx165_fail
+ add rx165_pos, 1
+ goto rxquantr169_loop
+ rxquantr169_done:
# rx pass
- rx177_cur."!cursor_pass"(rx177_pos, "binints")
- rx177_cur."!cursor_debug"("PASS ", "binints", " at pos=", rx177_pos)
- .return (rx177_cur)
- rx177_fail:
-.annotate 'line', 33
- (rx177_rep, rx177_pos, $I10, $P10) = rx177_cur."!mark_fail"(0)
- lt rx177_pos, -1, rx177_done
- eq rx177_pos, -1, rx177_fail
+ rx165_cur."!cursor_pass"(rx165_pos, "binints")
+ rx165_cur."!cursor_debug"("PASS ", "binints", " at pos=", rx165_pos)
+ .return (rx165_cur)
+ rx165_restart:
+.annotate 'line', 33
+ rx165_cur."!cursor_debug"("NEXT ", "binints")
+ rx165_fail:
+ (rx165_rep, rx165_pos, $I10, $P10) = rx165_cur."!mark_fail"(0)
+ lt rx165_pos, -1, rx165_done
+ eq rx165_pos, -1, rx165_fail
jump $I10
- rx177_done:
- rx177_cur."!cursor_fail"()
- rx177_cur."!cursor_debug"("FAIL ", "binints")
- .return (rx177_cur)
+ rx165_done:
+ rx165_cur."!cursor_fail"()
+ rx165_cur."!cursor_debug"("FAIL ", "binints")
+ .return (rx165_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints" :subid("60_1275811471.14938") :method
+.sub "!PREFIX__binints" :subid("60_1280467467.13603") :method
.annotate 'line', 33
- new $P179, "ResizablePMCArray"
- push $P179, ""
- .return ($P179)
+ new $P167, "ResizablePMCArray"
+ push $P167, ""
+ .return ($P167)
.end
.namespace ["HLL";"Grammar"]
-.sub "integer" :subid("61_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "integer" :subid("61_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx184_tgt
- .local int rx184_pos
- .local int rx184_off
- .local int rx184_eos
- .local int rx184_rep
- .local pmc rx184_cur
- (rx184_cur, rx184_pos, rx184_tgt) = self."!cursor_start"()
- rx184_cur."!cursor_debug"("START ", "integer")
- .lex unicode:"$\x{a2}", rx184_cur
+ .local string rx171_tgt
+ .local int rx171_pos
+ .local int rx171_off
+ .local int rx171_eos
+ .local int rx171_rep
+ .local pmc rx171_cur
+ (rx171_cur, rx171_pos, rx171_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx171_cur
.local pmc match
.lex "$/", match
- length rx184_eos, rx184_tgt
- gt rx184_pos, rx184_eos, rx184_done
- set rx184_off, 0
- lt rx184_pos, 2, rx184_start
- sub rx184_off, rx184_pos, 1
- substr rx184_tgt, rx184_tgt, rx184_off
- rx184_start:
+ length rx171_eos, rx171_tgt
+ gt rx171_pos, rx171_eos, rx171_done
+ set rx171_off, 0
+ lt rx171_pos, 2, rx171_start
+ sub rx171_off, rx171_pos, 1
+ substr rx171_tgt, rx171_tgt, rx171_off
+ rx171_start:
+ eq $I10, 1, rx171_restart
+ rx171_cur."!cursor_debug"("START ", "integer")
$I10 = self.'from'()
- ne $I10, -1, rxscan192_done
- goto rxscan192_scan
- rxscan192_loop:
- ($P10) = rx184_cur."from"()
+ ne $I10, -1, rxscan179_done
+ goto rxscan179_scan
+ rxscan179_loop:
+ ($P10) = rx171_cur."from"()
inc $P10
- set rx184_pos, $P10
- ge rx184_pos, rx184_eos, rxscan192_done
- rxscan192_scan:
- set_addr $I10, rxscan192_loop
- rx184_cur."!mark_push"(0, rx184_pos, $I10)
- rxscan192_done:
- alt193_0:
+ set rx171_pos, $P10
+ ge rx171_pos, rx171_eos, rxscan179_done
+ rxscan179_scan:
+ set_addr $I10, rxscan179_loop
+ rx171_cur."!mark_push"(0, rx171_pos, $I10)
+ rxscan179_done:
+ alt180_0:
.annotate 'line', 61
- set_addr $I10, alt193_1
- rx184_cur."!mark_push"(0, rx184_pos, $I10)
+ set_addr $I10, alt180_1
+ rx171_cur."!mark_push"(0, rx171_pos, $I10)
.annotate 'line', 62
# rx literal "0"
- add $I11, rx184_pos, 1
- gt $I11, rx184_eos, rx184_fail
- sub $I11, rx184_pos, rx184_off
- substr $S10, rx184_tgt, $I11, 1
- ne $S10, "0", rx184_fail
- add rx184_pos, 1
- alt194_0:
- set_addr $I10, alt194_1
- rx184_cur."!mark_push"(0, rx184_pos, $I10)
+ add $I11, rx171_pos, 1
+ gt $I11, rx171_eos, rx171_fail
+ sub $I11, rx171_pos, rx171_off
+ substr $S10, rx171_tgt, $I11, 1
+ ne $S10, "0", rx171_fail
+ add rx171_pos, 1
+ alt181_0:
+ set_addr $I10, alt181_1
+ rx171_cur."!mark_push"(0, rx171_pos, $I10)
# rx literal "b"
- add $I11, rx184_pos, 1
- gt $I11, rx184_eos, rx184_fail
- sub $I11, rx184_pos, rx184_off
- substr $S10, rx184_tgt, $I11, 1
- ne $S10, "b", rx184_fail
- add rx184_pos, 1
+ add $I11, rx171_pos, 1
+ gt $I11, rx171_eos, rx171_fail
+ sub $I11, rx171_pos, rx171_off
+ substr $S10, rx171_tgt, $I11, 1
+ ne $S10, "b", rx171_fail
+ add rx171_pos, 1
# rx subrule "binint" subtype=capture negate=
- rx184_cur."!cursor_pos"(rx184_pos)
- $P10 = rx184_cur."binint"()
- unless $P10, rx184_fail
- rx184_cur."!mark_push"(0, -1, 0, $P10)
+ rx171_cur."!cursor_pos"(rx171_pos)
+ $P10 = rx171_cur."binint"()
+ unless $P10, rx171_fail
+ rx171_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("VALUE=binint")
- rx184_pos = $P10."pos"()
- goto alt194_end
- alt194_1:
- set_addr $I10, alt194_2
- rx184_cur."!mark_push"(0, rx184_pos, $I10)
+ rx171_pos = $P10."pos"()
+ goto alt181_end
+ alt181_1:
+ set_addr $I10, alt181_2
+ rx171_cur."!mark_push"(0, rx171_pos, $I10)
.annotate 'line', 63
# rx literal "o"
- add $I11, rx184_pos, 1
- gt $I11, rx184_eos, rx184_fail
- sub $I11, rx184_pos, rx184_off
- substr $S10, rx184_tgt, $I11, 1
- ne $S10, "o", rx184_fail
- add rx184_pos, 1
+ add $I11, rx171_pos, 1
+ gt $I11, rx171_eos, rx171_fail
+ sub $I11, rx171_pos, rx171_off
+ substr $S10, rx171_tgt, $I11, 1
+ ne $S10, "o", rx171_fail
+ add rx171_pos, 1
# rx subrule "octint" subtype=capture negate=
- rx184_cur."!cursor_pos"(rx184_pos)
- $P10 = rx184_cur."octint"()
- unless $P10, rx184_fail
- rx184_cur."!mark_push"(0, -1, 0, $P10)
+ rx171_cur."!cursor_pos"(rx171_pos)
+ $P10 = rx171_cur."octint"()
+ unless $P10, rx171_fail
+ rx171_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("VALUE=octint")
- rx184_pos = $P10."pos"()
- goto alt194_end
- alt194_2:
- set_addr $I10, alt194_3
- rx184_cur."!mark_push"(0, rx184_pos, $I10)
+ rx171_pos = $P10."pos"()
+ goto alt181_end
+ alt181_2:
+ set_addr $I10, alt181_3
+ rx171_cur."!mark_push"(0, rx171_pos, $I10)
.annotate 'line', 64
# rx literal "x"
- add $I11, rx184_pos, 1
- gt $I11, rx184_eos, rx184_fail
- sub $I11, rx184_pos, rx184_off
- substr $S10, rx184_tgt, $I11, 1
- ne $S10, "x", rx184_fail
- add rx184_pos, 1
+ add $I11, rx171_pos, 1
+ gt $I11, rx171_eos, rx171_fail
+ sub $I11, rx171_pos, rx171_off
+ substr $S10, rx171_tgt, $I11, 1
+ ne $S10, "x", rx171_fail
+ add rx171_pos, 1
# rx subrule "hexint" subtype=capture negate=
- rx184_cur."!cursor_pos"(rx184_pos)
- $P10 = rx184_cur."hexint"()
- unless $P10, rx184_fail
- rx184_cur."!mark_push"(0, -1, 0, $P10)
+ rx171_cur."!cursor_pos"(rx171_pos)
+ $P10 = rx171_cur."hexint"()
+ unless $P10, rx171_fail
+ rx171_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("VALUE=hexint")
- rx184_pos = $P10."pos"()
- goto alt194_end
- alt194_3:
+ rx171_pos = $P10."pos"()
+ goto alt181_end
+ alt181_3:
.annotate 'line', 65
# rx literal "d"
- add $I11, rx184_pos, 1
- gt $I11, rx184_eos, rx184_fail
- sub $I11, rx184_pos, rx184_off
- substr $S10, rx184_tgt, $I11, 1
- ne $S10, "d", rx184_fail
- add rx184_pos, 1
+ add $I11, rx171_pos, 1
+ gt $I11, rx171_eos, rx171_fail
+ sub $I11, rx171_pos, rx171_off
+ substr $S10, rx171_tgt, $I11, 1
+ ne $S10, "d", rx171_fail
+ add rx171_pos, 1
# rx subrule "decint" subtype=capture negate=
- rx184_cur."!cursor_pos"(rx184_pos)
- $P10 = rx184_cur."decint"()
- unless $P10, rx184_fail
- rx184_cur."!mark_push"(0, -1, 0, $P10)
+ rx171_cur."!cursor_pos"(rx171_pos)
+ $P10 = rx171_cur."decint"()
+ unless $P10, rx171_fail
+ rx171_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("VALUE=decint")
- rx184_pos = $P10."pos"()
- alt194_end:
+ rx171_pos = $P10."pos"()
+ alt181_end:
.annotate 'line', 62
- goto alt193_end
- alt193_1:
+ goto alt180_end
+ alt180_1:
.annotate 'line', 67
# rx subrule "decint" subtype=capture negate=
- rx184_cur."!cursor_pos"(rx184_pos)
- $P10 = rx184_cur."decint"()
- unless $P10, rx184_fail
- rx184_cur."!mark_push"(0, -1, 0, $P10)
+ rx171_cur."!cursor_pos"(rx171_pos)
+ $P10 = rx171_cur."decint"()
+ unless $P10, rx171_fail
+ rx171_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("VALUE=decint")
- rx184_pos = $P10."pos"()
- alt193_end:
+ rx171_pos = $P10."pos"()
+ alt180_end:
.annotate 'line', 60
# rx pass
- rx184_cur."!cursor_pass"(rx184_pos, "integer")
- rx184_cur."!cursor_debug"("PASS ", "integer", " at pos=", rx184_pos)
- .return (rx184_cur)
- rx184_fail:
-.annotate 'line', 33
- (rx184_rep, rx184_pos, $I10, $P10) = rx184_cur."!mark_fail"(0)
- lt rx184_pos, -1, rx184_done
- eq rx184_pos, -1, rx184_fail
+ rx171_cur."!cursor_pass"(rx171_pos, "integer")
+ rx171_cur."!cursor_debug"("PASS ", "integer", " at pos=", rx171_pos)
+ .return (rx171_cur)
+ rx171_restart:
+.annotate 'line', 33
+ rx171_cur."!cursor_debug"("NEXT ", "integer")
+ rx171_fail:
+ (rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0)
+ lt rx171_pos, -1, rx171_done
+ eq rx171_pos, -1, rx171_fail
jump $I10
- rx184_done:
- rx184_cur."!cursor_fail"()
- rx184_cur."!cursor_debug"("FAIL ", "integer")
- .return (rx184_cur)
+ rx171_done:
+ rx171_cur."!cursor_fail"()
+ rx171_cur."!cursor_debug"("FAIL ", "integer")
+ .return (rx171_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer" :subid("62_1275811471.14938") :method
+.sub "!PREFIX__integer" :subid("62_1280467467.13603") :method
.annotate 'line', 33
- $P186 = self."!PREFIX__!subrule"("decint", "")
- $P187 = self."!PREFIX__!subrule"("decint", "0d")
- $P188 = self."!PREFIX__!subrule"("hexint", "0x")
- $P189 = self."!PREFIX__!subrule"("octint", "0o")
- $P190 = self."!PREFIX__!subrule"("binint", "0b")
- new $P191, "ResizablePMCArray"
- push $P191, $P186
- push $P191, $P187
- push $P191, $P188
- push $P191, $P189
- push $P191, $P190
- .return ($P191)
+ $P173 = self."!PREFIX__!subrule"("decint", "")
+ $P174 = self."!PREFIX__!subrule"("decint", "0d")
+ $P175 = self."!PREFIX__!subrule"("hexint", "0x")
+ $P176 = self."!PREFIX__!subrule"("octint", "0o")
+ $P177 = self."!PREFIX__!subrule"("binint", "0b")
+ new $P178, "ResizablePMCArray"
+ push $P178, $P173
+ push $P178, $P174
+ push $P178, $P175
+ push $P178, $P176
+ push $P178, $P177
+ .return ($P178)
.end
.namespace ["HLL";"Grammar"]
-.sub "dec_number" :subid("63_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "dec_number" :subid("63_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx196_tgt
- .local int rx196_pos
- .local int rx196_off
- .local int rx196_eos
- .local int rx196_rep
- .local pmc rx196_cur
- (rx196_cur, rx196_pos, rx196_tgt) = self."!cursor_start"()
- rx196_cur."!cursor_debug"("START ", "dec_number")
- rx196_cur."!cursor_caparray"("escale")
- .lex unicode:"$\x{a2}", rx196_cur
+ .local string rx183_tgt
+ .local int rx183_pos
+ .local int rx183_off
+ .local int rx183_eos
+ .local int rx183_rep
+ .local pmc rx183_cur
+ (rx183_cur, rx183_pos, rx183_tgt, $I10) = self."!cursor_start"()
+ rx183_cur."!cursor_caparray"("escale")
+ .lex unicode:"$\x{a2}", rx183_cur
.local pmc match
.lex "$/", match
- length rx196_eos, rx196_tgt
- gt rx196_pos, rx196_eos, rx196_done
- set rx196_off, 0
- lt rx196_pos, 2, rx196_start
- sub rx196_off, rx196_pos, 1
- substr rx196_tgt, rx196_tgt, rx196_off
- rx196_start:
+ length rx183_eos, rx183_tgt
+ gt rx183_pos, rx183_eos, rx183_done
+ set rx183_off, 0
+ lt rx183_pos, 2, rx183_start
+ sub rx183_off, rx183_pos, 1
+ substr rx183_tgt, rx183_tgt, rx183_off
+ rx183_start:
+ eq $I10, 1, rx183_restart
+ rx183_cur."!cursor_debug"("START ", "dec_number")
$I10 = self.'from'()
- ne $I10, -1, rxscan199_done
- goto rxscan199_scan
- rxscan199_loop:
- ($P10) = rx196_cur."from"()
+ ne $I10, -1, rxscan186_done
+ goto rxscan186_scan
+ rxscan186_loop:
+ ($P10) = rx183_cur."from"()
inc $P10
- set rx196_pos, $P10
- ge rx196_pos, rx196_eos, rxscan199_done
- rxscan199_scan:
- set_addr $I10, rxscan199_loop
- rx196_cur."!mark_push"(0, rx196_pos, $I10)
- rxscan199_done:
- alt200_0:
+ set rx183_pos, $P10
+ ge rx183_pos, rx183_eos, rxscan186_done
+ rxscan186_scan:
+ set_addr $I10, rxscan186_loop
+ rx183_cur."!mark_push"(0, rx183_pos, $I10)
+ rxscan186_done:
+ alt187_0:
.annotate 'line', 71
- set_addr $I10, alt200_1
- rx196_cur."!mark_push"(0, rx196_pos, $I10)
+ set_addr $I10, alt187_1
+ rx183_cur."!mark_push"(0, rx183_pos, $I10)
.annotate 'line', 72
# rx subcapture "coeff"
- set_addr $I10, rxcap_201_fail
- rx196_cur."!mark_push"(0, rx196_pos, $I10)
+ set_addr $I10, rxcap_188_fail
+ rx183_cur."!mark_push"(0, rx183_pos, $I10)
# rx literal "."
- add $I11, rx196_pos, 1
- gt $I11, rx196_eos, rx196_fail
- sub $I11, rx196_pos, rx196_off
- substr $S10, rx196_tgt, $I11, 1
- ne $S10, ".", rx196_fail
- add rx196_pos, 1
+ add $I11, rx183_pos, 1
+ gt $I11, rx183_eos, rx183_fail
+ sub $I11, rx183_pos, rx183_off
+ substr $S10, rx183_tgt, $I11, 1
+ ne $S10, ".", rx183_fail
+ add rx183_pos, 1
# rx charclass_q d r 1..-1
- sub $I10, rx196_pos, rx196_off
- find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos
+ sub $I10, rx183_pos, rx183_off
+ find_not_cclass $I11, 8, rx183_tgt, $I10, rx183_eos
add $I12, $I10, 1
- lt $I11, $I12, rx196_fail
- add rx196_pos, rx196_off, $I11
- set_addr $I10, rxcap_201_fail
- ($I12, $I11) = rx196_cur."!mark_peek"($I10)
- rx196_cur."!cursor_pos"($I11)
- ($P10) = rx196_cur."!cursor_start"()
- $P10."!cursor_pass"(rx196_pos, "")
- rx196_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, rx183_fail
+ add rx183_pos, rx183_off, $I11
+ set_addr $I10, rxcap_188_fail
+ ($I12, $I11) = rx183_cur."!mark_peek"($I10)
+ rx183_cur."!cursor_pos"($I11)
+ ($P10) = rx183_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx183_pos, "")
+ rx183_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("coeff")
- goto rxcap_201_done
- rxcap_201_fail:
- goto rx196_fail
- rxcap_201_done:
- # rx rxquantr202 ** 0..1
- set_addr $I203, rxquantr202_done
- rx196_cur."!mark_push"(0, rx196_pos, $I203)
- rxquantr202_loop:
+ goto rxcap_188_done
+ rxcap_188_fail:
+ goto rx183_fail
+ rxcap_188_done:
+ # rx rxquantr189 ** 0..1
+ set_addr $I10, rxquantr189_done
+ rx183_cur."!mark_push"(0, rx183_pos, $I10)
+ rxquantr189_loop:
# rx subrule "escale" subtype=capture negate=
- rx196_cur."!cursor_pos"(rx196_pos)
- $P10 = rx196_cur."escale"()
- unless $P10, rx196_fail
- rx196_cur."!mark_push"(0, -1, 0, $P10)
+ rx183_cur."!cursor_pos"(rx183_pos)
+ $P10 = rx183_cur."escale"()
+ unless $P10, rx183_fail
+ goto rxsubrule190_pass
+ rxsubrule190_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx183_fail
+ rxsubrule190_pass:
+ set_addr $I10, rxsubrule190_back
+ rx183_cur."!mark_push"(0, rx183_pos, $I10, $P10)
$P10."!cursor_names"("escale")
- rx196_pos = $P10."pos"()
- (rx196_rep) = rx196_cur."!mark_commit"($I203)
- rxquantr202_done:
- goto alt200_end
- alt200_1:
- set_addr $I10, alt200_2
- rx196_cur."!mark_push"(0, rx196_pos, $I10)
+ rx183_pos = $P10."pos"()
+ set_addr $I10, rxquantr189_done
+ (rx183_rep) = rx183_cur."!mark_commit"($I10)
+ rxquantr189_done:
+ goto alt187_end
+ alt187_1:
+ set_addr $I10, alt187_2
+ rx183_cur."!mark_push"(0, rx183_pos, $I10)
.annotate 'line', 73
# rx subcapture "coeff"
- set_addr $I10, rxcap_204_fail
- rx196_cur."!mark_push"(0, rx196_pos, $I10)
+ set_addr $I10, rxcap_191_fail
+ rx183_cur."!mark_push"(0, rx183_pos, $I10)
# rx charclass_q d r 1..-1
- sub $I10, rx196_pos, rx196_off
- find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos
+ sub $I10, rx183_pos, rx183_off
+ find_not_cclass $I11, 8, rx183_tgt, $I10, rx183_eos
add $I12, $I10, 1
- lt $I11, $I12, rx196_fail
- add rx196_pos, rx196_off, $I11
+ lt $I11, $I12, rx183_fail
+ add rx183_pos, rx183_off, $I11
# rx literal "."
- add $I11, rx196_pos, 1
- gt $I11, rx196_eos, rx196_fail
- sub $I11, rx196_pos, rx196_off
- substr $S10, rx196_tgt, $I11, 1
- ne $S10, ".", rx196_fail
- add rx196_pos, 1
+ add $I11, rx183_pos, 1
+ gt $I11, rx183_eos, rx183_fail
+ sub $I11, rx183_pos, rx183_off
+ substr $S10, rx183_tgt, $I11, 1
+ ne $S10, ".", rx183_fail
+ add rx183_pos, 1
# rx charclass_q d r 1..-1
- sub $I10, rx196_pos, rx196_off
- find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos
+ sub $I10, rx183_pos, rx183_off
+ find_not_cclass $I11, 8, rx183_tgt, $I10, rx183_eos
add $I12, $I10, 1
- lt $I11, $I12, rx196_fail
- add rx196_pos, rx196_off, $I11
- set_addr $I10, rxcap_204_fail
- ($I12, $I11) = rx196_cur."!mark_peek"($I10)
- rx196_cur."!cursor_pos"($I11)
- ($P10) = rx196_cur."!cursor_start"()
- $P10."!cursor_pass"(rx196_pos, "")
- rx196_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, rx183_fail
+ add rx183_pos, rx183_off, $I11
+ set_addr $I10, rxcap_191_fail
+ ($I12, $I11) = rx183_cur."!mark_peek"($I10)
+ rx183_cur."!cursor_pos"($I11)
+ ($P10) = rx183_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx183_pos, "")
+ rx183_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("coeff")
- goto rxcap_204_done
- rxcap_204_fail:
- goto rx196_fail
- rxcap_204_done:
- # rx rxquantr205 ** 0..1
- set_addr $I206, rxquantr205_done
- rx196_cur."!mark_push"(0, rx196_pos, $I206)
- rxquantr205_loop:
+ goto rxcap_191_done
+ rxcap_191_fail:
+ goto rx183_fail
+ rxcap_191_done:
+ # rx rxquantr192 ** 0..1
+ set_addr $I10, rxquantr192_done
+ rx183_cur."!mark_push"(0, rx183_pos, $I10)
+ rxquantr192_loop:
# rx subrule "escale" subtype=capture negate=
- rx196_cur."!cursor_pos"(rx196_pos)
- $P10 = rx196_cur."escale"()
- unless $P10, rx196_fail
- rx196_cur."!mark_push"(0, -1, 0, $P10)
+ rx183_cur."!cursor_pos"(rx183_pos)
+ $P10 = rx183_cur."escale"()
+ unless $P10, rx183_fail
+ goto rxsubrule193_pass
+ rxsubrule193_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx183_fail
+ rxsubrule193_pass:
+ set_addr $I10, rxsubrule193_back
+ rx183_cur."!mark_push"(0, rx183_pos, $I10, $P10)
$P10."!cursor_names"("escale")
- rx196_pos = $P10."pos"()
- (rx196_rep) = rx196_cur."!mark_commit"($I206)
- rxquantr205_done:
- goto alt200_end
- alt200_2:
+ rx183_pos = $P10."pos"()
+ set_addr $I10, rxquantr192_done
+ (rx183_rep) = rx183_cur."!mark_commit"($I10)
+ rxquantr192_done:
+ goto alt187_end
+ alt187_2:
.annotate 'line', 74
# rx subcapture "coeff"
- set_addr $I10, rxcap_207_fail
- rx196_cur."!mark_push"(0, rx196_pos, $I10)
+ set_addr $I10, rxcap_194_fail
+ rx183_cur."!mark_push"(0, rx183_pos, $I10)
# rx charclass_q d r 1..-1
- sub $I10, rx196_pos, rx196_off
- find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos
+ sub $I10, rx183_pos, rx183_off
+ find_not_cclass $I11, 8, rx183_tgt, $I10, rx183_eos
add $I12, $I10, 1
- lt $I11, $I12, rx196_fail
- add rx196_pos, rx196_off, $I11
- set_addr $I10, rxcap_207_fail
- ($I12, $I11) = rx196_cur."!mark_peek"($I10)
- rx196_cur."!cursor_pos"($I11)
- ($P10) = rx196_cur."!cursor_start"()
- $P10."!cursor_pass"(rx196_pos, "")
- rx196_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, rx183_fail
+ add rx183_pos, rx183_off, $I11
+ set_addr $I10, rxcap_194_fail
+ ($I12, $I11) = rx183_cur."!mark_peek"($I10)
+ rx183_cur."!cursor_pos"($I11)
+ ($P10) = rx183_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx183_pos, "")
+ rx183_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("coeff")
- goto rxcap_207_done
- rxcap_207_fail:
- goto rx196_fail
- rxcap_207_done:
+ goto rxcap_194_done
+ rxcap_194_fail:
+ goto rx183_fail
+ rxcap_194_done:
# rx subrule "escale" subtype=capture negate=
- rx196_cur."!cursor_pos"(rx196_pos)
- $P10 = rx196_cur."escale"()
- unless $P10, rx196_fail
- rx196_cur."!mark_push"(0, -1, 0, $P10)
+ rx183_cur."!cursor_pos"(rx183_pos)
+ $P10 = rx183_cur."escale"()
+ unless $P10, rx183_fail
+ rx183_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("escale")
- rx196_pos = $P10."pos"()
- alt200_end:
+ rx183_pos = $P10."pos"()
+ alt187_end:
.annotate 'line', 71
# rx pass
- rx196_cur."!cursor_pass"(rx196_pos, "dec_number")
- rx196_cur."!cursor_debug"("PASS ", "dec_number", " at pos=", rx196_pos)
- .return (rx196_cur)
- rx196_fail:
-.annotate 'line', 33
- (rx196_rep, rx196_pos, $I10, $P10) = rx196_cur."!mark_fail"(0)
- lt rx196_pos, -1, rx196_done
- eq rx196_pos, -1, rx196_fail
+ rx183_cur."!cursor_pass"(rx183_pos, "dec_number")
+ rx183_cur."!cursor_debug"("PASS ", "dec_number", " at pos=", rx183_pos)
+ .return (rx183_cur)
+ rx183_restart:
+.annotate 'line', 33
+ rx183_cur."!cursor_debug"("NEXT ", "dec_number")
+ rx183_fail:
+ (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0)
+ lt rx183_pos, -1, rx183_done
+ eq rx183_pos, -1, rx183_fail
jump $I10
- rx196_done:
- rx196_cur."!cursor_fail"()
- rx196_cur."!cursor_debug"("FAIL ", "dec_number")
- .return (rx196_cur)
+ rx183_done:
+ rx183_cur."!cursor_fail"()
+ rx183_cur."!cursor_debug"("FAIL ", "dec_number")
+ .return (rx183_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number" :subid("64_1275811471.14938") :method
+.sub "!PREFIX__dec_number" :subid("64_1280467467.13603") :method
.annotate 'line', 33
- new $P198, "ResizablePMCArray"
- push $P198, ""
- push $P198, ""
- push $P198, "."
- .return ($P198)
+ new $P185, "ResizablePMCArray"
+ push $P185, ""
+ push $P185, ""
+ push $P185, "."
+ .return ($P185)
.end
.namespace ["HLL";"Grammar"]
-.sub "escale" :subid("65_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "escale" :subid("65_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx209_tgt
- .local int rx209_pos
- .local int rx209_off
- .local int rx209_eos
- .local int rx209_rep
- .local pmc rx209_cur
- (rx209_cur, rx209_pos, rx209_tgt) = self."!cursor_start"()
- rx209_cur."!cursor_debug"("START ", "escale")
- .lex unicode:"$\x{a2}", rx209_cur
+ .local string rx196_tgt
+ .local int rx196_pos
+ .local int rx196_off
+ .local int rx196_eos
+ .local int rx196_rep
+ .local pmc rx196_cur
+ (rx196_cur, rx196_pos, rx196_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx196_cur
.local pmc match
.lex "$/", match
- length rx209_eos, rx209_tgt
- gt rx209_pos, rx209_eos, rx209_done
- set rx209_off, 0
- lt rx209_pos, 2, rx209_start
- sub rx209_off, rx209_pos, 1
- substr rx209_tgt, rx209_tgt, rx209_off
- rx209_start:
+ length rx196_eos, rx196_tgt
+ gt rx196_pos, rx196_eos, rx196_done
+ set rx196_off, 0
+ lt rx196_pos, 2, rx196_start
+ sub rx196_off, rx196_pos, 1
+ substr rx196_tgt, rx196_tgt, rx196_off
+ rx196_start:
+ eq $I10, 1, rx196_restart
+ rx196_cur."!cursor_debug"("START ", "escale")
$I10 = self.'from'()
- ne $I10, -1, rxscan212_done
- goto rxscan212_scan
- rxscan212_loop:
- ($P10) = rx209_cur."from"()
+ ne $I10, -1, rxscan199_done
+ goto rxscan199_scan
+ rxscan199_loop:
+ ($P10) = rx196_cur."from"()
inc $P10
- set rx209_pos, $P10
- ge rx209_pos, rx209_eos, rxscan212_done
- rxscan212_scan:
- set_addr $I10, rxscan212_loop
- rx209_cur."!mark_push"(0, rx209_pos, $I10)
- rxscan212_done:
+ set rx196_pos, $P10
+ ge rx196_pos, rx196_eos, rxscan199_done
+ rxscan199_scan:
+ set_addr $I10, rxscan199_loop
+ rx196_cur."!mark_push"(0, rx196_pos, $I10)
+ rxscan199_done:
.annotate 'line', 77
# rx enumcharlist negate=0
- ge rx209_pos, rx209_eos, rx209_fail
- sub $I10, rx209_pos, rx209_off
- substr $S10, rx209_tgt, $I10, 1
+ ge rx196_pos, rx196_eos, rx196_fail
+ sub $I10, rx196_pos, rx196_off
+ substr $S10, rx196_tgt, $I10, 1
index $I11, "Ee", $S10
- lt $I11, 0, rx209_fail
- inc rx209_pos
- # rx rxquantr213 ** 0..1
- set_addr $I214, rxquantr213_done
- rx209_cur."!mark_push"(0, rx209_pos, $I214)
- rxquantr213_loop:
+ lt $I11, 0, rx196_fail
+ inc rx196_pos
+ # rx rxquantr200 ** 0..1
+ set_addr $I10, rxquantr200_done
+ rx196_cur."!mark_push"(0, rx196_pos, $I10)
+ rxquantr200_loop:
# rx enumcharlist negate=0
- ge rx209_pos, rx209_eos, rx209_fail
- sub $I10, rx209_pos, rx209_off
- substr $S10, rx209_tgt, $I10, 1
+ ge rx196_pos, rx196_eos, rx196_fail
+ sub $I10, rx196_pos, rx196_off
+ substr $S10, rx196_tgt, $I10, 1
index $I11, "+-", $S10
- lt $I11, 0, rx209_fail
- inc rx209_pos
- (rx209_rep) = rx209_cur."!mark_commit"($I214)
- rxquantr213_done:
+ lt $I11, 0, rx196_fail
+ inc rx196_pos
+ set_addr $I10, rxquantr200_done
+ (rx196_rep) = rx196_cur."!mark_commit"($I10)
+ rxquantr200_done:
# rx charclass_q d r 1..-1
- sub $I10, rx209_pos, rx209_off
- find_not_cclass $I11, 8, rx209_tgt, $I10, rx209_eos
+ sub $I10, rx196_pos, rx196_off
+ find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos
add $I12, $I10, 1
- lt $I11, $I12, rx209_fail
- add rx209_pos, rx209_off, $I11
+ lt $I11, $I12, rx196_fail
+ add rx196_pos, rx196_off, $I11
# rx pass
- rx209_cur."!cursor_pass"(rx209_pos, "escale")
- rx209_cur."!cursor_debug"("PASS ", "escale", " at pos=", rx209_pos)
- .return (rx209_cur)
- rx209_fail:
-.annotate 'line', 33
- (rx209_rep, rx209_pos, $I10, $P10) = rx209_cur."!mark_fail"(0)
- lt rx209_pos, -1, rx209_done
- eq rx209_pos, -1, rx209_fail
+ rx196_cur."!cursor_pass"(rx196_pos, "escale")
+ rx196_cur."!cursor_debug"("PASS ", "escale", " at pos=", rx196_pos)
+ .return (rx196_cur)
+ rx196_restart:
+.annotate 'line', 33
+ rx196_cur."!cursor_debug"("NEXT ", "escale")
+ rx196_fail:
+ (rx196_rep, rx196_pos, $I10, $P10) = rx196_cur."!mark_fail"(0)
+ lt rx196_pos, -1, rx196_done
+ eq rx196_pos, -1, rx196_fail
jump $I10
- rx209_done:
- rx209_cur."!cursor_fail"()
- rx209_cur."!cursor_debug"("FAIL ", "escale")
- .return (rx209_cur)
+ rx196_done:
+ rx196_cur."!cursor_fail"()
+ rx196_cur."!cursor_debug"("FAIL ", "escale")
+ .return (rx196_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale" :subid("66_1275811471.14938") :method
+.sub "!PREFIX__escale" :subid("66_1280467467.13603") :method
.annotate 'line', 33
- new $P211, "ResizablePMCArray"
- push $P211, "e"
- push $P211, "E"
- .return ($P211)
+ new $P198, "ResizablePMCArray"
+ push $P198, "e"
+ push $P198, "E"
+ .return ($P198)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape" :subid("67_1275811471.14938") :method
+.sub "quote_escape" :subid("67_1280467467.13603") :method
.annotate 'line', 79
- $P216 = self."!protoregex"("quote_escape")
- .return ($P216)
+ $P202 = self."!protoregex"("quote_escape")
+ .return ($P202)
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape" :subid("68_1275811471.14938") :method
+.sub "!PREFIX__quote_escape" :subid("68_1280467467.13603") :method
.annotate 'line', 79
- $P218 = self."!PREFIX__!protoregex"("quote_escape")
- .return ($P218)
+ $P204 = self."!PREFIX__!protoregex"("quote_escape")
+ .return ($P204)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<backslash>" :subid("69_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<backslash>" :subid("69_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx220_tgt
- .local int rx220_pos
- .local int rx220_off
- .local int rx220_eos
- .local int rx220_rep
- .local pmc rx220_cur
- (rx220_cur, rx220_pos, rx220_tgt) = self."!cursor_start"()
- rx220_cur."!cursor_debug"("START ", "quote_escape:sym<backslash>")
- .lex unicode:"$\x{a2}", rx220_cur
+ .local string rx206_tgt
+ .local int rx206_pos
+ .local int rx206_off
+ .local int rx206_eos
+ .local int rx206_rep
+ .local pmc rx206_cur
+ (rx206_cur, rx206_pos, rx206_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx206_cur
.local pmc match
.lex "$/", match
- length rx220_eos, rx220_tgt
- gt rx220_pos, rx220_eos, rx220_done
- set rx220_off, 0
- lt rx220_pos, 2, rx220_start
- sub rx220_off, rx220_pos, 1
- substr rx220_tgt, rx220_tgt, rx220_off
- rx220_start:
+ length rx206_eos, rx206_tgt
+ gt rx206_pos, rx206_eos, rx206_done
+ set rx206_off, 0
+ lt rx206_pos, 2, rx206_start
+ sub rx206_off, rx206_pos, 1
+ substr rx206_tgt, rx206_tgt, rx206_off
+ rx206_start:
+ eq $I10, 1, rx206_restart
+ rx206_cur."!cursor_debug"("START ", "quote_escape:sym<backslash>")
$I10 = self.'from'()
- ne $I10, -1, rxscan223_done
- goto rxscan223_scan
- rxscan223_loop:
- ($P10) = rx220_cur."from"()
+ ne $I10, -1, rxscan209_done
+ goto rxscan209_scan
+ rxscan209_loop:
+ ($P10) = rx206_cur."from"()
inc $P10
- set rx220_pos, $P10
- ge rx220_pos, rx220_eos, rxscan223_done
- rxscan223_scan:
- set_addr $I10, rxscan223_loop
- rx220_cur."!mark_push"(0, rx220_pos, $I10)
- rxscan223_done:
+ set rx206_pos, $P10
+ ge rx206_pos, rx206_eos, rxscan209_done
+ rxscan209_scan:
+ set_addr $I10, rxscan209_loop
+ rx206_cur."!mark_push"(0, rx206_pos, $I10)
+ rxscan209_done:
.annotate 'line', 80
# rx literal "\\\\"
- add $I11, rx220_pos, 2
- gt $I11, rx220_eos, rx220_fail
- sub $I11, rx220_pos, rx220_off
- substr $S10, rx220_tgt, $I11, 2
- ne $S10, "\\\\", rx220_fail
- add rx220_pos, 2
+ add $I11, rx206_pos, 2
+ gt $I11, rx206_eos, rx206_fail
+ sub $I11, rx206_pos, rx206_off
+ substr $S10, rx206_tgt, $I11, 2
+ ne $S10, "\\\\", rx206_fail
+ add rx206_pos, 2
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx220_cur."!cursor_pos"(rx220_pos)
- $P10 = rx220_cur."quotemod_check"("q")
- unless $P10, rx220_fail
+ rx206_cur."!cursor_pos"(rx206_pos)
+ $P10 = rx206_cur."quotemod_check"("q")
+ unless $P10, rx206_fail
# rx pass
- rx220_cur."!cursor_pass"(rx220_pos, "quote_escape:sym<backslash>")
- rx220_cur."!cursor_debug"("PASS ", "quote_escape:sym<backslash>", " at pos=", rx220_pos)
- .return (rx220_cur)
- rx220_fail:
-.annotate 'line', 33
- (rx220_rep, rx220_pos, $I10, $P10) = rx220_cur."!mark_fail"(0)
- lt rx220_pos, -1, rx220_done
- eq rx220_pos, -1, rx220_fail
+ rx206_cur."!cursor_pass"(rx206_pos, "quote_escape:sym<backslash>")
+ rx206_cur."!cursor_debug"("PASS ", "quote_escape:sym<backslash>", " at pos=", rx206_pos)
+ .return (rx206_cur)
+ rx206_restart:
+.annotate 'line', 33
+ rx206_cur."!cursor_debug"("NEXT ", "quote_escape:sym<backslash>")
+ rx206_fail:
+ (rx206_rep, rx206_pos, $I10, $P10) = rx206_cur."!mark_fail"(0)
+ lt rx206_pos, -1, rx206_done
+ eq rx206_pos, -1, rx206_fail
jump $I10
- rx220_done:
- rx220_cur."!cursor_fail"()
- rx220_cur."!cursor_debug"("FAIL ", "quote_escape:sym<backslash>")
- .return (rx220_cur)
+ rx206_done:
+ rx206_cur."!cursor_fail"()
+ rx206_cur."!cursor_debug"("FAIL ", "quote_escape:sym<backslash>")
+ .return (rx206_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>" :subid("70_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<backslash>" :subid("70_1280467467.13603") :method
.annotate 'line', 33
- new $P222, "ResizablePMCArray"
- push $P222, "\\\\"
- .return ($P222)
+ new $P208, "ResizablePMCArray"
+ push $P208, "\\\\"
+ .return ($P208)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<stopper>" :subid("71_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<stopper>" :subid("71_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx225_tgt
- .local int rx225_pos
- .local int rx225_off
- .local int rx225_eos
- .local int rx225_rep
- .local pmc rx225_cur
- (rx225_cur, rx225_pos, rx225_tgt) = self."!cursor_start"()
- rx225_cur."!cursor_debug"("START ", "quote_escape:sym<stopper>")
- .lex unicode:"$\x{a2}", rx225_cur
+ .local string rx211_tgt
+ .local int rx211_pos
+ .local int rx211_off
+ .local int rx211_eos
+ .local int rx211_rep
+ .local pmc rx211_cur
+ (rx211_cur, rx211_pos, rx211_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx211_cur
.local pmc match
.lex "$/", match
- length rx225_eos, rx225_tgt
- gt rx225_pos, rx225_eos, rx225_done
- set rx225_off, 0
- lt rx225_pos, 2, rx225_start
- sub rx225_off, rx225_pos, 1
- substr rx225_tgt, rx225_tgt, rx225_off
- rx225_start:
+ length rx211_eos, rx211_tgt
+ gt rx211_pos, rx211_eos, rx211_done
+ set rx211_off, 0
+ lt rx211_pos, 2, rx211_start
+ sub rx211_off, rx211_pos, 1
+ substr rx211_tgt, rx211_tgt, rx211_off
+ rx211_start:
+ eq $I10, 1, rx211_restart
+ rx211_cur."!cursor_debug"("START ", "quote_escape:sym<stopper>")
$I10 = self.'from'()
- ne $I10, -1, rxscan228_done
- goto rxscan228_scan
- rxscan228_loop:
- ($P10) = rx225_cur."from"()
+ ne $I10, -1, rxscan214_done
+ goto rxscan214_scan
+ rxscan214_loop:
+ ($P10) = rx211_cur."from"()
inc $P10
- set rx225_pos, $P10
- ge rx225_pos, rx225_eos, rxscan228_done
- rxscan228_scan:
- set_addr $I10, rxscan228_loop
- rx225_cur."!mark_push"(0, rx225_pos, $I10)
- rxscan228_done:
+ set rx211_pos, $P10
+ ge rx211_pos, rx211_eos, rxscan214_done
+ rxscan214_scan:
+ set_addr $I10, rxscan214_loop
+ rx211_cur."!mark_push"(0, rx211_pos, $I10)
+ rxscan214_done:
.annotate 'line', 81
# rx literal "\\"
- add $I11, rx225_pos, 1
- gt $I11, rx225_eos, rx225_fail
- sub $I11, rx225_pos, rx225_off
- substr $S10, rx225_tgt, $I11, 1
- ne $S10, "\\", rx225_fail
- add rx225_pos, 1
+ add $I11, rx211_pos, 1
+ gt $I11, rx211_eos, rx211_fail
+ sub $I11, rx211_pos, rx211_off
+ substr $S10, rx211_tgt, $I11, 1
+ ne $S10, "\\", rx211_fail
+ add rx211_pos, 1
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx225_cur."!cursor_pos"(rx225_pos)
- $P10 = rx225_cur."quotemod_check"("q")
- unless $P10, rx225_fail
+ rx211_cur."!cursor_pos"(rx211_pos)
+ $P10 = rx211_cur."quotemod_check"("q")
+ unless $P10, rx211_fail
# rx subrule "stopper" subtype=capture negate=
- rx225_cur."!cursor_pos"(rx225_pos)
- $P10 = rx225_cur."stopper"()
- unless $P10, rx225_fail
- rx225_cur."!mark_push"(0, -1, 0, $P10)
+ rx211_cur."!cursor_pos"(rx211_pos)
+ $P10 = rx211_cur."stopper"()
+ unless $P10, rx211_fail
+ rx211_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("stopper")
- rx225_pos = $P10."pos"()
+ rx211_pos = $P10."pos"()
# rx pass
- rx225_cur."!cursor_pass"(rx225_pos, "quote_escape:sym<stopper>")
- rx225_cur."!cursor_debug"("PASS ", "quote_escape:sym<stopper>", " at pos=", rx225_pos)
- .return (rx225_cur)
- rx225_fail:
-.annotate 'line', 33
- (rx225_rep, rx225_pos, $I10, $P10) = rx225_cur."!mark_fail"(0)
- lt rx225_pos, -1, rx225_done
- eq rx225_pos, -1, rx225_fail
+ rx211_cur."!cursor_pass"(rx211_pos, "quote_escape:sym<stopper>")
+ rx211_cur."!cursor_debug"("PASS ", "quote_escape:sym<stopper>", " at pos=", rx211_pos)
+ .return (rx211_cur)
+ rx211_restart:
+.annotate 'line', 33
+ rx211_cur."!cursor_debug"("NEXT ", "quote_escape:sym<stopper>")
+ rx211_fail:
+ (rx211_rep, rx211_pos, $I10, $P10) = rx211_cur."!mark_fail"(0)
+ lt rx211_pos, -1, rx211_done
+ eq rx211_pos, -1, rx211_fail
jump $I10
- rx225_done:
- rx225_cur."!cursor_fail"()
- rx225_cur."!cursor_debug"("FAIL ", "quote_escape:sym<stopper>")
- .return (rx225_cur)
+ rx211_done:
+ rx211_cur."!cursor_fail"()
+ rx211_cur."!cursor_debug"("FAIL ", "quote_escape:sym<stopper>")
+ .return (rx211_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>" :subid("72_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<stopper>" :subid("72_1280467467.13603") :method
.annotate 'line', 33
- new $P227, "ResizablePMCArray"
- push $P227, "\\"
- .return ($P227)
+ new $P213, "ResizablePMCArray"
+ push $P213, "\\"
+ .return ($P213)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<bs>" :subid("73_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<bs>" :subid("73_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx230_tgt
- .local int rx230_pos
- .local int rx230_off
- .local int rx230_eos
- .local int rx230_rep
- .local pmc rx230_cur
- (rx230_cur, rx230_pos, rx230_tgt) = self."!cursor_start"()
- rx230_cur."!cursor_debug"("START ", "quote_escape:sym<bs>")
- .lex unicode:"$\x{a2}", rx230_cur
+ .local string rx216_tgt
+ .local int rx216_pos
+ .local int rx216_off
+ .local int rx216_eos
+ .local int rx216_rep
+ .local pmc rx216_cur
+ (rx216_cur, rx216_pos, rx216_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx216_cur
.local pmc match
.lex "$/", match
- length rx230_eos, rx230_tgt
- gt rx230_pos, rx230_eos, rx230_done
- set rx230_off, 0
- lt rx230_pos, 2, rx230_start
- sub rx230_off, rx230_pos, 1
- substr rx230_tgt, rx230_tgt, rx230_off
- rx230_start:
+ length rx216_eos, rx216_tgt
+ gt rx216_pos, rx216_eos, rx216_done
+ set rx216_off, 0
+ lt rx216_pos, 2, rx216_start
+ sub rx216_off, rx216_pos, 1
+ substr rx216_tgt, rx216_tgt, rx216_off
+ rx216_start:
+ eq $I10, 1, rx216_restart
+ rx216_cur."!cursor_debug"("START ", "quote_escape:sym<bs>")
$I10 = self.'from'()
- ne $I10, -1, rxscan233_done
- goto rxscan233_scan
- rxscan233_loop:
- ($P10) = rx230_cur."from"()
+ ne $I10, -1, rxscan219_done
+ goto rxscan219_scan
+ rxscan219_loop:
+ ($P10) = rx216_cur."from"()
inc $P10
- set rx230_pos, $P10
- ge rx230_pos, rx230_eos, rxscan233_done
- rxscan233_scan:
- set_addr $I10, rxscan233_loop
- rx230_cur."!mark_push"(0, rx230_pos, $I10)
- rxscan233_done:
+ set rx216_pos, $P10
+ ge rx216_pos, rx216_eos, rxscan219_done
+ rxscan219_scan:
+ set_addr $I10, rxscan219_loop
+ rx216_cur."!mark_push"(0, rx216_pos, $I10)
+ rxscan219_done:
.annotate 'line', 83
# rx literal "\\b"
- add $I11, rx230_pos, 2
- gt $I11, rx230_eos, rx230_fail
- sub $I11, rx230_pos, rx230_off
- substr $S10, rx230_tgt, $I11, 2
- ne $S10, "\\b", rx230_fail
- add rx230_pos, 2
+ add $I11, rx216_pos, 2
+ gt $I11, rx216_eos, rx216_fail
+ sub $I11, rx216_pos, rx216_off
+ substr $S10, rx216_tgt, $I11, 2
+ ne $S10, "\\b", rx216_fail
+ add rx216_pos, 2
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx230_cur."!cursor_pos"(rx230_pos)
- $P10 = rx230_cur."quotemod_check"("b")
- unless $P10, rx230_fail
+ rx216_cur."!cursor_pos"(rx216_pos)
+ $P10 = rx216_cur."quotemod_check"("b")
+ unless $P10, rx216_fail
# rx pass
- rx230_cur."!cursor_pass"(rx230_pos, "quote_escape:sym<bs>")
- rx230_cur."!cursor_debug"("PASS ", "quote_escape:sym<bs>", " at pos=", rx230_pos)
- .return (rx230_cur)
- rx230_fail:
-.annotate 'line', 33
- (rx230_rep, rx230_pos, $I10, $P10) = rx230_cur."!mark_fail"(0)
- lt rx230_pos, -1, rx230_done
- eq rx230_pos, -1, rx230_fail
+ rx216_cur."!cursor_pass"(rx216_pos, "quote_escape:sym<bs>")
+ rx216_cur."!cursor_debug"("PASS ", "quote_escape:sym<bs>", " at pos=", rx216_pos)
+ .return (rx216_cur)
+ rx216_restart:
+.annotate 'line', 33
+ rx216_cur."!cursor_debug"("NEXT ", "quote_escape:sym<bs>")
+ rx216_fail:
+ (rx216_rep, rx216_pos, $I10, $P10) = rx216_cur."!mark_fail"(0)
+ lt rx216_pos, -1, rx216_done
+ eq rx216_pos, -1, rx216_fail
jump $I10
- rx230_done:
- rx230_cur."!cursor_fail"()
- rx230_cur."!cursor_debug"("FAIL ", "quote_escape:sym<bs>")
- .return (rx230_cur)
+ rx216_done:
+ rx216_cur."!cursor_fail"()
+ rx216_cur."!cursor_debug"("FAIL ", "quote_escape:sym<bs>")
+ .return (rx216_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>" :subid("74_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<bs>" :subid("74_1280467467.13603") :method
.annotate 'line', 33
- new $P232, "ResizablePMCArray"
- push $P232, "\\b"
- .return ($P232)
+ new $P218, "ResizablePMCArray"
+ push $P218, "\\b"
+ .return ($P218)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<nl>" :subid("75_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<nl>" :subid("75_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx235_tgt
- .local int rx235_pos
- .local int rx235_off
- .local int rx235_eos
- .local int rx235_rep
- .local pmc rx235_cur
- (rx235_cur, rx235_pos, rx235_tgt) = self."!cursor_start"()
- rx235_cur."!cursor_debug"("START ", "quote_escape:sym<nl>")
- .lex unicode:"$\x{a2}", rx235_cur
+ .local string rx221_tgt
+ .local int rx221_pos
+ .local int rx221_off
+ .local int rx221_eos
+ .local int rx221_rep
+ .local pmc rx221_cur
+ (rx221_cur, rx221_pos, rx221_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx221_cur
.local pmc match
.lex "$/", match
- length rx235_eos, rx235_tgt
- gt rx235_pos, rx235_eos, rx235_done
- set rx235_off, 0
- lt rx235_pos, 2, rx235_start
- sub rx235_off, rx235_pos, 1
- substr rx235_tgt, rx235_tgt, rx235_off
- rx235_start:
+ length rx221_eos, rx221_tgt
+ gt rx221_pos, rx221_eos, rx221_done
+ set rx221_off, 0
+ lt rx221_pos, 2, rx221_start
+ sub rx221_off, rx221_pos, 1
+ substr rx221_tgt, rx221_tgt, rx221_off
+ rx221_start:
+ eq $I10, 1, rx221_restart
+ rx221_cur."!cursor_debug"("START ", "quote_escape:sym<nl>")
$I10 = self.'from'()
- ne $I10, -1, rxscan238_done
- goto rxscan238_scan
- rxscan238_loop:
- ($P10) = rx235_cur."from"()
+ ne $I10, -1, rxscan224_done
+ goto rxscan224_scan
+ rxscan224_loop:
+ ($P10) = rx221_cur."from"()
inc $P10
- set rx235_pos, $P10
- ge rx235_pos, rx235_eos, rxscan238_done
- rxscan238_scan:
- set_addr $I10, rxscan238_loop
- rx235_cur."!mark_push"(0, rx235_pos, $I10)
- rxscan238_done:
+ set rx221_pos, $P10
+ ge rx221_pos, rx221_eos, rxscan224_done
+ rxscan224_scan:
+ set_addr $I10, rxscan224_loop
+ rx221_cur."!mark_push"(0, rx221_pos, $I10)
+ rxscan224_done:
.annotate 'line', 84
# rx literal "\\n"
- add $I11, rx235_pos, 2
- gt $I11, rx235_eos, rx235_fail
- sub $I11, rx235_pos, rx235_off
- substr $S10, rx235_tgt, $I11, 2
- ne $S10, "\\n", rx235_fail
- add rx235_pos, 2
+ add $I11, rx221_pos, 2
+ gt $I11, rx221_eos, rx221_fail
+ sub $I11, rx221_pos, rx221_off
+ substr $S10, rx221_tgt, $I11, 2
+ ne $S10, "\\n", rx221_fail
+ add rx221_pos, 2
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx235_cur."!cursor_pos"(rx235_pos)
- $P10 = rx235_cur."quotemod_check"("b")
- unless $P10, rx235_fail
+ rx221_cur."!cursor_pos"(rx221_pos)
+ $P10 = rx221_cur."quotemod_check"("b")
+ unless $P10, rx221_fail
# rx pass
- rx235_cur."!cursor_pass"(rx235_pos, "quote_escape:sym<nl>")
- rx235_cur."!cursor_debug"("PASS ", "quote_escape:sym<nl>", " at pos=", rx235_pos)
- .return (rx235_cur)
- rx235_fail:
-.annotate 'line', 33
- (rx235_rep, rx235_pos, $I10, $P10) = rx235_cur."!mark_fail"(0)
- lt rx235_pos, -1, rx235_done
- eq rx235_pos, -1, rx235_fail
+ rx221_cur."!cursor_pass"(rx221_pos, "quote_escape:sym<nl>")
+ rx221_cur."!cursor_debug"("PASS ", "quote_escape:sym<nl>", " at pos=", rx221_pos)
+ .return (rx221_cur)
+ rx221_restart:
+.annotate 'line', 33
+ rx221_cur."!cursor_debug"("NEXT ", "quote_escape:sym<nl>")
+ rx221_fail:
+ (rx221_rep, rx221_pos, $I10, $P10) = rx221_cur."!mark_fail"(0)
+ lt rx221_pos, -1, rx221_done
+ eq rx221_pos, -1, rx221_fail
jump $I10
- rx235_done:
- rx235_cur."!cursor_fail"()
- rx235_cur."!cursor_debug"("FAIL ", "quote_escape:sym<nl>")
- .return (rx235_cur)
+ rx221_done:
+ rx221_cur."!cursor_fail"()
+ rx221_cur."!cursor_debug"("FAIL ", "quote_escape:sym<nl>")
+ .return (rx221_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>" :subid("76_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<nl>" :subid("76_1280467467.13603") :method
.annotate 'line', 33
- new $P237, "ResizablePMCArray"
- push $P237, "\\n"
- .return ($P237)
+ new $P223, "ResizablePMCArray"
+ push $P223, "\\n"
+ .return ($P223)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<cr>" :subid("77_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<cr>" :subid("77_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx240_tgt
- .local int rx240_pos
- .local int rx240_off
- .local int rx240_eos
- .local int rx240_rep
- .local pmc rx240_cur
- (rx240_cur, rx240_pos, rx240_tgt) = self."!cursor_start"()
- rx240_cur."!cursor_debug"("START ", "quote_escape:sym<cr>")
- .lex unicode:"$\x{a2}", rx240_cur
+ .local string rx226_tgt
+ .local int rx226_pos
+ .local int rx226_off
+ .local int rx226_eos
+ .local int rx226_rep
+ .local pmc rx226_cur
+ (rx226_cur, rx226_pos, rx226_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx226_cur
.local pmc match
.lex "$/", match
- length rx240_eos, rx240_tgt
- gt rx240_pos, rx240_eos, rx240_done
- set rx240_off, 0
- lt rx240_pos, 2, rx240_start
- sub rx240_off, rx240_pos, 1
- substr rx240_tgt, rx240_tgt, rx240_off
- rx240_start:
+ length rx226_eos, rx226_tgt
+ gt rx226_pos, rx226_eos, rx226_done
+ set rx226_off, 0
+ lt rx226_pos, 2, rx226_start
+ sub rx226_off, rx226_pos, 1
+ substr rx226_tgt, rx226_tgt, rx226_off
+ rx226_start:
+ eq $I10, 1, rx226_restart
+ rx226_cur."!cursor_debug"("START ", "quote_escape:sym<cr>")
$I10 = self.'from'()
- ne $I10, -1, rxscan243_done
- goto rxscan243_scan
- rxscan243_loop:
- ($P10) = rx240_cur."from"()
+ ne $I10, -1, rxscan229_done
+ goto rxscan229_scan
+ rxscan229_loop:
+ ($P10) = rx226_cur."from"()
inc $P10
- set rx240_pos, $P10
- ge rx240_pos, rx240_eos, rxscan243_done
- rxscan243_scan:
- set_addr $I10, rxscan243_loop
- rx240_cur."!mark_push"(0, rx240_pos, $I10)
- rxscan243_done:
+ set rx226_pos, $P10
+ ge rx226_pos, rx226_eos, rxscan229_done
+ rxscan229_scan:
+ set_addr $I10, rxscan229_loop
+ rx226_cur."!mark_push"(0, rx226_pos, $I10)
+ rxscan229_done:
.annotate 'line', 85
# rx literal "\\r"
- add $I11, rx240_pos, 2
- gt $I11, rx240_eos, rx240_fail
- sub $I11, rx240_pos, rx240_off
- substr $S10, rx240_tgt, $I11, 2
- ne $S10, "\\r", rx240_fail
- add rx240_pos, 2
+ add $I11, rx226_pos, 2
+ gt $I11, rx226_eos, rx226_fail
+ sub $I11, rx226_pos, rx226_off
+ substr $S10, rx226_tgt, $I11, 2
+ ne $S10, "\\r", rx226_fail
+ add rx226_pos, 2
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx240_cur."!cursor_pos"(rx240_pos)
- $P10 = rx240_cur."quotemod_check"("b")
- unless $P10, rx240_fail
+ rx226_cur."!cursor_pos"(rx226_pos)
+ $P10 = rx226_cur."quotemod_check"("b")
+ unless $P10, rx226_fail
# rx pass
- rx240_cur."!cursor_pass"(rx240_pos, "quote_escape:sym<cr>")
- rx240_cur."!cursor_debug"("PASS ", "quote_escape:sym<cr>", " at pos=", rx240_pos)
- .return (rx240_cur)
- rx240_fail:
-.annotate 'line', 33
- (rx240_rep, rx240_pos, $I10, $P10) = rx240_cur."!mark_fail"(0)
- lt rx240_pos, -1, rx240_done
- eq rx240_pos, -1, rx240_fail
+ rx226_cur."!cursor_pass"(rx226_pos, "quote_escape:sym<cr>")
+ rx226_cur."!cursor_debug"("PASS ", "quote_escape:sym<cr>", " at pos=", rx226_pos)
+ .return (rx226_cur)
+ rx226_restart:
+.annotate 'line', 33
+ rx226_cur."!cursor_debug"("NEXT ", "quote_escape:sym<cr>")
+ rx226_fail:
+ (rx226_rep, rx226_pos, $I10, $P10) = rx226_cur."!mark_fail"(0)
+ lt rx226_pos, -1, rx226_done
+ eq rx226_pos, -1, rx226_fail
jump $I10
- rx240_done:
- rx240_cur."!cursor_fail"()
- rx240_cur."!cursor_debug"("FAIL ", "quote_escape:sym<cr>")
- .return (rx240_cur)
+ rx226_done:
+ rx226_cur."!cursor_fail"()
+ rx226_cur."!cursor_debug"("FAIL ", "quote_escape:sym<cr>")
+ .return (rx226_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>" :subid("78_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<cr>" :subid("78_1280467467.13603") :method
.annotate 'line', 33
- new $P242, "ResizablePMCArray"
- push $P242, "\\r"
- .return ($P242)
+ new $P228, "ResizablePMCArray"
+ push $P228, "\\r"
+ .return ($P228)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<tab>" :subid("79_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<tab>" :subid("79_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx245_tgt
- .local int rx245_pos
- .local int rx245_off
- .local int rx245_eos
- .local int rx245_rep
- .local pmc rx245_cur
- (rx245_cur, rx245_pos, rx245_tgt) = self."!cursor_start"()
- rx245_cur."!cursor_debug"("START ", "quote_escape:sym<tab>")
- .lex unicode:"$\x{a2}", rx245_cur
+ .local string rx231_tgt
+ .local int rx231_pos
+ .local int rx231_off
+ .local int rx231_eos
+ .local int rx231_rep
+ .local pmc rx231_cur
+ (rx231_cur, rx231_pos, rx231_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx231_cur
.local pmc match
.lex "$/", match
- length rx245_eos, rx245_tgt
- gt rx245_pos, rx245_eos, rx245_done
- set rx245_off, 0
- lt rx245_pos, 2, rx245_start
- sub rx245_off, rx245_pos, 1
- substr rx245_tgt, rx245_tgt, rx245_off
- rx245_start:
+ length rx231_eos, rx231_tgt
+ gt rx231_pos, rx231_eos, rx231_done
+ set rx231_off, 0
+ lt rx231_pos, 2, rx231_start
+ sub rx231_off, rx231_pos, 1
+ substr rx231_tgt, rx231_tgt, rx231_off
+ rx231_start:
+ eq $I10, 1, rx231_restart
+ rx231_cur."!cursor_debug"("START ", "quote_escape:sym<tab>")
$I10 = self.'from'()
- ne $I10, -1, rxscan248_done
- goto rxscan248_scan
- rxscan248_loop:
- ($P10) = rx245_cur."from"()
+ ne $I10, -1, rxscan234_done
+ goto rxscan234_scan
+ rxscan234_loop:
+ ($P10) = rx231_cur."from"()
inc $P10
- set rx245_pos, $P10
- ge rx245_pos, rx245_eos, rxscan248_done
- rxscan248_scan:
- set_addr $I10, rxscan248_loop
- rx245_cur."!mark_push"(0, rx245_pos, $I10)
- rxscan248_done:
+ set rx231_pos, $P10
+ ge rx231_pos, rx231_eos, rxscan234_done
+ rxscan234_scan:
+ set_addr $I10, rxscan234_loop
+ rx231_cur."!mark_push"(0, rx231_pos, $I10)
+ rxscan234_done:
.annotate 'line', 86
# rx literal "\\t"
- add $I11, rx245_pos, 2
- gt $I11, rx245_eos, rx245_fail
- sub $I11, rx245_pos, rx245_off
- substr $S10, rx245_tgt, $I11, 2
- ne $S10, "\\t", rx245_fail
- add rx245_pos, 2
+ add $I11, rx231_pos, 2
+ gt $I11, rx231_eos, rx231_fail
+ sub $I11, rx231_pos, rx231_off
+ substr $S10, rx231_tgt, $I11, 2
+ ne $S10, "\\t", rx231_fail
+ add rx231_pos, 2
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx245_cur."!cursor_pos"(rx245_pos)
- $P10 = rx245_cur."quotemod_check"("b")
- unless $P10, rx245_fail
+ rx231_cur."!cursor_pos"(rx231_pos)
+ $P10 = rx231_cur."quotemod_check"("b")
+ unless $P10, rx231_fail
# rx pass
- rx245_cur."!cursor_pass"(rx245_pos, "quote_escape:sym<tab>")
- rx245_cur."!cursor_debug"("PASS ", "quote_escape:sym<tab>", " at pos=", rx245_pos)
- .return (rx245_cur)
- rx245_fail:
-.annotate 'line', 33
- (rx245_rep, rx245_pos, $I10, $P10) = rx245_cur."!mark_fail"(0)
- lt rx245_pos, -1, rx245_done
- eq rx245_pos, -1, rx245_fail
+ rx231_cur."!cursor_pass"(rx231_pos, "quote_escape:sym<tab>")
+ rx231_cur."!cursor_debug"("PASS ", "quote_escape:sym<tab>", " at pos=", rx231_pos)
+ .return (rx231_cur)
+ rx231_restart:
+.annotate 'line', 33
+ rx231_cur."!cursor_debug"("NEXT ", "quote_escape:sym<tab>")
+ rx231_fail:
+ (rx231_rep, rx231_pos, $I10, $P10) = rx231_cur."!mark_fail"(0)
+ lt rx231_pos, -1, rx231_done
+ eq rx231_pos, -1, rx231_fail
jump $I10
- rx245_done:
- rx245_cur."!cursor_fail"()
- rx245_cur."!cursor_debug"("FAIL ", "quote_escape:sym<tab>")
- .return (rx245_cur)
+ rx231_done:
+ rx231_cur."!cursor_fail"()
+ rx231_cur."!cursor_debug"("FAIL ", "quote_escape:sym<tab>")
+ .return (rx231_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>" :subid("80_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<tab>" :subid("80_1280467467.13603") :method
.annotate 'line', 33
- new $P247, "ResizablePMCArray"
- push $P247, "\\t"
- .return ($P247)
+ new $P233, "ResizablePMCArray"
+ push $P233, "\\t"
+ .return ($P233)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<ff>" :subid("81_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<ff>" :subid("81_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx250_tgt
- .local int rx250_pos
- .local int rx250_off
- .local int rx250_eos
- .local int rx250_rep
- .local pmc rx250_cur
- (rx250_cur, rx250_pos, rx250_tgt) = self."!cursor_start"()
- rx250_cur."!cursor_debug"("START ", "quote_escape:sym<ff>")
- .lex unicode:"$\x{a2}", rx250_cur
+ .local string rx236_tgt
+ .local int rx236_pos
+ .local int rx236_off
+ .local int rx236_eos
+ .local int rx236_rep
+ .local pmc rx236_cur
+ (rx236_cur, rx236_pos, rx236_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx236_cur
.local pmc match
.lex "$/", match
- length rx250_eos, rx250_tgt
- gt rx250_pos, rx250_eos, rx250_done
- set rx250_off, 0
- lt rx250_pos, 2, rx250_start
- sub rx250_off, rx250_pos, 1
- substr rx250_tgt, rx250_tgt, rx250_off
- rx250_start:
+ length rx236_eos, rx236_tgt
+ gt rx236_pos, rx236_eos, rx236_done
+ set rx236_off, 0
+ lt rx236_pos, 2, rx236_start
+ sub rx236_off, rx236_pos, 1
+ substr rx236_tgt, rx236_tgt, rx236_off
+ rx236_start:
+ eq $I10, 1, rx236_restart
+ rx236_cur."!cursor_debug"("START ", "quote_escape:sym<ff>")
$I10 = self.'from'()
- ne $I10, -1, rxscan253_done
- goto rxscan253_scan
- rxscan253_loop:
- ($P10) = rx250_cur."from"()
+ ne $I10, -1, rxscan239_done
+ goto rxscan239_scan
+ rxscan239_loop:
+ ($P10) = rx236_cur."from"()
inc $P10
- set rx250_pos, $P10
- ge rx250_pos, rx250_eos, rxscan253_done
- rxscan253_scan:
- set_addr $I10, rxscan253_loop
- rx250_cur."!mark_push"(0, rx250_pos, $I10)
- rxscan253_done:
+ set rx236_pos, $P10
+ ge rx236_pos, rx236_eos, rxscan239_done
+ rxscan239_scan:
+ set_addr $I10, rxscan239_loop
+ rx236_cur."!mark_push"(0, rx236_pos, $I10)
+ rxscan239_done:
.annotate 'line', 87
# rx literal "\\f"
- add $I11, rx250_pos, 2
- gt $I11, rx250_eos, rx250_fail
- sub $I11, rx250_pos, rx250_off
- substr $S10, rx250_tgt, $I11, 2
- ne $S10, "\\f", rx250_fail
- add rx250_pos, 2
+ add $I11, rx236_pos, 2
+ gt $I11, rx236_eos, rx236_fail
+ sub $I11, rx236_pos, rx236_off
+ substr $S10, rx236_tgt, $I11, 2
+ ne $S10, "\\f", rx236_fail
+ add rx236_pos, 2
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx250_cur."!cursor_pos"(rx250_pos)
- $P10 = rx250_cur."quotemod_check"("b")
- unless $P10, rx250_fail
+ rx236_cur."!cursor_pos"(rx236_pos)
+ $P10 = rx236_cur."quotemod_check"("b")
+ unless $P10, rx236_fail
# rx pass
- rx250_cur."!cursor_pass"(rx250_pos, "quote_escape:sym<ff>")
- rx250_cur."!cursor_debug"("PASS ", "quote_escape:sym<ff>", " at pos=", rx250_pos)
- .return (rx250_cur)
- rx250_fail:
-.annotate 'line', 33
- (rx250_rep, rx250_pos, $I10, $P10) = rx250_cur."!mark_fail"(0)
- lt rx250_pos, -1, rx250_done
- eq rx250_pos, -1, rx250_fail
+ rx236_cur."!cursor_pass"(rx236_pos, "quote_escape:sym<ff>")
+ rx236_cur."!cursor_debug"("PASS ", "quote_escape:sym<ff>", " at pos=", rx236_pos)
+ .return (rx236_cur)
+ rx236_restart:
+.annotate 'line', 33
+ rx236_cur."!cursor_debug"("NEXT ", "quote_escape:sym<ff>")
+ rx236_fail:
+ (rx236_rep, rx236_pos, $I10, $P10) = rx236_cur."!mark_fail"(0)
+ lt rx236_pos, -1, rx236_done
+ eq rx236_pos, -1, rx236_fail
jump $I10
- rx250_done:
- rx250_cur."!cursor_fail"()
- rx250_cur."!cursor_debug"("FAIL ", "quote_escape:sym<ff>")
- .return (rx250_cur)
+ rx236_done:
+ rx236_cur."!cursor_fail"()
+ rx236_cur."!cursor_debug"("FAIL ", "quote_escape:sym<ff>")
+ .return (rx236_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<ff>" :subid("82_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<ff>" :subid("82_1280467467.13603") :method
.annotate 'line', 33
- new $P252, "ResizablePMCArray"
- push $P252, "\\f"
- .return ($P252)
+ new $P238, "ResizablePMCArray"
+ push $P238, "\\f"
+ .return ($P238)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<esc>" :subid("83_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<esc>" :subid("83_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx255_tgt
- .local int rx255_pos
- .local int rx255_off
- .local int rx255_eos
- .local int rx255_rep
- .local pmc rx255_cur
- (rx255_cur, rx255_pos, rx255_tgt) = self."!cursor_start"()
- rx255_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
- .lex unicode:"$\x{a2}", rx255_cur
+ .local string rx241_tgt
+ .local int rx241_pos
+ .local int rx241_off
+ .local int rx241_eos
+ .local int rx241_rep
+ .local pmc rx241_cur
+ (rx241_cur, rx241_pos, rx241_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx241_cur
.local pmc match
.lex "$/", match
- length rx255_eos, rx255_tgt
- gt rx255_pos, rx255_eos, rx255_done
- set rx255_off, 0
- lt rx255_pos, 2, rx255_start
- sub rx255_off, rx255_pos, 1
- substr rx255_tgt, rx255_tgt, rx255_off
- rx255_start:
+ length rx241_eos, rx241_tgt
+ gt rx241_pos, rx241_eos, rx241_done
+ set rx241_off, 0
+ lt rx241_pos, 2, rx241_start
+ sub rx241_off, rx241_pos, 1
+ substr rx241_tgt, rx241_tgt, rx241_off
+ rx241_start:
+ eq $I10, 1, rx241_restart
+ rx241_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
$I10 = self.'from'()
- ne $I10, -1, rxscan258_done
- goto rxscan258_scan
- rxscan258_loop:
- ($P10) = rx255_cur."from"()
+ ne $I10, -1, rxscan244_done
+ goto rxscan244_scan
+ rxscan244_loop:
+ ($P10) = rx241_cur."from"()
inc $P10
- set rx255_pos, $P10
- ge rx255_pos, rx255_eos, rxscan258_done
- rxscan258_scan:
- set_addr $I10, rxscan258_loop
- rx255_cur."!mark_push"(0, rx255_pos, $I10)
- rxscan258_done:
+ set rx241_pos, $P10
+ ge rx241_pos, rx241_eos, rxscan244_done
+ rxscan244_scan:
+ set_addr $I10, rxscan244_loop
+ rx241_cur."!mark_push"(0, rx241_pos, $I10)
+ rxscan244_done:
.annotate 'line', 88
# rx literal "\\e"
- add $I11, rx255_pos, 2
- gt $I11, rx255_eos, rx255_fail
- sub $I11, rx255_pos, rx255_off
- substr $S10, rx255_tgt, $I11, 2
- ne $S10, "\\e", rx255_fail
- add rx255_pos, 2
+ add $I11, rx241_pos, 2
+ gt $I11, rx241_eos, rx241_fail
+ sub $I11, rx241_pos, rx241_off
+ substr $S10, rx241_tgt, $I11, 2
+ ne $S10, "\\e", rx241_fail
+ add rx241_pos, 2
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx255_cur."!cursor_pos"(rx255_pos)
- $P10 = rx255_cur."quotemod_check"("b")
- unless $P10, rx255_fail
+ rx241_cur."!cursor_pos"(rx241_pos)
+ $P10 = rx241_cur."quotemod_check"("b")
+ unless $P10, rx241_fail
# rx pass
- rx255_cur."!cursor_pass"(rx255_pos, "quote_escape:sym<esc>")
- rx255_cur."!cursor_debug"("PASS ", "quote_escape:sym<esc>", " at pos=", rx255_pos)
- .return (rx255_cur)
- rx255_fail:
-.annotate 'line', 33
- (rx255_rep, rx255_pos, $I10, $P10) = rx255_cur."!mark_fail"(0)
- lt rx255_pos, -1, rx255_done
- eq rx255_pos, -1, rx255_fail
+ rx241_cur."!cursor_pass"(rx241_pos, "quote_escape:sym<esc>")
+ rx241_cur."!cursor_debug"("PASS ", "quote_escape:sym<esc>", " at pos=", rx241_pos)
+ .return (rx241_cur)
+ rx241_restart:
+.annotate 'line', 33
+ rx241_cur."!cursor_debug"("NEXT ", "quote_escape:sym<esc>")
+ rx241_fail:
+ (rx241_rep, rx241_pos, $I10, $P10) = rx241_cur."!mark_fail"(0)
+ lt rx241_pos, -1, rx241_done
+ eq rx241_pos, -1, rx241_fail
jump $I10
- rx255_done:
- rx255_cur."!cursor_fail"()
- rx255_cur."!cursor_debug"("FAIL ", "quote_escape:sym<esc>")
- .return (rx255_cur)
+ rx241_done:
+ rx241_cur."!cursor_fail"()
+ rx241_cur."!cursor_debug"("FAIL ", "quote_escape:sym<esc>")
+ .return (rx241_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>" :subid("84_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<esc>" :subid("84_1280467467.13603") :method
.annotate 'line', 33
- new $P257, "ResizablePMCArray"
- push $P257, "\\e"
- .return ($P257)
+ new $P243, "ResizablePMCArray"
+ push $P243, "\\e"
+ .return ($P243)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<hex>" :subid("85_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<hex>" :subid("85_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx260_tgt
- .local int rx260_pos
- .local int rx260_off
- .local int rx260_eos
- .local int rx260_rep
- .local pmc rx260_cur
- (rx260_cur, rx260_pos, rx260_tgt) = self."!cursor_start"()
- rx260_cur."!cursor_debug"("START ", "quote_escape:sym<hex>")
- .lex unicode:"$\x{a2}", rx260_cur
+ .local string rx246_tgt
+ .local int rx246_pos
+ .local int rx246_off
+ .local int rx246_eos
+ .local int rx246_rep
+ .local pmc rx246_cur
+ (rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx246_cur
.local pmc match
.lex "$/", match
- length rx260_eos, rx260_tgt
- gt rx260_pos, rx260_eos, rx260_done
- set rx260_off, 0
- lt rx260_pos, 2, rx260_start
- sub rx260_off, rx260_pos, 1
- substr rx260_tgt, rx260_tgt, rx260_off
- rx260_start:
+ length rx246_eos, rx246_tgt
+ gt rx246_pos, rx246_eos, rx246_done
+ set rx246_off, 0
+ lt rx246_pos, 2, rx246_start
+ sub rx246_off, rx246_pos, 1
+ substr rx246_tgt, rx246_tgt, rx246_off
+ rx246_start:
+ eq $I10, 1, rx246_restart
+ rx246_cur."!cursor_debug"("START ", "quote_escape:sym<hex>")
$I10 = self.'from'()
- ne $I10, -1, rxscan263_done
- goto rxscan263_scan
- rxscan263_loop:
- ($P10) = rx260_cur."from"()
+ ne $I10, -1, rxscan249_done
+ goto rxscan249_scan
+ rxscan249_loop:
+ ($P10) = rx246_cur."from"()
inc $P10
- set rx260_pos, $P10
- ge rx260_pos, rx260_eos, rxscan263_done
- rxscan263_scan:
- set_addr $I10, rxscan263_loop
- rx260_cur."!mark_push"(0, rx260_pos, $I10)
- rxscan263_done:
+ set rx246_pos, $P10
+ ge rx246_pos, rx246_eos, rxscan249_done
+ rxscan249_scan:
+ set_addr $I10, rxscan249_loop
+ rx246_cur."!mark_push"(0, rx246_pos, $I10)
+ rxscan249_done:
.annotate 'line', 90
# rx literal unicode:"\\x"
- add $I11, rx260_pos, 2
- gt $I11, rx260_eos, rx260_fail
- sub $I11, rx260_pos, rx260_off
- substr $S10, rx260_tgt, $I11, 2
- ne $S10, unicode:"\\x", rx260_fail
- add rx260_pos, 2
+ add $I11, rx246_pos, 2
+ gt $I11, rx246_eos, rx246_fail
+ sub $I11, rx246_pos, rx246_off
+ substr $S10, rx246_tgt, $I11, 2
+ ne $S10, unicode:"\\x", rx246_fail
+ add rx246_pos, 2
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx260_cur."!cursor_pos"(rx260_pos)
- $P10 = rx260_cur."quotemod_check"("b")
- unless $P10, rx260_fail
- alt264_0:
+ rx246_cur."!cursor_pos"(rx246_pos)
+ $P10 = rx246_cur."quotemod_check"("b")
+ unless $P10, rx246_fail
+ alt250_0:
.annotate 'line', 91
- set_addr $I10, alt264_1
- rx260_cur."!mark_push"(0, rx260_pos, $I10)
+ set_addr $I10, alt250_1
+ rx246_cur."!mark_push"(0, rx246_pos, $I10)
# rx subrule "hexint" subtype=capture negate=
- rx260_cur."!cursor_pos"(rx260_pos)
- $P10 = rx260_cur."hexint"()
- unless $P10, rx260_fail
- rx260_cur."!mark_push"(0, -1, 0, $P10)
+ rx246_cur."!cursor_pos"(rx246_pos)
+ $P10 = rx246_cur."hexint"()
+ unless $P10, rx246_fail
+ rx246_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("hexint")
- rx260_pos = $P10."pos"()
- goto alt264_end
- alt264_1:
+ rx246_pos = $P10."pos"()
+ goto alt250_end
+ alt250_1:
# rx literal "["
- add $I11, rx260_pos, 1
- gt $I11, rx260_eos, rx260_fail
- sub $I11, rx260_pos, rx260_off
- substr $S10, rx260_tgt, $I11, 1
- ne $S10, "[", rx260_fail
- add rx260_pos, 1
+ add $I11, rx246_pos, 1
+ gt $I11, rx246_eos, rx246_fail
+ sub $I11, rx246_pos, rx246_off
+ substr $S10, rx246_tgt, $I11, 1
+ ne $S10, "[", rx246_fail
+ add rx246_pos, 1
# rx subrule "hexints" subtype=capture negate=
- rx260_cur."!cursor_pos"(rx260_pos)
- $P10 = rx260_cur."hexints"()
- unless $P10, rx260_fail
- rx260_cur."!mark_push"(0, -1, 0, $P10)
+ rx246_cur."!cursor_pos"(rx246_pos)
+ $P10 = rx246_cur."hexints"()
+ unless $P10, rx246_fail
+ rx246_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("hexints")
- rx260_pos = $P10."pos"()
+ rx246_pos = $P10."pos"()
# rx literal "]"
- add $I11, rx260_pos, 1
- gt $I11, rx260_eos, rx260_fail
- sub $I11, rx260_pos, rx260_off
- substr $S10, rx260_tgt, $I11, 1
- ne $S10, "]", rx260_fail
- add rx260_pos, 1
- alt264_end:
+ add $I11, rx246_pos, 1
+ gt $I11, rx246_eos, rx246_fail
+ sub $I11, rx246_pos, rx246_off
+ substr $S10, rx246_tgt, $I11, 1
+ ne $S10, "]", rx246_fail
+ add rx246_pos, 1
+ alt250_end:
.annotate 'line', 89
# rx pass
- rx260_cur."!cursor_pass"(rx260_pos, "quote_escape:sym<hex>")
- rx260_cur."!cursor_debug"("PASS ", "quote_escape:sym<hex>", " at pos=", rx260_pos)
- .return (rx260_cur)
- rx260_fail:
-.annotate 'line', 33
- (rx260_rep, rx260_pos, $I10, $P10) = rx260_cur."!mark_fail"(0)
- lt rx260_pos, -1, rx260_done
- eq rx260_pos, -1, rx260_fail
+ rx246_cur."!cursor_pass"(rx246_pos, "quote_escape:sym<hex>")
+ rx246_cur."!cursor_debug"("PASS ", "quote_escape:sym<hex>", " at pos=", rx246_pos)
+ .return (rx246_cur)
+ rx246_restart:
+.annotate 'line', 33
+ rx246_cur."!cursor_debug"("NEXT ", "quote_escape:sym<hex>")
+ rx246_fail:
+ (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0)
+ lt rx246_pos, -1, rx246_done
+ eq rx246_pos, -1, rx246_fail
jump $I10
- rx260_done:
- rx260_cur."!cursor_fail"()
- rx260_cur."!cursor_debug"("FAIL ", "quote_escape:sym<hex>")
- .return (rx260_cur)
+ rx246_done:
+ rx246_cur."!cursor_fail"()
+ rx246_cur."!cursor_debug"("FAIL ", "quote_escape:sym<hex>")
+ .return (rx246_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>" :subid("86_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<hex>" :subid("86_1280467467.13603") :method
.annotate 'line', 33
- new $P262, "ResizablePMCArray"
- push $P262, unicode:"\\x"
- .return ($P262)
+ new $P248, "ResizablePMCArray"
+ push $P248, unicode:"\\x"
+ .return ($P248)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<oct>" :subid("87_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<oct>" :subid("87_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx266_tgt
- .local int rx266_pos
- .local int rx266_off
- .local int rx266_eos
- .local int rx266_rep
- .local pmc rx266_cur
- (rx266_cur, rx266_pos, rx266_tgt) = self."!cursor_start"()
- rx266_cur."!cursor_debug"("START ", "quote_escape:sym<oct>")
- .lex unicode:"$\x{a2}", rx266_cur
+ .local string rx252_tgt
+ .local int rx252_pos
+ .local int rx252_off
+ .local int rx252_eos
+ .local int rx252_rep
+ .local pmc rx252_cur
+ (rx252_cur, rx252_pos, rx252_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx252_cur
.local pmc match
.lex "$/", match
- length rx266_eos, rx266_tgt
- gt rx266_pos, rx266_eos, rx266_done
- set rx266_off, 0
- lt rx266_pos, 2, rx266_start
- sub rx266_off, rx266_pos, 1
- substr rx266_tgt, rx266_tgt, rx266_off
- rx266_start:
+ length rx252_eos, rx252_tgt
+ gt rx252_pos, rx252_eos, rx252_done
+ set rx252_off, 0
+ lt rx252_pos, 2, rx252_start
+ sub rx252_off, rx252_pos, 1
+ substr rx252_tgt, rx252_tgt, rx252_off
+ rx252_start:
+ eq $I10, 1, rx252_restart
+ rx252_cur."!cursor_debug"("START ", "quote_escape:sym<oct>")
$I10 = self.'from'()
- ne $I10, -1, rxscan269_done
- goto rxscan269_scan
- rxscan269_loop:
- ($P10) = rx266_cur."from"()
+ ne $I10, -1, rxscan255_done
+ goto rxscan255_scan
+ rxscan255_loop:
+ ($P10) = rx252_cur."from"()
inc $P10
- set rx266_pos, $P10
- ge rx266_pos, rx266_eos, rxscan269_done
- rxscan269_scan:
- set_addr $I10, rxscan269_loop
- rx266_cur."!mark_push"(0, rx266_pos, $I10)
- rxscan269_done:
+ set rx252_pos, $P10
+ ge rx252_pos, rx252_eos, rxscan255_done
+ rxscan255_scan:
+ set_addr $I10, rxscan255_loop
+ rx252_cur."!mark_push"(0, rx252_pos, $I10)
+ rxscan255_done:
.annotate 'line', 94
# rx literal "\\o"
- add $I11, rx266_pos, 2
- gt $I11, rx266_eos, rx266_fail
- sub $I11, rx266_pos, rx266_off
- substr $S10, rx266_tgt, $I11, 2
- ne $S10, "\\o", rx266_fail
- add rx266_pos, 2
+ add $I11, rx252_pos, 2
+ gt $I11, rx252_eos, rx252_fail
+ sub $I11, rx252_pos, rx252_off
+ substr $S10, rx252_tgt, $I11, 2
+ ne $S10, "\\o", rx252_fail
+ add rx252_pos, 2
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx266_cur."!cursor_pos"(rx266_pos)
- $P10 = rx266_cur."quotemod_check"("b")
- unless $P10, rx266_fail
- alt270_0:
+ rx252_cur."!cursor_pos"(rx252_pos)
+ $P10 = rx252_cur."quotemod_check"("b")
+ unless $P10, rx252_fail
+ alt256_0:
.annotate 'line', 95
- set_addr $I10, alt270_1
- rx266_cur."!mark_push"(0, rx266_pos, $I10)
+ set_addr $I10, alt256_1
+ rx252_cur."!mark_push"(0, rx252_pos, $I10)
# rx subrule "octint" subtype=capture negate=
- rx266_cur."!cursor_pos"(rx266_pos)
- $P10 = rx266_cur."octint"()
- unless $P10, rx266_fail
- rx266_cur."!mark_push"(0, -1, 0, $P10)
+ rx252_cur."!cursor_pos"(rx252_pos)
+ $P10 = rx252_cur."octint"()
+ unless $P10, rx252_fail
+ rx252_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("octint")
- rx266_pos = $P10."pos"()
- goto alt270_end
- alt270_1:
+ rx252_pos = $P10."pos"()
+ goto alt256_end
+ alt256_1:
# rx literal "["
- add $I11, rx266_pos, 1
- gt $I11, rx266_eos, rx266_fail
- sub $I11, rx266_pos, rx266_off
- substr $S10, rx266_tgt, $I11, 1
- ne $S10, "[", rx266_fail
- add rx266_pos, 1
+ add $I11, rx252_pos, 1
+ gt $I11, rx252_eos, rx252_fail
+ sub $I11, rx252_pos, rx252_off
+ substr $S10, rx252_tgt, $I11, 1
+ ne $S10, "[", rx252_fail
+ add rx252_pos, 1
# rx subrule "octints" subtype=capture negate=
- rx266_cur."!cursor_pos"(rx266_pos)
- $P10 = rx266_cur."octints"()
- unless $P10, rx266_fail
- rx266_cur."!mark_push"(0, -1, 0, $P10)
+ rx252_cur."!cursor_pos"(rx252_pos)
+ $P10 = rx252_cur."octints"()
+ unless $P10, rx252_fail
+ rx252_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("octints")
- rx266_pos = $P10."pos"()
+ rx252_pos = $P10."pos"()
# rx literal "]"
- add $I11, rx266_pos, 1
- gt $I11, rx266_eos, rx266_fail
- sub $I11, rx266_pos, rx266_off
- substr $S10, rx266_tgt, $I11, 1
- ne $S10, "]", rx266_fail
- add rx266_pos, 1
- alt270_end:
+ add $I11, rx252_pos, 1
+ gt $I11, rx252_eos, rx252_fail
+ sub $I11, rx252_pos, rx252_off
+ substr $S10, rx252_tgt, $I11, 1
+ ne $S10, "]", rx252_fail
+ add rx252_pos, 1
+ alt256_end:
.annotate 'line', 93
# rx pass
- rx266_cur."!cursor_pass"(rx266_pos, "quote_escape:sym<oct>")
- rx266_cur."!cursor_debug"("PASS ", "quote_escape:sym<oct>", " at pos=", rx266_pos)
- .return (rx266_cur)
- rx266_fail:
-.annotate 'line', 33
- (rx266_rep, rx266_pos, $I10, $P10) = rx266_cur."!mark_fail"(0)
- lt rx266_pos, -1, rx266_done
- eq rx266_pos, -1, rx266_fail
+ rx252_cur."!cursor_pass"(rx252_pos, "quote_escape:sym<oct>")
+ rx252_cur."!cursor_debug"("PASS ", "quote_escape:sym<oct>", " at pos=", rx252_pos)
+ .return (rx252_cur)
+ rx252_restart:
+.annotate 'line', 33
+ rx252_cur."!cursor_debug"("NEXT ", "quote_escape:sym<oct>")
+ rx252_fail:
+ (rx252_rep, rx252_pos, $I10, $P10) = rx252_cur."!mark_fail"(0)
+ lt rx252_pos, -1, rx252_done
+ eq rx252_pos, -1, rx252_fail
jump $I10
- rx266_done:
- rx266_cur."!cursor_fail"()
- rx266_cur."!cursor_debug"("FAIL ", "quote_escape:sym<oct>")
- .return (rx266_cur)
+ rx252_done:
+ rx252_cur."!cursor_fail"()
+ rx252_cur."!cursor_debug"("FAIL ", "quote_escape:sym<oct>")
+ .return (rx252_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>" :subid("88_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<oct>" :subid("88_1280467467.13603") :method
.annotate 'line', 33
- new $P268, "ResizablePMCArray"
- push $P268, "\\o"
- .return ($P268)
+ new $P254, "ResizablePMCArray"
+ push $P254, "\\o"
+ .return ($P254)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<chr>" :subid("89_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<chr>" :subid("89_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx272_tgt
- .local int rx272_pos
- .local int rx272_off
- .local int rx272_eos
- .local int rx272_rep
- .local pmc rx272_cur
- (rx272_cur, rx272_pos, rx272_tgt) = self."!cursor_start"()
- rx272_cur."!cursor_debug"("START ", "quote_escape:sym<chr>")
- .lex unicode:"$\x{a2}", rx272_cur
+ .local string rx258_tgt
+ .local int rx258_pos
+ .local int rx258_off
+ .local int rx258_eos
+ .local int rx258_rep
+ .local pmc rx258_cur
+ (rx258_cur, rx258_pos, rx258_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx258_cur
.local pmc match
.lex "$/", match
- length rx272_eos, rx272_tgt
- gt rx272_pos, rx272_eos, rx272_done
- set rx272_off, 0
- lt rx272_pos, 2, rx272_start
- sub rx272_off, rx272_pos, 1
- substr rx272_tgt, rx272_tgt, rx272_off
- rx272_start:
+ length rx258_eos, rx258_tgt
+ gt rx258_pos, rx258_eos, rx258_done
+ set rx258_off, 0
+ lt rx258_pos, 2, rx258_start
+ sub rx258_off, rx258_pos, 1
+ substr rx258_tgt, rx258_tgt, rx258_off
+ rx258_start:
+ eq $I10, 1, rx258_restart
+ rx258_cur."!cursor_debug"("START ", "quote_escape:sym<chr>")
$I10 = self.'from'()
- ne $I10, -1, rxscan275_done
- goto rxscan275_scan
- rxscan275_loop:
- ($P10) = rx272_cur."from"()
+ ne $I10, -1, rxscan261_done
+ goto rxscan261_scan
+ rxscan261_loop:
+ ($P10) = rx258_cur."from"()
inc $P10
- set rx272_pos, $P10
- ge rx272_pos, rx272_eos, rxscan275_done
- rxscan275_scan:
- set_addr $I10, rxscan275_loop
- rx272_cur."!mark_push"(0, rx272_pos, $I10)
- rxscan275_done:
+ set rx258_pos, $P10
+ ge rx258_pos, rx258_eos, rxscan261_done
+ rxscan261_scan:
+ set_addr $I10, rxscan261_loop
+ rx258_cur."!mark_push"(0, rx258_pos, $I10)
+ rxscan261_done:
.annotate 'line', 97
# rx literal "\\c"
- add $I11, rx272_pos, 2
- gt $I11, rx272_eos, rx272_fail
- sub $I11, rx272_pos, rx272_off
- substr $S10, rx272_tgt, $I11, 2
- ne $S10, "\\c", rx272_fail
- add rx272_pos, 2
+ add $I11, rx258_pos, 2
+ gt $I11, rx258_eos, rx258_fail
+ sub $I11, rx258_pos, rx258_off
+ substr $S10, rx258_tgt, $I11, 2
+ ne $S10, "\\c", rx258_fail
+ add rx258_pos, 2
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx272_cur."!cursor_pos"(rx272_pos)
- $P10 = rx272_cur."quotemod_check"("b")
- unless $P10, rx272_fail
+ rx258_cur."!cursor_pos"(rx258_pos)
+ $P10 = rx258_cur."quotemod_check"("b")
+ unless $P10, rx258_fail
# rx subrule "charspec" subtype=capture negate=
- rx272_cur."!cursor_pos"(rx272_pos)
- $P10 = rx272_cur."charspec"()
- unless $P10, rx272_fail
- rx272_cur."!mark_push"(0, -1, 0, $P10)
+ rx258_cur."!cursor_pos"(rx258_pos)
+ $P10 = rx258_cur."charspec"()
+ unless $P10, rx258_fail
+ rx258_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("charspec")
- rx272_pos = $P10."pos"()
+ rx258_pos = $P10."pos"()
# rx pass
- rx272_cur."!cursor_pass"(rx272_pos, "quote_escape:sym<chr>")
- rx272_cur."!cursor_debug"("PASS ", "quote_escape:sym<chr>", " at pos=", rx272_pos)
- .return (rx272_cur)
- rx272_fail:
-.annotate 'line', 33
- (rx272_rep, rx272_pos, $I10, $P10) = rx272_cur."!mark_fail"(0)
- lt rx272_pos, -1, rx272_done
- eq rx272_pos, -1, rx272_fail
+ rx258_cur."!cursor_pass"(rx258_pos, "quote_escape:sym<chr>")
+ rx258_cur."!cursor_debug"("PASS ", "quote_escape:sym<chr>", " at pos=", rx258_pos)
+ .return (rx258_cur)
+ rx258_restart:
+.annotate 'line', 33
+ rx258_cur."!cursor_debug"("NEXT ", "quote_escape:sym<chr>")
+ rx258_fail:
+ (rx258_rep, rx258_pos, $I10, $P10) = rx258_cur."!mark_fail"(0)
+ lt rx258_pos, -1, rx258_done
+ eq rx258_pos, -1, rx258_fail
jump $I10
- rx272_done:
- rx272_cur."!cursor_fail"()
- rx272_cur."!cursor_debug"("FAIL ", "quote_escape:sym<chr>")
- .return (rx272_cur)
+ rx258_done:
+ rx258_cur."!cursor_fail"()
+ rx258_cur."!cursor_debug"("FAIL ", "quote_escape:sym<chr>")
+ .return (rx258_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>" :subid("90_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<chr>" :subid("90_1280467467.13603") :method
.annotate 'line', 33
- new $P274, "ResizablePMCArray"
- push $P274, "\\c"
- .return ($P274)
+ new $P260, "ResizablePMCArray"
+ push $P260, "\\c"
+ .return ($P260)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<0>" :subid("91_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<0>" :subid("91_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx277_tgt
- .local int rx277_pos
- .local int rx277_off
- .local int rx277_eos
- .local int rx277_rep
- .local pmc rx277_cur
- (rx277_cur, rx277_pos, rx277_tgt) = self."!cursor_start"()
- rx277_cur."!cursor_debug"("START ", "quote_escape:sym<0>")
- .lex unicode:"$\x{a2}", rx277_cur
+ .local string rx263_tgt
+ .local int rx263_pos
+ .local int rx263_off
+ .local int rx263_eos
+ .local int rx263_rep
+ .local pmc rx263_cur
+ (rx263_cur, rx263_pos, rx263_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx263_cur
.local pmc match
.lex "$/", match
- length rx277_eos, rx277_tgt
- gt rx277_pos, rx277_eos, rx277_done
- set rx277_off, 0
- lt rx277_pos, 2, rx277_start
- sub rx277_off, rx277_pos, 1
- substr rx277_tgt, rx277_tgt, rx277_off
- rx277_start:
+ length rx263_eos, rx263_tgt
+ gt rx263_pos, rx263_eos, rx263_done
+ set rx263_off, 0
+ lt rx263_pos, 2, rx263_start
+ sub rx263_off, rx263_pos, 1
+ substr rx263_tgt, rx263_tgt, rx263_off
+ rx263_start:
+ eq $I10, 1, rx263_restart
+ rx263_cur."!cursor_debug"("START ", "quote_escape:sym<0>")
$I10 = self.'from'()
- ne $I10, -1, rxscan280_done
- goto rxscan280_scan
- rxscan280_loop:
- ($P10) = rx277_cur."from"()
+ ne $I10, -1, rxscan266_done
+ goto rxscan266_scan
+ rxscan266_loop:
+ ($P10) = rx263_cur."from"()
inc $P10
- set rx277_pos, $P10
- ge rx277_pos, rx277_eos, rxscan280_done
- rxscan280_scan:
- set_addr $I10, rxscan280_loop
- rx277_cur."!mark_push"(0, rx277_pos, $I10)
- rxscan280_done:
+ set rx263_pos, $P10
+ ge rx263_pos, rx263_eos, rxscan266_done
+ rxscan266_scan:
+ set_addr $I10, rxscan266_loop
+ rx263_cur."!mark_push"(0, rx263_pos, $I10)
+ rxscan266_done:
.annotate 'line', 98
# rx literal "\\"
- add $I11, rx277_pos, 1
- gt $I11, rx277_eos, rx277_fail
- sub $I11, rx277_pos, rx277_off
- substr $S10, rx277_tgt, $I11, 1
- ne $S10, "\\", rx277_fail
- add rx277_pos, 1
+ add $I11, rx263_pos, 1
+ gt $I11, rx263_eos, rx263_fail
+ sub $I11, rx263_pos, rx263_off
+ substr $S10, rx263_tgt, $I11, 1
+ ne $S10, "\\", rx263_fail
+ add rx263_pos, 1
# rx subcapture "sym"
- set_addr $I10, rxcap_281_fail
- rx277_cur."!mark_push"(0, rx277_pos, $I10)
+ set_addr $I10, rxcap_267_fail
+ rx263_cur."!mark_push"(0, rx263_pos, $I10)
# rx literal "0"
- add $I11, rx277_pos, 1
- gt $I11, rx277_eos, rx277_fail
- sub $I11, rx277_pos, rx277_off
- substr $S10, rx277_tgt, $I11, 1
- ne $S10, "0", rx277_fail
- add rx277_pos, 1
- set_addr $I10, rxcap_281_fail
- ($I12, $I11) = rx277_cur."!mark_peek"($I10)
- rx277_cur."!cursor_pos"($I11)
- ($P10) = rx277_cur."!cursor_start"()
- $P10."!cursor_pass"(rx277_pos, "")
- rx277_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx263_pos, 1
+ gt $I11, rx263_eos, rx263_fail
+ sub $I11, rx263_pos, rx263_off
+ substr $S10, rx263_tgt, $I11, 1
+ ne $S10, "0", rx263_fail
+ add rx263_pos, 1
+ set_addr $I10, rxcap_267_fail
+ ($I12, $I11) = rx263_cur."!mark_peek"($I10)
+ rx263_cur."!cursor_pos"($I11)
+ ($P10) = rx263_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx263_pos, "")
+ rx263_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_281_done
- rxcap_281_fail:
- goto rx277_fail
- rxcap_281_done:
+ goto rxcap_267_done
+ rxcap_267_fail:
+ goto rx263_fail
+ rxcap_267_done:
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx277_cur."!cursor_pos"(rx277_pos)
- $P10 = rx277_cur."quotemod_check"("b")
- unless $P10, rx277_fail
+ rx263_cur."!cursor_pos"(rx263_pos)
+ $P10 = rx263_cur."quotemod_check"("b")
+ unless $P10, rx263_fail
# rx pass
- rx277_cur."!cursor_pass"(rx277_pos, "quote_escape:sym<0>")
- rx277_cur."!cursor_debug"("PASS ", "quote_escape:sym<0>", " at pos=", rx277_pos)
- .return (rx277_cur)
- rx277_fail:
-.annotate 'line', 33
- (rx277_rep, rx277_pos, $I10, $P10) = rx277_cur."!mark_fail"(0)
- lt rx277_pos, -1, rx277_done
- eq rx277_pos, -1, rx277_fail
+ rx263_cur."!cursor_pass"(rx263_pos, "quote_escape:sym<0>")
+ rx263_cur."!cursor_debug"("PASS ", "quote_escape:sym<0>", " at pos=", rx263_pos)
+ .return (rx263_cur)
+ rx263_restart:
+.annotate 'line', 33
+ rx263_cur."!cursor_debug"("NEXT ", "quote_escape:sym<0>")
+ rx263_fail:
+ (rx263_rep, rx263_pos, $I10, $P10) = rx263_cur."!mark_fail"(0)
+ lt rx263_pos, -1, rx263_done
+ eq rx263_pos, -1, rx263_fail
jump $I10
- rx277_done:
- rx277_cur."!cursor_fail"()
- rx277_cur."!cursor_debug"("FAIL ", "quote_escape:sym<0>")
- .return (rx277_cur)
+ rx263_done:
+ rx263_cur."!cursor_fail"()
+ rx263_cur."!cursor_debug"("FAIL ", "quote_escape:sym<0>")
+ .return (rx263_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<0>" :subid("92_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<0>" :subid("92_1280467467.13603") :method
.annotate 'line', 33
- new $P279, "ResizablePMCArray"
- push $P279, "\\0"
- .return ($P279)
+ new $P265, "ResizablePMCArray"
+ push $P265, "\\0"
+ .return ($P265)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<misc>" :subid("93_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<misc>" :subid("93_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .const 'Sub' $P302 = "97_1275811471.14938"
- capture_lex $P302
- .const 'Sub' $P295 = "96_1275811471.14938"
- capture_lex $P295
- .const 'Sub' $P290 = "95_1275811471.14938"
- capture_lex $P290
- .local string rx283_tgt
- .local int rx283_pos
- .local int rx283_off
- .local int rx283_eos
- .local int rx283_rep
- .local pmc rx283_cur
- (rx283_cur, rx283_pos, rx283_tgt) = self."!cursor_start"()
- rx283_cur."!cursor_debug"("START ", "quote_escape:sym<misc>")
- .lex unicode:"$\x{a2}", rx283_cur
+ .const 'Sub' $P288 = "97_1280467467.13603"
+ capture_lex $P288
+ .const 'Sub' $P281 = "96_1280467467.13603"
+ capture_lex $P281
+ .const 'Sub' $P276 = "95_1280467467.13603"
+ capture_lex $P276
+ .local string rx269_tgt
+ .local int rx269_pos
+ .local int rx269_off
+ .local int rx269_eos
+ .local int rx269_rep
+ .local pmc rx269_cur
+ (rx269_cur, rx269_pos, rx269_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx269_cur
.local pmc match
.lex "$/", match
- length rx283_eos, rx283_tgt
- gt rx283_pos, rx283_eos, rx283_done
- set rx283_off, 0
- lt rx283_pos, 2, rx283_start
- sub rx283_off, rx283_pos, 1
- substr rx283_tgt, rx283_tgt, rx283_off
- rx283_start:
+ length rx269_eos, rx269_tgt
+ gt rx269_pos, rx269_eos, rx269_done
+ set rx269_off, 0
+ lt rx269_pos, 2, rx269_start
+ sub rx269_off, rx269_pos, 1
+ substr rx269_tgt, rx269_tgt, rx269_off
+ rx269_start:
+ eq $I10, 1, rx269_restart
+ rx269_cur."!cursor_debug"("START ", "quote_escape:sym<misc>")
$I10 = self.'from'()
- ne $I10, -1, rxscan286_done
- goto rxscan286_scan
- rxscan286_loop:
- ($P10) = rx283_cur."from"()
+ ne $I10, -1, rxscan272_done
+ goto rxscan272_scan
+ rxscan272_loop:
+ ($P10) = rx269_cur."from"()
inc $P10
- set rx283_pos, $P10
- ge rx283_pos, rx283_eos, rxscan286_done
- rxscan286_scan:
- set_addr $I10, rxscan286_loop
- rx283_cur."!mark_push"(0, rx283_pos, $I10)
- rxscan286_done:
+ set rx269_pos, $P10
+ ge rx269_pos, rx269_eos, rxscan272_done
+ rxscan272_scan:
+ set_addr $I10, rxscan272_loop
+ rx269_cur."!mark_push"(0, rx269_pos, $I10)
+ rxscan272_done:
.annotate 'line', 100
- rx283_cur."!cursor_pos"(rx283_pos)
- find_lex $P287, unicode:"$\x{a2}"
- $P288 = $P287."MATCH"()
- store_lex "$/", $P288
- .const 'Sub' $P290 = "95_1275811471.14938"
- capture_lex $P290
- $P291 = $P290()
+ rx269_cur."!cursor_pos"(rx269_pos)
+ find_lex $P273, unicode:"$\x{a2}"
+ $P274 = $P273."MATCH"()
+ store_lex "$/", $P274
+ .const 'Sub' $P276 = "95_1280467467.13603"
+ capture_lex $P276
+ $P277 = $P276()
# rx literal "\\"
- add $I11, rx283_pos, 1
- gt $I11, rx283_eos, rx283_fail
- sub $I11, rx283_pos, rx283_off
- substr $S10, rx283_tgt, $I11, 1
- ne $S10, "\\", rx283_fail
- add rx283_pos, 1
- alt292_0:
+ add $I11, rx269_pos, 1
+ gt $I11, rx269_eos, rx269_fail
+ sub $I11, rx269_pos, rx269_off
+ substr $S10, rx269_tgt, $I11, 1
+ ne $S10, "\\", rx269_fail
+ add rx269_pos, 1
+ alt278_0:
.annotate 'line', 101
- set_addr $I10, alt292_1
- rx283_cur."!mark_push"(0, rx283_pos, $I10)
+ set_addr $I10, alt278_1
+ rx269_cur."!mark_push"(0, rx269_pos, $I10)
.annotate 'line', 102
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx283_cur."!cursor_pos"(rx283_pos)
- $P10 = rx283_cur."quotemod_check"("b")
- unless $P10, rx283_fail
- alt293_0:
+ rx269_cur."!cursor_pos"(rx269_pos)
+ $P10 = rx269_cur."quotemod_check"("b")
+ unless $P10, rx269_fail
+ alt279_0:
.annotate 'line', 103
- set_addr $I10, alt293_1
- rx283_cur."!mark_push"(0, rx283_pos, $I10)
+ set_addr $I10, alt279_1
+ rx269_cur."!mark_push"(0, rx269_pos, $I10)
.annotate 'line', 104
- # rx subrule $P295 subtype=capture negate=
- rx283_cur."!cursor_pos"(rx283_pos)
- .const 'Sub' $P295 = "96_1275811471.14938"
- capture_lex $P295
- $P10 = rx283_cur.$P295()
- unless $P10, rx283_fail
- rx283_cur."!mark_push"(0, -1, 0, $P10)
+ # rx subrule $P281 subtype=capture negate=
+ rx269_cur."!cursor_pos"(rx269_pos)
+ .const 'Sub' $P281 = "96_1280467467.13603"
+ capture_lex $P281
+ $P10 = rx269_cur.$P281()
+ unless $P10, rx269_fail
+ rx269_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("textqq")
- rx283_pos = $P10."pos"()
- goto alt293_end
- alt293_1:
+ rx269_pos = $P10."pos"()
+ goto alt279_end
+ alt279_1:
.annotate 'line', 105
# rx subcapture "x"
- set_addr $I10, rxcap_298_fail
- rx283_cur."!mark_push"(0, rx283_pos, $I10)
+ set_addr $I10, rxcap_284_fail
+ rx269_cur."!mark_push"(0, rx269_pos, $I10)
# rx charclass w
- ge rx283_pos, rx283_eos, rx283_fail
- sub $I10, rx283_pos, rx283_off
- is_cclass $I11, 8192, rx283_tgt, $I10
- unless $I11, rx283_fail
- inc rx283_pos
- set_addr $I10, rxcap_298_fail
- ($I12, $I11) = rx283_cur."!mark_peek"($I10)
- rx283_cur."!cursor_pos"($I11)
- ($P10) = rx283_cur."!cursor_start"()
- $P10."!cursor_pass"(rx283_pos, "")
- rx283_cur."!mark_push"(0, -1, 0, $P10)
+ ge rx269_pos, rx269_eos, rx269_fail
+ sub $I10, rx269_pos, rx269_off
+ is_cclass $I11, 8192, rx269_tgt, $I10
+ unless $I11, rx269_fail
+ inc rx269_pos
+ set_addr $I10, rxcap_284_fail
+ ($I12, $I11) = rx269_cur."!mark_peek"($I10)
+ rx269_cur."!cursor_pos"($I11)
+ ($P10) = rx269_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx269_pos, "")
+ rx269_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("x")
- goto rxcap_298_done
- rxcap_298_fail:
- goto rx283_fail
- rxcap_298_done:
- rx283_cur."!cursor_pos"(rx283_pos)
- find_lex $P299, unicode:"$\x{a2}"
- $P300 = $P299."MATCH"()
- store_lex "$/", $P300
- .const 'Sub' $P302 = "97_1275811471.14938"
- capture_lex $P302
- $P312 = $P302()
- alt293_end:
+ goto rxcap_284_done
+ rxcap_284_fail:
+ goto rx269_fail
+ rxcap_284_done:
+ rx269_cur."!cursor_pos"(rx269_pos)
+ find_lex $P285, unicode:"$\x{a2}"
+ $P286 = $P285."MATCH"()
+ store_lex "$/", $P286
+ .const 'Sub' $P288 = "97_1280467467.13603"
+ capture_lex $P288
+ $P298 = $P288()
+ alt279_end:
.annotate 'line', 102
- goto alt292_end
- alt292_1:
+ goto alt278_end
+ alt278_1:
.annotate 'line', 107
# rx subcapture "textq"
- set_addr $I10, rxcap_313_fail
- rx283_cur."!mark_push"(0, rx283_pos, $I10)
+ set_addr $I10, rxcap_299_fail
+ rx269_cur."!mark_push"(0, rx269_pos, $I10)
# rx charclass .
- ge rx283_pos, rx283_eos, rx283_fail
- inc rx283_pos
- set_addr $I10, rxcap_313_fail
- ($I12, $I11) = rx283_cur."!mark_peek"($I10)
- rx283_cur."!cursor_pos"($I11)
- ($P10) = rx283_cur."!cursor_start"()
- $P10."!cursor_pass"(rx283_pos, "")
- rx283_cur."!mark_push"(0, -1, 0, $P10)
+ ge rx269_pos, rx269_eos, rx269_fail
+ inc rx269_pos
+ set_addr $I10, rxcap_299_fail
+ ($I12, $I11) = rx269_cur."!mark_peek"($I10)
+ rx269_cur."!cursor_pos"($I11)
+ ($P10) = rx269_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx269_pos, "")
+ rx269_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("textq")
- goto rxcap_313_done
- rxcap_313_fail:
- goto rx283_fail
- rxcap_313_done:
- alt292_end:
+ goto rxcap_299_done
+ rxcap_299_fail:
+ goto rx269_fail
+ rxcap_299_done:
+ alt278_end:
.annotate 'line', 99
# rx pass
- rx283_cur."!cursor_pass"(rx283_pos, "quote_escape:sym<misc>")
- rx283_cur."!cursor_debug"("PASS ", "quote_escape:sym<misc>", " at pos=", rx283_pos)
- .return (rx283_cur)
- rx283_fail:
-.annotate 'line', 33
- (rx283_rep, rx283_pos, $I10, $P10) = rx283_cur."!mark_fail"(0)
- lt rx283_pos, -1, rx283_done
- eq rx283_pos, -1, rx283_fail
+ rx269_cur."!cursor_pass"(rx269_pos, "quote_escape:sym<misc>")
+ rx269_cur."!cursor_debug"("PASS ", "quote_escape:sym<misc>", " at pos=", rx269_pos)
+ .return (rx269_cur)
+ rx269_restart:
+.annotate 'line', 33
+ rx269_cur."!cursor_debug"("NEXT ", "quote_escape:sym<misc>")
+ rx269_fail:
+ (rx269_rep, rx269_pos, $I10, $P10) = rx269_cur."!mark_fail"(0)
+ lt rx269_pos, -1, rx269_done
+ eq rx269_pos, -1, rx269_fail
jump $I10
- rx283_done:
- rx283_cur."!cursor_fail"()
- rx283_cur."!cursor_debug"("FAIL ", "quote_escape:sym<misc>")
- .return (rx283_cur)
+ rx269_done:
+ rx269_cur."!cursor_fail"()
+ rx269_cur."!cursor_debug"("FAIL ", "quote_escape:sym<misc>")
+ .return (rx269_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<misc>" :subid("94_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<misc>" :subid("94_1280467467.13603") :method
.annotate 'line', 33
- new $P285, "ResizablePMCArray"
- push $P285, ""
- .return ($P285)
+ new $P271, "ResizablePMCArray"
+ push $P271, ""
+ .return ($P271)
.end
.namespace ["HLL";"Grammar"]
-.sub "_block289" :anon :subid("95_1275811471.14938") :outer("93_1275811471.14938")
+.sub "_block275" :anon :subid("95_1280467467.13603") :outer("93_1280467467.13603")
.annotate 'line', 100
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "_block294" :anon :subid("96_1275811471.14938") :method :outer("93_1275811471.14938")
+.sub "_block280" :anon :subid("96_1280467467.13603") :method :outer("93_1280467467.13603")
.annotate 'line', 104
- .local string rx296_tgt
- .local int rx296_pos
- .local int rx296_off
- .local int rx296_eos
- .local int rx296_rep
- .local pmc rx296_cur
- (rx296_cur, rx296_pos, rx296_tgt) = self."!cursor_start"()
- rx296_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx296_cur
+ .local string rx282_tgt
+ .local int rx282_pos
+ .local int rx282_off
+ .local int rx282_eos
+ .local int rx282_rep
+ .local pmc rx282_cur
+ (rx282_cur, rx282_pos, rx282_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx282_cur
.local pmc match
.lex "$/", match
- length rx296_eos, rx296_tgt
- gt rx296_pos, rx296_eos, rx296_done
- set rx296_off, 0
- lt rx296_pos, 2, rx296_start
- sub rx296_off, rx296_pos, 1
- substr rx296_tgt, rx296_tgt, rx296_off
- rx296_start:
+ length rx282_eos, rx282_tgt
+ gt rx282_pos, rx282_eos, rx282_done
+ set rx282_off, 0
+ lt rx282_pos, 2, rx282_start
+ sub rx282_off, rx282_pos, 1
+ substr rx282_tgt, rx282_tgt, rx282_off
+ rx282_start:
+ eq $I10, 1, rx282_restart
+ rx282_cur."!cursor_debug"("START ", "")
$I10 = self.'from'()
- ne $I10, -1, rxscan297_done
- goto rxscan297_scan
- rxscan297_loop:
- ($P10) = rx296_cur."from"()
+ ne $I10, -1, rxscan283_done
+ goto rxscan283_scan
+ rxscan283_loop:
+ ($P10) = rx282_cur."from"()
inc $P10
- set rx296_pos, $P10
- ge rx296_pos, rx296_eos, rxscan297_done
- rxscan297_scan:
- set_addr $I10, rxscan297_loop
- rx296_cur."!mark_push"(0, rx296_pos, $I10)
- rxscan297_done:
+ set rx282_pos, $P10
+ ge rx282_pos, rx282_eos, rxscan283_done
+ rxscan283_scan:
+ set_addr $I10, rxscan283_loop
+ rx282_cur."!mark_push"(0, rx282_pos, $I10)
+ rxscan283_done:
# rx charclass W
- ge rx296_pos, rx296_eos, rx296_fail
- sub $I10, rx296_pos, rx296_off
- is_cclass $I11, 8192, rx296_tgt, $I10
- if $I11, rx296_fail
- inc rx296_pos
+ ge rx282_pos, rx282_eos, rx282_fail
+ sub $I10, rx282_pos, rx282_off
+ is_cclass $I11, 8192, rx282_tgt, $I10
+ if $I11, rx282_fail
+ inc rx282_pos
# rx pass
- rx296_cur."!cursor_pass"(rx296_pos, "")
- rx296_cur."!cursor_debug"("PASS ", "", " at pos=", rx296_pos)
- .return (rx296_cur)
- rx296_fail:
- (rx296_rep, rx296_pos, $I10, $P10) = rx296_cur."!mark_fail"(0)
- lt rx296_pos, -1, rx296_done
- eq rx296_pos, -1, rx296_fail
+ rx282_cur."!cursor_pass"(rx282_pos, "")
+ rx282_cur."!cursor_debug"("PASS ", "", " at pos=", rx282_pos)
+ .return (rx282_cur)
+ rx282_restart:
+ rx282_cur."!cursor_debug"("NEXT ", "")
+ rx282_fail:
+ (rx282_rep, rx282_pos, $I10, $P10) = rx282_cur."!mark_fail"(0)
+ lt rx282_pos, -1, rx282_done
+ eq rx282_pos, -1, rx282_fail
jump $I10
- rx296_done:
- rx296_cur."!cursor_fail"()
- rx296_cur."!cursor_debug"("FAIL ", "")
- .return (rx296_cur)
+ rx282_done:
+ rx282_cur."!cursor_fail"()
+ rx282_cur."!cursor_debug"("FAIL ", "")
+ .return (rx282_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "_block301" :anon :subid("97_1275811471.14938") :outer("93_1275811471.14938")
+.sub "_block287" :anon :subid("97_1280467467.13603") :outer("93_1280467467.13603")
.annotate 'line', 105
- find_lex $P303, "$/"
- $P304 = $P303."CURSOR"()
- new $P305, "String"
- assign $P305, "Unrecognized backslash sequence: '\\"
- find_lex $P306, "$/"
- unless_null $P306, vivify_108
- $P306 = root_new ['parrot';'Hash']
+ find_lex $P289, "$/"
+ $P290 = $P289."CURSOR"()
+ new $P291, "String"
+ assign $P291, "Unrecognized backslash sequence: '\\"
+ find_lex $P292, "$/"
+ unless_null $P292, vivify_108
+ $P292 = root_new ['parrot';'Hash']
vivify_108:
- set $P307, $P306["x"]
- unless_null $P307, vivify_109
- new $P307, "Undef"
+ set $P293, $P292["x"]
+ unless_null $P293, vivify_109
+ new $P293, "Undef"
vivify_109:
- $S308 = $P307."Str"()
- concat $P309, $P305, $S308
- concat $P310, $P309, "'"
- $P311 = $P304."panic"($P310)
- .return ($P311)
+ $S294 = $P293."Str"()
+ concat $P295, $P291, $S294
+ concat $P296, $P295, "'"
+ $P297 = $P290."panic"($P296)
+ .return ($P297)
.end
.namespace ["HLL";"Grammar"]
-.sub "charname" :subid("98_1275811471.14938") :method :outer("11_1275811471.14938")
-.annotate 'line', 33
- .const 'Sub' $P324 = "100_1275811471.14938"
- capture_lex $P324
- .local string rx315_tgt
- .local int rx315_pos
- .local int rx315_off
- .local int rx315_eos
- .local int rx315_rep
- .local pmc rx315_cur
- (rx315_cur, rx315_pos, rx315_tgt) = self."!cursor_start"()
- rx315_cur."!cursor_debug"("START ", "charname")
- .lex unicode:"$\x{a2}", rx315_cur
+.sub "charname" :subid("98_1280467467.13603") :method :outer("11_1280467467.13603")
+.annotate 'line', 33
+ .const 'Sub' $P310 = "100_1280467467.13603"
+ capture_lex $P310
+ .local string rx301_tgt
+ .local int rx301_pos
+ .local int rx301_off
+ .local int rx301_eos
+ .local int rx301_rep
+ .local pmc rx301_cur
+ (rx301_cur, rx301_pos, rx301_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx301_cur
.local pmc match
.lex "$/", match
- length rx315_eos, rx315_tgt
- gt rx315_pos, rx315_eos, rx315_done
- set rx315_off, 0
- lt rx315_pos, 2, rx315_start
- sub rx315_off, rx315_pos, 1
- substr rx315_tgt, rx315_tgt, rx315_off
- rx315_start:
+ length rx301_eos, rx301_tgt
+ gt rx301_pos, rx301_eos, rx301_done
+ set rx301_off, 0
+ lt rx301_pos, 2, rx301_start
+ sub rx301_off, rx301_pos, 1
+ substr rx301_tgt, rx301_tgt, rx301_off
+ rx301_start:
+ eq $I10, 1, rx301_restart
+ rx301_cur."!cursor_debug"("START ", "charname")
$I10 = self.'from'()
- ne $I10, -1, rxscan319_done
- goto rxscan319_scan
- rxscan319_loop:
- ($P10) = rx315_cur."from"()
+ ne $I10, -1, rxscan305_done
+ goto rxscan305_scan
+ rxscan305_loop:
+ ($P10) = rx301_cur."from"()
inc $P10
- set rx315_pos, $P10
- ge rx315_pos, rx315_eos, rxscan319_done
- rxscan319_scan:
- set_addr $I10, rxscan319_loop
- rx315_cur."!mark_push"(0, rx315_pos, $I10)
- rxscan319_done:
- alt320_0:
+ set rx301_pos, $P10
+ ge rx301_pos, rx301_eos, rxscan305_done
+ rxscan305_scan:
+ set_addr $I10, rxscan305_loop
+ rx301_cur."!mark_push"(0, rx301_pos, $I10)
+ rxscan305_done:
+ alt306_0:
.annotate 'line', 111
- set_addr $I10, alt320_1
- rx315_cur."!mark_push"(0, rx315_pos, $I10)
+ set_addr $I10, alt306_1
+ rx301_cur."!mark_push"(0, rx301_pos, $I10)
.annotate 'line', 112
# rx subrule "integer" subtype=capture negate=
- rx315_cur."!cursor_pos"(rx315_pos)
- $P10 = rx315_cur."integer"()
- unless $P10, rx315_fail
- rx315_cur."!mark_push"(0, -1, 0, $P10)
+ rx301_cur."!cursor_pos"(rx301_pos)
+ $P10 = rx301_cur."integer"()
+ unless $P10, rx301_fail
+ rx301_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("integer")
- rx315_pos = $P10."pos"()
- goto alt320_end
- alt320_1:
+ rx301_pos = $P10."pos"()
+ goto alt306_end
+ alt306_1:
.annotate 'line', 113
# rx enumcharlist negate=0
- ge rx315_pos, rx315_eos, rx315_fail
- sub $I10, rx315_pos, rx315_off
- substr $S10, rx315_tgt, $I10, 1
+ ge rx301_pos, rx301_eos, rx301_fail
+ sub $I10, rx301_pos, rx301_off
+ substr $S10, rx301_tgt, $I10, 1
index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", $S10
- lt $I11, 0, rx315_fail
- inc rx315_pos
- # rx rxquantf321 ** 0..*
- set_addr $I10, rxquantf321_loop
- rx315_cur."!mark_push"(0, rx315_pos, $I10)
- goto rxquantf321_done
- rxquantf321_loop:
+ lt $I11, 0, rx301_fail
+ inc rx301_pos
+ # rx rxquantf307 ** 0..*
+ set_addr $I10, rxquantf307_loop
+ rx301_cur."!mark_push"(0, rx301_pos, $I10)
+ goto rxquantf307_done
+ rxquantf307_loop:
# rx enumcharlist negate=1
- ge rx315_pos, rx315_eos, rx315_fail
- sub $I10, rx315_pos, rx315_off
- substr $S10, rx315_tgt, $I10, 1
+ ge rx301_pos, rx301_eos, rx301_fail
+ sub $I10, rx301_pos, rx301_off
+ substr $S10, rx301_tgt, $I10, 1
index $I11, "],#", $S10
- ge $I11, 0, rx315_fail
- inc rx315_pos
- set_addr $I10, rxquantf321_loop
- rx315_cur."!mark_push"($I322, rx315_pos, $I10)
- rxquantf321_done:
+ ge $I11, 0, rx301_fail
+ inc rx301_pos
+ set_addr $I10, rxquantf307_loop
+ rx301_cur."!mark_push"(rx301_rep, rx301_pos, $I10)
+ rxquantf307_done:
# rx enumcharlist negate=0
- ge rx315_pos, rx315_eos, rx315_fail
- sub $I10, rx315_pos, rx315_off
- substr $S10, rx315_tgt, $I10, 1
+ ge rx301_pos, rx301_eos, rx301_fail
+ sub $I10, rx301_pos, rx301_off
+ substr $S10, rx301_tgt, $I10, 1
index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)", $S10
- lt $I11, 0, rx315_fail
- inc rx315_pos
+ lt $I11, 0, rx301_fail
+ inc rx301_pos
.annotate 'line', 114
# rx subrule "before" subtype=zerowidth negate=
- rx315_cur."!cursor_pos"(rx315_pos)
- .const 'Sub' $P324 = "100_1275811471.14938"
- capture_lex $P324
- $P10 = rx315_cur."before"($P324)
- unless $P10, rx315_fail
- alt320_end:
+ rx301_cur."!cursor_pos"(rx301_pos)
+ .const 'Sub' $P310 = "100_1280467467.13603"
+ capture_lex $P310
+ $P10 = rx301_cur."before"($P310)
+ unless $P10, rx301_fail
+ alt306_end:
.annotate 'line', 111
# rx pass
- rx315_cur."!cursor_pass"(rx315_pos, "charname")
- rx315_cur."!cursor_debug"("PASS ", "charname", " at pos=", rx315_pos)
- .return (rx315_cur)
- rx315_fail:
-.annotate 'line', 33
- (rx315_rep, rx315_pos, $I10, $P10) = rx315_cur."!mark_fail"(0)
- lt rx315_pos, -1, rx315_done
- eq rx315_pos, -1, rx315_fail
+ rx301_cur."!cursor_pass"(rx301_pos, "charname")
+ rx301_cur."!cursor_debug"("PASS ", "charname", " at pos=", rx301_pos)
+ .return (rx301_cur)
+ rx301_restart:
+.annotate 'line', 33
+ rx301_cur."!cursor_debug"("NEXT ", "charname")
+ rx301_fail:
+ (rx301_rep, rx301_pos, $I10, $P10) = rx301_cur."!mark_fail"(0)
+ lt rx301_pos, -1, rx301_done
+ eq rx301_pos, -1, rx301_fail
jump $I10
- rx315_done:
- rx315_cur."!cursor_fail"()
- rx315_cur."!cursor_debug"("FAIL ", "charname")
- .return (rx315_cur)
+ rx301_done:
+ rx301_cur."!cursor_fail"()
+ rx301_cur."!cursor_debug"("FAIL ", "charname")
+ .return (rx301_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname" :subid("99_1275811471.14938") :method
-.annotate 'line', 33
- $P317 = self."!PREFIX__!subrule"("integer", "")
- new $P318, "ResizablePMCArray"
- push $P318, "Z"
- push $P318, "Y"
- push $P318, "X"
- push $P318, "W"
- push $P318, "V"
- push $P318, "U"
- push $P318, "T"
- push $P318, "S"
- push $P318, "R"
- push $P318, "Q"
- push $P318, "P"
- push $P318, "O"
- push $P318, "N"
- push $P318, "M"
- push $P318, "L"
- push $P318, "K"
- push $P318, "J"
- push $P318, "I"
- push $P318, "H"
- push $P318, "G"
- push $P318, "F"
- push $P318, "E"
- push $P318, "D"
- push $P318, "C"
- push $P318, "B"
- push $P318, "A"
- push $P318, "z"
- push $P318, "y"
- push $P318, "x"
- push $P318, "w"
- push $P318, "v"
- push $P318, "u"
- push $P318, "t"
- push $P318, "s"
- push $P318, "r"
- push $P318, "q"
- push $P318, "p"
- push $P318, "o"
- push $P318, "n"
- push $P318, "m"
- push $P318, "l"
- push $P318, "k"
- push $P318, "j"
- push $P318, "i"
- push $P318, "h"
- push $P318, "g"
- push $P318, "f"
- push $P318, "e"
- push $P318, "d"
- push $P318, "c"
- push $P318, "b"
- push $P318, "a"
- push $P318, $P317
- .return ($P318)
+.sub "!PREFIX__charname" :subid("99_1280467467.13603") :method
+.annotate 'line', 33
+ $P303 = self."!PREFIX__!subrule"("integer", "")
+ new $P304, "ResizablePMCArray"
+ push $P304, "Z"
+ push $P304, "Y"
+ push $P304, "X"
+ push $P304, "W"
+ push $P304, "V"
+ push $P304, "U"
+ push $P304, "T"
+ push $P304, "S"
+ push $P304, "R"
+ push $P304, "Q"
+ push $P304, "P"
+ push $P304, "O"
+ push $P304, "N"
+ push $P304, "M"
+ push $P304, "L"
+ push $P304, "K"
+ push $P304, "J"
+ push $P304, "I"
+ push $P304, "H"
+ push $P304, "G"
+ push $P304, "F"
+ push $P304, "E"
+ push $P304, "D"
+ push $P304, "C"
+ push $P304, "B"
+ push $P304, "A"
+ push $P304, "z"
+ push $P304, "y"
+ push $P304, "x"
+ push $P304, "w"
+ push $P304, "v"
+ push $P304, "u"
+ push $P304, "t"
+ push $P304, "s"
+ push $P304, "r"
+ push $P304, "q"
+ push $P304, "p"
+ push $P304, "o"
+ push $P304, "n"
+ push $P304, "m"
+ push $P304, "l"
+ push $P304, "k"
+ push $P304, "j"
+ push $P304, "i"
+ push $P304, "h"
+ push $P304, "g"
+ push $P304, "f"
+ push $P304, "e"
+ push $P304, "d"
+ push $P304, "c"
+ push $P304, "b"
+ push $P304, "a"
+ push $P304, $P303
+ .return ($P304)
.end
.namespace ["HLL";"Grammar"]
-.sub "_block323" :anon :subid("100_1275811471.14938") :method :outer("98_1275811471.14938")
+.sub "_block309" :anon :subid("100_1280467467.13603") :method :outer("98_1280467467.13603")
.annotate 'line', 114
- .local string rx325_tgt
- .local int rx325_pos
- .local int rx325_off
- .local int rx325_eos
- .local int rx325_rep
- .local pmc rx325_cur
- (rx325_cur, rx325_pos, rx325_tgt) = self."!cursor_start"()
- rx325_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx325_cur
+ .local string rx311_tgt
+ .local int rx311_pos
+ .local int rx311_off
+ .local int rx311_eos
+ .local int rx311_rep
+ .local pmc rx311_cur
+ (rx311_cur, rx311_pos, rx311_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx311_cur
.local pmc match
.lex "$/", match
- length rx325_eos, rx325_tgt
- gt rx325_pos, rx325_eos, rx325_done
- set rx325_off, 0
- lt rx325_pos, 2, rx325_start
- sub rx325_off, rx325_pos, 1
- substr rx325_tgt, rx325_tgt, rx325_off
- rx325_start:
+ length rx311_eos, rx311_tgt
+ gt rx311_pos, rx311_eos, rx311_done
+ set rx311_off, 0
+ lt rx311_pos, 2, rx311_start
+ sub rx311_off, rx311_pos, 1
+ substr rx311_tgt, rx311_tgt, rx311_off
+ rx311_start:
+ eq $I10, 1, rx311_restart
+ rx311_cur."!cursor_debug"("START ", "")
$I10 = self.'from'()
- ne $I10, -1, rxscan326_done
- goto rxscan326_scan
- rxscan326_loop:
- ($P10) = rx325_cur."from"()
+ ne $I10, -1, rxscan312_done
+ goto rxscan312_scan
+ rxscan312_loop:
+ ($P10) = rx311_cur."from"()
inc $P10
- set rx325_pos, $P10
- ge rx325_pos, rx325_eos, rxscan326_done
- rxscan326_scan:
- set_addr $I10, rxscan326_loop
- rx325_cur."!mark_push"(0, rx325_pos, $I10)
- rxscan326_done:
+ set rx311_pos, $P10
+ ge rx311_pos, rx311_eos, rxscan312_done
+ rxscan312_scan:
+ set_addr $I10, rxscan312_loop
+ rx311_cur."!mark_push"(0, rx311_pos, $I10)
+ rxscan312_done:
# rx charclass_q s r 0..-1
- sub $I10, rx325_pos, rx325_off
- find_not_cclass $I11, 32, rx325_tgt, $I10, rx325_eos
- add rx325_pos, rx325_off, $I11
+ sub $I10, rx311_pos, rx311_off
+ find_not_cclass $I11, 32, rx311_tgt, $I10, rx311_eos
+ add rx311_pos, rx311_off, $I11
# rx enumcharlist negate=0
- ge rx325_pos, rx325_eos, rx325_fail
- sub $I10, rx325_pos, rx325_off
- substr $S10, rx325_tgt, $I10, 1
+ ge rx311_pos, rx311_eos, rx311_fail
+ sub $I10, rx311_pos, rx311_off
+ substr $S10, rx311_tgt, $I10, 1
index $I11, "],#", $S10
- lt $I11, 0, rx325_fail
- inc rx325_pos
+ lt $I11, 0, rx311_fail
+ inc rx311_pos
# rx pass
- rx325_cur."!cursor_pass"(rx325_pos, "")
- rx325_cur."!cursor_debug"("PASS ", "", " at pos=", rx325_pos)
- .return (rx325_cur)
- rx325_fail:
- (rx325_rep, rx325_pos, $I10, $P10) = rx325_cur."!mark_fail"(0)
- lt rx325_pos, -1, rx325_done
- eq rx325_pos, -1, rx325_fail
+ rx311_cur."!cursor_pass"(rx311_pos, "")
+ rx311_cur."!cursor_debug"("PASS ", "", " at pos=", rx311_pos)
+ .return (rx311_cur)
+ rx311_restart:
+ rx311_cur."!cursor_debug"("NEXT ", "")
+ rx311_fail:
+ (rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0)
+ lt rx311_pos, -1, rx311_done
+ eq rx311_pos, -1, rx311_fail
jump $I10
- rx325_done:
- rx325_cur."!cursor_fail"()
- rx325_cur."!cursor_debug"("FAIL ", "")
- .return (rx325_cur)
+ rx311_done:
+ rx311_cur."!cursor_fail"()
+ rx311_cur."!cursor_debug"("FAIL ", "")
+ .return (rx311_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "charnames" :subid("101_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "charnames" :subid("101_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx328_tgt
- .local int rx328_pos
- .local int rx328_off
- .local int rx328_eos
- .local int rx328_rep
- .local pmc rx328_cur
- (rx328_cur, rx328_pos, rx328_tgt) = self."!cursor_start"()
- rx328_cur."!cursor_debug"("START ", "charnames")
- rx328_cur."!cursor_caparray"("charname")
- .lex unicode:"$\x{a2}", rx328_cur
+ .local string rx314_tgt
+ .local int rx314_pos
+ .local int rx314_off
+ .local int rx314_eos
+ .local int rx314_rep
+ .local pmc rx314_cur
+ (rx314_cur, rx314_pos, rx314_tgt, $I10) = self."!cursor_start"()
+ rx314_cur."!cursor_caparray"("charname")
+ .lex unicode:"$\x{a2}", rx314_cur
.local pmc match
.lex "$/", match
- length rx328_eos, rx328_tgt
- gt rx328_pos, rx328_eos, rx328_done
- set rx328_off, 0
- lt rx328_pos, 2, rx328_start
- sub rx328_off, rx328_pos, 1
- substr rx328_tgt, rx328_tgt, rx328_off
- rx328_start:
+ length rx314_eos, rx314_tgt
+ gt rx314_pos, rx314_eos, rx314_done
+ set rx314_off, 0
+ lt rx314_pos, 2, rx314_start
+ sub rx314_off, rx314_pos, 1
+ substr rx314_tgt, rx314_tgt, rx314_off
+ rx314_start:
+ eq $I10, 1, rx314_restart
+ rx314_cur."!cursor_debug"("START ", "charnames")
$I10 = self.'from'()
- ne $I10, -1, rxscan331_done
- goto rxscan331_scan
- rxscan331_loop:
- ($P10) = rx328_cur."from"()
+ ne $I10, -1, rxscan317_done
+ goto rxscan317_scan
+ rxscan317_loop:
+ ($P10) = rx314_cur."from"()
inc $P10
- set rx328_pos, $P10
- ge rx328_pos, rx328_eos, rxscan331_done
- rxscan331_scan:
- set_addr $I10, rxscan331_loop
- rx328_cur."!mark_push"(0, rx328_pos, $I10)
- rxscan331_done:
+ set rx314_pos, $P10
+ ge rx314_pos, rx314_eos, rxscan317_done
+ rxscan317_scan:
+ set_addr $I10, rxscan317_loop
+ rx314_cur."!mark_push"(0, rx314_pos, $I10)
+ rxscan317_done:
.annotate 'line', 116
- # rx rxquantr332 ** 1..*
- set_addr $I333, rxquantr332_done
- rx328_cur."!mark_push"(0, -1, $I333)
- rxquantr332_loop:
+ # rx rxquantr318 ** 1..*
+ set_addr $I10, rxquantr318_done
+ rx314_cur."!mark_push"(0, -1, $I10)
+ rxquantr318_loop:
# rx subrule "ws" subtype=method negate=
- rx328_cur."!cursor_pos"(rx328_pos)
- $P10 = rx328_cur."ws"()
- unless $P10, rx328_fail
- rx328_pos = $P10."pos"()
+ rx314_cur."!cursor_pos"(rx314_pos)
+ $P10 = rx314_cur."ws"()
+ unless $P10, rx314_fail
+ rx314_pos = $P10."pos"()
# rx subrule "charname" subtype=capture negate=
- rx328_cur."!cursor_pos"(rx328_pos)
- $P10 = rx328_cur."charname"()
- unless $P10, rx328_fail
- rx328_cur."!mark_push"(0, -1, 0, $P10)
+ rx314_cur."!cursor_pos"(rx314_pos)
+ $P10 = rx314_cur."charname"()
+ unless $P10, rx314_fail
+ rx314_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("charname")
- rx328_pos = $P10."pos"()
+ rx314_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx328_cur."!cursor_pos"(rx328_pos)
- $P10 = rx328_cur."ws"()
- unless $P10, rx328_fail
- rx328_pos = $P10."pos"()
- (rx328_rep) = rx328_cur."!mark_commit"($I333)
- rx328_cur."!mark_push"(rx328_rep, rx328_pos, $I333)
+ rx314_cur."!cursor_pos"(rx314_pos)
+ $P10 = rx314_cur."ws"()
+ unless $P10, rx314_fail
+ rx314_pos = $P10."pos"()
+ set_addr $I10, rxquantr318_done
+ (rx314_rep) = rx314_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr318_done
+ rx314_cur."!mark_push"(rx314_rep, rx314_pos, $I10)
# rx literal ","
- add $I11, rx328_pos, 1
- gt $I11, rx328_eos, rx328_fail
- sub $I11, rx328_pos, rx328_off
- substr $S10, rx328_tgt, $I11, 1
- ne $S10, ",", rx328_fail
- add rx328_pos, 1
- goto rxquantr332_loop
- rxquantr332_done:
+ add $I11, rx314_pos, 1
+ gt $I11, rx314_eos, rx314_fail
+ sub $I11, rx314_pos, rx314_off
+ substr $S10, rx314_tgt, $I11, 1
+ ne $S10, ",", rx314_fail
+ add rx314_pos, 1
+ goto rxquantr318_loop
+ rxquantr318_done:
# rx pass
- rx328_cur."!cursor_pass"(rx328_pos, "charnames")
- rx328_cur."!cursor_debug"("PASS ", "charnames", " at pos=", rx328_pos)
- .return (rx328_cur)
- rx328_fail:
-.annotate 'line', 33
- (rx328_rep, rx328_pos, $I10, $P10) = rx328_cur."!mark_fail"(0)
- lt rx328_pos, -1, rx328_done
- eq rx328_pos, -1, rx328_fail
+ rx314_cur."!cursor_pass"(rx314_pos, "charnames")
+ rx314_cur."!cursor_debug"("PASS ", "charnames", " at pos=", rx314_pos)
+ .return (rx314_cur)
+ rx314_restart:
+.annotate 'line', 33
+ rx314_cur."!cursor_debug"("NEXT ", "charnames")
+ rx314_fail:
+ (rx314_rep, rx314_pos, $I10, $P10) = rx314_cur."!mark_fail"(0)
+ lt rx314_pos, -1, rx314_done
+ eq rx314_pos, -1, rx314_fail
jump $I10
- rx328_done:
- rx328_cur."!cursor_fail"()
- rx328_cur."!cursor_debug"("FAIL ", "charnames")
- .return (rx328_cur)
+ rx314_done:
+ rx314_cur."!cursor_fail"()
+ rx314_cur."!cursor_debug"("FAIL ", "charnames")
+ .return (rx314_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames" :subid("102_1275811471.14938") :method
+.sub "!PREFIX__charnames" :subid("102_1280467467.13603") :method
.annotate 'line', 33
- new $P330, "ResizablePMCArray"
- push $P330, ""
- .return ($P330)
+ new $P316, "ResizablePMCArray"
+ push $P316, ""
+ .return ($P316)
.end
.namespace ["HLL";"Grammar"]
-.sub "charspec" :subid("103_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "charspec" :subid("103_1280467467.13603") :method :outer("11_1280467467.13603")
.annotate 'line', 33
- .local string rx335_tgt
- .local int rx335_pos
- .local int rx335_off
- .local int rx335_eos
- .local int rx335_rep
- .local pmc rx335_cur
- (rx335_cur, rx335_pos, rx335_tgt) = self."!cursor_start"()
- rx335_cur."!cursor_debug"("START ", "charspec")
- .lex unicode:"$\x{a2}", rx335_cur
+ .local string rx320_tgt
+ .local int rx320_pos
+ .local int rx320_off
+ .local int rx320_eos
+ .local int rx320_rep
+ .local pmc rx320_cur
+ (rx320_cur, rx320_pos, rx320_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx320_cur
.local pmc match
.lex "$/", match
- length rx335_eos, rx335_tgt
- gt rx335_pos, rx335_eos, rx335_done
- set rx335_off, 0
- lt rx335_pos, 2, rx335_start
- sub rx335_off, rx335_pos, 1
- substr rx335_tgt, rx335_tgt, rx335_off
- rx335_start:
+ length rx320_eos, rx320_tgt
+ gt rx320_pos, rx320_eos, rx320_done
+ set rx320_off, 0
+ lt rx320_pos, 2, rx320_start
+ sub rx320_off, rx320_pos, 1
+ substr rx320_tgt, rx320_tgt, rx320_off
+ rx320_start:
+ eq $I10, 1, rx320_restart
+ rx320_cur."!cursor_debug"("START ", "charspec")
$I10 = self.'from'()
- ne $I10, -1, rxscan340_done
- goto rxscan340_scan
- rxscan340_loop:
- ($P10) = rx335_cur."from"()
+ ne $I10, -1, rxscan325_done
+ goto rxscan325_scan
+ rxscan325_loop:
+ ($P10) = rx320_cur."from"()
inc $P10
- set rx335_pos, $P10
- ge rx335_pos, rx335_eos, rxscan340_done
- rxscan340_scan:
- set_addr $I10, rxscan340_loop
- rx335_cur."!mark_push"(0, rx335_pos, $I10)
- rxscan340_done:
- alt341_0:
+ set rx320_pos, $P10
+ ge rx320_pos, rx320_eos, rxscan325_done
+ rxscan325_scan:
+ set_addr $I10, rxscan325_loop
+ rx320_cur."!mark_push"(0, rx320_pos, $I10)
+ rxscan325_done:
+ alt326_0:
.annotate 'line', 118
- set_addr $I10, alt341_1
- rx335_cur."!mark_push"(0, rx335_pos, $I10)
+ set_addr $I10, alt326_1
+ rx320_cur."!mark_push"(0, rx320_pos, $I10)
.annotate 'line', 119
# rx literal "["
- add $I11, rx335_pos, 1
- gt $I11, rx335_eos, rx335_fail
- sub $I11, rx335_pos, rx335_off
- substr $S10, rx335_tgt, $I11, 1
- ne $S10, "[", rx335_fail
- add rx335_pos, 1
+ add $I11, rx320_pos, 1
+ gt $I11, rx320_eos, rx320_fail
+ sub $I11, rx320_pos, rx320_off
+ substr $S10, rx320_tgt, $I11, 1
+ ne $S10, "[", rx320_fail
+ add rx320_pos, 1
# rx subrule "charnames" subtype=capture negate=
- rx335_cur."!cursor_pos"(rx335_pos)
- $P10 = rx335_cur."charnames"()
- unless $P10, rx335_fail
- rx335_cur."!mark_push"(0, -1, 0, $P10)
+ rx320_cur."!cursor_pos"(rx320_pos)
+ $P10 = rx320_cur."charnames"()
+ unless $P10, rx320_fail
+ rx320_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("charnames")
- rx335_pos = $P10."pos"()
+ rx320_pos = $P10."pos"()
# rx literal "]"
- add $I11, rx335_pos, 1
- gt $I11, rx335_eos, rx335_fail
- sub $I11, rx335_pos, rx335_off
- substr $S10, rx335_tgt, $I11, 1
- ne $S10, "]", rx335_fail
- add rx335_pos, 1
- goto alt341_end
- alt341_1:
- set_addr $I10, alt341_2
- rx335_cur."!mark_push"(0, rx335_pos, $I10)
+ add $I11, rx320_pos, 1
+ gt $I11, rx320_eos, rx320_fail
+ sub $I11, rx320_pos, rx320_off
+ substr $S10, rx320_tgt, $I11, 1
+ ne $S10, "]", rx320_fail
+ add rx320_pos, 1
+ goto alt326_end
+ alt326_1:
+ set_addr $I10, alt326_2
+ rx320_cur."!mark_push"(0, rx320_pos, $I10)
.annotate 'line', 120
# rx charclass_q d r 1..-1
- sub $I10, rx335_pos, rx335_off
- find_not_cclass $I11, 8, rx335_tgt, $I10, rx335_eos
+ sub $I10, rx320_pos, rx320_off
+ find_not_cclass $I11, 8, rx320_tgt, $I10, rx320_eos
add $I12, $I10, 1
- lt $I11, $I12, rx335_fail
- add rx335_pos, rx335_off, $I11
- # rx rxquantr342 ** 0..*
- set_addr $I343, rxquantr342_done
- rx335_cur."!mark_push"(0, rx335_pos, $I343)
- rxquantr342_loop:
+ lt $I11, $I12, rx320_fail
+ add rx320_pos, rx320_off, $I11
+ # rx rxquantr327 ** 0..*
+ set_addr $I10, rxquantr327_done
+ rx320_cur."!mark_push"(0, rx320_pos, $I10)
+ rxquantr327_loop:
# rx literal "_"
- add $I11, rx335_pos, 1
- gt $I11, rx335_eos, rx335_fail
- sub $I11, rx335_pos, rx335_off
- substr $S10, rx335_tgt, $I11, 1
- ne $S10, "_", rx335_fail
- add rx335_pos, 1
+ add $I11, rx320_pos, 1
+ gt $I11, rx320_eos, rx320_fail
+ sub $I11, rx320_pos, rx320_off
+ substr $S10, rx320_tgt, $I11, 1
+ ne $S10, "_", rx320_fail
+ add rx320_pos, 1
# rx charclass_q d r 1..-1
- sub $I10, rx335_pos, rx335_off
- find_not_cclass $I11, 8, rx335_tgt, $I10, rx335_eos
+ sub $I10, rx320_pos, rx320_off
+ find_not_cclass $I11, 8, rx320_tgt, $I10, rx320_eos
add $I12, $I10, 1
- lt $I11, $I12, rx335_fail
- add rx335_pos, rx335_off, $I11
- (rx335_rep) = rx335_cur."!mark_commit"($I343)
- rx335_cur."!mark_push"(rx335_rep, rx335_pos, $I343)
- goto rxquantr342_loop
- rxquantr342_done:
- goto alt341_end
- alt341_2:
- set_addr $I10, alt341_3
- rx335_cur."!mark_push"(0, rx335_pos, $I10)
+ lt $I11, $I12, rx320_fail
+ add rx320_pos, rx320_off, $I11
+ set_addr $I10, rxquantr327_done
+ (rx320_rep) = rx320_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr327_done
+ rx320_cur."!mark_push"(rx320_rep, rx320_pos, $I10)
+ goto rxquantr327_loop
+ rxquantr327_done:
+ goto alt326_end
+ alt326_2:
+ set_addr $I10, alt326_3
+ rx320_cur."!mark_push"(0, rx320_pos, $I10)
.annotate 'line', 121
# rx enumcharlist negate=0
- ge rx335_pos, rx335_eos, rx335_fail
- sub $I10, rx335_pos, rx335_off
- substr $S10, rx335_tgt, $I10, 1
+ ge rx320_pos, rx320_eos, rx320_fail
+ sub $I10, rx320_pos, rx320_off
+ substr $S10, rx320_tgt, $I10, 1
index $I11, "?@ABCDEFGHIJKLMNOPQRSTUVWXYZ", $S10
- lt $I11, 0, rx335_fail
- inc rx335_pos
- goto alt341_end
- alt341_3:
+ lt $I11, 0, rx320_fail
+ inc rx320_pos
+ goto alt326_end
+ alt326_3:
.annotate 'line', 122
# rx subrule "panic" subtype=method negate=
- rx335_cur."!cursor_pos"(rx335_pos)
- $P10 = rx335_cur."panic"("Unrecognized \\c character")
- unless $P10, rx335_fail
- rx335_pos = $P10."pos"()
- alt341_end:
+ rx320_cur."!cursor_pos"(rx320_pos)
+ $P10 = rx320_cur."panic"("Unrecognized \\c character")
+ unless $P10, rx320_fail
+ rx320_pos = $P10."pos"()
+ alt326_end:
.annotate 'line', 117
# rx pass
- rx335_cur."!cursor_pass"(rx335_pos, "charspec")
- rx335_cur."!cursor_debug"("PASS ", "charspec", " at pos=", rx335_pos)
- .return (rx335_cur)
- rx335_fail:
-.annotate 'line', 33
- (rx335_rep, rx335_pos, $I10, $P10) = rx335_cur."!mark_fail"(0)
- lt rx335_pos, -1, rx335_done
- eq rx335_pos, -1, rx335_fail
+ rx320_cur."!cursor_pass"(rx320_pos, "charspec")
+ rx320_cur."!cursor_debug"("PASS ", "charspec", " at pos=", rx320_pos)
+ .return (rx320_cur)
+ rx320_restart:
+.annotate 'line', 33
+ rx320_cur."!cursor_debug"("NEXT ", "charspec")
+ rx320_fail:
+ (rx320_rep, rx320_pos, $I10, $P10) = rx320_cur."!mark_fail"(0)
+ lt rx320_pos, -1, rx320_done
+ eq rx320_pos, -1, rx320_fail
jump $I10
- rx335_done:
- rx335_cur."!cursor_fail"()
- rx335_cur."!cursor_debug"("FAIL ", "charspec")
- .return (rx335_cur)
+ rx320_done:
+ rx320_cur."!cursor_fail"()
+ rx320_cur."!cursor_debug"("FAIL ", "charspec")
+ .return (rx320_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec" :subid("104_1275811471.14938") :method
-.annotate 'line', 33
- $P337 = self."!PREFIX__!subrule"("panic", "")
- $P338 = self."!PREFIX__!subrule"("charnames", "[")
- new $P339, "ResizablePMCArray"
- push $P339, $P337
- push $P339, "Z"
- push $P339, "Y"
- push $P339, "X"
- push $P339, "W"
- push $P339, "V"
- push $P339, "U"
- push $P339, "T"
- push $P339, "S"
- push $P339, "R"
- push $P339, "Q"
- push $P339, "P"
- push $P339, "O"
- push $P339, "N"
- push $P339, "M"
- push $P339, "L"
- push $P339, "K"
- push $P339, "J"
- push $P339, "I"
- push $P339, "H"
- push $P339, "G"
- push $P339, "F"
- push $P339, "E"
- push $P339, "D"
- push $P339, "C"
- push $P339, "B"
- push $P339, "A"
- push $P339, "@"
- push $P339, "?"
- push $P339, ""
- push $P339, $P338
- .return ($P339)
+.sub "!PREFIX__charspec" :subid("104_1280467467.13603") :method
+.annotate 'line', 33
+ $P322 = self."!PREFIX__!subrule"("panic", "")
+ $P323 = self."!PREFIX__!subrule"("charnames", "[")
+ new $P324, "ResizablePMCArray"
+ push $P324, $P322
+ push $P324, "Z"
+ push $P324, "Y"
+ push $P324, "X"
+ push $P324, "W"
+ push $P324, "V"
+ push $P324, "U"
+ push $P324, "T"
+ push $P324, "S"
+ push $P324, "R"
+ push $P324, "Q"
+ push $P324, "P"
+ push $P324, "O"
+ push $P324, "N"
+ push $P324, "M"
+ push $P324, "L"
+ push $P324, "K"
+ push $P324, "J"
+ push $P324, "I"
+ push $P324, "H"
+ push $P324, "G"
+ push $P324, "F"
+ push $P324, "E"
+ push $P324, "D"
+ push $P324, "C"
+ push $P324, "B"
+ push $P324, "A"
+ push $P324, "@"
+ push $P324, "?"
+ push $P324, ""
+ push $P324, $P323
+ .return ($P324)
.end
.namespace ["HLL";"Grammar"]
-.sub "_block344" :load :anon :subid("105_1275811471.14938")
+.sub "_block328" :load :anon :subid("105_1280467467.13603")
.annotate 'line', 5
- .const 'Sub' $P346 = "11_1275811471.14938"
- $P347 = $P346()
- .return ($P347)
+ .const 'Sub' $P330 = "11_1280467467.13603"
+ $P331 = $P330()
+ .return ($P331)
.end
.namespace []
-.sub "_block349" :load :anon :subid("106_1275811471.14938")
+.sub "_block333" :load :anon :subid("106_1280467467.13603")
.annotate 'line', 1
- .const 'Sub' $P351 = "10_1275811471.14938"
- $P352 = $P351()
- .return ($P352)
+ .const 'Sub' $P335 = "10_1280467467.13603"
+ $P336 = $P335()
+ .return ($P336)
.end
### .include 'gen/hllgrammar-actions.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1275811473.30481")
+.sub "_block11" :anon :subid("10_1280467468.44761")
.annotate 'line', 0
get_hll_global $P14, ["HLL";"Actions"], "_block13"
capture_lex $P14
@@ -4913,15 +5099,15 @@
$P627 = $P14()
.annotate 'line', 1
.return ($P627)
- .const 'Sub' $P629 = "55_1275811473.30481"
+ .const 'Sub' $P629 = "55_1280467468.44761"
.return ($P629)
.end
.namespace []
-.sub "" :load :init :subid("post56") :outer("10_1275811473.30481")
+.sub "" :load :init :subid("post56") :outer("10_1280467468.44761")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1275811473.30481"
+ .const 'Sub' $P12 = "10_1280467468.44761"
.local pmc block
set block, $P12
$P632 = get_root_global ["parrot"], "P6metaclass"
@@ -4930,75 +5116,75 @@
.namespace ["HLL";"Actions"]
-.sub "_block13" :subid("11_1275811473.30481") :outer("10_1275811473.30481")
+.sub "_block13" :subid("11_1280467468.44761") :outer("10_1280467468.44761")
.annotate 'line', 3
- .const 'Sub' $P605 = "53_1275811473.30481"
+ .const 'Sub' $P605 = "53_1280467468.44761"
capture_lex $P605
- .const 'Sub' $P580 = "51_1275811473.30481"
+ .const 'Sub' $P580 = "51_1280467468.44761"
capture_lex $P580
- .const 'Sub' $P550 = "50_1275811473.30481"
+ .const 'Sub' $P550 = "50_1280467468.44761"
capture_lex $P550
- .const 'Sub' $P531 = "49_1275811473.30481"
+ .const 'Sub' $P531 = "49_1280467468.44761"
capture_lex $P531
- .const 'Sub' $P524 = "48_1275811473.30481"
+ .const 'Sub' $P524 = "48_1280467468.44761"
capture_lex $P524
- .const 'Sub' $P514 = "47_1275811473.30481"
+ .const 'Sub' $P514 = "47_1280467468.44761"
capture_lex $P514
- .const 'Sub' $P497 = "46_1275811473.30481"
+ .const 'Sub' $P497 = "46_1280467468.44761"
capture_lex $P497
- .const 'Sub' $P480 = "45_1275811473.30481"
+ .const 'Sub' $P480 = "45_1280467468.44761"
capture_lex $P480
- .const 'Sub' $P473 = "44_1275811473.30481"
+ .const 'Sub' $P473 = "44_1280467468.44761"
capture_lex $P473
- .const 'Sub' $P466 = "43_1275811473.30481"
+ .const 'Sub' $P466 = "43_1280467468.44761"
capture_lex $P466
- .const 'Sub' $P459 = "42_1275811473.30481"
+ .const 'Sub' $P459 = "42_1280467468.44761"
capture_lex $P459
- .const 'Sub' $P452 = "41_1275811473.30481"
+ .const 'Sub' $P452 = "41_1280467468.44761"
capture_lex $P452
- .const 'Sub' $P445 = "40_1275811473.30481"
+ .const 'Sub' $P445 = "40_1280467468.44761"
capture_lex $P445
- .const 'Sub' $P438 = "39_1275811473.30481"
+ .const 'Sub' $P438 = "39_1280467468.44761"
capture_lex $P438
- .const 'Sub' $P428 = "38_1275811473.30481"
+ .const 'Sub' $P428 = "38_1280467468.44761"
capture_lex $P428
- .const 'Sub' $P421 = "37_1275811473.30481"
+ .const 'Sub' $P421 = "37_1280467468.44761"
capture_lex $P421
- .const 'Sub' $P405 = "36_1275811473.30481"
+ .const 'Sub' $P405 = "36_1280467468.44761"
capture_lex $P405
- .const 'Sub' $P330 = "34_1275811473.30481"
+ .const 'Sub' $P330 = "34_1280467468.44761"
capture_lex $P330
- .const 'Sub' $P267 = "31_1275811473.30481"
+ .const 'Sub' $P267 = "31_1280467468.44761"
capture_lex $P267
- .const 'Sub' $P258 = "30_1275811473.30481"
+ .const 'Sub' $P258 = "30_1280467468.44761"
capture_lex $P258
- .const 'Sub' $P249 = "29_1275811473.30481"
+ .const 'Sub' $P249 = "29_1280467468.44761"
capture_lex $P249
- .const 'Sub' $P240 = "28_1275811473.30481"
+ .const 'Sub' $P240 = "28_1280467468.44761"
capture_lex $P240
- .const 'Sub' $P231 = "27_1275811473.30481"
+ .const 'Sub' $P231 = "27_1280467468.44761"
capture_lex $P231
- .const 'Sub' $P222 = "26_1275811473.30481"
+ .const 'Sub' $P222 = "26_1280467468.44761"
capture_lex $P222
- .const 'Sub' $P212 = "25_1275811473.30481"
+ .const 'Sub' $P212 = "25_1280467468.44761"
capture_lex $P212
- .const 'Sub' $P202 = "24_1275811473.30481"
+ .const 'Sub' $P202 = "24_1280467468.44761"
capture_lex $P202
- .const 'Sub' $P194 = "23_1275811473.30481"
+ .const 'Sub' $P194 = "23_1280467468.44761"
capture_lex $P194
- .const 'Sub' $P184 = "22_1275811473.30481"
+ .const 'Sub' $P184 = "22_1280467468.44761"
capture_lex $P184
- .const 'Sub' $P174 = "21_1275811473.30481"
+ .const 'Sub' $P174 = "21_1280467468.44761"
capture_lex $P174
- .const 'Sub' $P73 = "18_1275811473.30481"
+ .const 'Sub' $P73 = "18_1280467468.44761"
capture_lex $P73
- .const 'Sub' $P35 = "15_1275811473.30481"
+ .const 'Sub' $P35 = "15_1280467468.44761"
capture_lex $P35
- .const 'Sub' $P28 = "14_1275811473.30481"
+ .const 'Sub' $P28 = "14_1280467468.44761"
capture_lex $P28
- .const 'Sub' $P22 = "13_1275811473.30481"
+ .const 'Sub' $P22 = "13_1280467468.44761"
capture_lex $P22
- .const 'Sub' $P15 = "12_1275811473.30481"
+ .const 'Sub' $P15 = "12_1280467468.44761"
capture_lex $P15
$P0 = find_dynamic_lex "$*CTXSAVE"
if null $P0 goto ctxsave_done
@@ -5007,18 +5193,18 @@
$P0."ctxsave"()
ctxsave_done:
.annotate 'line', 225
- .const 'Sub' $P605 = "53_1275811473.30481"
+ .const 'Sub' $P605 = "53_1280467468.44761"
newclosure $P622, $P605
.annotate 'line', 3
.return ($P622)
- .const 'Sub' $P624 = "54_1275811473.30481"
+ .const 'Sub' $P624 = "54_1280467468.44761"
.return ($P624)
.end
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "string_to_int" :subid("12_1275811473.30481") :outer("11_1275811473.30481")
+.sub "string_to_int" :subid("12_1280467468.44761") :outer("11_1280467468.44761")
.param pmc param_18
.param pmc param_19
.annotate 'line', 3
@@ -5072,7 +5258,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "ints_to_string" :subid("13_1275811473.30481") :outer("11_1275811473.30481")
+.sub "ints_to_string" :subid("13_1280467468.44761") :outer("11_1280467468.44761")
.param pmc param_25
.annotate 'line', 37
new $P24, 'ExceptionHandler'
@@ -5114,7 +5300,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "CTXSAVE" :subid("14_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "CTXSAVE" :subid("14_1280467468.44761") :method :outer("11_1280467468.44761")
.annotate 'line', 62
new $P30, 'ExceptionHandler'
set_addr $P30, control_29
@@ -5144,10 +5330,10 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "SET_BLOCK_OUTER_CTX" :subid("15_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "SET_BLOCK_OUTER_CTX" :subid("15_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_38
.annotate 'line', 76
- .const 'Sub' $P48 = "16_1275811473.30481"
+ .const 'Sub' $P48 = "16_1280467468.44761"
capture_lex $P48
new $P37, 'ExceptionHandler'
set_addr $P37, control_36
@@ -5182,7 +5368,7 @@
set $P43, $I46
goto if_44_end
if_44:
- .const 'Sub' $P48 = "16_1275811473.30481"
+ .const 'Sub' $P48 = "16_1280467468.44761"
capture_lex $P48
$P71 = $P48()
set $P43, $P71
@@ -5199,9 +5385,9 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "_block47" :anon :subid("16_1275811473.30481") :outer("15_1275811473.30481")
+.sub "_block47" :anon :subid("16_1280467468.44761") :outer("15_1280467468.44761")
.annotate 'line', 78
- .const 'Sub' $P62 = "17_1275811473.30481"
+ .const 'Sub' $P62 = "17_1280467468.44761"
capture_lex $P62
.annotate 'line', 79
$P49 = root_new ['parrot';'ResizablePMCArray']
@@ -5231,7 +5417,7 @@
unless $P56, loop68_done
shift $P60, $P56
loop68_redo:
- .const 'Sub' $P62 = "17_1275811473.30481"
+ .const 'Sub' $P62 = "17_1280467468.44761"
capture_lex $P62
$P62($P60)
loop68_next:
@@ -5251,7 +5437,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block61" :anon :subid("17_1275811473.30481") :outer("16_1275811473.30481")
+.sub "_block61" :anon :subid("17_1280467468.44761") :outer("16_1280467468.44761")
.param pmc param_63
.annotate 'line', 82
.lex "$_", param_63
@@ -5267,14 +5453,14 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "EXPR" :subid("18_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "EXPR" :subid("18_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_76
.param pmc param_77 :optional
.param int has_param_77 :opt_flag
.annotate 'line', 89
- .const 'Sub' $P156 = "20_1275811473.30481"
+ .const 'Sub' $P156 = "20_1280467468.44761"
capture_lex $P156
- .const 'Sub' $P123 = "19_1275811473.30481"
+ .const 'Sub' $P123 = "19_1280467468.44761"
capture_lex $P123
new $P75, 'ExceptionHandler'
set_addr $P75, control_74
@@ -5409,7 +5595,7 @@
find_lex $P120, "$past"
$P121 = $P120."name"()
if $P121, unless_119_end
- .const 'Sub' $P123 = "19_1275811473.30481"
+ .const 'Sub' $P123 = "19_1280467468.44761"
capture_lex $P123
$P123()
unless_119_end:
@@ -5433,7 +5619,7 @@
unless $P150, loop167_done
shift $P154, $P150
loop167_redo:
- .const 'Sub' $P156 = "20_1275811473.30481"
+ .const 'Sub' $P156 = "20_1280467468.44761"
capture_lex $P156
$P156($P154)
loop167_next:
@@ -5478,7 +5664,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block122" :anon :subid("19_1275811473.30481") :outer("18_1275811473.30481")
+.sub "_block122" :anon :subid("19_1280467468.44761") :outer("18_1280467468.44761")
.annotate 'line', 98
new $P124, "Undef"
.lex "$name", $P124
@@ -5528,7 +5714,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block155" :anon :subid("20_1275811473.30481") :outer("18_1275811473.30481")
+.sub "_block155" :anon :subid("20_1280467468.44761") :outer("18_1280467468.44761")
.param pmc param_157
.annotate 'line', 109
.lex "$_", param_157
@@ -5552,7 +5738,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<circumfix>" :subid("21_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "term:sym<circumfix>" :subid("21_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_177
.annotate 'line', 114
new $P176, 'ExceptionHandler'
@@ -5583,7 +5769,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "termish" :subid("22_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "termish" :subid("22_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_187
.annotate 'line', 116
new $P186, 'ExceptionHandler'
@@ -5614,7 +5800,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "nullterm" :subid("23_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "nullterm" :subid("23_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_197
.annotate 'line', 117
new $P196, 'ExceptionHandler'
@@ -5637,7 +5823,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "nullterm_alt" :subid("24_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "nullterm_alt" :subid("24_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_205
.annotate 'line', 118
new $P204, 'ExceptionHandler'
@@ -5668,7 +5854,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "integer" :subid("25_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "integer" :subid("25_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_215
.annotate 'line', 120
new $P214, 'ExceptionHandler'
@@ -5699,7 +5885,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "dec_number" :subid("26_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "dec_number" :subid("26_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_225
.annotate 'line', 122
new $P224, 'ExceptionHandler'
@@ -5723,7 +5909,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "decint" :subid("27_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "decint" :subid("27_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_234
.annotate 'line', 124
new $P233, 'ExceptionHandler'
@@ -5747,7 +5933,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "hexint" :subid("28_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "hexint" :subid("28_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_243
.annotate 'line', 125
new $P242, 'ExceptionHandler'
@@ -5771,7 +5957,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "octint" :subid("29_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "octint" :subid("29_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_252
.annotate 'line', 126
new $P251, 'ExceptionHandler'
@@ -5795,7 +5981,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "binint" :subid("30_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "binint" :subid("30_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_261
.annotate 'line', 127
new $P260, 'ExceptionHandler'
@@ -5819,10 +6005,10 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_EXPR" :subid("31_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_EXPR" :subid("31_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_270
.annotate 'line', 129
- .const 'Sub' $P286 = "32_1275811473.30481"
+ .const 'Sub' $P286 = "32_1280467468.44761"
capture_lex $P286
new $P269, 'ExceptionHandler'
set_addr $P269, control_268
@@ -5854,7 +6040,7 @@
$P282 = $P280."ACCEPTS"($P281)
if $P282, if_279
.annotate 'line', 135
- .const 'Sub' $P286 = "32_1275811473.30481"
+ .const 'Sub' $P286 = "32_1280467468.44761"
capture_lex $P286
$P286()
goto if_279_end
@@ -5894,9 +6080,9 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "_block285" :anon :subid("32_1275811473.30481") :outer("31_1275811473.30481")
+.sub "_block285" :anon :subid("32_1280467468.44761") :outer("31_1280467468.44761")
.annotate 'line', 135
- .const 'Sub' $P305 = "33_1275811473.30481"
+ .const 'Sub' $P305 = "33_1280467468.44761"
capture_lex $P305
.annotate 'line', 136
$P287 = root_new ['parrot';'ResizablePMCArray']
@@ -5909,7 +6095,7 @@
.annotate 'line', 137
find_lex $P294, "@words"
set $N295, $P294
- isgt $I296, $N295, 1.0
+ isne $I296, $N295, 1.0
if $I296, if_293
.annotate 'line', 142
find_lex $P313, "@words"
@@ -5947,7 +6133,7 @@
unless $P300, loop310_done
shift $P303, $P300
loop310_redo:
- .const 'Sub' $P305 = "33_1275811473.30481"
+ .const 'Sub' $P305 = "33_1280467468.44761"
capture_lex $P305
$P305($P303)
loop310_next:
@@ -5970,7 +6156,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block304" :anon :subid("33_1275811473.30481") :outer("32_1275811473.30481")
+.sub "_block304" :anon :subid("33_1280467468.44761") :outer("32_1280467468.44761")
.param pmc param_306
.annotate 'line', 139
.lex "$_", param_306
@@ -5983,10 +6169,10 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_delimited" :subid("34_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_delimited" :subid("34_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_333
.annotate 'line', 152
- .const 'Sub' $P345 = "35_1275811473.30481"
+ .const 'Sub' $P345 = "35_1280467468.44761"
capture_lex $P345
new $P332, 'ExceptionHandler'
set_addr $P332, control_331
@@ -6029,7 +6215,7 @@
unless $P339, loop377_done
shift $P343, $P339
loop377_redo:
- .const 'Sub' $P345 = "35_1275811473.30481"
+ .const 'Sub' $P345 = "35_1280467468.44761"
capture_lex $P345
$P345($P343)
loop377_next:
@@ -6107,7 +6293,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block344" :anon :subid("35_1275811473.30481") :outer("34_1275811473.30481")
+.sub "_block344" :anon :subid("35_1280467468.44761") :outer("34_1280467468.44761")
.param pmc param_347
.annotate 'line', 156
new $P346, "Undef"
@@ -6177,7 +6363,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_atom" :subid("36_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_atom" :subid("36_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_408
.annotate 'line', 177
new $P407, 'ExceptionHandler'
@@ -6227,7 +6413,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<backslash>" :subid("37_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<backslash>" :subid("37_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_424
.annotate 'line', 181
new $P423, 'ExceptionHandler'
@@ -6249,7 +6435,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<stopper>" :subid("38_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<stopper>" :subid("38_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_431
.annotate 'line', 182
new $P430, 'ExceptionHandler'
@@ -6280,7 +6466,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<bs>" :subid("39_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<bs>" :subid("39_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_441
.annotate 'line', 184
new $P440, 'ExceptionHandler'
@@ -6302,7 +6488,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<nl>" :subid("40_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<nl>" :subid("40_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_448
.annotate 'line', 185
new $P447, 'ExceptionHandler'
@@ -6324,7 +6510,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<cr>" :subid("41_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<cr>" :subid("41_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_455
.annotate 'line', 186
new $P454, 'ExceptionHandler'
@@ -6346,7 +6532,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<tab>" :subid("42_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<tab>" :subid("42_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_462
.annotate 'line', 187
new $P461, 'ExceptionHandler'
@@ -6368,7 +6554,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<ff>" :subid("43_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<ff>" :subid("43_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_469
.annotate 'line', 188
new $P468, 'ExceptionHandler'
@@ -6390,7 +6576,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<esc>" :subid("44_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<esc>" :subid("44_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_476
.annotate 'line', 189
new $P475, 'ExceptionHandler'
@@ -6412,7 +6598,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<hex>" :subid("45_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<hex>" :subid("45_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_483
.annotate 'line', 191
new $P482, 'ExceptionHandler'
@@ -6471,7 +6657,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<oct>" :subid("46_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<oct>" :subid("46_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_500
.annotate 'line', 195
new $P499, 'ExceptionHandler'
@@ -6530,7 +6716,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<chr>" :subid("47_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<chr>" :subid("47_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_517
.annotate 'line', 199
new $P516, 'ExceptionHandler'
@@ -6563,7 +6749,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<0>" :subid("48_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<0>" :subid("48_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_527
.annotate 'line', 203
new $P526, 'ExceptionHandler'
@@ -6587,7 +6773,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<misc>" :subid("49_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<misc>" :subid("49_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_534
.annotate 'line', 207
new $P533, 'ExceptionHandler'
@@ -6646,7 +6832,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "charname" :subid("50_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "charname" :subid("50_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_553
.annotate 'line', 211
new $P552, 'ExceptionHandler'
@@ -6720,10 +6906,10 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "charnames" :subid("51_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "charnames" :subid("51_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_583
.annotate 'line', 219
- .const 'Sub' $P592 = "52_1275811473.30481"
+ .const 'Sub' $P592 = "52_1280467468.44761"
capture_lex $P592
new $P582, 'ExceptionHandler'
set_addr $P582, control_581
@@ -6757,7 +6943,7 @@
unless $P586, loop598_done
shift $P590, $P586
loop598_redo:
- .const 'Sub' $P592 = "52_1275811473.30481"
+ .const 'Sub' $P592 = "52_1280467468.44761"
capture_lex $P592
$P592($P590)
loop598_next:
@@ -6786,7 +6972,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block591" :anon :subid("52_1275811473.30481") :outer("51_1275811473.30481")
+.sub "_block591" :anon :subid("52_1280467468.44761") :outer("51_1280467468.44761")
.param pmc param_593
.annotate 'line', 221
.lex "$_", param_593
@@ -6801,7 +6987,7 @@
.namespace ["HLL";"Actions"]
.include "except_types.pasm"
-.sub "charspec" :subid("53_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "charspec" :subid("53_1280467468.44761") :method :outer("11_1280467468.44761")
.param pmc param_608
.annotate 'line', 225
new $P607, 'ExceptionHandler'
@@ -6851,18 +7037,18 @@
.namespace ["HLL";"Actions"]
-.sub "_block623" :load :anon :subid("54_1275811473.30481")
+.sub "_block623" :load :anon :subid("54_1280467468.44761")
.annotate 'line', 3
- .const 'Sub' $P625 = "11_1275811473.30481"
+ .const 'Sub' $P625 = "11_1280467468.44761"
$P626 = $P625()
.return ($P626)
.end
.namespace []
-.sub "_block628" :load :anon :subid("55_1275811473.30481")
+.sub "_block628" :load :anon :subid("55_1280467468.44761")
.annotate 'line', 1
- .const 'Sub' $P630 = "10_1275811473.30481"
+ .const 'Sub' $P630 = "10_1280467468.44761"
$P631 = $P630()
.return ($P631)
.end
@@ -6870,7 +7056,7 @@
### .include 'gen/hllcompiler.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1275811474.72541")
+.sub "_block11" :anon :subid("10_1280467469.30058")
.annotate 'line', 0
get_hll_global $P14, ["HLL";"Compiler"], "_block13"
capture_lex $P14
@@ -6884,82 +7070,82 @@
.annotate 'line', 6
get_hll_global $P14, ["HLL";"Compiler"], "_block13"
capture_lex $P14
- $P492 = $P14()
+ $P497 = $P14()
.annotate 'line', 1
- .return ($P492)
- .const 'Sub' $P494 = "35_1275811474.72541"
- .return ($P494)
+ .return ($P497)
+ .const 'Sub' $P499 = "36_1280467469.30058"
+ .return ($P499)
.end
.namespace []
-.sub "" :load :init :subid("post36") :outer("10_1275811474.72541")
+.sub "" :load :init :subid("post37") :outer("10_1280467469.30058")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1275811474.72541"
+ .const 'Sub' $P12 = "10_1280467469.30058"
.local pmc block
set block, $P12
.annotate 'line', 2
load_bytecode "PCT/HLLCompiler.pbc"
.annotate 'line', 1
- $P497 = get_root_global ["parrot"], "P6metaclass"
- new $P498, "ResizablePMCArray"
- push $P498, "$!language"
- $P497."new_class"("HLL::Compiler", "PCT::HLLCompiler" :named("parent"), $P498 :named("attr"))
+ $P502 = get_root_global ["parrot"], "P6metaclass"
+ new $P503, "ResizablePMCArray"
+ push $P503, "$!language"
+ $P502."new_class"("HLL::Compiler", "PCT::HLLCompiler" :named("parent"), $P503 :named("attr"))
.end
.namespace ["HLL";"Compiler"]
-.sub "_block13" :subid("11_1275811474.72541") :outer("10_1275811474.72541")
+.sub "_block13" :subid("11_1280467469.30058") :outer("10_1280467469.30058")
.annotate 'line', 6
- .const 'Sub' $P484 = "34_1275811474.72541"
- capture_lex $P484
- .const 'Sub' $P442 = "32_1275811474.72541"
- capture_lex $P442
- .const 'Sub' $P298 = "26_1275811474.72541"
+ .const 'Sub' $P489 = "35_1280467469.30058"
+ capture_lex $P489
+ .const 'Sub' $P447 = "33_1280467469.30058"
+ capture_lex $P447
+ .const 'Sub' $P298 = "26_1280467469.30058"
capture_lex $P298
- .const 'Sub' $P283 = "25_1275811474.72541"
+ .const 'Sub' $P283 = "25_1280467469.30058"
capture_lex $P283
- .const 'Sub' $P188 = "20_1275811474.72541"
+ .const 'Sub' $P188 = "20_1280467469.30058"
capture_lex $P188
- .const 'Sub' $P153 = "18_1275811474.72541"
+ .const 'Sub' $P153 = "18_1280467469.30058"
capture_lex $P153
- .const 'Sub' $P138 = "17_1275811474.72541"
+ .const 'Sub' $P138 = "17_1280467469.30058"
capture_lex $P138
- .const 'Sub' $P122 = "16_1275811474.72541"
+ .const 'Sub' $P122 = "16_1280467469.30058"
capture_lex $P122
- .const 'Sub' $P33 = "13_1275811474.72541"
+ .const 'Sub' $P33 = "13_1280467469.30058"
capture_lex $P33
- .const 'Sub' $P15 = "12_1275811474.72541"
+ .const 'Sub' $P15 = "12_1280467469.30058"
capture_lex $P15
.annotate 'line', 14
- .const 'Sub' $P15 = "12_1275811474.72541"
+ .const 'Sub' $P15 = "12_1280467469.30058"
newclosure $P31, $P15
.lex "value_type", $P31
.annotate 'line', 10
find_lex $P32, "value_type"
-.annotate 'line', 163
- .const 'Sub' $P484 = "34_1275811474.72541"
- newclosure $P490, $P484
+.annotate 'line', 165
+ .const 'Sub' $P489 = "35_1280467469.30058"
+ newclosure $P495, $P489
.annotate 'line', 6
- .return ($P490)
+ .return ($P495)
.end
.namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post37") :outer("11_1275811474.72541")
+.sub "" :load :init :subid("post38") :outer("11_1280467469.30058")
.annotate 'line', 6
get_hll_global $P14, ["HLL";"Compiler"], "_block13"
.local pmc block
set block, $P14
.annotate 'line', 11
- get_hll_global $P491, ["HLL"], "Compiler"
- $P491."language"("parrot")
+ get_hll_global $P496, ["HLL"], "Compiler"
+ $P496."language"("parrot")
.end
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "value_type" :subid("12_1275811474.72541") :outer("11_1275811474.72541")
+.sub "value_type" :subid("12_1280467469.30058") :outer("11_1280467469.30058")
.param pmc param_18
.annotate 'line', 14
new $P17, 'ExceptionHandler'
@@ -7004,15 +7190,15 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "get_exports" :subid("13_1275811474.72541") :method :outer("11_1275811474.72541")
+.sub "get_exports" :subid("13_1280467469.30058") :method :outer("11_1280467469.30058")
.param pmc param_36
.param pmc param_39 :slurpy
.param pmc param_37 :optional :named("tagset")
.param int has_param_37 :opt_flag
.annotate 'line', 20
- .const 'Sub' $P105 = "15_1275811474.72541"
+ .const 'Sub' $P105 = "15_1280467469.30058"
capture_lex $P105
- .const 'Sub' $P84 = "14_1275811474.72541"
+ .const 'Sub' $P84 = "14_1280467469.30058"
capture_lex $P84
new $P35, 'ExceptionHandler'
set_addr $P35, control_34
@@ -7020,10 +7206,10 @@
push_eh $P35
.lex "self", self
.lex "$module", param_36
- if has_param_37, optparam_38
+ if has_param_37, optparam_39
new $P38, "Undef"
set param_37, $P38
- optparam_38:
+ optparam_39:
.lex "$tagset", param_37
.lex "@symbols", param_39
.annotate 'line', 27
@@ -7069,17 +7255,17 @@
find_lex $P60, "$tagset"
set $S61, $P60
find_lex $P62, "$module"
- unless_null $P62, vivify_39
+ unless_null $P62, vivify_40
$P62 = root_new ['parrot';'Hash']
- vivify_39:
+ vivify_40:
set $P63, $P62["EXPORT"]
- unless_null $P63, vivify_40
+ unless_null $P63, vivify_41
$P63 = root_new ['parrot';'Hash']
- vivify_40:
+ vivify_41:
set $P64, $P63[$S61]
- unless_null $P64, vivify_41
+ unless_null $P64, vivify_42
new $P64, "Undef"
- vivify_41:
+ vivify_42:
store_lex "%source", $P64
.annotate 'line', 29
find_lex $P66, "%source"
@@ -7108,7 +7294,7 @@
.annotate 'line', 39
find_lex $P101, "%source"
defined $I102, $P101
- unless $I102, for_undef_42
+ unless $I102, for_undef_43
iter $P100, $P101
new $P118, 'ExceptionHandler'
set_addr $P118, loop117_handler
@@ -7118,7 +7304,7 @@
unless $P100, loop117_done
shift $P103, $P100
loop117_redo:
- .const 'Sub' $P105 = "15_1275811474.72541"
+ .const 'Sub' $P105 = "15_1280467469.30058"
capture_lex $P105
$P105($P103)
loop117_next:
@@ -7131,14 +7317,14 @@
eq $P119, .CONTROL_LOOP_REDO, loop117_redo
loop117_done:
pop_eh
- for_undef_42:
+ for_undef_43:
.annotate 'line', 38
goto if_77_end
if_77:
.annotate 'line', 33
find_lex $P80, "@symbols"
defined $I81, $P80
- unless $I81, for_undef_45
+ unless $I81, for_undef_46
iter $P79, $P80
new $P98, 'ExceptionHandler'
set_addr $P98, loop97_handler
@@ -7148,7 +7334,7 @@
unless $P79, loop97_done
shift $P82, $P79
loop97_redo:
- .const 'Sub' $P84 = "14_1275811474.72541"
+ .const 'Sub' $P84 = "14_1280467469.30058"
capture_lex $P84
$P84($P82)
loop97_next:
@@ -7161,7 +7347,7 @@
eq $P99, .CONTROL_LOOP_REDO, loop97_redo
loop97_done:
pop_eh
- for_undef_45:
+ for_undef_46:
if_77_end:
.annotate 'line', 32
find_lex $P120, "%exports"
@@ -7176,7 +7362,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block104" :anon :subid("15_1275811474.72541") :outer("13_1275811474.72541")
+.sub "_block104" :anon :subid("15_1280467469.30058") :outer("13_1280467469.30058")
.param pmc param_107
.annotate 'line', 40
new $P106, "Undef"
@@ -7192,15 +7378,15 @@
find_lex $P113, "$value"
$P114 = "value_type"($P113)
find_lex $P115, "%exports"
- unless_null $P115, vivify_43
+ unless_null $P115, vivify_44
$P115 = root_new ['parrot';'Hash']
store_lex "%exports", $P115
- vivify_43:
+ vivify_44:
set $P116, $P115[$P114]
- unless_null $P116, vivify_44
+ unless_null $P116, vivify_45
$P116 = root_new ['parrot';'Hash']
set $P115[$P114], $P116
- vivify_44:
+ vivify_45:
set $P116[$P112], $P110
.annotate 'line', 39
.return ($P110)
@@ -7208,7 +7394,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block83" :anon :subid("14_1275811474.72541") :outer("13_1275811474.72541")
+.sub "_block83" :anon :subid("14_1280467469.30058") :outer("13_1280467469.30058")
.param pmc param_86
.annotate 'line', 34
new $P85, "Undef"
@@ -7217,13 +7403,13 @@
find_lex $P87, "$_"
set $S88, $P87
find_lex $P89, "%source"
- unless_null $P89, vivify_46
+ unless_null $P89, vivify_47
$P89 = root_new ['parrot';'Hash']
- vivify_46:
+ vivify_47:
set $P90, $P89[$S88]
- unless_null $P90, vivify_47
+ unless_null $P90, vivify_48
new $P90, "Undef"
- vivify_47:
+ vivify_48:
store_lex "$value", $P90
.annotate 'line', 35
find_lex $P91, "$value"
@@ -7231,15 +7417,15 @@
find_lex $P93, "$value"
$P94 = "value_type"($P93)
find_lex $P95, "%exports"
- unless_null $P95, vivify_48
+ unless_null $P95, vivify_49
$P95 = root_new ['parrot';'Hash']
store_lex "%exports", $P95
- vivify_48:
+ vivify_49:
set $P96, $P95[$P94]
- unless_null $P96, vivify_49
+ unless_null $P96, vivify_50
$P96 = root_new ['parrot';'Hash']
set $P95[$P94], $P96
- vivify_49:
+ vivify_50:
set $P96[$P92], $P91
.annotate 'line', 33
.return ($P91)
@@ -7248,7 +7434,7 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "get_module" :subid("16_1275811474.72541") :method :outer("11_1275811474.72541")
+.sub "get_module" :subid("16_1280467469.30058") :method :outer("11_1280467469.30058")
.param pmc param_125
.annotate 'line', 47
new $P124, 'ExceptionHandler'
@@ -7268,9 +7454,9 @@
find_lex $P130, "@name"
find_lex $P131, "self"
getattribute $P132, $P131, "$!language"
- unless_null $P132, vivify_50
+ unless_null $P132, vivify_51
new $P132, "Undef"
- vivify_50:
+ vivify_51:
set $S133, $P132
downcase $S134, $S133
$P130."unshift"($S134)
@@ -7289,7 +7475,7 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "language" :subid("17_1275811474.72541") :method :outer("11_1275811474.72541")
+.sub "language" :subid("17_1280467469.30058") :method :outer("11_1280467469.30058")
.param pmc param_141 :optional
.param int has_param_141 :opt_flag
.annotate 'line', 53
@@ -7298,10 +7484,10 @@
$P140."handle_types"(.CONTROL_RETURN)
push_eh $P140
.lex "self", self
- if has_param_141, optparam_51
+ if has_param_141, optparam_52
new $P142, "Undef"
set param_141, $P142
- optparam_51:
+ optparam_52:
.lex "$name", param_141
.annotate 'line', 54
find_lex $P144, "$name"
@@ -7319,9 +7505,9 @@
.annotate 'line', 54
find_lex $P150, "self"
getattribute $P151, $P150, "$!language"
- unless_null $P151, vivify_52
+ unless_null $P151, vivify_53
new $P151, "Undef"
- vivify_52:
+ vivify_53:
.annotate 'line', 53
.return ($P151)
control_139:
@@ -7334,10 +7520,10 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "load_module" :subid("18_1275811474.72541") :method :outer("11_1275811474.72541")
+.sub "load_module" :subid("18_1280467469.30058") :method :outer("11_1280467469.30058")
.param pmc param_156
.annotate 'line', 61
- .const 'Sub' $P166 = "19_1275811474.72541"
+ .const 'Sub' $P166 = "19_1280467469.30058"
capture_lex $P166
new $P155, 'ExceptionHandler'
set_addr $P155, control_154
@@ -7364,7 +7550,7 @@
assign $P164, 0
store_lex "$loaded", $P164
.annotate 'line', 64
- .const 'Sub' $P166 = "19_1275811474.72541"
+ .const 'Sub' $P166 = "19_1280467469.30058"
capture_lex $P166
$P166()
.annotate 'line', 65
@@ -7394,7 +7580,7 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "_block165" :anon :subid("19_1275811474.72541") :outer("18_1275811474.72541")
+.sub "_block165" :anon :subid("19_1280467469.30058") :outer("18_1280467469.30058")
.annotate 'line', 64
new $P173, 'ExceptionHandler'
set_addr $P173, control_172
@@ -7428,11 +7614,11 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "import" :subid("20_1275811474.72541") :method :outer("11_1275811474.72541")
+.sub "import" :subid("20_1280467469.30058") :method :outer("11_1280467469.30058")
.param pmc param_191
.param pmc param_192
.annotate 'line', 69
- .const 'Sub' $P198 = "21_1275811474.72541"
+ .const 'Sub' $P198 = "21_1280467469.30058"
capture_lex $P198
new $P190, 'ExceptionHandler'
set_addr $P190, control_189
@@ -7444,7 +7630,7 @@
.annotate 'line', 70
find_lex $P194, "%exports"
defined $I195, $P194
- unless $I195, for_undef_53
+ unless $I195, for_undef_54
iter $P193, $P194
new $P280, 'ExceptionHandler'
set_addr $P280, loop279_handler
@@ -7454,7 +7640,7 @@
unless $P193, loop279_done
shift $P196, $P193
loop279_redo:
- .const 'Sub' $P198 = "21_1275811474.72541"
+ .const 'Sub' $P198 = "21_1280467469.30058"
capture_lex $P198
$P198($P196)
loop279_next:
@@ -7467,7 +7653,7 @@
eq $P281, .CONTROL_LOOP_REDO, loop279_redo
loop279_done:
pop_eh
- for_undef_53:
+ for_undef_54:
.annotate 'line', 69
.return ($P193)
control_189:
@@ -7480,14 +7666,14 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "_block197" :anon :subid("21_1275811474.72541") :outer("20_1275811474.72541")
+.sub "_block197" :anon :subid("21_1280467469.30058") :outer("20_1280467469.30058")
.param pmc param_201
.annotate 'line', 70
- .const 'Sub' $P268 = "24_1275811474.72541"
+ .const 'Sub' $P268 = "24_1280467469.30058"
capture_lex $P268
- .const 'Sub' $P248 = "23_1275811474.72541"
+ .const 'Sub' $P248 = "23_1280467469.30058"
capture_lex $P248
- .const 'Sub' $P219 = "22_1275811474.72541"
+ .const 'Sub' $P219 = "22_1280467469.30058"
capture_lex $P219
.annotate 'line', 71
new $P199, "Undef"
@@ -7525,7 +7711,7 @@
.annotate 'line', 80
find_lex $P264, "%items"
defined $I265, $P264
- unless $I265, for_undef_54
+ unless $I265, for_undef_55
iter $P263, $P264
new $P277, 'ExceptionHandler'
set_addr $P277, loop276_handler
@@ -7535,7 +7721,7 @@
unless $P263, loop276_done
shift $P266, $P263
loop276_redo:
- .const 'Sub' $P268 = "24_1275811474.72541"
+ .const 'Sub' $P268 = "24_1280467469.30058"
capture_lex $P268
$P268($P266)
loop276_next:
@@ -7548,7 +7734,7 @@
eq $P278, .CONTROL_LOOP_REDO, loop276_redo
loop276_done:
pop_eh
- for_undef_54:
+ for_undef_55:
.annotate 'line', 79
set $P235, $P263
.annotate 'line', 76
@@ -7557,7 +7743,7 @@
.annotate 'line', 77
find_lex $P244, "%items"
defined $I245, $P244
- unless $I245, for_undef_56
+ unless $I245, for_undef_57
iter $P243, $P244
new $P261, 'ExceptionHandler'
set_addr $P261, loop260_handler
@@ -7567,7 +7753,7 @@
unless $P243, loop260_done
shift $P246, $P243
loop260_redo:
- .const 'Sub' $P248 = "23_1275811474.72541"
+ .const 'Sub' $P248 = "23_1280467469.30058"
capture_lex $P248
$P248($P246)
loop260_next:
@@ -7580,7 +7766,7 @@
eq $P262, .CONTROL_LOOP_REDO, loop260_redo
loop260_done:
pop_eh
- for_undef_56:
+ for_undef_57:
.annotate 'line', 76
set $P235, $P243
if_236_end:
@@ -7591,7 +7777,7 @@
.annotate 'line', 74
find_lex $P215, "%items"
defined $I216, $P215
- unless $I216, for_undef_57
+ unless $I216, for_undef_58
iter $P214, $P215
new $P233, 'ExceptionHandler'
set_addr $P233, loop232_handler
@@ -7601,7 +7787,7 @@
unless $P214, loop232_done
shift $P217, $P214
loop232_redo:
- .const 'Sub' $P219 = "22_1275811474.72541"
+ .const 'Sub' $P219 = "22_1280467469.30058"
capture_lex $P219
$P219($P217)
loop232_next:
@@ -7614,7 +7800,7 @@
eq $P234, .CONTROL_LOOP_REDO, loop232_redo
loop232_done:
pop_eh
- for_undef_57:
+ for_undef_58:
.annotate 'line', 73
set $P206, $P214
if_207_end:
@@ -7624,7 +7810,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block267" :anon :subid("24_1275811474.72541") :outer("21_1275811474.72541")
+.sub "_block267" :anon :subid("24_1280467469.30058") :outer("21_1280467469.30058")
.param pmc param_269
.annotate 'line', 80
.lex "$_", param_269
@@ -7634,17 +7820,17 @@
$P273 = $P272."key"()
set $S274, $P273
find_lex $P275, "$target"
- unless_null $P275, vivify_55
+ unless_null $P275, vivify_56
$P275 = root_new ['parrot';'Hash']
store_lex "$target", $P275
- vivify_55:
+ vivify_56:
set $P275[$S274], $P271
.return ($P271)
.end
.namespace ["HLL";"Compiler"]
-.sub "_block247" :anon :subid("23_1275811474.72541") :outer("21_1275811474.72541")
+.sub "_block247" :anon :subid("23_1280467469.30058") :outer("21_1280467469.30058")
.param pmc param_249
.annotate 'line', 77
.lex "$_", param_249
@@ -7664,7 +7850,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block218" :anon :subid("22_1275811474.72541") :outer("21_1275811474.72541")
+.sub "_block218" :anon :subid("22_1280467469.30058") :outer("21_1280467469.30058")
.param pmc param_220
.annotate 'line', 74
.lex "$_", param_220
@@ -7686,7 +7872,7 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "autoprint" :subid("25_1275811474.72541") :method :outer("11_1275811474.72541")
+.sub "autoprint" :subid("25_1280467469.30058") :method :outer("11_1280467469.30058")
.param pmc param_286
.annotate 'line', 85
new $P285, 'ExceptionHandler'
@@ -7700,12 +7886,12 @@
$P290 = $P289."stdhandle"(1)
$N291 = $P290."tell"()
find_dynamic_lex $P292, "$*AUTOPRINTPOS"
- unless_null $P292, vivify_58
- get_hll_global $P292, "$AUTOPRINTPOS"
unless_null $P292, vivify_59
+ get_hll_global $P292, "$AUTOPRINTPOS"
+ unless_null $P292, vivify_60
die "Contextual $*AUTOPRINTPOS not found"
+ vivify_60:
vivify_59:
- vivify_58:
set $N293, $P292
isgt $I294, $N291, $N293
unless $I294, unless_288
@@ -7730,11 +7916,11 @@
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "interactive" :subid("26_1275811474.72541") :method :outer("11_1275811474.72541")
+.sub "interactive" :subid("26_1280467469.30058") :method :outer("11_1280467469.30058")
.param pmc param_301 :slurpy :named
.annotate 'line', 90
- .const 'Sub' $P331 = "27_1275811474.72541"
- capture_lex $P331
+ .const 'Sub' $P333 = "27_1280467469.30058"
+ capture_lex $P333
new $P300, 'ExceptionHandler'
set_addr $P300, control_299
$P300."handle_types"(.CONTROL_RETURN)
@@ -7750,134 +7936,127 @@
.annotate 'line', 96
new $P304, "Undef"
.lex "$encoding", $P304
+.annotate 'line', 101
+ new $P305, "Undef"
+ .lex "$save_ctx", $P305
.annotate 'line', 91
- find_lex $P305, "%adverbs"
- unless_null $P305, vivify_60
- $P305 = root_new ['parrot';'Hash']
- vivify_60:
- set $P306, $P305["target"]
+ find_lex $P306, "%adverbs"
unless_null $P306, vivify_61
- new $P306, "Undef"
+ $P306 = root_new ['parrot';'Hash']
vivify_61:
- set $S307, $P306
- downcase $S308, $S307
- new $P309, 'String'
- set $P309, $S308
- store_lex "$target", $P309
+ set $P307, $P306["target"]
+ unless_null $P307, vivify_62
+ new $P307, "Undef"
+ vivify_62:
+ set $S308, $P307
+ downcase $S309, $S308
+ new $P310, 'String'
+ set $P310, $S309
+ store_lex "$target", $P310
.annotate 'line', 93
- getinterp $P310
- $P311 = $P310."stdhandle"(2)
- find_lex $P312, "self"
- $S313 = $P312."commandline_banner"()
- print $P311, $S313
+ getinterp $P311
+ $P312 = $P311."stdhandle"(2)
+ find_lex $P313, "self"
+ $S314 = $P313."commandline_banner"()
+ print $P312, $S314
.annotate 'line', 95
- getinterp $P314
- $P315 = $P314."stdhandle"(0)
- store_lex "$stdin", $P315
+ getinterp $P315
+ $P316 = $P315."stdhandle"(0)
+ store_lex "$stdin", $P316
.annotate 'line', 96
- find_lex $P316, "%adverbs"
- unless_null $P316, vivify_62
- $P316 = root_new ['parrot';'Hash']
- vivify_62:
- set $P317, $P316["encoding"]
+ find_lex $P317, "%adverbs"
unless_null $P317, vivify_63
- new $P317, "Undef"
+ $P317 = root_new ['parrot';'Hash']
vivify_63:
- set $S318, $P317
- new $P319, 'String'
- set $P319, $S318
- store_lex "$encoding", $P319
+ set $P318, $P317["encoding"]
+ unless_null $P318, vivify_64
+ new $P318, "Undef"
+ vivify_64:
+ set $S319, $P318
+ new $P320, 'String'
+ set $P320, $S319
+ store_lex "$encoding", $P320
.annotate 'line', 97
- find_lex $P323, "$encoding"
- if $P323, if_322
- set $P321, $P323
- goto if_322_end
- if_322:
find_lex $P324, "$encoding"
- set $S325, $P324
- isne $I326, $S325, "fixed_8"
- new $P321, 'Integer'
- set $P321, $I326
- if_322_end:
- unless $P321, if_320_end
+ if $P324, if_323
+ set $P322, $P324
+ goto if_323_end
+ if_323:
+ find_lex $P325, "$encoding"
+ set $S326, $P325
+ isne $I327, $S326, "fixed_8"
+ new $P322, 'Integer'
+ set $P322, $I327
+ if_323_end:
+ unless $P322, if_321_end
.annotate 'line', 98
- find_lex $P327, "$stdin"
- find_lex $P328, "$encoding"
- $P327."encoding"($P328)
- if_320_end:
-.annotate 'line', 101
- new $P439, 'ExceptionHandler'
- set_addr $P439, loop438_handler
- $P439."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P439
- loop438_test:
- new $P329, "Integer"
- assign $P329, 1
- unless $P329, loop438_done
- loop438_redo:
- .const 'Sub' $P331 = "27_1275811474.72541"
- capture_lex $P331
- $P331()
- loop438_next:
- goto loop438_test
- loop438_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P440, exception, 'type'
- eq $P440, .CONTROL_LOOP_NEXT, loop438_next
- eq $P440, .CONTROL_LOOP_REDO, loop438_redo
- loop438_done:
+ find_lex $P328, "$stdin"
+ find_lex $P329, "$encoding"
+ $P328."encoding"($P329)
+ if_321_end:
+.annotate 'line', 97
+ find_lex $P330, "$save_ctx"
+.annotate 'line', 102
+ new $P444, 'ExceptionHandler'
+ set_addr $P444, loop443_handler
+ $P444."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P444
+ loop443_test:
+ new $P331, "Integer"
+ assign $P331, 1
+ unless $P331, loop443_done
+ loop443_redo:
+ .const 'Sub' $P333 = "27_1280467469.30058"
+ capture_lex $P333
+ $P333()
+ loop443_next:
+ goto loop443_test
+ loop443_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P445, exception, 'type'
+ eq $P445, .CONTROL_LOOP_NEXT, loop443_next
+ eq $P445, .CONTROL_LOOP_REDO, loop443_redo
+ loop443_done:
pop_eh
.annotate 'line', 90
- .return ($P329)
+ .return ($P331)
control_299:
.local pmc exception
.get_results (exception)
- getattribute $P441, exception, "payload"
- .return ($P441)
+ getattribute $P446, exception, "payload"
+ .return ($P446)
.end
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "_block330" :anon :subid("27_1275811474.72541") :outer("26_1275811474.72541")
-.annotate 'line', 101
- .const 'Sub' $P367 = "28_1275811474.72541"
- capture_lex $P367
-.annotate 'line', 104
- new $P332, "Undef"
- .lex "$prompt", $P332
+.sub "_block332" :anon :subid("27_1280467469.30058") :outer("26_1280467469.30058")
+.annotate 'line', 102
+ .const 'Sub' $P365 = "28_1280467469.30058"
+ capture_lex $P365
.annotate 'line', 105
- new $P333, "Undef"
- .lex "$code", $P333
-.annotate 'line', 110
new $P334, "Undef"
- .lex "$*AUTOPRINTPOS", $P334
-.annotate 'line', 111
- get_global $P335, "$interactive_ctx"
- unless_null $P335, vivify_64
+ .lex "$prompt", $P334
+.annotate 'line', 106
new $P335, "Undef"
- set_global "$interactive_ctx", $P335
- vivify_64:
+ .lex "$code", $P335
+.annotate 'line', 111
+ new $P336, "Undef"
+ .lex "$*AUTOPRINTPOS", $P336
.annotate 'line', 112
- get_global $P336, "%interactive_pad"
- unless_null $P336, vivify_65
- $P336 = root_new ['parrot';'Hash']
- set_global "%interactive_pad", $P336
- vivify_65:
-.annotate 'line', 113
new $P337, "Undef"
.lex "$*CTXSAVE", $P337
-.annotate 'line', 114
+.annotate 'line', 113
new $P338, "Undef"
.lex "$*MAIN_CTX", $P338
-.annotate 'line', 102
+.annotate 'line', 103
find_lex $P340, "$stdin"
if $P340, unless_339_end
set $I341, .CONTROL_LOOP_LAST
die 0, $I341
unless_339_end:
-.annotate 'line', 104
+.annotate 'line', 105
find_lex $P343, "self"
$P344 = $P343."commandline_prompt"()
set $P342, $P344
@@ -7888,409 +8067,439 @@
set $P342, $P347
default_345:
store_lex "$prompt", $P342
-.annotate 'line', 105
+.annotate 'line', 106
find_lex $P348, "$stdin"
find_lex $P349, "$prompt"
set $S350, $P349
$P351 = $P348."readline_interactive"($S350)
store_lex "$code", $P351
-.annotate 'line', 107
+.annotate 'line', 108
find_lex $P353, "$code"
isnull $I354, $P353
unless $I354, if_352_end
set $I355, .CONTROL_LOOP_LAST
die 0, $I355
if_352_end:
-.annotate 'line', 110
+.annotate 'line', 111
getinterp $P356
$P357 = $P356."stdhandle"(1)
$P358 = $P357."tell"()
store_lex "$*AUTOPRINTPOS", $P358
- get_global $P359, "$interactive_ctx"
- get_global $P360, "%interactive_pad"
-.annotate 'line', 113
- find_lex $P361, "self"
- store_lex "$*CTXSAVE", $P361
- find_lex $P362, "$*MAIN_CTX"
- unless_null $P362, vivify_66
- get_hll_global $P362, "$MAIN_CTX"
- unless_null $P362, vivify_67
+.annotate 'line', 112
+ find_lex $P359, "self"
+ store_lex "$*CTXSAVE", $P359
+ find_lex $P360, "$*MAIN_CTX"
+ unless_null $P360, vivify_65
+ get_hll_global $P360, "$MAIN_CTX"
+ unless_null $P360, vivify_66
die "Contextual $*MAIN_CTX not found"
- vivify_67:
vivify_66:
-.annotate 'line', 116
- find_lex $P365, "$code"
- if $P365, if_364
- set $P363, $P365
- goto if_364_end
- if_364:
- .const 'Sub' $P367 = "28_1275811474.72541"
- capture_lex $P367
- $P437 = $P367()
- set $P363, $P437
- if_364_end:
-.annotate 'line', 101
- .return ($P363)
+ vivify_65:
+.annotate 'line', 115
+ find_lex $P363, "$code"
+ if $P363, if_362
+ set $P361, $P363
+ goto if_362_end
+ if_362:
+ .const 'Sub' $P365 = "28_1280467469.30058"
+ capture_lex $P365
+ $P442 = $P365()
+ set $P361, $P442
+ if_362_end:
+.annotate 'line', 102
+ .return ($P361)
.end
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "_block366" :anon :subid("28_1275811474.72541") :outer("27_1275811474.72541")
+.sub "_block364" :anon :subid("28_1280467469.30058") :outer("27_1280467469.30058")
+.annotate 'line', 115
+ .const 'Sub' $P398 = "31_1280467469.30058"
+ capture_lex $P398
+ .const 'Sub' $P371 = "29_1280467469.30058"
+ capture_lex $P371
+.annotate 'line', 117
+ new $P366, "Undef"
+ .lex "$output", $P366
.annotate 'line', 116
- .const 'Sub' $P405 = "31_1275811474.72541"
- capture_lex $P405
- .const 'Sub' $P373 = "29_1275811474.72541"
- capture_lex $P373
+ find_lex $P367, "$code"
+ concat $P368, $P367, "\n"
+ store_lex "$code", $P368
+ find_lex $P369, "$output"
.annotate 'line', 118
- new $P368, "Undef"
- .lex "$output", $P368
-.annotate 'line', 117
- find_lex $P369, "$code"
- concat $P370, $P369, "\n"
- store_lex "$code", $P370
- find_lex $P371, "$output"
-.annotate 'line', 119
- .const 'Sub' $P373 = "29_1275811474.72541"
- capture_lex $P373
- $P373()
-.annotate 'line', 126
- find_dynamic_lex $P397, "$*MAIN_CTX"
- unless_null $P397, vivify_68
- get_hll_global $P397, "$MAIN_CTX"
- unless_null $P397, vivify_69
+ .const 'Sub' $P371 = "29_1280467469.30058"
+ capture_lex $P371
+ $P371()
+.annotate 'line', 125
+ find_dynamic_lex $P395, "$*MAIN_CTX"
+ unless_null $P395, vivify_67
+ get_hll_global $P395, "$MAIN_CTX"
+ unless_null $P395, vivify_68
die "Contextual $*MAIN_CTX not found"
- vivify_69:
vivify_68:
- defined $I398, $P397
- unless $I398, if_396_end
-.annotate 'line', 127
- find_dynamic_lex $P400, "$*MAIN_CTX"
- unless_null $P400, vivify_70
- get_hll_global $P400, "$MAIN_CTX"
- unless_null $P400, vivify_71
- die "Contextual $*MAIN_CTX not found"
- vivify_71:
- vivify_70:
- $P401 = $P400."lexpad_full"()
- defined $I402, $P401
- unless $I402, for_undef_72
- iter $P399, $P401
- new $P413, 'ExceptionHandler'
- set_addr $P413, loop412_handler
- $P413."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P413
- loop412_test:
- unless $P399, loop412_done
- shift $P403, $P399
- loop412_redo:
- .const 'Sub' $P405 = "31_1275811474.72541"
- capture_lex $P405
- $P405($P403)
- loop412_next:
- goto loop412_test
- loop412_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P414, exception, 'type'
- eq $P414, .CONTROL_LOOP_NEXT, loop412_next
- eq $P414, .CONTROL_LOOP_REDO, loop412_redo
- loop412_done:
- pop_eh
- for_undef_72:
- if_396_end:
-.annotate 'line', 131
- find_lex $P416, "$output"
- isnull $I417, $P416
- unless $I417, if_415_end
- set $I418, .CONTROL_LOOP_NEXT
- die 0, $I418
- if_415_end:
+ vivify_67:
+ defined $I396, $P395
+ unless $I396, if_394_end
+ .const 'Sub' $P398 = "31_1280467469.30058"
+ capture_lex $P398
+ $P398()
+ if_394_end:
.annotate 'line', 133
- find_lex $P421, "$target"
- isfalse $I422, $P421
- if $I422, if_420
+ find_lex $P421, "$output"
+ isnull $I422, $P421
+ unless $I422, if_420_end
+ set $I423, .CONTROL_LOOP_NEXT
+ die 0, $I423
+ if_420_end:
.annotate 'line', 135
- find_lex $P428, "$target"
- set $S429, $P428
- iseq $I430, $S429, "pir"
- if $I430, if_427
+ find_lex $P426, "$target"
+ isfalse $I427, $P426
+ if $I427, if_425
+.annotate 'line', 137
+ find_lex $P433, "$target"
+ set $S434, $P433
+ iseq $I435, $S434, "pir"
+ if $I435, if_432
+.annotate 'line', 140
+ find_lex $P437, "self"
+ find_lex $P438, "$output"
+ find_lex $P439, "$target"
+ find_lex $P440, "%adverbs"
+ $P441 = $P437."dumper"($P438, $P439, $P440 :flat)
+.annotate 'line', 139
+ set $P431, $P441
+.annotate 'line', 137
+ goto if_432_end
+ if_432:
.annotate 'line', 138
- find_lex $P432, "self"
- find_lex $P433, "$output"
- find_lex $P434, "$target"
- find_lex $P435, "%adverbs"
- $P436 = $P432."dumper"($P433, $P434, $P435 :flat)
+ find_lex $P436, "$output"
+ say $P436
+ if_432_end:
.annotate 'line', 137
- set $P426, $P436
+ set $P424, $P431
.annotate 'line', 135
- goto if_427_end
- if_427:
+ goto if_425_end
+ if_425:
.annotate 'line', 136
- find_lex $P431, "$output"
- say $P431
- if_427_end:
+ find_lex $P428, "self"
+ find_lex $P429, "$output"
+ $P430 = $P428."autoprint"($P429)
.annotate 'line', 135
- set $P419, $P426
-.annotate 'line', 133
- goto if_420_end
- if_420:
-.annotate 'line', 134
- find_lex $P423, "self"
- find_lex $P424, "$output"
- $P425 = $P423."autoprint"($P424)
-.annotate 'line', 133
- set $P419, $P425
- if_420_end:
-.annotate 'line', 116
- .return ($P419)
+ set $P424, $P430
+ if_425_end:
+.annotate 'line', 115
+ .return ($P424)
.end
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "_block372" :anon :subid("29_1275811474.72541") :outer("28_1275811474.72541")
-.annotate 'line', 119
- .const 'Sub' $P385 = "30_1275811474.72541"
- capture_lex $P385
- new $P381, 'ExceptionHandler'
- set_addr $P381, control_380
- $P381."handle_types_except"(.CONTROL_RETURN, .CONTROL_OK, .CONTROL_BREAK, .CONTROL_CONTINUE, .CONTROL_TAKE, .CONTROL_LEAVE, .CONTROL_EXIT, .CONTROL_LOOP_NEXT, .CONTROL_LOOP_LAST, .CONTROL_LOOP_REDO)
- push_eh $P381
-.annotate 'line', 120
- find_lex $P374, "self"
- find_lex $P375, "$code"
- get_global $P376, "$interactive_ctx"
- find_lex $P377, "%adverbs"
- $P378 = $P374."eval"($P375, $P377 :flat, $P376 :named("outer_ctx"))
- store_lex "$output", $P378
+.sub "_block370" :anon :subid("29_1280467469.30058") :outer("28_1280467469.30058")
+.annotate 'line', 118
+ .const 'Sub' $P383 = "30_1280467469.30058"
+ capture_lex $P383
+ new $P379, 'ExceptionHandler'
+ set_addr $P379, control_378
+ $P379."handle_types_except"(.CONTROL_RETURN, .CONTROL_OK, .CONTROL_BREAK, .CONTROL_CONTINUE, .CONTROL_TAKE, .CONTROL_LEAVE, .CONTROL_EXIT, .CONTROL_LOOP_NEXT, .CONTROL_LOOP_LAST, .CONTROL_LOOP_REDO)
+ push_eh $P379
.annotate 'line', 119
+ find_lex $P372, "self"
+ find_lex $P373, "$code"
+ find_lex $P374, "$save_ctx"
+ find_lex $P375, "%adverbs"
+ $P376 = $P372."eval"($P373, $P375 :flat, $P374 :named("outer_ctx"))
+ store_lex "$output", $P376
+.annotate 'line', 118
pop_eh
- goto skip_handler_379
- control_380:
-.annotate 'line', 121
+ goto skip_handler_377
+ control_378:
+.annotate 'line', 120
.local pmc exception
.get_results (exception)
- .const 'Sub' $P385 = "30_1275811474.72541"
- newclosure $P393, $P385
- $P393(exception)
- new $P394, 'Integer'
- set $P394, 1
- set exception["handled"], $P394
- set $I395, exception["handled"]
- ne $I395, 1, nothandled_383
- handled_382:
+ .const 'Sub' $P383 = "30_1280467469.30058"
+ newclosure $P391, $P383
+ $P391(exception)
+ new $P392, 'Integer'
+ set $P392, 1
+ set exception["handled"], $P392
+ set $I393, exception["handled"]
+ ne $I393, 1, nothandled_381
+ handled_380:
.return (exception)
- nothandled_383:
+ nothandled_381:
rethrow exception
- skip_handler_379:
-.annotate 'line', 119
+ skip_handler_377:
+.annotate 'line', 118
.return ()
.end
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "_block384" :anon :subid("30_1275811474.72541") :outer("29_1275811474.72541")
- .param pmc param_386
+.sub "_block382" :anon :subid("30_1280467469.30058") :outer("29_1280467469.30058")
+ .param pmc param_384
+.annotate 'line', 120
+ .lex "$_", param_384
+ find_lex $P385, "$_"
+ .lex "$!", $P385
.annotate 'line', 121
- .lex "$_", param_386
- find_lex $P387, "$_"
- .lex "$!", $P387
+ find_lex $P386, "$!"
+ set $S387, $P386
+ new $P388, 'String'
+ set $P388, $S387
+ concat $P389, $P388, "\n"
+ print $P389
.annotate 'line', 122
- find_lex $P388, "$!"
- set $S389, $P388
- new $P390, 'String'
- set $P390, $S389
- concat $P391, $P390, "\n"
- print $P391
-.annotate 'line', 123
- set $I392, .CONTROL_LOOP_NEXT
- die 0, $I392
-.annotate 'line', 121
+ set $I390, .CONTROL_LOOP_NEXT
+ die 0, $I390
+.annotate 'line', 120
.return ()
.end
.namespace ["HLL";"Compiler"]
-.sub "_block404" :anon :subid("31_1275811474.72541") :outer("28_1275811474.72541")
- .param pmc param_406
+.include "except_types.pasm"
+.sub "_block397" :anon :subid("31_1280467469.30058") :outer("28_1280467469.30058")
+.annotate 'line', 125
+ .const 'Sub' $P409 = "32_1280467469.30058"
+ capture_lex $P409
+.annotate 'line', 126
+ get_global $P399, "$interactive_ctx"
+ unless_null $P399, vivify_69
+ new $P399, "Undef"
+ set_global "$interactive_ctx", $P399
+ vivify_69:
.annotate 'line', 127
- .lex "$_", param_406
+ get_global $P400, "%interactive_pad"
+ unless_null $P400, vivify_70
+ $P400 = root_new ['parrot';'Hash']
+ set_global "%interactive_pad", $P400
+ vivify_70:
+.annotate 'line', 125
+ get_global $P401, "$interactive_ctx"
+ get_global $P402, "%interactive_pad"
.annotate 'line', 128
- find_lex $P407, "$_"
- $P408 = $P407."value"()
- find_lex $P409, "$_"
- $P410 = $P409."key"()
- get_global $P411, "%interactive_pad"
- unless_null $P411, vivify_73
- $P411 = root_new ['parrot';'Hash']
- set_global "%interactive_pad", $P411
- vivify_73:
- set $P411[$P410], $P408
-.annotate 'line', 127
- .return ($P408)
+ find_dynamic_lex $P404, "$*MAIN_CTX"
+ unless_null $P404, vivify_71
+ get_hll_global $P404, "$MAIN_CTX"
+ unless_null $P404, vivify_72
+ die "Contextual $*MAIN_CTX not found"
+ vivify_72:
+ vivify_71:
+ $P405 = $P404."lexpad_full"()
+ defined $I406, $P405
+ unless $I406, for_undef_73
+ iter $P403, $P405
+ new $P417, 'ExceptionHandler'
+ set_addr $P417, loop416_handler
+ $P417."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P417
+ loop416_test:
+ unless $P403, loop416_done
+ shift $P407, $P403
+ loop416_redo:
+ .const 'Sub' $P409 = "32_1280467469.30058"
+ capture_lex $P409
+ $P409($P407)
+ loop416_next:
+ goto loop416_test
+ loop416_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P418, exception, 'type'
+ eq $P418, .CONTROL_LOOP_NEXT, loop416_next
+ eq $P418, .CONTROL_LOOP_REDO, loop416_redo
+ loop416_done:
+ pop_eh
+ for_undef_73:
+.annotate 'line', 131
+ get_global $P419, "$interactive_ctx"
+ store_lex "$save_ctx", $P419
+.annotate 'line', 125
+ .return ($P419)
+.end
+
+
+.namespace ["HLL";"Compiler"]
+.sub "_block408" :anon :subid("32_1280467469.30058") :outer("31_1280467469.30058")
+ .param pmc param_410
+.annotate 'line', 128
+ .lex "$_", param_410
+.annotate 'line', 129
+ find_lex $P411, "$_"
+ $P412 = $P411."value"()
+ find_lex $P413, "$_"
+ $P414 = $P413."key"()
+ get_global $P415, "%interactive_pad"
+ unless_null $P415, vivify_74
+ $P415 = root_new ['parrot';'Hash']
+ set_global "%interactive_pad", $P415
+ vivify_74:
+ set $P415[$P414], $P412
+.annotate 'line', 128
+ .return ($P412)
.end
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "eval" :subid("32_1275811474.72541") :method :outer("11_1275811474.72541")
- .param pmc param_445
- .param pmc param_446 :slurpy
- .param pmc param_447 :slurpy :named
-.annotate 'line', 144
- .const 'Sub' $P466 = "33_1275811474.72541"
- capture_lex $P466
- new $P444, 'ExceptionHandler'
- set_addr $P444, control_443
- $P444."handle_types"(.CONTROL_RETURN)
- push_eh $P444
- .lex "self", self
- .lex "$code", param_445
- .lex "@args", param_446
- .lex "%adverbs", param_447
-.annotate 'line', 145
- new $P448, "Undef"
- .lex "$output", $P448
-.annotate 'line', 144
- find_lex $P449, "$output"
+.sub "eval" :subid("33_1280467469.30058") :method :outer("11_1280467469.30058")
+ .param pmc param_450
+ .param pmc param_451 :slurpy
+ .param pmc param_452 :slurpy :named
+.annotate 'line', 146
+ .const 'Sub' $P471 = "34_1280467469.30058"
+ capture_lex $P471
+ new $P449, 'ExceptionHandler'
+ set_addr $P449, control_448
+ $P449."handle_types"(.CONTROL_RETURN)
+ push_eh $P449
+ .lex "self", self
+ .lex "$code", param_450
+ .lex "@args", param_451
+ .lex "%adverbs", param_452
+.annotate 'line', 147
+ new $P453, "Undef"
+ .lex "$output", $P453
.annotate 'line', 146
- find_lex $P450, "self"
- find_lex $P451, "$code"
- find_lex $P452, "%adverbs"
- $P453 = $P450."compile"($P451, $P452 :flat)
- store_lex "$output", $P453
+ find_lex $P454, "$output"
.annotate 'line', 148
- find_lex $P457, "$output"
- isa $I458, $P457, "String"
- new $P459, 'Integer'
- set $P459, $I458
- isfalse $I460, $P459
- if $I460, if_456
- new $P455, 'Integer'
- set $P455, $I460
- goto if_456_end
- if_456:
-.annotate 'line', 149
- find_lex $P461, "%adverbs"
- unless_null $P461, vivify_74
- $P461 = root_new ['parrot';'Hash']
- vivify_74:
- set $P462, $P461["target"]
- unless_null $P462, vivify_75
- new $P462, "Undef"
+ find_lex $P455, "self"
+ find_lex $P456, "$code"
+ find_lex $P457, "%adverbs"
+ $P458 = $P455."compile"($P456, $P457 :flat)
+ store_lex "$output", $P458
+.annotate 'line', 150
+ find_lex $P462, "$output"
+ isa $I463, $P462, "String"
+ new $P464, 'Integer'
+ set $P464, $I463
+ isfalse $I465, $P464
+ if $I465, if_461
+ new $P460, 'Integer'
+ set $P460, $I465
+ goto if_461_end
+ if_461:
+.annotate 'line', 151
+ find_lex $P466, "%adverbs"
+ unless_null $P466, vivify_75
+ $P466 = root_new ['parrot';'Hash']
vivify_75:
- set $S463, $P462
- iseq $I464, $S463, ""
- new $P455, 'Integer'
- set $P455, $I464
- if_456_end:
- unless $P455, if_454_end
- .const 'Sub' $P466 = "33_1275811474.72541"
- capture_lex $P466
- $P466()
- if_454_end:
-.annotate 'line', 148
- find_lex $P482, "$output"
-.annotate 'line', 144
- .return ($P482)
- control_443:
+ set $P467, $P466["target"]
+ unless_null $P467, vivify_76
+ new $P467, "Undef"
+ vivify_76:
+ set $S468, $P467
+ iseq $I469, $S468, ""
+ new $P460, 'Integer'
+ set $P460, $I469
+ if_461_end:
+ unless $P460, if_459_end
+ .const 'Sub' $P471 = "34_1280467469.30058"
+ capture_lex $P471
+ $P471()
+ if_459_end:
+.annotate 'line', 150
+ find_lex $P487, "$output"
+.annotate 'line', 146
+ .return ($P487)
+ control_448:
.local pmc exception
.get_results (exception)
- getattribute $P483, exception, "payload"
- .return ($P483)
+ getattribute $P488, exception, "payload"
+ .return ($P488)
.end
.namespace ["HLL";"Compiler"]
-.sub "_block465" :anon :subid("33_1275811474.72541") :outer("32_1275811474.72541")
-.annotate 'line', 150
- new $P467, "Undef"
- .lex "$outer_ctx", $P467
- find_lex $P468, "%adverbs"
- unless_null $P468, vivify_76
- $P468 = root_new ['parrot';'Hash']
- vivify_76:
- set $P469, $P468["outer_ctx"]
- unless_null $P469, vivify_77
- new $P469, "Undef"
- vivify_77:
- store_lex "$outer_ctx", $P469
-.annotate 'line', 151
- find_lex $P471, "$outer_ctx"
- defined $I472, $P471
- unless $I472, if_470_end
+.sub "_block470" :anon :subid("34_1280467469.30058") :outer("33_1280467469.30058")
.annotate 'line', 152
- find_lex $P473, "$output"
- unless_null $P473, vivify_78
- $P473 = root_new ['parrot';'ResizablePMCArray']
- vivify_78:
- set $P474, $P473[0]
- unless_null $P474, vivify_79
+ new $P472, "Undef"
+ .lex "$outer_ctx", $P472
+ find_lex $P473, "%adverbs"
+ unless_null $P473, vivify_77
+ $P473 = root_new ['parrot';'Hash']
+ vivify_77:
+ set $P474, $P473["outer_ctx"]
+ unless_null $P474, vivify_78
new $P474, "Undef"
+ vivify_78:
+ store_lex "$outer_ctx", $P474
+.annotate 'line', 153
+ find_lex $P476, "$outer_ctx"
+ defined $I477, $P476
+ unless $I477, if_475_end
+.annotate 'line', 154
+ find_lex $P478, "$output"
+ unless_null $P478, vivify_79
+ $P478 = root_new ['parrot';'ResizablePMCArray']
vivify_79:
- find_lex $P475, "$outer_ctx"
- $P474."set_outer_ctx"($P475)
- if_470_end:
-.annotate 'line', 155
- find_lex $P476, "%adverbs"
- unless_null $P476, vivify_80
- $P476 = root_new ['parrot';'Hash']
+ set $P479, $P478[0]
+ unless_null $P479, vivify_80
+ new $P479, "Undef"
vivify_80:
- set $P477, $P476["trace"]
- unless_null $P477, vivify_81
- new $P477, "Undef"
- vivify_81:
- set $I478, $P477
- trace $I478
-.annotate 'line', 156
- find_lex $P479, "$output"
- find_lex $P480, "@args"
- $P481 = $P479($P480 :flat)
- store_lex "$output", $P481
+ find_lex $P480, "$outer_ctx"
+ $P479."set_outer_ctx"($P480)
+ if_475_end:
.annotate 'line', 157
+ find_lex $P481, "%adverbs"
+ unless_null $P481, vivify_81
+ $P481 = root_new ['parrot';'Hash']
+ vivify_81:
+ set $P482, $P481["trace"]
+ unless_null $P482, vivify_82
+ new $P482, "Undef"
+ vivify_82:
+ set $I483, $P482
+ trace $I483
+.annotate 'line', 158
+ find_lex $P484, "$output"
+ find_lex $P485, "@args"
+ $P486 = $P484($P485 :flat)
+ store_lex "$output", $P486
+.annotate 'line', 159
trace 0
-.annotate 'line', 149
+.annotate 'line', 151
.return ()
.end
.namespace ["HLL";"Compiler"]
.include "except_types.pasm"
-.sub "ctxsave" :subid("34_1275811474.72541") :method :outer("11_1275811474.72541")
-.annotate 'line', 163
- new $P486, 'ExceptionHandler'
- set_addr $P486, control_485
- $P486."handle_types"(.CONTROL_RETURN)
- push_eh $P486
- .lex "self", self
+.sub "ctxsave" :subid("35_1280467469.30058") :method :outer("11_1280467469.30058")
.annotate 'line', 165
+ new $P491, 'ExceptionHandler'
+ set_addr $P491, control_490
+ $P491."handle_types"(.CONTROL_RETURN)
+ push_eh $P491
+ .lex "self", self
+.annotate 'line', 167
$P0 = getinterp
- $P487 = $P0['context';1]
+ $P492 = $P0['context';1]
- store_dynamic_lex "$*MAIN_CTX", $P487
-.annotate 'line', 169
- new $P488, "Integer"
- assign $P488, 0
- store_dynamic_lex "$*CTXSAVE", $P488
-.annotate 'line', 163
- .return ($P488)
- control_485:
+ store_dynamic_lex "$*MAIN_CTX", $P492
+.annotate 'line', 171
+ new $P493, "Integer"
+ assign $P493, 0
+ store_dynamic_lex "$*CTXSAVE", $P493
+.annotate 'line', 165
+ .return ($P493)
+ control_490:
.local pmc exception
.get_results (exception)
- getattribute $P489, exception, "payload"
- .return ($P489)
+ getattribute $P494, exception, "payload"
+ .return ($P494)
.end
.namespace []
-.sub "_block493" :load :anon :subid("35_1275811474.72541")
+.sub "_block498" :load :anon :subid("36_1280467469.30058")
.annotate 'line', 1
- .const 'Sub' $P495 = "10_1275811474.72541"
- $P496 = $P495()
- .return ($P496)
+ .const 'Sub' $P500 = "10_1280467469.30058"
+ $P501 = $P500()
+ .return ($P501)
.end
Modified: branches/gc_massacre/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- branches/gc_massacre/ext/nqp-rx/src/stage0/NQP-s0.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/ext/nqp-rx/src/stage0/NQP-s0.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -15,7 +15,7 @@
### .include 'gen/nqp-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1275811487.95429")
+.sub "_block11" :anon :subid("10_1280467477.44751")
.annotate 'line', 0
get_hll_global $P14, ["NQP";"Grammar"], "_block13"
capture_lex $P14
@@ -29,333 +29,341 @@
.annotate 'line', 4
get_hll_global $P14, ["NQP";"Grammar"], "_block13"
capture_lex $P14
- $P1424 = $P14()
+ $P1423 = $P14()
.annotate 'line', 1
- .return ($P1424)
- .const 'Sub' $P1426 = "363_1275811487.95429"
- .return ($P1426)
+ .return ($P1423)
+ .const 'Sub' $P1425 = "371_1280467477.44751"
+ .return ($P1425)
.end
.namespace []
-.sub "" :load :init :subid("post364") :outer("10_1275811487.95429")
+.sub "" :load :init :subid("post372") :outer("10_1280467477.44751")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1275811487.95429"
+ .const 'Sub' $P12 = "10_1280467477.44751"
.local pmc block
set block, $P12
- $P1429 = get_root_global ["parrot"], "P6metaclass"
- $P1429."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
+ $P1428 = get_root_global ["parrot"], "P6metaclass"
+ $P1428."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
.end
.namespace ["NQP";"Grammar"]
-.sub "_block13" :subid("11_1275811487.95429") :outer("10_1275811487.95429")
+.sub "_block13" :subid("11_1280467477.44751") :outer("10_1280467477.44751")
.annotate 'line', 4
get_hll_global $P1340, ["NQP";"Regex"], "_block1339"
capture_lex $P1340
- .const 'Sub' $P1326 = "340_1275811487.95429"
+ .const 'Sub' $P1326 = "348_1280467477.44751"
capture_lex $P1326
- .const 'Sub' $P1320 = "338_1275811487.95429"
+ .const 'Sub' $P1320 = "346_1280467477.44751"
capture_lex $P1320
- .const 'Sub' $P1314 = "336_1275811487.95429"
+ .const 'Sub' $P1314 = "344_1280467477.44751"
capture_lex $P1314
- .const 'Sub' $P1308 = "334_1275811487.95429"
+ .const 'Sub' $P1308 = "342_1280467477.44751"
capture_lex $P1308
- .const 'Sub' $P1302 = "332_1275811487.95429"
+ .const 'Sub' $P1302 = "340_1280467477.44751"
capture_lex $P1302
- .const 'Sub' $P1296 = "330_1275811487.95429"
+ .const 'Sub' $P1296 = "338_1280467477.44751"
capture_lex $P1296
- .const 'Sub' $P1289 = "328_1275811487.95429"
+ .const 'Sub' $P1289 = "336_1280467477.44751"
capture_lex $P1289
- .const 'Sub' $P1282 = "326_1275811487.95429"
+ .const 'Sub' $P1282 = "334_1280467477.44751"
capture_lex $P1282
- .const 'Sub' $P1275 = "324_1275811487.95429"
+ .const 'Sub' $P1275 = "332_1280467477.44751"
capture_lex $P1275
- .const 'Sub' $P1268 = "322_1275811487.95429"
+ .const 'Sub' $P1268 = "330_1280467477.44751"
capture_lex $P1268
- .const 'Sub' $P1262 = "320_1275811487.95429"
+ .const 'Sub' $P1262 = "328_1280467477.44751"
capture_lex $P1262
- .const 'Sub' $P1255 = "318_1275811487.95429"
+ .const 'Sub' $P1255 = "326_1280467477.44751"
capture_lex $P1255
- .const 'Sub' $P1248 = "316_1275811487.95429"
+ .const 'Sub' $P1248 = "324_1280467477.44751"
capture_lex $P1248
- .const 'Sub' $P1241 = "314_1275811487.95429"
+ .const 'Sub' $P1241 = "322_1280467477.44751"
capture_lex $P1241
- .const 'Sub' $P1234 = "312_1275811487.95429"
+ .const 'Sub' $P1234 = "320_1280467477.44751"
capture_lex $P1234
- .const 'Sub' $P1227 = "310_1275811487.95429"
+ .const 'Sub' $P1227 = "318_1280467477.44751"
capture_lex $P1227
- .const 'Sub' $P1220 = "308_1275811487.95429"
+ .const 'Sub' $P1220 = "316_1280467477.44751"
capture_lex $P1220
- .const 'Sub' $P1213 = "306_1275811487.95429"
+ .const 'Sub' $P1213 = "314_1280467477.44751"
capture_lex $P1213
- .const 'Sub' $P1206 = "304_1275811487.95429"
+ .const 'Sub' $P1206 = "312_1280467477.44751"
capture_lex $P1206
- .const 'Sub' $P1199 = "302_1275811487.95429"
+ .const 'Sub' $P1199 = "310_1280467477.44751"
capture_lex $P1199
- .const 'Sub' $P1192 = "300_1275811487.95429"
+ .const 'Sub' $P1192 = "308_1280467477.44751"
capture_lex $P1192
- .const 'Sub' $P1185 = "298_1275811487.95429"
+ .const 'Sub' $P1185 = "306_1280467477.44751"
capture_lex $P1185
- .const 'Sub' $P1178 = "296_1275811487.95429"
+ .const 'Sub' $P1178 = "304_1280467477.44751"
capture_lex $P1178
- .const 'Sub' $P1171 = "294_1275811487.95429"
+ .const 'Sub' $P1171 = "302_1280467477.44751"
capture_lex $P1171
- .const 'Sub' $P1164 = "292_1275811487.95429"
+ .const 'Sub' $P1164 = "300_1280467477.44751"
capture_lex $P1164
- .const 'Sub' $P1157 = "290_1275811487.95429"
+ .const 'Sub' $P1157 = "298_1280467477.44751"
capture_lex $P1157
- .const 'Sub' $P1150 = "288_1275811487.95429"
+ .const 'Sub' $P1150 = "296_1280467477.44751"
capture_lex $P1150
- .const 'Sub' $P1143 = "286_1275811487.95429"
+ .const 'Sub' $P1143 = "294_1280467477.44751"
capture_lex $P1143
- .const 'Sub' $P1136 = "284_1275811487.95429"
+ .const 'Sub' $P1136 = "292_1280467477.44751"
capture_lex $P1136
- .const 'Sub' $P1129 = "282_1275811487.95429"
+ .const 'Sub' $P1129 = "290_1280467477.44751"
capture_lex $P1129
- .const 'Sub' $P1122 = "280_1275811487.95429"
+ .const 'Sub' $P1122 = "288_1280467477.44751"
capture_lex $P1122
- .const 'Sub' $P1115 = "278_1275811487.95429"
+ .const 'Sub' $P1115 = "286_1280467477.44751"
capture_lex $P1115
- .const 'Sub' $P1108 = "276_1275811487.95429"
+ .const 'Sub' $P1108 = "284_1280467477.44751"
capture_lex $P1108
- .const 'Sub' $P1101 = "274_1275811487.95429"
+ .const 'Sub' $P1101 = "282_1280467477.44751"
capture_lex $P1101
- .const 'Sub' $P1094 = "272_1275811487.95429"
+ .const 'Sub' $P1094 = "280_1280467477.44751"
capture_lex $P1094
- .const 'Sub' $P1087 = "270_1275811487.95429"
+ .const 'Sub' $P1087 = "278_1280467477.44751"
capture_lex $P1087
- .const 'Sub' $P1080 = "268_1275811487.95429"
+ .const 'Sub' $P1080 = "276_1280467477.44751"
capture_lex $P1080
- .const 'Sub' $P1074 = "266_1275811487.95429"
- capture_lex $P1074
- .const 'Sub' $P1067 = "264_1275811487.95429"
- capture_lex $P1067
- .const 'Sub' $P1060 = "262_1275811487.95429"
- capture_lex $P1060
- .const 'Sub' $P1053 = "260_1275811487.95429"
+ .const 'Sub' $P1073 = "274_1280467477.44751"
+ capture_lex $P1073
+ .const 'Sub' $P1066 = "272_1280467477.44751"
+ capture_lex $P1066
+ .const 'Sub' $P1059 = "270_1280467477.44751"
+ capture_lex $P1059
+ .const 'Sub' $P1053 = "268_1280467477.44751"
capture_lex $P1053
- .const 'Sub' $P1046 = "258_1275811487.95429"
+ .const 'Sub' $P1046 = "266_1280467477.44751"
capture_lex $P1046
- .const 'Sub' $P1039 = "256_1275811487.95429"
+ .const 'Sub' $P1039 = "264_1280467477.44751"
capture_lex $P1039
- .const 'Sub' $P1032 = "254_1275811487.95429"
+ .const 'Sub' $P1032 = "262_1280467477.44751"
capture_lex $P1032
- .const 'Sub' $P1025 = "252_1275811487.95429"
+ .const 'Sub' $P1025 = "260_1280467477.44751"
capture_lex $P1025
- .const 'Sub' $P1019 = "250_1275811487.95429"
- capture_lex $P1019
- .const 'Sub' $P1013 = "248_1275811487.95429"
- capture_lex $P1013
- .const 'Sub' $P1008 = "246_1275811487.95429"
- capture_lex $P1008
- .const 'Sub' $P1002 = "244_1275811487.95429"
- capture_lex $P1002
- .const 'Sub' $P996 = "242_1275811487.95429"
- capture_lex $P996
- .const 'Sub' $P991 = "240_1275811487.95429"
- capture_lex $P991
- .const 'Sub' $P986 = "238_1275811487.95429"
- capture_lex $P986
- .const 'Sub' $P978 = "236_1275811487.95429"
- capture_lex $P978
- .const 'Sub' $P970 = "234_1275811487.95429"
+ .const 'Sub' $P1018 = "258_1280467477.44751"
+ capture_lex $P1018
+ .const 'Sub' $P1011 = "256_1280467477.44751"
+ capture_lex $P1011
+ .const 'Sub' $P1004 = "254_1280467477.44751"
+ capture_lex $P1004
+ .const 'Sub' $P998 = "252_1280467477.44751"
+ capture_lex $P998
+ .const 'Sub' $P992 = "250_1280467477.44751"
+ capture_lex $P992
+ .const 'Sub' $P987 = "248_1280467477.44751"
+ capture_lex $P987
+ .const 'Sub' $P981 = "246_1280467477.44751"
+ capture_lex $P981
+ .const 'Sub' $P975 = "244_1280467477.44751"
+ capture_lex $P975
+ .const 'Sub' $P970 = "242_1280467477.44751"
capture_lex $P970
- .const 'Sub' $P965 = "232_1275811487.95429"
+ .const 'Sub' $P965 = "240_1280467477.44751"
capture_lex $P965
- .const 'Sub' $P960 = "230_1275811487.95429"
- capture_lex $P960
- .const 'Sub' $P955 = "228_1275811487.95429"
- capture_lex $P955
- .const 'Sub' $P947 = "226_1275811487.95429"
- capture_lex $P947
- .const 'Sub' $P939 = "224_1275811487.95429"
- capture_lex $P939
- .const 'Sub' $P934 = "222_1275811487.95429"
- capture_lex $P934
- .const 'Sub' $P929 = "220_1275811487.95429"
- capture_lex $P929
- .const 'Sub' $P924 = "218_1275811487.95429"
- capture_lex $P924
- .const 'Sub' $P918 = "216_1275811487.95429"
- capture_lex $P918
- .const 'Sub' $P912 = "214_1275811487.95429"
+ .const 'Sub' $P957 = "238_1280467477.44751"
+ capture_lex $P957
+ .const 'Sub' $P948 = "236_1280467477.44751"
+ capture_lex $P948
+ .const 'Sub' $P943 = "234_1280467477.44751"
+ capture_lex $P943
+ .const 'Sub' $P938 = "232_1280467477.44751"
+ capture_lex $P938
+ .const 'Sub' $P933 = "230_1280467477.44751"
+ capture_lex $P933
+ .const 'Sub' $P925 = "228_1280467477.44751"
+ capture_lex $P925
+ .const 'Sub' $P917 = "226_1280467477.44751"
+ capture_lex $P917
+ .const 'Sub' $P912 = "224_1280467477.44751"
capture_lex $P912
- .const 'Sub' $P906 = "212_1275811487.95429"
- capture_lex $P906
- .const 'Sub' $P900 = "210_1275811487.95429"
- capture_lex $P900
- .const 'Sub' $P894 = "208_1275811487.95429"
- capture_lex $P894
- .const 'Sub' $P889 = "206_1275811487.95429"
- capture_lex $P889
- .const 'Sub' $P884 = "204_1275811487.95429"
+ .const 'Sub' $P907 = "222_1280467477.44751"
+ capture_lex $P907
+ .const 'Sub' $P902 = "220_1280467477.44751"
+ capture_lex $P902
+ .const 'Sub' $P896 = "218_1280467477.44751"
+ capture_lex $P896
+ .const 'Sub' $P890 = "216_1280467477.44751"
+ capture_lex $P890
+ .const 'Sub' $P884 = "214_1280467477.44751"
capture_lex $P884
- .const 'Sub' $P871 = "200_1275811487.95429"
- capture_lex $P871
- .const 'Sub' $P863 = "198_1275811487.95429"
- capture_lex $P863
- .const 'Sub' $P857 = "196_1275811487.95429"
- capture_lex $P857
- .const 'Sub' $P850 = "194_1275811487.95429"
+ .const 'Sub' $P878 = "212_1280467477.44751"
+ capture_lex $P878
+ .const 'Sub' $P872 = "210_1280467477.44751"
+ capture_lex $P872
+ .const 'Sub' $P867 = "208_1280467477.44751"
+ capture_lex $P867
+ .const 'Sub' $P862 = "206_1280467477.44751"
+ capture_lex $P862
+ .const 'Sub' $P850 = "202_1280467477.44751"
capture_lex $P850
- .const 'Sub' $P844 = "192_1275811487.95429"
- capture_lex $P844
- .const 'Sub' $P836 = "190_1275811487.95429"
+ .const 'Sub' $P842 = "200_1280467477.44751"
+ capture_lex $P842
+ .const 'Sub' $P836 = "198_1280467477.44751"
capture_lex $P836
- .const 'Sub' $P828 = "188_1275811487.95429"
- capture_lex $P828
- .const 'Sub' $P822 = "186_1275811487.95429"
- capture_lex $P822
- .const 'Sub' $P816 = "184_1275811487.95429"
- capture_lex $P816
- .const 'Sub' $P801 = "180_1275811487.95429"
+ .const 'Sub' $P829 = "196_1280467477.44751"
+ capture_lex $P829
+ .const 'Sub' $P823 = "194_1280467477.44751"
+ capture_lex $P823
+ .const 'Sub' $P815 = "192_1280467477.44751"
+ capture_lex $P815
+ .const 'Sub' $P807 = "190_1280467477.44751"
+ capture_lex $P807
+ .const 'Sub' $P801 = "188_1280467477.44751"
capture_lex $P801
- .const 'Sub' $P763 = "178_1275811487.95429"
- capture_lex $P763
- .const 'Sub' $P754 = "176_1275811487.95429"
- capture_lex $P754
- .const 'Sub' $P748 = "174_1275811487.95429"
- capture_lex $P748
- .const 'Sub' $P738 = "172_1275811487.95429"
- capture_lex $P738
- .const 'Sub' $P724 = "170_1275811487.95429"
- capture_lex $P724
- .const 'Sub' $P715 = "168_1275811487.95429"
- capture_lex $P715
- .const 'Sub' $P707 = "166_1275811487.95429"
- capture_lex $P707
- .const 'Sub' $P697 = "164_1275811487.95429"
- capture_lex $P697
- .const 'Sub' $P673 = "160_1275811487.95429"
- capture_lex $P673
- .const 'Sub' $P648 = "158_1275811487.95429"
- capture_lex $P648
- .const 'Sub' $P641 = "156_1275811487.95429"
- capture_lex $P641
- .const 'Sub' $P634 = "154_1275811487.95429"
+ .const 'Sub' $P795 = "186_1280467477.44751"
+ capture_lex $P795
+ .const 'Sub' $P781 = "182_1280467477.44751"
+ capture_lex $P781
+ .const 'Sub' $P744 = "180_1280467477.44751"
+ capture_lex $P744
+ .const 'Sub' $P735 = "178_1280467477.44751"
+ capture_lex $P735
+ .const 'Sub' $P729 = "176_1280467477.44751"
+ capture_lex $P729
+ .const 'Sub' $P719 = "174_1280467477.44751"
+ capture_lex $P719
+ .const 'Sub' $P706 = "172_1280467477.44751"
+ capture_lex $P706
+ .const 'Sub' $P699 = "170_1280467477.44751"
+ capture_lex $P699
+ .const 'Sub' $P691 = "168_1280467477.44751"
+ capture_lex $P691
+ .const 'Sub' $P681 = "166_1280467477.44751"
+ capture_lex $P681
+ .const 'Sub' $P657 = "162_1280467477.44751"
+ capture_lex $P657
+ .const 'Sub' $P634 = "160_1280467477.44751"
capture_lex $P634
- .const 'Sub' $P624 = "150_1275811487.95429"
- capture_lex $P624
- .const 'Sub' $P616 = "148_1275811487.95429"
- capture_lex $P616
- .const 'Sub' $P610 = "146_1275811487.95429"
+ .const 'Sub' $P627 = "158_1280467477.44751"
+ capture_lex $P627
+ .const 'Sub' $P620 = "156_1280467477.44751"
+ capture_lex $P620
+ .const 'Sub' $P610 = "152_1280467477.44751"
capture_lex $P610
- .const 'Sub' $P597 = "144_1275811487.95429"
- capture_lex $P597
- .const 'Sub' $P590 = "142_1275811487.95429"
- capture_lex $P590
- .const 'Sub' $P583 = "140_1275811487.95429"
+ .const 'Sub' $P602 = "150_1280467477.44751"
+ capture_lex $P602
+ .const 'Sub' $P596 = "148_1280467477.44751"
+ capture_lex $P596
+ .const 'Sub' $P583 = "146_1280467477.44751"
capture_lex $P583
- .const 'Sub' $P576 = "138_1275811487.95429"
+ .const 'Sub' $P576 = "144_1280467477.44751"
capture_lex $P576
- .const 'Sub' $P548 = "134_1275811487.95429"
- capture_lex $P548
- .const 'Sub' $P539 = "132_1275811487.95429"
- capture_lex $P539
- .const 'Sub' $P532 = "130_1275811487.95429"
- capture_lex $P532
- .const 'Sub' $P523 = "126_1275811487.95429"
- capture_lex $P523
- .const 'Sub' $P518 = "124_1275811487.95429"
- capture_lex $P518
- .const 'Sub' $P506 = "122_1275811487.95429"
- capture_lex $P506
- .const 'Sub' $P494 = "120_1275811487.95429"
- capture_lex $P494
- .const 'Sub' $P486 = "118_1275811487.95429"
- capture_lex $P486
- .const 'Sub' $P481 = "116_1275811487.95429"
+ .const 'Sub' $P569 = "142_1280467477.44751"
+ capture_lex $P569
+ .const 'Sub' $P562 = "140_1280467477.44751"
+ capture_lex $P562
+ .const 'Sub' $P535 = "136_1280467477.44751"
+ capture_lex $P535
+ .const 'Sub' $P526 = "134_1280467477.44751"
+ capture_lex $P526
+ .const 'Sub' $P519 = "132_1280467477.44751"
+ capture_lex $P519
+ .const 'Sub' $P510 = "128_1280467477.44751"
+ capture_lex $P510
+ .const 'Sub' $P505 = "126_1280467477.44751"
+ capture_lex $P505
+ .const 'Sub' $P493 = "124_1280467477.44751"
+ capture_lex $P493
+ .const 'Sub' $P481 = "122_1280467477.44751"
capture_lex $P481
- .const 'Sub' $P475 = "114_1275811487.95429"
- capture_lex $P475
- .const 'Sub' $P469 = "112_1275811487.95429"
+ .const 'Sub' $P474 = "120_1280467477.44751"
+ capture_lex $P474
+ .const 'Sub' $P469 = "118_1280467477.44751"
capture_lex $P469
- .const 'Sub' $P459 = "109_1275811487.95429"
- capture_lex $P459
- .const 'Sub' $P453 = "107_1275811487.95429"
- capture_lex $P453
- .const 'Sub' $P447 = "105_1275811487.95429"
+ .const 'Sub' $P463 = "116_1280467477.44751"
+ capture_lex $P463
+ .const 'Sub' $P457 = "114_1280467477.44751"
+ capture_lex $P457
+ .const 'Sub' $P447 = "111_1280467477.44751"
capture_lex $P447
- .const 'Sub' $P441 = "103_1275811487.95429"
+ .const 'Sub' $P441 = "109_1280467477.44751"
capture_lex $P441
- .const 'Sub' $P435 = "101_1275811487.95429"
+ .const 'Sub' $P435 = "107_1280467477.44751"
capture_lex $P435
- .const 'Sub' $P429 = "99_1275811487.95429"
+ .const 'Sub' $P429 = "105_1280467477.44751"
capture_lex $P429
- .const 'Sub' $P423 = "97_1275811487.95429"
+ .const 'Sub' $P423 = "103_1280467477.44751"
capture_lex $P423
- .const 'Sub' $P414 = "95_1275811487.95429"
- capture_lex $P414
- .const 'Sub' $P405 = "93_1275811487.95429"
- capture_lex $P405
- .const 'Sub' $P392 = "89_1275811487.95429"
- capture_lex $P392
- .const 'Sub' $P383 = "87_1275811487.95429"
- capture_lex $P383
- .const 'Sub' $P373 = "83_1275811487.95429"
- capture_lex $P373
- .const 'Sub' $P366 = "81_1275811487.95429"
- capture_lex $P366
- .const 'Sub' $P359 = "79_1275811487.95429"
- capture_lex $P359
- .const 'Sub' $P347 = "75_1275811487.95429"
- capture_lex $P347
- .const 'Sub' $P339 = "73_1275811487.95429"
- capture_lex $P339
- .const 'Sub' $P331 = "71_1275811487.95429"
- capture_lex $P331
- .const 'Sub' $P311 = "69_1275811487.95429"
- capture_lex $P311
- .const 'Sub' $P302 = "67_1275811487.95429"
- capture_lex $P302
- .const 'Sub' $P284 = "64_1275811487.95429"
- capture_lex $P284
- .const 'Sub' $P264 = "62_1275811487.95429"
- capture_lex $P264
- .const 'Sub' $P255 = "58_1275811487.95429"
- capture_lex $P255
- .const 'Sub' $P250 = "56_1275811487.95429"
- capture_lex $P250
- .const 'Sub' $P241 = "52_1275811487.95429"
- capture_lex $P241
- .const 'Sub' $P236 = "50_1275811487.95429"
+ .const 'Sub' $P417 = "101_1280467477.44751"
+ capture_lex $P417
+ .const 'Sub' $P411 = "99_1280467477.44751"
+ capture_lex $P411
+ .const 'Sub' $P402 = "97_1280467477.44751"
+ capture_lex $P402
+ .const 'Sub' $P393 = "95_1280467477.44751"
+ capture_lex $P393
+ .const 'Sub' $P384 = "93_1280467477.44751"
+ capture_lex $P384
+ .const 'Sub' $P371 = "89_1280467477.44751"
+ capture_lex $P371
+ .const 'Sub' $P362 = "87_1280467477.44751"
+ capture_lex $P362
+ .const 'Sub' $P352 = "83_1280467477.44751"
+ capture_lex $P352
+ .const 'Sub' $P345 = "81_1280467477.44751"
+ capture_lex $P345
+ .const 'Sub' $P338 = "79_1280467477.44751"
+ capture_lex $P338
+ .const 'Sub' $P326 = "75_1280467477.44751"
+ capture_lex $P326
+ .const 'Sub' $P318 = "73_1280467477.44751"
+ capture_lex $P318
+ .const 'Sub' $P310 = "71_1280467477.44751"
+ capture_lex $P310
+ .const 'Sub' $P290 = "69_1280467477.44751"
+ capture_lex $P290
+ .const 'Sub' $P281 = "67_1280467477.44751"
+ capture_lex $P281
+ .const 'Sub' $P263 = "64_1280467477.44751"
+ capture_lex $P263
+ .const 'Sub' $P245 = "62_1280467477.44751"
+ capture_lex $P245
+ .const 'Sub' $P236 = "58_1280467477.44751"
capture_lex $P236
- .const 'Sub' $P231 = "48_1275811487.95429"
+ .const 'Sub' $P231 = "56_1280467477.44751"
capture_lex $P231
- .const 'Sub' $P223 = "46_1275811487.95429"
- capture_lex $P223
- .const 'Sub' $P216 = "44_1275811487.95429"
- capture_lex $P216
- .const 'Sub' $P210 = "42_1275811487.95429"
- capture_lex $P210
- .const 'Sub' $P202 = "40_1275811487.95429"
- capture_lex $P202
- .const 'Sub' $P196 = "38_1275811487.95429"
+ .const 'Sub' $P222 = "52_1280467477.44751"
+ capture_lex $P222
+ .const 'Sub' $P217 = "50_1280467477.44751"
+ capture_lex $P217
+ .const 'Sub' $P212 = "48_1280467477.44751"
+ capture_lex $P212
+ .const 'Sub' $P203 = "46_1280467477.44751"
+ capture_lex $P203
+ .const 'Sub' $P196 = "44_1280467477.44751"
capture_lex $P196
- .const 'Sub' $P190 = "36_1275811487.95429"
+ .const 'Sub' $P190 = "42_1280467477.44751"
capture_lex $P190
- .const 'Sub' $P174 = "33_1275811487.95429"
- capture_lex $P174
- .const 'Sub' $P159 = "31_1275811487.95429"
- capture_lex $P159
- .const 'Sub' $P152 = "29_1275811487.95429"
- capture_lex $P152
- .const 'Sub' $P102 = "26_1275811487.95429"
- capture_lex $P102
- .const 'Sub' $P84 = "23_1275811487.95429"
- capture_lex $P84
- .const 'Sub' $P70 = "21_1275811487.95429"
- capture_lex $P70
- .const 'Sub' $P56 = "19_1275811487.95429"
- capture_lex $P56
- .const 'Sub' $P48 = "17_1275811487.95429"
- capture_lex $P48
- .const 'Sub' $P41 = "15_1275811487.95429"
- capture_lex $P41
- .const 'Sub' $P35 = "13_1275811487.95429"
+ .const 'Sub' $P182 = "40_1280467477.44751"
+ capture_lex $P182
+ .const 'Sub' $P176 = "38_1280467477.44751"
+ capture_lex $P176
+ .const 'Sub' $P170 = "36_1280467477.44751"
+ capture_lex $P170
+ .const 'Sub' $P155 = "33_1280467477.44751"
+ capture_lex $P155
+ .const 'Sub' $P141 = "31_1280467477.44751"
+ capture_lex $P141
+ .const 'Sub' $P134 = "29_1280467477.44751"
+ capture_lex $P134
+ .const 'Sub' $P95 = "26_1280467477.44751"
+ capture_lex $P95
+ .const 'Sub' $P80 = "23_1280467477.44751"
+ capture_lex $P80
+ .const 'Sub' $P69 = "21_1280467477.44751"
+ capture_lex $P69
+ .const 'Sub' $P57 = "19_1280467477.44751"
+ capture_lex $P57
+ .const 'Sub' $P49 = "17_1280467477.44751"
+ capture_lex $P49
+ .const 'Sub' $P42 = "15_1280467477.44751"
+ capture_lex $P42
+ .const 'Sub' $P35 = "13_1280467477.44751"
capture_lex $P35
- .const 'Sub' $P15 = "12_1275811487.95429"
+ .const 'Sub' $P15 = "12_1280467477.44751"
capture_lex $P15
$P0 = find_dynamic_lex "$*CTXSAVE"
if null $P0 goto ctxsave_done
@@ -363,77 +371,77 @@
unless $I0 goto ctxsave_done
$P0."ctxsave"()
ctxsave_done:
-.annotate 'line', 563
+.annotate 'line', 567
get_hll_global $P1340, ["NQP";"Regex"], "_block1339"
capture_lex $P1340
- $P1403 = $P1340()
+ $P1402 = $P1340()
.annotate 'line', 4
- .return ($P1403)
- .const 'Sub' $P1405 = "362_1275811487.95429"
- .return ($P1405)
+ .return ($P1402)
+ .const 'Sub' $P1404 = "370_1280467477.44751"
+ .return ($P1404)
.end
.namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post365") :outer("11_1275811487.95429")
+.sub "" :load :init :subid("post373") :outer("11_1280467477.44751")
.annotate 'line', 4
get_hll_global $P14, ["NQP";"Grammar"], "_block13"
.local pmc block
set block, $P14
-.annotate 'line', 447
- get_hll_global $P1408, ["NQP"], "Grammar"
- $P1408."O"(":prec<y=>, :assoc<unary>", "%methodop")
.annotate 'line', 448
- get_hll_global $P1409, ["NQP"], "Grammar"
- $P1409."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
+ get_hll_global $P1407, ["NQP"], "Grammar"
+ $P1407."O"(":prec<y=>, :assoc<unary>", "%methodop")
.annotate 'line', 449
- get_hll_global $P1410, ["NQP"], "Grammar"
- $P1410."O"(":prec<w=>, :assoc<left>", "%exponentiation")
+ get_hll_global $P1408, ["NQP"], "Grammar"
+ $P1408."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
.annotate 'line', 450
- get_hll_global $P1411, ["NQP"], "Grammar"
- $P1411."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
+ get_hll_global $P1409, ["NQP"], "Grammar"
+ $P1409."O"(":prec<w=>, :assoc<left>", "%exponentiation")
.annotate 'line', 451
- get_hll_global $P1412, ["NQP"], "Grammar"
- $P1412."O"(":prec<u=>, :assoc<left>", "%multiplicative")
+ get_hll_global $P1410, ["NQP"], "Grammar"
+ $P1410."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
.annotate 'line', 452
- get_hll_global $P1413, ["NQP"], "Grammar"
- $P1413."O"(":prec<t=>, :assoc<left>", "%additive")
+ get_hll_global $P1411, ["NQP"], "Grammar"
+ $P1411."O"(":prec<u=>, :assoc<left>", "%multiplicative")
.annotate 'line', 453
- get_hll_global $P1414, ["NQP"], "Grammar"
- $P1414."O"(":prec<r=>, :assoc<left>", "%concatenation")
+ get_hll_global $P1412, ["NQP"], "Grammar"
+ $P1412."O"(":prec<t=>, :assoc<left>", "%additive")
.annotate 'line', 454
- get_hll_global $P1415, ["NQP"], "Grammar"
- $P1415."O"(":prec<m=>, :assoc<left>", "%relational")
+ get_hll_global $P1413, ["NQP"], "Grammar"
+ $P1413."O"(":prec<r=>, :assoc<left>", "%concatenation")
.annotate 'line', 455
- get_hll_global $P1416, ["NQP"], "Grammar"
- $P1416."O"(":prec<l=>, :assoc<left>", "%tight_and")
+ get_hll_global $P1414, ["NQP"], "Grammar"
+ $P1414."O"(":prec<m=>, :assoc<left>", "%relational")
.annotate 'line', 456
- get_hll_global $P1417, ["NQP"], "Grammar"
- $P1417."O"(":prec<k=>, :assoc<left>", "%tight_or")
+ get_hll_global $P1415, ["NQP"], "Grammar"
+ $P1415."O"(":prec<l=>, :assoc<left>", "%tight_and")
.annotate 'line', 457
- get_hll_global $P1418, ["NQP"], "Grammar"
- $P1418."O"(":prec<j=>, :assoc<right>", "%conditional")
+ get_hll_global $P1416, ["NQP"], "Grammar"
+ $P1416."O"(":prec<k=>, :assoc<left>", "%tight_or")
.annotate 'line', 458
- get_hll_global $P1419, ["NQP"], "Grammar"
- $P1419."O"(":prec<i=>, :assoc<right>", "%assignment")
+ get_hll_global $P1417, ["NQP"], "Grammar"
+ $P1417."O"(":prec<j=>, :assoc<right>", "%conditional")
.annotate 'line', 459
- get_hll_global $P1420, ["NQP"], "Grammar"
- $P1420."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
+ get_hll_global $P1418, ["NQP"], "Grammar"
+ $P1418."O"(":prec<i=>, :assoc<right>", "%assignment")
.annotate 'line', 460
- get_hll_global $P1421, ["NQP"], "Grammar"
- $P1421."O"(":prec<f=>, :assoc<list>", "%list_infix")
+ get_hll_global $P1419, ["NQP"], "Grammar"
+ $P1419."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
.annotate 'line', 461
- get_hll_global $P1422, ["NQP"], "Grammar"
- $P1422."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
-.annotate 'line', 446
- $P1423 = get_root_global ["parrot"], "P6metaclass"
- $P1423."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
+ get_hll_global $P1420, ["NQP"], "Grammar"
+ $P1420."O"(":prec<f=>, :assoc<list>", "%list_infix")
+.annotate 'line', 462
+ get_hll_global $P1421, ["NQP"], "Grammar"
+ $P1421."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
+.annotate 'line', 447
+ $P1422 = get_root_global ["parrot"], "P6metaclass"
+ $P1422."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
.end
.namespace ["NQP";"Grammar"]
.include "except_types.pasm"
-.sub "TOP" :subid("12_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "TOP" :subid("12_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
new $P17, 'ExceptionHandler'
set_addr $P17, control_16
@@ -451,55 +459,55 @@
.lex "$*MULTINESS", $P20
.annotate 'line', 4
find_lex $P21, "%*LANG"
- unless_null $P21, vivify_366
+ unless_null $P21, vivify_374
get_hll_global $P21, "%LANG"
- unless_null $P21, vivify_367
+ unless_null $P21, vivify_375
die "Contextual %*LANG not found"
- vivify_367:
- vivify_366:
+ vivify_375:
+ vivify_374:
.annotate 'line', 6
get_hll_global $P22, ["NQP"], "Regex"
find_lex $P23, "%*LANG"
- unless_null $P23, vivify_368
+ unless_null $P23, vivify_376
get_hll_global $P23, "%LANG"
- unless_null $P23, vivify_369
+ unless_null $P23, vivify_377
die "Contextual %*LANG not found"
- vivify_369:
+ vivify_377:
store_lex "%*LANG", $P23
- vivify_368:
+ vivify_376:
set $P23["Regex"], $P22
.annotate 'line', 7
get_hll_global $P24, ["NQP"], "RegexActions"
find_lex $P25, "%*LANG"
- unless_null $P25, vivify_370
+ unless_null $P25, vivify_378
get_hll_global $P25, "%LANG"
- unless_null $P25, vivify_371
+ unless_null $P25, vivify_379
die "Contextual %*LANG not found"
- vivify_371:
+ vivify_379:
store_lex "%*LANG", $P25
- vivify_370:
+ vivify_378:
set $P25["Regex-actions"], $P24
.annotate 'line', 8
get_hll_global $P26, ["NQP"], "Grammar"
find_lex $P27, "%*LANG"
- unless_null $P27, vivify_372
+ unless_null $P27, vivify_380
get_hll_global $P27, "%LANG"
- unless_null $P27, vivify_373
+ unless_null $P27, vivify_381
die "Contextual %*LANG not found"
- vivify_373:
+ vivify_381:
store_lex "%*LANG", $P27
- vivify_372:
+ vivify_380:
set $P27["MAIN"], $P26
.annotate 'line', 9
get_hll_global $P28, ["NQP"], "Actions"
find_lex $P29, "%*LANG"
- unless_null $P29, vivify_374
+ unless_null $P29, vivify_382
get_hll_global $P29, "%LANG"
- unless_null $P29, vivify_375
+ unless_null $P29, vivify_383
die "Contextual %*LANG not found"
- vivify_375:
+ vivify_383:
store_lex "%*LANG", $P29
- vivify_374:
+ vivify_382:
set $P29["MAIN-actions"], $P28
.annotate 'line', 10
new $P30, "String"
@@ -523,7 +531,7 @@
.namespace ["NQP";"Grammar"]
-.sub "identifier" :subid("13_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "identifier" :subid("13_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
.local string rx36_tgt
.local int rx36_pos
@@ -531,8 +539,7 @@
.local int rx36_eos
.local int rx36_rep
.local pmc rx36_cur
- (rx36_cur, rx36_pos, rx36_tgt) = self."!cursor_start"()
- rx36_cur."!cursor_debug"("START ", "identifier")
+ (rx36_cur, rx36_pos, rx36_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx36_cur
.local pmc match
.lex "$/", match
@@ -543,6 +550,8 @@
sub rx36_off, rx36_pos, 1
substr rx36_tgt, rx36_tgt, rx36_off
rx36_start:
+ eq $I10, 1, rx36_restart
+ rx36_cur."!cursor_debug"("START ", "identifier")
$I10 = self.'from'()
ne $I10, -1, rxscan40_done
goto rxscan40_scan
@@ -556,19 +565,41 @@
rx36_cur."!mark_push"(0, rx36_pos, $I10)
rxscan40_done:
.annotate 'line', 17
- # rx subrule "ident" subtype=capture negate=
+ # rx subrule "ident" subtype=method negate=
+ rx36_cur."!cursor_pos"(rx36_pos)
+ $P10 = rx36_cur."ident"()
+ unless $P10, rx36_fail
+ rx36_pos = $P10."pos"()
+ # rx rxquantr41 ** 0..*
+ set_addr $I10, rxquantr41_done
+ rx36_cur."!mark_push"(0, rx36_pos, $I10)
+ rxquantr41_loop:
+ # rx enumcharlist negate=0
+ ge rx36_pos, rx36_eos, rx36_fail
+ sub $I10, rx36_pos, rx36_off
+ substr $S10, rx36_tgt, $I10, 1
+ index $I11, "-'", $S10
+ lt $I11, 0, rx36_fail
+ inc rx36_pos
+ # rx subrule "ident" subtype=method negate=
rx36_cur."!cursor_pos"(rx36_pos)
$P10 = rx36_cur."ident"()
unless $P10, rx36_fail
- rx36_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("ident")
rx36_pos = $P10."pos"()
+ set_addr $I10, rxquantr41_done
+ (rx36_rep) = rx36_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr41_done
+ rx36_cur."!mark_push"(rx36_rep, rx36_pos, $I10)
+ goto rxquantr41_loop
+ rxquantr41_done:
# rx pass
rx36_cur."!cursor_pass"(rx36_pos, "identifier")
rx36_cur."!cursor_debug"("PASS ", "identifier", " at pos=", rx36_pos)
.return (rx36_cur)
- rx36_fail:
+ rx36_restart:
.annotate 'line', 4
+ rx36_cur."!cursor_debug"("NEXT ", "identifier")
+ rx36_fail:
(rx36_rep, rx36_pos, $I10, $P10) = rx36_cur."!mark_fail"(0)
lt rx36_pos, -1, rx36_done
eq rx36_pos, -1, rx36_fail
@@ -582,7 +613,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier" :subid("14_1275811487.95429") :method
+.sub "!PREFIX__identifier" :subid("14_1280467477.44751") :method
.annotate 'line', 4
$P38 = self."!PREFIX__!subrule"("ident", "")
new $P39, "ResizablePMCArray"
@@ -592,2414 +623,2752 @@
.namespace ["NQP";"Grammar"]
-.sub "name" :subid("15_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "name" :subid("15_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx42_tgt
- .local int rx42_pos
- .local int rx42_off
- .local int rx42_eos
- .local int rx42_rep
- .local pmc rx42_cur
- (rx42_cur, rx42_pos, rx42_tgt) = self."!cursor_start"()
- rx42_cur."!cursor_debug"("START ", "name")
- rx42_cur."!cursor_caparray"("identifier")
- .lex unicode:"$\x{a2}", rx42_cur
- .local pmc match
- .lex "$/", match
- length rx42_eos, rx42_tgt
- gt rx42_pos, rx42_eos, rx42_done
- set rx42_off, 0
- lt rx42_pos, 2, rx42_start
- sub rx42_off, rx42_pos, 1
- substr rx42_tgt, rx42_tgt, rx42_off
- rx42_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan45_done
- goto rxscan45_scan
- rxscan45_loop:
- ($P10) = rx42_cur."from"()
- inc $P10
- set rx42_pos, $P10
- ge rx42_pos, rx42_eos, rxscan45_done
- rxscan45_scan:
- set_addr $I10, rxscan45_loop
- rx42_cur."!mark_push"(0, rx42_pos, $I10)
- rxscan45_done:
+ .local string rx43_tgt
+ .local int rx43_pos
+ .local int rx43_off
+ .local int rx43_eos
+ .local int rx43_rep
+ .local pmc rx43_cur
+ (rx43_cur, rx43_pos, rx43_tgt, $I10) = self."!cursor_start"()
+ rx43_cur."!cursor_caparray"("identifier")
+ .lex unicode:"$\x{a2}", rx43_cur
+ .local pmc match
+ .lex "$/", match
+ length rx43_eos, rx43_tgt
+ gt rx43_pos, rx43_eos, rx43_done
+ set rx43_off, 0
+ lt rx43_pos, 2, rx43_start
+ sub rx43_off, rx43_pos, 1
+ substr rx43_tgt, rx43_tgt, rx43_off
+ rx43_start:
+ eq $I10, 1, rx43_restart
+ rx43_cur."!cursor_debug"("START ", "name")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan46_done
+ goto rxscan46_scan
+ rxscan46_loop:
+ ($P10) = rx43_cur."from"()
+ inc $P10
+ set rx43_pos, $P10
+ ge rx43_pos, rx43_eos, rxscan46_done
+ rxscan46_scan:
+ set_addr $I10, rxscan46_loop
+ rx43_cur."!mark_push"(0, rx43_pos, $I10)
+ rxscan46_done:
.annotate 'line', 19
- # rx rxquantr46 ** 1..*
- set_addr $I47, rxquantr46_done
- rx42_cur."!mark_push"(0, -1, $I47)
- rxquantr46_loop:
+ # rx rxquantr47 ** 1..*
+ set_addr $I10, rxquantr47_done
+ rx43_cur."!mark_push"(0, -1, $I10)
+ rxquantr47_loop:
# rx subrule "identifier" subtype=capture negate=
- rx42_cur."!cursor_pos"(rx42_pos)
- $P10 = rx42_cur."identifier"()
- unless $P10, rx42_fail
- rx42_cur."!mark_push"(0, -1, 0, $P10)
+ rx43_cur."!cursor_pos"(rx43_pos)
+ $P10 = rx43_cur."identifier"()
+ unless $P10, rx43_fail
+ goto rxsubrule48_pass
+ rxsubrule48_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx43_fail
+ rxsubrule48_pass:
+ set_addr $I10, rxsubrule48_back
+ rx43_cur."!mark_push"(0, rx43_pos, $I10, $P10)
$P10."!cursor_names"("identifier")
- rx42_pos = $P10."pos"()
- (rx42_rep) = rx42_cur."!mark_commit"($I47)
- rx42_cur."!mark_push"(rx42_rep, rx42_pos, $I47)
+ rx43_pos = $P10."pos"()
+ set_addr $I10, rxquantr47_done
+ (rx43_rep) = rx43_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr47_done
+ rx43_cur."!mark_push"(rx43_rep, rx43_pos, $I10)
# rx literal "::"
- add $I11, rx42_pos, 2
- gt $I11, rx42_eos, rx42_fail
- sub $I11, rx42_pos, rx42_off
- substr $S10, rx42_tgt, $I11, 2
- ne $S10, "::", rx42_fail
- add rx42_pos, 2
- goto rxquantr46_loop
- rxquantr46_done:
- # rx pass
- rx42_cur."!cursor_pass"(rx42_pos, "name")
- rx42_cur."!cursor_debug"("PASS ", "name", " at pos=", rx42_pos)
- .return (rx42_cur)
- rx42_fail:
-.annotate 'line', 4
- (rx42_rep, rx42_pos, $I10, $P10) = rx42_cur."!mark_fail"(0)
- lt rx42_pos, -1, rx42_done
- eq rx42_pos, -1, rx42_fail
- jump $I10
- rx42_done:
- rx42_cur."!cursor_fail"()
- rx42_cur."!cursor_debug"("FAIL ", "name")
- .return (rx42_cur)
+ add $I11, rx43_pos, 2
+ gt $I11, rx43_eos, rx43_fail
+ sub $I11, rx43_pos, rx43_off
+ substr $S10, rx43_tgt, $I11, 2
+ ne $S10, "::", rx43_fail
+ add rx43_pos, 2
+ goto rxquantr47_loop
+ rxquantr47_done:
+ # rx pass
+ rx43_cur."!cursor_pass"(rx43_pos, "name")
+ rx43_cur."!cursor_debug"("PASS ", "name", " at pos=", rx43_pos)
+ .return (rx43_cur)
+ rx43_restart:
+.annotate 'line', 4
+ rx43_cur."!cursor_debug"("NEXT ", "name")
+ rx43_fail:
+ (rx43_rep, rx43_pos, $I10, $P10) = rx43_cur."!mark_fail"(0)
+ lt rx43_pos, -1, rx43_done
+ eq rx43_pos, -1, rx43_fail
+ jump $I10
+ rx43_done:
+ rx43_cur."!cursor_fail"()
+ rx43_cur."!cursor_debug"("FAIL ", "name")
+ .return (rx43_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name" :subid("16_1275811487.95429") :method
-.annotate 'line', 4
- new $P44, "ResizablePMCArray"
- push $P44, ""
- .return ($P44)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "deflongname" :subid("17_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx49_tgt
- .local int rx49_pos
- .local int rx49_off
- .local int rx49_eos
- .local int rx49_rep
- .local pmc rx49_cur
- (rx49_cur, rx49_pos, rx49_tgt) = self."!cursor_start"()
- rx49_cur."!cursor_debug"("START ", "deflongname")
- rx49_cur."!cursor_caparray"("colonpair")
- .lex unicode:"$\x{a2}", rx49_cur
- .local pmc match
- .lex "$/", match
- length rx49_eos, rx49_tgt
- gt rx49_pos, rx49_eos, rx49_done
- set rx49_off, 0
- lt rx49_pos, 2, rx49_start
- sub rx49_off, rx49_pos, 1
- substr rx49_tgt, rx49_tgt, rx49_off
- rx49_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan53_done
- goto rxscan53_scan
- rxscan53_loop:
- ($P10) = rx49_cur."from"()
- inc $P10
- set rx49_pos, $P10
- ge rx49_pos, rx49_eos, rxscan53_done
- rxscan53_scan:
- set_addr $I10, rxscan53_loop
- rx49_cur."!mark_push"(0, rx49_pos, $I10)
- rxscan53_done:
+.sub "!PREFIX__name" :subid("16_1280467477.44751") :method
+.annotate 'line', 4
+ new $P45, "ResizablePMCArray"
+ push $P45, ""
+ .return ($P45)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "deflongname" :subid("17_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx50_tgt
+ .local int rx50_pos
+ .local int rx50_off
+ .local int rx50_eos
+ .local int rx50_rep
+ .local pmc rx50_cur
+ (rx50_cur, rx50_pos, rx50_tgt, $I10) = self."!cursor_start"()
+ rx50_cur."!cursor_caparray"("colonpair")
+ .lex unicode:"$\x{a2}", rx50_cur
+ .local pmc match
+ .lex "$/", match
+ length rx50_eos, rx50_tgt
+ gt rx50_pos, rx50_eos, rx50_done
+ set rx50_off, 0
+ lt rx50_pos, 2, rx50_start
+ sub rx50_off, rx50_pos, 1
+ substr rx50_tgt, rx50_tgt, rx50_off
+ rx50_start:
+ eq $I10, 1, rx50_restart
+ rx50_cur."!cursor_debug"("START ", "deflongname")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan54_done
+ goto rxscan54_scan
+ rxscan54_loop:
+ ($P10) = rx50_cur."from"()
+ inc $P10
+ set rx50_pos, $P10
+ ge rx50_pos, rx50_eos, rxscan54_done
+ rxscan54_scan:
+ set_addr $I10, rxscan54_loop
+ rx50_cur."!mark_push"(0, rx50_pos, $I10)
+ rxscan54_done:
.annotate 'line', 22
# rx subrule "identifier" subtype=capture negate=
- rx49_cur."!cursor_pos"(rx49_pos)
- $P10 = rx49_cur."identifier"()
- unless $P10, rx49_fail
- rx49_cur."!mark_push"(0, -1, 0, $P10)
+ rx50_cur."!cursor_pos"(rx50_pos)
+ $P10 = rx50_cur."identifier"()
+ unless $P10, rx50_fail
+ rx50_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("identifier")
- rx49_pos = $P10."pos"()
- # rx rxquantr54 ** 0..1
- set_addr $I55, rxquantr54_done
- rx49_cur."!mark_push"(0, rx49_pos, $I55)
- rxquantr54_loop:
+ rx50_pos = $P10."pos"()
+ # rx rxquantr55 ** 0..1
+ set_addr $I10, rxquantr55_done
+ rx50_cur."!mark_push"(0, rx50_pos, $I10)
+ rxquantr55_loop:
# rx subrule "colonpair" subtype=capture negate=
- rx49_cur."!cursor_pos"(rx49_pos)
- $P10 = rx49_cur."colonpair"()
- unless $P10, rx49_fail
- rx49_cur."!mark_push"(0, -1, 0, $P10)
+ rx50_cur."!cursor_pos"(rx50_pos)
+ $P10 = rx50_cur."colonpair"()
+ unless $P10, rx50_fail
+ goto rxsubrule56_pass
+ rxsubrule56_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx50_fail
+ rxsubrule56_pass:
+ set_addr $I10, rxsubrule56_back
+ rx50_cur."!mark_push"(0, rx50_pos, $I10, $P10)
$P10."!cursor_names"("colonpair")
- rx49_pos = $P10."pos"()
- (rx49_rep) = rx49_cur."!mark_commit"($I55)
- rxquantr54_done:
+ rx50_pos = $P10."pos"()
+ set_addr $I10, rxquantr55_done
+ (rx50_rep) = rx50_cur."!mark_commit"($I10)
+ rxquantr55_done:
.annotate 'line', 21
# rx pass
- rx49_cur."!cursor_pass"(rx49_pos, "deflongname")
- rx49_cur."!cursor_debug"("PASS ", "deflongname", " at pos=", rx49_pos)
- .return (rx49_cur)
- rx49_fail:
+ rx50_cur."!cursor_pass"(rx50_pos, "deflongname")
+ rx50_cur."!cursor_debug"("PASS ", "deflongname", " at pos=", rx50_pos)
+ .return (rx50_cur)
+ rx50_restart:
.annotate 'line', 4
- (rx49_rep, rx49_pos, $I10, $P10) = rx49_cur."!mark_fail"(0)
- lt rx49_pos, -1, rx49_done
- eq rx49_pos, -1, rx49_fail
+ rx50_cur."!cursor_debug"("NEXT ", "deflongname")
+ rx50_fail:
+ (rx50_rep, rx50_pos, $I10, $P10) = rx50_cur."!mark_fail"(0)
+ lt rx50_pos, -1, rx50_done
+ eq rx50_pos, -1, rx50_fail
jump $I10
- rx49_done:
- rx49_cur."!cursor_fail"()
- rx49_cur."!cursor_debug"("FAIL ", "deflongname")
- .return (rx49_cur)
+ rx50_done:
+ rx50_cur."!cursor_fail"()
+ rx50_cur."!cursor_debug"("FAIL ", "deflongname")
+ .return (rx50_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname" :subid("18_1275811487.95429") :method
+.sub "!PREFIX__deflongname" :subid("18_1280467477.44751") :method
.annotate 'line', 4
- $P51 = self."!PREFIX__!subrule"("identifier", "")
- new $P52, "ResizablePMCArray"
- push $P52, $P51
- .return ($P52)
+ $P52 = self."!PREFIX__!subrule"("identifier", "")
+ new $P53, "ResizablePMCArray"
+ push $P53, $P52
+ .return ($P53)
.end
.namespace ["NQP";"Grammar"]
-.sub "ENDSTMT" :subid("19_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "ENDSTMT" :subid("19_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx57_tgt
- .local int rx57_pos
- .local int rx57_off
- .local int rx57_eos
- .local int rx57_rep
- .local pmc rx57_cur
- (rx57_cur, rx57_pos, rx57_tgt) = self."!cursor_start"()
- rx57_cur."!cursor_debug"("START ", "ENDSTMT")
- .lex unicode:"$\x{a2}", rx57_cur
+ .local string rx58_tgt
+ .local int rx58_pos
+ .local int rx58_off
+ .local int rx58_eos
+ .local int rx58_rep
+ .local pmc rx58_cur
+ (rx58_cur, rx58_pos, rx58_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx58_cur
.local pmc match
.lex "$/", match
- length rx57_eos, rx57_tgt
- gt rx57_pos, rx57_eos, rx57_done
- set rx57_off, 0
- lt rx57_pos, 2, rx57_start
- sub rx57_off, rx57_pos, 1
- substr rx57_tgt, rx57_tgt, rx57_off
- rx57_start:
+ length rx58_eos, rx58_tgt
+ gt rx58_pos, rx58_eos, rx58_done
+ set rx58_off, 0
+ lt rx58_pos, 2, rx58_start
+ sub rx58_off, rx58_pos, 1
+ substr rx58_tgt, rx58_tgt, rx58_off
+ rx58_start:
+ eq $I10, 1, rx58_restart
+ rx58_cur."!cursor_debug"("START ", "ENDSTMT")
$I10 = self.'from'()
- ne $I10, -1, rxscan60_done
- goto rxscan60_scan
- rxscan60_loop:
- ($P10) = rx57_cur."from"()
+ ne $I10, -1, rxscan61_done
+ goto rxscan61_scan
+ rxscan61_loop:
+ ($P10) = rx58_cur."from"()
inc $P10
- set rx57_pos, $P10
- ge rx57_pos, rx57_eos, rxscan60_done
- rxscan60_scan:
- set_addr $I10, rxscan60_loop
- rx57_cur."!mark_push"(0, rx57_pos, $I10)
- rxscan60_done:
+ set rx58_pos, $P10
+ ge rx58_pos, rx58_eos, rxscan61_done
+ rxscan61_scan:
+ set_addr $I10, rxscan61_loop
+ rx58_cur."!mark_push"(0, rx58_pos, $I10)
+ rxscan61_done:
.annotate 'line', 29
- # rx rxquantr61 ** 0..1
- set_addr $I69, rxquantr61_done
- rx57_cur."!mark_push"(0, rx57_pos, $I69)
- rxquantr61_loop:
- alt62_0:
+ # rx rxquantr62 ** 0..1
+ set_addr $I10, rxquantr62_done
+ rx58_cur."!mark_push"(0, rx58_pos, $I10)
+ rxquantr62_loop:
+ alt63_0:
.annotate 'line', 26
- set_addr $I10, alt62_1
- rx57_cur."!mark_push"(0, rx57_pos, $I10)
+ set_addr $I10, alt63_1
+ rx58_cur."!mark_push"(0, rx58_pos, $I10)
.annotate 'line', 27
- # rx rxquantr63 ** 0..*
- set_addr $I64, rxquantr63_done
- rx57_cur."!mark_push"(0, rx57_pos, $I64)
- rxquantr63_loop:
+ # rx rxquantr64 ** 0..*
+ set_addr $I10, rxquantr64_done
+ rx58_cur."!mark_push"(0, rx58_pos, $I10)
+ rxquantr64_loop:
# rx enumcharlist negate=0
- ge rx57_pos, rx57_eos, rx57_fail
- sub $I10, rx57_pos, rx57_off
- substr $S10, rx57_tgt, $I10, 1
+ ge rx58_pos, rx58_eos, rx58_fail
+ sub $I10, rx58_pos, rx58_off
+ substr $S10, rx58_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx57_fail
- inc rx57_pos
- (rx57_rep) = rx57_cur."!mark_commit"($I64)
- rx57_cur."!mark_push"(rx57_rep, rx57_pos, $I64)
- goto rxquantr63_loop
- rxquantr63_done:
+ lt $I11, 0, rx58_fail
+ inc rx58_pos
+ set_addr $I10, rxquantr64_done
+ (rx58_rep) = rx58_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr64_done
+ rx58_cur."!mark_push"(rx58_rep, rx58_pos, $I10)
+ goto rxquantr64_loop
+ rxquantr64_done:
# rxanchor eol
- sub $I10, rx57_pos, rx57_off
- is_cclass $I11, 4096, rx57_tgt, $I10
+ sub $I10, rx58_pos, rx58_off
+ is_cclass $I11, 4096, rx58_tgt, $I10
if $I11, rxanchor65_done
- ne rx57_pos, rx57_eos, rx57_fail
- eq rx57_pos, 0, rxanchor65_done
+ ne rx58_pos, rx58_eos, rx58_fail
+ eq rx58_pos, 0, rxanchor65_done
dec $I10
- is_cclass $I11, 4096, rx57_tgt, $I10
- if $I11, rx57_fail
+ is_cclass $I11, 4096, rx58_tgt, $I10
+ if $I11, rx58_fail
rxanchor65_done:
# rx subrule "ws" subtype=method negate=
- rx57_cur."!cursor_pos"(rx57_pos)
- $P10 = rx57_cur."ws"()
- unless $P10, rx57_fail
- rx57_pos = $P10."pos"()
+ rx58_cur."!cursor_pos"(rx58_pos)
+ $P10 = rx58_cur."ws"()
+ unless $P10, rx58_fail
+ rx58_pos = $P10."pos"()
# rx subrule "MARKER" subtype=zerowidth negate=
- rx57_cur."!cursor_pos"(rx57_pos)
- $P10 = rx57_cur."MARKER"("endstmt")
- unless $P10, rx57_fail
- goto alt62_end
- alt62_1:
+ rx58_cur."!cursor_pos"(rx58_pos)
+ $P10 = rx58_cur."MARKER"("endstmt")
+ unless $P10, rx58_fail
+ goto alt63_end
+ alt63_1:
.annotate 'line', 28
# rx rxquantr66 ** 0..1
- set_addr $I67, rxquantr66_done
- rx57_cur."!mark_push"(0, rx57_pos, $I67)
+ set_addr $I10, rxquantr66_done
+ rx58_cur."!mark_push"(0, rx58_pos, $I10)
rxquantr66_loop:
# rx subrule "unv" subtype=method negate=
- rx57_cur."!cursor_pos"(rx57_pos)
- $P10 = rx57_cur."unv"()
- unless $P10, rx57_fail
- rx57_pos = $P10."pos"()
- (rx57_rep) = rx57_cur."!mark_commit"($I67)
+ rx58_cur."!cursor_pos"(rx58_pos)
+ $P10 = rx58_cur."unv"()
+ unless $P10, rx58_fail
+ goto rxsubrule67_pass
+ rxsubrule67_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx58_fail
+ rxsubrule67_pass:
+ set_addr $I10, rxsubrule67_back
+ rx58_cur."!mark_push"(0, rx58_pos, $I10, $P10)
+ rx58_pos = $P10."pos"()
+ set_addr $I10, rxquantr66_done
+ (rx58_rep) = rx58_cur."!mark_commit"($I10)
rxquantr66_done:
# rxanchor eol
- sub $I10, rx57_pos, rx57_off
- is_cclass $I11, 4096, rx57_tgt, $I10
+ sub $I10, rx58_pos, rx58_off
+ is_cclass $I11, 4096, rx58_tgt, $I10
if $I11, rxanchor68_done
- ne rx57_pos, rx57_eos, rx57_fail
- eq rx57_pos, 0, rxanchor68_done
+ ne rx58_pos, rx58_eos, rx58_fail
+ eq rx58_pos, 0, rxanchor68_done
dec $I10
- is_cclass $I11, 4096, rx57_tgt, $I10
- if $I11, rx57_fail
+ is_cclass $I11, 4096, rx58_tgt, $I10
+ if $I11, rx58_fail
rxanchor68_done:
# rx subrule "ws" subtype=method negate=
- rx57_cur."!cursor_pos"(rx57_pos)
- $P10 = rx57_cur."ws"()
- unless $P10, rx57_fail
- rx57_pos = $P10."pos"()
+ rx58_cur."!cursor_pos"(rx58_pos)
+ $P10 = rx58_cur."ws"()
+ unless $P10, rx58_fail
+ rx58_pos = $P10."pos"()
# rx subrule "MARKER" subtype=zerowidth negate=
- rx57_cur."!cursor_pos"(rx57_pos)
- $P10 = rx57_cur."MARKER"("endstmt")
- unless $P10, rx57_fail
- alt62_end:
+ rx58_cur."!cursor_pos"(rx58_pos)
+ $P10 = rx58_cur."MARKER"("endstmt")
+ unless $P10, rx58_fail
+ alt63_end:
.annotate 'line', 29
- (rx57_rep) = rx57_cur."!mark_commit"($I69)
- rxquantr61_done:
+ set_addr $I10, rxquantr62_done
+ (rx58_rep) = rx58_cur."!mark_commit"($I10)
+ rxquantr62_done:
.annotate 'line', 25
# rx pass
- rx57_cur."!cursor_pass"(rx57_pos, "ENDSTMT")
- rx57_cur."!cursor_debug"("PASS ", "ENDSTMT", " at pos=", rx57_pos)
- .return (rx57_cur)
- rx57_fail:
+ rx58_cur."!cursor_pass"(rx58_pos, "ENDSTMT")
+ rx58_cur."!cursor_debug"("PASS ", "ENDSTMT", " at pos=", rx58_pos)
+ .return (rx58_cur)
+ rx58_restart:
.annotate 'line', 4
- (rx57_rep, rx57_pos, $I10, $P10) = rx57_cur."!mark_fail"(0)
- lt rx57_pos, -1, rx57_done
- eq rx57_pos, -1, rx57_fail
+ rx58_cur."!cursor_debug"("NEXT ", "ENDSTMT")
+ rx58_fail:
+ (rx58_rep, rx58_pos, $I10, $P10) = rx58_cur."!mark_fail"(0)
+ lt rx58_pos, -1, rx58_done
+ eq rx58_pos, -1, rx58_fail
jump $I10
- rx57_done:
- rx57_cur."!cursor_fail"()
- rx57_cur."!cursor_debug"("FAIL ", "ENDSTMT")
- .return (rx57_cur)
+ rx58_done:
+ rx58_cur."!cursor_fail"()
+ rx58_cur."!cursor_debug"("FAIL ", "ENDSTMT")
+ .return (rx58_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT" :subid("20_1275811487.95429") :method
+.sub "!PREFIX__ENDSTMT" :subid("20_1280467477.44751") :method
.annotate 'line', 4
- new $P59, "ResizablePMCArray"
- push $P59, ""
- .return ($P59)
+ new $P60, "ResizablePMCArray"
+ push $P60, ""
+ .return ($P60)
.end
.namespace ["NQP";"Grammar"]
-.sub "ws" :subid("21_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "ws" :subid("21_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx71_tgt
- .local int rx71_pos
- .local int rx71_off
- .local int rx71_eos
- .local int rx71_rep
- .local pmc rx71_cur
- (rx71_cur, rx71_pos, rx71_tgt) = self."!cursor_start"()
- rx71_cur."!cursor_debug"("START ", "ws")
- .lex unicode:"$\x{a2}", rx71_cur
- .local pmc match
- .lex "$/", match
- length rx71_eos, rx71_tgt
- gt rx71_pos, rx71_eos, rx71_done
- set rx71_off, 0
- lt rx71_pos, 2, rx71_start
- sub rx71_off, rx71_pos, 1
- substr rx71_tgt, rx71_tgt, rx71_off
- rx71_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan74_done
- goto rxscan74_scan
- rxscan74_loop:
- ($P10) = rx71_cur."from"()
- inc $P10
- set rx71_pos, $P10
- ge rx71_pos, rx71_eos, rxscan74_done
- rxscan74_scan:
- set_addr $I10, rxscan74_loop
- rx71_cur."!mark_push"(0, rx71_pos, $I10)
- rxscan74_done:
- alt75_0:
+ .local string rx70_tgt
+ .local int rx70_pos
+ .local int rx70_off
+ .local int rx70_eos
+ .local int rx70_rep
+ .local pmc rx70_cur
+ (rx70_cur, rx70_pos, rx70_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx70_cur
+ .local pmc match
+ .lex "$/", match
+ length rx70_eos, rx70_tgt
+ gt rx70_pos, rx70_eos, rx70_done
+ set rx70_off, 0
+ lt rx70_pos, 2, rx70_start
+ sub rx70_off, rx70_pos, 1
+ substr rx70_tgt, rx70_tgt, rx70_off
+ rx70_start:
+ eq $I10, 1, rx70_restart
+ rx70_cur."!cursor_debug"("START ", "ws")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan73_done
+ goto rxscan73_scan
+ rxscan73_loop:
+ ($P10) = rx70_cur."from"()
+ inc $P10
+ set rx70_pos, $P10
+ ge rx70_pos, rx70_eos, rxscan73_done
+ rxscan73_scan:
+ set_addr $I10, rxscan73_loop
+ rx70_cur."!mark_push"(0, rx70_pos, $I10)
+ rxscan73_done:
+ alt74_0:
.annotate 'line', 32
- set_addr $I10, alt75_1
- rx71_cur."!mark_push"(0, rx71_pos, $I10)
+ set_addr $I10, alt74_1
+ rx70_cur."!mark_push"(0, rx70_pos, $I10)
.annotate 'line', 33
# rx subrule "MARKED" subtype=zerowidth negate=
- rx71_cur."!cursor_pos"(rx71_pos)
- $P10 = rx71_cur."MARKED"("ws")
- unless $P10, rx71_fail
- goto alt75_end
- alt75_1:
+ rx70_cur."!cursor_pos"(rx70_pos)
+ $P10 = rx70_cur."MARKED"("ws")
+ unless $P10, rx70_fail
+ goto alt74_end
+ alt74_1:
.annotate 'line', 34
# rx subrule "ww" subtype=zerowidth negate=1
- rx71_cur."!cursor_pos"(rx71_pos)
- $P10 = rx71_cur."ww"()
- if $P10, rx71_fail
+ rx70_cur."!cursor_pos"(rx70_pos)
+ $P10 = rx70_cur."ww"()
+ if $P10, rx70_fail
.annotate 'line', 39
- # rx rxquantr76 ** 0..*
- set_addr $I83, rxquantr76_done
- rx71_cur."!mark_push"(0, rx71_pos, $I83)
- rxquantr76_loop:
- alt77_0:
+ # rx rxquantr75 ** 0..*
+ set_addr $I10, rxquantr75_done
+ rx70_cur."!mark_push"(0, rx70_pos, $I10)
+ rxquantr75_loop:
+ alt76_0:
.annotate 'line', 35
- set_addr $I10, alt77_1
- rx71_cur."!mark_push"(0, rx71_pos, $I10)
- # rx rxquantr78 ** 1..*
- set_addr $I79, rxquantr78_done
- rx71_cur."!mark_push"(0, -1, $I79)
- rxquantr78_loop:
+ 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 rx71_pos, rx71_eos, rx71_fail
- sub $I10, rx71_pos, rx71_off
- substr $S10, rx71_tgt, $I10, 1
+ ge rx70_pos, rx70_eos, rx70_fail
+ sub $I10, rx70_pos, rx70_off
+ substr $S10, rx70_tgt, $I10, 1
index $I11, unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", $S10
- lt $I11, 0, rx71_fail
- inc rx71_pos
- (rx71_rep) = rx71_cur."!mark_commit"($I79)
- rx71_cur."!mark_push"(rx71_rep, rx71_pos, $I79)
- goto rxquantr78_loop
- rxquantr78_done:
- goto alt77_end
- alt77_1:
- set_addr $I10, alt77_2
- rx71_cur."!mark_push"(0, rx71_pos, $I10)
+ lt $I11, 0, rx70_fail
+ inc rx70_pos
+ set_addr $I10, rxquantr77_done
+ (rx70_rep) = rx70_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr77_done
+ rx70_cur."!mark_push"(rx70_rep, rx70_pos, $I10)
+ goto rxquantr77_loop
+ rxquantr77_done:
+ goto alt76_end
+ alt76_1:
+ set_addr $I10, alt76_2
+ rx70_cur."!mark_push"(0, rx70_pos, $I10)
.annotate 'line', 36
# rx literal "#"
- add $I11, rx71_pos, 1
- gt $I11, rx71_eos, rx71_fail
- sub $I11, rx71_pos, rx71_off
- substr $S10, rx71_tgt, $I11, 1
- ne $S10, "#", rx71_fail
- add rx71_pos, 1
+ add $I11, rx70_pos, 1
+ gt $I11, rx70_eos, rx70_fail
+ sub $I11, rx70_pos, rx70_off
+ substr $S10, rx70_tgt, $I11, 1
+ ne $S10, "#", rx70_fail
+ add rx70_pos, 1
# rx charclass_q N r 0..-1
- sub $I10, rx71_pos, rx71_off
- find_cclass $I11, 4096, rx71_tgt, $I10, rx71_eos
- add rx71_pos, rx71_off, $I11
- goto alt77_end
- alt77_2:
- set_addr $I10, alt77_3
- rx71_cur."!mark_push"(0, rx71_pos, $I10)
+ sub $I10, rx70_pos, rx70_off
+ find_cclass $I11, 4096, rx70_tgt, $I10, rx70_eos
+ add rx70_pos, rx70_off, $I11
+ goto alt76_end
+ alt76_2:
+ set_addr $I10, alt76_3
+ rx70_cur."!mark_push"(0, rx70_pos, $I10)
.annotate 'line', 37
# rxanchor bol
- eq rx71_pos, 0, rxanchor80_done
- ge rx71_pos, rx71_eos, rx71_fail
- sub $I10, rx71_pos, rx71_off
+ eq rx70_pos, 0, rxanchor78_done
+ ge rx70_pos, rx70_eos, rx70_fail
+ sub $I10, rx70_pos, rx70_off
dec $I10
- is_cclass $I11, 4096, rx71_tgt, $I10
- unless $I11, rx71_fail
- rxanchor80_done:
+ is_cclass $I11, 4096, rx70_tgt, $I10
+ unless $I11, rx70_fail
+ rxanchor78_done:
# rx subrule "pod_comment" subtype=method negate=
- rx71_cur."!cursor_pos"(rx71_pos)
- $P10 = rx71_cur."pod_comment"()
- unless $P10, rx71_fail
- rx71_pos = $P10."pos"()
- goto alt77_end
- alt77_3:
+ rx70_cur."!cursor_pos"(rx70_pos)
+ $P10 = rx70_cur."pod_comment"()
+ unless $P10, rx70_fail
+ rx70_pos = $P10."pos"()
+ goto alt76_end
+ alt76_3:
.annotate 'line', 38
- # rx rxquantr81 ** 1..*
- set_addr $I82, rxquantr81_done
- rx71_cur."!mark_push"(0, -1, $I82)
- rxquantr81_loop:
+ # rx rxquantr79 ** 1..*
+ set_addr $I10, rxquantr79_done
+ rx70_cur."!mark_push"(0, -1, $I10)
+ rxquantr79_loop:
# rx enumcharlist negate=0
- ge rx71_pos, rx71_eos, rx71_fail
- sub $I10, rx71_pos, rx71_off
- substr $S10, rx71_tgt, $I10, 1
+ ge rx70_pos, rx70_eos, rx70_fail
+ sub $I10, rx70_pos, rx70_off
+ substr $S10, rx70_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx71_fail
- inc rx71_pos
- (rx71_rep) = rx71_cur."!mark_commit"($I82)
- rx71_cur."!mark_push"(rx71_rep, rx71_pos, $I82)
- goto rxquantr81_loop
- rxquantr81_done:
- alt77_end:
+ lt $I11, 0, rx70_fail
+ inc rx70_pos
+ set_addr $I10, rxquantr79_done
+ (rx70_rep) = rx70_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr79_done
+ rx70_cur."!mark_push"(rx70_rep, rx70_pos, $I10)
+ goto rxquantr79_loop
+ rxquantr79_done:
+ alt76_end:
.annotate 'line', 39
- (rx71_rep) = rx71_cur."!mark_commit"($I83)
- rx71_cur."!mark_push"(rx71_rep, rx71_pos, $I83)
- goto rxquantr76_loop
- rxquantr76_done:
+ set_addr $I10, rxquantr75_done
+ (rx70_rep) = rx70_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr75_done
+ rx70_cur."!mark_push"(rx70_rep, rx70_pos, $I10)
+ goto rxquantr75_loop
+ rxquantr75_done:
.annotate 'line', 40
# rx subrule "MARKER" subtype=zerowidth negate=
- rx71_cur."!cursor_pos"(rx71_pos)
- $P10 = rx71_cur."MARKER"("ws")
- unless $P10, rx71_fail
- alt75_end:
+ rx70_cur."!cursor_pos"(rx70_pos)
+ $P10 = rx70_cur."MARKER"("ws")
+ unless $P10, rx70_fail
+ alt74_end:
.annotate 'line', 32
# rx pass
- rx71_cur."!cursor_pass"(rx71_pos, "ws")
- rx71_cur."!cursor_debug"("PASS ", "ws", " at pos=", rx71_pos)
- .return (rx71_cur)
- rx71_fail:
+ rx70_cur."!cursor_pass"(rx70_pos, "ws")
+ rx70_cur."!cursor_debug"("PASS ", "ws", " at pos=", rx70_pos)
+ .return (rx70_cur)
+ rx70_restart:
.annotate 'line', 4
- (rx71_rep, rx71_pos, $I10, $P10) = rx71_cur."!mark_fail"(0)
- lt rx71_pos, -1, rx71_done
- eq rx71_pos, -1, rx71_fail
+ rx70_cur."!cursor_debug"("NEXT ", "ws")
+ rx70_fail:
+ (rx70_rep, rx70_pos, $I10, $P10) = rx70_cur."!mark_fail"(0)
+ lt rx70_pos, -1, rx70_done
+ eq rx70_pos, -1, rx70_fail
jump $I10
- rx71_done:
- rx71_cur."!cursor_fail"()
- rx71_cur."!cursor_debug"("FAIL ", "ws")
- .return (rx71_cur)
+ rx70_done:
+ rx70_cur."!cursor_fail"()
+ rx70_cur."!cursor_debug"("FAIL ", "ws")
+ .return (rx70_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws" :subid("22_1275811487.95429") :method
+.sub "!PREFIX__ws" :subid("22_1280467477.44751") :method
.annotate 'line', 4
- new $P73, "ResizablePMCArray"
- push $P73, ""
- push $P73, ""
- .return ($P73)
+ new $P72, "ResizablePMCArray"
+ push $P72, ""
+ push $P72, ""
+ .return ($P72)
.end
.namespace ["NQP";"Grammar"]
-.sub "unv" :subid("23_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "unv" :subid("23_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .const 'Sub' $P92 = "25_1275811487.95429"
- capture_lex $P92
- .local string rx85_tgt
- .local int rx85_pos
- .local int rx85_off
- .local int rx85_eos
- .local int rx85_rep
- .local pmc rx85_cur
- (rx85_cur, rx85_pos, rx85_tgt) = self."!cursor_start"()
- rx85_cur."!cursor_debug"("START ", "unv")
- .lex unicode:"$\x{a2}", rx85_cur
+ .const 'Sub' $P88 = "25_1280467477.44751"
+ capture_lex $P88
+ .local string rx81_tgt
+ .local int rx81_pos
+ .local int rx81_off
+ .local int rx81_eos
+ .local int rx81_rep
+ .local pmc rx81_cur
+ (rx81_cur, rx81_pos, rx81_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx81_cur
.local pmc match
.lex "$/", match
- length rx85_eos, rx85_tgt
- gt rx85_pos, rx85_eos, rx85_done
- set rx85_off, 0
- lt rx85_pos, 2, rx85_start
- sub rx85_off, rx85_pos, 1
- substr rx85_tgt, rx85_tgt, rx85_off
- rx85_start:
+ length rx81_eos, rx81_tgt
+ gt rx81_pos, rx81_eos, rx81_done
+ set rx81_off, 0
+ lt rx81_pos, 2, rx81_start
+ sub rx81_off, rx81_pos, 1
+ substr rx81_tgt, rx81_tgt, rx81_off
+ rx81_start:
+ eq $I10, 1, rx81_restart
+ rx81_cur."!cursor_debug"("START ", "unv")
$I10 = self.'from'()
- ne $I10, -1, rxscan88_done
- goto rxscan88_scan
- rxscan88_loop:
- ($P10) = rx85_cur."from"()
+ ne $I10, -1, rxscan84_done
+ goto rxscan84_scan
+ rxscan84_loop:
+ ($P10) = rx81_cur."from"()
inc $P10
- set rx85_pos, $P10
- ge rx85_pos, rx85_eos, rxscan88_done
- rxscan88_scan:
- set_addr $I10, rxscan88_loop
- rx85_cur."!mark_push"(0, rx85_pos, $I10)
- rxscan88_done:
- alt89_0:
+ set rx81_pos, $P10
+ ge rx81_pos, rx81_eos, rxscan84_done
+ rxscan84_scan:
+ set_addr $I10, rxscan84_loop
+ rx81_cur."!mark_push"(0, rx81_pos, $I10)
+ rxscan84_done:
+ alt85_0:
.annotate 'line', 45
- set_addr $I10, alt89_1
- rx85_cur."!mark_push"(0, rx85_pos, $I10)
+ set_addr $I10, alt85_1
+ rx81_cur."!mark_push"(0, rx81_pos, $I10)
.annotate 'line', 46
# rxanchor bol
- eq rx85_pos, 0, rxanchor90_done
- ge rx85_pos, rx85_eos, rx85_fail
- sub $I10, rx85_pos, rx85_off
+ eq rx81_pos, 0, rxanchor86_done
+ ge rx81_pos, rx81_eos, rx81_fail
+ sub $I10, rx81_pos, rx81_off
dec $I10
- is_cclass $I11, 4096, rx85_tgt, $I10
- unless $I11, rx85_fail
- rxanchor90_done:
+ is_cclass $I11, 4096, rx81_tgt, $I10
+ unless $I11, rx81_fail
+ rxanchor86_done:
# rx subrule "before" subtype=zerowidth negate=
- rx85_cur."!cursor_pos"(rx85_pos)
- .const 'Sub' $P92 = "25_1275811487.95429"
- capture_lex $P92
- $P10 = rx85_cur."before"($P92)
- unless $P10, rx85_fail
+ rx81_cur."!cursor_pos"(rx81_pos)
+ .const 'Sub' $P88 = "25_1280467477.44751"
+ capture_lex $P88
+ $P10 = rx81_cur."before"($P88)
+ unless $P10, rx81_fail
# rx subrule "pod_comment" subtype=method negate=
- rx85_cur."!cursor_pos"(rx85_pos)
- $P10 = rx85_cur."pod_comment"()
- unless $P10, rx85_fail
- rx85_pos = $P10."pos"()
- goto alt89_end
- alt89_1:
- set_addr $I10, alt89_2
- rx85_cur."!mark_push"(0, rx85_pos, $I10)
+ rx81_cur."!cursor_pos"(rx81_pos)
+ $P10 = rx81_cur."pod_comment"()
+ unless $P10, rx81_fail
+ rx81_pos = $P10."pos"()
+ goto alt85_end
+ alt85_1:
+ set_addr $I10, alt85_2
+ rx81_cur."!mark_push"(0, rx81_pos, $I10)
.annotate 'line', 47
- # rx rxquantr98 ** 0..*
- set_addr $I99, rxquantr98_done
- rx85_cur."!mark_push"(0, rx85_pos, $I99)
- rxquantr98_loop:
+ # rx rxquantr93 ** 0..*
+ set_addr $I10, rxquantr93_done
+ rx81_cur."!mark_push"(0, rx81_pos, $I10)
+ rxquantr93_loop:
# rx enumcharlist negate=0
- ge rx85_pos, rx85_eos, rx85_fail
- sub $I10, rx85_pos, rx85_off
- substr $S10, rx85_tgt, $I10, 1
+ ge rx81_pos, rx81_eos, rx81_fail
+ sub $I10, rx81_pos, rx81_off
+ substr $S10, rx81_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx85_fail
- inc rx85_pos
- (rx85_rep) = rx85_cur."!mark_commit"($I99)
- rx85_cur."!mark_push"(rx85_rep, rx85_pos, $I99)
- goto rxquantr98_loop
- rxquantr98_done:
+ lt $I11, 0, rx81_fail
+ inc rx81_pos
+ set_addr $I10, rxquantr93_done
+ (rx81_rep) = rx81_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr93_done
+ rx81_cur."!mark_push"(rx81_rep, rx81_pos, $I10)
+ goto rxquantr93_loop
+ rxquantr93_done:
# rx literal "#"
- add $I11, rx85_pos, 1
- gt $I11, rx85_eos, rx85_fail
- sub $I11, rx85_pos, rx85_off
- substr $S10, rx85_tgt, $I11, 1
- ne $S10, "#", rx85_fail
- add rx85_pos, 1
+ add $I11, rx81_pos, 1
+ gt $I11, rx81_eos, rx81_fail
+ sub $I11, rx81_pos, rx81_off
+ substr $S10, rx81_tgt, $I11, 1
+ ne $S10, "#", rx81_fail
+ add rx81_pos, 1
# rx charclass_q N r 0..-1
- sub $I10, rx85_pos, rx85_off
- find_cclass $I11, 4096, rx85_tgt, $I10, rx85_eos
- add rx85_pos, rx85_off, $I11
- goto alt89_end
- alt89_2:
+ sub $I10, rx81_pos, rx81_off
+ find_cclass $I11, 4096, rx81_tgt, $I10, rx81_eos
+ add rx81_pos, rx81_off, $I11
+ goto alt85_end
+ alt85_2:
.annotate 'line', 48
- # rx rxquantr100 ** 1..*
- set_addr $I101, rxquantr100_done
- rx85_cur."!mark_push"(0, -1, $I101)
- rxquantr100_loop:
+ # rx rxquantr94 ** 1..*
+ set_addr $I10, rxquantr94_done
+ rx81_cur."!mark_push"(0, -1, $I10)
+ rxquantr94_loop:
# rx enumcharlist negate=0
- ge rx85_pos, rx85_eos, rx85_fail
- sub $I10, rx85_pos, rx85_off
- substr $S10, rx85_tgt, $I10, 1
+ ge rx81_pos, rx81_eos, rx81_fail
+ sub $I10, rx81_pos, rx81_off
+ substr $S10, rx81_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx85_fail
- inc rx85_pos
- (rx85_rep) = rx85_cur."!mark_commit"($I101)
- rx85_cur."!mark_push"(rx85_rep, rx85_pos, $I101)
- goto rxquantr100_loop
- rxquantr100_done:
- alt89_end:
+ lt $I11, 0, rx81_fail
+ inc rx81_pos
+ set_addr $I10, rxquantr94_done
+ (rx81_rep) = rx81_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr94_done
+ rx81_cur."!mark_push"(rx81_rep, rx81_pos, $I10)
+ goto rxquantr94_loop
+ rxquantr94_done:
+ alt85_end:
.annotate 'line', 43
# rx pass
- rx85_cur."!cursor_pass"(rx85_pos, "unv")
- rx85_cur."!cursor_debug"("PASS ", "unv", " at pos=", rx85_pos)
- .return (rx85_cur)
- rx85_fail:
+ rx81_cur."!cursor_pass"(rx81_pos, "unv")
+ rx81_cur."!cursor_debug"("PASS ", "unv", " at pos=", rx81_pos)
+ .return (rx81_cur)
+ rx81_restart:
.annotate 'line', 4
- (rx85_rep, rx85_pos, $I10, $P10) = rx85_cur."!mark_fail"(0)
- lt rx85_pos, -1, rx85_done
- eq rx85_pos, -1, rx85_fail
+ rx81_cur."!cursor_debug"("NEXT ", "unv")
+ rx81_fail:
+ (rx81_rep, rx81_pos, $I10, $P10) = rx81_cur."!mark_fail"(0)
+ lt rx81_pos, -1, rx81_done
+ eq rx81_pos, -1, rx81_fail
jump $I10
- rx85_done:
- rx85_cur."!cursor_fail"()
- rx85_cur."!cursor_debug"("FAIL ", "unv")
- .return (rx85_cur)
+ rx81_done:
+ rx81_cur."!cursor_fail"()
+ rx81_cur."!cursor_debug"("FAIL ", "unv")
+ .return (rx81_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv" :subid("24_1275811487.95429") :method
+.sub "!PREFIX__unv" :subid("24_1280467477.44751") :method
.annotate 'line', 4
- new $P87, "ResizablePMCArray"
- push $P87, ""
- push $P87, ""
- push $P87, ""
- .return ($P87)
+ new $P83, "ResizablePMCArray"
+ push $P83, ""
+ push $P83, ""
+ push $P83, ""
+ .return ($P83)
.end
.namespace ["NQP";"Grammar"]
-.sub "_block91" :anon :subid("25_1275811487.95429") :method :outer("23_1275811487.95429")
+.sub "_block87" :anon :subid("25_1280467477.44751") :method :outer("23_1280467477.44751")
.annotate 'line', 46
- .local string rx93_tgt
- .local int rx93_pos
- .local int rx93_off
- .local int rx93_eos
- .local int rx93_rep
- .local pmc rx93_cur
- (rx93_cur, rx93_pos, rx93_tgt) = self."!cursor_start"()
- rx93_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx93_cur
- .local pmc match
- .lex "$/", match
- length rx93_eos, rx93_tgt
- gt rx93_pos, rx93_eos, rx93_done
- set rx93_off, 0
- lt rx93_pos, 2, rx93_start
- sub rx93_off, rx93_pos, 1
- substr rx93_tgt, rx93_tgt, rx93_off
- rx93_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan94_done
- goto rxscan94_scan
- rxscan94_loop:
- ($P10) = rx93_cur."from"()
- inc $P10
- set rx93_pos, $P10
- ge rx93_pos, rx93_eos, rxscan94_done
- rxscan94_scan:
- set_addr $I10, rxscan94_loop
- rx93_cur."!mark_push"(0, rx93_pos, $I10)
- rxscan94_done:
- # rx rxquantr95 ** 0..*
- set_addr $I96, rxquantr95_done
- rx93_cur."!mark_push"(0, rx93_pos, $I96)
- rxquantr95_loop:
+ .local string rx89_tgt
+ .local int rx89_pos
+ .local int rx89_off
+ .local int rx89_eos
+ .local int rx89_rep
+ .local pmc rx89_cur
+ (rx89_cur, rx89_pos, rx89_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx89_cur
+ .local pmc match
+ .lex "$/", match
+ length rx89_eos, rx89_tgt
+ gt rx89_pos, rx89_eos, rx89_done
+ set rx89_off, 0
+ lt rx89_pos, 2, rx89_start
+ sub rx89_off, rx89_pos, 1
+ substr rx89_tgt, rx89_tgt, rx89_off
+ rx89_start:
+ eq $I10, 1, rx89_restart
+ rx89_cur."!cursor_debug"("START ", "")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan90_done
+ goto rxscan90_scan
+ rxscan90_loop:
+ ($P10) = rx89_cur."from"()
+ inc $P10
+ set rx89_pos, $P10
+ ge rx89_pos, rx89_eos, rxscan90_done
+ rxscan90_scan:
+ set_addr $I10, rxscan90_loop
+ rx89_cur."!mark_push"(0, rx89_pos, $I10)
+ rxscan90_done:
+ # rx rxquantr91 ** 0..*
+ set_addr $I10, rxquantr91_done
+ rx89_cur."!mark_push"(0, rx89_pos, $I10)
+ rxquantr91_loop:
# rx enumcharlist negate=0
- ge rx93_pos, rx93_eos, rx93_fail
- sub $I10, rx93_pos, rx93_off
- substr $S10, rx93_tgt, $I10, 1
+ ge rx89_pos, rx89_eos, rx89_fail
+ sub $I10, rx89_pos, rx89_off
+ substr $S10, rx89_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx93_fail
- inc rx93_pos
- (rx93_rep) = rx93_cur."!mark_commit"($I96)
- rx93_cur."!mark_push"(rx93_rep, rx93_pos, $I96)
- goto rxquantr95_loop
- rxquantr95_done:
+ lt $I11, 0, rx89_fail
+ inc rx89_pos
+ set_addr $I10, rxquantr91_done
+ (rx89_rep) = rx89_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr91_done
+ rx89_cur."!mark_push"(rx89_rep, rx89_pos, $I10)
+ goto rxquantr91_loop
+ rxquantr91_done:
# rx literal "="
- add $I11, rx93_pos, 1
- gt $I11, rx93_eos, rx93_fail
- sub $I11, rx93_pos, rx93_off
- substr $S10, rx93_tgt, $I11, 1
- ne $S10, "=", rx93_fail
- add rx93_pos, 1
- alt97_0:
- set_addr $I10, alt97_1
- rx93_cur."!mark_push"(0, rx93_pos, $I10)
+ add $I11, rx89_pos, 1
+ gt $I11, rx89_eos, rx89_fail
+ sub $I11, rx89_pos, rx89_off
+ substr $S10, rx89_tgt, $I11, 1
+ ne $S10, "=", rx89_fail
+ add rx89_pos, 1
+ alt92_0:
+ set_addr $I10, alt92_1
+ rx89_cur."!mark_push"(0, rx89_pos, $I10)
# rx charclass w
- ge rx93_pos, rx93_eos, rx93_fail
- sub $I10, rx93_pos, rx93_off
- is_cclass $I11, 8192, rx93_tgt, $I10
- unless $I11, rx93_fail
- inc rx93_pos
- goto alt97_end
- alt97_1:
+ ge rx89_pos, rx89_eos, rx89_fail
+ sub $I10, rx89_pos, rx89_off
+ is_cclass $I11, 8192, rx89_tgt, $I10
+ unless $I11, rx89_fail
+ inc rx89_pos
+ goto alt92_end
+ alt92_1:
# rx literal "\\"
- add $I11, rx93_pos, 1
- gt $I11, rx93_eos, rx93_fail
- sub $I11, rx93_pos, rx93_off
- substr $S10, rx93_tgt, $I11, 1
- ne $S10, "\\", rx93_fail
- add rx93_pos, 1
- alt97_end:
- # rx pass
- rx93_cur."!cursor_pass"(rx93_pos, "")
- rx93_cur."!cursor_debug"("PASS ", "", " at pos=", rx93_pos)
- .return (rx93_cur)
- rx93_fail:
- (rx93_rep, rx93_pos, $I10, $P10) = rx93_cur."!mark_fail"(0)
- lt rx93_pos, -1, rx93_done
- eq rx93_pos, -1, rx93_fail
- jump $I10
- rx93_done:
- rx93_cur."!cursor_fail"()
- rx93_cur."!cursor_debug"("FAIL ", "")
- .return (rx93_cur)
+ add $I11, rx89_pos, 1
+ gt $I11, rx89_eos, rx89_fail
+ sub $I11, rx89_pos, rx89_off
+ substr $S10, rx89_tgt, $I11, 1
+ ne $S10, "\\", rx89_fail
+ add rx89_pos, 1
+ alt92_end:
+ # rx pass
+ rx89_cur."!cursor_pass"(rx89_pos, "")
+ rx89_cur."!cursor_debug"("PASS ", "", " at pos=", rx89_pos)
+ .return (rx89_cur)
+ rx89_restart:
+ rx89_cur."!cursor_debug"("NEXT ", "")
+ rx89_fail:
+ (rx89_rep, rx89_pos, $I10, $P10) = rx89_cur."!mark_fail"(0)
+ lt rx89_pos, -1, rx89_done
+ eq rx89_pos, -1, rx89_fail
+ jump $I10
+ rx89_done:
+ rx89_cur."!cursor_fail"()
+ rx89_cur."!cursor_debug"("FAIL ", "")
+ .return (rx89_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "pod_comment" :subid("26_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .const 'Sub' $P143 = "28_1275811487.95429"
- capture_lex $P143
- .local string rx103_tgt
- .local int rx103_pos
- .local int rx103_off
- .local int rx103_eos
- .local int rx103_rep
- .local pmc rx103_cur
- (rx103_cur, rx103_pos, rx103_tgt) = self."!cursor_start"()
- rx103_cur."!cursor_debug"("START ", "pod_comment")
- .lex unicode:"$\x{a2}", rx103_cur
- .local pmc match
- .lex "$/", match
- length rx103_eos, rx103_tgt
- gt rx103_pos, rx103_eos, rx103_done
- set rx103_off, 0
- lt rx103_pos, 2, rx103_start
- sub rx103_off, rx103_pos, 1
- substr rx103_tgt, rx103_tgt, rx103_off
- rx103_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan106_done
- goto rxscan106_scan
- rxscan106_loop:
- ($P10) = rx103_cur."from"()
- inc $P10
- set rx103_pos, $P10
- ge rx103_pos, rx103_eos, rxscan106_done
- rxscan106_scan:
- set_addr $I10, rxscan106_loop
- rx103_cur."!mark_push"(0, rx103_pos, $I10)
- rxscan106_done:
+.sub "pod_comment" :subid("26_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .const 'Sub' $P127 = "28_1280467477.44751"
+ capture_lex $P127
+ .local string rx96_tgt
+ .local int rx96_pos
+ .local int rx96_off
+ .local int rx96_eos
+ .local int rx96_rep
+ .local pmc rx96_cur
+ (rx96_cur, rx96_pos, rx96_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx96_cur
+ .local pmc match
+ .lex "$/", match
+ length rx96_eos, rx96_tgt
+ gt rx96_pos, rx96_eos, rx96_done
+ set rx96_off, 0
+ lt rx96_pos, 2, rx96_start
+ sub rx96_off, rx96_pos, 1
+ substr rx96_tgt, rx96_tgt, rx96_off
+ rx96_start:
+ eq $I10, 1, rx96_restart
+ rx96_cur."!cursor_debug"("START ", "pod_comment")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan99_done
+ goto rxscan99_scan
+ rxscan99_loop:
+ ($P10) = rx96_cur."from"()
+ inc $P10
+ set rx96_pos, $P10
+ ge rx96_pos, rx96_eos, rxscan99_done
+ rxscan99_scan:
+ set_addr $I10, rxscan99_loop
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
+ rxscan99_done:
.annotate 'line', 53
# rxanchor bol
- eq rx103_pos, 0, rxanchor107_done
- ge rx103_pos, rx103_eos, rx103_fail
- sub $I10, rx103_pos, rx103_off
+ eq rx96_pos, 0, rxanchor100_done
+ ge rx96_pos, rx96_eos, rx96_fail
+ sub $I10, rx96_pos, rx96_off
dec $I10
- is_cclass $I11, 4096, rx103_tgt, $I10
- unless $I11, rx103_fail
- rxanchor107_done:
- # rx rxquantr108 ** 0..*
- set_addr $I109, rxquantr108_done
- rx103_cur."!mark_push"(0, rx103_pos, $I109)
- rxquantr108_loop:
+ is_cclass $I11, 4096, 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 rx103_pos, rx103_eos, rx103_fail
- sub $I10, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I10, 1
+ ge rx96_pos, rx96_eos, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx103_fail
- inc rx103_pos
- (rx103_rep) = rx103_cur."!mark_commit"($I109)
- rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I109)
- goto rxquantr108_loop
- rxquantr108_done:
+ lt $I11, 0, rx96_fail
+ inc rx96_pos
+ set_addr $I10, rxquantr101_done
+ (rx96_rep) = rx96_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr101_done
+ rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+ goto rxquantr101_loop
+ rxquantr101_done:
# rx literal "="
- add $I11, rx103_pos, 1
- gt $I11, rx103_eos, rx103_fail
- sub $I11, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I11, 1
- ne $S10, "=", rx103_fail
- add rx103_pos, 1
- alt110_0:
+ add $I11, rx96_pos, 1
+ gt $I11, rx96_eos, rx96_fail
+ sub $I11, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I11, 1
+ ne $S10, "=", rx96_fail
+ add rx96_pos, 1
+ alt102_0:
.annotate 'line', 54
- set_addr $I10, alt110_1
- rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ set_addr $I10, alt102_1
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
.annotate 'line', 55
# rx literal "begin"
- add $I11, rx103_pos, 5
- gt $I11, rx103_eos, rx103_fail
- sub $I11, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I11, 5
- ne $S10, "begin", rx103_fail
- add rx103_pos, 5
- # rx rxquantr111 ** 1..*
- set_addr $I112, rxquantr111_done
- rx103_cur."!mark_push"(0, -1, $I112)
- rxquantr111_loop:
+ add $I11, rx96_pos, 5
+ gt $I11, rx96_eos, rx96_fail
+ sub $I11, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I11, 5
+ ne $S10, "begin", rx96_fail
+ add rx96_pos, 5
+ # rx rxquantr103 ** 1..*
+ set_addr $I10, rxquantr103_done
+ rx96_cur."!mark_push"(0, -1, $I10)
+ rxquantr103_loop:
# rx enumcharlist negate=0
- ge rx103_pos, rx103_eos, rx103_fail
- sub $I10, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I10, 1
+ ge rx96_pos, rx96_eos, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx103_fail
- inc rx103_pos
- (rx103_rep) = rx103_cur."!mark_commit"($I112)
- rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I112)
- goto rxquantr111_loop
- rxquantr111_done:
+ lt $I11, 0, rx96_fail
+ inc rx96_pos
+ set_addr $I10, rxquantr103_done
+ (rx96_rep) = rx96_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr103_done
+ rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+ goto rxquantr103_loop
+ rxquantr103_done:
# rx literal "END"
- add $I11, rx103_pos, 3
- gt $I11, rx103_eos, rx103_fail
- sub $I11, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I11, 3
- ne $S10, "END", rx103_fail
- add rx103_pos, 3
+ add $I11, rx96_pos, 3
+ gt $I11, rx96_eos, rx96_fail
+ sub $I11, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I11, 3
+ ne $S10, "END", rx96_fail
+ add rx96_pos, 3
# rxanchor rwb
- le rx103_pos, 0, rx103_fail
- sub $I10, rx103_pos, rx103_off
- is_cclass $I11, 8192, rx103_tgt, $I10
- if $I11, rx103_fail
+ le rx96_pos, 0, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ is_cclass $I11, 8192, rx96_tgt, $I10
+ if $I11, rx96_fail
dec $I10
- is_cclass $I11, 8192, rx103_tgt, $I10
- unless $I11, rx103_fail
- alt113_0:
+ is_cclass $I11, 8192, rx96_tgt, $I10
+ unless $I11, rx96_fail
+ alt104_0:
.annotate 'line', 56
- set_addr $I10, alt113_1
- rx103_cur."!mark_push"(0, rx103_pos, $I10)
- # rx rxquantf114 ** 0..*
- set_addr $I10, rxquantf114_loop
- rx103_cur."!mark_push"(0, rx103_pos, $I10)
- goto rxquantf114_done
- rxquantf114_loop:
+ set_addr $I10, alt104_1
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
+ # rx rxquantf105 ** 0..*
+ set_addr $I10, rxquantf105_loop
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
+ goto rxquantf105_done
+ rxquantf105_loop:
# rx charclass .
- ge rx103_pos, rx103_eos, rx103_fail
- inc rx103_pos
- set_addr $I10, rxquantf114_loop
- rx103_cur."!mark_push"($I115, rx103_pos, $I10)
- rxquantf114_done:
+ ge rx96_pos, rx96_eos, rx96_fail
+ inc rx96_pos
+ set_addr $I10, rxquantf105_loop
+ rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+ rxquantf105_done:
# rx charclass nl
- ge rx103_pos, rx103_eos, rx103_fail
- sub $I10, rx103_pos, rx103_off
- is_cclass $I11, 4096, rx103_tgt, $I10
- unless $I11, rx103_fail
- substr $S10, rx103_tgt, $I10, 2
+ ge rx96_pos, rx96_eos, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ is_cclass $I11, 4096, rx96_tgt, $I10
+ unless $I11, rx96_fail
+ substr $S10, rx96_tgt, $I10, 2
iseq $I11, $S10, "\r\n"
- add rx103_pos, $I11
- inc rx103_pos
- # rx rxquantr116 ** 0..*
- set_addr $I117, rxquantr116_done
- rx103_cur."!mark_push"(0, rx103_pos, $I117)
- rxquantr116_loop:
+ add rx96_pos, $I11
+ inc rx96_pos
+ # rx rxquantr107 ** 0..*
+ set_addr $I10, rxquantr107_done
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
+ rxquantr107_loop:
# rx enumcharlist negate=0
- ge rx103_pos, rx103_eos, rx103_fail
- sub $I10, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I10, 1
+ ge rx96_pos, rx96_eos, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx103_fail
- inc rx103_pos
- (rx103_rep) = rx103_cur."!mark_commit"($I117)
- rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I117)
- goto rxquantr116_loop
- rxquantr116_done:
+ lt $I11, 0, rx96_fail
+ inc rx96_pos
+ set_addr $I10, rxquantr107_done
+ (rx96_rep) = rx96_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr107_done
+ rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+ goto rxquantr107_loop
+ rxquantr107_done:
# rx literal "=end"
- add $I11, rx103_pos, 4
- gt $I11, rx103_eos, rx103_fail
- sub $I11, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I11, 4
- ne $S10, "=end", rx103_fail
- add rx103_pos, 4
- # rx rxquantr118 ** 1..*
- set_addr $I119, rxquantr118_done
- rx103_cur."!mark_push"(0, -1, $I119)
- rxquantr118_loop:
+ add $I11, rx96_pos, 4
+ gt $I11, rx96_eos, rx96_fail
+ sub $I11, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I11, 4
+ ne $S10, "=end", rx96_fail
+ add rx96_pos, 4
+ # rx rxquantr108 ** 1..*
+ set_addr $I10, rxquantr108_done
+ rx96_cur."!mark_push"(0, -1, $I10)
+ rxquantr108_loop:
# rx enumcharlist negate=0
- ge rx103_pos, rx103_eos, rx103_fail
- sub $I10, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I10, 1
+ ge rx96_pos, rx96_eos, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx103_fail
- inc rx103_pos
- (rx103_rep) = rx103_cur."!mark_commit"($I119)
- rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I119)
- goto rxquantr118_loop
- rxquantr118_done:
+ lt $I11, 0, rx96_fail
+ inc rx96_pos
+ set_addr $I10, rxquantr108_done
+ (rx96_rep) = rx96_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr108_done
+ rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+ goto rxquantr108_loop
+ rxquantr108_done:
# rx literal "END"
- add $I11, rx103_pos, 3
- gt $I11, rx103_eos, rx103_fail
- sub $I11, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I11, 3
- ne $S10, "END", rx103_fail
- add rx103_pos, 3
+ add $I11, rx96_pos, 3
+ gt $I11, rx96_eos, rx96_fail
+ sub $I11, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I11, 3
+ ne $S10, "END", rx96_fail
+ add rx96_pos, 3
# rxanchor rwb
- le rx103_pos, 0, rx103_fail
- sub $I10, rx103_pos, rx103_off
- is_cclass $I11, 8192, rx103_tgt, $I10
- if $I11, rx103_fail
+ le rx96_pos, 0, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ is_cclass $I11, 8192, rx96_tgt, $I10
+ if $I11, rx96_fail
dec $I10
- is_cclass $I11, 8192, rx103_tgt, $I10
- unless $I11, rx103_fail
+ is_cclass $I11, 8192, rx96_tgt, $I10
+ unless $I11, rx96_fail
# rx charclass_q N r 0..-1
- sub $I10, rx103_pos, rx103_off
- find_cclass $I11, 4096, rx103_tgt, $I10, rx103_eos
- add rx103_pos, rx103_off, $I11
- goto alt113_end
- alt113_1:
+ sub $I10, rx96_pos, rx96_off
+ find_cclass $I11, 4096, rx96_tgt, $I10, rx96_eos
+ add rx96_pos, rx96_off, $I11
+ goto alt104_end
+ alt104_1:
# rx charclass_q . r 0..-1
- sub $I10, rx103_pos, rx103_off
- find_not_cclass $I11, 65535, rx103_tgt, $I10, rx103_eos
- add rx103_pos, rx103_off, $I11
- alt113_end:
+ sub $I10, rx96_pos, rx96_off
+ find_not_cclass $I11, 65535, rx96_tgt, $I10, rx96_eos
+ add rx96_pos, rx96_off, $I11
+ alt104_end:
.annotate 'line', 55
- goto alt110_end
- alt110_1:
- set_addr $I10, alt110_2
- rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ goto alt102_end
+ alt102_1:
+ set_addr $I10, alt102_2
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
.annotate 'line', 57
# rx literal "begin"
- add $I11, rx103_pos, 5
- gt $I11, rx103_eos, rx103_fail
- sub $I11, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I11, 5
- ne $S10, "begin", rx103_fail
- add rx103_pos, 5
- # rx rxquantr120 ** 1..*
- set_addr $I121, rxquantr120_done
- rx103_cur."!mark_push"(0, -1, $I121)
- rxquantr120_loop:
+ add $I11, rx96_pos, 5
+ gt $I11, rx96_eos, rx96_fail
+ sub $I11, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I11, 5
+ ne $S10, "begin", rx96_fail
+ add rx96_pos, 5
+ # rx rxquantr109 ** 1..*
+ set_addr $I10, rxquantr109_done
+ rx96_cur."!mark_push"(0, -1, $I10)
+ rxquantr109_loop:
# rx enumcharlist negate=0
- ge rx103_pos, rx103_eos, rx103_fail
- sub $I10, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I10, 1
+ ge rx96_pos, rx96_eos, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx103_fail
- inc rx103_pos
- (rx103_rep) = rx103_cur."!mark_commit"($I121)
- rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I121)
- goto rxquantr120_loop
- rxquantr120_done:
+ lt $I11, 0, rx96_fail
+ inc rx96_pos
+ set_addr $I10, rxquantr109_done
+ (rx96_rep) = rx96_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr109_done
+ rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+ goto rxquantr109_loop
+ rxquantr109_done:
# rx subrule "identifier" subtype=capture negate=
- rx103_cur."!cursor_pos"(rx103_pos)
- $P10 = rx103_cur."identifier"()
- unless $P10, rx103_fail
- rx103_cur."!mark_push"(0, -1, 0, $P10)
+ rx96_cur."!cursor_pos"(rx96_pos)
+ $P10 = rx96_cur."identifier"()
+ unless $P10, rx96_fail
+ rx96_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("identifier")
- rx103_pos = $P10."pos"()
- alt122_0:
+ rx96_pos = $P10."pos"()
+ alt110_0:
.annotate 'line', 58
- set_addr $I10, alt122_1
- rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ set_addr $I10, alt110_1
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
.annotate 'line', 59
- # rx rxquantf123 ** 0..*
- set_addr $I10, rxquantf123_loop
- rx103_cur."!mark_push"(0, rx103_pos, $I10)
- goto rxquantf123_done
- rxquantf123_loop:
+ # rx rxquantf111 ** 0..*
+ set_addr $I10, rxquantf111_loop
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
+ goto rxquantf111_done
+ rxquantf111_loop:
# rx charclass .
- ge rx103_pos, rx103_eos, rx103_fail
- inc rx103_pos
- set_addr $I10, rxquantf123_loop
- rx103_cur."!mark_push"($I124, rx103_pos, $I10)
- rxquantf123_done:
+ ge rx96_pos, rx96_eos, rx96_fail
+ inc rx96_pos
+ set_addr $I10, rxquantf111_loop
+ rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+ rxquantf111_done:
# rx charclass nl
- ge rx103_pos, rx103_eos, rx103_fail
- sub $I10, rx103_pos, rx103_off
- is_cclass $I11, 4096, rx103_tgt, $I10
- unless $I11, rx103_fail
- substr $S10, rx103_tgt, $I10, 2
+ ge rx96_pos, rx96_eos, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ is_cclass $I11, 4096, rx96_tgt, $I10
+ unless $I11, rx96_fail
+ substr $S10, rx96_tgt, $I10, 2
iseq $I11, $S10, "\r\n"
- add rx103_pos, $I11
- inc rx103_pos
- # rx rxquantr125 ** 0..*
- set_addr $I126, rxquantr125_done
- rx103_cur."!mark_push"(0, rx103_pos, $I126)
- rxquantr125_loop:
+ add rx96_pos, $I11
+ inc rx96_pos
+ # rx rxquantr113 ** 0..*
+ set_addr $I10, rxquantr113_done
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
+ rxquantr113_loop:
# rx enumcharlist negate=0
- ge rx103_pos, rx103_eos, rx103_fail
- sub $I10, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I10, 1
+ ge rx96_pos, rx96_eos, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx103_fail
- inc rx103_pos
- (rx103_rep) = rx103_cur."!mark_commit"($I126)
- rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I126)
- goto rxquantr125_loop
- rxquantr125_done:
+ lt $I11, 0, rx96_fail
+ inc rx96_pos
+ set_addr $I10, rxquantr113_done
+ (rx96_rep) = rx96_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr113_done
+ rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+ goto rxquantr113_loop
+ rxquantr113_done:
# rx literal "=end"
- add $I11, rx103_pos, 4
- gt $I11, rx103_eos, rx103_fail
- sub $I11, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I11, 4
- ne $S10, "=end", rx103_fail
- add rx103_pos, 4
- # rx rxquantr127 ** 1..*
- set_addr $I128, rxquantr127_done
- rx103_cur."!mark_push"(0, -1, $I128)
- rxquantr127_loop:
+ add $I11, rx96_pos, 4
+ gt $I11, rx96_eos, rx96_fail
+ sub $I11, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I11, 4
+ ne $S10, "=end", rx96_fail
+ add rx96_pos, 4
+ # rx rxquantr114 ** 1..*
+ set_addr $I10, rxquantr114_done
+ rx96_cur."!mark_push"(0, -1, $I10)
+ rxquantr114_loop:
# rx enumcharlist negate=0
- ge rx103_pos, rx103_eos, rx103_fail
- sub $I10, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I10, 1
+ ge rx96_pos, rx96_eos, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx103_fail
- inc rx103_pos
- (rx103_rep) = rx103_cur."!mark_commit"($I128)
- rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I128)
- goto rxquantr127_loop
- rxquantr127_done:
+ lt $I11, 0, rx96_fail
+ inc rx96_pos
+ set_addr $I10, rxquantr114_done
+ (rx96_rep) = rx96_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr114_done
+ rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+ goto rxquantr114_loop
+ rxquantr114_done:
# rx subrule "!BACKREF" subtype=method negate=
- rx103_cur."!cursor_pos"(rx103_pos)
- $P10 = rx103_cur."!BACKREF"("identifier")
- unless $P10, rx103_fail
- rx103_pos = $P10."pos"()
+ rx96_cur."!cursor_pos"(rx96_pos)
+ $P10 = rx96_cur."!BACKREF"("identifier")
+ unless $P10, rx96_fail
+ rx96_pos = $P10."pos"()
# rxanchor rwb
- le rx103_pos, 0, rx103_fail
- sub $I10, rx103_pos, rx103_off
- is_cclass $I11, 8192, rx103_tgt, $I10
- if $I11, rx103_fail
+ le rx96_pos, 0, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ is_cclass $I11, 8192, rx96_tgt, $I10
+ if $I11, rx96_fail
dec $I10
- is_cclass $I11, 8192, rx103_tgt, $I10
- unless $I11, rx103_fail
+ is_cclass $I11, 8192, rx96_tgt, $I10
+ unless $I11, rx96_fail
# rx charclass_q N r 0..-1
- sub $I10, rx103_pos, rx103_off
- find_cclass $I11, 4096, rx103_tgt, $I10, rx103_eos
- add rx103_pos, rx103_off, $I11
- goto alt122_end
- alt122_1:
+ sub $I10, rx96_pos, rx96_off
+ find_cclass $I11, 4096, rx96_tgt, $I10, rx96_eos
+ add rx96_pos, rx96_off, $I11
+ goto alt110_end
+ alt110_1:
.annotate 'line', 60
# rx subrule "panic" subtype=method negate=
- rx103_cur."!cursor_pos"(rx103_pos)
- $P10 = rx103_cur."panic"("=begin without matching =end")
- unless $P10, rx103_fail
- rx103_pos = $P10."pos"()
- alt122_end:
+ rx96_cur."!cursor_pos"(rx96_pos)
+ $P10 = rx96_cur."panic"("=begin without matching =end")
+ unless $P10, rx96_fail
+ rx96_pos = $P10."pos"()
+ alt110_end:
.annotate 'line', 57
- goto alt110_end
- alt110_2:
- set_addr $I10, alt110_3
- rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ goto alt102_end
+ alt102_2:
+ set_addr $I10, alt102_3
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
.annotate 'line', 62
# rx literal "begin"
- add $I11, rx103_pos, 5
- gt $I11, rx103_eos, rx103_fail
- sub $I11, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I11, 5
- ne $S10, "begin", rx103_fail
- add rx103_pos, 5
+ add $I11, rx96_pos, 5
+ gt $I11, rx96_eos, rx96_fail
+ sub $I11, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I11, 5
+ ne $S10, "begin", rx96_fail
+ add rx96_pos, 5
# rxanchor rwb
- le rx103_pos, 0, rx103_fail
- sub $I10, rx103_pos, rx103_off
- is_cclass $I11, 8192, rx103_tgt, $I10
- if $I11, rx103_fail
+ le rx96_pos, 0, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ is_cclass $I11, 8192, rx96_tgt, $I10
+ if $I11, rx96_fail
dec $I10
- is_cclass $I11, 8192, rx103_tgt, $I10
- unless $I11, rx103_fail
- # rx rxquantr130 ** 0..*
- set_addr $I131, rxquantr130_done
- rx103_cur."!mark_push"(0, rx103_pos, $I131)
- rxquantr130_loop:
+ is_cclass $I11, 8192, 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 rx103_pos, rx103_eos, rx103_fail
- sub $I10, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I10, 1
+ ge rx96_pos, rx96_eos, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx103_fail
- inc rx103_pos
- (rx103_rep) = rx103_cur."!mark_commit"($I131)
- rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I131)
- goto rxquantr130_loop
- rxquantr130_done:
- alt132_0:
+ lt $I11, 0, rx96_fail
+ inc rx96_pos
+ set_addr $I10, rxquantr116_done
+ (rx96_rep) = rx96_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr116_done
+ rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+ goto rxquantr116_loop
+ rxquantr116_done:
+ alt117_0:
.annotate 'line', 63
- set_addr $I10, alt132_1
- rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ set_addr $I10, alt117_1
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
# rxanchor eol
- sub $I10, rx103_pos, rx103_off
- is_cclass $I11, 4096, rx103_tgt, $I10
- if $I11, rxanchor133_done
- ne rx103_pos, rx103_eos, rx103_fail
- eq rx103_pos, 0, rxanchor133_done
+ sub $I10, rx96_pos, rx96_off
+ is_cclass $I11, 4096, rx96_tgt, $I10
+ if $I11, rxanchor118_done
+ ne rx96_pos, rx96_eos, rx96_fail
+ eq rx96_pos, 0, rxanchor118_done
dec $I10
- is_cclass $I11, 4096, rx103_tgt, $I10
- if $I11, rx103_fail
- rxanchor133_done:
- goto alt132_end
- alt132_1:
- set_addr $I10, alt132_2
- rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ is_cclass $I11, 4096, rx96_tgt, $I10
+ if $I11, rx96_fail
+ rxanchor118_done:
+ goto alt117_end
+ alt117_1:
+ set_addr $I10, alt117_2
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
# rx literal "#"
- add $I11, rx103_pos, 1
- gt $I11, rx103_eos, rx103_fail
- sub $I11, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I11, 1
- ne $S10, "#", rx103_fail
- add rx103_pos, 1
- goto alt132_end
- alt132_2:
+ add $I11, rx96_pos, 1
+ gt $I11, rx96_eos, rx96_fail
+ sub $I11, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I11, 1
+ ne $S10, "#", rx96_fail
+ add rx96_pos, 1
+ goto alt117_end
+ alt117_2:
# rx subrule "panic" subtype=method negate=
- rx103_cur."!cursor_pos"(rx103_pos)
- $P10 = rx103_cur."panic"("Unrecognized token after =begin")
- unless $P10, rx103_fail
- rx103_pos = $P10."pos"()
- alt132_end:
- alt134_0:
+ rx96_cur."!cursor_pos"(rx96_pos)
+ $P10 = rx96_cur."panic"("Unrecognized token after =begin")
+ unless $P10, rx96_fail
+ rx96_pos = $P10."pos"()
+ alt117_end:
+ alt119_0:
.annotate 'line', 64
- set_addr $I10, alt134_1
- rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ set_addr $I10, alt119_1
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
.annotate 'line', 65
- # rx rxquantf135 ** 0..*
- set_addr $I10, rxquantf135_loop
- rx103_cur."!mark_push"(0, rx103_pos, $I10)
- goto rxquantf135_done
- rxquantf135_loop:
+ # rx rxquantf120 ** 0..*
+ set_addr $I10, rxquantf120_loop
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
+ goto rxquantf120_done
+ rxquantf120_loop:
# rx charclass .
- ge rx103_pos, rx103_eos, rx103_fail
- inc rx103_pos
- set_addr $I10, rxquantf135_loop
- rx103_cur."!mark_push"($I136, rx103_pos, $I10)
- rxquantf135_done:
+ ge rx96_pos, rx96_eos, rx96_fail
+ inc rx96_pos
+ set_addr $I10, rxquantf120_loop
+ rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+ rxquantf120_done:
# rx charclass nl
- ge rx103_pos, rx103_eos, rx103_fail
- sub $I10, rx103_pos, rx103_off
- is_cclass $I11, 4096, rx103_tgt, $I10
- unless $I11, rx103_fail
- substr $S10, rx103_tgt, $I10, 2
+ ge rx96_pos, rx96_eos, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ is_cclass $I11, 4096, rx96_tgt, $I10
+ unless $I11, rx96_fail
+ substr $S10, rx96_tgt, $I10, 2
iseq $I11, $S10, "\r\n"
- add rx103_pos, $I11
- inc rx103_pos
- # rx rxquantr137 ** 0..*
- set_addr $I138, rxquantr137_done
- rx103_cur."!mark_push"(0, rx103_pos, $I138)
- rxquantr137_loop:
+ add 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 rx103_pos, rx103_eos, rx103_fail
- sub $I10, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I10, 1
+ ge rx96_pos, rx96_eos, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx103_fail
- inc rx103_pos
- (rx103_rep) = rx103_cur."!mark_commit"($I138)
- rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I138)
- goto rxquantr137_loop
- rxquantr137_done:
+ lt $I11, 0, rx96_fail
+ inc rx96_pos
+ set_addr $I10, rxquantr122_done
+ (rx96_rep) = rx96_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr122_done
+ rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+ goto rxquantr122_loop
+ rxquantr122_done:
# rx literal "=end"
- add $I11, rx103_pos, 4
- gt $I11, rx103_eos, rx103_fail
- sub $I11, rx103_pos, rx103_off
- substr $S10, rx103_tgt, $I11, 4
- ne $S10, "=end", rx103_fail
- add rx103_pos, 4
+ add $I11, rx96_pos, 4
+ gt $I11, rx96_eos, rx96_fail
+ sub $I11, rx96_pos, rx96_off
+ substr $S10, rx96_tgt, $I11, 4
+ ne $S10, "=end", rx96_fail
+ add rx96_pos, 4
# rxanchor rwb
- le rx103_pos, 0, rx103_fail
- sub $I10, rx103_pos, rx103_off
- is_cclass $I11, 8192, rx103_tgt, $I10
- if $I11, rx103_fail
+ le rx96_pos, 0, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ is_cclass $I11, 8192, rx96_tgt, $I10
+ if $I11, rx96_fail
dec $I10
- is_cclass $I11, 8192, rx103_tgt, $I10
- unless $I11, rx103_fail
+ is_cclass $I11, 8192, rx96_tgt, $I10
+ unless $I11, rx96_fail
# rx charclass_q N r 0..-1
- sub $I10, rx103_pos, rx103_off
- find_cclass $I11, 4096, rx103_tgt, $I10, rx103_eos
- add rx103_pos, rx103_off, $I11
- goto alt134_end
- alt134_1:
+ sub $I10, rx96_pos, rx96_off
+ find_cclass $I11, 4096, rx96_tgt, $I10, rx96_eos
+ add rx96_pos, rx96_off, $I11
+ goto alt119_end
+ alt119_1:
.annotate 'line', 66
# rx subrule "panic" subtype=method negate=
- rx103_cur."!cursor_pos"(rx103_pos)
- $P10 = rx103_cur."panic"("=begin without matching =end")
- unless $P10, rx103_fail
- rx103_pos = $P10."pos"()
- alt134_end:
+ rx96_cur."!cursor_pos"(rx96_pos)
+ $P10 = rx96_cur."panic"("=begin without matching =end")
+ unless $P10, rx96_fail
+ rx96_pos = $P10."pos"()
+ alt119_end:
.annotate 'line', 62
- goto alt110_end
- alt110_3:
- set_addr $I10, alt110_4
- rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ goto alt102_end
+ alt102_3:
+ set_addr $I10, alt102_4
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
.annotate 'line', 68
# rx subrule "identifier" subtype=capture negate=
- rx103_cur."!cursor_pos"(rx103_pos)
- $P10 = rx103_cur."identifier"()
- unless $P10, rx103_fail
- rx103_cur."!mark_push"(0, -1, 0, $P10)
+ rx96_cur."!cursor_pos"(rx96_pos)
+ $P10 = rx96_cur."identifier"()
+ unless $P10, rx96_fail
+ rx96_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("identifier")
- rx103_pos = $P10."pos"()
+ rx96_pos = $P10."pos"()
.annotate 'line', 69
- # rx rxquantf139 ** 0..*
- set_addr $I10, rxquantf139_loop
- rx103_cur."!mark_push"(0, rx103_pos, $I10)
- goto rxquantf139_done
- rxquantf139_loop:
+ # rx rxquantf123 ** 0..*
+ set_addr $I10, rxquantf123_loop
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
+ goto rxquantf123_done
+ rxquantf123_loop:
# rx charclass .
- ge rx103_pos, rx103_eos, rx103_fail
- inc rx103_pos
- set_addr $I10, rxquantf139_loop
- rx103_cur."!mark_push"($I140, rx103_pos, $I10)
- rxquantf139_done:
+ ge rx96_pos, rx96_eos, rx96_fail
+ inc rx96_pos
+ set_addr $I10, rxquantf123_loop
+ rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+ rxquantf123_done:
# rxanchor bol
- eq rx103_pos, 0, rxanchor141_done
- ge rx103_pos, rx103_eos, rx103_fail
- sub $I10, rx103_pos, rx103_off
+ eq rx96_pos, 0, rxanchor125_done
+ ge rx96_pos, rx96_eos, rx96_fail
+ sub $I10, rx96_pos, rx96_off
dec $I10
- is_cclass $I11, 4096, rx103_tgt, $I10
- unless $I11, rx103_fail
- rxanchor141_done:
+ is_cclass $I11, 4096, rx96_tgt, $I10
+ unless $I11, rx96_fail
+ rxanchor125_done:
# rx subrule "before" subtype=zerowidth negate=
- rx103_cur."!cursor_pos"(rx103_pos)
- .const 'Sub' $P143 = "28_1275811487.95429"
- capture_lex $P143
- $P10 = rx103_cur."before"($P143)
- unless $P10, rx103_fail
+ rx96_cur."!cursor_pos"(rx96_pos)
+ .const 'Sub' $P127 = "28_1280467477.44751"
+ capture_lex $P127
+ $P10 = rx96_cur."before"($P127)
+ unless $P10, rx96_fail
.annotate 'line', 68
- goto alt110_end
- alt110_4:
- alt151_0:
+ goto alt102_end
+ alt102_4:
+ alt133_0:
.annotate 'line', 75
- set_addr $I10, alt151_1
- rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ set_addr $I10, alt133_1
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
# rx charclass s
- ge rx103_pos, rx103_eos, rx103_fail
- sub $I10, rx103_pos, rx103_off
- is_cclass $I11, 32, rx103_tgt, $I10
- unless $I11, rx103_fail
- inc rx103_pos
- goto alt151_end
- alt151_1:
+ ge rx96_pos, rx96_eos, rx96_fail
+ sub $I10, rx96_pos, rx96_off
+ is_cclass $I11, 32, rx96_tgt, $I10
+ unless $I11, rx96_fail
+ inc rx96_pos
+ goto alt133_end
+ alt133_1:
# rx subrule "panic" subtype=method negate=
- rx103_cur."!cursor_pos"(rx103_pos)
- $P10 = rx103_cur."panic"("Illegal pod directive")
- unless $P10, rx103_fail
- rx103_pos = $P10."pos"()
- alt151_end:
+ rx96_cur."!cursor_pos"(rx96_pos)
+ $P10 = rx96_cur."panic"("Illegal pod directive")
+ unless $P10, rx96_fail
+ rx96_pos = $P10."pos"()
+ alt133_end:
.annotate 'line', 76
# rx charclass_q N r 0..-1
- sub $I10, rx103_pos, rx103_off
- find_cclass $I11, 4096, rx103_tgt, $I10, rx103_eos
- add rx103_pos, rx103_off, $I11
- alt110_end:
+ sub $I10, rx96_pos, rx96_off
+ find_cclass $I11, 4096, rx96_tgt, $I10, rx96_eos
+ add rx96_pos, rx96_off, $I11
+ alt102_end:
.annotate 'line', 52
# rx pass
- rx103_cur."!cursor_pass"(rx103_pos, "pod_comment")
- rx103_cur."!cursor_debug"("PASS ", "pod_comment", " at pos=", rx103_pos)
- .return (rx103_cur)
- rx103_fail:
+ rx96_cur."!cursor_pass"(rx96_pos, "pod_comment")
+ rx96_cur."!cursor_debug"("PASS ", "pod_comment", " at pos=", rx96_pos)
+ .return (rx96_cur)
+ rx96_restart:
.annotate 'line', 4
- (rx103_rep, rx103_pos, $I10, $P10) = rx103_cur."!mark_fail"(0)
- lt rx103_pos, -1, rx103_done
- eq rx103_pos, -1, rx103_fail
+ rx96_cur."!cursor_debug"("NEXT ", "pod_comment")
+ rx96_fail:
+ (rx96_rep, rx96_pos, $I10, $P10) = rx96_cur."!mark_fail"(0)
+ lt rx96_pos, -1, rx96_done
+ eq rx96_pos, -1, rx96_fail
jump $I10
- rx103_done:
- rx103_cur."!cursor_fail"()
- rx103_cur."!cursor_debug"("FAIL ", "pod_comment")
- .return (rx103_cur)
+ rx96_done:
+ rx96_cur."!cursor_fail"()
+ rx96_cur."!cursor_debug"("FAIL ", "pod_comment")
+ .return (rx96_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment" :subid("27_1275811487.95429") :method
+.sub "!PREFIX__pod_comment" :subid("27_1280467477.44751") :method
.annotate 'line', 4
- new $P105, "ResizablePMCArray"
- push $P105, ""
- .return ($P105)
+ new $P98, "ResizablePMCArray"
+ push $P98, ""
+ .return ($P98)
.end
.namespace ["NQP";"Grammar"]
-.sub "_block142" :anon :subid("28_1275811487.95429") :method :outer("26_1275811487.95429")
+.sub "_block126" :anon :subid("28_1280467477.44751") :method :outer("26_1280467477.44751")
.annotate 'line', 69
- .local string rx144_tgt
- .local int rx144_pos
- .local int rx144_off
- .local int rx144_eos
- .local int rx144_rep
- .local pmc rx144_cur
- (rx144_cur, rx144_pos, rx144_tgt) = self."!cursor_start"()
- rx144_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx144_cur
- .local pmc match
- .lex "$/", match
- length rx144_eos, rx144_tgt
- gt rx144_pos, rx144_eos, rx144_done
- set rx144_off, 0
- lt rx144_pos, 2, rx144_start
- sub rx144_off, rx144_pos, 1
- substr rx144_tgt, rx144_tgt, rx144_off
- rx144_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan145_done
- goto rxscan145_scan
- rxscan145_loop:
- ($P10) = rx144_cur."from"()
- inc $P10
- set rx144_pos, $P10
- ge rx144_pos, rx144_eos, rxscan145_done
- rxscan145_scan:
- set_addr $I10, rxscan145_loop
- rx144_cur."!mark_push"(0, rx144_pos, $I10)
- rxscan145_done:
- # rx rxquantr146 ** 0..*
- set_addr $I147, rxquantr146_done
- rx144_cur."!mark_push"(0, rx144_pos, $I147)
- rxquantr146_loop:
+ .local string rx128_tgt
+ .local int rx128_pos
+ .local int rx128_off
+ .local int rx128_eos
+ .local int rx128_rep
+ .local pmc rx128_cur
+ (rx128_cur, rx128_pos, rx128_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx128_cur
+ .local pmc match
+ .lex "$/", match
+ length rx128_eos, rx128_tgt
+ gt rx128_pos, rx128_eos, rx128_done
+ set rx128_off, 0
+ lt rx128_pos, 2, rx128_start
+ sub rx128_off, rx128_pos, 1
+ substr rx128_tgt, rx128_tgt, rx128_off
+ rx128_start:
+ eq $I10, 1, rx128_restart
+ rx128_cur."!cursor_debug"("START ", "")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan129_done
+ goto rxscan129_scan
+ rxscan129_loop:
+ ($P10) = rx128_cur."from"()
+ inc $P10
+ set rx128_pos, $P10
+ ge rx128_pos, rx128_eos, rxscan129_done
+ rxscan129_scan:
+ set_addr $I10, rxscan129_loop
+ rx128_cur."!mark_push"(0, rx128_pos, $I10)
+ rxscan129_done:
+ # rx rxquantr130 ** 0..*
+ set_addr $I10, rxquantr130_done
+ rx128_cur."!mark_push"(0, rx128_pos, $I10)
+ rxquantr130_loop:
# rx enumcharlist negate=0
- ge rx144_pos, rx144_eos, rx144_fail
- sub $I10, rx144_pos, rx144_off
- substr $S10, rx144_tgt, $I10, 1
+ ge rx128_pos, rx128_eos, rx128_fail
+ sub $I10, rx128_pos, rx128_off
+ substr $S10, rx128_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx144_fail
- inc rx144_pos
- (rx144_rep) = rx144_cur."!mark_commit"($I147)
- rx144_cur."!mark_push"(rx144_rep, rx144_pos, $I147)
- goto rxquantr146_loop
- rxquantr146_done:
- alt148_0:
- set_addr $I10, alt148_1
- rx144_cur."!mark_push"(0, rx144_pos, $I10)
+ lt $I11, 0, rx128_fail
+ inc rx128_pos
+ set_addr $I10, rxquantr130_done
+ (rx128_rep) = rx128_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr130_done
+ rx128_cur."!mark_push"(rx128_rep, rx128_pos, $I10)
+ goto rxquantr130_loop
+ rxquantr130_done:
+ alt131_0:
+ set_addr $I10, alt131_1
+ rx128_cur."!mark_push"(0, rx128_pos, $I10)
.annotate 'line', 70
# rx literal "="
- add $I11, rx144_pos, 1
- gt $I11, rx144_eos, rx144_fail
- sub $I11, rx144_pos, rx144_off
- substr $S10, rx144_tgt, $I11, 1
- ne $S10, "=", rx144_fail
- add rx144_pos, 1
+ add $I11, rx128_pos, 1
+ gt $I11, rx128_eos, rx128_fail
+ sub $I11, rx128_pos, rx128_off
+ substr $S10, rx128_tgt, $I11, 1
+ ne $S10, "=", rx128_fail
+ add rx128_pos, 1
.annotate 'line', 72
- # rx rxquantr149 ** 0..1
- set_addr $I150, rxquantr149_done
- rx144_cur."!mark_push"(0, rx144_pos, $I150)
- rxquantr149_loop:
+ # rx rxquantr132 ** 0..1
+ set_addr $I10, rxquantr132_done
+ rx128_cur."!mark_push"(0, rx128_pos, $I10)
+ rxquantr132_loop:
.annotate 'line', 71
# rx literal "cut"
- add $I11, rx144_pos, 3
- gt $I11, rx144_eos, rx144_fail
- sub $I11, rx144_pos, rx144_off
- substr $S10, rx144_tgt, $I11, 3
- ne $S10, "cut", rx144_fail
- add rx144_pos, 3
+ add $I11, rx128_pos, 3
+ gt $I11, rx128_eos, rx128_fail
+ sub $I11, rx128_pos, rx128_off
+ substr $S10, rx128_tgt, $I11, 3
+ ne $S10, "cut", rx128_fail
+ add rx128_pos, 3
# rxanchor rwb
- le rx144_pos, 0, rx144_fail
- sub $I10, rx144_pos, rx144_off
- is_cclass $I11, 8192, rx144_tgt, $I10
- if $I11, rx144_fail
+ le rx128_pos, 0, rx128_fail
+ sub $I10, rx128_pos, rx128_off
+ is_cclass $I11, 8192, rx128_tgt, $I10
+ if $I11, rx128_fail
dec $I10
- is_cclass $I11, 8192, rx144_tgt, $I10
- unless $I11, rx144_fail
+ is_cclass $I11, 8192, rx128_tgt, $I10
+ unless $I11, rx128_fail
.annotate 'line', 72
# rx subrule "panic" subtype=method negate=
- rx144_cur."!cursor_pos"(rx144_pos)
- $P10 = rx144_cur."panic"("Obsolete pod format, please use =begin/=end instead")
- unless $P10, rx144_fail
- rx144_pos = $P10."pos"()
- (rx144_rep) = rx144_cur."!mark_commit"($I150)
- rxquantr149_done:
+ rx128_cur."!cursor_pos"(rx128_pos)
+ $P10 = rx128_cur."panic"("Obsolete pod format, please use =begin/=end instead")
+ unless $P10, rx128_fail
+ rx128_pos = $P10."pos"()
+ set_addr $I10, rxquantr132_done
+ (rx128_rep) = rx128_cur."!mark_commit"($I10)
+ rxquantr132_done:
.annotate 'line', 69
- goto alt148_end
- alt148_1:
+ goto alt131_end
+ alt131_1:
.annotate 'line', 73
# rx charclass nl
- ge rx144_pos, rx144_eos, rx144_fail
- sub $I10, rx144_pos, rx144_off
- is_cclass $I11, 4096, rx144_tgt, $I10
- unless $I11, rx144_fail
- substr $S10, rx144_tgt, $I10, 2
+ ge rx128_pos, rx128_eos, rx128_fail
+ sub $I10, rx128_pos, rx128_off
+ is_cclass $I11, 4096, rx128_tgt, $I10
+ unless $I11, rx128_fail
+ substr $S10, rx128_tgt, $I10, 2
iseq $I11, $S10, "\r\n"
- add rx144_pos, $I11
- inc rx144_pos
- alt148_end:
+ add rx128_pos, $I11
+ inc rx128_pos
+ alt131_end:
.annotate 'line', 69
# rx pass
- rx144_cur."!cursor_pass"(rx144_pos, "")
- rx144_cur."!cursor_debug"("PASS ", "", " at pos=", rx144_pos)
- .return (rx144_cur)
- rx144_fail:
- (rx144_rep, rx144_pos, $I10, $P10) = rx144_cur."!mark_fail"(0)
- lt rx144_pos, -1, rx144_done
- eq rx144_pos, -1, rx144_fail
- jump $I10
- rx144_done:
- rx144_cur."!cursor_fail"()
- rx144_cur."!cursor_debug"("FAIL ", "")
- .return (rx144_cur)
+ rx128_cur."!cursor_pass"(rx128_pos, "")
+ rx128_cur."!cursor_debug"("PASS ", "", " at pos=", rx128_pos)
+ .return (rx128_cur)
+ rx128_restart:
+ rx128_cur."!cursor_debug"("NEXT ", "")
+ rx128_fail:
+ (rx128_rep, rx128_pos, $I10, $P10) = rx128_cur."!mark_fail"(0)
+ lt rx128_pos, -1, rx128_done
+ eq rx128_pos, -1, rx128_fail
+ jump $I10
+ rx128_done:
+ rx128_cur."!cursor_fail"()
+ rx128_cur."!cursor_debug"("FAIL ", "")
+ .return (rx128_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "comp_unit" :subid("29_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx153_tgt
- .local int rx153_pos
- .local int rx153_off
- .local int rx153_eos
- .local int rx153_rep
- .local pmc rx153_cur
- (rx153_cur, rx153_pos, rx153_tgt) = self."!cursor_start"()
- rx153_cur."!cursor_debug"("START ", "comp_unit")
- .lex unicode:"$\x{a2}", rx153_cur
- .local pmc match
- .lex "$/", match
- length rx153_eos, rx153_tgt
- gt rx153_pos, rx153_eos, rx153_done
- set rx153_off, 0
- lt rx153_pos, 2, rx153_start
- sub rx153_off, rx153_pos, 1
- substr rx153_tgt, rx153_tgt, rx153_off
- rx153_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan157_done
- goto rxscan157_scan
- rxscan157_loop:
- ($P10) = rx153_cur."from"()
- inc $P10
- set rx153_pos, $P10
- ge rx153_pos, rx153_eos, rxscan157_done
- rxscan157_scan:
- set_addr $I10, rxscan157_loop
- rx153_cur."!mark_push"(0, rx153_pos, $I10)
- rxscan157_done:
+.sub "comp_unit" :subid("29_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx135_tgt
+ .local int rx135_pos
+ .local int rx135_off
+ .local int rx135_eos
+ .local int rx135_rep
+ .local pmc rx135_cur
+ (rx135_cur, rx135_pos, rx135_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx135_cur
+ .local pmc match
+ .lex "$/", match
+ length rx135_eos, rx135_tgt
+ gt rx135_pos, rx135_eos, rx135_done
+ set rx135_off, 0
+ lt rx135_pos, 2, rx135_start
+ sub rx135_off, rx135_pos, 1
+ substr rx135_tgt, rx135_tgt, rx135_off
+ rx135_start:
+ eq $I10, 1, rx135_restart
+ rx135_cur."!cursor_debug"("START ", "comp_unit")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan139_done
+ goto rxscan139_scan
+ rxscan139_loop:
+ ($P10) = rx135_cur."from"()
+ inc $P10
+ set rx135_pos, $P10
+ ge rx135_pos, rx135_eos, rxscan139_done
+ rxscan139_scan:
+ set_addr $I10, rxscan139_loop
+ rx135_cur."!mark_push"(0, rx135_pos, $I10)
+ rxscan139_done:
.annotate 'line', 84
# rx subrule "newpad" subtype=method negate=
- rx153_cur."!cursor_pos"(rx153_pos)
- $P10 = rx153_cur."newpad"()
- unless $P10, rx153_fail
- rx153_pos = $P10."pos"()
+ rx135_cur."!cursor_pos"(rx135_pos)
+ $P10 = rx135_cur."newpad"()
+ unless $P10, rx135_fail
+ rx135_pos = $P10."pos"()
.annotate 'line', 85
# rx subrule "outerctx" subtype=method negate=
- rx153_cur."!cursor_pos"(rx153_pos)
- $P10 = rx153_cur."outerctx"()
- unless $P10, rx153_fail
- rx153_pos = $P10."pos"()
+ rx135_cur."!cursor_pos"(rx135_pos)
+ $P10 = rx135_cur."outerctx"()
+ unless $P10, rx135_fail
+ rx135_pos = $P10."pos"()
.annotate 'line', 86
# rx subrule "statementlist" subtype=capture negate=
- rx153_cur."!cursor_pos"(rx153_pos)
- $P10 = rx153_cur."statementlist"()
- unless $P10, rx153_fail
- rx153_cur."!mark_push"(0, -1, 0, $P10)
+ rx135_cur."!cursor_pos"(rx135_pos)
+ $P10 = rx135_cur."statementlist"()
+ unless $P10, rx135_fail
+ rx135_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statementlist")
- rx153_pos = $P10."pos"()
- alt158_0:
+ rx135_pos = $P10."pos"()
+ alt140_0:
.annotate 'line', 87
- set_addr $I10, alt158_1
- rx153_cur."!mark_push"(0, rx153_pos, $I10)
+ set_addr $I10, alt140_1
+ rx135_cur."!mark_push"(0, rx135_pos, $I10)
# rxanchor eos
- ne rx153_pos, rx153_eos, rx153_fail
- goto alt158_end
- alt158_1:
+ ne rx135_pos, rx135_eos, rx135_fail
+ goto alt140_end
+ alt140_1:
# rx subrule "panic" subtype=method negate=
- rx153_cur."!cursor_pos"(rx153_pos)
- $P10 = rx153_cur."panic"("Confused")
- unless $P10, rx153_fail
- rx153_pos = $P10."pos"()
- alt158_end:
+ rx135_cur."!cursor_pos"(rx135_pos)
+ $P10 = rx135_cur."panic"("Confused")
+ unless $P10, rx135_fail
+ rx135_pos = $P10."pos"()
+ alt140_end:
.annotate 'line', 83
# rx pass
- rx153_cur."!cursor_pass"(rx153_pos, "comp_unit")
- rx153_cur."!cursor_debug"("PASS ", "comp_unit", " at pos=", rx153_pos)
- .return (rx153_cur)
- rx153_fail:
+ rx135_cur."!cursor_pass"(rx135_pos, "comp_unit")
+ rx135_cur."!cursor_debug"("PASS ", "comp_unit", " at pos=", rx135_pos)
+ .return (rx135_cur)
+ rx135_restart:
.annotate 'line', 4
- (rx153_rep, rx153_pos, $I10, $P10) = rx153_cur."!mark_fail"(0)
- lt rx153_pos, -1, rx153_done
- eq rx153_pos, -1, rx153_fail
+ rx135_cur."!cursor_debug"("NEXT ", "comp_unit")
+ rx135_fail:
+ (rx135_rep, rx135_pos, $I10, $P10) = rx135_cur."!mark_fail"(0)
+ lt rx135_pos, -1, rx135_done
+ eq rx135_pos, -1, rx135_fail
jump $I10
- rx153_done:
- rx153_cur."!cursor_fail"()
- rx153_cur."!cursor_debug"("FAIL ", "comp_unit")
- .return (rx153_cur)
+ rx135_done:
+ rx135_cur."!cursor_fail"()
+ rx135_cur."!cursor_debug"("FAIL ", "comp_unit")
+ .return (rx135_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit" :subid("30_1275811487.95429") :method
+.sub "!PREFIX__comp_unit" :subid("30_1280467477.44751") :method
.annotate 'line', 4
- $P155 = self."!PREFIX__!subrule"("newpad", "")
- new $P156, "ResizablePMCArray"
- push $P156, $P155
- .return ($P156)
+ $P137 = self."!PREFIX__!subrule"("newpad", "")
+ new $P138, "ResizablePMCArray"
+ push $P138, $P137
+ .return ($P138)
.end
.namespace ["NQP";"Grammar"]
-.sub "statementlist" :subid("31_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statementlist" :subid("31_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx160_tgt
- .local int rx160_pos
- .local int rx160_off
- .local int rx160_eos
- .local int rx160_rep
- .local pmc rx160_cur
- (rx160_cur, rx160_pos, rx160_tgt) = self."!cursor_start"()
- rx160_cur."!cursor_debug"("START ", "statementlist")
- rx160_cur."!cursor_caparray"("statement")
- .lex unicode:"$\x{a2}", rx160_cur
+ .local string rx142_tgt
+ .local int rx142_pos
+ .local int rx142_off
+ .local int rx142_eos
+ .local int rx142_rep
+ .local pmc rx142_cur
+ (rx142_cur, rx142_pos, rx142_tgt, $I10) = self."!cursor_start"()
+ rx142_cur."!cursor_caparray"("statement")
+ .lex unicode:"$\x{a2}", rx142_cur
.local pmc match
.lex "$/", match
- length rx160_eos, rx160_tgt
- gt rx160_pos, rx160_eos, rx160_done
- set rx160_off, 0
- lt rx160_pos, 2, rx160_start
- sub rx160_off, rx160_pos, 1
- substr rx160_tgt, rx160_tgt, rx160_off
- rx160_start:
+ length rx142_eos, rx142_tgt
+ gt rx142_pos, rx142_eos, rx142_done
+ set rx142_off, 0
+ lt rx142_pos, 2, rx142_start
+ sub rx142_off, rx142_pos, 1
+ substr rx142_tgt, rx142_tgt, rx142_off
+ rx142_start:
+ eq $I10, 1, rx142_restart
+ rx142_cur."!cursor_debug"("START ", "statementlist")
$I10 = self.'from'()
- ne $I10, -1, rxscan165_done
- goto rxscan165_scan
- rxscan165_loop:
- ($P10) = rx160_cur."from"()
+ ne $I10, -1, rxscan147_done
+ goto rxscan147_scan
+ rxscan147_loop:
+ ($P10) = rx142_cur."from"()
inc $P10
- set rx160_pos, $P10
- ge rx160_pos, rx160_eos, rxscan165_done
- rxscan165_scan:
- set_addr $I10, rxscan165_loop
- rx160_cur."!mark_push"(0, rx160_pos, $I10)
- rxscan165_done:
- alt166_0:
+ set rx142_pos, $P10
+ ge rx142_pos, rx142_eos, rxscan147_done
+ rxscan147_scan:
+ set_addr $I10, rxscan147_loop
+ rx142_cur."!mark_push"(0, rx142_pos, $I10)
+ rxscan147_done:
+ alt148_0:
.annotate 'line', 90
- set_addr $I10, alt166_1
- rx160_cur."!mark_push"(0, rx160_pos, $I10)
+ set_addr $I10, alt148_1
+ rx142_cur."!mark_push"(0, rx142_pos, $I10)
.annotate 'line', 91
# rx subrule "ws" subtype=method negate=
- rx160_cur."!cursor_pos"(rx160_pos)
- $P10 = rx160_cur."ws"()
- unless $P10, rx160_fail
- rx160_pos = $P10."pos"()
+ rx142_cur."!cursor_pos"(rx142_pos)
+ $P10 = rx142_cur."ws"()
+ unless $P10, rx142_fail
+ rx142_pos = $P10."pos"()
# rxanchor eos
- ne rx160_pos, rx160_eos, rx160_fail
+ ne rx142_pos, rx142_eos, rx142_fail
# rx subrule "ws" subtype=method negate=
- rx160_cur."!cursor_pos"(rx160_pos)
- $P10 = rx160_cur."ws"()
- unless $P10, rx160_fail
- rx160_pos = $P10."pos"()
- goto alt166_end
- alt166_1:
+ rx142_cur."!cursor_pos"(rx142_pos)
+ $P10 = rx142_cur."ws"()
+ unless $P10, rx142_fail
+ rx142_pos = $P10."pos"()
+ goto alt148_end
+ alt148_1:
.annotate 'line', 92
# rx subrule "ws" subtype=method negate=
- rx160_cur."!cursor_pos"(rx160_pos)
- $P10 = rx160_cur."ws"()
- unless $P10, rx160_fail
- rx160_pos = $P10."pos"()
- # rx rxquantr170 ** 0..*
- set_addr $I172, rxquantr170_done
- rx160_cur."!mark_push"(0, rx160_pos, $I172)
- rxquantr170_loop:
+ rx142_cur."!cursor_pos"(rx142_pos)
+ $P10 = rx142_cur."ws"()
+ unless $P10, rx142_fail
+ rx142_pos = $P10."pos"()
+ # rx rxquantr152 ** 0..*
+ set_addr $I10, rxquantr152_done
+ rx142_cur."!mark_push"(0, rx142_pos, $I10)
+ rxquantr152_loop:
# rx subrule "statement" subtype=capture negate=
- rx160_cur."!cursor_pos"(rx160_pos)
- $P10 = rx160_cur."statement"()
- unless $P10, rx160_fail
- rx160_cur."!mark_push"(0, -1, 0, $P10)
+ rx142_cur."!cursor_pos"(rx142_pos)
+ $P10 = rx142_cur."statement"()
+ unless $P10, rx142_fail
+ rx142_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement")
- rx160_pos = $P10."pos"()
+ rx142_pos = $P10."pos"()
# rx subrule "eat_terminator" subtype=method negate=
- rx160_cur."!cursor_pos"(rx160_pos)
- $P10 = rx160_cur."eat_terminator"()
- unless $P10, rx160_fail
- rx160_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx160_cur."!cursor_pos"(rx160_pos)
- $P10 = rx160_cur."ws"()
- unless $P10, rx160_fail
- rx160_pos = $P10."pos"()
- (rx160_rep) = rx160_cur."!mark_commit"($I172)
- rx160_cur."!mark_push"(rx160_rep, rx160_pos, $I172)
- goto rxquantr170_loop
- rxquantr170_done:
- # rx subrule "ws" subtype=method negate=
- rx160_cur."!cursor_pos"(rx160_pos)
- $P10 = rx160_cur."ws"()
- unless $P10, rx160_fail
- rx160_pos = $P10."pos"()
- alt166_end:
+ rx142_cur."!cursor_pos"(rx142_pos)
+ $P10 = rx142_cur."eat_terminator"()
+ unless $P10, rx142_fail
+ rx142_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx142_cur."!cursor_pos"(rx142_pos)
+ $P10 = rx142_cur."ws"()
+ unless $P10, rx142_fail
+ rx142_pos = $P10."pos"()
+ set_addr $I10, rxquantr152_done
+ (rx142_rep) = rx142_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr152_done
+ rx142_cur."!mark_push"(rx142_rep, rx142_pos, $I10)
+ goto rxquantr152_loop
+ rxquantr152_done:
+ # rx subrule "ws" subtype=method negate=
+ rx142_cur."!cursor_pos"(rx142_pos)
+ $P10 = rx142_cur."ws"()
+ unless $P10, rx142_fail
+ rx142_pos = $P10."pos"()
+ alt148_end:
.annotate 'line', 90
# rx pass
- rx160_cur."!cursor_pass"(rx160_pos, "statementlist")
- rx160_cur."!cursor_debug"("PASS ", "statementlist", " at pos=", rx160_pos)
- .return (rx160_cur)
- rx160_fail:
-.annotate 'line', 4
- (rx160_rep, rx160_pos, $I10, $P10) = rx160_cur."!mark_fail"(0)
- lt rx160_pos, -1, rx160_done
- eq rx160_pos, -1, rx160_fail
- jump $I10
- rx160_done:
- rx160_cur."!cursor_fail"()
- rx160_cur."!cursor_debug"("FAIL ", "statementlist")
- .return (rx160_cur)
+ rx142_cur."!cursor_pass"(rx142_pos, "statementlist")
+ rx142_cur."!cursor_debug"("PASS ", "statementlist", " at pos=", rx142_pos)
+ .return (rx142_cur)
+ rx142_restart:
+.annotate 'line', 4
+ rx142_cur."!cursor_debug"("NEXT ", "statementlist")
+ rx142_fail:
+ (rx142_rep, rx142_pos, $I10, $P10) = rx142_cur."!mark_fail"(0)
+ lt rx142_pos, -1, rx142_done
+ eq rx142_pos, -1, rx142_fail
+ jump $I10
+ rx142_done:
+ rx142_cur."!cursor_fail"()
+ rx142_cur."!cursor_debug"("FAIL ", "statementlist")
+ .return (rx142_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist" :subid("32_1275811487.95429") :method
-.annotate 'line', 4
- $P162 = self."!PREFIX__!subrule"("ws", "")
- $P163 = self."!PREFIX__!subrule"("ws", "")
- new $P164, "ResizablePMCArray"
- push $P164, $P162
- push $P164, $P163
- .return ($P164)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "statement" :subid("33_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .const 'Sub' $P180 = "35_1275811487.95429"
- capture_lex $P180
- .local string rx175_tgt
- .local int rx175_pos
- .local int rx175_off
- .local int rx175_eos
- .local int rx175_rep
- .local pmc rx175_cur
- (rx175_cur, rx175_pos, rx175_tgt) = self."!cursor_start"()
- rx175_cur."!cursor_debug"("START ", "statement")
- rx175_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond")
- .lex unicode:"$\x{a2}", rx175_cur
- .local pmc match
- .lex "$/", match
- length rx175_eos, rx175_tgt
- gt rx175_pos, rx175_eos, rx175_done
- set rx175_off, 0
- lt rx175_pos, 2, rx175_start
- sub rx175_off, rx175_pos, 1
- substr rx175_tgt, rx175_tgt, rx175_off
- rx175_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan178_done
- goto rxscan178_scan
- rxscan178_loop:
- ($P10) = rx175_cur."from"()
- inc $P10
- set rx175_pos, $P10
- ge rx175_pos, rx175_eos, rxscan178_done
- rxscan178_scan:
- set_addr $I10, rxscan178_loop
- rx175_cur."!mark_push"(0, rx175_pos, $I10)
- rxscan178_done:
+.sub "!PREFIX__statementlist" :subid("32_1280467477.44751") :method
+.annotate 'line', 4
+ $P144 = self."!PREFIX__!subrule"("ws", "")
+ $P145 = self."!PREFIX__!subrule"("ws", "")
+ new $P146, "ResizablePMCArray"
+ push $P146, $P144
+ push $P146, $P145
+ .return ($P146)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "statement" :subid("33_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .const 'Sub' $P161 = "35_1280467477.44751"
+ capture_lex $P161
+ .local string rx156_tgt
+ .local int rx156_pos
+ .local int rx156_off
+ .local int rx156_eos
+ .local int rx156_rep
+ .local pmc rx156_cur
+ (rx156_cur, rx156_pos, rx156_tgt, $I10) = self."!cursor_start"()
+ rx156_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond")
+ .lex unicode:"$\x{a2}", rx156_cur
+ .local pmc match
+ .lex "$/", match
+ length rx156_eos, rx156_tgt
+ gt rx156_pos, rx156_eos, rx156_done
+ set rx156_off, 0
+ lt rx156_pos, 2, rx156_start
+ sub rx156_off, rx156_pos, 1
+ substr rx156_tgt, rx156_tgt, rx156_off
+ rx156_start:
+ eq $I10, 1, rx156_restart
+ rx156_cur."!cursor_debug"("START ", "statement")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan159_done
+ goto rxscan159_scan
+ rxscan159_loop:
+ ($P10) = rx156_cur."from"()
+ inc $P10
+ set rx156_pos, $P10
+ ge rx156_pos, rx156_eos, rxscan159_done
+ rxscan159_scan:
+ set_addr $I10, rxscan159_loop
+ rx156_cur."!mark_push"(0, rx156_pos, $I10)
+ rxscan159_done:
.annotate 'line', 96
# rx subrule "before" subtype=zerowidth negate=1
- rx175_cur."!cursor_pos"(rx175_pos)
- .const 'Sub' $P180 = "35_1275811487.95429"
- capture_lex $P180
- $P10 = rx175_cur."before"($P180)
- if $P10, rx175_fail
- alt184_0:
+ rx156_cur."!cursor_pos"(rx156_pos)
+ .const 'Sub' $P161 = "35_1280467477.44751"
+ capture_lex $P161
+ $P10 = rx156_cur."before"($P161)
+ if $P10, rx156_fail
+ alt165_0:
.annotate 'line', 97
- set_addr $I10, alt184_1
- rx175_cur."!mark_push"(0, rx175_pos, $I10)
+ set_addr $I10, alt165_1
+ rx156_cur."!mark_push"(0, rx156_pos, $I10)
.annotate 'line', 98
# rx subrule "statement_control" subtype=capture negate=
- rx175_cur."!cursor_pos"(rx175_pos)
- $P10 = rx175_cur."statement_control"()
- unless $P10, rx175_fail
- rx175_cur."!mark_push"(0, -1, 0, $P10)
+ rx156_cur."!cursor_pos"(rx156_pos)
+ $P10 = rx156_cur."statement_control"()
+ unless $P10, rx156_fail
+ rx156_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement_control")
- rx175_pos = $P10."pos"()
- goto alt184_end
- alt184_1:
+ rx156_pos = $P10."pos"()
+ goto alt165_end
+ alt165_1:
.annotate 'line', 99
# rx subrule "EXPR" subtype=capture negate=
- rx175_cur."!cursor_pos"(rx175_pos)
- $P10 = rx175_cur."EXPR"()
- unless $P10, rx175_fail
- rx175_cur."!mark_push"(0, -1, 0, $P10)
+ rx156_cur."!cursor_pos"(rx156_pos)
+ $P10 = rx156_cur."EXPR"()
+ unless $P10, rx156_fail
+ rx156_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx175_pos = $P10."pos"()
+ rx156_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx175_cur."!cursor_pos"(rx175_pos)
- $P10 = rx175_cur."ws"()
- unless $P10, rx175_fail
- rx175_pos = $P10."pos"()
+ rx156_cur."!cursor_pos"(rx156_pos)
+ $P10 = rx156_cur."ws"()
+ unless $P10, rx156_fail
+ rx156_pos = $P10."pos"()
.annotate 'line', 104
- # rx rxquantr185 ** 0..1
- set_addr $I189, rxquantr185_done
- rx175_cur."!mark_push"(0, rx175_pos, $I189)
- rxquantr185_loop:
- alt186_0:
+ # rx rxquantr166 ** 0..1
+ set_addr $I10, rxquantr166_done
+ rx156_cur."!mark_push"(0, rx156_pos, $I10)
+ rxquantr166_loop:
+ alt167_0:
.annotate 'line', 100
- set_addr $I10, alt186_1
- rx175_cur."!mark_push"(0, rx175_pos, $I10)
+ set_addr $I10, alt167_1
+ rx156_cur."!mark_push"(0, rx156_pos, $I10)
.annotate 'line', 101
# rx subrule "MARKED" subtype=zerowidth negate=
- rx175_cur."!cursor_pos"(rx175_pos)
- $P10 = rx175_cur."MARKED"("endstmt")
- unless $P10, rx175_fail
- goto alt186_end
- alt186_1:
- set_addr $I10, alt186_2
- rx175_cur."!mark_push"(0, rx175_pos, $I10)
+ rx156_cur."!cursor_pos"(rx156_pos)
+ $P10 = rx156_cur."MARKED"("endstmt")
+ unless $P10, rx156_fail
+ goto alt167_end
+ alt167_1:
+ set_addr $I10, alt167_2
+ rx156_cur."!mark_push"(0, rx156_pos, $I10)
.annotate 'line', 102
# rx subrule "statement_mod_cond" subtype=capture negate=
- rx175_cur."!cursor_pos"(rx175_pos)
- $P10 = rx175_cur."statement_mod_cond"()
- unless $P10, rx175_fail
- rx175_cur."!mark_push"(0, -1, 0, $P10)
+ rx156_cur."!cursor_pos"(rx156_pos)
+ $P10 = rx156_cur."statement_mod_cond"()
+ unless $P10, rx156_fail
+ rx156_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement_mod_cond")
- rx175_pos = $P10."pos"()
- # rx rxquantr187 ** 0..1
- set_addr $I188, rxquantr187_done
- rx175_cur."!mark_push"(0, rx175_pos, $I188)
- rxquantr187_loop:
+ rx156_pos = $P10."pos"()
+ # rx rxquantr168 ** 0..1
+ set_addr $I10, rxquantr168_done
+ rx156_cur."!mark_push"(0, rx156_pos, $I10)
+ rxquantr168_loop:
# rx subrule "statement_mod_loop" subtype=capture negate=
- rx175_cur."!cursor_pos"(rx175_pos)
- $P10 = rx175_cur."statement_mod_loop"()
- unless $P10, rx175_fail
- rx175_cur."!mark_push"(0, -1, 0, $P10)
+ rx156_cur."!cursor_pos"(rx156_pos)
+ $P10 = rx156_cur."statement_mod_loop"()
+ unless $P10, rx156_fail
+ goto rxsubrule169_pass
+ rxsubrule169_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx156_fail
+ rxsubrule169_pass:
+ set_addr $I10, rxsubrule169_back
+ rx156_cur."!mark_push"(0, rx156_pos, $I10, $P10)
$P10."!cursor_names"("statement_mod_loop")
- rx175_pos = $P10."pos"()
- (rx175_rep) = rx175_cur."!mark_commit"($I188)
- rxquantr187_done:
- goto alt186_end
- alt186_2:
+ rx156_pos = $P10."pos"()
+ set_addr $I10, rxquantr168_done
+ (rx156_rep) = rx156_cur."!mark_commit"($I10)
+ rxquantr168_done:
+ goto alt167_end
+ alt167_2:
.annotate 'line', 103
# rx subrule "statement_mod_loop" subtype=capture negate=
- rx175_cur."!cursor_pos"(rx175_pos)
- $P10 = rx175_cur."statement_mod_loop"()
- unless $P10, rx175_fail
- rx175_cur."!mark_push"(0, -1, 0, $P10)
+ rx156_cur."!cursor_pos"(rx156_pos)
+ $P10 = rx156_cur."statement_mod_loop"()
+ unless $P10, rx156_fail
+ rx156_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement_mod_loop")
- rx175_pos = $P10."pos"()
- alt186_end:
+ rx156_pos = $P10."pos"()
+ alt167_end:
.annotate 'line', 104
- (rx175_rep) = rx175_cur."!mark_commit"($I189)
- rxquantr185_done:
- alt184_end:
+ set_addr $I10, rxquantr166_done
+ (rx156_rep) = rx156_cur."!mark_commit"($I10)
+ rxquantr166_done:
+ alt165_end:
.annotate 'line', 95
# rx pass
- rx175_cur."!cursor_pass"(rx175_pos, "statement")
- rx175_cur."!cursor_debug"("PASS ", "statement", " at pos=", rx175_pos)
- .return (rx175_cur)
- rx175_fail:
+ rx156_cur."!cursor_pass"(rx156_pos, "statement")
+ rx156_cur."!cursor_debug"("PASS ", "statement", " at pos=", rx156_pos)
+ .return (rx156_cur)
+ rx156_restart:
.annotate 'line', 4
- (rx175_rep, rx175_pos, $I10, $P10) = rx175_cur."!mark_fail"(0)
- lt rx175_pos, -1, rx175_done
- eq rx175_pos, -1, rx175_fail
+ rx156_cur."!cursor_debug"("NEXT ", "statement")
+ rx156_fail:
+ (rx156_rep, rx156_pos, $I10, $P10) = rx156_cur."!mark_fail"(0)
+ lt rx156_pos, -1, rx156_done
+ eq rx156_pos, -1, rx156_fail
jump $I10
- rx175_done:
- rx175_cur."!cursor_fail"()
- rx175_cur."!cursor_debug"("FAIL ", "statement")
- .return (rx175_cur)
+ rx156_done:
+ rx156_cur."!cursor_fail"()
+ rx156_cur."!cursor_debug"("FAIL ", "statement")
+ .return (rx156_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement" :subid("34_1275811487.95429") :method
+.sub "!PREFIX__statement" :subid("34_1280467477.44751") :method
.annotate 'line', 4
- new $P177, "ResizablePMCArray"
- push $P177, ""
- .return ($P177)
+ new $P158, "ResizablePMCArray"
+ push $P158, ""
+ .return ($P158)
.end
.namespace ["NQP";"Grammar"]
-.sub "_block179" :anon :subid("35_1275811487.95429") :method :outer("33_1275811487.95429")
+.sub "_block160" :anon :subid("35_1280467477.44751") :method :outer("33_1280467477.44751")
.annotate 'line', 96
- .local string rx181_tgt
- .local int rx181_pos
- .local int rx181_off
- .local int rx181_eos
- .local int rx181_rep
- .local pmc rx181_cur
- (rx181_cur, rx181_pos, rx181_tgt) = self."!cursor_start"()
- rx181_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx181_cur
- .local pmc match
- .lex "$/", match
- length rx181_eos, rx181_tgt
- gt rx181_pos, rx181_eos, rx181_done
- set rx181_off, 0
- lt rx181_pos, 2, rx181_start
- sub rx181_off, rx181_pos, 1
- substr rx181_tgt, rx181_tgt, rx181_off
- rx181_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan182_done
- goto rxscan182_scan
- rxscan182_loop:
- ($P10) = rx181_cur."from"()
- inc $P10
- set rx181_pos, $P10
- ge rx181_pos, rx181_eos, rxscan182_done
- rxscan182_scan:
- set_addr $I10, rxscan182_loop
- rx181_cur."!mark_push"(0, rx181_pos, $I10)
- rxscan182_done:
- alt183_0:
- set_addr $I10, alt183_1
- rx181_cur."!mark_push"(0, rx181_pos, $I10)
+ .local string rx162_tgt
+ .local int rx162_pos
+ .local int rx162_off
+ .local int rx162_eos
+ .local int rx162_rep
+ .local pmc rx162_cur
+ (rx162_cur, rx162_pos, rx162_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx162_cur
+ .local pmc match
+ .lex "$/", match
+ length rx162_eos, rx162_tgt
+ gt rx162_pos, rx162_eos, rx162_done
+ set rx162_off, 0
+ lt rx162_pos, 2, rx162_start
+ sub rx162_off, rx162_pos, 1
+ substr rx162_tgt, rx162_tgt, rx162_off
+ rx162_start:
+ eq $I10, 1, rx162_restart
+ rx162_cur."!cursor_debug"("START ", "")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan163_done
+ goto rxscan163_scan
+ rxscan163_loop:
+ ($P10) = rx162_cur."from"()
+ inc $P10
+ set rx162_pos, $P10
+ ge rx162_pos, rx162_eos, rxscan163_done
+ rxscan163_scan:
+ set_addr $I10, rxscan163_loop
+ rx162_cur."!mark_push"(0, rx162_pos, $I10)
+ rxscan163_done:
+ alt164_0:
+ set_addr $I10, alt164_1
+ rx162_cur."!mark_push"(0, rx162_pos, $I10)
# rx enumcharlist negate=0
- ge rx181_pos, rx181_eos, rx181_fail
- sub $I10, rx181_pos, rx181_off
- substr $S10, rx181_tgt, $I10, 1
+ ge rx162_pos, rx162_eos, rx162_fail
+ sub $I10, rx162_pos, rx162_off
+ substr $S10, rx162_tgt, $I10, 1
index $I11, "])}", $S10
- lt $I11, 0, rx181_fail
- inc rx181_pos
- goto alt183_end
- alt183_1:
+ lt $I11, 0, rx162_fail
+ inc rx162_pos
+ goto alt164_end
+ alt164_1:
# rxanchor eos
- ne rx181_pos, rx181_eos, rx181_fail
- alt183_end:
+ ne rx162_pos, rx162_eos, rx162_fail
+ alt164_end:
# rx pass
- rx181_cur."!cursor_pass"(rx181_pos, "")
- rx181_cur."!cursor_debug"("PASS ", "", " at pos=", rx181_pos)
- .return (rx181_cur)
- rx181_fail:
- (rx181_rep, rx181_pos, $I10, $P10) = rx181_cur."!mark_fail"(0)
- lt rx181_pos, -1, rx181_done
- eq rx181_pos, -1, rx181_fail
- jump $I10
- rx181_done:
- rx181_cur."!cursor_fail"()
- rx181_cur."!cursor_debug"("FAIL ", "")
- .return (rx181_cur)
+ rx162_cur."!cursor_pass"(rx162_pos, "")
+ rx162_cur."!cursor_debug"("PASS ", "", " at pos=", rx162_pos)
+ .return (rx162_cur)
+ rx162_restart:
+ rx162_cur."!cursor_debug"("NEXT ", "")
+ rx162_fail:
+ (rx162_rep, rx162_pos, $I10, $P10) = rx162_cur."!mark_fail"(0)
+ lt rx162_pos, -1, rx162_done
+ eq rx162_pos, -1, rx162_fail
+ jump $I10
+ rx162_done:
+ rx162_cur."!cursor_fail"()
+ rx162_cur."!cursor_debug"("FAIL ", "")
+ .return (rx162_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "eat_terminator" :subid("36_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx191_tgt
- .local int rx191_pos
- .local int rx191_off
- .local int rx191_eos
- .local int rx191_rep
- .local pmc rx191_cur
- (rx191_cur, rx191_pos, rx191_tgt) = self."!cursor_start"()
- rx191_cur."!cursor_debug"("START ", "eat_terminator")
- .lex unicode:"$\x{a2}", rx191_cur
- .local pmc match
- .lex "$/", match
- length rx191_eos, rx191_tgt
- gt rx191_pos, rx191_eos, rx191_done
- set rx191_off, 0
- lt rx191_pos, 2, rx191_start
- sub rx191_off, rx191_pos, 1
- substr rx191_tgt, rx191_tgt, rx191_off
- rx191_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan194_done
- goto rxscan194_scan
- rxscan194_loop:
- ($P10) = rx191_cur."from"()
- inc $P10
- set rx191_pos, $P10
- ge rx191_pos, rx191_eos, rxscan194_done
- rxscan194_scan:
- set_addr $I10, rxscan194_loop
- rx191_cur."!mark_push"(0, rx191_pos, $I10)
- rxscan194_done:
- alt195_0:
+.sub "eat_terminator" :subid("36_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx171_tgt
+ .local int rx171_pos
+ .local int rx171_off
+ .local int rx171_eos
+ .local int rx171_rep
+ .local pmc rx171_cur
+ (rx171_cur, rx171_pos, rx171_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx171_cur
+ .local pmc match
+ .lex "$/", match
+ length rx171_eos, rx171_tgt
+ gt rx171_pos, rx171_eos, rx171_done
+ set rx171_off, 0
+ lt rx171_pos, 2, rx171_start
+ sub rx171_off, rx171_pos, 1
+ substr rx171_tgt, rx171_tgt, rx171_off
+ rx171_start:
+ eq $I10, 1, rx171_restart
+ rx171_cur."!cursor_debug"("START ", "eat_terminator")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan174_done
+ goto rxscan174_scan
+ rxscan174_loop:
+ ($P10) = rx171_cur."from"()
+ inc $P10
+ set rx171_pos, $P10
+ ge rx171_pos, rx171_eos, rxscan174_done
+ rxscan174_scan:
+ set_addr $I10, rxscan174_loop
+ rx171_cur."!mark_push"(0, rx171_pos, $I10)
+ rxscan174_done:
+ alt175_0:
.annotate 'line', 108
- set_addr $I10, alt195_1
- rx191_cur."!mark_push"(0, rx191_pos, $I10)
+ set_addr $I10, alt175_1
+ rx171_cur."!mark_push"(0, rx171_pos, $I10)
.annotate 'line', 109
# rx literal ";"
- add $I11, rx191_pos, 1
- gt $I11, rx191_eos, rx191_fail
- sub $I11, rx191_pos, rx191_off
- substr $S10, rx191_tgt, $I11, 1
- ne $S10, ";", rx191_fail
- add rx191_pos, 1
- goto alt195_end
- alt195_1:
- set_addr $I10, alt195_2
- rx191_cur."!mark_push"(0, rx191_pos, $I10)
+ add $I11, rx171_pos, 1
+ gt $I11, rx171_eos, rx171_fail
+ sub $I11, rx171_pos, rx171_off
+ substr $S10, rx171_tgt, $I11, 1
+ ne $S10, ";", rx171_fail
+ add rx171_pos, 1
+ goto alt175_end
+ alt175_1:
+ set_addr $I10, alt175_2
+ rx171_cur."!mark_push"(0, rx171_pos, $I10)
.annotate 'line', 110
# rx subrule "MARKED" subtype=zerowidth negate=
- rx191_cur."!cursor_pos"(rx191_pos)
- $P10 = rx191_cur."MARKED"("endstmt")
- unless $P10, rx191_fail
- goto alt195_end
- alt195_2:
- set_addr $I10, alt195_3
- rx191_cur."!mark_push"(0, rx191_pos, $I10)
+ rx171_cur."!cursor_pos"(rx171_pos)
+ $P10 = rx171_cur."MARKED"("endstmt")
+ unless $P10, rx171_fail
+ goto alt175_end
+ alt175_2:
+ set_addr $I10, alt175_3
+ rx171_cur."!mark_push"(0, rx171_pos, $I10)
.annotate 'line', 111
# rx subrule "terminator" subtype=zerowidth negate=
- rx191_cur."!cursor_pos"(rx191_pos)
- $P10 = rx191_cur."terminator"()
- unless $P10, rx191_fail
- goto alt195_end
- alt195_3:
+ rx171_cur."!cursor_pos"(rx171_pos)
+ $P10 = rx171_cur."terminator"()
+ unless $P10, rx171_fail
+ goto alt175_end
+ alt175_3:
.annotate 'line', 112
# rxanchor eos
- ne rx191_pos, rx191_eos, rx191_fail
- alt195_end:
+ ne rx171_pos, rx171_eos, rx171_fail
+ alt175_end:
.annotate 'line', 108
# rx pass
- rx191_cur."!cursor_pass"(rx191_pos, "eat_terminator")
- rx191_cur."!cursor_debug"("PASS ", "eat_terminator", " at pos=", rx191_pos)
- .return (rx191_cur)
- rx191_fail:
+ rx171_cur."!cursor_pass"(rx171_pos, "eat_terminator")
+ rx171_cur."!cursor_debug"("PASS ", "eat_terminator", " at pos=", rx171_pos)
+ .return (rx171_cur)
+ rx171_restart:
.annotate 'line', 4
- (rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0)
- lt rx191_pos, -1, rx191_done
- eq rx191_pos, -1, rx191_fail
+ rx171_cur."!cursor_debug"("NEXT ", "eat_terminator")
+ rx171_fail:
+ (rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0)
+ lt rx171_pos, -1, rx171_done
+ eq rx171_pos, -1, rx171_fail
jump $I10
- rx191_done:
- rx191_cur."!cursor_fail"()
- rx191_cur."!cursor_debug"("FAIL ", "eat_terminator")
- .return (rx191_cur)
+ rx171_done:
+ rx171_cur."!cursor_fail"()
+ rx171_cur."!cursor_debug"("FAIL ", "eat_terminator")
+ .return (rx171_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__eat_terminator" :subid("37_1275811487.95429") :method
+.sub "!PREFIX__eat_terminator" :subid("37_1280467477.44751") :method
.annotate 'line', 4
- new $P193, "ResizablePMCArray"
- push $P193, ""
- push $P193, ""
- push $P193, ""
- push $P193, ";"
- .return ($P193)
+ new $P173, "ResizablePMCArray"
+ push $P173, ""
+ push $P173, ""
+ push $P173, ""
+ push $P173, ";"
+ .return ($P173)
.end
.namespace ["NQP";"Grammar"]
-.sub "xblock" :subid("38_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "xblock" :subid("38_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx197_tgt
- .local int rx197_pos
- .local int rx197_off
- .local int rx197_eos
- .local int rx197_rep
- .local pmc rx197_cur
- (rx197_cur, rx197_pos, rx197_tgt) = self."!cursor_start"()
- rx197_cur."!cursor_debug"("START ", "xblock")
- .lex unicode:"$\x{a2}", rx197_cur
+ .local string rx177_tgt
+ .local int rx177_pos
+ .local int rx177_off
+ .local int rx177_eos
+ .local int rx177_rep
+ .local pmc rx177_cur
+ (rx177_cur, rx177_pos, rx177_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx177_cur
.local pmc match
.lex "$/", match
- length rx197_eos, rx197_tgt
- gt rx197_pos, rx197_eos, rx197_done
- set rx197_off, 0
- lt rx197_pos, 2, rx197_start
- sub rx197_off, rx197_pos, 1
- substr rx197_tgt, rx197_tgt, rx197_off
- rx197_start:
+ length rx177_eos, rx177_tgt
+ gt rx177_pos, rx177_eos, rx177_done
+ set rx177_off, 0
+ lt rx177_pos, 2, rx177_start
+ sub rx177_off, rx177_pos, 1
+ substr rx177_tgt, rx177_tgt, rx177_off
+ rx177_start:
+ eq $I10, 1, rx177_restart
+ rx177_cur."!cursor_debug"("START ", "xblock")
$I10 = self.'from'()
- ne $I10, -1, rxscan201_done
- goto rxscan201_scan
- rxscan201_loop:
- ($P10) = rx197_cur."from"()
+ ne $I10, -1, rxscan181_done
+ goto rxscan181_scan
+ rxscan181_loop:
+ ($P10) = rx177_cur."from"()
inc $P10
- set rx197_pos, $P10
- ge rx197_pos, rx197_eos, rxscan201_done
- rxscan201_scan:
- set_addr $I10, rxscan201_loop
- rx197_cur."!mark_push"(0, rx197_pos, $I10)
- rxscan201_done:
+ set rx177_pos, $P10
+ ge rx177_pos, rx177_eos, rxscan181_done
+ rxscan181_scan:
+ set_addr $I10, rxscan181_loop
+ rx177_cur."!mark_push"(0, rx177_pos, $I10)
+ rxscan181_done:
.annotate 'line', 116
# rx subrule "EXPR" subtype=capture negate=
- rx197_cur."!cursor_pos"(rx197_pos)
- $P10 = rx197_cur."EXPR"()
- unless $P10, rx197_fail
- rx197_cur."!mark_push"(0, -1, 0, $P10)
+ rx177_cur."!cursor_pos"(rx177_pos)
+ $P10 = rx177_cur."EXPR"()
+ unless $P10, rx177_fail
+ rx177_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx197_pos = $P10."pos"()
+ rx177_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx197_cur."!cursor_pos"(rx197_pos)
- $P10 = rx197_cur."ws"()
- unless $P10, rx197_fail
- rx197_pos = $P10."pos"()
+ rx177_cur."!cursor_pos"(rx177_pos)
+ $P10 = rx177_cur."ws"()
+ unless $P10, rx177_fail
+ rx177_pos = $P10."pos"()
# rx subrule "pblock" subtype=capture negate=
- rx197_cur."!cursor_pos"(rx197_pos)
- $P10 = rx197_cur."pblock"()
- unless $P10, rx197_fail
- rx197_cur."!mark_push"(0, -1, 0, $P10)
+ rx177_cur."!cursor_pos"(rx177_pos)
+ $P10 = rx177_cur."pblock"()
+ unless $P10, rx177_fail
+ rx177_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("pblock")
- rx197_pos = $P10."pos"()
+ rx177_pos = $P10."pos"()
.annotate 'line', 115
# rx pass
- rx197_cur."!cursor_pass"(rx197_pos, "xblock")
- rx197_cur."!cursor_debug"("PASS ", "xblock", " at pos=", rx197_pos)
- .return (rx197_cur)
- rx197_fail:
+ rx177_cur."!cursor_pass"(rx177_pos, "xblock")
+ rx177_cur."!cursor_debug"("PASS ", "xblock", " at pos=", rx177_pos)
+ .return (rx177_cur)
+ rx177_restart:
.annotate 'line', 4
- (rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0)
- lt rx197_pos, -1, rx197_done
- eq rx197_pos, -1, rx197_fail
+ rx177_cur."!cursor_debug"("NEXT ", "xblock")
+ rx177_fail:
+ (rx177_rep, rx177_pos, $I10, $P10) = rx177_cur."!mark_fail"(0)
+ lt rx177_pos, -1, rx177_done
+ eq rx177_pos, -1, rx177_fail
jump $I10
- rx197_done:
- rx197_cur."!cursor_fail"()
- rx197_cur."!cursor_debug"("FAIL ", "xblock")
- .return (rx197_cur)
+ rx177_done:
+ rx177_cur."!cursor_fail"()
+ rx177_cur."!cursor_debug"("FAIL ", "xblock")
+ .return (rx177_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__xblock" :subid("39_1275811487.95429") :method
+.sub "!PREFIX__xblock" :subid("39_1280467477.44751") :method
.annotate 'line', 4
- $P199 = self."!PREFIX__!subrule"("EXPR", "")
- new $P200, "ResizablePMCArray"
- push $P200, $P199
- .return ($P200)
+ $P179 = self."!PREFIX__!subrule"("EXPR", "")
+ new $P180, "ResizablePMCArray"
+ push $P180, $P179
+ .return ($P180)
.end
.namespace ["NQP";"Grammar"]
-.sub "pblock" :subid("40_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "pblock" :subid("40_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx203_tgt
- .local int rx203_pos
- .local int rx203_off
- .local int rx203_eos
- .local int rx203_rep
- .local pmc rx203_cur
- (rx203_cur, rx203_pos, rx203_tgt) = self."!cursor_start"()
- rx203_cur."!cursor_debug"("START ", "pblock")
- .lex unicode:"$\x{a2}", rx203_cur
- .local 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:
+ .local string rx183_tgt
+ .local int rx183_pos
+ .local int rx183_off
+ .local int rx183_eos
+ .local int rx183_rep
+ .local pmc rx183_cur
+ (rx183_cur, rx183_pos, rx183_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx183_cur
+ .local pmc match
+ .lex "$/", match
+ length rx183_eos, rx183_tgt
+ gt rx183_pos, rx183_eos, rx183_done
+ set rx183_off, 0
+ lt rx183_pos, 2, rx183_start
+ sub rx183_off, rx183_pos, 1
+ substr rx183_tgt, rx183_tgt, rx183_off
+ rx183_start:
+ eq $I10, 1, rx183_restart
+ rx183_cur."!cursor_debug"("START ", "pblock")
$I10 = self.'from'()
- ne $I10, -1, rxscan208_done
- goto rxscan208_scan
- rxscan208_loop:
- ($P10) = rx203_cur."from"()
+ ne $I10, -1, rxscan188_done
+ goto rxscan188_scan
+ rxscan188_loop:
+ ($P10) = rx183_cur."from"()
inc $P10
- set rx203_pos, $P10
- ge rx203_pos, rx203_eos, rxscan208_done
- rxscan208_scan:
- set_addr $I10, rxscan208_loop
- rx203_cur."!mark_push"(0, rx203_pos, $I10)
- rxscan208_done:
- alt209_0:
+ set rx183_pos, $P10
+ ge rx183_pos, rx183_eos, rxscan188_done
+ rxscan188_scan:
+ set_addr $I10, rxscan188_loop
+ rx183_cur."!mark_push"(0, rx183_pos, $I10)
+ rxscan188_done:
+ alt189_0:
.annotate 'line', 119
- set_addr $I10, alt209_1
- rx203_cur."!mark_push"(0, rx203_pos, $I10)
+ set_addr $I10, alt189_1
+ rx183_cur."!mark_push"(0, rx183_pos, $I10)
.annotate 'line', 120
# rx subrule "lambda" subtype=method negate=
- rx203_cur."!cursor_pos"(rx203_pos)
- $P10 = rx203_cur."lambda"()
- unless $P10, rx203_fail
- rx203_pos = $P10."pos"()
+ rx183_cur."!cursor_pos"(rx183_pos)
+ $P10 = rx183_cur."lambda"()
+ unless $P10, rx183_fail
+ rx183_pos = $P10."pos"()
.annotate 'line', 121
# rx subrule "newpad" subtype=method negate=
- rx203_cur."!cursor_pos"(rx203_pos)
- $P10 = rx203_cur."newpad"()
- unless $P10, rx203_fail
- rx203_pos = $P10."pos"()
+ rx183_cur."!cursor_pos"(rx183_pos)
+ $P10 = rx183_cur."newpad"()
+ unless $P10, rx183_fail
+ rx183_pos = $P10."pos"()
.annotate 'line', 122
# rx subrule "signature" subtype=capture negate=
- rx203_cur."!cursor_pos"(rx203_pos)
- $P10 = rx203_cur."signature"()
- unless $P10, rx203_fail
- rx203_cur."!mark_push"(0, -1, 0, $P10)
+ rx183_cur."!cursor_pos"(rx183_pos)
+ $P10 = rx183_cur."signature"()
+ unless $P10, rx183_fail
+ rx183_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("signature")
- rx203_pos = $P10."pos"()
+ rx183_pos = $P10."pos"()
.annotate 'line', 123
# rx subrule "blockoid" subtype=capture negate=
- rx203_cur."!cursor_pos"(rx203_pos)
- $P10 = rx203_cur."blockoid"()
- unless $P10, rx203_fail
- rx203_cur."!mark_push"(0, -1, 0, $P10)
+ rx183_cur."!cursor_pos"(rx183_pos)
+ $P10 = rx183_cur."blockoid"()
+ unless $P10, rx183_fail
+ rx183_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blockoid")
- rx203_pos = $P10."pos"()
+ rx183_pos = $P10."pos"()
.annotate 'line', 120
- goto alt209_end
- alt209_1:
- set_addr $I10, alt209_2
- rx203_cur."!mark_push"(0, rx203_pos, $I10)
+ goto alt189_end
+ alt189_1:
+ set_addr $I10, alt189_2
+ rx183_cur."!mark_push"(0, rx183_pos, $I10)
.annotate 'line', 124
# rx enumcharlist negate=0 zerowidth
- ge rx203_pos, rx203_eos, rx203_fail
- sub $I10, rx203_pos, rx203_off
- substr $S10, rx203_tgt, $I10, 1
+ ge rx183_pos, rx183_eos, rx183_fail
+ sub $I10, rx183_pos, rx183_off
+ substr $S10, rx183_tgt, $I10, 1
index $I11, "{", $S10
- lt $I11, 0, rx203_fail
+ lt $I11, 0, rx183_fail
.annotate 'line', 125
# rx subrule "newpad" subtype=method negate=
- rx203_cur."!cursor_pos"(rx203_pos)
- $P10 = rx203_cur."newpad"()
- unless $P10, rx203_fail
- rx203_pos = $P10."pos"()
+ rx183_cur."!cursor_pos"(rx183_pos)
+ $P10 = rx183_cur."newpad"()
+ unless $P10, rx183_fail
+ rx183_pos = $P10."pos"()
.annotate 'line', 126
# rx subrule "blockoid" subtype=capture negate=
- rx203_cur."!cursor_pos"(rx203_pos)
- $P10 = rx203_cur."blockoid"()
- unless $P10, rx203_fail
- rx203_cur."!mark_push"(0, -1, 0, $P10)
+ rx183_cur."!cursor_pos"(rx183_pos)
+ $P10 = rx183_cur."blockoid"()
+ unless $P10, rx183_fail
+ rx183_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blockoid")
- rx203_pos = $P10."pos"()
+ rx183_pos = $P10."pos"()
.annotate 'line', 124
- goto alt209_end
- alt209_2:
+ goto alt189_end
+ alt189_2:
.annotate 'line', 127
# rx subrule "panic" subtype=method negate=
- rx203_cur."!cursor_pos"(rx203_pos)
- $P10 = rx203_cur."panic"("Missing block")
- unless $P10, rx203_fail
- rx203_pos = $P10."pos"()
- alt209_end:
+ rx183_cur."!cursor_pos"(rx183_pos)
+ $P10 = rx183_cur."panic"("Missing block")
+ unless $P10, rx183_fail
+ rx183_pos = $P10."pos"()
+ alt189_end:
.annotate 'line', 119
# rx pass
- rx203_cur."!cursor_pass"(rx203_pos, "pblock")
- rx203_cur."!cursor_debug"("PASS ", "pblock", " at pos=", rx203_pos)
- .return (rx203_cur)
- rx203_fail:
+ rx183_cur."!cursor_pass"(rx183_pos, "pblock")
+ rx183_cur."!cursor_debug"("PASS ", "pblock", " at pos=", rx183_pos)
+ .return (rx183_cur)
+ rx183_restart:
.annotate 'line', 4
- (rx203_rep, rx203_pos, $I10, $P10) = rx203_cur."!mark_fail"(0)
- lt rx203_pos, -1, rx203_done
- eq rx203_pos, -1, rx203_fail
+ rx183_cur."!cursor_debug"("NEXT ", "pblock")
+ rx183_fail:
+ (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0)
+ lt rx183_pos, -1, rx183_done
+ eq rx183_pos, -1, rx183_fail
jump $I10
- rx203_done:
- rx203_cur."!cursor_fail"()
- rx203_cur."!cursor_debug"("FAIL ", "pblock")
- .return (rx203_cur)
+ rx183_done:
+ rx183_cur."!cursor_fail"()
+ rx183_cur."!cursor_debug"("FAIL ", "pblock")
+ .return (rx183_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pblock" :subid("41_1275811487.95429") :method
+.sub "!PREFIX__pblock" :subid("41_1280467477.44751") :method
.annotate 'line', 4
- $P205 = self."!PREFIX__!subrule"("panic", "")
- $P206 = self."!PREFIX__!subrule"("lambda", "")
- new $P207, "ResizablePMCArray"
- push $P207, $P205
- push $P207, "{"
- push $P207, $P206
- .return ($P207)
+ $P185 = self."!PREFIX__!subrule"("panic", "")
+ $P186 = self."!PREFIX__!subrule"("lambda", "")
+ new $P187, "ResizablePMCArray"
+ push $P187, $P185
+ push $P187, "{"
+ push $P187, $P186
+ .return ($P187)
.end
.namespace ["NQP";"Grammar"]
-.sub "lambda" :subid("42_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "lambda" :subid("42_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx211_tgt
- .local int rx211_pos
- .local int rx211_off
- .local int rx211_eos
- .local int rx211_rep
- .local pmc rx211_cur
- (rx211_cur, rx211_pos, rx211_tgt) = self."!cursor_start"()
- rx211_cur."!cursor_debug"("START ", "lambda")
- .lex unicode:"$\x{a2}", rx211_cur
- .local pmc match
- .lex "$/", match
- length rx211_eos, rx211_tgt
- gt rx211_pos, rx211_eos, rx211_done
- set rx211_off, 0
- lt rx211_pos, 2, rx211_start
- sub rx211_off, rx211_pos, 1
- substr rx211_tgt, rx211_tgt, rx211_off
- rx211_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan214_done
- goto rxscan214_scan
- rxscan214_loop:
- ($P10) = rx211_cur."from"()
- inc $P10
- set rx211_pos, $P10
- ge rx211_pos, rx211_eos, rxscan214_done
- rxscan214_scan:
- set_addr $I10, rxscan214_loop
- rx211_cur."!mark_push"(0, rx211_pos, $I10)
- rxscan214_done:
- alt215_0:
+ .local string rx191_tgt
+ .local int rx191_pos
+ .local int rx191_off
+ .local int rx191_eos
+ .local int rx191_rep
+ .local pmc rx191_cur
+ (rx191_cur, rx191_pos, rx191_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx191_cur
+ .local pmc match
+ .lex "$/", match
+ length rx191_eos, rx191_tgt
+ gt rx191_pos, rx191_eos, rx191_done
+ set rx191_off, 0
+ lt rx191_pos, 2, rx191_start
+ sub rx191_off, rx191_pos, 1
+ substr rx191_tgt, rx191_tgt, rx191_off
+ rx191_start:
+ eq $I10, 1, rx191_restart
+ rx191_cur."!cursor_debug"("START ", "lambda")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan194_done
+ goto rxscan194_scan
+ rxscan194_loop:
+ ($P10) = rx191_cur."from"()
+ inc $P10
+ set rx191_pos, $P10
+ ge rx191_pos, rx191_eos, rxscan194_done
+ rxscan194_scan:
+ set_addr $I10, rxscan194_loop
+ rx191_cur."!mark_push"(0, rx191_pos, $I10)
+ rxscan194_done:
+ alt195_0:
.annotate 'line', 130
- set_addr $I10, alt215_1
- rx211_cur."!mark_push"(0, rx211_pos, $I10)
+ set_addr $I10, alt195_1
+ rx191_cur."!mark_push"(0, rx191_pos, $I10)
# rx literal "->"
- add $I11, rx211_pos, 2
- gt $I11, rx211_eos, rx211_fail
- sub $I11, rx211_pos, rx211_off
- substr $S10, rx211_tgt, $I11, 2
- ne $S10, "->", rx211_fail
- add rx211_pos, 2
- goto alt215_end
- alt215_1:
+ add $I11, rx191_pos, 2
+ gt $I11, rx191_eos, rx191_fail
+ sub $I11, rx191_pos, rx191_off
+ substr $S10, rx191_tgt, $I11, 2
+ ne $S10, "->", rx191_fail
+ add rx191_pos, 2
+ goto alt195_end
+ alt195_1:
# rx literal "<->"
- add $I11, rx211_pos, 3
- gt $I11, rx211_eos, rx211_fail
- sub $I11, rx211_pos, rx211_off
- substr $S10, rx211_tgt, $I11, 3
- ne $S10, "<->", rx211_fail
- add rx211_pos, 3
- alt215_end:
+ add $I11, rx191_pos, 3
+ gt $I11, rx191_eos, rx191_fail
+ sub $I11, rx191_pos, rx191_off
+ substr $S10, rx191_tgt, $I11, 3
+ ne $S10, "<->", rx191_fail
+ add rx191_pos, 3
+ alt195_end:
# rx pass
- rx211_cur."!cursor_pass"(rx211_pos, "lambda")
- rx211_cur."!cursor_debug"("PASS ", "lambda", " at pos=", rx211_pos)
- .return (rx211_cur)
- rx211_fail:
+ rx191_cur."!cursor_pass"(rx191_pos, "lambda")
+ rx191_cur."!cursor_debug"("PASS ", "lambda", " at pos=", rx191_pos)
+ .return (rx191_cur)
+ rx191_restart:
.annotate 'line', 4
- (rx211_rep, rx211_pos, $I10, $P10) = rx211_cur."!mark_fail"(0)
- lt rx211_pos, -1, rx211_done
- eq rx211_pos, -1, rx211_fail
+ rx191_cur."!cursor_debug"("NEXT ", "lambda")
+ rx191_fail:
+ (rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0)
+ lt rx191_pos, -1, rx191_done
+ eq rx191_pos, -1, rx191_fail
jump $I10
- rx211_done:
- rx211_cur."!cursor_fail"()
- rx211_cur."!cursor_debug"("FAIL ", "lambda")
- .return (rx211_cur)
+ rx191_done:
+ rx191_cur."!cursor_fail"()
+ rx191_cur."!cursor_debug"("FAIL ", "lambda")
+ .return (rx191_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__lambda" :subid("43_1275811487.95429") :method
+.sub "!PREFIX__lambda" :subid("43_1280467477.44751") :method
.annotate 'line', 4
- new $P213, "ResizablePMCArray"
- push $P213, "<->"
- push $P213, "->"
- .return ($P213)
+ new $P193, "ResizablePMCArray"
+ push $P193, "<->"
+ push $P193, "->"
+ .return ($P193)
.end
.namespace ["NQP";"Grammar"]
-.sub "block" :subid("44_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "block" :subid("44_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx217_tgt
- .local int rx217_pos
- .local int rx217_off
- .local int rx217_eos
- .local int rx217_rep
- .local pmc rx217_cur
- (rx217_cur, rx217_pos, rx217_tgt) = self."!cursor_start"()
- rx217_cur."!cursor_debug"("START ", "block")
- .lex unicode:"$\x{a2}", rx217_cur
+ .local string 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 rx217_eos, rx217_tgt
- gt rx217_pos, rx217_eos, rx217_done
- set rx217_off, 0
- lt rx217_pos, 2, rx217_start
- sub rx217_off, rx217_pos, 1
- substr rx217_tgt, rx217_tgt, rx217_off
- rx217_start:
+ length rx197_eos, rx197_tgt
+ gt rx197_pos, rx197_eos, rx197_done
+ set rx197_off, 0
+ lt rx197_pos, 2, rx197_start
+ sub rx197_off, rx197_pos, 1
+ substr rx197_tgt, rx197_tgt, rx197_off
+ rx197_start:
+ eq $I10, 1, rx197_restart
+ rx197_cur."!cursor_debug"("START ", "block")
$I10 = self.'from'()
- ne $I10, -1, rxscan221_done
- goto rxscan221_scan
- rxscan221_loop:
- ($P10) = rx217_cur."from"()
+ ne $I10, -1, rxscan201_done
+ goto rxscan201_scan
+ rxscan201_loop:
+ ($P10) = rx197_cur."from"()
inc $P10
- set rx217_pos, $P10
- ge rx217_pos, rx217_eos, rxscan221_done
- rxscan221_scan:
- set_addr $I10, rxscan221_loop
- rx217_cur."!mark_push"(0, rx217_pos, $I10)
- rxscan221_done:
- alt222_0:
+ set rx197_pos, $P10
+ ge rx197_pos, rx197_eos, rxscan201_done
+ rxscan201_scan:
+ set_addr $I10, rxscan201_loop
+ rx197_cur."!mark_push"(0, rx197_pos, $I10)
+ rxscan201_done:
+ alt202_0:
.annotate 'line', 133
- set_addr $I10, alt222_1
- rx217_cur."!mark_push"(0, rx217_pos, $I10)
+ set_addr $I10, alt202_1
+ rx197_cur."!mark_push"(0, rx197_pos, $I10)
# rx enumcharlist negate=0 zerowidth
- ge rx217_pos, rx217_eos, rx217_fail
- sub $I10, rx217_pos, rx217_off
- substr $S10, rx217_tgt, $I10, 1
+ ge rx197_pos, rx197_eos, rx197_fail
+ sub $I10, rx197_pos, rx197_off
+ substr $S10, rx197_tgt, $I10, 1
index $I11, "{", $S10
- lt $I11, 0, rx217_fail
- goto alt222_end
- alt222_1:
+ lt $I11, 0, rx197_fail
+ goto alt202_end
+ alt202_1:
# rx subrule "panic" subtype=method negate=
- rx217_cur."!cursor_pos"(rx217_pos)
- $P10 = rx217_cur."panic"("Missing block")
- unless $P10, rx217_fail
- rx217_pos = $P10."pos"()
- alt222_end:
+ rx197_cur."!cursor_pos"(rx197_pos)
+ $P10 = rx197_cur."panic"("Missing block")
+ unless $P10, rx197_fail
+ rx197_pos = $P10."pos"()
+ alt202_end:
.annotate 'line', 134
# rx subrule "newpad" subtype=method negate=
- rx217_cur."!cursor_pos"(rx217_pos)
- $P10 = rx217_cur."newpad"()
- unless $P10, rx217_fail
- rx217_pos = $P10."pos"()
+ rx197_cur."!cursor_pos"(rx197_pos)
+ $P10 = rx197_cur."newpad"()
+ unless $P10, rx197_fail
+ rx197_pos = $P10."pos"()
.annotate 'line', 135
# rx subrule "blockoid" subtype=capture negate=
- rx217_cur."!cursor_pos"(rx217_pos)
- $P10 = rx217_cur."blockoid"()
- unless $P10, rx217_fail
- rx217_cur."!mark_push"(0, -1, 0, $P10)
+ rx197_cur."!cursor_pos"(rx197_pos)
+ $P10 = rx197_cur."blockoid"()
+ unless $P10, rx197_fail
+ rx197_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blockoid")
- rx217_pos = $P10."pos"()
+ rx197_pos = $P10."pos"()
.annotate 'line', 132
# rx pass
- rx217_cur."!cursor_pass"(rx217_pos, "block")
- rx217_cur."!cursor_debug"("PASS ", "block", " at pos=", rx217_pos)
- .return (rx217_cur)
- rx217_fail:
+ rx197_cur."!cursor_pass"(rx197_pos, "block")
+ rx197_cur."!cursor_debug"("PASS ", "block", " at pos=", rx197_pos)
+ .return (rx197_cur)
+ rx197_restart:
.annotate 'line', 4
- (rx217_rep, rx217_pos, $I10, $P10) = rx217_cur."!mark_fail"(0)
- lt rx217_pos, -1, rx217_done
- eq rx217_pos, -1, rx217_fail
+ rx197_cur."!cursor_debug"("NEXT ", "block")
+ rx197_fail:
+ (rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0)
+ lt rx197_pos, -1, rx197_done
+ eq rx197_pos, -1, rx197_fail
jump $I10
- rx217_done:
- rx217_cur."!cursor_fail"()
- rx217_cur."!cursor_debug"("FAIL ", "block")
- .return (rx217_cur)
+ rx197_done:
+ rx197_cur."!cursor_fail"()
+ rx197_cur."!cursor_debug"("FAIL ", "block")
+ .return (rx197_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__block" :subid("45_1275811487.95429") :method
+.sub "!PREFIX__block" :subid("45_1280467477.44751") :method
.annotate 'line', 4
- $P219 = self."!PREFIX__!subrule"("panic", "")
- new $P220, "ResizablePMCArray"
- push $P220, $P219
- push $P220, "{"
- .return ($P220)
+ $P199 = self."!PREFIX__!subrule"("panic", "")
+ new $P200, "ResizablePMCArray"
+ push $P200, $P199
+ push $P200, "{"
+ .return ($P200)
.end
.namespace ["NQP";"Grammar"]
-.sub "blockoid" :subid("46_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "blockoid" :subid("46_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx224_tgt
- .local int rx224_pos
- .local int rx224_off
- .local int rx224_eos
- .local int rx224_rep
- .local pmc rx224_cur
- (rx224_cur, rx224_pos, rx224_tgt) = self."!cursor_start"()
- rx224_cur."!cursor_debug"("START ", "blockoid")
- .lex unicode:"$\x{a2}", rx224_cur
- .local pmc match
- .lex "$/", match
- length rx224_eos, rx224_tgt
- gt rx224_pos, rx224_eos, rx224_done
- set rx224_off, 0
- lt rx224_pos, 2, rx224_start
- sub rx224_off, rx224_pos, 1
- substr rx224_tgt, rx224_tgt, rx224_off
- rx224_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan228_done
- goto rxscan228_scan
- rxscan228_loop:
- ($P10) = rx224_cur."from"()
- inc $P10
- set rx224_pos, $P10
- ge rx224_pos, rx224_eos, rxscan228_done
- rxscan228_scan:
- set_addr $I10, rxscan228_loop
- rx224_cur."!mark_push"(0, rx224_pos, $I10)
- rxscan228_done:
+ .local string rx204_tgt
+ .local int rx204_pos
+ .local int rx204_off
+ .local int rx204_eos
+ .local int rx204_rep
+ .local pmc rx204_cur
+ (rx204_cur, rx204_pos, rx204_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx204_cur
+ .local pmc match
+ .lex "$/", match
+ length rx204_eos, rx204_tgt
+ gt rx204_pos, rx204_eos, rx204_done
+ set rx204_off, 0
+ lt rx204_pos, 2, rx204_start
+ sub rx204_off, rx204_pos, 1
+ substr rx204_tgt, rx204_tgt, rx204_off
+ rx204_start:
+ eq $I10, 1, rx204_restart
+ rx204_cur."!cursor_debug"("START ", "blockoid")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan208_done
+ goto rxscan208_scan
+ rxscan208_loop:
+ ($P10) = rx204_cur."from"()
+ inc $P10
+ set rx204_pos, $P10
+ ge rx204_pos, rx204_eos, rxscan208_done
+ rxscan208_scan:
+ set_addr $I10, rxscan208_loop
+ rx204_cur."!mark_push"(0, rx204_pos, $I10)
+ rxscan208_done:
.annotate 'line', 139
# rx subrule "finishpad" subtype=method negate=
- rx224_cur."!cursor_pos"(rx224_pos)
- $P10 = rx224_cur."finishpad"()
- unless $P10, rx224_fail
- rx224_pos = $P10."pos"()
+ rx204_cur."!cursor_pos"(rx204_pos)
+ $P10 = rx204_cur."finishpad"()
+ unless $P10, rx204_fail
+ rx204_pos = $P10."pos"()
.annotate 'line', 140
# rx literal "{"
- add $I11, rx224_pos, 1
- gt $I11, rx224_eos, rx224_fail
- sub $I11, rx224_pos, rx224_off
- substr $S10, rx224_tgt, $I11, 1
- ne $S10, "{", rx224_fail
- add rx224_pos, 1
+ add $I11, rx204_pos, 1
+ gt $I11, rx204_eos, rx204_fail
+ sub $I11, rx204_pos, rx204_off
+ substr $S10, rx204_tgt, $I11, 1
+ ne $S10, "{", rx204_fail
+ add rx204_pos, 1
# rx subrule "statementlist" subtype=capture negate=
- rx224_cur."!cursor_pos"(rx224_pos)
- $P10 = rx224_cur."statementlist"()
- unless $P10, rx224_fail
- rx224_cur."!mark_push"(0, -1, 0, $P10)
+ rx204_cur."!cursor_pos"(rx204_pos)
+ $P10 = rx204_cur."statementlist"()
+ unless $P10, rx204_fail
+ rx204_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statementlist")
- rx224_pos = $P10."pos"()
- alt229_0:
- set_addr $I10, alt229_1
- rx224_cur."!mark_push"(0, rx224_pos, $I10)
+ rx204_pos = $P10."pos"()
+ alt209_0:
+ set_addr $I10, alt209_1
+ rx204_cur."!mark_push"(0, rx204_pos, $I10)
# rx literal "}"
- add $I11, rx224_pos, 1
- gt $I11, rx224_eos, rx224_fail
- sub $I11, rx224_pos, rx224_off
- substr $S10, rx224_tgt, $I11, 1
- ne $S10, "}", rx224_fail
- add rx224_pos, 1
- goto alt229_end
- alt229_1:
+ add $I11, rx204_pos, 1
+ gt $I11, rx204_eos, rx204_fail
+ sub $I11, rx204_pos, rx204_off
+ substr $S10, rx204_tgt, $I11, 1
+ ne $S10, "}", rx204_fail
+ add rx204_pos, 1
+ goto alt209_end
+ alt209_1:
# rx subrule "FAILGOAL" subtype=method negate=
- rx224_cur."!cursor_pos"(rx224_pos)
- $P10 = rx224_cur."FAILGOAL"("'}'")
- unless $P10, rx224_fail
- rx224_pos = $P10."pos"()
- alt229_end:
+ rx204_cur."!cursor_pos"(rx204_pos)
+ $P10 = rx204_cur."FAILGOAL"("'}'")
+ unless $P10, rx204_fail
+ goto rxsubrule211_pass
+ rxsubrule211_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx204_fail
+ rxsubrule211_pass:
+ set_addr $I10, rxsubrule211_back
+ rx204_cur."!mark_push"(0, rx204_pos, $I10, $P10)
+ rx204_pos = $P10."pos"()
+ alt209_end:
.annotate 'line', 141
# rx subrule "ENDSTMT" subtype=zerowidth negate=
- rx224_cur."!cursor_pos"(rx224_pos)
- $P10 = rx224_cur."ENDSTMT"()
- unless $P10, rx224_fail
+ rx204_cur."!cursor_pos"(rx204_pos)
+ $P10 = rx204_cur."ENDSTMT"()
+ unless $P10, rx204_fail
.annotate 'line', 138
# rx pass
- rx224_cur."!cursor_pass"(rx224_pos, "blockoid")
- rx224_cur."!cursor_debug"("PASS ", "blockoid", " at pos=", rx224_pos)
- .return (rx224_cur)
- rx224_fail:
+ rx204_cur."!cursor_pass"(rx204_pos, "blockoid")
+ rx204_cur."!cursor_debug"("PASS ", "blockoid", " at pos=", rx204_pos)
+ .return (rx204_cur)
+ rx204_restart:
+.annotate 'line', 4
+ rx204_cur."!cursor_debug"("NEXT ", "blockoid")
+ rx204_fail:
+ (rx204_rep, rx204_pos, $I10, $P10) = rx204_cur."!mark_fail"(0)
+ lt rx204_pos, -1, rx204_done
+ eq rx204_pos, -1, rx204_fail
+ jump $I10
+ rx204_done:
+ rx204_cur."!cursor_fail"()
+ rx204_cur."!cursor_debug"("FAIL ", "blockoid")
+ .return (rx204_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__blockoid" :subid("47_1280467477.44751") :method
+.annotate 'line', 4
+ $P206 = self."!PREFIX__!subrule"("finishpad", "")
+ new $P207, "ResizablePMCArray"
+ push $P207, $P206
+ .return ($P207)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "newpad" :subid("48_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx213_tgt
+ .local int rx213_pos
+ .local int rx213_off
+ .local int rx213_eos
+ .local int rx213_rep
+ .local pmc rx213_cur
+ (rx213_cur, rx213_pos, rx213_tgt, $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 ", "newpad")
+ $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', 144
+ # rx pass
+ rx213_cur."!cursor_pass"(rx213_pos, "newpad")
+ rx213_cur."!cursor_debug"("PASS ", "newpad", " at pos=", rx213_pos)
+ .return (rx213_cur)
+ rx213_restart:
+.annotate 'line', 4
+ rx213_cur."!cursor_debug"("NEXT ", "newpad")
+ rx213_fail:
+ (rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0)
+ lt rx213_pos, -1, rx213_done
+ eq rx213_pos, -1, rx213_fail
+ jump $I10
+ rx213_done:
+ rx213_cur."!cursor_fail"()
+ rx213_cur."!cursor_debug"("FAIL ", "newpad")
+ .return (rx213_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__newpad" :subid("49_1280467477.44751") :method
+.annotate 'line', 4
+ new $P215, "ResizablePMCArray"
+ push $P215, ""
+ .return ($P215)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "outerctx" :subid("50_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx218_tgt
+ .local int rx218_pos
+ .local int rx218_off
+ .local int rx218_eos
+ .local int rx218_rep
+ .local pmc rx218_cur
+ (rx218_cur, rx218_pos, rx218_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx218_cur
+ .local pmc match
+ .lex "$/", match
+ length rx218_eos, rx218_tgt
+ gt rx218_pos, rx218_eos, rx218_done
+ set rx218_off, 0
+ lt rx218_pos, 2, rx218_start
+ sub rx218_off, rx218_pos, 1
+ substr rx218_tgt, rx218_tgt, rx218_off
+ rx218_start:
+ eq $I10, 1, rx218_restart
+ rx218_cur."!cursor_debug"("START ", "outerctx")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan221_done
+ goto rxscan221_scan
+ rxscan221_loop:
+ ($P10) = rx218_cur."from"()
+ inc $P10
+ set rx218_pos, $P10
+ ge rx218_pos, rx218_eos, rxscan221_done
+ rxscan221_scan:
+ set_addr $I10, rxscan221_loop
+ rx218_cur."!mark_push"(0, rx218_pos, $I10)
+ rxscan221_done:
+.annotate 'line', 145
+ # rx pass
+ rx218_cur."!cursor_pass"(rx218_pos, "outerctx")
+ rx218_cur."!cursor_debug"("PASS ", "outerctx", " at pos=", rx218_pos)
+ .return (rx218_cur)
+ rx218_restart:
+.annotate 'line', 4
+ rx218_cur."!cursor_debug"("NEXT ", "outerctx")
+ rx218_fail:
+ (rx218_rep, rx218_pos, $I10, $P10) = rx218_cur."!mark_fail"(0)
+ lt rx218_pos, -1, rx218_done
+ eq rx218_pos, -1, rx218_fail
+ jump $I10
+ rx218_done:
+ rx218_cur."!cursor_fail"()
+ rx218_cur."!cursor_debug"("FAIL ", "outerctx")
+ .return (rx218_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__outerctx" :subid("51_1280467477.44751") :method
+.annotate 'line', 4
+ new $P220, "ResizablePMCArray"
+ push $P220, ""
+ .return ($P220)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "finishpad" :subid("52_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx223_tgt
+ .local int rx223_pos
+ .local int rx223_off
+ .local int rx223_eos
+ .local int rx223_rep
+ .local pmc rx223_cur
+ (rx223_cur, rx223_pos, rx223_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx223_cur
+ .local pmc match
+ .lex "$/", match
+ length rx223_eos, rx223_tgt
+ gt rx223_pos, rx223_eos, rx223_done
+ set rx223_off, 0
+ lt rx223_pos, 2, rx223_start
+ sub rx223_off, rx223_pos, 1
+ substr rx223_tgt, rx223_tgt, rx223_off
+ rx223_start:
+ eq $I10, 1, rx223_restart
+ rx223_cur."!cursor_debug"("START ", "finishpad")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan226_done
+ goto rxscan226_scan
+ rxscan226_loop:
+ ($P10) = rx223_cur."from"()
+ inc $P10
+ set rx223_pos, $P10
+ ge rx223_pos, rx223_eos, rxscan226_done
+ rxscan226_scan:
+ set_addr $I10, rxscan226_loop
+ rx223_cur."!mark_push"(0, rx223_pos, $I10)
+ rxscan226_done:
+.annotate 'line', 146
+ # rx pass
+ rx223_cur."!cursor_pass"(rx223_pos, "finishpad")
+ rx223_cur."!cursor_debug"("PASS ", "finishpad", " at pos=", rx223_pos)
+ .return (rx223_cur)
+ rx223_restart:
.annotate 'line', 4
- (rx224_rep, rx224_pos, $I10, $P10) = rx224_cur."!mark_fail"(0)
- lt rx224_pos, -1, rx224_done
- eq rx224_pos, -1, rx224_fail
+ rx223_cur."!cursor_debug"("NEXT ", "finishpad")
+ rx223_fail:
+ (rx223_rep, rx223_pos, $I10, $P10) = rx223_cur."!mark_fail"(0)
+ lt rx223_pos, -1, rx223_done
+ eq rx223_pos, -1, rx223_fail
jump $I10
- rx224_done:
- rx224_cur."!cursor_fail"()
- rx224_cur."!cursor_debug"("FAIL ", "blockoid")
- .return (rx224_cur)
+ rx223_done:
+ rx223_cur."!cursor_fail"()
+ rx223_cur."!cursor_debug"("FAIL ", "finishpad")
+ .return (rx223_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blockoid" :subid("47_1275811487.95429") :method
+.sub "!PREFIX__finishpad" :subid("53_1280467477.44751") :method
.annotate 'line', 4
- $P226 = self."!PREFIX__!subrule"("finishpad", "")
- new $P227, "ResizablePMCArray"
- push $P227, $P226
- .return ($P227)
+ new $P225, "ResizablePMCArray"
+ push $P225, ""
+ .return ($P225)
.end
.namespace ["NQP";"Grammar"]
-.sub "newpad" :subid("48_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "terminator" :subid("54_1280467477.44751") :method
+.annotate 'line', 148
+ $P228 = self."!protoregex"("terminator")
+ .return ($P228)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__terminator" :subid("55_1280467477.44751") :method
+.annotate 'line', 148
+ $P230 = self."!PREFIX__!protoregex"("terminator")
+ .return ($P230)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "terminator:sym<;>" :subid("56_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
.local string rx232_tgt
.local int rx232_pos
@@ -3007,8 +3376,7 @@
.local int rx232_eos
.local int rx232_rep
.local pmc rx232_cur
- (rx232_cur, rx232_pos, rx232_tgt) = self."!cursor_start"()
- rx232_cur."!cursor_debug"("START ", "newpad")
+ (rx232_cur, rx232_pos, rx232_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx232_cur
.local pmc match
.lex "$/", match
@@ -3019,6 +3387,8 @@
sub rx232_off, rx232_pos, 1
substr rx232_tgt, rx232_tgt, rx232_off
rx232_start:
+ eq $I10, 1, rx232_restart
+ rx232_cur."!cursor_debug"("START ", "terminator:sym<;>")
$I10 = self.'from'()
ne $I10, -1, rxscan235_done
goto rxscan235_scan
@@ -3031,36 +3401,44 @@
set_addr $I10, rxscan235_loop
rx232_cur."!mark_push"(0, rx232_pos, $I10)
rxscan235_done:
-.annotate 'line', 144
+.annotate 'line', 150
+ # rx enumcharlist negate=0 zerowidth
+ ge rx232_pos, rx232_eos, rx232_fail
+ sub $I10, rx232_pos, rx232_off
+ substr $S10, rx232_tgt, $I10, 1
+ index $I11, ";", $S10
+ lt $I11, 0, rx232_fail
# rx pass
- rx232_cur."!cursor_pass"(rx232_pos, "newpad")
- rx232_cur."!cursor_debug"("PASS ", "newpad", " at pos=", rx232_pos)
+ rx232_cur."!cursor_pass"(rx232_pos, "terminator:sym<;>")
+ rx232_cur."!cursor_debug"("PASS ", "terminator:sym<;>", " at pos=", rx232_pos)
.return (rx232_cur)
- rx232_fail:
+ rx232_restart:
.annotate 'line', 4
+ rx232_cur."!cursor_debug"("NEXT ", "terminator:sym<;>")
+ rx232_fail:
(rx232_rep, rx232_pos, $I10, $P10) = rx232_cur."!mark_fail"(0)
lt rx232_pos, -1, rx232_done
eq rx232_pos, -1, rx232_fail
jump $I10
rx232_done:
rx232_cur."!cursor_fail"()
- rx232_cur."!cursor_debug"("FAIL ", "newpad")
+ rx232_cur."!cursor_debug"("FAIL ", "terminator:sym<;>")
.return (rx232_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__newpad" :subid("49_1275811487.95429") :method
+.sub "!PREFIX__terminator:sym<;>" :subid("57_1280467477.44751") :method
.annotate 'line', 4
new $P234, "ResizablePMCArray"
- push $P234, ""
+ push $P234, ";"
.return ($P234)
.end
.namespace ["NQP";"Grammar"]
-.sub "outerctx" :subid("50_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "terminator:sym<}>" :subid("58_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
.local string rx237_tgt
.local int rx237_pos
@@ -3068,8 +3446,7 @@
.local int rx237_eos
.local int rx237_rep
.local pmc rx237_cur
- (rx237_cur, rx237_pos, rx237_tgt) = self."!cursor_start"()
- rx237_cur."!cursor_debug"("START ", "outerctx")
+ (rx237_cur, rx237_pos, rx237_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx237_cur
.local pmc match
.lex "$/", match
@@ -3080,6 +3457,8 @@
sub rx237_off, rx237_pos, 1
substr rx237_tgt, rx237_tgt, rx237_off
rx237_start:
+ eq $I10, 1, rx237_restart
+ rx237_cur."!cursor_debug"("START ", "terminator:sym<}>")
$I10 = self.'from'()
ne $I10, -1, rxscan240_done
goto rxscan240_scan
@@ -3092,2092 +3471,2184 @@
set_addr $I10, rxscan240_loop
rx237_cur."!mark_push"(0, rx237_pos, $I10)
rxscan240_done:
-.annotate 'line', 145
+.annotate 'line', 151
+ # rx enumcharlist negate=0 zerowidth
+ ge rx237_pos, rx237_eos, rx237_fail
+ sub $I10, rx237_pos, rx237_off
+ substr $S10, rx237_tgt, $I10, 1
+ index $I11, "}", $S10
+ lt $I11, 0, rx237_fail
# rx pass
- rx237_cur."!cursor_pass"(rx237_pos, "outerctx")
- rx237_cur."!cursor_debug"("PASS ", "outerctx", " at pos=", rx237_pos)
+ rx237_cur."!cursor_pass"(rx237_pos, "terminator:sym<}>")
+ rx237_cur."!cursor_debug"("PASS ", "terminator:sym<}>", " at pos=", rx237_pos)
.return (rx237_cur)
- rx237_fail:
+ rx237_restart:
.annotate 'line', 4
+ rx237_cur."!cursor_debug"("NEXT ", "terminator:sym<}>")
+ rx237_fail:
(rx237_rep, rx237_pos, $I10, $P10) = rx237_cur."!mark_fail"(0)
lt rx237_pos, -1, rx237_done
eq rx237_pos, -1, rx237_fail
jump $I10
rx237_done:
rx237_cur."!cursor_fail"()
- rx237_cur."!cursor_debug"("FAIL ", "outerctx")
+ rx237_cur."!cursor_debug"("FAIL ", "terminator:sym<}>")
.return (rx237_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__outerctx" :subid("51_1275811487.95429") :method
+.sub "!PREFIX__terminator:sym<}>" :subid("59_1280467477.44751") :method
.annotate 'line', 4
new $P239, "ResizablePMCArray"
- push $P239, ""
+ push $P239, "}"
.return ($P239)
.end
.namespace ["NQP";"Grammar"]
-.sub "finishpad" :subid("52_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx242_tgt
- .local int rx242_pos
- .local int rx242_off
- .local int rx242_eos
- .local int rx242_rep
- .local pmc rx242_cur
- (rx242_cur, rx242_pos, rx242_tgt) = self."!cursor_start"()
- rx242_cur."!cursor_debug"("START ", "finishpad")
- .lex unicode:"$\x{a2}", rx242_cur
- .local pmc match
- .lex "$/", match
- length rx242_eos, rx242_tgt
- gt rx242_pos, rx242_eos, rx242_done
- set rx242_off, 0
- lt rx242_pos, 2, rx242_start
- sub rx242_off, rx242_pos, 1
- substr rx242_tgt, rx242_tgt, rx242_off
- rx242_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan245_done
- goto rxscan245_scan
- rxscan245_loop:
- ($P10) = rx242_cur."from"()
- inc $P10
- set rx242_pos, $P10
- ge rx242_pos, rx242_eos, rxscan245_done
- rxscan245_scan:
- set_addr $I10, rxscan245_loop
- rx242_cur."!mark_push"(0, rx242_pos, $I10)
- rxscan245_done:
-.annotate 'line', 146
- # rx pass
- rx242_cur."!cursor_pass"(rx242_pos, "finishpad")
- rx242_cur."!cursor_debug"("PASS ", "finishpad", " at pos=", rx242_pos)
- .return (rx242_cur)
- rx242_fail:
-.annotate 'line', 4
- (rx242_rep, rx242_pos, $I10, $P10) = rx242_cur."!mark_fail"(0)
- lt rx242_pos, -1, rx242_done
- eq rx242_pos, -1, rx242_fail
- jump $I10
- rx242_done:
- rx242_cur."!cursor_fail"()
- rx242_cur."!cursor_debug"("FAIL ", "finishpad")
- .return (rx242_cur)
- .return ()
+.sub "statement_control" :subid("60_1280467477.44751") :method
+.annotate 'line', 155
+ $P242 = self."!protoregex"("statement_control")
+ .return ($P242)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__finishpad" :subid("53_1275811487.95429") :method
-.annotate 'line', 4
- new $P244, "ResizablePMCArray"
- push $P244, ""
+.sub "!PREFIX__statement_control" :subid("61_1280467477.44751") :method
+.annotate 'line', 155
+ $P244 = self."!PREFIX__!protoregex"("statement_control")
.return ($P244)
.end
.namespace ["NQP";"Grammar"]
-.sub "terminator" :subid("54_1275811487.95429") :method
-.annotate 'line', 148
- $P247 = self."!protoregex"("terminator")
- .return ($P247)
+.sub "statement_control:sym<if>" :subid("62_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx246_tgt
+ .local int rx246_pos
+ .local int rx246_off
+ .local int rx246_eos
+ .local int rx246_rep
+ .local pmc rx246_cur
+ (rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"()
+ rx246_cur."!cursor_caparray"("xblock", "else")
+ .lex unicode:"$\x{a2}", rx246_cur
+ .local pmc match
+ .lex "$/", match
+ length rx246_eos, rx246_tgt
+ gt rx246_pos, rx246_eos, rx246_done
+ set rx246_off, 0
+ lt rx246_pos, 2, rx246_start
+ sub rx246_off, rx246_pos, 1
+ substr rx246_tgt, rx246_tgt, rx246_off
+ rx246_start:
+ eq $I10, 1, rx246_restart
+ rx246_cur."!cursor_debug"("START ", "statement_control:sym<if>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan249_done
+ goto rxscan249_scan
+ rxscan249_loop:
+ ($P10) = rx246_cur."from"()
+ inc $P10
+ set rx246_pos, $P10
+ ge rx246_pos, rx246_eos, rxscan249_done
+ rxscan249_scan:
+ set_addr $I10, rxscan249_loop
+ rx246_cur."!mark_push"(0, rx246_pos, $I10)
+ rxscan249_done:
+.annotate 'line', 158
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_250_fail
+ rx246_cur."!mark_push"(0, rx246_pos, $I10)
+ # rx literal "if"
+ add $I11, rx246_pos, 2
+ gt $I11, rx246_eos, rx246_fail
+ sub $I11, rx246_pos, rx246_off
+ substr $S10, rx246_tgt, $I11, 2
+ ne $S10, "if", rx246_fail
+ add rx246_pos, 2
+ set_addr $I10, rxcap_250_fail
+ ($I12, $I11) = rx246_cur."!mark_peek"($I10)
+ rx246_cur."!cursor_pos"($I11)
+ ($P10) = rx246_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx246_pos, "")
+ rx246_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_250_done
+ rxcap_250_fail:
+ goto rx246_fail
+ rxcap_250_done:
+ # rx charclass s
+ ge rx246_pos, rx246_eos, rx246_fail
+ sub $I10, rx246_pos, rx246_off
+ is_cclass $I11, 32, rx246_tgt, $I10
+ unless $I11, rx246_fail
+ inc rx246_pos
+ # rx subrule "ws" subtype=method negate=
+ rx246_cur."!cursor_pos"(rx246_pos)
+ $P10 = rx246_cur."ws"()
+ unless $P10, rx246_fail
+ rx246_pos = $P10."pos"()
+.annotate 'line', 159
+ # rx subrule "xblock" subtype=capture negate=
+ rx246_cur."!cursor_pos"(rx246_pos)
+ $P10 = rx246_cur."xblock"()
+ unless $P10, rx246_fail
+ rx246_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("xblock")
+ rx246_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx246_cur."!cursor_pos"(rx246_pos)
+ $P10 = rx246_cur."ws"()
+ unless $P10, rx246_fail
+ rx246_pos = $P10."pos"()
+.annotate 'line', 160
+ # rx rxquantr253 ** 0..*
+ set_addr $I10, rxquantr253_done
+ rx246_cur."!mark_push"(0, rx246_pos, $I10)
+ rxquantr253_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx246_cur."!cursor_pos"(rx246_pos)
+ $P10 = rx246_cur."ws"()
+ unless $P10, rx246_fail
+ rx246_pos = $P10."pos"()
+ # rx literal "elsif"
+ add $I11, rx246_pos, 5
+ gt $I11, rx246_eos, rx246_fail
+ sub $I11, rx246_pos, rx246_off
+ substr $S10, rx246_tgt, $I11, 5
+ ne $S10, "elsif", rx246_fail
+ add rx246_pos, 5
+ # rx charclass s
+ ge rx246_pos, rx246_eos, rx246_fail
+ sub $I10, rx246_pos, rx246_off
+ is_cclass $I11, 32, rx246_tgt, $I10
+ unless $I11, rx246_fail
+ inc rx246_pos
+ # rx subrule "ws" subtype=method negate=
+ rx246_cur."!cursor_pos"(rx246_pos)
+ $P10 = rx246_cur."ws"()
+ unless $P10, rx246_fail
+ rx246_pos = $P10."pos"()
+ # rx subrule "xblock" subtype=capture negate=
+ rx246_cur."!cursor_pos"(rx246_pos)
+ $P10 = rx246_cur."xblock"()
+ unless $P10, rx246_fail
+ rx246_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("xblock")
+ rx246_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx246_cur."!cursor_pos"(rx246_pos)
+ $P10 = rx246_cur."ws"()
+ unless $P10, rx246_fail
+ rx246_pos = $P10."pos"()
+ set_addr $I10, rxquantr253_done
+ (rx246_rep) = rx246_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr253_done
+ rx246_cur."!mark_push"(rx246_rep, rx246_pos, $I10)
+ goto rxquantr253_loop
+ rxquantr253_done:
+ # rx subrule "ws" subtype=method negate=
+ rx246_cur."!cursor_pos"(rx246_pos)
+ $P10 = rx246_cur."ws"()
+ unless $P10, rx246_fail
+ rx246_pos = $P10."pos"()
+.annotate 'line', 161
+ # rx rxquantr258 ** 0..1
+ set_addr $I10, rxquantr258_done
+ rx246_cur."!mark_push"(0, rx246_pos, $I10)
+ rxquantr258_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx246_cur."!cursor_pos"(rx246_pos)
+ $P10 = rx246_cur."ws"()
+ unless $P10, rx246_fail
+ rx246_pos = $P10."pos"()
+ # rx literal "else"
+ add $I11, rx246_pos, 4
+ gt $I11, rx246_eos, rx246_fail
+ sub $I11, rx246_pos, rx246_off
+ substr $S10, rx246_tgt, $I11, 4
+ ne $S10, "else", rx246_fail
+ add rx246_pos, 4
+ # rx charclass s
+ ge rx246_pos, rx246_eos, rx246_fail
+ sub $I10, rx246_pos, rx246_off
+ is_cclass $I11, 32, rx246_tgt, $I10
+ unless $I11, rx246_fail
+ inc rx246_pos
+ # rx subrule "ws" subtype=method negate=
+ rx246_cur."!cursor_pos"(rx246_pos)
+ $P10 = rx246_cur."ws"()
+ unless $P10, rx246_fail
+ rx246_pos = $P10."pos"()
+ # rx subrule "pblock" subtype=capture negate=
+ rx246_cur."!cursor_pos"(rx246_pos)
+ $P10 = rx246_cur."pblock"()
+ unless $P10, rx246_fail
+ rx246_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("else")
+ rx246_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx246_cur."!cursor_pos"(rx246_pos)
+ $P10 = rx246_cur."ws"()
+ unless $P10, rx246_fail
+ rx246_pos = $P10."pos"()
+ set_addr $I10, rxquantr258_done
+ (rx246_rep) = rx246_cur."!mark_commit"($I10)
+ rxquantr258_done:
+ # rx subrule "ws" subtype=method negate=
+ rx246_cur."!cursor_pos"(rx246_pos)
+ $P10 = rx246_cur."ws"()
+ unless $P10, rx246_fail
+ rx246_pos = $P10."pos"()
+.annotate 'line', 157
+ # rx pass
+ rx246_cur."!cursor_pass"(rx246_pos, "statement_control:sym<if>")
+ rx246_cur."!cursor_debug"("PASS ", "statement_control:sym<if>", " at pos=", rx246_pos)
+ .return (rx246_cur)
+ rx246_restart:
+.annotate 'line', 4
+ rx246_cur."!cursor_debug"("NEXT ", "statement_control:sym<if>")
+ rx246_fail:
+ (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0)
+ lt rx246_pos, -1, rx246_done
+ eq rx246_pos, -1, rx246_fail
+ jump $I10
+ rx246_done:
+ rx246_cur."!cursor_fail"()
+ rx246_cur."!cursor_debug"("FAIL ", "statement_control:sym<if>")
+ .return (rx246_cur)
+ .return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator" :subid("55_1275811487.95429") :method
-.annotate 'line', 148
- $P249 = self."!PREFIX__!protoregex"("terminator")
- .return ($P249)
+.sub "!PREFIX__statement_control:sym<if>" :subid("63_1280467477.44751") :method
+.annotate 'line', 4
+ new $P248, "ResizablePMCArray"
+ push $P248, "if"
+ .return ($P248)
.end
.namespace ["NQP";"Grammar"]
-.sub "terminator:sym<;>" :subid("56_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_control:sym<unless>" :subid("64_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx251_tgt
- .local int rx251_pos
- .local int rx251_off
- .local int rx251_eos
- .local int rx251_rep
- .local pmc rx251_cur
- (rx251_cur, rx251_pos, rx251_tgt) = self."!cursor_start"()
- rx251_cur."!cursor_debug"("START ", "terminator:sym<;>")
- .lex unicode:"$\x{a2}", rx251_cur
- .local pmc match
- .lex "$/", match
- length rx251_eos, rx251_tgt
- gt rx251_pos, rx251_eos, rx251_done
- set rx251_off, 0
- lt rx251_pos, 2, rx251_start
- sub rx251_off, rx251_pos, 1
- substr rx251_tgt, rx251_tgt, rx251_off
- rx251_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan254_done
- goto rxscan254_scan
- rxscan254_loop:
- ($P10) = rx251_cur."from"()
- inc $P10
- set rx251_pos, $P10
- ge rx251_pos, rx251_eos, rxscan254_done
- rxscan254_scan:
- set_addr $I10, rxscan254_loop
- rx251_cur."!mark_push"(0, rx251_pos, $I10)
- rxscan254_done:
-.annotate 'line', 150
- # rx enumcharlist negate=0 zerowidth
- ge rx251_pos, rx251_eos, rx251_fail
- sub $I10, rx251_pos, rx251_off
- substr $S10, rx251_tgt, $I10, 1
- index $I11, ";", $S10
- lt $I11, 0, rx251_fail
- # rx pass
- rx251_cur."!cursor_pass"(rx251_pos, "terminator:sym<;>")
- rx251_cur."!cursor_debug"("PASS ", "terminator:sym<;>", " at pos=", rx251_pos)
- .return (rx251_cur)
- rx251_fail:
-.annotate 'line', 4
- (rx251_rep, rx251_pos, $I10, $P10) = rx251_cur."!mark_fail"(0)
- lt rx251_pos, -1, rx251_done
- eq rx251_pos, -1, rx251_fail
- jump $I10
- rx251_done:
- rx251_cur."!cursor_fail"()
- rx251_cur."!cursor_debug"("FAIL ", "terminator:sym<;>")
- .return (rx251_cur)
- .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<;>" :subid("57_1275811487.95429") :method
-.annotate 'line', 4
- new $P253, "ResizablePMCArray"
- push $P253, ";"
- .return ($P253)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "terminator:sym<}>" :subid("58_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx256_tgt
- .local int rx256_pos
- .local int rx256_off
- .local int rx256_eos
- .local int rx256_rep
- .local pmc rx256_cur
- (rx256_cur, rx256_pos, rx256_tgt) = self."!cursor_start"()
- rx256_cur."!cursor_debug"("START ", "terminator:sym<}>")
- .lex unicode:"$\x{a2}", rx256_cur
- .local pmc match
- .lex "$/", match
- length rx256_eos, rx256_tgt
- gt rx256_pos, rx256_eos, rx256_done
- set rx256_off, 0
- lt rx256_pos, 2, rx256_start
- sub rx256_off, rx256_pos, 1
- substr rx256_tgt, rx256_tgt, rx256_off
- rx256_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan259_done
- goto rxscan259_scan
- rxscan259_loop:
- ($P10) = rx256_cur."from"()
- inc $P10
- set rx256_pos, $P10
- ge rx256_pos, rx256_eos, rxscan259_done
- rxscan259_scan:
- set_addr $I10, rxscan259_loop
- rx256_cur."!mark_push"(0, rx256_pos, $I10)
- rxscan259_done:
-.annotate 'line', 151
- # rx enumcharlist negate=0 zerowidth
- ge rx256_pos, rx256_eos, rx256_fail
- sub $I10, rx256_pos, rx256_off
- substr $S10, rx256_tgt, $I10, 1
- index $I11, "}", $S10
- lt $I11, 0, rx256_fail
- # rx pass
- rx256_cur."!cursor_pass"(rx256_pos, "terminator:sym<}>")
- rx256_cur."!cursor_debug"("PASS ", "terminator:sym<}>", " at pos=", rx256_pos)
- .return (rx256_cur)
- rx256_fail:
-.annotate 'line', 4
- (rx256_rep, rx256_pos, $I10, $P10) = rx256_cur."!mark_fail"(0)
- lt rx256_pos, -1, rx256_done
- eq rx256_pos, -1, rx256_fail
- jump $I10
- rx256_done:
- rx256_cur."!cursor_fail"()
- rx256_cur."!cursor_debug"("FAIL ", "terminator:sym<}>")
- .return (rx256_cur)
- .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<}>" :subid("59_1275811487.95429") :method
-.annotate 'line', 4
- new $P258, "ResizablePMCArray"
- push $P258, "}"
- .return ($P258)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "statement_control" :subid("60_1275811487.95429") :method
-.annotate 'line', 155
- $P261 = self."!protoregex"("statement_control")
- .return ($P261)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control" :subid("61_1275811487.95429") :method
-.annotate 'line', 155
- $P263 = self."!PREFIX__!protoregex"("statement_control")
- .return ($P263)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<if>" :subid("62_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx265_tgt
- .local int rx265_pos
- .local int rx265_off
- .local int rx265_eos
- .local int rx265_rep
- .local pmc rx265_cur
- (rx265_cur, rx265_pos, rx265_tgt) = self."!cursor_start"()
- rx265_cur."!cursor_debug"("START ", "statement_control:sym<if>")
- rx265_cur."!cursor_caparray"("else", "xblock")
- .lex unicode:"$\x{a2}", rx265_cur
- .local pmc match
- .lex "$/", match
- length rx265_eos, rx265_tgt
- gt rx265_pos, rx265_eos, rx265_done
- set rx265_off, 0
- lt rx265_pos, 2, rx265_start
- sub rx265_off, rx265_pos, 1
- substr rx265_tgt, rx265_tgt, rx265_off
- rx265_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan268_done
- goto rxscan268_scan
- rxscan268_loop:
- ($P10) = rx265_cur."from"()
- inc $P10
- set rx265_pos, $P10
- ge rx265_pos, rx265_eos, rxscan268_done
- rxscan268_scan:
- set_addr $I10, rxscan268_loop
- rx265_cur."!mark_push"(0, rx265_pos, $I10)
- rxscan268_done:
-.annotate 'line', 158
- # rx subcapture "sym"
- set_addr $I10, rxcap_269_fail
- rx265_cur."!mark_push"(0, rx265_pos, $I10)
- # rx literal "if"
- add $I11, rx265_pos, 2
- gt $I11, rx265_eos, rx265_fail
- sub $I11, rx265_pos, rx265_off
- substr $S10, rx265_tgt, $I11, 2
- ne $S10, "if", rx265_fail
- add rx265_pos, 2
- set_addr $I10, rxcap_269_fail
- ($I12, $I11) = rx265_cur."!mark_peek"($I10)
- rx265_cur."!cursor_pos"($I11)
- ($P10) = rx265_cur."!cursor_start"()
- $P10."!cursor_pass"(rx265_pos, "")
- rx265_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_269_done
- rxcap_269_fail:
- goto rx265_fail
- rxcap_269_done:
- # rx charclass s
- ge rx265_pos, rx265_eos, rx265_fail
- sub $I10, rx265_pos, rx265_off
- is_cclass $I11, 32, rx265_tgt, $I10
- unless $I11, rx265_fail
- inc rx265_pos
- # rx subrule "ws" subtype=method negate=
- rx265_cur."!cursor_pos"(rx265_pos)
- $P10 = rx265_cur."ws"()
- unless $P10, rx265_fail
- rx265_pos = $P10."pos"()
-.annotate 'line', 159
- # rx subrule "xblock" subtype=capture negate=
- rx265_cur."!cursor_pos"(rx265_pos)
- $P10 = rx265_cur."xblock"()
- unless $P10, rx265_fail
- rx265_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("xblock")
- rx265_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx265_cur."!cursor_pos"(rx265_pos)
- $P10 = rx265_cur."ws"()
- unless $P10, rx265_fail
- rx265_pos = $P10."pos"()
-.annotate 'line', 160
- # rx rxquantr272 ** 0..*
- set_addr $I276, rxquantr272_done
- rx265_cur."!mark_push"(0, rx265_pos, $I276)
- rxquantr272_loop:
- # rx subrule "ws" subtype=method negate=
- rx265_cur."!cursor_pos"(rx265_pos)
- $P10 = rx265_cur."ws"()
- unless $P10, rx265_fail
- rx265_pos = $P10."pos"()
- # rx literal "elsif"
- add $I11, rx265_pos, 5
- gt $I11, rx265_eos, rx265_fail
- sub $I11, rx265_pos, rx265_off
- substr $S10, rx265_tgt, $I11, 5
- ne $S10, "elsif", rx265_fail
- add rx265_pos, 5
- # rx charclass s
- ge rx265_pos, rx265_eos, rx265_fail
- sub $I10, rx265_pos, rx265_off
- is_cclass $I11, 32, rx265_tgt, $I10
- unless $I11, rx265_fail
- inc rx265_pos
- # rx subrule "ws" subtype=method negate=
- rx265_cur."!cursor_pos"(rx265_pos)
- $P10 = rx265_cur."ws"()
- unless $P10, rx265_fail
- rx265_pos = $P10."pos"()
- # rx subrule "xblock" subtype=capture negate=
- rx265_cur."!cursor_pos"(rx265_pos)
- $P10 = rx265_cur."xblock"()
- unless $P10, rx265_fail
- rx265_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("xblock")
- rx265_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx265_cur."!cursor_pos"(rx265_pos)
- $P10 = rx265_cur."ws"()
- unless $P10, rx265_fail
- rx265_pos = $P10."pos"()
- (rx265_rep) = rx265_cur."!mark_commit"($I276)
- rx265_cur."!mark_push"(rx265_rep, rx265_pos, $I276)
- goto rxquantr272_loop
- rxquantr272_done:
- # rx subrule "ws" subtype=method negate=
- rx265_cur."!cursor_pos"(rx265_pos)
- $P10 = rx265_cur."ws"()
- unless $P10, rx265_fail
- rx265_pos = $P10."pos"()
-.annotate 'line', 161
- # rx rxquantr278 ** 0..1
- set_addr $I282, rxquantr278_done
- rx265_cur."!mark_push"(0, rx265_pos, $I282)
- rxquantr278_loop:
- # rx subrule "ws" subtype=method negate=
- rx265_cur."!cursor_pos"(rx265_pos)
- $P10 = rx265_cur."ws"()
- unless $P10, rx265_fail
- rx265_pos = $P10."pos"()
- # rx literal "else"
- add $I11, rx265_pos, 4
- gt $I11, rx265_eos, rx265_fail
- sub $I11, rx265_pos, rx265_off
- substr $S10, rx265_tgt, $I11, 4
- ne $S10, "else", rx265_fail
- add rx265_pos, 4
- # rx charclass s
- ge rx265_pos, rx265_eos, rx265_fail
- sub $I10, rx265_pos, rx265_off
- is_cclass $I11, 32, rx265_tgt, $I10
- unless $I11, rx265_fail
- inc rx265_pos
- # rx subrule "ws" subtype=method negate=
- rx265_cur."!cursor_pos"(rx265_pos)
- $P10 = rx265_cur."ws"()
- unless $P10, rx265_fail
- rx265_pos = $P10."pos"()
- # rx subrule "pblock" subtype=capture negate=
- rx265_cur."!cursor_pos"(rx265_pos)
- $P10 = rx265_cur."pblock"()
- unless $P10, rx265_fail
- rx265_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("else")
- rx265_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx265_cur."!cursor_pos"(rx265_pos)
- $P10 = rx265_cur."ws"()
- unless $P10, rx265_fail
- rx265_pos = $P10."pos"()
- (rx265_rep) = rx265_cur."!mark_commit"($I282)
- rxquantr278_done:
- # rx subrule "ws" subtype=method negate=
- rx265_cur."!cursor_pos"(rx265_pos)
- $P10 = rx265_cur."ws"()
- unless $P10, rx265_fail
- rx265_pos = $P10."pos"()
-.annotate 'line', 157
- # rx pass
- rx265_cur."!cursor_pass"(rx265_pos, "statement_control:sym<if>")
- rx265_cur."!cursor_debug"("PASS ", "statement_control:sym<if>", " at pos=", rx265_pos)
- .return (rx265_cur)
- rx265_fail:
-.annotate 'line', 4
- (rx265_rep, rx265_pos, $I10, $P10) = rx265_cur."!mark_fail"(0)
- lt rx265_pos, -1, rx265_done
- eq rx265_pos, -1, rx265_fail
- jump $I10
- rx265_done:
- rx265_cur."!cursor_fail"()
- rx265_cur."!cursor_debug"("FAIL ", "statement_control:sym<if>")
- .return (rx265_cur)
- .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<if>" :subid("63_1275811487.95429") :method
-.annotate 'line', 4
- new $P267, "ResizablePMCArray"
- push $P267, "if"
- .return ($P267)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<unless>" :subid("64_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .const 'Sub' $P295 = "66_1275811487.95429"
- capture_lex $P295
- .local string rx285_tgt
- .local int rx285_pos
- .local int rx285_off
- .local int rx285_eos
- .local int rx285_rep
- .local pmc rx285_cur
- (rx285_cur, rx285_pos, rx285_tgt) = self."!cursor_start"()
- rx285_cur."!cursor_debug"("START ", "statement_control:sym<unless>")
- .lex unicode:"$\x{a2}", rx285_cur
+ .const 'Sub' $P274 = "66_1280467477.44751"
+ capture_lex $P274
+ .local string rx264_tgt
+ .local int rx264_pos
+ .local int rx264_off
+ .local int rx264_eos
+ .local int rx264_rep
+ .local pmc rx264_cur
+ (rx264_cur, rx264_pos, rx264_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx264_cur
.local pmc match
.lex "$/", match
- length rx285_eos, rx285_tgt
- gt rx285_pos, rx285_eos, rx285_done
- set rx285_off, 0
- lt rx285_pos, 2, rx285_start
- sub rx285_off, rx285_pos, 1
- substr rx285_tgt, rx285_tgt, rx285_off
- rx285_start:
+ length rx264_eos, rx264_tgt
+ gt rx264_pos, rx264_eos, rx264_done
+ set rx264_off, 0
+ lt rx264_pos, 2, rx264_start
+ sub rx264_off, rx264_pos, 1
+ substr rx264_tgt, rx264_tgt, rx264_off
+ rx264_start:
+ eq $I10, 1, rx264_restart
+ rx264_cur."!cursor_debug"("START ", "statement_control:sym<unless>")
$I10 = self.'from'()
- ne $I10, -1, rxscan288_done
- goto rxscan288_scan
- rxscan288_loop:
- ($P10) = rx285_cur."from"()
+ ne $I10, -1, rxscan267_done
+ goto rxscan267_scan
+ rxscan267_loop:
+ ($P10) = rx264_cur."from"()
inc $P10
- set rx285_pos, $P10
- ge rx285_pos, rx285_eos, rxscan288_done
- rxscan288_scan:
- set_addr $I10, rxscan288_loop
- rx285_cur."!mark_push"(0, rx285_pos, $I10)
- rxscan288_done:
+ set rx264_pos, $P10
+ ge rx264_pos, rx264_eos, rxscan267_done
+ rxscan267_scan:
+ set_addr $I10, rxscan267_loop
+ rx264_cur."!mark_push"(0, rx264_pos, $I10)
+ rxscan267_done:
.annotate 'line', 165
# rx subcapture "sym"
- set_addr $I10, rxcap_289_fail
- rx285_cur."!mark_push"(0, rx285_pos, $I10)
+ set_addr $I10, rxcap_268_fail
+ rx264_cur."!mark_push"(0, rx264_pos, $I10)
# rx literal "unless"
- add $I11, rx285_pos, 6
- gt $I11, rx285_eos, rx285_fail
- sub $I11, rx285_pos, rx285_off
- substr $S10, rx285_tgt, $I11, 6
- ne $S10, "unless", rx285_fail
- add rx285_pos, 6
- set_addr $I10, rxcap_289_fail
- ($I12, $I11) = rx285_cur."!mark_peek"($I10)
- rx285_cur."!cursor_pos"($I11)
- ($P10) = rx285_cur."!cursor_start"()
- $P10."!cursor_pass"(rx285_pos, "")
- rx285_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx264_pos, 6
+ gt $I11, rx264_eos, rx264_fail
+ sub $I11, rx264_pos, rx264_off
+ substr $S10, rx264_tgt, $I11, 6
+ ne $S10, "unless", rx264_fail
+ add rx264_pos, 6
+ set_addr $I10, rxcap_268_fail
+ ($I12, $I11) = rx264_cur."!mark_peek"($I10)
+ rx264_cur."!cursor_pos"($I11)
+ ($P10) = rx264_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx264_pos, "")
+ rx264_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_289_done
- rxcap_289_fail:
- goto rx285_fail
- rxcap_289_done:
+ goto rxcap_268_done
+ rxcap_268_fail:
+ goto rx264_fail
+ rxcap_268_done:
# rx charclass s
- ge rx285_pos, rx285_eos, rx285_fail
- sub $I10, rx285_pos, rx285_off
- is_cclass $I11, 32, rx285_tgt, $I10
- unless $I11, rx285_fail
- inc rx285_pos
- # rx subrule "ws" subtype=method negate=
- rx285_cur."!cursor_pos"(rx285_pos)
- $P10 = rx285_cur."ws"()
- unless $P10, rx285_fail
- rx285_pos = $P10."pos"()
+ ge rx264_pos, rx264_eos, rx264_fail
+ sub $I10, rx264_pos, rx264_off
+ is_cclass $I11, 32, rx264_tgt, $I10
+ unless $I11, rx264_fail
+ inc rx264_pos
+ # rx subrule "ws" subtype=method negate=
+ rx264_cur."!cursor_pos"(rx264_pos)
+ $P10 = rx264_cur."ws"()
+ unless $P10, rx264_fail
+ rx264_pos = $P10."pos"()
.annotate 'line', 166
# rx subrule "xblock" subtype=capture negate=
- rx285_cur."!cursor_pos"(rx285_pos)
- $P10 = rx285_cur."xblock"()
- unless $P10, rx285_fail
- rx285_cur."!mark_push"(0, -1, 0, $P10)
+ rx264_cur."!cursor_pos"(rx264_pos)
+ $P10 = rx264_cur."xblock"()
+ unless $P10, rx264_fail
+ rx264_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("xblock")
- rx285_pos = $P10."pos"()
+ rx264_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx285_cur."!cursor_pos"(rx285_pos)
- $P10 = rx285_cur."ws"()
- unless $P10, rx285_fail
- rx285_pos = $P10."pos"()
- alt292_0:
+ rx264_cur."!cursor_pos"(rx264_pos)
+ $P10 = rx264_cur."ws"()
+ unless $P10, rx264_fail
+ rx264_pos = $P10."pos"()
+ alt271_0:
.annotate 'line', 167
- set_addr $I10, alt292_1
- rx285_cur."!mark_push"(0, rx285_pos, $I10)
+ set_addr $I10, alt271_1
+ rx264_cur."!mark_push"(0, rx264_pos, $I10)
# rx subrule "ws" subtype=method negate=
- rx285_cur."!cursor_pos"(rx285_pos)
- $P10 = rx285_cur."ws"()
- unless $P10, rx285_fail
- rx285_pos = $P10."pos"()
+ rx264_cur."!cursor_pos"(rx264_pos)
+ $P10 = rx264_cur."ws"()
+ unless $P10, rx264_fail
+ rx264_pos = $P10."pos"()
# rx subrule "before" subtype=zerowidth negate=1
- rx285_cur."!cursor_pos"(rx285_pos)
- .const 'Sub' $P295 = "66_1275811487.95429"
- capture_lex $P295
- $P10 = rx285_cur."before"($P295)
- if $P10, rx285_fail
- # rx subrule "ws" subtype=method negate=
- rx285_cur."!cursor_pos"(rx285_pos)
- $P10 = rx285_cur."ws"()
- unless $P10, rx285_fail
- rx285_pos = $P10."pos"()
- goto alt292_end
- alt292_1:
- # rx subrule "ws" subtype=method negate=
- rx285_cur."!cursor_pos"(rx285_pos)
- $P10 = rx285_cur."ws"()
- unless $P10, rx285_fail
- rx285_pos = $P10."pos"()
+ rx264_cur."!cursor_pos"(rx264_pos)
+ .const 'Sub' $P274 = "66_1280467477.44751"
+ capture_lex $P274
+ $P10 = rx264_cur."before"($P274)
+ if $P10, rx264_fail
+ # rx subrule "ws" subtype=method negate=
+ rx264_cur."!cursor_pos"(rx264_pos)
+ $P10 = rx264_cur."ws"()
+ unless $P10, rx264_fail
+ rx264_pos = $P10."pos"()
+ goto alt271_end
+ alt271_1:
+ # rx subrule "ws" subtype=method negate=
+ rx264_cur."!cursor_pos"(rx264_pos)
+ $P10 = rx264_cur."ws"()
+ unless $P10, rx264_fail
+ rx264_pos = $P10."pos"()
# rx subrule "panic" subtype=method negate=
- rx285_cur."!cursor_pos"(rx285_pos)
- $P10 = rx285_cur."panic"("unless does not take \"else\", please rewrite using \"if\"")
- unless $P10, rx285_fail
- rx285_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx285_cur."!cursor_pos"(rx285_pos)
- $P10 = rx285_cur."ws"()
- unless $P10, rx285_fail
- rx285_pos = $P10."pos"()
- alt292_end:
- # rx subrule "ws" subtype=method negate=
- rx285_cur."!cursor_pos"(rx285_pos)
- $P10 = rx285_cur."ws"()
- unless $P10, rx285_fail
- rx285_pos = $P10."pos"()
+ rx264_cur."!cursor_pos"(rx264_pos)
+ $P10 = rx264_cur."panic"("unless does not take \"else\", please rewrite using \"if\"")
+ unless $P10, rx264_fail
+ rx264_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx264_cur."!cursor_pos"(rx264_pos)
+ $P10 = rx264_cur."ws"()
+ unless $P10, rx264_fail
+ rx264_pos = $P10."pos"()
+ alt271_end:
+ # rx subrule "ws" subtype=method negate=
+ rx264_cur."!cursor_pos"(rx264_pos)
+ $P10 = rx264_cur."ws"()
+ unless $P10, rx264_fail
+ rx264_pos = $P10."pos"()
.annotate 'line', 164
# rx pass
- rx285_cur."!cursor_pass"(rx285_pos, "statement_control:sym<unless>")
- rx285_cur."!cursor_debug"("PASS ", "statement_control:sym<unless>", " at pos=", rx285_pos)
- .return (rx285_cur)
- rx285_fail:
+ rx264_cur."!cursor_pass"(rx264_pos, "statement_control:sym<unless>")
+ rx264_cur."!cursor_debug"("PASS ", "statement_control:sym<unless>", " at pos=", rx264_pos)
+ .return (rx264_cur)
+ rx264_restart:
.annotate 'line', 4
- (rx285_rep, rx285_pos, $I10, $P10) = rx285_cur."!mark_fail"(0)
- lt rx285_pos, -1, rx285_done
- eq rx285_pos, -1, rx285_fail
+ rx264_cur."!cursor_debug"("NEXT ", "statement_control:sym<unless>")
+ rx264_fail:
+ (rx264_rep, rx264_pos, $I10, $P10) = rx264_cur."!mark_fail"(0)
+ lt rx264_pos, -1, rx264_done
+ eq rx264_pos, -1, rx264_fail
jump $I10
- rx285_done:
- rx285_cur."!cursor_fail"()
- rx285_cur."!cursor_debug"("FAIL ", "statement_control:sym<unless>")
- .return (rx285_cur)
+ rx264_done:
+ rx264_cur."!cursor_fail"()
+ rx264_cur."!cursor_debug"("FAIL ", "statement_control:sym<unless>")
+ .return (rx264_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<unless>" :subid("65_1275811487.95429") :method
+.sub "!PREFIX__statement_control:sym<unless>" :subid("65_1280467477.44751") :method
.annotate 'line', 4
- new $P287, "ResizablePMCArray"
- push $P287, "unless"
- .return ($P287)
+ new $P266, "ResizablePMCArray"
+ push $P266, "unless"
+ .return ($P266)
.end
.namespace ["NQP";"Grammar"]
-.sub "_block294" :anon :subid("66_1275811487.95429") :method :outer("64_1275811487.95429")
+.sub "_block273" :anon :subid("66_1280467477.44751") :method :outer("64_1280467477.44751")
.annotate 'line', 167
- .local string rx296_tgt
- .local int rx296_pos
- .local int rx296_off
- .local int rx296_eos
- .local int rx296_rep
- .local pmc rx296_cur
- (rx296_cur, rx296_pos, rx296_tgt) = self."!cursor_start"()
- rx296_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx296_cur
- .local pmc match
- .lex "$/", match
- length rx296_eos, rx296_tgt
- gt rx296_pos, rx296_eos, rx296_done
- set rx296_off, 0
- lt rx296_pos, 2, rx296_start
- sub rx296_off, rx296_pos, 1
- substr rx296_tgt, rx296_tgt, rx296_off
- rx296_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan297_done
- goto rxscan297_scan
- rxscan297_loop:
- ($P10) = rx296_cur."from"()
- inc $P10
- set rx296_pos, $P10
- ge rx296_pos, rx296_eos, rxscan297_done
- rxscan297_scan:
- set_addr $I10, rxscan297_loop
- rx296_cur."!mark_push"(0, rx296_pos, $I10)
- rxscan297_done:
+ .local string rx275_tgt
+ .local int rx275_pos
+ .local int rx275_off
+ .local int rx275_eos
+ .local int rx275_rep
+ .local pmc rx275_cur
+ (rx275_cur, rx275_pos, rx275_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx275_cur
+ .local pmc match
+ .lex "$/", match
+ length rx275_eos, rx275_tgt
+ gt rx275_pos, rx275_eos, rx275_done
+ set rx275_off, 0
+ lt rx275_pos, 2, rx275_start
+ sub rx275_off, rx275_pos, 1
+ substr rx275_tgt, rx275_tgt, rx275_off
+ rx275_start:
+ eq $I10, 1, rx275_restart
+ rx275_cur."!cursor_debug"("START ", "")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan276_done
+ goto rxscan276_scan
+ rxscan276_loop:
+ ($P10) = rx275_cur."from"()
+ inc $P10
+ set rx275_pos, $P10
+ ge rx275_pos, rx275_eos, rxscan276_done
+ rxscan276_scan:
+ set_addr $I10, rxscan276_loop
+ rx275_cur."!mark_push"(0, rx275_pos, $I10)
+ rxscan276_done:
# rx literal "else"
- add $I11, rx296_pos, 4
- gt $I11, rx296_eos, rx296_fail
- sub $I11, rx296_pos, rx296_off
- substr $S10, rx296_tgt, $I11, 4
- ne $S10, "else", rx296_fail
- add rx296_pos, 4
- # rx pass
- rx296_cur."!cursor_pass"(rx296_pos, "")
- rx296_cur."!cursor_debug"("PASS ", "", " at pos=", rx296_pos)
- .return (rx296_cur)
- rx296_fail:
- (rx296_rep, rx296_pos, $I10, $P10) = rx296_cur."!mark_fail"(0)
- lt rx296_pos, -1, rx296_done
- eq rx296_pos, -1, rx296_fail
- jump $I10
- rx296_done:
- rx296_cur."!cursor_fail"()
- rx296_cur."!cursor_debug"("FAIL ", "")
- .return (rx296_cur)
+ add $I11, rx275_pos, 4
+ gt $I11, rx275_eos, rx275_fail
+ sub $I11, rx275_pos, rx275_off
+ substr $S10, rx275_tgt, $I11, 4
+ ne $S10, "else", rx275_fail
+ add rx275_pos, 4
+ # rx pass
+ rx275_cur."!cursor_pass"(rx275_pos, "")
+ rx275_cur."!cursor_debug"("PASS ", "", " at pos=", rx275_pos)
+ .return (rx275_cur)
+ rx275_restart:
+ rx275_cur."!cursor_debug"("NEXT ", "")
+ rx275_fail:
+ (rx275_rep, rx275_pos, $I10, $P10) = rx275_cur."!mark_fail"(0)
+ lt rx275_pos, -1, rx275_done
+ eq rx275_pos, -1, rx275_fail
+ jump $I10
+ rx275_done:
+ rx275_cur."!cursor_fail"()
+ rx275_cur."!cursor_debug"("FAIL ", "")
+ .return (rx275_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<while>" :subid("67_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx303_tgt
- .local int rx303_pos
- .local int rx303_off
- .local int rx303_eos
- .local int rx303_rep
- .local pmc rx303_cur
- (rx303_cur, rx303_pos, rx303_tgt) = self."!cursor_start"()
- rx303_cur."!cursor_debug"("START ", "statement_control:sym<while>")
- .lex unicode:"$\x{a2}", rx303_cur
- .local pmc match
- .lex "$/", match
- length rx303_eos, rx303_tgt
- gt rx303_pos, rx303_eos, rx303_done
- set rx303_off, 0
- lt rx303_pos, 2, rx303_start
- sub rx303_off, rx303_pos, 1
- substr rx303_tgt, rx303_tgt, rx303_off
- rx303_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan306_done
- goto rxscan306_scan
- rxscan306_loop:
- ($P10) = rx303_cur."from"()
- inc $P10
- set rx303_pos, $P10
- ge rx303_pos, rx303_eos, rxscan306_done
- rxscan306_scan:
- set_addr $I10, rxscan306_loop
- rx303_cur."!mark_push"(0, rx303_pos, $I10)
- rxscan306_done:
+.sub "statement_control:sym<while>" :subid("67_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx282_tgt
+ .local int rx282_pos
+ .local int rx282_off
+ .local int rx282_eos
+ .local int rx282_rep
+ .local pmc rx282_cur
+ (rx282_cur, rx282_pos, rx282_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx282_cur
+ .local pmc match
+ .lex "$/", match
+ length rx282_eos, rx282_tgt
+ gt rx282_pos, rx282_eos, rx282_done
+ set rx282_off, 0
+ lt rx282_pos, 2, rx282_start
+ sub rx282_off, rx282_pos, 1
+ substr rx282_tgt, rx282_tgt, rx282_off
+ rx282_start:
+ eq $I10, 1, rx282_restart
+ rx282_cur."!cursor_debug"("START ", "statement_control:sym<while>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan285_done
+ goto rxscan285_scan
+ rxscan285_loop:
+ ($P10) = rx282_cur."from"()
+ inc $P10
+ set rx282_pos, $P10
+ ge rx282_pos, rx282_eos, rxscan285_done
+ rxscan285_scan:
+ set_addr $I10, rxscan285_loop
+ rx282_cur."!mark_push"(0, rx282_pos, $I10)
+ rxscan285_done:
.annotate 'line', 171
# rx subcapture "sym"
- set_addr $I10, rxcap_308_fail
- rx303_cur."!mark_push"(0, rx303_pos, $I10)
- alt307_0:
- set_addr $I10, alt307_1
- rx303_cur."!mark_push"(0, rx303_pos, $I10)
+ set_addr $I10, rxcap_287_fail
+ rx282_cur."!mark_push"(0, rx282_pos, $I10)
+ alt286_0:
+ set_addr $I10, alt286_1
+ rx282_cur."!mark_push"(0, rx282_pos, $I10)
# rx literal "while"
- add $I11, rx303_pos, 5
- gt $I11, rx303_eos, rx303_fail
- sub $I11, rx303_pos, rx303_off
- substr $S10, rx303_tgt, $I11, 5
- ne $S10, "while", rx303_fail
- add rx303_pos, 5
- goto alt307_end
- alt307_1:
+ add $I11, rx282_pos, 5
+ gt $I11, rx282_eos, rx282_fail
+ sub $I11, rx282_pos, rx282_off
+ substr $S10, rx282_tgt, $I11, 5
+ ne $S10, "while", rx282_fail
+ add rx282_pos, 5
+ goto alt286_end
+ alt286_1:
# rx literal "until"
- add $I11, rx303_pos, 5
- gt $I11, rx303_eos, rx303_fail
- sub $I11, rx303_pos, rx303_off
- substr $S10, rx303_tgt, $I11, 5
- ne $S10, "until", rx303_fail
- add rx303_pos, 5
- alt307_end:
- set_addr $I10, rxcap_308_fail
- ($I12, $I11) = rx303_cur."!mark_peek"($I10)
- rx303_cur."!cursor_pos"($I11)
- ($P10) = rx303_cur."!cursor_start"()
- $P10."!cursor_pass"(rx303_pos, "")
- rx303_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx282_pos, 5
+ gt $I11, rx282_eos, rx282_fail
+ sub $I11, rx282_pos, rx282_off
+ substr $S10, rx282_tgt, $I11, 5
+ ne $S10, "until", rx282_fail
+ add rx282_pos, 5
+ alt286_end:
+ set_addr $I10, rxcap_287_fail
+ ($I12, $I11) = rx282_cur."!mark_peek"($I10)
+ rx282_cur."!cursor_pos"($I11)
+ ($P10) = rx282_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx282_pos, "")
+ rx282_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_308_done
- rxcap_308_fail:
- goto rx303_fail
- rxcap_308_done:
+ goto rxcap_287_done
+ rxcap_287_fail:
+ goto rx282_fail
+ rxcap_287_done:
# rx charclass s
- ge rx303_pos, rx303_eos, rx303_fail
- sub $I10, rx303_pos, rx303_off
- is_cclass $I11, 32, rx303_tgt, $I10
- unless $I11, rx303_fail
- inc rx303_pos
- # rx subrule "ws" subtype=method negate=
- rx303_cur."!cursor_pos"(rx303_pos)
- $P10 = rx303_cur."ws"()
- unless $P10, rx303_fail
- rx303_pos = $P10."pos"()
+ ge rx282_pos, rx282_eos, rx282_fail
+ sub $I10, rx282_pos, rx282_off
+ is_cclass $I11, 32, rx282_tgt, $I10
+ unless $I11, rx282_fail
+ inc rx282_pos
+ # rx subrule "ws" subtype=method negate=
+ rx282_cur."!cursor_pos"(rx282_pos)
+ $P10 = rx282_cur."ws"()
+ unless $P10, rx282_fail
+ rx282_pos = $P10."pos"()
.annotate 'line', 172
# rx subrule "xblock" subtype=capture negate=
- rx303_cur."!cursor_pos"(rx303_pos)
- $P10 = rx303_cur."xblock"()
- unless $P10, rx303_fail
- rx303_cur."!mark_push"(0, -1, 0, $P10)
+ rx282_cur."!cursor_pos"(rx282_pos)
+ $P10 = rx282_cur."xblock"()
+ unless $P10, rx282_fail
+ rx282_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("xblock")
- rx303_pos = $P10."pos"()
+ rx282_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx303_cur."!cursor_pos"(rx303_pos)
- $P10 = rx303_cur."ws"()
- unless $P10, rx303_fail
- rx303_pos = $P10."pos"()
+ rx282_cur."!cursor_pos"(rx282_pos)
+ $P10 = rx282_cur."ws"()
+ unless $P10, rx282_fail
+ rx282_pos = $P10."pos"()
.annotate 'line', 170
# rx pass
- rx303_cur."!cursor_pass"(rx303_pos, "statement_control:sym<while>")
- rx303_cur."!cursor_debug"("PASS ", "statement_control:sym<while>", " at pos=", rx303_pos)
- .return (rx303_cur)
- rx303_fail:
+ rx282_cur."!cursor_pass"(rx282_pos, "statement_control:sym<while>")
+ rx282_cur."!cursor_debug"("PASS ", "statement_control:sym<while>", " at pos=", rx282_pos)
+ .return (rx282_cur)
+ rx282_restart:
.annotate 'line', 4
- (rx303_rep, rx303_pos, $I10, $P10) = rx303_cur."!mark_fail"(0)
- lt rx303_pos, -1, rx303_done
- eq rx303_pos, -1, rx303_fail
+ rx282_cur."!cursor_debug"("NEXT ", "statement_control:sym<while>")
+ rx282_fail:
+ (rx282_rep, rx282_pos, $I10, $P10) = rx282_cur."!mark_fail"(0)
+ lt rx282_pos, -1, rx282_done
+ eq rx282_pos, -1, rx282_fail
jump $I10
- rx303_done:
- rx303_cur."!cursor_fail"()
- rx303_cur."!cursor_debug"("FAIL ", "statement_control:sym<while>")
- .return (rx303_cur)
+ rx282_done:
+ rx282_cur."!cursor_fail"()
+ rx282_cur."!cursor_debug"("FAIL ", "statement_control:sym<while>")
+ .return (rx282_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<while>" :subid("68_1275811487.95429") :method
+.sub "!PREFIX__statement_control:sym<while>" :subid("68_1280467477.44751") :method
.annotate 'line', 4
- new $P305, "ResizablePMCArray"
- push $P305, "until"
- push $P305, "while"
- .return ($P305)
+ new $P284, "ResizablePMCArray"
+ push $P284, "until"
+ push $P284, "while"
+ .return ($P284)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<repeat>" :subid("69_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_control:sym<repeat>" :subid("69_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx312_tgt
- .local int rx312_pos
- .local int rx312_off
- .local int rx312_eos
- .local int rx312_rep
- .local pmc rx312_cur
- (rx312_cur, rx312_pos, rx312_tgt) = self."!cursor_start"()
- rx312_cur."!cursor_debug"("START ", "statement_control:sym<repeat>")
- .lex unicode:"$\x{a2}", rx312_cur
+ .local string rx291_tgt
+ .local int rx291_pos
+ .local int rx291_off
+ .local int rx291_eos
+ .local int rx291_rep
+ .local pmc rx291_cur
+ (rx291_cur, rx291_pos, rx291_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx291_cur
.local pmc match
.lex "$/", match
- length rx312_eos, rx312_tgt
- gt rx312_pos, rx312_eos, rx312_done
- set rx312_off, 0
- lt rx312_pos, 2, rx312_start
- sub rx312_off, rx312_pos, 1
- substr rx312_tgt, rx312_tgt, rx312_off
- rx312_start:
+ length rx291_eos, rx291_tgt
+ gt rx291_pos, rx291_eos, rx291_done
+ set rx291_off, 0
+ lt rx291_pos, 2, rx291_start
+ sub rx291_off, rx291_pos, 1
+ substr rx291_tgt, rx291_tgt, rx291_off
+ rx291_start:
+ eq $I10, 1, rx291_restart
+ rx291_cur."!cursor_debug"("START ", "statement_control:sym<repeat>")
$I10 = self.'from'()
- ne $I10, -1, rxscan315_done
- goto rxscan315_scan
- rxscan315_loop:
- ($P10) = rx312_cur."from"()
+ ne $I10, -1, rxscan294_done
+ goto rxscan294_scan
+ rxscan294_loop:
+ ($P10) = rx291_cur."from"()
inc $P10
- set rx312_pos, $P10
- ge rx312_pos, rx312_eos, rxscan315_done
- rxscan315_scan:
- set_addr $I10, rxscan315_loop
- rx312_cur."!mark_push"(0, rx312_pos, $I10)
- rxscan315_done:
+ set rx291_pos, $P10
+ ge rx291_pos, rx291_eos, rxscan294_done
+ rxscan294_scan:
+ set_addr $I10, rxscan294_loop
+ rx291_cur."!mark_push"(0, rx291_pos, $I10)
+ rxscan294_done:
.annotate 'line', 176
# rx subcapture "sym"
- set_addr $I10, rxcap_316_fail
- rx312_cur."!mark_push"(0, rx312_pos, $I10)
+ set_addr $I10, rxcap_295_fail
+ rx291_cur."!mark_push"(0, rx291_pos, $I10)
# rx literal "repeat"
- add $I11, rx312_pos, 6
- gt $I11, rx312_eos, rx312_fail
- sub $I11, rx312_pos, rx312_off
- substr $S10, rx312_tgt, $I11, 6
- ne $S10, "repeat", rx312_fail
- add rx312_pos, 6
- set_addr $I10, rxcap_316_fail
- ($I12, $I11) = rx312_cur."!mark_peek"($I10)
- rx312_cur."!cursor_pos"($I11)
- ($P10) = rx312_cur."!cursor_start"()
- $P10."!cursor_pass"(rx312_pos, "")
- rx312_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx291_pos, 6
+ gt $I11, rx291_eos, rx291_fail
+ sub $I11, rx291_pos, rx291_off
+ substr $S10, rx291_tgt, $I11, 6
+ ne $S10, "repeat", rx291_fail
+ add rx291_pos, 6
+ set_addr $I10, rxcap_295_fail
+ ($I12, $I11) = rx291_cur."!mark_peek"($I10)
+ rx291_cur."!cursor_pos"($I11)
+ ($P10) = rx291_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx291_pos, "")
+ rx291_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_316_done
- rxcap_316_fail:
- goto rx312_fail
- rxcap_316_done:
+ goto rxcap_295_done
+ rxcap_295_fail:
+ goto rx291_fail
+ rxcap_295_done:
# rx charclass s
- ge rx312_pos, rx312_eos, rx312_fail
- sub $I10, rx312_pos, rx312_off
- is_cclass $I11, 32, rx312_tgt, $I10
- unless $I11, rx312_fail
- inc rx312_pos
- # rx subrule "ws" subtype=method negate=
- rx312_cur."!cursor_pos"(rx312_pos)
- $P10 = rx312_cur."ws"()
- unless $P10, rx312_fail
- rx312_pos = $P10."pos"()
- alt318_0:
+ ge rx291_pos, rx291_eos, rx291_fail
+ sub $I10, rx291_pos, rx291_off
+ is_cclass $I11, 32, rx291_tgt, $I10
+ unless $I11, rx291_fail
+ inc rx291_pos
+ # rx subrule "ws" subtype=method negate=
+ rx291_cur."!cursor_pos"(rx291_pos)
+ $P10 = rx291_cur."ws"()
+ unless $P10, rx291_fail
+ rx291_pos = $P10."pos"()
+ alt297_0:
.annotate 'line', 177
- set_addr $I10, alt318_1
- rx312_cur."!mark_push"(0, rx312_pos, $I10)
+ set_addr $I10, alt297_1
+ rx291_cur."!mark_push"(0, rx291_pos, $I10)
.annotate 'line', 178
# rx subrule "ws" subtype=method negate=
- rx312_cur."!cursor_pos"(rx312_pos)
- $P10 = rx312_cur."ws"()
- unless $P10, rx312_fail
- rx312_pos = $P10."pos"()
+ rx291_cur."!cursor_pos"(rx291_pos)
+ $P10 = rx291_cur."ws"()
+ unless $P10, rx291_fail
+ rx291_pos = $P10."pos"()
# rx subcapture "wu"
- set_addr $I10, rxcap_321_fail
- rx312_cur."!mark_push"(0, rx312_pos, $I10)
- alt320_0:
- set_addr $I10, alt320_1
- rx312_cur."!mark_push"(0, rx312_pos, $I10)
+ set_addr $I10, rxcap_300_fail
+ rx291_cur."!mark_push"(0, rx291_pos, $I10)
+ alt299_0:
+ set_addr $I10, alt299_1
+ rx291_cur."!mark_push"(0, rx291_pos, $I10)
# rx literal "while"
- add $I11, rx312_pos, 5
- gt $I11, rx312_eos, rx312_fail
- sub $I11, rx312_pos, rx312_off
- substr $S10, rx312_tgt, $I11, 5
- ne $S10, "while", rx312_fail
- add rx312_pos, 5
- goto alt320_end
- alt320_1:
+ add $I11, rx291_pos, 5
+ gt $I11, rx291_eos, rx291_fail
+ sub $I11, rx291_pos, rx291_off
+ substr $S10, rx291_tgt, $I11, 5
+ ne $S10, "while", rx291_fail
+ add rx291_pos, 5
+ goto alt299_end
+ alt299_1:
# rx literal "until"
- add $I11, rx312_pos, 5
- gt $I11, rx312_eos, rx312_fail
- sub $I11, rx312_pos, rx312_off
- substr $S10, rx312_tgt, $I11, 5
- ne $S10, "until", rx312_fail
- add rx312_pos, 5
- alt320_end:
- set_addr $I10, rxcap_321_fail
- ($I12, $I11) = rx312_cur."!mark_peek"($I10)
- rx312_cur."!cursor_pos"($I11)
- ($P10) = rx312_cur."!cursor_start"()
- $P10."!cursor_pass"(rx312_pos, "")
- rx312_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx291_pos, 5
+ gt $I11, rx291_eos, rx291_fail
+ sub $I11, rx291_pos, rx291_off
+ substr $S10, rx291_tgt, $I11, 5
+ ne $S10, "until", rx291_fail
+ add rx291_pos, 5
+ alt299_end:
+ set_addr $I10, rxcap_300_fail
+ ($I12, $I11) = rx291_cur."!mark_peek"($I10)
+ rx291_cur."!cursor_pos"($I11)
+ ($P10) = rx291_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx291_pos, "")
+ rx291_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("wu")
- goto rxcap_321_done
- rxcap_321_fail:
- goto rx312_fail
- rxcap_321_done:
+ goto rxcap_300_done
+ rxcap_300_fail:
+ goto rx291_fail
+ rxcap_300_done:
# rx charclass s
- ge rx312_pos, rx312_eos, rx312_fail
- sub $I10, rx312_pos, rx312_off
- is_cclass $I11, 32, rx312_tgt, $I10
- unless $I11, rx312_fail
- inc rx312_pos
- # rx subrule "ws" subtype=method negate=
- rx312_cur."!cursor_pos"(rx312_pos)
- $P10 = rx312_cur."ws"()
- unless $P10, rx312_fail
- rx312_pos = $P10."pos"()
+ ge rx291_pos, rx291_eos, rx291_fail
+ sub $I10, rx291_pos, rx291_off
+ is_cclass $I11, 32, rx291_tgt, $I10
+ unless $I11, rx291_fail
+ inc rx291_pos
+ # rx subrule "ws" subtype=method negate=
+ rx291_cur."!cursor_pos"(rx291_pos)
+ $P10 = rx291_cur."ws"()
+ unless $P10, rx291_fail
+ rx291_pos = $P10."pos"()
# rx subrule "xblock" subtype=capture negate=
- rx312_cur."!cursor_pos"(rx312_pos)
- $P10 = rx312_cur."xblock"()
- unless $P10, rx312_fail
- rx312_cur."!mark_push"(0, -1, 0, $P10)
+ rx291_cur."!cursor_pos"(rx291_pos)
+ $P10 = rx291_cur."xblock"()
+ unless $P10, rx291_fail
+ rx291_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("xblock")
- rx312_pos = $P10."pos"()
+ rx291_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx312_cur."!cursor_pos"(rx312_pos)
- $P10 = rx312_cur."ws"()
- unless $P10, rx312_fail
- rx312_pos = $P10."pos"()
- goto alt318_end
- alt318_1:
+ rx291_cur."!cursor_pos"(rx291_pos)
+ $P10 = rx291_cur."ws"()
+ unless $P10, rx291_fail
+ rx291_pos = $P10."pos"()
+ goto alt297_end
+ alt297_1:
.annotate 'line', 179
# rx subrule "ws" subtype=method negate=
- rx312_cur."!cursor_pos"(rx312_pos)
- $P10 = rx312_cur."ws"()
- unless $P10, rx312_fail
- rx312_pos = $P10."pos"()
+ rx291_cur."!cursor_pos"(rx291_pos)
+ $P10 = rx291_cur."ws"()
+ unless $P10, rx291_fail
+ rx291_pos = $P10."pos"()
# rx subrule "pblock" subtype=capture negate=
- rx312_cur."!cursor_pos"(rx312_pos)
- $P10 = rx312_cur."pblock"()
- unless $P10, rx312_fail
- rx312_cur."!mark_push"(0, -1, 0, $P10)
+ rx291_cur."!cursor_pos"(rx291_pos)
+ $P10 = rx291_cur."pblock"()
+ unless $P10, rx291_fail
+ rx291_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("pblock")
- rx312_pos = $P10."pos"()
+ rx291_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx312_cur."!cursor_pos"(rx312_pos)
- $P10 = rx312_cur."ws"()
- unless $P10, rx312_fail
- rx312_pos = $P10."pos"()
+ rx291_cur."!cursor_pos"(rx291_pos)
+ $P10 = rx291_cur."ws"()
+ unless $P10, rx291_fail
+ rx291_pos = $P10."pos"()
# rx subcapture "wu"
- set_addr $I10, rxcap_327_fail
- rx312_cur."!mark_push"(0, rx312_pos, $I10)
- alt326_0:
- set_addr $I10, alt326_1
- rx312_cur."!mark_push"(0, rx312_pos, $I10)
+ set_addr $I10, rxcap_306_fail
+ rx291_cur."!mark_push"(0, rx291_pos, $I10)
+ alt305_0:
+ set_addr $I10, alt305_1
+ rx291_cur."!mark_push"(0, rx291_pos, $I10)
# rx literal "while"
- add $I11, rx312_pos, 5
- gt $I11, rx312_eos, rx312_fail
- sub $I11, rx312_pos, rx312_off
- substr $S10, rx312_tgt, $I11, 5
- ne $S10, "while", rx312_fail
- add rx312_pos, 5
- goto alt326_end
- alt326_1:
+ add $I11, rx291_pos, 5
+ gt $I11, rx291_eos, rx291_fail
+ sub $I11, rx291_pos, rx291_off
+ substr $S10, rx291_tgt, $I11, 5
+ ne $S10, "while", rx291_fail
+ add rx291_pos, 5
+ goto alt305_end
+ alt305_1:
# rx literal "until"
- add $I11, rx312_pos, 5
- gt $I11, rx312_eos, rx312_fail
- sub $I11, rx312_pos, rx312_off
- substr $S10, rx312_tgt, $I11, 5
- ne $S10, "until", rx312_fail
- add rx312_pos, 5
- alt326_end:
- set_addr $I10, rxcap_327_fail
- ($I12, $I11) = rx312_cur."!mark_peek"($I10)
- rx312_cur."!cursor_pos"($I11)
- ($P10) = rx312_cur."!cursor_start"()
- $P10."!cursor_pass"(rx312_pos, "")
- rx312_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx291_pos, 5
+ gt $I11, rx291_eos, rx291_fail
+ sub $I11, rx291_pos, rx291_off
+ substr $S10, rx291_tgt, $I11, 5
+ ne $S10, "until", rx291_fail
+ add rx291_pos, 5
+ alt305_end:
+ set_addr $I10, rxcap_306_fail
+ ($I12, $I11) = rx291_cur."!mark_peek"($I10)
+ rx291_cur."!cursor_pos"($I11)
+ ($P10) = rx291_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx291_pos, "")
+ rx291_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("wu")
- goto rxcap_327_done
- rxcap_327_fail:
- goto rx312_fail
- rxcap_327_done:
+ goto rxcap_306_done
+ rxcap_306_fail:
+ goto rx291_fail
+ rxcap_306_done:
# rx charclass s
- ge rx312_pos, rx312_eos, rx312_fail
- sub $I10, rx312_pos, rx312_off
- is_cclass $I11, 32, rx312_tgt, $I10
- unless $I11, rx312_fail
- inc rx312_pos
- # rx subrule "ws" subtype=method negate=
- rx312_cur."!cursor_pos"(rx312_pos)
- $P10 = rx312_cur."ws"()
- unless $P10, rx312_fail
- rx312_pos = $P10."pos"()
+ ge rx291_pos, rx291_eos, rx291_fail
+ sub $I10, rx291_pos, rx291_off
+ is_cclass $I11, 32, rx291_tgt, $I10
+ unless $I11, rx291_fail
+ inc rx291_pos
+ # rx subrule "ws" subtype=method negate=
+ rx291_cur."!cursor_pos"(rx291_pos)
+ $P10 = rx291_cur."ws"()
+ unless $P10, rx291_fail
+ rx291_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx312_cur."!cursor_pos"(rx312_pos)
- $P10 = rx312_cur."EXPR"()
- unless $P10, rx312_fail
- rx312_cur."!mark_push"(0, -1, 0, $P10)
+ rx291_cur."!cursor_pos"(rx291_pos)
+ $P10 = rx291_cur."EXPR"()
+ unless $P10, rx291_fail
+ rx291_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx312_pos = $P10."pos"()
+ rx291_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx312_cur."!cursor_pos"(rx312_pos)
- $P10 = rx312_cur."ws"()
- unless $P10, rx312_fail
- rx312_pos = $P10."pos"()
- alt318_end:
+ rx291_cur."!cursor_pos"(rx291_pos)
+ $P10 = rx291_cur."ws"()
+ unless $P10, rx291_fail
+ rx291_pos = $P10."pos"()
+ alt297_end:
.annotate 'line', 180
# rx subrule "ws" subtype=method negate=
- rx312_cur."!cursor_pos"(rx312_pos)
- $P10 = rx312_cur."ws"()
- unless $P10, rx312_fail
- rx312_pos = $P10."pos"()
+ rx291_cur."!cursor_pos"(rx291_pos)
+ $P10 = rx291_cur."ws"()
+ unless $P10, rx291_fail
+ rx291_pos = $P10."pos"()
.annotate 'line', 175
# rx pass
- rx312_cur."!cursor_pass"(rx312_pos, "statement_control:sym<repeat>")
- rx312_cur."!cursor_debug"("PASS ", "statement_control:sym<repeat>", " at pos=", rx312_pos)
- .return (rx312_cur)
- rx312_fail:
+ rx291_cur."!cursor_pass"(rx291_pos, "statement_control:sym<repeat>")
+ rx291_cur."!cursor_debug"("PASS ", "statement_control:sym<repeat>", " at pos=", rx291_pos)
+ .return (rx291_cur)
+ rx291_restart:
.annotate 'line', 4
- (rx312_rep, rx312_pos, $I10, $P10) = rx312_cur."!mark_fail"(0)
- lt rx312_pos, -1, rx312_done
- eq rx312_pos, -1, rx312_fail
+ rx291_cur."!cursor_debug"("NEXT ", "statement_control:sym<repeat>")
+ rx291_fail:
+ (rx291_rep, rx291_pos, $I10, $P10) = rx291_cur."!mark_fail"(0)
+ lt rx291_pos, -1, rx291_done
+ eq rx291_pos, -1, rx291_fail
jump $I10
- rx312_done:
- rx312_cur."!cursor_fail"()
- rx312_cur."!cursor_debug"("FAIL ", "statement_control:sym<repeat>")
- .return (rx312_cur)
+ rx291_done:
+ rx291_cur."!cursor_fail"()
+ rx291_cur."!cursor_debug"("FAIL ", "statement_control:sym<repeat>")
+ .return (rx291_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<repeat>" :subid("70_1275811487.95429") :method
+.sub "!PREFIX__statement_control:sym<repeat>" :subid("70_1280467477.44751") :method
.annotate 'line', 4
- new $P314, "ResizablePMCArray"
- push $P314, "repeat"
- .return ($P314)
+ new $P293, "ResizablePMCArray"
+ push $P293, "repeat"
+ .return ($P293)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<for>" :subid("71_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_control:sym<for>" :subid("71_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx332_tgt
- .local int rx332_pos
- .local int rx332_off
- .local int rx332_eos
- .local int rx332_rep
- .local pmc rx332_cur
- (rx332_cur, rx332_pos, rx332_tgt) = self."!cursor_start"()
- rx332_cur."!cursor_debug"("START ", "statement_control:sym<for>")
- .lex unicode:"$\x{a2}", rx332_cur
+ .local string rx311_tgt
+ .local int rx311_pos
+ .local int rx311_off
+ .local int rx311_eos
+ .local int rx311_rep
+ .local pmc rx311_cur
+ (rx311_cur, rx311_pos, rx311_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx311_cur
.local pmc match
.lex "$/", match
- length rx332_eos, rx332_tgt
- gt rx332_pos, rx332_eos, rx332_done
- set rx332_off, 0
- lt rx332_pos, 2, rx332_start
- sub rx332_off, rx332_pos, 1
- substr rx332_tgt, rx332_tgt, rx332_off
- rx332_start:
+ length rx311_eos, rx311_tgt
+ gt rx311_pos, rx311_eos, rx311_done
+ set rx311_off, 0
+ lt rx311_pos, 2, rx311_start
+ sub rx311_off, rx311_pos, 1
+ substr rx311_tgt, rx311_tgt, rx311_off
+ rx311_start:
+ eq $I10, 1, rx311_restart
+ rx311_cur."!cursor_debug"("START ", "statement_control:sym<for>")
$I10 = self.'from'()
- ne $I10, -1, rxscan335_done
- goto rxscan335_scan
- rxscan335_loop:
- ($P10) = rx332_cur."from"()
+ ne $I10, -1, rxscan314_done
+ goto rxscan314_scan
+ rxscan314_loop:
+ ($P10) = rx311_cur."from"()
inc $P10
- set rx332_pos, $P10
- ge rx332_pos, rx332_eos, rxscan335_done
- rxscan335_scan:
- set_addr $I10, rxscan335_loop
- rx332_cur."!mark_push"(0, rx332_pos, $I10)
- rxscan335_done:
+ set rx311_pos, $P10
+ ge rx311_pos, rx311_eos, rxscan314_done
+ rxscan314_scan:
+ set_addr $I10, rxscan314_loop
+ rx311_cur."!mark_push"(0, rx311_pos, $I10)
+ rxscan314_done:
.annotate 'line', 184
# rx subcapture "sym"
- set_addr $I10, rxcap_336_fail
- rx332_cur."!mark_push"(0, rx332_pos, $I10)
+ set_addr $I10, rxcap_315_fail
+ rx311_cur."!mark_push"(0, rx311_pos, $I10)
# rx literal "for"
- add $I11, rx332_pos, 3
- gt $I11, rx332_eos, rx332_fail
- sub $I11, rx332_pos, rx332_off
- substr $S10, rx332_tgt, $I11, 3
- ne $S10, "for", rx332_fail
- add rx332_pos, 3
- set_addr $I10, rxcap_336_fail
- ($I12, $I11) = rx332_cur."!mark_peek"($I10)
- rx332_cur."!cursor_pos"($I11)
- ($P10) = rx332_cur."!cursor_start"()
- $P10."!cursor_pass"(rx332_pos, "")
- rx332_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx311_pos, 3
+ gt $I11, rx311_eos, rx311_fail
+ sub $I11, rx311_pos, rx311_off
+ substr $S10, rx311_tgt, $I11, 3
+ ne $S10, "for", rx311_fail
+ add rx311_pos, 3
+ set_addr $I10, rxcap_315_fail
+ ($I12, $I11) = rx311_cur."!mark_peek"($I10)
+ rx311_cur."!cursor_pos"($I11)
+ ($P10) = rx311_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx311_pos, "")
+ rx311_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_336_done
- rxcap_336_fail:
- goto rx332_fail
- rxcap_336_done:
+ goto rxcap_315_done
+ rxcap_315_fail:
+ goto rx311_fail
+ rxcap_315_done:
# rx charclass s
- ge rx332_pos, rx332_eos, rx332_fail
- sub $I10, rx332_pos, rx332_off
- is_cclass $I11, 32, rx332_tgt, $I10
- unless $I11, rx332_fail
- inc rx332_pos
- # rx subrule "ws" subtype=method negate=
- rx332_cur."!cursor_pos"(rx332_pos)
- $P10 = rx332_cur."ws"()
- unless $P10, rx332_fail
- rx332_pos = $P10."pos"()
+ ge rx311_pos, rx311_eos, rx311_fail
+ sub $I10, rx311_pos, rx311_off
+ is_cclass $I11, 32, rx311_tgt, $I10
+ unless $I11, rx311_fail
+ inc rx311_pos
+ # rx subrule "ws" subtype=method negate=
+ rx311_cur."!cursor_pos"(rx311_pos)
+ $P10 = rx311_cur."ws"()
+ unless $P10, rx311_fail
+ rx311_pos = $P10."pos"()
.annotate 'line', 185
# rx subrule "xblock" subtype=capture negate=
- rx332_cur."!cursor_pos"(rx332_pos)
- $P10 = rx332_cur."xblock"()
- unless $P10, rx332_fail
- rx332_cur."!mark_push"(0, -1, 0, $P10)
+ rx311_cur."!cursor_pos"(rx311_pos)
+ $P10 = rx311_cur."xblock"()
+ unless $P10, rx311_fail
+ rx311_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("xblock")
- rx332_pos = $P10."pos"()
+ rx311_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx332_cur."!cursor_pos"(rx332_pos)
- $P10 = rx332_cur."ws"()
- unless $P10, rx332_fail
- rx332_pos = $P10."pos"()
+ rx311_cur."!cursor_pos"(rx311_pos)
+ $P10 = rx311_cur."ws"()
+ unless $P10, rx311_fail
+ rx311_pos = $P10."pos"()
.annotate 'line', 183
# rx pass
- rx332_cur."!cursor_pass"(rx332_pos, "statement_control:sym<for>")
- rx332_cur."!cursor_debug"("PASS ", "statement_control:sym<for>", " at pos=", rx332_pos)
- .return (rx332_cur)
- rx332_fail:
+ rx311_cur."!cursor_pass"(rx311_pos, "statement_control:sym<for>")
+ rx311_cur."!cursor_debug"("PASS ", "statement_control:sym<for>", " at pos=", rx311_pos)
+ .return (rx311_cur)
+ rx311_restart:
.annotate 'line', 4
- (rx332_rep, rx332_pos, $I10, $P10) = rx332_cur."!mark_fail"(0)
- lt rx332_pos, -1, rx332_done
- eq rx332_pos, -1, rx332_fail
+ rx311_cur."!cursor_debug"("NEXT ", "statement_control:sym<for>")
+ rx311_fail:
+ (rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0)
+ lt rx311_pos, -1, rx311_done
+ eq rx311_pos, -1, rx311_fail
jump $I10
- rx332_done:
- rx332_cur."!cursor_fail"()
- rx332_cur."!cursor_debug"("FAIL ", "statement_control:sym<for>")
- .return (rx332_cur)
+ rx311_done:
+ rx311_cur."!cursor_fail"()
+ rx311_cur."!cursor_debug"("FAIL ", "statement_control:sym<for>")
+ .return (rx311_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<for>" :subid("72_1275811487.95429") :method
+.sub "!PREFIX__statement_control:sym<for>" :subid("72_1280467477.44751") :method
.annotate 'line', 4
- new $P334, "ResizablePMCArray"
- push $P334, "for"
- .return ($P334)
+ new $P313, "ResizablePMCArray"
+ push $P313, "for"
+ .return ($P313)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CATCH>" :subid("73_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_control:sym<CATCH>" :subid("73_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx340_tgt
- .local int rx340_pos
- .local int rx340_off
- .local int rx340_eos
- .local int rx340_rep
- .local pmc rx340_cur
- (rx340_cur, rx340_pos, rx340_tgt) = self."!cursor_start"()
- rx340_cur."!cursor_debug"("START ", "statement_control:sym<CATCH>")
- .lex unicode:"$\x{a2}", rx340_cur
+ .local string 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 rx340_eos, rx340_tgt
- gt rx340_pos, rx340_eos, rx340_done
- set rx340_off, 0
- lt rx340_pos, 2, rx340_start
- sub rx340_off, rx340_pos, 1
- substr rx340_tgt, rx340_tgt, rx340_off
- rx340_start:
+ length rx319_eos, rx319_tgt
+ gt rx319_pos, rx319_eos, rx319_done
+ set rx319_off, 0
+ lt rx319_pos, 2, rx319_start
+ sub rx319_off, rx319_pos, 1
+ substr rx319_tgt, rx319_tgt, rx319_off
+ rx319_start:
+ eq $I10, 1, rx319_restart
+ rx319_cur."!cursor_debug"("START ", "statement_control:sym<CATCH>")
$I10 = self.'from'()
- ne $I10, -1, rxscan343_done
- goto rxscan343_scan
- rxscan343_loop:
- ($P10) = rx340_cur."from"()
+ ne $I10, -1, rxscan322_done
+ goto rxscan322_scan
+ rxscan322_loop:
+ ($P10) = rx319_cur."from"()
inc $P10
- set rx340_pos, $P10
- ge rx340_pos, rx340_eos, rxscan343_done
- rxscan343_scan:
- set_addr $I10, rxscan343_loop
- rx340_cur."!mark_push"(0, rx340_pos, $I10)
- rxscan343_done:
+ set rx319_pos, $P10
+ ge rx319_pos, rx319_eos, rxscan322_done
+ rxscan322_scan:
+ set_addr $I10, rxscan322_loop
+ rx319_cur."!mark_push"(0, rx319_pos, $I10)
+ rxscan322_done:
.annotate 'line', 189
# rx subcapture "sym"
- set_addr $I10, rxcap_344_fail
- rx340_cur."!mark_push"(0, rx340_pos, $I10)
+ set_addr $I10, rxcap_323_fail
+ rx319_cur."!mark_push"(0, rx319_pos, $I10)
# rx literal "CATCH"
- add $I11, rx340_pos, 5
- gt $I11, rx340_eos, rx340_fail
- sub $I11, rx340_pos, rx340_off
- substr $S10, rx340_tgt, $I11, 5
- ne $S10, "CATCH", rx340_fail
- add rx340_pos, 5
- set_addr $I10, rxcap_344_fail
- ($I12, $I11) = rx340_cur."!mark_peek"($I10)
- rx340_cur."!cursor_pos"($I11)
- ($P10) = rx340_cur."!cursor_start"()
- $P10."!cursor_pass"(rx340_pos, "")
- rx340_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx319_pos, 5
+ gt $I11, rx319_eos, rx319_fail
+ sub $I11, rx319_pos, rx319_off
+ substr $S10, rx319_tgt, $I11, 5
+ ne $S10, "CATCH", rx319_fail
+ add rx319_pos, 5
+ set_addr $I10, rxcap_323_fail
+ ($I12, $I11) = rx319_cur."!mark_peek"($I10)
+ rx319_cur."!cursor_pos"($I11)
+ ($P10) = rx319_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx319_pos, "")
+ rx319_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_344_done
- rxcap_344_fail:
- goto rx340_fail
- rxcap_344_done:
+ goto rxcap_323_done
+ rxcap_323_fail:
+ goto rx319_fail
+ rxcap_323_done:
# rx charclass s
- ge rx340_pos, rx340_eos, rx340_fail
- sub $I10, rx340_pos, rx340_off
- is_cclass $I11, 32, rx340_tgt, $I10
- unless $I11, rx340_fail
- inc rx340_pos
- # rx subrule "ws" subtype=method negate=
- rx340_cur."!cursor_pos"(rx340_pos)
- $P10 = rx340_cur."ws"()
- unless $P10, rx340_fail
- rx340_pos = $P10."pos"()
+ ge rx319_pos, rx319_eos, rx319_fail
+ sub $I10, rx319_pos, rx319_off
+ is_cclass $I11, 32, rx319_tgt, $I10
+ unless $I11, rx319_fail
+ inc rx319_pos
+ # rx subrule "ws" subtype=method negate=
+ rx319_cur."!cursor_pos"(rx319_pos)
+ $P10 = rx319_cur."ws"()
+ unless $P10, rx319_fail
+ rx319_pos = $P10."pos"()
.annotate 'line', 190
# rx subrule "block" subtype=capture negate=
- rx340_cur."!cursor_pos"(rx340_pos)
- $P10 = rx340_cur."block"()
- unless $P10, rx340_fail
- rx340_cur."!mark_push"(0, -1, 0, $P10)
+ rx319_cur."!cursor_pos"(rx319_pos)
+ $P10 = rx319_cur."block"()
+ unless $P10, rx319_fail
+ rx319_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("block")
- rx340_pos = $P10."pos"()
+ rx319_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx340_cur."!cursor_pos"(rx340_pos)
- $P10 = rx340_cur."ws"()
- unless $P10, rx340_fail
- rx340_pos = $P10."pos"()
+ rx319_cur."!cursor_pos"(rx319_pos)
+ $P10 = rx319_cur."ws"()
+ unless $P10, rx319_fail
+ rx319_pos = $P10."pos"()
.annotate 'line', 188
# rx pass
- rx340_cur."!cursor_pass"(rx340_pos, "statement_control:sym<CATCH>")
- rx340_cur."!cursor_debug"("PASS ", "statement_control:sym<CATCH>", " at pos=", rx340_pos)
- .return (rx340_cur)
- rx340_fail:
+ rx319_cur."!cursor_pass"(rx319_pos, "statement_control:sym<CATCH>")
+ rx319_cur."!cursor_debug"("PASS ", "statement_control:sym<CATCH>", " at pos=", rx319_pos)
+ .return (rx319_cur)
+ rx319_restart:
.annotate 'line', 4
- (rx340_rep, rx340_pos, $I10, $P10) = rx340_cur."!mark_fail"(0)
- lt rx340_pos, -1, rx340_done
- eq rx340_pos, -1, rx340_fail
+ rx319_cur."!cursor_debug"("NEXT ", "statement_control:sym<CATCH>")
+ rx319_fail:
+ (rx319_rep, rx319_pos, $I10, $P10) = rx319_cur."!mark_fail"(0)
+ lt rx319_pos, -1, rx319_done
+ eq rx319_pos, -1, rx319_fail
jump $I10
- rx340_done:
- rx340_cur."!cursor_fail"()
- rx340_cur."!cursor_debug"("FAIL ", "statement_control:sym<CATCH>")
- .return (rx340_cur)
+ rx319_done:
+ rx319_cur."!cursor_fail"()
+ rx319_cur."!cursor_debug"("FAIL ", "statement_control:sym<CATCH>")
+ .return (rx319_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CATCH>" :subid("74_1275811487.95429") :method
+.sub "!PREFIX__statement_control:sym<CATCH>" :subid("74_1280467477.44751") :method
.annotate 'line', 4
- new $P342, "ResizablePMCArray"
- push $P342, "CATCH"
- .return ($P342)
+ new $P321, "ResizablePMCArray"
+ push $P321, "CATCH"
+ .return ($P321)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CONTROL>" :subid("75_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_control:sym<CONTROL>" :subid("75_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx348_tgt
- .local int rx348_pos
- .local int rx348_off
- .local int rx348_eos
- .local int rx348_rep
- .local pmc rx348_cur
- (rx348_cur, rx348_pos, rx348_tgt) = self."!cursor_start"()
- rx348_cur."!cursor_debug"("START ", "statement_control:sym<CONTROL>")
- .lex unicode:"$\x{a2}", rx348_cur
- .local pmc match
- .lex "$/", match
- length rx348_eos, rx348_tgt
- gt rx348_pos, rx348_eos, rx348_done
- set rx348_off, 0
- lt rx348_pos, 2, rx348_start
- sub rx348_off, rx348_pos, 1
- substr rx348_tgt, rx348_tgt, rx348_off
- rx348_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan351_done
- goto rxscan351_scan
- rxscan351_loop:
- ($P10) = rx348_cur."from"()
- inc $P10
- set rx348_pos, $P10
- ge rx348_pos, rx348_eos, rxscan351_done
- rxscan351_scan:
- set_addr $I10, rxscan351_loop
- rx348_cur."!mark_push"(0, rx348_pos, $I10)
- rxscan351_done:
+ .local string rx327_tgt
+ .local int rx327_pos
+ .local int rx327_off
+ .local int rx327_eos
+ .local int rx327_rep
+ .local pmc rx327_cur
+ (rx327_cur, rx327_pos, rx327_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx327_cur
+ .local pmc match
+ .lex "$/", match
+ length rx327_eos, rx327_tgt
+ gt rx327_pos, rx327_eos, rx327_done
+ set rx327_off, 0
+ lt rx327_pos, 2, rx327_start
+ sub rx327_off, rx327_pos, 1
+ substr rx327_tgt, rx327_tgt, rx327_off
+ rx327_start:
+ eq $I10, 1, rx327_restart
+ rx327_cur."!cursor_debug"("START ", "statement_control:sym<CONTROL>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan330_done
+ goto rxscan330_scan
+ rxscan330_loop:
+ ($P10) = rx327_cur."from"()
+ inc $P10
+ set rx327_pos, $P10
+ ge rx327_pos, rx327_eos, rxscan330_done
+ rxscan330_scan:
+ set_addr $I10, rxscan330_loop
+ rx327_cur."!mark_push"(0, rx327_pos, $I10)
+ rxscan330_done:
.annotate 'line', 194
# rx subcapture "sym"
- set_addr $I10, rxcap_352_fail
- rx348_cur."!mark_push"(0, rx348_pos, $I10)
+ set_addr $I10, rxcap_331_fail
+ rx327_cur."!mark_push"(0, rx327_pos, $I10)
# rx literal "CONTROL"
- add $I11, rx348_pos, 7
- gt $I11, rx348_eos, rx348_fail
- sub $I11, rx348_pos, rx348_off
- substr $S10, rx348_tgt, $I11, 7
- ne $S10, "CONTROL", rx348_fail
- add rx348_pos, 7
- set_addr $I10, rxcap_352_fail
- ($I12, $I11) = rx348_cur."!mark_peek"($I10)
- rx348_cur."!cursor_pos"($I11)
- ($P10) = rx348_cur."!cursor_start"()
- $P10."!cursor_pass"(rx348_pos, "")
- rx348_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx327_pos, 7
+ gt $I11, rx327_eos, rx327_fail
+ sub $I11, rx327_pos, rx327_off
+ substr $S10, rx327_tgt, $I11, 7
+ ne $S10, "CONTROL", rx327_fail
+ add rx327_pos, 7
+ set_addr $I10, rxcap_331_fail
+ ($I12, $I11) = rx327_cur."!mark_peek"($I10)
+ rx327_cur."!cursor_pos"($I11)
+ ($P10) = rx327_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx327_pos, "")
+ rx327_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_352_done
- rxcap_352_fail:
- goto rx348_fail
- rxcap_352_done:
+ goto rxcap_331_done
+ rxcap_331_fail:
+ goto rx327_fail
+ rxcap_331_done:
# rx charclass s
- ge rx348_pos, rx348_eos, rx348_fail
- sub $I10, rx348_pos, rx348_off
- is_cclass $I11, 32, rx348_tgt, $I10
- unless $I11, rx348_fail
- inc rx348_pos
- # rx subrule "ws" subtype=method negate=
- rx348_cur."!cursor_pos"(rx348_pos)
- $P10 = rx348_cur."ws"()
- unless $P10, rx348_fail
- rx348_pos = $P10."pos"()
+ ge rx327_pos, rx327_eos, rx327_fail
+ sub $I10, rx327_pos, rx327_off
+ is_cclass $I11, 32, rx327_tgt, $I10
+ unless $I11, rx327_fail
+ inc rx327_pos
+ # rx subrule "ws" subtype=method negate=
+ rx327_cur."!cursor_pos"(rx327_pos)
+ $P10 = rx327_cur."ws"()
+ unless $P10, rx327_fail
+ rx327_pos = $P10."pos"()
.annotate 'line', 195
# rx subrule "block" subtype=capture negate=
- rx348_cur."!cursor_pos"(rx348_pos)
- $P10 = rx348_cur."block"()
- unless $P10, rx348_fail
- rx348_cur."!mark_push"(0, -1, 0, $P10)
+ rx327_cur."!cursor_pos"(rx327_pos)
+ $P10 = rx327_cur."block"()
+ unless $P10, rx327_fail
+ rx327_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("block")
- rx348_pos = $P10."pos"()
+ rx327_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx348_cur."!cursor_pos"(rx348_pos)
- $P10 = rx348_cur."ws"()
- unless $P10, rx348_fail
- rx348_pos = $P10."pos"()
+ rx327_cur."!cursor_pos"(rx327_pos)
+ $P10 = rx327_cur."ws"()
+ unless $P10, rx327_fail
+ rx327_pos = $P10."pos"()
.annotate 'line', 193
# rx pass
- rx348_cur."!cursor_pass"(rx348_pos, "statement_control:sym<CONTROL>")
- rx348_cur."!cursor_debug"("PASS ", "statement_control:sym<CONTROL>", " at pos=", rx348_pos)
- .return (rx348_cur)
- rx348_fail:
+ rx327_cur."!cursor_pass"(rx327_pos, "statement_control:sym<CONTROL>")
+ rx327_cur."!cursor_debug"("PASS ", "statement_control:sym<CONTROL>", " at pos=", rx327_pos)
+ .return (rx327_cur)
+ rx327_restart:
.annotate 'line', 4
- (rx348_rep, rx348_pos, $I10, $P10) = rx348_cur."!mark_fail"(0)
- lt rx348_pos, -1, rx348_done
- eq rx348_pos, -1, rx348_fail
+ rx327_cur."!cursor_debug"("NEXT ", "statement_control:sym<CONTROL>")
+ rx327_fail:
+ (rx327_rep, rx327_pos, $I10, $P10) = rx327_cur."!mark_fail"(0)
+ lt rx327_pos, -1, rx327_done
+ eq rx327_pos, -1, rx327_fail
jump $I10
- rx348_done:
- rx348_cur."!cursor_fail"()
- rx348_cur."!cursor_debug"("FAIL ", "statement_control:sym<CONTROL>")
- .return (rx348_cur)
+ rx327_done:
+ rx327_cur."!cursor_fail"()
+ rx327_cur."!cursor_debug"("FAIL ", "statement_control:sym<CONTROL>")
+ .return (rx327_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CONTROL>" :subid("76_1275811487.95429") :method
+.sub "!PREFIX__statement_control:sym<CONTROL>" :subid("76_1280467477.44751") :method
.annotate 'line', 4
- new $P350, "ResizablePMCArray"
- push $P350, "CONTROL"
- .return ($P350)
+ new $P329, "ResizablePMCArray"
+ push $P329, "CONTROL"
+ .return ($P329)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix" :subid("77_1275811487.95429") :method
+.sub "statement_prefix" :subid("77_1280467477.44751") :method
.annotate 'line', 198
- $P356 = self."!protoregex"("statement_prefix")
- .return ($P356)
+ $P335 = self."!protoregex"("statement_prefix")
+ .return ($P335)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix" :subid("78_1275811487.95429") :method
+.sub "!PREFIX__statement_prefix" :subid("78_1280467477.44751") :method
.annotate 'line', 198
- $P358 = self."!PREFIX__!protoregex"("statement_prefix")
- .return ($P358)
+ $P337 = self."!PREFIX__!protoregex"("statement_prefix")
+ .return ($P337)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<INIT>" :subid("79_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_prefix:sym<INIT>" :subid("79_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx360_tgt
- .local int rx360_pos
- .local int rx360_off
- .local int rx360_eos
- .local int rx360_rep
- .local pmc rx360_cur
- (rx360_cur, rx360_pos, rx360_tgt) = self."!cursor_start"()
- rx360_cur."!cursor_debug"("START ", "statement_prefix:sym<INIT>")
- .lex unicode:"$\x{a2}", rx360_cur
- .local pmc match
- .lex "$/", match
- length rx360_eos, rx360_tgt
- gt rx360_pos, rx360_eos, rx360_done
- set rx360_off, 0
- lt rx360_pos, 2, rx360_start
- sub rx360_off, rx360_pos, 1
- substr rx360_tgt, rx360_tgt, rx360_off
- rx360_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan364_done
- goto rxscan364_scan
- rxscan364_loop:
- ($P10) = rx360_cur."from"()
- inc $P10
- set rx360_pos, $P10
- ge rx360_pos, rx360_eos, rxscan364_done
- rxscan364_scan:
- set_addr $I10, rxscan364_loop
- rx360_cur."!mark_push"(0, rx360_pos, $I10)
- rxscan364_done:
+ .local string rx339_tgt
+ .local int rx339_pos
+ .local int rx339_off
+ .local int rx339_eos
+ .local int rx339_rep
+ .local pmc rx339_cur
+ (rx339_cur, rx339_pos, rx339_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx339_cur
+ .local pmc match
+ .lex "$/", match
+ length rx339_eos, rx339_tgt
+ gt rx339_pos, rx339_eos, rx339_done
+ set rx339_off, 0
+ lt rx339_pos, 2, rx339_start
+ sub rx339_off, rx339_pos, 1
+ substr rx339_tgt, rx339_tgt, rx339_off
+ rx339_start:
+ eq $I10, 1, rx339_restart
+ rx339_cur."!cursor_debug"("START ", "statement_prefix:sym<INIT>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan343_done
+ goto rxscan343_scan
+ rxscan343_loop:
+ ($P10) = rx339_cur."from"()
+ inc $P10
+ set rx339_pos, $P10
+ ge rx339_pos, rx339_eos, rxscan343_done
+ rxscan343_scan:
+ set_addr $I10, rxscan343_loop
+ rx339_cur."!mark_push"(0, rx339_pos, $I10)
+ rxscan343_done:
.annotate 'line', 199
# rx subcapture "sym"
- set_addr $I10, rxcap_365_fail
- rx360_cur."!mark_push"(0, rx360_pos, $I10)
+ set_addr $I10, rxcap_344_fail
+ rx339_cur."!mark_push"(0, rx339_pos, $I10)
# rx literal "INIT"
- add $I11, rx360_pos, 4
- gt $I11, rx360_eos, rx360_fail
- sub $I11, rx360_pos, rx360_off
- substr $S10, rx360_tgt, $I11, 4
- ne $S10, "INIT", rx360_fail
- add rx360_pos, 4
- set_addr $I10, rxcap_365_fail
- ($I12, $I11) = rx360_cur."!mark_peek"($I10)
- rx360_cur."!cursor_pos"($I11)
- ($P10) = rx360_cur."!cursor_start"()
- $P10."!cursor_pass"(rx360_pos, "")
- rx360_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx339_pos, 4
+ gt $I11, rx339_eos, rx339_fail
+ sub $I11, rx339_pos, rx339_off
+ substr $S10, rx339_tgt, $I11, 4
+ ne $S10, "INIT", rx339_fail
+ add rx339_pos, 4
+ set_addr $I10, rxcap_344_fail
+ ($I12, $I11) = rx339_cur."!mark_peek"($I10)
+ rx339_cur."!cursor_pos"($I11)
+ ($P10) = rx339_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx339_pos, "")
+ rx339_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_365_done
- rxcap_365_fail:
- goto rx360_fail
- rxcap_365_done:
+ goto rxcap_344_done
+ rxcap_344_fail:
+ goto rx339_fail
+ rxcap_344_done:
# rx subrule "blorst" subtype=capture negate=
- rx360_cur."!cursor_pos"(rx360_pos)
- $P10 = rx360_cur."blorst"()
- unless $P10, rx360_fail
- rx360_cur."!mark_push"(0, -1, 0, $P10)
+ rx339_cur."!cursor_pos"(rx339_pos)
+ $P10 = rx339_cur."blorst"()
+ unless $P10, rx339_fail
+ rx339_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blorst")
- rx360_pos = $P10."pos"()
+ rx339_pos = $P10."pos"()
# rx pass
- rx360_cur."!cursor_pass"(rx360_pos, "statement_prefix:sym<INIT>")
- rx360_cur."!cursor_debug"("PASS ", "statement_prefix:sym<INIT>", " at pos=", rx360_pos)
- .return (rx360_cur)
- rx360_fail:
+ rx339_cur."!cursor_pass"(rx339_pos, "statement_prefix:sym<INIT>")
+ rx339_cur."!cursor_debug"("PASS ", "statement_prefix:sym<INIT>", " at pos=", rx339_pos)
+ .return (rx339_cur)
+ rx339_restart:
.annotate 'line', 4
- (rx360_rep, rx360_pos, $I10, $P10) = rx360_cur."!mark_fail"(0)
- lt rx360_pos, -1, rx360_done
- eq rx360_pos, -1, rx360_fail
+ rx339_cur."!cursor_debug"("NEXT ", "statement_prefix:sym<INIT>")
+ rx339_fail:
+ (rx339_rep, rx339_pos, $I10, $P10) = rx339_cur."!mark_fail"(0)
+ lt rx339_pos, -1, rx339_done
+ eq rx339_pos, -1, rx339_fail
jump $I10
- rx360_done:
- rx360_cur."!cursor_fail"()
- rx360_cur."!cursor_debug"("FAIL ", "statement_prefix:sym<INIT>")
- .return (rx360_cur)
+ rx339_done:
+ rx339_cur."!cursor_fail"()
+ rx339_cur."!cursor_debug"("FAIL ", "statement_prefix:sym<INIT>")
+ .return (rx339_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<INIT>" :subid("80_1275811487.95429") :method
+.sub "!PREFIX__statement_prefix:sym<INIT>" :subid("80_1280467477.44751") :method
.annotate 'line', 4
- $P362 = self."!PREFIX__!subrule"("blorst", "INIT")
- new $P363, "ResizablePMCArray"
- push $P363, $P362
- .return ($P363)
+ $P341 = self."!PREFIX__!subrule"("blorst", "INIT")
+ new $P342, "ResizablePMCArray"
+ push $P342, $P341
+ .return ($P342)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<try>" :subid("81_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_prefix:sym<try>" :subid("81_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx367_tgt
- .local int rx367_pos
- .local int rx367_off
- .local int rx367_eos
- .local int rx367_rep
- .local pmc rx367_cur
- (rx367_cur, rx367_pos, rx367_tgt) = self."!cursor_start"()
- rx367_cur."!cursor_debug"("START ", "statement_prefix:sym<try>")
- .lex unicode:"$\x{a2}", rx367_cur
- .local pmc match
- .lex "$/", match
- length rx367_eos, rx367_tgt
- gt rx367_pos, rx367_eos, rx367_done
- set rx367_off, 0
- lt rx367_pos, 2, rx367_start
- sub rx367_off, rx367_pos, 1
- substr rx367_tgt, rx367_tgt, rx367_off
- rx367_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan371_done
- goto rxscan371_scan
- rxscan371_loop:
- ($P10) = rx367_cur."from"()
- inc $P10
- set rx367_pos, $P10
- ge rx367_pos, rx367_eos, rxscan371_done
- rxscan371_scan:
- set_addr $I10, rxscan371_loop
- rx367_cur."!mark_push"(0, rx367_pos, $I10)
- rxscan371_done:
+ .local string rx346_tgt
+ .local int rx346_pos
+ .local int rx346_off
+ .local int rx346_eos
+ .local int rx346_rep
+ .local pmc rx346_cur
+ (rx346_cur, rx346_pos, rx346_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx346_cur
+ .local pmc match
+ .lex "$/", match
+ length rx346_eos, rx346_tgt
+ gt rx346_pos, rx346_eos, rx346_done
+ set rx346_off, 0
+ lt rx346_pos, 2, rx346_start
+ sub rx346_off, rx346_pos, 1
+ substr rx346_tgt, rx346_tgt, rx346_off
+ rx346_start:
+ eq $I10, 1, rx346_restart
+ rx346_cur."!cursor_debug"("START ", "statement_prefix:sym<try>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan350_done
+ goto rxscan350_scan
+ rxscan350_loop:
+ ($P10) = rx346_cur."from"()
+ inc $P10
+ set rx346_pos, $P10
+ ge rx346_pos, rx346_eos, rxscan350_done
+ rxscan350_scan:
+ set_addr $I10, rxscan350_loop
+ rx346_cur."!mark_push"(0, rx346_pos, $I10)
+ rxscan350_done:
.annotate 'line', 202
# rx subcapture "sym"
- set_addr $I10, rxcap_372_fail
- rx367_cur."!mark_push"(0, rx367_pos, $I10)
+ set_addr $I10, rxcap_351_fail
+ rx346_cur."!mark_push"(0, rx346_pos, $I10)
# rx literal "try"
- add $I11, rx367_pos, 3
- gt $I11, rx367_eos, rx367_fail
- sub $I11, rx367_pos, rx367_off
- substr $S10, rx367_tgt, $I11, 3
- ne $S10, "try", rx367_fail
- add rx367_pos, 3
- set_addr $I10, rxcap_372_fail
- ($I12, $I11) = rx367_cur."!mark_peek"($I10)
- rx367_cur."!cursor_pos"($I11)
- ($P10) = rx367_cur."!cursor_start"()
- $P10."!cursor_pass"(rx367_pos, "")
- rx367_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx346_pos, 3
+ gt $I11, rx346_eos, rx346_fail
+ sub $I11, rx346_pos, rx346_off
+ substr $S10, rx346_tgt, $I11, 3
+ ne $S10, "try", rx346_fail
+ add rx346_pos, 3
+ set_addr $I10, rxcap_351_fail
+ ($I12, $I11) = rx346_cur."!mark_peek"($I10)
+ rx346_cur."!cursor_pos"($I11)
+ ($P10) = rx346_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx346_pos, "")
+ rx346_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_372_done
- rxcap_372_fail:
- goto rx367_fail
- rxcap_372_done:
+ goto rxcap_351_done
+ rxcap_351_fail:
+ goto rx346_fail
+ rxcap_351_done:
.annotate 'line', 203
# rx subrule "blorst" subtype=capture negate=
- rx367_cur."!cursor_pos"(rx367_pos)
- $P10 = rx367_cur."blorst"()
- unless $P10, rx367_fail
- rx367_cur."!mark_push"(0, -1, 0, $P10)
+ rx346_cur."!cursor_pos"(rx346_pos)
+ $P10 = rx346_cur."blorst"()
+ unless $P10, rx346_fail
+ rx346_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blorst")
- rx367_pos = $P10."pos"()
+ rx346_pos = $P10."pos"()
.annotate 'line', 201
# rx pass
- rx367_cur."!cursor_pass"(rx367_pos, "statement_prefix:sym<try>")
- rx367_cur."!cursor_debug"("PASS ", "statement_prefix:sym<try>", " at pos=", rx367_pos)
- .return (rx367_cur)
- rx367_fail:
+ rx346_cur."!cursor_pass"(rx346_pos, "statement_prefix:sym<try>")
+ rx346_cur."!cursor_debug"("PASS ", "statement_prefix:sym<try>", " at pos=", rx346_pos)
+ .return (rx346_cur)
+ rx346_restart:
.annotate 'line', 4
- (rx367_rep, rx367_pos, $I10, $P10) = rx367_cur."!mark_fail"(0)
- lt rx367_pos, -1, rx367_done
- eq rx367_pos, -1, rx367_fail
+ rx346_cur."!cursor_debug"("NEXT ", "statement_prefix:sym<try>")
+ rx346_fail:
+ (rx346_rep, rx346_pos, $I10, $P10) = rx346_cur."!mark_fail"(0)
+ lt rx346_pos, -1, rx346_done
+ eq rx346_pos, -1, rx346_fail
jump $I10
- rx367_done:
- rx367_cur."!cursor_fail"()
- rx367_cur."!cursor_debug"("FAIL ", "statement_prefix:sym<try>")
- .return (rx367_cur)
+ rx346_done:
+ rx346_cur."!cursor_fail"()
+ rx346_cur."!cursor_debug"("FAIL ", "statement_prefix:sym<try>")
+ .return (rx346_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<try>" :subid("82_1275811487.95429") :method
+.sub "!PREFIX__statement_prefix:sym<try>" :subid("82_1280467477.44751") :method
.annotate 'line', 4
- $P369 = self."!PREFIX__!subrule"("blorst", "try")
- new $P370, "ResizablePMCArray"
- push $P370, $P369
- .return ($P370)
+ $P348 = self."!PREFIX__!subrule"("blorst", "try")
+ new $P349, "ResizablePMCArray"
+ push $P349, $P348
+ .return ($P349)
.end
.namespace ["NQP";"Grammar"]
-.sub "blorst" :subid("83_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "blorst" :subid("83_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx374_tgt
- .local int rx374_pos
- .local int rx374_off
- .local int rx374_eos
- .local int rx374_rep
- .local pmc rx374_cur
- (rx374_cur, rx374_pos, rx374_tgt) = self."!cursor_start"()
- rx374_cur."!cursor_debug"("START ", "blorst")
- .lex unicode:"$\x{a2}", rx374_cur
- .local pmc match
- .lex "$/", match
- length rx374_eos, rx374_tgt
- gt rx374_pos, rx374_eos, rx374_done
- set rx374_off, 0
- lt rx374_pos, 2, rx374_start
- sub rx374_off, rx374_pos, 1
- substr rx374_tgt, rx374_tgt, rx374_off
- rx374_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan377_done
- goto rxscan377_scan
- rxscan377_loop:
- ($P10) = rx374_cur."from"()
- inc $P10
- set rx374_pos, $P10
- ge rx374_pos, rx374_eos, rxscan377_done
- rxscan377_scan:
- set_addr $I10, rxscan377_loop
- rx374_cur."!mark_push"(0, rx374_pos, $I10)
- rxscan377_done:
+ .local string rx353_tgt
+ .local int rx353_pos
+ .local int rx353_off
+ .local int rx353_eos
+ .local int rx353_rep
+ .local pmc rx353_cur
+ (rx353_cur, rx353_pos, rx353_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx353_cur
+ .local pmc match
+ .lex "$/", match
+ length rx353_eos, rx353_tgt
+ gt rx353_pos, rx353_eos, rx353_done
+ set rx353_off, 0
+ lt rx353_pos, 2, rx353_start
+ sub rx353_off, rx353_pos, 1
+ substr rx353_tgt, rx353_tgt, rx353_off
+ rx353_start:
+ eq $I10, 1, rx353_restart
+ rx353_cur."!cursor_debug"("START ", "blorst")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan356_done
+ goto rxscan356_scan
+ rxscan356_loop:
+ ($P10) = rx353_cur."from"()
+ inc $P10
+ set rx353_pos, $P10
+ ge rx353_pos, rx353_eos, rxscan356_done
+ rxscan356_scan:
+ set_addr $I10, rxscan356_loop
+ rx353_cur."!mark_push"(0, rx353_pos, $I10)
+ rxscan356_done:
.annotate 'line', 207
# rx charclass s
- ge rx374_pos, rx374_eos, rx374_fail
- sub $I10, rx374_pos, rx374_off
- is_cclass $I11, 32, rx374_tgt, $I10
- unless $I11, rx374_fail
- inc rx374_pos
- # rx subrule "ws" subtype=method negate=
- rx374_cur."!cursor_pos"(rx374_pos)
- $P10 = rx374_cur."ws"()
- unless $P10, rx374_fail
- rx374_pos = $P10."pos"()
- alt378_0:
- set_addr $I10, alt378_1
- rx374_cur."!mark_push"(0, rx374_pos, $I10)
+ ge rx353_pos, rx353_eos, rx353_fail
+ sub $I10, rx353_pos, rx353_off
+ is_cclass $I11, 32, rx353_tgt, $I10
+ unless $I11, rx353_fail
+ inc rx353_pos
+ # rx subrule "ws" subtype=method negate=
+ rx353_cur."!cursor_pos"(rx353_pos)
+ $P10 = rx353_cur."ws"()
+ unless $P10, rx353_fail
+ rx353_pos = $P10."pos"()
+ alt357_0:
+ set_addr $I10, alt357_1
+ rx353_cur."!mark_push"(0, rx353_pos, $I10)
# rx enumcharlist negate=0 zerowidth
- ge rx374_pos, rx374_eos, rx374_fail
- sub $I10, rx374_pos, rx374_off
- substr $S10, rx374_tgt, $I10, 1
+ ge rx353_pos, rx353_eos, rx353_fail
+ sub $I10, rx353_pos, rx353_off
+ substr $S10, rx353_tgt, $I10, 1
index $I11, "{", $S10
- lt $I11, 0, rx374_fail
+ lt $I11, 0, rx353_fail
# rx subrule "block" subtype=capture negate=
- rx374_cur."!cursor_pos"(rx374_pos)
- $P10 = rx374_cur."block"()
- unless $P10, rx374_fail
- rx374_cur."!mark_push"(0, -1, 0, $P10)
+ rx353_cur."!cursor_pos"(rx353_pos)
+ $P10 = rx353_cur."block"()
+ unless $P10, rx353_fail
+ rx353_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("block")
- rx374_pos = $P10."pos"()
- goto alt378_end
- alt378_1:
+ rx353_pos = $P10."pos"()
+ goto alt357_end
+ alt357_1:
# rx subrule "statement" subtype=capture negate=
- rx374_cur."!cursor_pos"(rx374_pos)
- $P10 = rx374_cur."statement"()
- unless $P10, rx374_fail
- rx374_cur."!mark_push"(0, -1, 0, $P10)
+ rx353_cur."!cursor_pos"(rx353_pos)
+ $P10 = rx353_cur."statement"()
+ unless $P10, rx353_fail
+ rx353_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement")
- rx374_pos = $P10."pos"()
- alt378_end:
+ rx353_pos = $P10."pos"()
+ alt357_end:
.annotate 'line', 206
# rx pass
- rx374_cur."!cursor_pass"(rx374_pos, "blorst")
- rx374_cur."!cursor_debug"("PASS ", "blorst", " at pos=", rx374_pos)
- .return (rx374_cur)
- rx374_fail:
+ rx353_cur."!cursor_pass"(rx353_pos, "blorst")
+ rx353_cur."!cursor_debug"("PASS ", "blorst", " at pos=", rx353_pos)
+ .return (rx353_cur)
+ rx353_restart:
.annotate 'line', 4
- (rx374_rep, rx374_pos, $I10, $P10) = rx374_cur."!mark_fail"(0)
- lt rx374_pos, -1, rx374_done
- eq rx374_pos, -1, rx374_fail
+ rx353_cur."!cursor_debug"("NEXT ", "blorst")
+ rx353_fail:
+ (rx353_rep, rx353_pos, $I10, $P10) = rx353_cur."!mark_fail"(0)
+ lt rx353_pos, -1, rx353_done
+ eq rx353_pos, -1, rx353_fail
jump $I10
- rx374_done:
- rx374_cur."!cursor_fail"()
- rx374_cur."!cursor_debug"("FAIL ", "blorst")
- .return (rx374_cur)
+ rx353_done:
+ rx353_cur."!cursor_fail"()
+ rx353_cur."!cursor_debug"("FAIL ", "blorst")
+ .return (rx353_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blorst" :subid("84_1275811487.95429") :method
+.sub "!PREFIX__blorst" :subid("84_1280467477.44751") :method
.annotate 'line', 4
- new $P376, "ResizablePMCArray"
- push $P376, ""
- .return ($P376)
+ new $P355, "ResizablePMCArray"
+ push $P355, ""
+ .return ($P355)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond" :subid("85_1275811487.95429") :method
+.sub "statement_mod_cond" :subid("85_1280467477.44751") :method
.annotate 'line', 212
- $P380 = self."!protoregex"("statement_mod_cond")
- .return ($P380)
+ $P359 = self."!protoregex"("statement_mod_cond")
+ .return ($P359)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond" :subid("86_1275811487.95429") :method
+.sub "!PREFIX__statement_mod_cond" :subid("86_1280467477.44751") :method
.annotate 'line', 212
- $P382 = self."!PREFIX__!protoregex"("statement_mod_cond")
- .return ($P382)
+ $P361 = self."!PREFIX__!protoregex"("statement_mod_cond")
+ .return ($P361)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<if>" :subid("87_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_mod_cond:sym<if>" :subid("87_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx384_tgt
- .local int rx384_pos
- .local int rx384_off
- .local int rx384_eos
- .local int rx384_rep
- .local pmc rx384_cur
- (rx384_cur, rx384_pos, rx384_tgt) = self."!cursor_start"()
- rx384_cur."!cursor_debug"("START ", "statement_mod_cond:sym<if>")
- .lex unicode:"$\x{a2}", rx384_cur
- .local pmc match
- .lex "$/", match
- length rx384_eos, rx384_tgt
- gt rx384_pos, rx384_eos, rx384_done
- set rx384_off, 0
- lt rx384_pos, 2, rx384_start
- sub rx384_off, rx384_pos, 1
- substr rx384_tgt, rx384_tgt, rx384_off
- rx384_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan388_done
- goto rxscan388_scan
- rxscan388_loop:
- ($P10) = rx384_cur."from"()
- inc $P10
- set rx384_pos, $P10
- ge rx384_pos, rx384_eos, rxscan388_done
- rxscan388_scan:
- set_addr $I10, rxscan388_loop
- rx384_cur."!mark_push"(0, rx384_pos, $I10)
- rxscan388_done:
+ .local string rx363_tgt
+ .local int rx363_pos
+ .local int rx363_off
+ .local int rx363_eos
+ .local int rx363_rep
+ .local pmc rx363_cur
+ (rx363_cur, rx363_pos, rx363_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx363_cur
+ .local pmc match
+ .lex "$/", match
+ length rx363_eos, rx363_tgt
+ gt rx363_pos, rx363_eos, rx363_done
+ set rx363_off, 0
+ lt rx363_pos, 2, rx363_start
+ sub rx363_off, rx363_pos, 1
+ substr rx363_tgt, rx363_tgt, rx363_off
+ rx363_start:
+ eq $I10, 1, rx363_restart
+ rx363_cur."!cursor_debug"("START ", "statement_mod_cond:sym<if>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan367_done
+ goto rxscan367_scan
+ rxscan367_loop:
+ ($P10) = rx363_cur."from"()
+ inc $P10
+ set rx363_pos, $P10
+ ge rx363_pos, rx363_eos, rxscan367_done
+ rxscan367_scan:
+ set_addr $I10, rxscan367_loop
+ rx363_cur."!mark_push"(0, rx363_pos, $I10)
+ rxscan367_done:
.annotate 'line', 214
# rx subcapture "sym"
- set_addr $I10, rxcap_389_fail
- rx384_cur."!mark_push"(0, rx384_pos, $I10)
+ set_addr $I10, rxcap_368_fail
+ rx363_cur."!mark_push"(0, rx363_pos, $I10)
# rx literal "if"
- add $I11, rx384_pos, 2
- gt $I11, rx384_eos, rx384_fail
- sub $I11, rx384_pos, rx384_off
- substr $S10, rx384_tgt, $I11, 2
- ne $S10, "if", rx384_fail
- add rx384_pos, 2
- set_addr $I10, rxcap_389_fail
- ($I12, $I11) = rx384_cur."!mark_peek"($I10)
- rx384_cur."!cursor_pos"($I11)
- ($P10) = rx384_cur."!cursor_start"()
- $P10."!cursor_pass"(rx384_pos, "")
- rx384_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx363_pos, 2
+ gt $I11, rx363_eos, rx363_fail
+ sub $I11, rx363_pos, rx363_off
+ substr $S10, rx363_tgt, $I11, 2
+ ne $S10, "if", rx363_fail
+ add rx363_pos, 2
+ set_addr $I10, rxcap_368_fail
+ ($I12, $I11) = rx363_cur."!mark_peek"($I10)
+ rx363_cur."!cursor_pos"($I11)
+ ($P10) = rx363_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx363_pos, "")
+ rx363_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_389_done
- rxcap_389_fail:
- goto rx384_fail
- rxcap_389_done:
- # rx subrule "ws" subtype=method negate=
- rx384_cur."!cursor_pos"(rx384_pos)
- $P10 = rx384_cur."ws"()
- unless $P10, rx384_fail
- rx384_pos = $P10."pos"()
+ goto rxcap_368_done
+ rxcap_368_fail:
+ goto rx363_fail
+ rxcap_368_done:
+ # rx subrule "ws" subtype=method negate=
+ rx363_cur."!cursor_pos"(rx363_pos)
+ $P10 = rx363_cur."ws"()
+ unless $P10, rx363_fail
+ rx363_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx384_cur."!cursor_pos"(rx384_pos)
- $P10 = rx384_cur."EXPR"()
- unless $P10, rx384_fail
- rx384_cur."!mark_push"(0, -1, 0, $P10)
+ rx363_cur."!cursor_pos"(rx363_pos)
+ $P10 = rx363_cur."EXPR"()
+ unless $P10, rx363_fail
+ rx363_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("cond")
- rx384_pos = $P10."pos"()
+ rx363_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx384_cur."!cursor_pos"(rx384_pos)
- $P10 = rx384_cur."ws"()
- unless $P10, rx384_fail
- rx384_pos = $P10."pos"()
+ rx363_cur."!cursor_pos"(rx363_pos)
+ $P10 = rx363_cur."ws"()
+ unless $P10, rx363_fail
+ rx363_pos = $P10."pos"()
# rx pass
- rx384_cur."!cursor_pass"(rx384_pos, "statement_mod_cond:sym<if>")
- rx384_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym<if>", " at pos=", rx384_pos)
- .return (rx384_cur)
- rx384_fail:
+ rx363_cur."!cursor_pass"(rx363_pos, "statement_mod_cond:sym<if>")
+ rx363_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym<if>", " at pos=", rx363_pos)
+ .return (rx363_cur)
+ rx363_restart:
.annotate 'line', 4
- (rx384_rep, rx384_pos, $I10, $P10) = rx384_cur."!mark_fail"(0)
- lt rx384_pos, -1, rx384_done
- eq rx384_pos, -1, rx384_fail
+ rx363_cur."!cursor_debug"("NEXT ", "statement_mod_cond:sym<if>")
+ rx363_fail:
+ (rx363_rep, rx363_pos, $I10, $P10) = rx363_cur."!mark_fail"(0)
+ lt rx363_pos, -1, rx363_done
+ eq rx363_pos, -1, rx363_fail
jump $I10
- rx384_done:
- rx384_cur."!cursor_fail"()
- rx384_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym<if>")
- .return (rx384_cur)
+ rx363_done:
+ rx363_cur."!cursor_fail"()
+ rx363_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym<if>")
+ .return (rx363_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<if>" :subid("88_1275811487.95429") :method
+.sub "!PREFIX__statement_mod_cond:sym<if>" :subid("88_1280467477.44751") :method
.annotate 'line', 4
- $P386 = self."!PREFIX__!subrule"("ws", "if")
- new $P387, "ResizablePMCArray"
- push $P387, $P386
- .return ($P387)
+ $P365 = self."!PREFIX__!subrule"("ws", "if")
+ new $P366, "ResizablePMCArray"
+ push $P366, $P365
+ .return ($P366)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<unless>" :subid("89_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_mod_cond:sym<unless>" :subid("89_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx393_tgt
- .local int rx393_pos
- .local int rx393_off
- .local int rx393_eos
- .local int rx393_rep
- .local pmc rx393_cur
- (rx393_cur, rx393_pos, rx393_tgt) = self."!cursor_start"()
- rx393_cur."!cursor_debug"("START ", "statement_mod_cond:sym<unless>")
- .lex unicode:"$\x{a2}", rx393_cur
+ .local string rx372_tgt
+ .local int rx372_pos
+ .local int rx372_off
+ .local int rx372_eos
+ .local int rx372_rep
+ .local pmc rx372_cur
+ (rx372_cur, rx372_pos, rx372_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx372_cur
.local pmc match
.lex "$/", match
- length rx393_eos, rx393_tgt
- gt rx393_pos, rx393_eos, rx393_done
- set rx393_off, 0
- lt rx393_pos, 2, rx393_start
- sub rx393_off, rx393_pos, 1
- substr rx393_tgt, rx393_tgt, rx393_off
- rx393_start:
+ length rx372_eos, rx372_tgt
+ gt rx372_pos, rx372_eos, rx372_done
+ set rx372_off, 0
+ lt rx372_pos, 2, rx372_start
+ sub rx372_off, rx372_pos, 1
+ substr rx372_tgt, rx372_tgt, rx372_off
+ rx372_start:
+ eq $I10, 1, rx372_restart
+ rx372_cur."!cursor_debug"("START ", "statement_mod_cond:sym<unless>")
$I10 = self.'from'()
- ne $I10, -1, rxscan397_done
- goto rxscan397_scan
- rxscan397_loop:
- ($P10) = rx393_cur."from"()
+ ne $I10, -1, rxscan376_done
+ goto rxscan376_scan
+ rxscan376_loop:
+ ($P10) = rx372_cur."from"()
inc $P10
- set rx393_pos, $P10
- ge rx393_pos, rx393_eos, rxscan397_done
- rxscan397_scan:
- set_addr $I10, rxscan397_loop
- rx393_cur."!mark_push"(0, rx393_pos, $I10)
- rxscan397_done:
+ set rx372_pos, $P10
+ ge rx372_pos, rx372_eos, rxscan376_done
+ rxscan376_scan:
+ set_addr $I10, rxscan376_loop
+ rx372_cur."!mark_push"(0, rx372_pos, $I10)
+ rxscan376_done:
.annotate 'line', 215
# rx subcapture "sym"
- set_addr $I10, rxcap_398_fail
- rx393_cur."!mark_push"(0, rx393_pos, $I10)
+ set_addr $I10, rxcap_377_fail
+ rx372_cur."!mark_push"(0, rx372_pos, $I10)
# rx literal "unless"
- add $I11, rx393_pos, 6
- gt $I11, rx393_eos, rx393_fail
- sub $I11, rx393_pos, rx393_off
- substr $S10, rx393_tgt, $I11, 6
- ne $S10, "unless", rx393_fail
- add rx393_pos, 6
- set_addr $I10, rxcap_398_fail
- ($I12, $I11) = rx393_cur."!mark_peek"($I10)
- rx393_cur."!cursor_pos"($I11)
- ($P10) = rx393_cur."!cursor_start"()
- $P10."!cursor_pass"(rx393_pos, "")
- rx393_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx372_pos, 6
+ gt $I11, rx372_eos, rx372_fail
+ sub $I11, rx372_pos, rx372_off
+ substr $S10, rx372_tgt, $I11, 6
+ ne $S10, "unless", rx372_fail
+ add rx372_pos, 6
+ set_addr $I10, rxcap_377_fail
+ ($I12, $I11) = rx372_cur."!mark_peek"($I10)
+ rx372_cur."!cursor_pos"($I11)
+ ($P10) = rx372_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx372_pos, "")
+ rx372_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_398_done
- rxcap_398_fail:
- goto rx393_fail
- rxcap_398_done:
- # rx subrule "ws" subtype=method negate=
- rx393_cur."!cursor_pos"(rx393_pos)
- $P10 = rx393_cur."ws"()
- unless $P10, rx393_fail
- rx393_pos = $P10."pos"()
+ goto rxcap_377_done
+ rxcap_377_fail:
+ goto rx372_fail
+ rxcap_377_done:
+ # rx subrule "ws" subtype=method negate=
+ rx372_cur."!cursor_pos"(rx372_pos)
+ $P10 = rx372_cur."ws"()
+ unless $P10, rx372_fail
+ rx372_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx393_cur."!cursor_pos"(rx393_pos)
- $P10 = rx393_cur."EXPR"()
- unless $P10, rx393_fail
- rx393_cur."!mark_push"(0, -1, 0, $P10)
+ rx372_cur."!cursor_pos"(rx372_pos)
+ $P10 = rx372_cur."EXPR"()
+ unless $P10, rx372_fail
+ rx372_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("cond")
- rx393_pos = $P10."pos"()
+ rx372_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx393_cur."!cursor_pos"(rx393_pos)
- $P10 = rx393_cur."ws"()
- unless $P10, rx393_fail
- rx393_pos = $P10."pos"()
+ rx372_cur."!cursor_pos"(rx372_pos)
+ $P10 = rx372_cur."ws"()
+ unless $P10, rx372_fail
+ rx372_pos = $P10."pos"()
# rx pass
- rx393_cur."!cursor_pass"(rx393_pos, "statement_mod_cond:sym<unless>")
- rx393_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym<unless>", " at pos=", rx393_pos)
- .return (rx393_cur)
- rx393_fail:
+ rx372_cur."!cursor_pass"(rx372_pos, "statement_mod_cond:sym<unless>")
+ rx372_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym<unless>", " at pos=", rx372_pos)
+ .return (rx372_cur)
+ rx372_restart:
.annotate 'line', 4
- (rx393_rep, rx393_pos, $I10, $P10) = rx393_cur."!mark_fail"(0)
- lt rx393_pos, -1, rx393_done
- eq rx393_pos, -1, rx393_fail
+ rx372_cur."!cursor_debug"("NEXT ", "statement_mod_cond:sym<unless>")
+ rx372_fail:
+ (rx372_rep, rx372_pos, $I10, $P10) = rx372_cur."!mark_fail"(0)
+ lt rx372_pos, -1, rx372_done
+ eq rx372_pos, -1, rx372_fail
jump $I10
- rx393_done:
- rx393_cur."!cursor_fail"()
- rx393_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym<unless>")
- .return (rx393_cur)
+ rx372_done:
+ rx372_cur."!cursor_fail"()
+ rx372_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym<unless>")
+ .return (rx372_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<unless>" :subid("90_1275811487.95429") :method
+.sub "!PREFIX__statement_mod_cond:sym<unless>" :subid("90_1280467477.44751") :method
.annotate 'line', 4
- $P395 = self."!PREFIX__!subrule"("ws", "unless")
- new $P396, "ResizablePMCArray"
- push $P396, $P395
- .return ($P396)
+ $P374 = self."!PREFIX__!subrule"("ws", "unless")
+ new $P375, "ResizablePMCArray"
+ push $P375, $P374
+ .return ($P375)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop" :subid("91_1275811487.95429") :method
+.sub "statement_mod_loop" :subid("91_1280467477.44751") :method
.annotate 'line', 217
- $P402 = self."!protoregex"("statement_mod_loop")
- .return ($P402)
+ $P381 = self."!protoregex"("statement_mod_loop")
+ .return ($P381)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop" :subid("92_1275811487.95429") :method
+.sub "!PREFIX__statement_mod_loop" :subid("92_1280467477.44751") :method
.annotate 'line', 217
- $P404 = self."!PREFIX__!protoregex"("statement_mod_loop")
- .return ($P404)
+ $P383 = self."!PREFIX__!protoregex"("statement_mod_loop")
+ .return ($P383)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<while>" :subid("93_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_mod_loop:sym<while>" :subid("93_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx406_tgt
- .local int rx406_pos
- .local int rx406_off
- .local int rx406_eos
- .local int rx406_rep
- .local pmc rx406_cur
- (rx406_cur, rx406_pos, rx406_tgt) = self."!cursor_start"()
- rx406_cur."!cursor_debug"("START ", "statement_mod_loop:sym<while>")
- .lex unicode:"$\x{a2}", rx406_cur
- .local pmc match
- .lex "$/", match
- length rx406_eos, rx406_tgt
- gt rx406_pos, rx406_eos, rx406_done
- set rx406_off, 0
- lt rx406_pos, 2, rx406_start
- sub rx406_off, rx406_pos, 1
- substr rx406_tgt, rx406_tgt, rx406_off
- rx406_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan410_done
- goto rxscan410_scan
- rxscan410_loop:
- ($P10) = rx406_cur."from"()
- inc $P10
- set rx406_pos, $P10
- ge rx406_pos, rx406_eos, rxscan410_done
- rxscan410_scan:
- set_addr $I10, rxscan410_loop
- rx406_cur."!mark_push"(0, rx406_pos, $I10)
- rxscan410_done:
+ .local string rx385_tgt
+ .local int rx385_pos
+ .local int rx385_off
+ .local int rx385_eos
+ .local int rx385_rep
+ .local pmc rx385_cur
+ (rx385_cur, rx385_pos, rx385_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx385_cur
+ .local pmc match
+ .lex "$/", match
+ length rx385_eos, rx385_tgt
+ gt rx385_pos, rx385_eos, rx385_done
+ set rx385_off, 0
+ lt rx385_pos, 2, rx385_start
+ sub rx385_off, rx385_pos, 1
+ substr rx385_tgt, rx385_tgt, rx385_off
+ rx385_start:
+ eq $I10, 1, rx385_restart
+ rx385_cur."!cursor_debug"("START ", "statement_mod_loop:sym<while>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan389_done
+ goto rxscan389_scan
+ rxscan389_loop:
+ ($P10) = rx385_cur."from"()
+ inc $P10
+ set rx385_pos, $P10
+ ge rx385_pos, rx385_eos, rxscan389_done
+ rxscan389_scan:
+ set_addr $I10, rxscan389_loop
+ rx385_cur."!mark_push"(0, rx385_pos, $I10)
+ rxscan389_done:
.annotate 'line', 219
# rx subcapture "sym"
- set_addr $I10, rxcap_411_fail
- rx406_cur."!mark_push"(0, rx406_pos, $I10)
+ set_addr $I10, rxcap_390_fail
+ rx385_cur."!mark_push"(0, rx385_pos, $I10)
# rx literal "while"
- add $I11, rx406_pos, 5
- gt $I11, rx406_eos, rx406_fail
- sub $I11, rx406_pos, rx406_off
- substr $S10, rx406_tgt, $I11, 5
- ne $S10, "while", rx406_fail
- add rx406_pos, 5
- set_addr $I10, rxcap_411_fail
- ($I12, $I11) = rx406_cur."!mark_peek"($I10)
- rx406_cur."!cursor_pos"($I11)
- ($P10) = rx406_cur."!cursor_start"()
- $P10."!cursor_pass"(rx406_pos, "")
- rx406_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx385_pos, 5
+ gt $I11, rx385_eos, rx385_fail
+ sub $I11, rx385_pos, rx385_off
+ substr $S10, rx385_tgt, $I11, 5
+ ne $S10, "while", rx385_fail
+ add rx385_pos, 5
+ set_addr $I10, rxcap_390_fail
+ ($I12, $I11) = rx385_cur."!mark_peek"($I10)
+ rx385_cur."!cursor_pos"($I11)
+ ($P10) = rx385_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx385_pos, "")
+ rx385_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_411_done
- rxcap_411_fail:
- goto rx406_fail
- rxcap_411_done:
- # rx subrule "ws" subtype=method negate=
- rx406_cur."!cursor_pos"(rx406_pos)
- $P10 = rx406_cur."ws"()
- unless $P10, rx406_fail
- rx406_pos = $P10."pos"()
+ goto rxcap_390_done
+ rxcap_390_fail:
+ goto rx385_fail
+ rxcap_390_done:
+ # rx subrule "ws" subtype=method negate=
+ rx385_cur."!cursor_pos"(rx385_pos)
+ $P10 = rx385_cur."ws"()
+ unless $P10, rx385_fail
+ rx385_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx406_cur."!cursor_pos"(rx406_pos)
- $P10 = rx406_cur."EXPR"()
- unless $P10, rx406_fail
- rx406_cur."!mark_push"(0, -1, 0, $P10)
+ rx385_cur."!cursor_pos"(rx385_pos)
+ $P10 = rx385_cur."EXPR"()
+ unless $P10, rx385_fail
+ rx385_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("cond")
- rx406_pos = $P10."pos"()
+ rx385_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx406_cur."!cursor_pos"(rx406_pos)
- $P10 = rx406_cur."ws"()
- unless $P10, rx406_fail
- rx406_pos = $P10."pos"()
+ rx385_cur."!cursor_pos"(rx385_pos)
+ $P10 = rx385_cur."ws"()
+ unless $P10, rx385_fail
+ rx385_pos = $P10."pos"()
# rx pass
- rx406_cur."!cursor_pass"(rx406_pos, "statement_mod_loop:sym<while>")
- rx406_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym<while>", " at pos=", rx406_pos)
- .return (rx406_cur)
- rx406_fail:
+ rx385_cur."!cursor_pass"(rx385_pos, "statement_mod_loop:sym<while>")
+ rx385_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym<while>", " at pos=", rx385_pos)
+ .return (rx385_cur)
+ rx385_restart:
.annotate 'line', 4
- (rx406_rep, rx406_pos, $I10, $P10) = rx406_cur."!mark_fail"(0)
- lt rx406_pos, -1, rx406_done
- eq rx406_pos, -1, rx406_fail
+ rx385_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<while>")
+ rx385_fail:
+ (rx385_rep, rx385_pos, $I10, $P10) = rx385_cur."!mark_fail"(0)
+ lt rx385_pos, -1, rx385_done
+ eq rx385_pos, -1, rx385_fail
jump $I10
- rx406_done:
- rx406_cur."!cursor_fail"()
- rx406_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym<while>")
- .return (rx406_cur)
+ rx385_done:
+ rx385_cur."!cursor_fail"()
+ rx385_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym<while>")
+ .return (rx385_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<while>" :subid("94_1275811487.95429") :method
+.sub "!PREFIX__statement_mod_loop:sym<while>" :subid("94_1280467477.44751") :method
.annotate 'line', 4
- $P408 = self."!PREFIX__!subrule"("ws", "while")
- new $P409, "ResizablePMCArray"
- push $P409, $P408
- .return ($P409)
+ $P387 = self."!PREFIX__!subrule"("ws", "while")
+ new $P388, "ResizablePMCArray"
+ push $P388, $P387
+ .return ($P388)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<until>" :subid("95_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_mod_loop:sym<until>" :subid("95_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx415_tgt
- .local int rx415_pos
- .local int rx415_off
- .local int rx415_eos
- .local int rx415_rep
- .local pmc rx415_cur
- (rx415_cur, rx415_pos, rx415_tgt) = self."!cursor_start"()
- rx415_cur."!cursor_debug"("START ", "statement_mod_loop:sym<until>")
- .lex unicode:"$\x{a2}", rx415_cur
+ .local string rx394_tgt
+ .local int rx394_pos
+ .local int rx394_off
+ .local int rx394_eos
+ .local int rx394_rep
+ .local pmc rx394_cur
+ (rx394_cur, rx394_pos, rx394_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx394_cur
.local pmc match
.lex "$/", match
- length rx415_eos, rx415_tgt
- gt rx415_pos, rx415_eos, rx415_done
- set rx415_off, 0
- lt rx415_pos, 2, rx415_start
- sub rx415_off, rx415_pos, 1
- substr rx415_tgt, rx415_tgt, rx415_off
- rx415_start:
+ length rx394_eos, rx394_tgt
+ gt rx394_pos, rx394_eos, rx394_done
+ set rx394_off, 0
+ lt rx394_pos, 2, rx394_start
+ sub rx394_off, rx394_pos, 1
+ substr rx394_tgt, rx394_tgt, rx394_off
+ rx394_start:
+ eq $I10, 1, rx394_restart
+ rx394_cur."!cursor_debug"("START ", "statement_mod_loop:sym<until>")
$I10 = self.'from'()
- ne $I10, -1, rxscan419_done
- goto rxscan419_scan
- rxscan419_loop:
- ($P10) = rx415_cur."from"()
+ ne $I10, -1, rxscan398_done
+ goto rxscan398_scan
+ rxscan398_loop:
+ ($P10) = rx394_cur."from"()
inc $P10
- set rx415_pos, $P10
- ge rx415_pos, rx415_eos, rxscan419_done
- rxscan419_scan:
- set_addr $I10, rxscan419_loop
- rx415_cur."!mark_push"(0, rx415_pos, $I10)
- rxscan419_done:
+ set rx394_pos, $P10
+ ge rx394_pos, rx394_eos, rxscan398_done
+ rxscan398_scan:
+ set_addr $I10, rxscan398_loop
+ rx394_cur."!mark_push"(0, rx394_pos, $I10)
+ rxscan398_done:
.annotate 'line', 220
# rx subcapture "sym"
- set_addr $I10, rxcap_420_fail
- rx415_cur."!mark_push"(0, rx415_pos, $I10)
+ set_addr $I10, rxcap_399_fail
+ rx394_cur."!mark_push"(0, rx394_pos, $I10)
# rx literal "until"
- add $I11, rx415_pos, 5
- gt $I11, rx415_eos, rx415_fail
- sub $I11, rx415_pos, rx415_off
- substr $S10, rx415_tgt, $I11, 5
- ne $S10, "until", rx415_fail
- add rx415_pos, 5
- set_addr $I10, rxcap_420_fail
- ($I12, $I11) = rx415_cur."!mark_peek"($I10)
- rx415_cur."!cursor_pos"($I11)
- ($P10) = rx415_cur."!cursor_start"()
- $P10."!cursor_pass"(rx415_pos, "")
- rx415_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx394_pos, 5
+ gt $I11, rx394_eos, rx394_fail
+ sub $I11, rx394_pos, rx394_off
+ substr $S10, rx394_tgt, $I11, 5
+ ne $S10, "until", rx394_fail
+ add rx394_pos, 5
+ set_addr $I10, rxcap_399_fail
+ ($I12, $I11) = rx394_cur."!mark_peek"($I10)
+ rx394_cur."!cursor_pos"($I11)
+ ($P10) = rx394_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx394_pos, "")
+ rx394_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_399_done
+ rxcap_399_fail:
+ goto rx394_fail
+ rxcap_399_done:
+ # rx subrule "ws" subtype=method negate=
+ rx394_cur."!cursor_pos"(rx394_pos)
+ $P10 = rx394_cur."ws"()
+ unless $P10, rx394_fail
+ rx394_pos = $P10."pos"()
+ # rx subrule "EXPR" subtype=capture negate=
+ rx394_cur."!cursor_pos"(rx394_pos)
+ $P10 = rx394_cur."EXPR"()
+ unless $P10, rx394_fail
+ rx394_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("cond")
+ rx394_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx394_cur."!cursor_pos"(rx394_pos)
+ $P10 = rx394_cur."ws"()
+ unless $P10, rx394_fail
+ rx394_pos = $P10."pos"()
+ # rx 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)
+ .return (rx394_cur)
+ rx394_restart:
+.annotate 'line', 4
+ rx394_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<until>")
+ rx394_fail:
+ (rx394_rep, rx394_pos, $I10, $P10) = rx394_cur."!mark_fail"(0)
+ lt rx394_pos, -1, rx394_done
+ eq rx394_pos, -1, rx394_fail
+ jump $I10
+ rx394_done:
+ rx394_cur."!cursor_fail"()
+ rx394_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym<until>")
+ .return (rx394_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__statement_mod_loop:sym<until>" :subid("96_1280467477.44751") :method
+.annotate 'line', 4
+ $P396 = self."!PREFIX__!subrule"("ws", "until")
+ new $P397, "ResizablePMCArray"
+ push $P397, $P396
+ .return ($P397)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "statement_mod_loop:sym<for>" :subid("97_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx403_tgt
+ .local int rx403_pos
+ .local int rx403_off
+ .local int rx403_eos
+ .local int rx403_rep
+ .local pmc rx403_cur
+ (rx403_cur, rx403_pos, rx403_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx403_cur
+ .local pmc match
+ .lex "$/", match
+ length rx403_eos, rx403_tgt
+ gt rx403_pos, rx403_eos, rx403_done
+ set rx403_off, 0
+ lt rx403_pos, 2, rx403_start
+ sub rx403_off, rx403_pos, 1
+ substr rx403_tgt, rx403_tgt, rx403_off
+ rx403_start:
+ eq $I10, 1, rx403_restart
+ rx403_cur."!cursor_debug"("START ", "statement_mod_loop:sym<for>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan407_done
+ goto rxscan407_scan
+ rxscan407_loop:
+ ($P10) = rx403_cur."from"()
+ inc $P10
+ set rx403_pos, $P10
+ ge rx403_pos, rx403_eos, rxscan407_done
+ rxscan407_scan:
+ set_addr $I10, rxscan407_loop
+ rx403_cur."!mark_push"(0, rx403_pos, $I10)
+ rxscan407_done:
+.annotate 'line', 221
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_408_fail
+ rx403_cur."!mark_push"(0, rx403_pos, $I10)
+ # rx literal "for"
+ add $I11, rx403_pos, 3
+ gt $I11, rx403_eos, rx403_fail
+ sub $I11, rx403_pos, rx403_off
+ substr $S10, rx403_tgt, $I11, 3
+ ne $S10, "for", rx403_fail
+ add rx403_pos, 3
+ set_addr $I10, rxcap_408_fail
+ ($I12, $I11) = rx403_cur."!mark_peek"($I10)
+ rx403_cur."!cursor_pos"($I11)
+ ($P10) = rx403_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx403_pos, "")
+ rx403_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_420_done
- rxcap_420_fail:
- goto rx415_fail
- rxcap_420_done:
- # rx subrule "ws" subtype=method negate=
- rx415_cur."!cursor_pos"(rx415_pos)
- $P10 = rx415_cur."ws"()
- unless $P10, rx415_fail
- rx415_pos = $P10."pos"()
+ goto rxcap_408_done
+ rxcap_408_fail:
+ goto rx403_fail
+ rxcap_408_done:
+ # rx subrule "ws" subtype=method negate=
+ rx403_cur."!cursor_pos"(rx403_pos)
+ $P10 = rx403_cur."ws"()
+ unless $P10, rx403_fail
+ rx403_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx415_cur."!cursor_pos"(rx415_pos)
- $P10 = rx415_cur."EXPR"()
- unless $P10, rx415_fail
- rx415_cur."!mark_push"(0, -1, 0, $P10)
+ rx403_cur."!cursor_pos"(rx403_pos)
+ $P10 = rx403_cur."EXPR"()
+ unless $P10, rx403_fail
+ rx403_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("cond")
- rx415_pos = $P10."pos"()
+ rx403_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx415_cur."!cursor_pos"(rx415_pos)
- $P10 = rx415_cur."ws"()
- unless $P10, rx415_fail
- rx415_pos = $P10."pos"()
+ rx403_cur."!cursor_pos"(rx403_pos)
+ $P10 = rx403_cur."ws"()
+ unless $P10, rx403_fail
+ 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)
+ .return (rx403_cur)
+ rx403_restart:
+.annotate 'line', 4
+ rx403_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<for>")
+ rx403_fail:
+ (rx403_rep, rx403_pos, $I10, $P10) = rx403_cur."!mark_fail"(0)
+ lt rx403_pos, -1, rx403_done
+ eq rx403_pos, -1, rx403_fail
+ jump $I10
+ rx403_done:
+ rx403_cur."!cursor_fail"()
+ rx403_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym<for>")
+ .return (rx403_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__statement_mod_loop:sym<for>" :subid("98_1280467477.44751") :method
+.annotate 'line', 4
+ $P405 = self."!PREFIX__!subrule"("ws", "for")
+ new $P406, "ResizablePMCArray"
+ push $P406, $P405
+ .return ($P406)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "term:sym<fatarrow>" :subid("99_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx412_tgt
+ .local int rx412_pos
+ .local int rx412_off
+ .local int rx412_eos
+ .local int rx412_rep
+ .local pmc rx412_cur
+ (rx412_cur, rx412_pos, rx412_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx412_cur
+ .local pmc match
+ .lex "$/", match
+ length rx412_eos, rx412_tgt
+ gt rx412_pos, rx412_eos, rx412_done
+ set rx412_off, 0
+ lt rx412_pos, 2, rx412_start
+ sub rx412_off, rx412_pos, 1
+ substr rx412_tgt, rx412_tgt, rx412_off
+ rx412_start:
+ eq $I10, 1, rx412_restart
+ rx412_cur."!cursor_debug"("START ", "term:sym<fatarrow>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan416_done
+ goto rxscan416_scan
+ rxscan416_loop:
+ ($P10) = rx412_cur."from"()
+ inc $P10
+ set rx412_pos, $P10
+ ge rx412_pos, rx412_eos, rxscan416_done
+ rxscan416_scan:
+ set_addr $I10, rxscan416_loop
+ rx412_cur."!mark_push"(0, rx412_pos, $I10)
+ rxscan416_done:
+.annotate 'line', 225
+ # rx subrule "fatarrow" subtype=capture negate=
+ rx412_cur."!cursor_pos"(rx412_pos)
+ $P10 = rx412_cur."fatarrow"()
+ unless $P10, rx412_fail
+ rx412_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("fatarrow")
+ 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)
+ .return (rx412_cur)
+ rx412_restart:
+.annotate 'line', 4
+ rx412_cur."!cursor_debug"("NEXT ", "term:sym<fatarrow>")
+ rx412_fail:
+ (rx412_rep, rx412_pos, $I10, $P10) = rx412_cur."!mark_fail"(0)
+ lt rx412_pos, -1, rx412_done
+ eq rx412_pos, -1, rx412_fail
+ jump $I10
+ rx412_done:
+ rx412_cur."!cursor_fail"()
+ rx412_cur."!cursor_debug"("FAIL ", "term:sym<fatarrow>")
+ .return (rx412_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__term:sym<fatarrow>" :subid("100_1280467477.44751") :method
+.annotate 'line', 4
+ $P414 = self."!PREFIX__!subrule"("fatarrow", "")
+ new $P415, "ResizablePMCArray"
+ push $P415, $P414
+ .return ($P415)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "term:sym<colonpair>" :subid("101_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx418_tgt
+ .local int rx418_pos
+ .local int rx418_off
+ .local int rx418_eos
+ .local int rx418_rep
+ .local pmc rx418_cur
+ (rx418_cur, rx418_pos, rx418_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx418_cur
+ .local pmc match
+ .lex "$/", match
+ length rx418_eos, rx418_tgt
+ gt rx418_pos, rx418_eos, rx418_done
+ set rx418_off, 0
+ lt rx418_pos, 2, rx418_start
+ sub rx418_off, rx418_pos, 1
+ substr rx418_tgt, rx418_tgt, rx418_off
+ rx418_start:
+ eq $I10, 1, rx418_restart
+ rx418_cur."!cursor_debug"("START ", "term:sym<colonpair>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan422_done
+ goto rxscan422_scan
+ rxscan422_loop:
+ ($P10) = rx418_cur."from"()
+ inc $P10
+ set rx418_pos, $P10
+ ge rx418_pos, rx418_eos, rxscan422_done
+ rxscan422_scan:
+ set_addr $I10, rxscan422_loop
+ rx418_cur."!mark_push"(0, rx418_pos, $I10)
+ rxscan422_done:
+.annotate 'line', 226
+ # rx subrule "colonpair" subtype=capture negate=
+ rx418_cur."!cursor_pos"(rx418_pos)
+ $P10 = rx418_cur."colonpair"()
+ unless $P10, rx418_fail
+ rx418_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("colonpair")
+ rx418_pos = $P10."pos"()
# rx pass
- rx415_cur."!cursor_pass"(rx415_pos, "statement_mod_loop:sym<until>")
- rx415_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym<until>", " at pos=", rx415_pos)
- .return (rx415_cur)
- rx415_fail:
+ rx418_cur."!cursor_pass"(rx418_pos, "term:sym<colonpair>")
+ rx418_cur."!cursor_debug"("PASS ", "term:sym<colonpair>", " at pos=", rx418_pos)
+ .return (rx418_cur)
+ rx418_restart:
.annotate 'line', 4
- (rx415_rep, rx415_pos, $I10, $P10) = rx415_cur."!mark_fail"(0)
- lt rx415_pos, -1, rx415_done
- eq rx415_pos, -1, rx415_fail
+ rx418_cur."!cursor_debug"("NEXT ", "term:sym<colonpair>")
+ rx418_fail:
+ (rx418_rep, rx418_pos, $I10, $P10) = rx418_cur."!mark_fail"(0)
+ lt rx418_pos, -1, rx418_done
+ eq rx418_pos, -1, rx418_fail
jump $I10
- rx415_done:
- rx415_cur."!cursor_fail"()
- rx415_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym<until>")
- .return (rx415_cur)
+ rx418_done:
+ rx418_cur."!cursor_fail"()
+ rx418_cur."!cursor_debug"("FAIL ", "term:sym<colonpair>")
+ .return (rx418_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<until>" :subid("96_1275811487.95429") :method
+.sub "!PREFIX__term:sym<colonpair>" :subid("102_1280467477.44751") :method
.annotate 'line', 4
- $P417 = self."!PREFIX__!subrule"("ws", "until")
- new $P418, "ResizablePMCArray"
- push $P418, $P417
- .return ($P418)
+ $P420 = self."!PREFIX__!subrule"("colonpair", "")
+ new $P421, "ResizablePMCArray"
+ push $P421, $P420
+ .return ($P421)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<fatarrow>" :subid("97_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<variable>" :subid("103_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
.local string rx424_tgt
.local int rx424_pos
@@ -5185,8 +5656,7 @@
.local int rx424_eos
.local int rx424_rep
.local pmc rx424_cur
- (rx424_cur, rx424_pos, rx424_tgt) = self."!cursor_start"()
- rx424_cur."!cursor_debug"("START ", "term:sym<fatarrow>")
+ (rx424_cur, rx424_pos, rx424_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx424_cur
.local pmc match
.lex "$/", match
@@ -5197,6 +5667,8 @@
sub rx424_off, rx424_pos, 1
substr rx424_tgt, rx424_tgt, rx424_off
rx424_start:
+ eq $I10, 1, rx424_restart
+ rx424_cur."!cursor_debug"("START ", "term:sym<variable>")
$I10 = self.'from'()
ne $I10, -1, rxscan428_done
goto rxscan428_scan
@@ -5209,36 +5681,38 @@
set_addr $I10, rxscan428_loop
rx424_cur."!mark_push"(0, rx424_pos, $I10)
rxscan428_done:
-.annotate 'line', 224
- # rx subrule "fatarrow" subtype=capture negate=
+.annotate 'line', 227
+ # rx subrule "variable" subtype=capture negate=
rx424_cur."!cursor_pos"(rx424_pos)
- $P10 = rx424_cur."fatarrow"()
+ $P10 = rx424_cur."variable"()
unless $P10, rx424_fail
rx424_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("fatarrow")
+ $P10."!cursor_names"("variable")
rx424_pos = $P10."pos"()
# rx pass
- rx424_cur."!cursor_pass"(rx424_pos, "term:sym<fatarrow>")
- rx424_cur."!cursor_debug"("PASS ", "term:sym<fatarrow>", " at pos=", rx424_pos)
+ rx424_cur."!cursor_pass"(rx424_pos, "term:sym<variable>")
+ rx424_cur."!cursor_debug"("PASS ", "term:sym<variable>", " at pos=", rx424_pos)
.return (rx424_cur)
- rx424_fail:
+ rx424_restart:
.annotate 'line', 4
+ rx424_cur."!cursor_debug"("NEXT ", "term:sym<variable>")
+ rx424_fail:
(rx424_rep, rx424_pos, $I10, $P10) = rx424_cur."!mark_fail"(0)
lt rx424_pos, -1, rx424_done
eq rx424_pos, -1, rx424_fail
jump $I10
rx424_done:
rx424_cur."!cursor_fail"()
- rx424_cur."!cursor_debug"("FAIL ", "term:sym<fatarrow>")
+ rx424_cur."!cursor_debug"("FAIL ", "term:sym<variable>")
.return (rx424_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<fatarrow>" :subid("98_1275811487.95429") :method
+.sub "!PREFIX__term:sym<variable>" :subid("104_1280467477.44751") :method
.annotate 'line', 4
- $P426 = self."!PREFIX__!subrule"("fatarrow", "")
+ $P426 = self."!PREFIX__!subrule"("variable", "")
new $P427, "ResizablePMCArray"
push $P427, $P426
.return ($P427)
@@ -5246,7 +5720,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<colonpair>" :subid("99_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<package_declarator>" :subid("105_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
.local string rx430_tgt
.local int rx430_pos
@@ -5254,8 +5728,7 @@
.local int rx430_eos
.local int rx430_rep
.local pmc rx430_cur
- (rx430_cur, rx430_pos, rx430_tgt) = self."!cursor_start"()
- rx430_cur."!cursor_debug"("START ", "term:sym<colonpair>")
+ (rx430_cur, rx430_pos, rx430_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx430_cur
.local pmc match
.lex "$/", match
@@ -5266,6 +5739,8 @@
sub rx430_off, rx430_pos, 1
substr rx430_tgt, rx430_tgt, rx430_off
rx430_start:
+ eq $I10, 1, rx430_restart
+ rx430_cur."!cursor_debug"("START ", "term:sym<package_declarator>")
$I10 = self.'from'()
ne $I10, -1, rxscan434_done
goto rxscan434_scan
@@ -5278,36 +5753,38 @@
set_addr $I10, rxscan434_loop
rx430_cur."!mark_push"(0, rx430_pos, $I10)
rxscan434_done:
-.annotate 'line', 225
- # rx subrule "colonpair" subtype=capture negate=
+.annotate 'line', 228
+ # rx subrule "package_declarator" subtype=capture negate=
rx430_cur."!cursor_pos"(rx430_pos)
- $P10 = rx430_cur."colonpair"()
+ $P10 = rx430_cur."package_declarator"()
unless $P10, rx430_fail
rx430_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("colonpair")
+ $P10."!cursor_names"("package_declarator")
rx430_pos = $P10."pos"()
# rx pass
- rx430_cur."!cursor_pass"(rx430_pos, "term:sym<colonpair>")
- rx430_cur."!cursor_debug"("PASS ", "term:sym<colonpair>", " at pos=", rx430_pos)
+ rx430_cur."!cursor_pass"(rx430_pos, "term:sym<package_declarator>")
+ rx430_cur."!cursor_debug"("PASS ", "term:sym<package_declarator>", " at pos=", rx430_pos)
.return (rx430_cur)
- rx430_fail:
+ rx430_restart:
.annotate 'line', 4
+ rx430_cur."!cursor_debug"("NEXT ", "term:sym<package_declarator>")
+ rx430_fail:
(rx430_rep, rx430_pos, $I10, $P10) = rx430_cur."!mark_fail"(0)
lt rx430_pos, -1, rx430_done
eq rx430_pos, -1, rx430_fail
jump $I10
rx430_done:
rx430_cur."!cursor_fail"()
- rx430_cur."!cursor_debug"("FAIL ", "term:sym<colonpair>")
+ rx430_cur."!cursor_debug"("FAIL ", "term:sym<package_declarator>")
.return (rx430_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<colonpair>" :subid("100_1275811487.95429") :method
+.sub "!PREFIX__term:sym<package_declarator>" :subid("106_1280467477.44751") :method
.annotate 'line', 4
- $P432 = self."!PREFIX__!subrule"("colonpair", "")
+ $P432 = self."!PREFIX__!subrule"("package_declarator", "")
new $P433, "ResizablePMCArray"
push $P433, $P432
.return ($P433)
@@ -5315,7 +5792,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<variable>" :subid("101_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<scope_declarator>" :subid("107_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
.local string rx436_tgt
.local int rx436_pos
@@ -5323,8 +5800,7 @@
.local int rx436_eos
.local int rx436_rep
.local pmc rx436_cur
- (rx436_cur, rx436_pos, rx436_tgt) = self."!cursor_start"()
- rx436_cur."!cursor_debug"("START ", "term:sym<variable>")
+ (rx436_cur, rx436_pos, rx436_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx436_cur
.local pmc match
.lex "$/", match
@@ -5335,6 +5811,8 @@
sub rx436_off, rx436_pos, 1
substr rx436_tgt, rx436_tgt, rx436_off
rx436_start:
+ eq $I10, 1, rx436_restart
+ rx436_cur."!cursor_debug"("START ", "term:sym<scope_declarator>")
$I10 = self.'from'()
ne $I10, -1, rxscan440_done
goto rxscan440_scan
@@ -5347,36 +5825,38 @@
set_addr $I10, rxscan440_loop
rx436_cur."!mark_push"(0, rx436_pos, $I10)
rxscan440_done:
-.annotate 'line', 226
- # rx subrule "variable" subtype=capture negate=
+.annotate 'line', 229
+ # rx subrule "scope_declarator" subtype=capture negate=
rx436_cur."!cursor_pos"(rx436_pos)
- $P10 = rx436_cur."variable"()
+ $P10 = rx436_cur."scope_declarator"()
unless $P10, rx436_fail
rx436_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("variable")
+ $P10."!cursor_names"("scope_declarator")
rx436_pos = $P10."pos"()
# rx pass
- rx436_cur."!cursor_pass"(rx436_pos, "term:sym<variable>")
- rx436_cur."!cursor_debug"("PASS ", "term:sym<variable>", " at pos=", rx436_pos)
+ rx436_cur."!cursor_pass"(rx436_pos, "term:sym<scope_declarator>")
+ rx436_cur."!cursor_debug"("PASS ", "term:sym<scope_declarator>", " at pos=", rx436_pos)
.return (rx436_cur)
- rx436_fail:
+ rx436_restart:
.annotate 'line', 4
+ rx436_cur."!cursor_debug"("NEXT ", "term:sym<scope_declarator>")
+ rx436_fail:
(rx436_rep, rx436_pos, $I10, $P10) = rx436_cur."!mark_fail"(0)
lt rx436_pos, -1, rx436_done
eq rx436_pos, -1, rx436_fail
jump $I10
rx436_done:
rx436_cur."!cursor_fail"()
- rx436_cur."!cursor_debug"("FAIL ", "term:sym<variable>")
+ rx436_cur."!cursor_debug"("FAIL ", "term:sym<scope_declarator>")
.return (rx436_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<variable>" :subid("102_1275811487.95429") :method
+.sub "!PREFIX__term:sym<scope_declarator>" :subid("108_1280467477.44751") :method
.annotate 'line', 4
- $P438 = self."!PREFIX__!subrule"("variable", "")
+ $P438 = self."!PREFIX__!subrule"("scope_declarator", "")
new $P439, "ResizablePMCArray"
push $P439, $P438
.return ($P439)
@@ -5384,7 +5864,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<package_declarator>" :subid("103_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<routine_declarator>" :subid("109_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
.local string rx442_tgt
.local int rx442_pos
@@ -5392,8 +5872,7 @@
.local int rx442_eos
.local int rx442_rep
.local pmc rx442_cur
- (rx442_cur, rx442_pos, rx442_tgt) = self."!cursor_start"()
- rx442_cur."!cursor_debug"("START ", "term:sym<package_declarator>")
+ (rx442_cur, rx442_pos, rx442_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx442_cur
.local pmc match
.lex "$/", match
@@ -5404,6 +5883,8 @@
sub rx442_off, rx442_pos, 1
substr rx442_tgt, rx442_tgt, rx442_off
rx442_start:
+ eq $I10, 1, rx442_restart
+ rx442_cur."!cursor_debug"("START ", "term:sym<routine_declarator>")
$I10 = self.'from'()
ne $I10, -1, rxscan446_done
goto rxscan446_scan
@@ -5416,36 +5897,38 @@
set_addr $I10, rxscan446_loop
rx442_cur."!mark_push"(0, rx442_pos, $I10)
rxscan446_done:
-.annotate 'line', 227
- # rx subrule "package_declarator" subtype=capture negate=
+.annotate 'line', 230
+ # rx subrule "routine_declarator" subtype=capture negate=
rx442_cur."!cursor_pos"(rx442_pos)
- $P10 = rx442_cur."package_declarator"()
+ $P10 = rx442_cur."routine_declarator"()
unless $P10, rx442_fail
rx442_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("package_declarator")
+ $P10."!cursor_names"("routine_declarator")
rx442_pos = $P10."pos"()
# rx pass
- rx442_cur."!cursor_pass"(rx442_pos, "term:sym<package_declarator>")
- rx442_cur."!cursor_debug"("PASS ", "term:sym<package_declarator>", " at pos=", rx442_pos)
+ rx442_cur."!cursor_pass"(rx442_pos, "term:sym<routine_declarator>")
+ rx442_cur."!cursor_debug"("PASS ", "term:sym<routine_declarator>", " at pos=", rx442_pos)
.return (rx442_cur)
- rx442_fail:
+ rx442_restart:
.annotate 'line', 4
+ rx442_cur."!cursor_debug"("NEXT ", "term:sym<routine_declarator>")
+ rx442_fail:
(rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0)
lt rx442_pos, -1, rx442_done
eq rx442_pos, -1, rx442_fail
jump $I10
rx442_done:
rx442_cur."!cursor_fail"()
- rx442_cur."!cursor_debug"("FAIL ", "term:sym<package_declarator>")
+ rx442_cur."!cursor_debug"("FAIL ", "term:sym<routine_declarator>")
.return (rx442_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<package_declarator>" :subid("104_1275811487.95429") :method
+.sub "!PREFIX__term:sym<routine_declarator>" :subid("110_1280467477.44751") :method
.annotate 'line', 4
- $P444 = self."!PREFIX__!subrule"("package_declarator", "")
+ $P444 = self."!PREFIX__!subrule"("routine_declarator", "")
new $P445, "ResizablePMCArray"
push $P445, $P444
.return ($P445)
@@ -5453,16 +5936,17 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<scope_declarator>" :subid("105_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<multi_declarator>" :subid("111_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
+ .const 'Sub' $P453 = "113_1280467477.44751"
+ capture_lex $P453
.local string rx448_tgt
.local int rx448_pos
.local int rx448_off
.local int rx448_eos
.local int rx448_rep
.local pmc rx448_cur
- (rx448_cur, rx448_pos, rx448_tgt) = self."!cursor_start"()
- rx448_cur."!cursor_debug"("START ", "term:sym<scope_declarator>")
+ (rx448_cur, rx448_pos, rx448_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx448_cur
.local pmc match
.lex "$/", match
@@ -5473,65 +5957,73 @@
sub rx448_off, rx448_pos, 1
substr rx448_tgt, rx448_tgt, rx448_off
rx448_start:
+ eq $I10, 1, rx448_restart
+ rx448_cur."!cursor_debug"("START ", "term:sym<multi_declarator>")
$I10 = self.'from'()
- ne $I10, -1, rxscan452_done
- goto rxscan452_scan
- rxscan452_loop:
+ ne $I10, -1, rxscan451_done
+ goto rxscan451_scan
+ rxscan451_loop:
($P10) = rx448_cur."from"()
inc $P10
set rx448_pos, $P10
- ge rx448_pos, rx448_eos, rxscan452_done
- rxscan452_scan:
- set_addr $I10, rxscan452_loop
+ ge rx448_pos, rx448_eos, rxscan451_done
+ rxscan451_scan:
+ set_addr $I10, rxscan451_loop
rx448_cur."!mark_push"(0, rx448_pos, $I10)
- rxscan452_done:
-.annotate 'line', 228
- # rx subrule "scope_declarator" subtype=capture negate=
+ rxscan451_done:
+.annotate 'line', 231
+ # rx subrule "before" subtype=zerowidth negate=
+ rx448_cur."!cursor_pos"(rx448_pos)
+ .const 'Sub' $P453 = "113_1280467477.44751"
+ capture_lex $P453
+ $P10 = rx448_cur."before"($P453)
+ unless $P10, rx448_fail
+ # rx subrule "multi_declarator" subtype=capture negate=
rx448_cur."!cursor_pos"(rx448_pos)
- $P10 = rx448_cur."scope_declarator"()
+ $P10 = rx448_cur."multi_declarator"()
unless $P10, rx448_fail
rx448_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("scope_declarator")
+ $P10."!cursor_names"("multi_declarator")
rx448_pos = $P10."pos"()
# rx pass
- rx448_cur."!cursor_pass"(rx448_pos, "term:sym<scope_declarator>")
- rx448_cur."!cursor_debug"("PASS ", "term:sym<scope_declarator>", " at pos=", rx448_pos)
+ rx448_cur."!cursor_pass"(rx448_pos, "term:sym<multi_declarator>")
+ rx448_cur."!cursor_debug"("PASS ", "term:sym<multi_declarator>", " at pos=", rx448_pos)
.return (rx448_cur)
- rx448_fail:
+ rx448_restart:
.annotate 'line', 4
+ rx448_cur."!cursor_debug"("NEXT ", "term:sym<multi_declarator>")
+ rx448_fail:
(rx448_rep, rx448_pos, $I10, $P10) = rx448_cur."!mark_fail"(0)
lt rx448_pos, -1, rx448_done
eq rx448_pos, -1, rx448_fail
jump $I10
rx448_done:
rx448_cur."!cursor_fail"()
- rx448_cur."!cursor_debug"("FAIL ", "term:sym<scope_declarator>")
+ rx448_cur."!cursor_debug"("FAIL ", "term:sym<multi_declarator>")
.return (rx448_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<scope_declarator>" :subid("106_1275811487.95429") :method
+.sub "!PREFIX__term:sym<multi_declarator>" :subid("112_1280467477.44751") :method
.annotate 'line', 4
- $P450 = self."!PREFIX__!subrule"("scope_declarator", "")
- new $P451, "ResizablePMCArray"
- push $P451, $P450
- .return ($P451)
+ new $P450, "ResizablePMCArray"
+ push $P450, ""
+ .return ($P450)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<routine_declarator>" :subid("107_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
+.sub "_block452" :anon :subid("113_1280467477.44751") :method :outer("111_1280467477.44751")
+.annotate 'line', 231
.local string rx454_tgt
.local int rx454_pos
.local int rx454_off
.local int rx454_eos
.local int rx454_rep
.local pmc rx454_cur
- (rx454_cur, rx454_pos, rx454_tgt) = self."!cursor_start"()
- rx454_cur."!cursor_debug"("START ", "term:sym<routine_declarator>")
+ (rx454_cur, rx454_pos, rx454_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx454_cur
.local pmc match
.lex "$/", match
@@ -5542,213 +6034,216 @@
sub rx454_off, rx454_pos, 1
substr rx454_tgt, rx454_tgt, rx454_off
rx454_start:
+ eq $I10, 1, rx454_restart
+ rx454_cur."!cursor_debug"("START ", "")
$I10 = self.'from'()
- ne $I10, -1, rxscan458_done
- goto rxscan458_scan
- rxscan458_loop:
+ ne $I10, -1, rxscan455_done
+ goto rxscan455_scan
+ rxscan455_loop:
($P10) = rx454_cur."from"()
inc $P10
set rx454_pos, $P10
- ge rx454_pos, rx454_eos, rxscan458_done
- rxscan458_scan:
- set_addr $I10, rxscan458_loop
+ ge rx454_pos, rx454_eos, rxscan455_done
+ rxscan455_scan:
+ set_addr $I10, rxscan455_loop
rx454_cur."!mark_push"(0, rx454_pos, $I10)
- rxscan458_done:
-.annotate 'line', 229
- # rx subrule "routine_declarator" subtype=capture negate=
- rx454_cur."!cursor_pos"(rx454_pos)
- $P10 = rx454_cur."routine_declarator"()
- unless $P10, rx454_fail
- rx454_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("routine_declarator")
- rx454_pos = $P10."pos"()
+ rxscan455_done:
+ alt456_0:
+ set_addr $I10, alt456_1
+ rx454_cur."!mark_push"(0, rx454_pos, $I10)
+ # rx literal "multi"
+ add $I11, rx454_pos, 5
+ gt $I11, rx454_eos, rx454_fail
+ sub $I11, rx454_pos, rx454_off
+ substr $S10, rx454_tgt, $I11, 5
+ ne $S10, "multi", rx454_fail
+ add rx454_pos, 5
+ goto alt456_end
+ alt456_1:
+ set_addr $I10, alt456_2
+ rx454_cur."!mark_push"(0, rx454_pos, $I10)
+ # rx literal "proto"
+ add $I11, rx454_pos, 5
+ gt $I11, rx454_eos, rx454_fail
+ sub $I11, rx454_pos, rx454_off
+ substr $S10, rx454_tgt, $I11, 5
+ ne $S10, "proto", rx454_fail
+ add rx454_pos, 5
+ goto alt456_end
+ alt456_2:
+ # rx literal "only"
+ add $I11, rx454_pos, 4
+ gt $I11, rx454_eos, rx454_fail
+ sub $I11, rx454_pos, rx454_off
+ substr $S10, rx454_tgt, $I11, 4
+ ne $S10, "only", rx454_fail
+ add rx454_pos, 4
+ alt456_end:
# rx pass
- rx454_cur."!cursor_pass"(rx454_pos, "term:sym<routine_declarator>")
- rx454_cur."!cursor_debug"("PASS ", "term:sym<routine_declarator>", " at pos=", rx454_pos)
+ rx454_cur."!cursor_pass"(rx454_pos, "")
+ rx454_cur."!cursor_debug"("PASS ", "", " at pos=", rx454_pos)
.return (rx454_cur)
+ rx454_restart:
+ rx454_cur."!cursor_debug"("NEXT ", "")
rx454_fail:
-.annotate 'line', 4
(rx454_rep, rx454_pos, $I10, $P10) = rx454_cur."!mark_fail"(0)
lt rx454_pos, -1, rx454_done
eq rx454_pos, -1, rx454_fail
jump $I10
rx454_done:
rx454_cur."!cursor_fail"()
- rx454_cur."!cursor_debug"("FAIL ", "term:sym<routine_declarator>")
+ rx454_cur."!cursor_debug"("FAIL ", "")
.return (rx454_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<routine_declarator>" :subid("108_1275811487.95429") :method
+.sub "term:sym<regex_declarator>" :subid("114_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx458_tgt
+ .local int rx458_pos
+ .local int rx458_off
+ .local int rx458_eos
+ .local int rx458_rep
+ .local pmc rx458_cur
+ (rx458_cur, rx458_pos, rx458_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx458_cur
+ .local pmc match
+ .lex "$/", match
+ length rx458_eos, rx458_tgt
+ gt rx458_pos, rx458_eos, rx458_done
+ set rx458_off, 0
+ lt rx458_pos, 2, rx458_start
+ sub rx458_off, rx458_pos, 1
+ substr rx458_tgt, rx458_tgt, rx458_off
+ rx458_start:
+ eq $I10, 1, rx458_restart
+ rx458_cur."!cursor_debug"("START ", "term:sym<regex_declarator>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan462_done
+ goto rxscan462_scan
+ rxscan462_loop:
+ ($P10) = rx458_cur."from"()
+ inc $P10
+ set rx458_pos, $P10
+ ge rx458_pos, rx458_eos, rxscan462_done
+ rxscan462_scan:
+ set_addr $I10, rxscan462_loop
+ rx458_cur."!mark_push"(0, rx458_pos, $I10)
+ rxscan462_done:
+.annotate 'line', 232
+ # rx subrule "regex_declarator" subtype=capture negate=
+ rx458_cur."!cursor_pos"(rx458_pos)
+ $P10 = rx458_cur."regex_declarator"()
+ unless $P10, rx458_fail
+ rx458_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("regex_declarator")
+ 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)
+ .return (rx458_cur)
+ rx458_restart:
.annotate 'line', 4
- $P456 = self."!PREFIX__!subrule"("routine_declarator", "")
- new $P457, "ResizablePMCArray"
- push $P457, $P456
- .return ($P457)
+ rx458_cur."!cursor_debug"("NEXT ", "term:sym<regex_declarator>")
+ rx458_fail:
+ (rx458_rep, rx458_pos, $I10, $P10) = rx458_cur."!mark_fail"(0)
+ lt rx458_pos, -1, rx458_done
+ eq rx458_pos, -1, rx458_fail
+ jump $I10
+ rx458_done:
+ rx458_cur."!cursor_fail"()
+ rx458_cur."!cursor_debug"("FAIL ", "term:sym<regex_declarator>")
+ .return (rx458_cur)
+ .return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<multi_declarator>" :subid("109_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .const 'Sub' $P465 = "111_1275811487.95429"
- capture_lex $P465
- .local string rx460_tgt
- .local int rx460_pos
- .local int rx460_off
- .local int rx460_eos
- .local int rx460_rep
- .local pmc rx460_cur
- (rx460_cur, rx460_pos, rx460_tgt) = self."!cursor_start"()
- rx460_cur."!cursor_debug"("START ", "term:sym<multi_declarator>")
- .lex unicode:"$\x{a2}", rx460_cur
- .local pmc match
- .lex "$/", match
- length rx460_eos, rx460_tgt
- gt rx460_pos, rx460_eos, rx460_done
- set rx460_off, 0
- lt rx460_pos, 2, rx460_start
- sub rx460_off, rx460_pos, 1
- substr rx460_tgt, rx460_tgt, rx460_off
- rx460_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan463_done
- goto rxscan463_scan
- rxscan463_loop:
- ($P10) = rx460_cur."from"()
- inc $P10
- set rx460_pos, $P10
- ge rx460_pos, rx460_eos, rxscan463_done
- rxscan463_scan:
- set_addr $I10, rxscan463_loop
- rx460_cur."!mark_push"(0, rx460_pos, $I10)
- rxscan463_done:
-.annotate 'line', 230
- # rx subrule "before" subtype=zerowidth negate=
- rx460_cur."!cursor_pos"(rx460_pos)
- .const 'Sub' $P465 = "111_1275811487.95429"
- capture_lex $P465
- $P10 = rx460_cur."before"($P465)
- unless $P10, rx460_fail
- # rx subrule "multi_declarator" subtype=capture negate=
- rx460_cur."!cursor_pos"(rx460_pos)
- $P10 = rx460_cur."multi_declarator"()
- unless $P10, rx460_fail
- rx460_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("multi_declarator")
- rx460_pos = $P10."pos"()
- # rx pass
- rx460_cur."!cursor_pass"(rx460_pos, "term:sym<multi_declarator>")
- rx460_cur."!cursor_debug"("PASS ", "term:sym<multi_declarator>", " at pos=", rx460_pos)
- .return (rx460_cur)
- rx460_fail:
+.sub "!PREFIX__term:sym<regex_declarator>" :subid("115_1280467477.44751") :method
.annotate 'line', 4
- (rx460_rep, rx460_pos, $I10, $P10) = rx460_cur."!mark_fail"(0)
- lt rx460_pos, -1, rx460_done
- eq rx460_pos, -1, rx460_fail
- jump $I10
- rx460_done:
- rx460_cur."!cursor_fail"()
- rx460_cur."!cursor_debug"("FAIL ", "term:sym<multi_declarator>")
- .return (rx460_cur)
- .return ()
+ $P460 = self."!PREFIX__!subrule"("regex_declarator", "")
+ new $P461, "ResizablePMCArray"
+ push $P461, $P460
+ .return ($P461)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<multi_declarator>" :subid("110_1275811487.95429") :method
+.sub "term:sym<statement_prefix>" :subid("116_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx464_tgt
+ .local int rx464_pos
+ .local int rx464_off
+ .local int rx464_eos
+ .local int rx464_rep
+ .local pmc rx464_cur
+ (rx464_cur, rx464_pos, rx464_tgt, $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 ", "term:sym<statement_prefix>")
+ $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', 233
+ # rx subrule "statement_prefix" subtype=capture negate=
+ rx464_cur."!cursor_pos"(rx464_pos)
+ $P10 = rx464_cur."statement_prefix"()
+ unless $P10, rx464_fail
+ rx464_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("statement_prefix")
+ 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)
+ .return (rx464_cur)
+ rx464_restart:
.annotate 'line', 4
- new $P462, "ResizablePMCArray"
- push $P462, ""
- .return ($P462)
+ rx464_cur."!cursor_debug"("NEXT ", "term:sym<statement_prefix>")
+ rx464_fail:
+ (rx464_rep, rx464_pos, $I10, $P10) = rx464_cur."!mark_fail"(0)
+ lt rx464_pos, -1, rx464_done
+ eq rx464_pos, -1, rx464_fail
+ jump $I10
+ rx464_done:
+ rx464_cur."!cursor_fail"()
+ rx464_cur."!cursor_debug"("FAIL ", "term:sym<statement_prefix>")
+ .return (rx464_cur)
+ .return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "_block464" :anon :subid("111_1275811487.95429") :method :outer("109_1275811487.95429")
-.annotate 'line', 230
- .local string rx466_tgt
- .local int rx466_pos
- .local int rx466_off
- .local int rx466_eos
- .local int rx466_rep
- .local pmc rx466_cur
- (rx466_cur, rx466_pos, rx466_tgt) = self."!cursor_start"()
- rx466_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx466_cur
- .local pmc match
- .lex "$/", match
- length rx466_eos, rx466_tgt
- gt rx466_pos, rx466_eos, rx466_done
- set rx466_off, 0
- lt rx466_pos, 2, rx466_start
- sub rx466_off, rx466_pos, 1
- substr rx466_tgt, rx466_tgt, rx466_off
- rx466_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan467_done
- goto rxscan467_scan
- rxscan467_loop:
- ($P10) = rx466_cur."from"()
- inc $P10
- set rx466_pos, $P10
- ge rx466_pos, rx466_eos, rxscan467_done
- rxscan467_scan:
- set_addr $I10, rxscan467_loop
- rx466_cur."!mark_push"(0, rx466_pos, $I10)
- rxscan467_done:
- alt468_0:
- set_addr $I10, alt468_1
- rx466_cur."!mark_push"(0, rx466_pos, $I10)
- # rx literal "multi"
- add $I11, rx466_pos, 5
- gt $I11, rx466_eos, rx466_fail
- sub $I11, rx466_pos, rx466_off
- substr $S10, rx466_tgt, $I11, 5
- ne $S10, "multi", rx466_fail
- add rx466_pos, 5
- goto alt468_end
- alt468_1:
- set_addr $I10, alt468_2
- rx466_cur."!mark_push"(0, rx466_pos, $I10)
- # rx literal "proto"
- add $I11, rx466_pos, 5
- gt $I11, rx466_eos, rx466_fail
- sub $I11, rx466_pos, rx466_off
- substr $S10, rx466_tgt, $I11, 5
- ne $S10, "proto", rx466_fail
- add rx466_pos, 5
- goto alt468_end
- alt468_2:
- # rx literal "only"
- add $I11, rx466_pos, 4
- gt $I11, rx466_eos, rx466_fail
- sub $I11, rx466_pos, rx466_off
- substr $S10, rx466_tgt, $I11, 4
- ne $S10, "only", rx466_fail
- add rx466_pos, 4
- alt468_end:
- # rx pass
- rx466_cur."!cursor_pass"(rx466_pos, "")
- rx466_cur."!cursor_debug"("PASS ", "", " at pos=", rx466_pos)
- .return (rx466_cur)
- rx466_fail:
- (rx466_rep, rx466_pos, $I10, $P10) = rx466_cur."!mark_fail"(0)
- lt rx466_pos, -1, rx466_done
- eq rx466_pos, -1, rx466_fail
- jump $I10
- rx466_done:
- rx466_cur."!cursor_fail"()
- rx466_cur."!cursor_debug"("FAIL ", "")
- .return (rx466_cur)
- .return ()
+.sub "!PREFIX__term:sym<statement_prefix>" :subid("117_1280467477.44751") :method
+.annotate 'line', 4
+ $P466 = self."!PREFIX__!subrule"("statement_prefix", "")
+ new $P467, "ResizablePMCArray"
+ push $P467, $P466
+ .return ($P467)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<regex_declarator>" :subid("112_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<lambda>" :subid("118_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
.local string rx470_tgt
.local int rx470_pos
@@ -5756,8 +6251,7 @@
.local int rx470_eos
.local int rx470_rep
.local pmc rx470_cur
- (rx470_cur, rx470_pos, rx470_tgt) = self."!cursor_start"()
- rx470_cur."!cursor_debug"("START ", "term:sym<regex_declarator>")
+ (rx470_cur, rx470_pos, rx470_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx470_cur
.local pmc match
.lex "$/", match
@@ -5768,125 +6262,172 @@
sub rx470_off, rx470_pos, 1
substr rx470_tgt, rx470_tgt, rx470_off
rx470_start:
+ eq $I10, 1, rx470_restart
+ rx470_cur."!cursor_debug"("START ", "term:sym<lambda>")
$I10 = self.'from'()
- ne $I10, -1, rxscan474_done
- goto rxscan474_scan
- rxscan474_loop:
+ ne $I10, -1, rxscan473_done
+ goto rxscan473_scan
+ rxscan473_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, rxscan473_done
+ rxscan473_scan:
+ set_addr $I10, rxscan473_loop
rx470_cur."!mark_push"(0, rx470_pos, $I10)
- rxscan474_done:
-.annotate 'line', 231
- # rx subrule "regex_declarator" subtype=capture negate=
+ rxscan473_done:
+.annotate 'line', 234
+ # rx subrule "lambda" subtype=zerowidth negate=
rx470_cur."!cursor_pos"(rx470_pos)
- $P10 = rx470_cur."regex_declarator"()
+ $P10 = rx470_cur."lambda"()
+ unless $P10, rx470_fail
+ # rx subrule "pblock" subtype=capture negate=
+ rx470_cur."!cursor_pos"(rx470_pos)
+ $P10 = rx470_cur."pblock"()
unless $P10, rx470_fail
rx470_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("regex_declarator")
+ $P10."!cursor_names"("pblock")
rx470_pos = $P10."pos"()
# rx pass
- rx470_cur."!cursor_pass"(rx470_pos, "term:sym<regex_declarator>")
- rx470_cur."!cursor_debug"("PASS ", "term:sym<regex_declarator>", " at pos=", rx470_pos)
+ rx470_cur."!cursor_pass"(rx470_pos, "term:sym<lambda>")
+ rx470_cur."!cursor_debug"("PASS ", "term:sym<lambda>", " at pos=", rx470_pos)
.return (rx470_cur)
- rx470_fail:
+ rx470_restart:
.annotate 'line', 4
+ rx470_cur."!cursor_debug"("NEXT ", "term:sym<lambda>")
+ rx470_fail:
(rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0)
lt rx470_pos, -1, rx470_done
eq rx470_pos, -1, rx470_fail
jump $I10
rx470_done:
rx470_cur."!cursor_fail"()
- rx470_cur."!cursor_debug"("FAIL ", "term:sym<regex_declarator>")
+ rx470_cur."!cursor_debug"("FAIL ", "term:sym<lambda>")
.return (rx470_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<regex_declarator>" :subid("113_1275811487.95429") :method
+.sub "!PREFIX__term:sym<lambda>" :subid("119_1280467477.44751") :method
.annotate 'line', 4
- $P472 = self."!PREFIX__!subrule"("regex_declarator", "")
- new $P473, "ResizablePMCArray"
- push $P473, $P472
- .return ($P473)
+ new $P472, "ResizablePMCArray"
+ push $P472, ""
+ .return ($P472)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<statement_prefix>" :subid("114_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx476_tgt
- .local int rx476_pos
- .local int rx476_off
- .local int rx476_eos
- .local int rx476_rep
- .local pmc rx476_cur
- (rx476_cur, rx476_pos, rx476_tgt) = self."!cursor_start"()
- rx476_cur."!cursor_debug"("START ", "term:sym<statement_prefix>")
- .lex unicode:"$\x{a2}", rx476_cur
- .local pmc match
- .lex "$/", match
- length rx476_eos, rx476_tgt
- gt rx476_pos, rx476_eos, rx476_done
- set rx476_off, 0
- lt rx476_pos, 2, rx476_start
- sub rx476_off, rx476_pos, 1
- substr rx476_tgt, rx476_tgt, rx476_off
- rx476_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan480_done
- goto rxscan480_scan
- rxscan480_loop:
- ($P10) = rx476_cur."from"()
- inc $P10
- set rx476_pos, $P10
- ge rx476_pos, rx476_eos, rxscan480_done
- rxscan480_scan:
- set_addr $I10, rxscan480_loop
- rx476_cur."!mark_push"(0, rx476_pos, $I10)
- rxscan480_done:
-.annotate 'line', 232
- # rx subrule "statement_prefix" subtype=capture negate=
- rx476_cur."!cursor_pos"(rx476_pos)
- $P10 = rx476_cur."statement_prefix"()
- unless $P10, rx476_fail
- rx476_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("statement_prefix")
- rx476_pos = $P10."pos"()
+.sub "fatarrow" :subid("120_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx475_tgt
+ .local int rx475_pos
+ .local int rx475_off
+ .local int rx475_eos
+ .local int rx475_rep
+ .local pmc rx475_cur
+ (rx475_cur, rx475_pos, rx475_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx475_cur
+ .local pmc match
+ .lex "$/", match
+ length rx475_eos, rx475_tgt
+ gt rx475_pos, rx475_eos, rx475_done
+ set rx475_off, 0
+ lt rx475_pos, 2, rx475_start
+ sub rx475_off, rx475_pos, 1
+ substr rx475_tgt, rx475_tgt, rx475_off
+ rx475_start:
+ eq $I10, 1, rx475_restart
+ rx475_cur."!cursor_debug"("START ", "fatarrow")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan479_done
+ goto rxscan479_scan
+ rxscan479_loop:
+ ($P10) = rx475_cur."from"()
+ inc $P10
+ set rx475_pos, $P10
+ ge rx475_pos, rx475_eos, rxscan479_done
+ rxscan479_scan:
+ set_addr $I10, rxscan479_loop
+ rx475_cur."!mark_push"(0, rx475_pos, $I10)
+ rxscan479_done:
+.annotate 'line', 237
+ # rx subrule "identifier" subtype=capture negate=
+ rx475_cur."!cursor_pos"(rx475_pos)
+ $P10 = rx475_cur."identifier"()
+ unless $P10, rx475_fail
+ rx475_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("key")
+ 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
+ sub $I10, rx475_pos, rx475_off
+ substr $S10, rx475_tgt, $I10, 1
+ index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
+ lt $I11, 0, rx475_fail
+ inc rx475_pos
+ set_addr $I10, rxquantr480_done
+ (rx475_rep) = rx475_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr480_done
+ rx475_cur."!mark_push"(rx475_rep, rx475_pos, $I10)
+ goto rxquantr480_loop
+ rxquantr480_done:
+ # rx literal "=>"
+ add $I11, rx475_pos, 2
+ gt $I11, rx475_eos, rx475_fail
+ sub $I11, rx475_pos, rx475_off
+ substr $S10, rx475_tgt, $I11, 2
+ ne $S10, "=>", rx475_fail
+ add rx475_pos, 2
+ # rx subrule "ws" subtype=method negate=
+ rx475_cur."!cursor_pos"(rx475_pos)
+ $P10 = rx475_cur."ws"()
+ unless $P10, rx475_fail
+ rx475_pos = $P10."pos"()
+ # rx subrule "EXPR" subtype=capture negate=
+ rx475_cur."!cursor_pos"(rx475_pos)
+ $P10 = rx475_cur."EXPR"("i=")
+ unless $P10, rx475_fail
+ rx475_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("val")
+ rx475_pos = $P10."pos"()
+.annotate 'line', 236
# rx pass
- rx476_cur."!cursor_pass"(rx476_pos, "term:sym<statement_prefix>")
- rx476_cur."!cursor_debug"("PASS ", "term:sym<statement_prefix>", " at pos=", rx476_pos)
- .return (rx476_cur)
- rx476_fail:
+ rx475_cur."!cursor_pass"(rx475_pos, "fatarrow")
+ rx475_cur."!cursor_debug"("PASS ", "fatarrow", " at pos=", rx475_pos)
+ .return (rx475_cur)
+ rx475_restart:
.annotate 'line', 4
- (rx476_rep, rx476_pos, $I10, $P10) = rx476_cur."!mark_fail"(0)
- lt rx476_pos, -1, rx476_done
- eq rx476_pos, -1, rx476_fail
+ rx475_cur."!cursor_debug"("NEXT ", "fatarrow")
+ rx475_fail:
+ (rx475_rep, rx475_pos, $I10, $P10) = rx475_cur."!mark_fail"(0)
+ lt rx475_pos, -1, rx475_done
+ eq rx475_pos, -1, rx475_fail
jump $I10
- rx476_done:
- rx476_cur."!cursor_fail"()
- rx476_cur."!cursor_debug"("FAIL ", "term:sym<statement_prefix>")
- .return (rx476_cur)
+ rx475_done:
+ rx475_cur."!cursor_fail"()
+ rx475_cur."!cursor_debug"("FAIL ", "fatarrow")
+ .return (rx475_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<statement_prefix>" :subid("115_1275811487.95429") :method
+.sub "!PREFIX__fatarrow" :subid("121_1280467477.44751") :method
.annotate 'line', 4
- $P478 = self."!PREFIX__!subrule"("statement_prefix", "")
- new $P479, "ResizablePMCArray"
- push $P479, $P478
- .return ($P479)
+ $P477 = self."!PREFIX__!subrule"("identifier", "")
+ new $P478, "ResizablePMCArray"
+ push $P478, $P477
+ .return ($P478)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<lambda>" :subid("116_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "colonpair" :subid("122_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
.local string rx482_tgt
.local int rx482_pos
@@ -5894,8 +6435,8 @@
.local int rx482_eos
.local int rx482_rep
.local pmc rx482_cur
- (rx482_cur, rx482_pos, rx482_tgt) = self."!cursor_start"()
- rx482_cur."!cursor_debug"("START ", "term:sym<lambda>")
+ (rx482_cur, rx482_pos, rx482_tgt, $I10) = self."!cursor_start"()
+ rx482_cur."!cursor_caparray"("circumfix")
.lex unicode:"$\x{a2}", rx482_cur
.local pmc match
.lex "$/", match
@@ -5906,1061 +6447,1107 @@
sub rx482_off, rx482_pos, 1
substr rx482_tgt, rx482_tgt, rx482_off
rx482_start:
+ eq $I10, 1, rx482_restart
+ rx482_cur."!cursor_debug"("START ", "colonpair")
$I10 = self.'from'()
- ne $I10, -1, rxscan485_done
- goto rxscan485_scan
- rxscan485_loop:
+ ne $I10, -1, rxscan488_done
+ goto rxscan488_scan
+ rxscan488_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
+ ge rx482_pos, rx482_eos, rxscan488_done
+ rxscan488_scan:
+ set_addr $I10, rxscan488_loop
rx482_cur."!mark_push"(0, rx482_pos, $I10)
- rxscan485_done:
-.annotate 'line', 233
- # rx subrule "lambda" subtype=zerowidth negate=
- rx482_cur."!cursor_pos"(rx482_pos)
- $P10 = rx482_cur."lambda"()
- unless $P10, rx482_fail
- # rx subrule "pblock" subtype=capture negate=
- rx482_cur."!cursor_pos"(rx482_pos)
- $P10 = rx482_cur."pblock"()
- unless $P10, rx482_fail
- rx482_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("pblock")
- rx482_pos = $P10."pos"()
- # rx pass
- rx482_cur."!cursor_pass"(rx482_pos, "term:sym<lambda>")
- rx482_cur."!cursor_debug"("PASS ", "term:sym<lambda>", " at pos=", rx482_pos)
- .return (rx482_cur)
- rx482_fail:
-.annotate 'line', 4
- (rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0)
- lt rx482_pos, -1, rx482_done
- eq rx482_pos, -1, rx482_fail
- jump $I10
- rx482_done:
- rx482_cur."!cursor_fail"()
- rx482_cur."!cursor_debug"("FAIL ", "term:sym<lambda>")
- .return (rx482_cur)
- .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<lambda>" :subid("117_1275811487.95429") :method
-.annotate 'line', 4
- new $P484, "ResizablePMCArray"
- push $P484, ""
- .return ($P484)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "fatarrow" :subid("118_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx487_tgt
- .local int rx487_pos
- .local int rx487_off
- .local int rx487_eos
- .local int rx487_rep
- .local pmc rx487_cur
- (rx487_cur, rx487_pos, rx487_tgt) = self."!cursor_start"()
- rx487_cur."!cursor_debug"("START ", "fatarrow")
- .lex unicode:"$\x{a2}", rx487_cur
- .local pmc match
- .lex "$/", match
- length rx487_eos, rx487_tgt
- gt rx487_pos, rx487_eos, rx487_done
- set rx487_off, 0
- lt rx487_pos, 2, rx487_start
- sub rx487_off, rx487_pos, 1
- substr rx487_tgt, rx487_tgt, rx487_off
- rx487_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan491_done
- goto rxscan491_scan
- rxscan491_loop:
- ($P10) = rx487_cur."from"()
- inc $P10
- set rx487_pos, $P10
- ge rx487_pos, rx487_eos, rxscan491_done
- rxscan491_scan:
- set_addr $I10, rxscan491_loop
- rx487_cur."!mark_push"(0, rx487_pos, $I10)
- rxscan491_done:
-.annotate 'line', 236
- # rx subrule "identifier" subtype=capture negate=
- rx487_cur."!cursor_pos"(rx487_pos)
- $P10 = rx487_cur."identifier"()
- unless $P10, rx487_fail
- rx487_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("key")
- rx487_pos = $P10."pos"()
- # rx rxquantr492 ** 0..*
- set_addr $I493, rxquantr492_done
- rx487_cur."!mark_push"(0, rx487_pos, $I493)
- rxquantr492_loop:
- # rx enumcharlist negate=0
- ge rx487_pos, rx487_eos, rx487_fail
- sub $I10, rx487_pos, rx487_off
- substr $S10, rx487_tgt, $I10, 1
- index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx487_fail
- inc rx487_pos
- (rx487_rep) = rx487_cur."!mark_commit"($I493)
- rx487_cur."!mark_push"(rx487_rep, rx487_pos, $I493)
- goto rxquantr492_loop
- rxquantr492_done:
- # rx literal "=>"
- add $I11, rx487_pos, 2
- gt $I11, rx487_eos, rx487_fail
- sub $I11, rx487_pos, rx487_off
- substr $S10, rx487_tgt, $I11, 2
- ne $S10, "=>", rx487_fail
- add rx487_pos, 2
- # rx subrule "ws" subtype=method negate=
- rx487_cur."!cursor_pos"(rx487_pos)
- $P10 = rx487_cur."ws"()
- unless $P10, rx487_fail
- rx487_pos = $P10."pos"()
- # rx subrule "EXPR" subtype=capture negate=
- rx487_cur."!cursor_pos"(rx487_pos)
- $P10 = rx487_cur."EXPR"("i=")
- unless $P10, rx487_fail
- rx487_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("val")
- rx487_pos = $P10."pos"()
-.annotate 'line', 235
- # rx pass
- rx487_cur."!cursor_pass"(rx487_pos, "fatarrow")
- rx487_cur."!cursor_debug"("PASS ", "fatarrow", " at pos=", rx487_pos)
- .return (rx487_cur)
- rx487_fail:
-.annotate 'line', 4
- (rx487_rep, rx487_pos, $I10, $P10) = rx487_cur."!mark_fail"(0)
- lt rx487_pos, -1, rx487_done
- eq rx487_pos, -1, rx487_fail
- jump $I10
- rx487_done:
- rx487_cur."!cursor_fail"()
- rx487_cur."!cursor_debug"("FAIL ", "fatarrow")
- .return (rx487_cur)
- .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__fatarrow" :subid("119_1275811487.95429") :method
-.annotate 'line', 4
- $P489 = self."!PREFIX__!subrule"("identifier", "")
- new $P490, "ResizablePMCArray"
- push $P490, $P489
- .return ($P490)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "colonpair" :subid("120_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx495_tgt
- .local int rx495_pos
- .local int rx495_off
- .local int rx495_eos
- .local int rx495_rep
- .local pmc rx495_cur
- (rx495_cur, rx495_pos, rx495_tgt) = self."!cursor_start"()
- rx495_cur."!cursor_debug"("START ", "colonpair")
- rx495_cur."!cursor_caparray"("circumfix")
- .lex unicode:"$\x{a2}", rx495_cur
- .local pmc match
- .lex "$/", match
- length rx495_eos, rx495_tgt
- gt rx495_pos, rx495_eos, rx495_done
- set rx495_off, 0
- lt rx495_pos, 2, rx495_start
- sub rx495_off, rx495_pos, 1
- substr rx495_tgt, rx495_tgt, rx495_off
- rx495_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan501_done
- goto rxscan501_scan
- rxscan501_loop:
- ($P10) = rx495_cur."from"()
- inc $P10
- set rx495_pos, $P10
- ge rx495_pos, rx495_eos, rxscan501_done
- rxscan501_scan:
- set_addr $I10, rxscan501_loop
- rx495_cur."!mark_push"(0, rx495_pos, $I10)
- rxscan501_done:
-.annotate 'line', 240
- # rx literal ":"
- add $I11, rx495_pos, 1
- gt $I11, rx495_eos, rx495_fail
- sub $I11, rx495_pos, rx495_off
- substr $S10, rx495_tgt, $I11, 1
- ne $S10, ":", rx495_fail
- add rx495_pos, 1
- alt502_0:
+ rxscan488_done:
.annotate 'line', 241
- set_addr $I10, alt502_1
- rx495_cur."!mark_push"(0, rx495_pos, $I10)
+ # rx literal ":"
+ add $I11, rx482_pos, 1
+ gt $I11, rx482_eos, rx482_fail
+ sub $I11, rx482_pos, rx482_off
+ substr $S10, rx482_tgt, $I11, 1
+ ne $S10, ":", rx482_fail
+ add rx482_pos, 1
+ alt489_0:
.annotate 'line', 242
+ set_addr $I10, alt489_1
+ rx482_cur."!mark_push"(0, rx482_pos, $I10)
+.annotate 'line', 243
# rx subcapture "not"
- set_addr $I10, rxcap_503_fail
- rx495_cur."!mark_push"(0, rx495_pos, $I10)
+ set_addr $I10, rxcap_490_fail
+ rx482_cur."!mark_push"(0, rx482_pos, $I10)
# rx literal "!"
- add $I11, rx495_pos, 1
- gt $I11, rx495_eos, rx495_fail
- sub $I11, rx495_pos, rx495_off
- substr $S10, rx495_tgt, $I11, 1
- ne $S10, "!", rx495_fail
- add rx495_pos, 1
- set_addr $I10, rxcap_503_fail
- ($I12, $I11) = rx495_cur."!mark_peek"($I10)
- rx495_cur."!cursor_pos"($I11)
- ($P10) = rx495_cur."!cursor_start"()
- $P10."!cursor_pass"(rx495_pos, "")
- rx495_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx482_pos, 1
+ gt $I11, rx482_eos, rx482_fail
+ sub $I11, rx482_pos, rx482_off
+ substr $S10, rx482_tgt, $I11, 1
+ ne $S10, "!", rx482_fail
+ add rx482_pos, 1
+ set_addr $I10, rxcap_490_fail
+ ($I12, $I11) = rx482_cur."!mark_peek"($I10)
+ rx482_cur."!cursor_pos"($I11)
+ ($P10) = rx482_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx482_pos, "")
+ rx482_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("not")
- goto rxcap_503_done
- rxcap_503_fail:
- goto rx495_fail
- rxcap_503_done:
+ goto rxcap_490_done
+ rxcap_490_fail:
+ goto rx482_fail
+ rxcap_490_done:
# rx subrule "identifier" subtype=capture negate=
- rx495_cur."!cursor_pos"(rx495_pos)
- $P10 = rx495_cur."identifier"()
- unless $P10, rx495_fail
- rx495_cur."!mark_push"(0, -1, 0, $P10)
+ rx482_cur."!cursor_pos"(rx482_pos)
+ $P10 = rx482_cur."identifier"()
+ unless $P10, rx482_fail
+ rx482_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("identifier")
- rx495_pos = $P10."pos"()
- goto alt502_end
- alt502_1:
- set_addr $I10, alt502_2
- rx495_cur."!mark_push"(0, rx495_pos, $I10)
-.annotate 'line', 243
+ rx482_pos = $P10."pos"()
+ goto alt489_end
+ alt489_1:
+ set_addr $I10, alt489_2
+ rx482_cur."!mark_push"(0, rx482_pos, $I10)
+.annotate 'line', 244
# rx subrule "identifier" subtype=capture negate=
- rx495_cur."!cursor_pos"(rx495_pos)
- $P10 = rx495_cur."identifier"()
- unless $P10, rx495_fail
- rx495_cur."!mark_push"(0, -1, 0, $P10)
+ rx482_cur."!cursor_pos"(rx482_pos)
+ $P10 = rx482_cur."identifier"()
+ unless $P10, rx482_fail
+ rx482_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("identifier")
- rx495_pos = $P10."pos"()
- # rx rxquantr504 ** 0..1
- set_addr $I505, rxquantr504_done
- rx495_cur."!mark_push"(0, rx495_pos, $I505)
- rxquantr504_loop:
+ rx482_pos = $P10."pos"()
+ # rx rxquantr491 ** 0..1
+ set_addr $I10, rxquantr491_done
+ rx482_cur."!mark_push"(0, rx482_pos, $I10)
+ rxquantr491_loop:
# rx subrule "circumfix" subtype=capture negate=
- rx495_cur."!cursor_pos"(rx495_pos)
- $P10 = rx495_cur."circumfix"()
- unless $P10, rx495_fail
- rx495_cur."!mark_push"(0, -1, 0, $P10)
+ rx482_cur."!cursor_pos"(rx482_pos)
+ $P10 = rx482_cur."circumfix"()
+ unless $P10, rx482_fail
+ goto rxsubrule492_pass
+ rxsubrule492_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx482_fail
+ rxsubrule492_pass:
+ set_addr $I10, rxsubrule492_back
+ rx482_cur."!mark_push"(0, rx482_pos, $I10, $P10)
$P10."!cursor_names"("circumfix")
- rx495_pos = $P10."pos"()
- (rx495_rep) = rx495_cur."!mark_commit"($I505)
- rxquantr504_done:
- goto alt502_end
- alt502_2:
-.annotate 'line', 244
+ rx482_pos = $P10."pos"()
+ set_addr $I10, rxquantr491_done
+ (rx482_rep) = rx482_cur."!mark_commit"($I10)
+ rxquantr491_done:
+ goto alt489_end
+ alt489_2:
+.annotate 'line', 245
# rx subrule "circumfix" subtype=capture negate=
- rx495_cur."!cursor_pos"(rx495_pos)
- $P10 = rx495_cur."circumfix"()
- unless $P10, rx495_fail
- rx495_cur."!mark_push"(0, -1, 0, $P10)
+ rx482_cur."!cursor_pos"(rx482_pos)
+ $P10 = rx482_cur."circumfix"()
+ unless $P10, rx482_fail
+ rx482_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("circumfix")
- rx495_pos = $P10."pos"()
- alt502_end:
-.annotate 'line', 239
+ rx482_pos = $P10."pos"()
+ alt489_end:
+.annotate 'line', 240
# rx pass
- rx495_cur."!cursor_pass"(rx495_pos, "colonpair")
- rx495_cur."!cursor_debug"("PASS ", "colonpair", " at pos=", rx495_pos)
- .return (rx495_cur)
- rx495_fail:
+ rx482_cur."!cursor_pass"(rx482_pos, "colonpair")
+ rx482_cur."!cursor_debug"("PASS ", "colonpair", " at pos=", rx482_pos)
+ .return (rx482_cur)
+ rx482_restart:
.annotate 'line', 4
- (rx495_rep, rx495_pos, $I10, $P10) = rx495_cur."!mark_fail"(0)
- lt rx495_pos, -1, rx495_done
- eq rx495_pos, -1, rx495_fail
+ rx482_cur."!cursor_debug"("NEXT ", "colonpair")
+ rx482_fail:
+ (rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0)
+ lt rx482_pos, -1, rx482_done
+ eq rx482_pos, -1, rx482_fail
jump $I10
- rx495_done:
- rx495_cur."!cursor_fail"()
- rx495_cur."!cursor_debug"("FAIL ", "colonpair")
- .return (rx495_cur)
+ rx482_done:
+ rx482_cur."!cursor_fail"()
+ rx482_cur."!cursor_debug"("FAIL ", "colonpair")
+ .return (rx482_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__colonpair" :subid("121_1275811487.95429") :method
+.sub "!PREFIX__colonpair" :subid("123_1280467477.44751") :method
.annotate 'line', 4
- $P497 = self."!PREFIX__!subrule"("circumfix", ":")
- $P498 = self."!PREFIX__!subrule"("identifier", ":")
- $P499 = self."!PREFIX__!subrule"("identifier", ":!")
- new $P500, "ResizablePMCArray"
- push $P500, $P497
- push $P500, $P498
- push $P500, $P499
- .return ($P500)
+ $P484 = self."!PREFIX__!subrule"("circumfix", ":")
+ $P485 = self."!PREFIX__!subrule"("identifier", ":")
+ $P486 = self."!PREFIX__!subrule"("identifier", ":!")
+ new $P487, "ResizablePMCArray"
+ push $P487, $P484
+ push $P487, $P485
+ push $P487, $P486
+ .return ($P487)
.end
.namespace ["NQP";"Grammar"]
-.sub "variable" :subid("122_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx507_tgt
- .local int rx507_pos
- .local int rx507_off
- .local int rx507_eos
- .local int rx507_rep
- .local pmc rx507_cur
- (rx507_cur, rx507_pos, rx507_tgt) = self."!cursor_start"()
- rx507_cur."!cursor_debug"("START ", "variable")
- rx507_cur."!cursor_caparray"("twigil")
- .lex unicode:"$\x{a2}", rx507_cur
- .local pmc match
- .lex "$/", match
- length rx507_eos, rx507_tgt
- gt rx507_pos, rx507_eos, rx507_done
- set rx507_off, 0
- lt rx507_pos, 2, rx507_start
- sub rx507_off, rx507_pos, 1
- substr rx507_tgt, rx507_tgt, rx507_off
- rx507_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan512_done
- goto rxscan512_scan
- rxscan512_loop:
- ($P10) = rx507_cur."from"()
- inc $P10
- set rx507_pos, $P10
- ge rx507_pos, rx507_eos, rxscan512_done
- rxscan512_scan:
- set_addr $I10, rxscan512_loop
- rx507_cur."!mark_push"(0, rx507_pos, $I10)
- rxscan512_done:
- alt513_0:
-.annotate 'line', 248
- set_addr $I10, alt513_1
- rx507_cur."!mark_push"(0, rx507_pos, $I10)
+.sub "variable" :subid("124_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx494_tgt
+ .local int rx494_pos
+ .local int rx494_off
+ .local int rx494_eos
+ .local int rx494_rep
+ .local pmc rx494_cur
+ (rx494_cur, rx494_pos, rx494_tgt, $I10) = self."!cursor_start"()
+ rx494_cur."!cursor_caparray"("twigil")
+ .lex unicode:"$\x{a2}", rx494_cur
+ .local pmc match
+ .lex "$/", match
+ length rx494_eos, rx494_tgt
+ gt rx494_pos, rx494_eos, rx494_done
+ set rx494_off, 0
+ lt rx494_pos, 2, rx494_start
+ sub rx494_off, rx494_pos, 1
+ substr rx494_tgt, rx494_tgt, rx494_off
+ rx494_start:
+ eq $I10, 1, rx494_restart
+ rx494_cur."!cursor_debug"("START ", "variable")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan499_done
+ goto rxscan499_scan
+ rxscan499_loop:
+ ($P10) = rx494_cur."from"()
+ inc $P10
+ set rx494_pos, $P10
+ ge rx494_pos, rx494_eos, rxscan499_done
+ rxscan499_scan:
+ set_addr $I10, rxscan499_loop
+ rx494_cur."!mark_push"(0, rx494_pos, $I10)
+ rxscan499_done:
+ alt500_0:
.annotate 'line', 249
+ set_addr $I10, alt500_1
+ rx494_cur."!mark_push"(0, rx494_pos, $I10)
+.annotate 'line', 250
# rx subrule "sigil" subtype=capture negate=
- rx507_cur."!cursor_pos"(rx507_pos)
- $P10 = rx507_cur."sigil"()
- unless $P10, rx507_fail
- rx507_cur."!mark_push"(0, -1, 0, $P10)
+ rx494_cur."!cursor_pos"(rx494_pos)
+ $P10 = rx494_cur."sigil"()
+ unless $P10, rx494_fail
+ rx494_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sigil")
- rx507_pos = $P10."pos"()
- # rx rxquantr514 ** 0..1
- set_addr $I515, rxquantr514_done
- rx507_cur."!mark_push"(0, rx507_pos, $I515)
- rxquantr514_loop:
+ rx494_pos = $P10."pos"()
+ # rx rxquantr501 ** 0..1
+ set_addr $I10, rxquantr501_done
+ rx494_cur."!mark_push"(0, rx494_pos, $I10)
+ rxquantr501_loop:
# rx subrule "twigil" subtype=capture negate=
- rx507_cur."!cursor_pos"(rx507_pos)
- $P10 = rx507_cur."twigil"()
- unless $P10, rx507_fail
- rx507_cur."!mark_push"(0, -1, 0, $P10)
+ rx494_cur."!cursor_pos"(rx494_pos)
+ $P10 = rx494_cur."twigil"()
+ unless $P10, rx494_fail
+ goto rxsubrule502_pass
+ rxsubrule502_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx494_fail
+ rxsubrule502_pass:
+ set_addr $I10, rxsubrule502_back
+ rx494_cur."!mark_push"(0, rx494_pos, $I10, $P10)
$P10."!cursor_names"("twigil")
- rx507_pos = $P10."pos"()
- (rx507_rep) = rx507_cur."!mark_commit"($I515)
- rxquantr514_done:
+ rx494_pos = $P10."pos"()
+ set_addr $I10, rxquantr501_done
+ (rx494_rep) = rx494_cur."!mark_commit"($I10)
+ rxquantr501_done:
# rx subrule "name" subtype=capture negate=
- rx507_cur."!cursor_pos"(rx507_pos)
- $P10 = rx507_cur."name"()
- unless $P10, rx507_fail
- rx507_cur."!mark_push"(0, -1, 0, $P10)
+ rx494_cur."!cursor_pos"(rx494_pos)
+ $P10 = rx494_cur."name"()
+ unless $P10, rx494_fail
+ rx494_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("desigilname")
- rx507_pos = $P10."pos"()
- goto alt513_end
- alt513_1:
- set_addr $I10, alt513_2
- rx507_cur."!mark_push"(0, rx507_pos, $I10)
-.annotate 'line', 250
+ rx494_pos = $P10."pos"()
+ goto alt500_end
+ alt500_1:
+ set_addr $I10, alt500_2
+ rx494_cur."!mark_push"(0, rx494_pos, $I10)
+.annotate 'line', 251
# rx subrule "sigil" subtype=capture negate=
- rx507_cur."!cursor_pos"(rx507_pos)
- $P10 = rx507_cur."sigil"()
- unless $P10, rx507_fail
- rx507_cur."!mark_push"(0, -1, 0, $P10)
+ rx494_cur."!cursor_pos"(rx494_pos)
+ $P10 = rx494_cur."sigil"()
+ unless $P10, rx494_fail
+ rx494_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sigil")
- rx507_pos = $P10."pos"()
+ rx494_pos = $P10."pos"()
# rx enumcharlist negate=0 zerowidth
- ge rx507_pos, rx507_eos, rx507_fail
- sub $I10, rx507_pos, rx507_off
- substr $S10, rx507_tgt, $I10, 1
+ ge rx494_pos, rx494_eos, rx494_fail
+ sub $I10, rx494_pos, rx494_off
+ substr $S10, rx494_tgt, $I10, 1
index $I11, "<[", $S10
- lt $I11, 0, rx507_fail
+ lt $I11, 0, rx494_fail
# rx subrule "postcircumfix" subtype=capture negate=
- rx507_cur."!cursor_pos"(rx507_pos)
- $P10 = rx507_cur."postcircumfix"()
- unless $P10, rx507_fail
- rx507_cur."!mark_push"(0, -1, 0, $P10)
+ rx494_cur."!cursor_pos"(rx494_pos)
+ $P10 = rx494_cur."postcircumfix"()
+ unless $P10, rx494_fail
+ rx494_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("postcircumfix")
- rx507_pos = $P10."pos"()
- goto alt513_end
- alt513_2:
-.annotate 'line', 251
+ rx494_pos = $P10."pos"()
+ goto alt500_end
+ alt500_2:
+.annotate 'line', 252
# rx subcapture "sigil"
- set_addr $I10, rxcap_516_fail
- rx507_cur."!mark_push"(0, rx507_pos, $I10)
+ set_addr $I10, rxcap_503_fail
+ rx494_cur."!mark_push"(0, rx494_pos, $I10)
# rx literal "$"
- add $I11, rx507_pos, 1
- gt $I11, rx507_eos, rx507_fail
- sub $I11, rx507_pos, rx507_off
- substr $S10, rx507_tgt, $I11, 1
- ne $S10, "$", rx507_fail
- add rx507_pos, 1
- set_addr $I10, rxcap_516_fail
- ($I12, $I11) = rx507_cur."!mark_peek"($I10)
- rx507_cur."!cursor_pos"($I11)
- ($P10) = rx507_cur."!cursor_start"()
- $P10."!cursor_pass"(rx507_pos, "")
- rx507_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx494_pos, 1
+ gt $I11, rx494_eos, rx494_fail
+ sub $I11, rx494_pos, rx494_off
+ substr $S10, rx494_tgt, $I11, 1
+ ne $S10, "$", rx494_fail
+ add rx494_pos, 1
+ set_addr $I10, rxcap_503_fail
+ ($I12, $I11) = rx494_cur."!mark_peek"($I10)
+ rx494_cur."!cursor_pos"($I11)
+ ($P10) = rx494_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx494_pos, "")
+ rx494_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sigil")
- goto rxcap_516_done
- rxcap_516_fail:
- goto rx507_fail
- rxcap_516_done:
+ goto rxcap_503_done
+ rxcap_503_fail:
+ goto rx494_fail
+ rxcap_503_done:
# rx subcapture "desigilname"
- set_addr $I10, rxcap_517_fail
- rx507_cur."!mark_push"(0, rx507_pos, $I10)
+ set_addr $I10, rxcap_504_fail
+ rx494_cur."!mark_push"(0, rx494_pos, $I10)
# rx enumcharlist negate=0
- ge rx507_pos, rx507_eos, rx507_fail
- sub $I10, rx507_pos, rx507_off
- substr $S10, rx507_tgt, $I10, 1
+ ge rx494_pos, rx494_eos, rx494_fail
+ sub $I10, rx494_pos, rx494_off
+ substr $S10, rx494_tgt, $I10, 1
index $I11, "/_!", $S10
- lt $I11, 0, rx507_fail
- inc rx507_pos
- set_addr $I10, rxcap_517_fail
- ($I12, $I11) = rx507_cur."!mark_peek"($I10)
- rx507_cur."!cursor_pos"($I11)
- ($P10) = rx507_cur."!cursor_start"()
- $P10."!cursor_pass"(rx507_pos, "")
- rx507_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx494_fail
+ inc rx494_pos
+ set_addr $I10, rxcap_504_fail
+ ($I12, $I11) = rx494_cur."!mark_peek"($I10)
+ rx494_cur."!cursor_pos"($I11)
+ ($P10) = rx494_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx494_pos, "")
+ rx494_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("desigilname")
- goto rxcap_517_done
- rxcap_517_fail:
- goto rx507_fail
- rxcap_517_done:
- alt513_end:
-.annotate 'line', 248
+ goto rxcap_504_done
+ rxcap_504_fail:
+ goto rx494_fail
+ rxcap_504_done:
+ alt500_end:
+.annotate 'line', 249
# rx pass
- rx507_cur."!cursor_pass"(rx507_pos, "variable")
- rx507_cur."!cursor_debug"("PASS ", "variable", " at pos=", rx507_pos)
- .return (rx507_cur)
- rx507_fail:
-.annotate 'line', 4
- (rx507_rep, rx507_pos, $I10, $P10) = rx507_cur."!mark_fail"(0)
- lt rx507_pos, -1, rx507_done
- eq rx507_pos, -1, rx507_fail
- jump $I10
- rx507_done:
- rx507_cur."!cursor_fail"()
- rx507_cur."!cursor_debug"("FAIL ", "variable")
- .return (rx507_cur)
+ rx494_cur."!cursor_pass"(rx494_pos, "variable")
+ rx494_cur."!cursor_debug"("PASS ", "variable", " at pos=", rx494_pos)
+ .return (rx494_cur)
+ rx494_restart:
+.annotate 'line', 4
+ rx494_cur."!cursor_debug"("NEXT ", "variable")
+ rx494_fail:
+ (rx494_rep, rx494_pos, $I10, $P10) = rx494_cur."!mark_fail"(0)
+ lt rx494_pos, -1, rx494_done
+ eq rx494_pos, -1, rx494_fail
+ jump $I10
+ rx494_done:
+ rx494_cur."!cursor_fail"()
+ rx494_cur."!cursor_debug"("FAIL ", "variable")
+ .return (rx494_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable" :subid("123_1275811487.95429") :method
-.annotate 'line', 4
- $P509 = self."!PREFIX__!subrule"("sigil", "")
- $P510 = self."!PREFIX__!subrule"("sigil", "")
- new $P511, "ResizablePMCArray"
- push $P511, "$!"
- push $P511, "$_"
- push $P511, "$/"
- push $P511, $P509
- push $P511, $P510
- .return ($P511)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "sigil" :subid("124_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx519_tgt
- .local int rx519_pos
- .local int rx519_off
- .local int rx519_eos
- .local int rx519_rep
- .local pmc rx519_cur
- (rx519_cur, rx519_pos, rx519_tgt) = self."!cursor_start"()
- rx519_cur."!cursor_debug"("START ", "sigil")
- .lex unicode:"$\x{a2}", rx519_cur
- .local pmc match
- .lex "$/", match
- length rx519_eos, rx519_tgt
- gt rx519_pos, rx519_eos, rx519_done
- set rx519_off, 0
- lt rx519_pos, 2, rx519_start
- sub rx519_off, rx519_pos, 1
- substr rx519_tgt, rx519_tgt, rx519_off
- rx519_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan522_done
- goto rxscan522_scan
- rxscan522_loop:
- ($P10) = rx519_cur."from"()
- inc $P10
- set rx519_pos, $P10
- ge rx519_pos, rx519_eos, rxscan522_done
- rxscan522_scan:
- set_addr $I10, rxscan522_loop
- rx519_cur."!mark_push"(0, rx519_pos, $I10)
- rxscan522_done:
-.annotate 'line', 254
+.sub "!PREFIX__variable" :subid("125_1280467477.44751") :method
+.annotate 'line', 4
+ $P496 = self."!PREFIX__!subrule"("sigil", "")
+ $P497 = self."!PREFIX__!subrule"("sigil", "")
+ new $P498, "ResizablePMCArray"
+ push $P498, "$!"
+ push $P498, "$_"
+ push $P498, "$/"
+ push $P498, $P496
+ push $P498, $P497
+ .return ($P498)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "sigil" :subid("126_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx506_tgt
+ .local int rx506_pos
+ .local int rx506_off
+ .local int rx506_eos
+ .local int rx506_rep
+ .local pmc rx506_cur
+ (rx506_cur, rx506_pos, rx506_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx506_cur
+ .local pmc match
+ .lex "$/", match
+ length rx506_eos, rx506_tgt
+ gt rx506_pos, rx506_eos, rx506_done
+ set rx506_off, 0
+ lt rx506_pos, 2, rx506_start
+ sub rx506_off, rx506_pos, 1
+ substr rx506_tgt, rx506_tgt, rx506_off
+ rx506_start:
+ eq $I10, 1, rx506_restart
+ rx506_cur."!cursor_debug"("START ", "sigil")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan509_done
+ goto rxscan509_scan
+ rxscan509_loop:
+ ($P10) = rx506_cur."from"()
+ inc $P10
+ set rx506_pos, $P10
+ ge rx506_pos, rx506_eos, rxscan509_done
+ rxscan509_scan:
+ set_addr $I10, rxscan509_loop
+ rx506_cur."!mark_push"(0, rx506_pos, $I10)
+ rxscan509_done:
+.annotate 'line', 255
# rx enumcharlist negate=0
- ge rx519_pos, rx519_eos, rx519_fail
- sub $I10, rx519_pos, rx519_off
- substr $S10, rx519_tgt, $I10, 1
+ ge rx506_pos, rx506_eos, rx506_fail
+ sub $I10, rx506_pos, rx506_off
+ substr $S10, rx506_tgt, $I10, 1
index $I11, "$@%&", $S10
- lt $I11, 0, rx519_fail
- inc rx519_pos
+ lt $I11, 0, rx506_fail
+ inc rx506_pos
# rx pass
- rx519_cur."!cursor_pass"(rx519_pos, "sigil")
- rx519_cur."!cursor_debug"("PASS ", "sigil", " at pos=", rx519_pos)
- .return (rx519_cur)
- rx519_fail:
+ rx506_cur."!cursor_pass"(rx506_pos, "sigil")
+ rx506_cur."!cursor_debug"("PASS ", "sigil", " at pos=", rx506_pos)
+ .return (rx506_cur)
+ rx506_restart:
.annotate 'line', 4
- (rx519_rep, rx519_pos, $I10, $P10) = rx519_cur."!mark_fail"(0)
- lt rx519_pos, -1, rx519_done
- eq rx519_pos, -1, rx519_fail
+ rx506_cur."!cursor_debug"("NEXT ", "sigil")
+ rx506_fail:
+ (rx506_rep, rx506_pos, $I10, $P10) = rx506_cur."!mark_fail"(0)
+ lt rx506_pos, -1, rx506_done
+ eq rx506_pos, -1, rx506_fail
jump $I10
- rx519_done:
- rx519_cur."!cursor_fail"()
- rx519_cur."!cursor_debug"("FAIL ", "sigil")
- .return (rx519_cur)
+ rx506_done:
+ rx506_cur."!cursor_fail"()
+ rx506_cur."!cursor_debug"("FAIL ", "sigil")
+ .return (rx506_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__sigil" :subid("125_1275811487.95429") :method
+.sub "!PREFIX__sigil" :subid("127_1280467477.44751") :method
.annotate 'line', 4
- new $P521, "ResizablePMCArray"
- push $P521, "&"
- push $P521, "%"
- push $P521, "@"
- push $P521, "$"
- .return ($P521)
+ new $P508, "ResizablePMCArray"
+ push $P508, "&"
+ push $P508, "%"
+ push $P508, "@"
+ push $P508, "$"
+ .return ($P508)
.end
.namespace ["NQP";"Grammar"]
-.sub "twigil" :subid("126_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "twigil" :subid("128_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx524_tgt
- .local int rx524_pos
- .local int rx524_off
- .local int rx524_eos
- .local int rx524_rep
- .local pmc rx524_cur
- (rx524_cur, rx524_pos, rx524_tgt) = self."!cursor_start"()
- rx524_cur."!cursor_debug"("START ", "twigil")
- .lex unicode:"$\x{a2}", rx524_cur
+ .local string rx511_tgt
+ .local int rx511_pos
+ .local int rx511_off
+ .local int rx511_eos
+ .local int rx511_rep
+ .local pmc rx511_cur
+ (rx511_cur, rx511_pos, rx511_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx511_cur
.local pmc match
.lex "$/", match
- length rx524_eos, rx524_tgt
- gt rx524_pos, rx524_eos, rx524_done
- set rx524_off, 0
- lt rx524_pos, 2, rx524_start
- sub rx524_off, rx524_pos, 1
- substr rx524_tgt, rx524_tgt, rx524_off
- rx524_start:
+ length rx511_eos, rx511_tgt
+ gt rx511_pos, rx511_eos, rx511_done
+ set rx511_off, 0
+ lt rx511_pos, 2, rx511_start
+ sub rx511_off, rx511_pos, 1
+ substr rx511_tgt, rx511_tgt, rx511_off
+ rx511_start:
+ eq $I10, 1, rx511_restart
+ rx511_cur."!cursor_debug"("START ", "twigil")
$I10 = self.'from'()
- ne $I10, -1, rxscan527_done
- goto rxscan527_scan
- rxscan527_loop:
- ($P10) = rx524_cur."from"()
+ ne $I10, -1, rxscan514_done
+ goto rxscan514_scan
+ rxscan514_loop:
+ ($P10) = rx511_cur."from"()
inc $P10
- set rx524_pos, $P10
- ge rx524_pos, rx524_eos, rxscan527_done
- rxscan527_scan:
- set_addr $I10, rxscan527_loop
- rx524_cur."!mark_push"(0, rx524_pos, $I10)
- rxscan527_done:
-.annotate 'line', 256
+ set rx511_pos, $P10
+ ge rx511_pos, rx511_eos, rxscan514_done
+ rxscan514_scan:
+ set_addr $I10, rxscan514_loop
+ rx511_cur."!mark_push"(0, rx511_pos, $I10)
+ rxscan514_done:
+.annotate 'line', 257
# rx enumcharlist negate=0
- ge rx524_pos, rx524_eos, rx524_fail
- sub $I10, rx524_pos, rx524_off
- substr $S10, rx524_tgt, $I10, 1
+ ge rx511_pos, rx511_eos, rx511_fail
+ sub $I10, rx511_pos, rx511_off
+ substr $S10, rx511_tgt, $I10, 1
index $I11, "*!?", $S10
- lt $I11, 0, rx524_fail
- inc rx524_pos
+ lt $I11, 0, rx511_fail
+ inc rx511_pos
# rx pass
- rx524_cur."!cursor_pass"(rx524_pos, "twigil")
- rx524_cur."!cursor_debug"("PASS ", "twigil", " at pos=", rx524_pos)
- .return (rx524_cur)
- rx524_fail:
+ rx511_cur."!cursor_pass"(rx511_pos, "twigil")
+ rx511_cur."!cursor_debug"("PASS ", "twigil", " at pos=", rx511_pos)
+ .return (rx511_cur)
+ rx511_restart:
.annotate 'line', 4
- (rx524_rep, rx524_pos, $I10, $P10) = rx524_cur."!mark_fail"(0)
- lt rx524_pos, -1, rx524_done
- eq rx524_pos, -1, rx524_fail
+ rx511_cur."!cursor_debug"("NEXT ", "twigil")
+ rx511_fail:
+ (rx511_rep, rx511_pos, $I10, $P10) = rx511_cur."!mark_fail"(0)
+ lt rx511_pos, -1, rx511_done
+ eq rx511_pos, -1, rx511_fail
jump $I10
- rx524_done:
- rx524_cur."!cursor_fail"()
- rx524_cur."!cursor_debug"("FAIL ", "twigil")
- .return (rx524_cur)
+ rx511_done:
+ rx511_cur."!cursor_fail"()
+ rx511_cur."!cursor_debug"("FAIL ", "twigil")
+ .return (rx511_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__twigil" :subid("127_1275811487.95429") :method
+.sub "!PREFIX__twigil" :subid("129_1280467477.44751") :method
.annotate 'line', 4
- new $P526, "ResizablePMCArray"
- push $P526, "?"
- push $P526, "!"
- push $P526, "*"
- .return ($P526)
+ new $P513, "ResizablePMCArray"
+ push $P513, "?"
+ push $P513, "!"
+ push $P513, "*"
+ .return ($P513)
.end
.namespace ["NQP";"Grammar"]
-.sub "package_declarator" :subid("128_1275811487.95429") :method
-.annotate 'line', 258
- $P529 = self."!protoregex"("package_declarator")
- .return ($P529)
+.sub "package_declarator" :subid("130_1280467477.44751") :method
+.annotate 'line', 259
+ $P516 = self."!protoregex"("package_declarator")
+ .return ($P516)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator" :subid("129_1275811487.95429") :method
-.annotate 'line', 258
- $P531 = self."!PREFIX__!protoregex"("package_declarator")
- .return ($P531)
+.sub "!PREFIX__package_declarator" :subid("131_1280467477.44751") :method
+.annotate 'line', 259
+ $P518 = self."!PREFIX__!protoregex"("package_declarator")
+ .return ($P518)
.end
.namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<module>" :subid("130_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "package_declarator:sym<module>" :subid("132_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx533_tgt
- .local int rx533_pos
- .local int rx533_off
- .local int rx533_eos
- .local int rx533_rep
- .local pmc rx533_cur
- (rx533_cur, rx533_pos, rx533_tgt) = self."!cursor_start"()
- rx533_cur."!cursor_debug"("START ", "package_declarator:sym<module>")
- .lex unicode:"$\x{a2}", rx533_cur
- .local pmc match
- .lex "$/", match
- length rx533_eos, rx533_tgt
- gt rx533_pos, rx533_eos, rx533_done
- set rx533_off, 0
- lt rx533_pos, 2, rx533_start
- sub rx533_off, rx533_pos, 1
- substr rx533_tgt, rx533_tgt, rx533_off
- rx533_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan537_done
- goto rxscan537_scan
- rxscan537_loop:
- ($P10) = rx533_cur."from"()
- inc $P10
- set rx533_pos, $P10
- ge rx533_pos, rx533_eos, rxscan537_done
- rxscan537_scan:
- set_addr $I10, rxscan537_loop
- rx533_cur."!mark_push"(0, rx533_pos, $I10)
- rxscan537_done:
-.annotate 'line', 259
+ .local string rx520_tgt
+ .local int rx520_pos
+ .local int rx520_off
+ .local int rx520_eos
+ .local int rx520_rep
+ .local pmc rx520_cur
+ (rx520_cur, rx520_pos, rx520_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx520_cur
+ .local pmc match
+ .lex "$/", match
+ length rx520_eos, rx520_tgt
+ gt rx520_pos, rx520_eos, rx520_done
+ set rx520_off, 0
+ lt rx520_pos, 2, rx520_start
+ sub rx520_off, rx520_pos, 1
+ substr rx520_tgt, rx520_tgt, rx520_off
+ rx520_start:
+ eq $I10, 1, rx520_restart
+ rx520_cur."!cursor_debug"("START ", "package_declarator:sym<module>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan524_done
+ goto rxscan524_scan
+ rxscan524_loop:
+ ($P10) = rx520_cur."from"()
+ inc $P10
+ set rx520_pos, $P10
+ ge rx520_pos, rx520_eos, rxscan524_done
+ rxscan524_scan:
+ set_addr $I10, rxscan524_loop
+ rx520_cur."!mark_push"(0, rx520_pos, $I10)
+ rxscan524_done:
+.annotate 'line', 260
# rx subcapture "sym"
- set_addr $I10, rxcap_538_fail
- rx533_cur."!mark_push"(0, rx533_pos, $I10)
+ set_addr $I10, rxcap_525_fail
+ rx520_cur."!mark_push"(0, rx520_pos, $I10)
# rx literal "module"
- add $I11, rx533_pos, 6
- gt $I11, rx533_eos, rx533_fail
- sub $I11, rx533_pos, rx533_off
- substr $S10, rx533_tgt, $I11, 6
- ne $S10, "module", rx533_fail
- add rx533_pos, 6
- set_addr $I10, rxcap_538_fail
- ($I12, $I11) = rx533_cur."!mark_peek"($I10)
- rx533_cur."!cursor_pos"($I11)
- ($P10) = rx533_cur."!cursor_start"()
- $P10."!cursor_pass"(rx533_pos, "")
- rx533_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx520_pos, 6
+ gt $I11, rx520_eos, rx520_fail
+ sub $I11, rx520_pos, rx520_off
+ substr $S10, rx520_tgt, $I11, 6
+ ne $S10, "module", rx520_fail
+ add rx520_pos, 6
+ set_addr $I10, rxcap_525_fail
+ ($I12, $I11) = rx520_cur."!mark_peek"($I10)
+ rx520_cur."!cursor_pos"($I11)
+ ($P10) = rx520_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx520_pos, "")
+ rx520_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_538_done
- rxcap_538_fail:
- goto rx533_fail
- rxcap_538_done:
+ goto rxcap_525_done
+ rxcap_525_fail:
+ goto rx520_fail
+ rxcap_525_done:
# rx subrule "package_def" subtype=capture negate=
- rx533_cur."!cursor_pos"(rx533_pos)
- $P10 = rx533_cur."package_def"()
- unless $P10, rx533_fail
- rx533_cur."!mark_push"(0, -1, 0, $P10)
+ rx520_cur."!cursor_pos"(rx520_pos)
+ $P10 = rx520_cur."package_def"()
+ unless $P10, rx520_fail
+ rx520_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("package_def")
- rx533_pos = $P10."pos"()
+ rx520_pos = $P10."pos"()
# rx pass
- rx533_cur."!cursor_pass"(rx533_pos, "package_declarator:sym<module>")
- rx533_cur."!cursor_debug"("PASS ", "package_declarator:sym<module>", " at pos=", rx533_pos)
- .return (rx533_cur)
- rx533_fail:
+ rx520_cur."!cursor_pass"(rx520_pos, "package_declarator:sym<module>")
+ rx520_cur."!cursor_debug"("PASS ", "package_declarator:sym<module>", " at pos=", rx520_pos)
+ .return (rx520_cur)
+ rx520_restart:
.annotate 'line', 4
- (rx533_rep, rx533_pos, $I10, $P10) = rx533_cur."!mark_fail"(0)
- lt rx533_pos, -1, rx533_done
- eq rx533_pos, -1, rx533_fail
+ rx520_cur."!cursor_debug"("NEXT ", "package_declarator:sym<module>")
+ rx520_fail:
+ (rx520_rep, rx520_pos, $I10, $P10) = rx520_cur."!mark_fail"(0)
+ lt rx520_pos, -1, rx520_done
+ eq rx520_pos, -1, rx520_fail
jump $I10
- rx533_done:
- rx533_cur."!cursor_fail"()
- rx533_cur."!cursor_debug"("FAIL ", "package_declarator:sym<module>")
- .return (rx533_cur)
+ rx520_done:
+ rx520_cur."!cursor_fail"()
+ rx520_cur."!cursor_debug"("FAIL ", "package_declarator:sym<module>")
+ .return (rx520_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<module>" :subid("131_1275811487.95429") :method
+.sub "!PREFIX__package_declarator:sym<module>" :subid("133_1280467477.44751") :method
.annotate 'line', 4
- $P535 = self."!PREFIX__!subrule"("package_def", "module")
- new $P536, "ResizablePMCArray"
- push $P536, $P535
- .return ($P536)
+ $P522 = self."!PREFIX__!subrule"("package_def", "module")
+ new $P523, "ResizablePMCArray"
+ push $P523, $P522
+ .return ($P523)
.end
.namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<class>" :subid("132_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "package_declarator:sym<class>" :subid("134_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx540_tgt
- .local int rx540_pos
- .local int rx540_off
- .local int rx540_eos
- .local int rx540_rep
- .local pmc rx540_cur
- (rx540_cur, rx540_pos, rx540_tgt) = self."!cursor_start"()
- rx540_cur."!cursor_debug"("START ", "package_declarator:sym<class>")
- .lex unicode:"$\x{a2}", rx540_cur
+ .local string rx527_tgt
+ .local int rx527_pos
+ .local int rx527_off
+ .local int rx527_eos
+ .local int rx527_rep
+ .local pmc rx527_cur
+ (rx527_cur, rx527_pos, rx527_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx527_cur
.local pmc match
.lex "$/", match
- length rx540_eos, rx540_tgt
- gt rx540_pos, rx540_eos, rx540_done
- set rx540_off, 0
- lt rx540_pos, 2, rx540_start
- sub rx540_off, rx540_pos, 1
- substr rx540_tgt, rx540_tgt, rx540_off
- rx540_start:
+ length rx527_eos, rx527_tgt
+ gt rx527_pos, rx527_eos, rx527_done
+ set rx527_off, 0
+ lt rx527_pos, 2, rx527_start
+ sub rx527_off, rx527_pos, 1
+ substr rx527_tgt, rx527_tgt, rx527_off
+ rx527_start:
+ eq $I10, 1, rx527_restart
+ rx527_cur."!cursor_debug"("START ", "package_declarator:sym<class>")
$I10 = self.'from'()
- ne $I10, -1, rxscan545_done
- goto rxscan545_scan
- rxscan545_loop:
- ($P10) = rx540_cur."from"()
+ ne $I10, -1, rxscan532_done
+ goto rxscan532_scan
+ rxscan532_loop:
+ ($P10) = rx527_cur."from"()
inc $P10
- set rx540_pos, $P10
- ge rx540_pos, rx540_eos, rxscan545_done
- rxscan545_scan:
- set_addr $I10, rxscan545_loop
- rx540_cur."!mark_push"(0, rx540_pos, $I10)
- rxscan545_done:
-.annotate 'line', 260
+ set rx527_pos, $P10
+ ge rx527_pos, rx527_eos, rxscan532_done
+ rxscan532_scan:
+ set_addr $I10, rxscan532_loop
+ rx527_cur."!mark_push"(0, rx527_pos, $I10)
+ rxscan532_done:
+.annotate 'line', 261
# rx subcapture "sym"
- set_addr $I10, rxcap_547_fail
- rx540_cur."!mark_push"(0, rx540_pos, $I10)
- alt546_0:
- set_addr $I10, alt546_1
- rx540_cur."!mark_push"(0, rx540_pos, $I10)
+ set_addr $I10, rxcap_534_fail
+ rx527_cur."!mark_push"(0, rx527_pos, $I10)
+ alt533_0:
+ set_addr $I10, alt533_1
+ rx527_cur."!mark_push"(0, rx527_pos, $I10)
# rx literal "class"
- add $I11, rx540_pos, 5
- gt $I11, rx540_eos, rx540_fail
- sub $I11, rx540_pos, rx540_off
- substr $S10, rx540_tgt, $I11, 5
- ne $S10, "class", rx540_fail
- add rx540_pos, 5
- goto alt546_end
- alt546_1:
+ add $I11, rx527_pos, 5
+ gt $I11, rx527_eos, rx527_fail
+ sub $I11, rx527_pos, rx527_off
+ substr $S10, rx527_tgt, $I11, 5
+ ne $S10, "class", rx527_fail
+ add rx527_pos, 5
+ goto alt533_end
+ alt533_1:
# rx literal "grammar"
- add $I11, rx540_pos, 7
- gt $I11, rx540_eos, rx540_fail
- sub $I11, rx540_pos, rx540_off
- substr $S10, rx540_tgt, $I11, 7
- ne $S10, "grammar", rx540_fail
- add rx540_pos, 7
- alt546_end:
- set_addr $I10, rxcap_547_fail
- ($I12, $I11) = rx540_cur."!mark_peek"($I10)
- rx540_cur."!cursor_pos"($I11)
- ($P10) = rx540_cur."!cursor_start"()
- $P10."!cursor_pass"(rx540_pos, "")
- rx540_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx527_pos, 7
+ gt $I11, rx527_eos, rx527_fail
+ sub $I11, rx527_pos, rx527_off
+ substr $S10, rx527_tgt, $I11, 7
+ ne $S10, "grammar", rx527_fail
+ add rx527_pos, 7
+ alt533_end:
+ set_addr $I10, rxcap_534_fail
+ ($I12, $I11) = rx527_cur."!mark_peek"($I10)
+ rx527_cur."!cursor_pos"($I11)
+ ($P10) = rx527_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx527_pos, "")
+ rx527_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_547_done
- rxcap_547_fail:
- goto rx540_fail
- rxcap_547_done:
+ goto rxcap_534_done
+ rxcap_534_fail:
+ goto rx527_fail
+ rxcap_534_done:
# rx subrule "package_def" subtype=capture negate=
- rx540_cur."!cursor_pos"(rx540_pos)
- $P10 = rx540_cur."package_def"()
- unless $P10, rx540_fail
- rx540_cur."!mark_push"(0, -1, 0, $P10)
+ rx527_cur."!cursor_pos"(rx527_pos)
+ $P10 = rx527_cur."package_def"()
+ unless $P10, rx527_fail
+ rx527_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("package_def")
- rx540_pos = $P10."pos"()
+ rx527_pos = $P10."pos"()
# rx pass
- rx540_cur."!cursor_pass"(rx540_pos, "package_declarator:sym<class>")
- rx540_cur."!cursor_debug"("PASS ", "package_declarator:sym<class>", " at pos=", rx540_pos)
- .return (rx540_cur)
- rx540_fail:
+ rx527_cur."!cursor_pass"(rx527_pos, "package_declarator:sym<class>")
+ rx527_cur."!cursor_debug"("PASS ", "package_declarator:sym<class>", " at pos=", rx527_pos)
+ .return (rx527_cur)
+ rx527_restart:
.annotate 'line', 4
- (rx540_rep, rx540_pos, $I10, $P10) = rx540_cur."!mark_fail"(0)
- lt rx540_pos, -1, rx540_done
- eq rx540_pos, -1, rx540_fail
+ rx527_cur."!cursor_debug"("NEXT ", "package_declarator:sym<class>")
+ rx527_fail:
+ (rx527_rep, rx527_pos, $I10, $P10) = rx527_cur."!mark_fail"(0)
+ lt rx527_pos, -1, rx527_done
+ eq rx527_pos, -1, rx527_fail
jump $I10
- rx540_done:
- rx540_cur."!cursor_fail"()
- rx540_cur."!cursor_debug"("FAIL ", "package_declarator:sym<class>")
- .return (rx540_cur)
+ rx527_done:
+ rx527_cur."!cursor_fail"()
+ rx527_cur."!cursor_debug"("FAIL ", "package_declarator:sym<class>")
+ .return (rx527_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<class>" :subid("133_1275811487.95429") :method
+.sub "!PREFIX__package_declarator:sym<class>" :subid("135_1280467477.44751") :method
.annotate 'line', 4
- $P542 = self."!PREFIX__!subrule"("package_def", "grammar")
- $P543 = self."!PREFIX__!subrule"("package_def", "class")
- new $P544, "ResizablePMCArray"
- push $P544, $P542
- push $P544, $P543
- .return ($P544)
+ $P529 = self."!PREFIX__!subrule"("package_def", "grammar")
+ $P530 = self."!PREFIX__!subrule"("package_def", "class")
+ new $P531, "ResizablePMCArray"
+ push $P531, $P529
+ push $P531, $P530
+ .return ($P531)
.end
.namespace ["NQP";"Grammar"]
-.sub "package_def" :subid("134_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "package_def" :subid("136_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx549_tgt
- .local int rx549_pos
- .local int rx549_off
- .local int rx549_eos
- .local int rx549_rep
- .local pmc rx549_cur
- (rx549_cur, rx549_pos, rx549_tgt) = self."!cursor_start"()
- rx549_cur."!cursor_debug"("START ", "package_def")
- rx549_cur."!cursor_caparray"("parent")
- .lex unicode:"$\x{a2}", rx549_cur
- .local pmc match
- .lex "$/", match
- length rx549_eos, rx549_tgt
- gt rx549_pos, rx549_eos, rx549_done
- set rx549_off, 0
- lt rx549_pos, 2, rx549_start
- sub rx549_off, rx549_pos, 1
- substr rx549_tgt, rx549_tgt, rx549_off
- rx549_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan553_done
- goto rxscan553_scan
- rxscan553_loop:
- ($P10) = rx549_cur."from"()
- inc $P10
- set rx549_pos, $P10
- ge rx549_pos, rx549_eos, rxscan553_done
- rxscan553_scan:
- set_addr $I10, rxscan553_loop
- rx549_cur."!mark_push"(0, rx549_pos, $I10)
- rxscan553_done:
-.annotate 'line', 262
- # rx subrule "ws" subtype=method negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."ws"()
- unless $P10, rx549_fail
- rx549_pos = $P10."pos"()
+ .local string rx536_tgt
+ .local int rx536_pos
+ .local int rx536_off
+ .local int rx536_eos
+ .local int rx536_rep
+ .local pmc rx536_cur
+ (rx536_cur, rx536_pos, rx536_tgt, $I10) = self."!cursor_start"()
+ rx536_cur."!cursor_caparray"("parent")
+ .lex unicode:"$\x{a2}", rx536_cur
+ .local pmc match
+ .lex "$/", match
+ length rx536_eos, rx536_tgt
+ gt rx536_pos, rx536_eos, rx536_done
+ set rx536_off, 0
+ lt rx536_pos, 2, rx536_start
+ sub rx536_off, rx536_pos, 1
+ substr rx536_tgt, rx536_tgt, rx536_off
+ rx536_start:
+ eq $I10, 1, rx536_restart
+ rx536_cur."!cursor_debug"("START ", "package_def")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan540_done
+ goto rxscan540_scan
+ rxscan540_loop:
+ ($P10) = rx536_cur."from"()
+ inc $P10
+ set rx536_pos, $P10
+ ge rx536_pos, rx536_eos, rxscan540_done
+ rxscan540_scan:
+ set_addr $I10, rxscan540_loop
+ rx536_cur."!mark_push"(0, rx536_pos, $I10)
+ rxscan540_done:
.annotate 'line', 263
+ # rx subrule "ws" subtype=method negate=
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."ws"()
+ unless $P10, rx536_fail
+ rx536_pos = $P10."pos"()
+.annotate 'line', 264
# rx subrule "name" subtype=capture negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."name"()
- unless $P10, rx549_fail
- rx549_cur."!mark_push"(0, -1, 0, $P10)
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."name"()
+ unless $P10, rx536_fail
+ rx536_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("name")
- rx549_pos = $P10."pos"()
+ rx536_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."ws"()
- unless $P10, rx549_fail
- rx549_pos = $P10."pos"()
-.annotate 'line', 264
- # rx rxquantr556 ** 0..1
- set_addr $I560, rxquantr556_done
- rx549_cur."!mark_push"(0, rx549_pos, $I560)
- rxquantr556_loop:
- # rx subrule "ws" subtype=method negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."ws"()
- unless $P10, rx549_fail
- rx549_pos = $P10."pos"()
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."ws"()
+ unless $P10, rx536_fail
+ rx536_pos = $P10."pos"()
+.annotate 'line', 265
+ # rx rxquantr543 ** 0..1
+ set_addr $I10, rxquantr543_done
+ rx536_cur."!mark_push"(0, rx536_pos, $I10)
+ rxquantr543_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."ws"()
+ unless $P10, rx536_fail
+ rx536_pos = $P10."pos"()
# rx literal "is"
- add $I11, rx549_pos, 2
- gt $I11, rx549_eos, rx549_fail
- sub $I11, rx549_pos, rx549_off
- substr $S10, rx549_tgt, $I11, 2
- ne $S10, "is", rx549_fail
- add rx549_pos, 2
- # rx subrule "ws" subtype=method negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."ws"()
- unless $P10, rx549_fail
- rx549_pos = $P10."pos"()
+ add $I11, rx536_pos, 2
+ gt $I11, rx536_eos, rx536_fail
+ sub $I11, rx536_pos, rx536_off
+ substr $S10, rx536_tgt, $I11, 2
+ ne $S10, "is", rx536_fail
+ add rx536_pos, 2
+ # rx subrule "ws" subtype=method negate=
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."ws"()
+ unless $P10, rx536_fail
+ rx536_pos = $P10."pos"()
# rx subrule "name" subtype=capture negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."name"()
- unless $P10, rx549_fail
- rx549_cur."!mark_push"(0, -1, 0, $P10)
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."name"()
+ unless $P10, rx536_fail
+ rx536_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("parent")
- rx549_pos = $P10."pos"()
+ rx536_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."ws"()
- unless $P10, rx549_fail
- rx549_pos = $P10."pos"()
- (rx549_rep) = rx549_cur."!mark_commit"($I560)
- rxquantr556_done:
- # rx subrule "ws" subtype=method negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."ws"()
- unless $P10, rx549_fail
- rx549_pos = $P10."pos"()
- alt562_0:
-.annotate 'line', 265
- set_addr $I10, alt562_1
- rx549_cur."!mark_push"(0, rx549_pos, $I10)
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."ws"()
+ unless $P10, rx536_fail
+ rx536_pos = $P10."pos"()
+ set_addr $I10, rxquantr543_done
+ (rx536_rep) = rx536_cur."!mark_commit"($I10)
+ rxquantr543_done:
+ # rx subrule "ws" subtype=method negate=
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."ws"()
+ unless $P10, rx536_fail
+ rx536_pos = $P10."pos"()
+ alt548_0:
.annotate 'line', 266
+ set_addr $I10, alt548_1
+ rx536_cur."!mark_push"(0, rx536_pos, $I10)
+.annotate 'line', 267
# rx subrule "ws" subtype=method negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."ws"()
- unless $P10, rx549_fail
- rx549_pos = $P10."pos"()
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."ws"()
+ unless $P10, rx536_fail
+ rx536_pos = $P10."pos"()
# rx literal ";"
- add $I11, rx549_pos, 1
- gt $I11, rx549_eos, rx549_fail
- sub $I11, rx549_pos, rx549_off
- substr $S10, rx549_tgt, $I11, 1
- ne $S10, ";", rx549_fail
- add rx549_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."ws"()
- unless $P10, rx549_fail
- rx549_pos = $P10."pos"()
+ add $I11, rx536_pos, 1
+ gt $I11, rx536_eos, rx536_fail
+ sub $I11, rx536_pos, rx536_off
+ substr $S10, rx536_tgt, $I11, 1
+ ne $S10, ";", rx536_fail
+ add rx536_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."ws"()
+ unless $P10, rx536_fail
+ rx536_pos = $P10."pos"()
# rx subrule "comp_unit" subtype=capture negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."comp_unit"()
- unless $P10, rx549_fail
- rx549_cur."!mark_push"(0, -1, 0, $P10)
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."comp_unit"()
+ unless $P10, rx536_fail
+ rx536_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("comp_unit")
- rx549_pos = $P10."pos"()
+ rx536_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."ws"()
- unless $P10, rx549_fail
- rx549_pos = $P10."pos"()
- goto alt562_end
- alt562_1:
- set_addr $I10, alt562_2
- rx549_cur."!mark_push"(0, rx549_pos, $I10)
-.annotate 'line', 267
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."ws"()
+ unless $P10, rx536_fail
+ rx536_pos = $P10."pos"()
+ goto alt548_end
+ alt548_1:
+ set_addr $I10, alt548_2
+ rx536_cur."!mark_push"(0, rx536_pos, $I10)
+.annotate 'line', 268
# rx subrule "ws" subtype=method negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."ws"()
- unless $P10, rx549_fail
- rx549_pos = $P10."pos"()
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."ws"()
+ unless $P10, rx536_fail
+ rx536_pos = $P10."pos"()
# rx enumcharlist negate=0 zerowidth
- ge rx549_pos, rx549_eos, rx549_fail
- sub $I10, rx549_pos, rx549_off
- substr $S10, rx549_tgt, $I10, 1
+ ge rx536_pos, rx536_eos, rx536_fail
+ sub $I10, rx536_pos, rx536_off
+ substr $S10, rx536_tgt, $I10, 1
index $I11, "{", $S10
- lt $I11, 0, rx549_fail
+ lt $I11, 0, rx536_fail
# rx subrule "ws" subtype=method negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."ws"()
- unless $P10, rx549_fail
- rx549_pos = $P10."pos"()
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."ws"()
+ unless $P10, rx536_fail
+ rx536_pos = $P10."pos"()
# rx subrule "block" subtype=capture negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."block"()
- unless $P10, rx549_fail
- rx549_cur."!mark_push"(0, -1, 0, $P10)
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."block"()
+ unless $P10, rx536_fail
+ rx536_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("block")
- rx549_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."ws"()
- unless $P10, rx549_fail
- rx549_pos = $P10."pos"()
- goto alt562_end
- alt562_2:
-.annotate 'line', 268
+ rx536_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."ws"()
- unless $P10, rx549_fail
- rx549_pos = $P10."pos"()
- # rx subrule "panic" subtype=method negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."panic"("Malformed package declaration")
- unless $P10, rx549_fail
- rx549_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."ws"()
- unless $P10, rx549_fail
- rx549_pos = $P10."pos"()
- alt562_end:
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."ws"()
+ unless $P10, rx536_fail
+ rx536_pos = $P10."pos"()
+ goto alt548_end
+ alt548_2:
.annotate 'line', 269
# rx subrule "ws" subtype=method negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."ws"()
- unless $P10, rx549_fail
- rx549_pos = $P10."pos"()
-.annotate 'line', 262
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."ws"()
+ unless $P10, rx536_fail
+ rx536_pos = $P10."pos"()
+ # rx subrule "panic" subtype=method negate=
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."panic"("Malformed package declaration")
+ unless $P10, rx536_fail
+ rx536_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."ws"()
+ unless $P10, rx536_fail
+ rx536_pos = $P10."pos"()
+ alt548_end:
+.annotate 'line', 270
+ # rx subrule "ws" subtype=method negate=
+ rx536_cur."!cursor_pos"(rx536_pos)
+ $P10 = rx536_cur."ws"()
+ unless $P10, rx536_fail
+ rx536_pos = $P10."pos"()
+.annotate 'line', 263
# rx pass
- rx549_cur."!cursor_pass"(rx549_pos, "package_def")
- rx549_cur."!cursor_debug"("PASS ", "package_def", " at pos=", rx549_pos)
- .return (rx549_cur)
- rx549_fail:
+ rx536_cur."!cursor_pass"(rx536_pos, "package_def")
+ rx536_cur."!cursor_debug"("PASS ", "package_def", " at pos=", rx536_pos)
+ .return (rx536_cur)
+ rx536_restart:
.annotate 'line', 4
- (rx549_rep, rx549_pos, $I10, $P10) = rx549_cur."!mark_fail"(0)
- lt rx549_pos, -1, rx549_done
- eq rx549_pos, -1, rx549_fail
+ rx536_cur."!cursor_debug"("NEXT ", "package_def")
+ rx536_fail:
+ (rx536_rep, rx536_pos, $I10, $P10) = rx536_cur."!mark_fail"(0)
+ lt rx536_pos, -1, rx536_done
+ eq rx536_pos, -1, rx536_fail
jump $I10
- rx549_done:
- rx549_cur."!cursor_fail"()
- rx549_cur."!cursor_debug"("FAIL ", "package_def")
- .return (rx549_cur)
+ rx536_done:
+ rx536_cur."!cursor_fail"()
+ rx536_cur."!cursor_debug"("FAIL ", "package_def")
+ .return (rx536_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_def" :subid("135_1275811487.95429") :method
+.sub "!PREFIX__package_def" :subid("137_1280467477.44751") :method
.annotate 'line', 4
- $P551 = self."!PREFIX__!subrule"("ws", "")
- new $P552, "ResizablePMCArray"
- push $P552, $P551
- .return ($P552)
+ $P538 = self."!PREFIX__!subrule"("ws", "")
+ new $P539, "ResizablePMCArray"
+ push $P539, $P538
+ .return ($P539)
.end
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator" :subid("136_1275811487.95429") :method
-.annotate 'line', 272
- $P573 = self."!protoregex"("scope_declarator")
- .return ($P573)
+.sub "scope_declarator" :subid("138_1280467477.44751") :method
+.annotate 'line', 273
+ $P559 = self."!protoregex"("scope_declarator")
+ .return ($P559)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__scope_declarator" :subid("139_1280467477.44751") :method
+.annotate 'line', 273
+ $P561 = self."!PREFIX__!protoregex"("scope_declarator")
+ .return ($P561)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "scope_declarator:sym<my>" :subid("140_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx563_tgt
+ .local int rx563_pos
+ .local int rx563_off
+ .local int rx563_eos
+ .local int rx563_rep
+ .local pmc rx563_cur
+ (rx563_cur, rx563_pos, rx563_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx563_cur
+ .local pmc match
+ .lex "$/", match
+ length rx563_eos, rx563_tgt
+ gt rx563_pos, rx563_eos, rx563_done
+ set rx563_off, 0
+ lt rx563_pos, 2, rx563_start
+ sub rx563_off, rx563_pos, 1
+ substr rx563_tgt, rx563_tgt, rx563_off
+ rx563_start:
+ eq $I10, 1, rx563_restart
+ rx563_cur."!cursor_debug"("START ", "scope_declarator:sym<my>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan567_done
+ goto rxscan567_scan
+ rxscan567_loop:
+ ($P10) = rx563_cur."from"()
+ inc $P10
+ set rx563_pos, $P10
+ ge rx563_pos, rx563_eos, rxscan567_done
+ rxscan567_scan:
+ set_addr $I10, rxscan567_loop
+ rx563_cur."!mark_push"(0, rx563_pos, $I10)
+ rxscan567_done:
+.annotate 'line', 274
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_568_fail
+ rx563_cur."!mark_push"(0, rx563_pos, $I10)
+ # rx literal "my"
+ add $I11, rx563_pos, 2
+ gt $I11, rx563_eos, rx563_fail
+ sub $I11, rx563_pos, rx563_off
+ substr $S10, rx563_tgt, $I11, 2
+ ne $S10, "my", rx563_fail
+ add rx563_pos, 2
+ set_addr $I10, rxcap_568_fail
+ ($I12, $I11) = rx563_cur."!mark_peek"($I10)
+ rx563_cur."!cursor_pos"($I11)
+ ($P10) = rx563_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx563_pos, "")
+ rx563_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_568_done
+ rxcap_568_fail:
+ goto rx563_fail
+ rxcap_568_done:
+ # rx subrule "scoped" subtype=capture negate=
+ rx563_cur."!cursor_pos"(rx563_pos)
+ $P10 = rx563_cur."scoped"("my")
+ unless $P10, rx563_fail
+ rx563_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("scoped")
+ 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)
+ .return (rx563_cur)
+ rx563_restart:
+.annotate 'line', 4
+ rx563_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<my>")
+ rx563_fail:
+ (rx563_rep, rx563_pos, $I10, $P10) = rx563_cur."!mark_fail"(0)
+ lt rx563_pos, -1, rx563_done
+ eq rx563_pos, -1, rx563_fail
+ jump $I10
+ rx563_done:
+ rx563_cur."!cursor_fail"()
+ rx563_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<my>")
+ .return (rx563_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__scope_declarator:sym<my>" :subid("141_1280467477.44751") :method
+.annotate 'line', 4
+ $P565 = self."!PREFIX__!subrule"("scoped", "my")
+ new $P566, "ResizablePMCArray"
+ push $P566, $P565
+ .return ($P566)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "scope_declarator:sym<our>" :subid("142_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx570_tgt
+ .local int rx570_pos
+ .local int rx570_off
+ .local int rx570_eos
+ .local int rx570_rep
+ .local pmc rx570_cur
+ (rx570_cur, rx570_pos, rx570_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx570_cur
+ .local pmc match
+ .lex "$/", match
+ length rx570_eos, rx570_tgt
+ gt rx570_pos, rx570_eos, rx570_done
+ set rx570_off, 0
+ lt rx570_pos, 2, rx570_start
+ sub rx570_off, rx570_pos, 1
+ substr rx570_tgt, rx570_tgt, rx570_off
+ rx570_start:
+ eq $I10, 1, rx570_restart
+ rx570_cur."!cursor_debug"("START ", "scope_declarator:sym<our>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan574_done
+ goto rxscan574_scan
+ rxscan574_loop:
+ ($P10) = rx570_cur."from"()
+ inc $P10
+ set rx570_pos, $P10
+ ge rx570_pos, rx570_eos, rxscan574_done
+ rxscan574_scan:
+ set_addr $I10, rxscan574_loop
+ rx570_cur."!mark_push"(0, rx570_pos, $I10)
+ rxscan574_done:
+.annotate 'line', 275
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_575_fail
+ rx570_cur."!mark_push"(0, rx570_pos, $I10)
+ # rx literal "our"
+ add $I11, rx570_pos, 3
+ gt $I11, rx570_eos, rx570_fail
+ sub $I11, rx570_pos, rx570_off
+ substr $S10, rx570_tgt, $I11, 3
+ ne $S10, "our", rx570_fail
+ add rx570_pos, 3
+ set_addr $I10, rxcap_575_fail
+ ($I12, $I11) = rx570_cur."!mark_peek"($I10)
+ rx570_cur."!cursor_pos"($I11)
+ ($P10) = rx570_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx570_pos, "")
+ rx570_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_575_done
+ rxcap_575_fail:
+ goto rx570_fail
+ rxcap_575_done:
+ # rx subrule "scoped" subtype=capture negate=
+ rx570_cur."!cursor_pos"(rx570_pos)
+ $P10 = rx570_cur."scoped"("our")
+ unless $P10, rx570_fail
+ rx570_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("scoped")
+ 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)
+ .return (rx570_cur)
+ rx570_restart:
+.annotate 'line', 4
+ rx570_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<our>")
+ rx570_fail:
+ (rx570_rep, rx570_pos, $I10, $P10) = rx570_cur."!mark_fail"(0)
+ lt rx570_pos, -1, rx570_done
+ eq rx570_pos, -1, rx570_fail
+ jump $I10
+ rx570_done:
+ rx570_cur."!cursor_fail"()
+ rx570_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<our>")
+ .return (rx570_cur)
+ .return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator" :subid("137_1275811487.95429") :method
-.annotate 'line', 272
- $P575 = self."!PREFIX__!protoregex"("scope_declarator")
- .return ($P575)
+.sub "!PREFIX__scope_declarator:sym<our>" :subid("143_1280467477.44751") :method
+.annotate 'line', 4
+ $P572 = self."!PREFIX__!subrule"("scoped", "our")
+ new $P573, "ResizablePMCArray"
+ push $P573, $P572
+ .return ($P573)
.end
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<my>" :subid("138_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "scope_declarator:sym<has>" :subid("144_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
.local string rx577_tgt
.local int rx577_pos
@@ -6968,8 +7555,7 @@
.local int rx577_eos
.local int rx577_rep
.local pmc rx577_cur
- (rx577_cur, rx577_pos, rx577_tgt) = self."!cursor_start"()
- rx577_cur."!cursor_debug"("START ", "scope_declarator:sym<my>")
+ (rx577_cur, rx577_pos, rx577_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx577_cur
.local pmc match
.lex "$/", match
@@ -6980,6 +7566,8 @@
sub rx577_off, rx577_pos, 1
substr rx577_tgt, rx577_tgt, rx577_off
rx577_start:
+ eq $I10, 1, rx577_restart
+ rx577_cur."!cursor_debug"("START ", "scope_declarator:sym<has>")
$I10 = self.'from'()
ne $I10, -1, rxscan581_done
goto rxscan581_scan
@@ -6992,17 +7580,17 @@
set_addr $I10, rxscan581_loop
rx577_cur."!mark_push"(0, rx577_pos, $I10)
rxscan581_done:
-.annotate 'line', 273
+.annotate 'line', 276
# rx subcapture "sym"
set_addr $I10, rxcap_582_fail
rx577_cur."!mark_push"(0, rx577_pos, $I10)
- # rx literal "my"
- add $I11, rx577_pos, 2
+ # rx literal "has"
+ add $I11, rx577_pos, 3
gt $I11, rx577_eos, rx577_fail
sub $I11, rx577_pos, rx577_off
- substr $S10, rx577_tgt, $I11, 2
- ne $S10, "my", rx577_fail
- add rx577_pos, 2
+ substr $S10, rx577_tgt, $I11, 3
+ ne $S10, "has", rx577_fail
+ add rx577_pos, 3
set_addr $I10, rxcap_582_fail
($I12, $I11) = rx577_cur."!mark_peek"($I10)
rx577_cur."!cursor_pos"($I11)
@@ -7016,33 +7604,35 @@
rxcap_582_done:
# rx subrule "scoped" subtype=capture negate=
rx577_cur."!cursor_pos"(rx577_pos)
- $P10 = rx577_cur."scoped"("my")
+ $P10 = rx577_cur."scoped"("has")
unless $P10, rx577_fail
rx577_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("scoped")
rx577_pos = $P10."pos"()
# rx pass
- rx577_cur."!cursor_pass"(rx577_pos, "scope_declarator:sym<my>")
- rx577_cur."!cursor_debug"("PASS ", "scope_declarator:sym<my>", " at pos=", rx577_pos)
+ rx577_cur."!cursor_pass"(rx577_pos, "scope_declarator:sym<has>")
+ rx577_cur."!cursor_debug"("PASS ", "scope_declarator:sym<has>", " at pos=", rx577_pos)
.return (rx577_cur)
- rx577_fail:
+ rx577_restart:
.annotate 'line', 4
+ rx577_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<has>")
+ rx577_fail:
(rx577_rep, rx577_pos, $I10, $P10) = rx577_cur."!mark_fail"(0)
lt rx577_pos, -1, rx577_done
eq rx577_pos, -1, rx577_fail
jump $I10
rx577_done:
rx577_cur."!cursor_fail"()
- rx577_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<my>")
+ rx577_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<has>")
.return (rx577_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<my>" :subid("139_1275811487.95429") :method
+.sub "!PREFIX__scope_declarator:sym<has>" :subid("145_1280467477.44751") :method
.annotate 'line', 4
- $P579 = self."!PREFIX__!subrule"("scoped", "my")
+ $P579 = self."!PREFIX__!subrule"("scoped", "has")
new $P580, "ResizablePMCArray"
push $P580, $P579
.return ($P580)
@@ -7050,297 +7640,282 @@
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<our>" :subid("140_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "scoped" :subid("146_1280467477.44751") :method :outer("11_1280467477.44751")
+ .param pmc param_584
+.annotate 'line', 278
+ .lex "$*SCOPE", param_584
.annotate 'line', 4
- .local string rx584_tgt
- .local int rx584_pos
- .local int rx584_off
- .local int rx584_eos
- .local int rx584_rep
- .local pmc rx584_cur
- (rx584_cur, rx584_pos, rx584_tgt) = self."!cursor_start"()
- rx584_cur."!cursor_debug"("START ", "scope_declarator:sym<our>")
- .lex unicode:"$\x{a2}", rx584_cur
- .local pmc match
- .lex "$/", match
- length rx584_eos, rx584_tgt
- gt rx584_pos, rx584_eos, rx584_done
- set rx584_off, 0
- lt rx584_pos, 2, rx584_start
- sub rx584_off, rx584_pos, 1
- substr rx584_tgt, rx584_tgt, rx584_off
- rx584_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan588_done
- goto rxscan588_scan
- rxscan588_loop:
- ($P10) = rx584_cur."from"()
- inc $P10
- set rx584_pos, $P10
- ge rx584_pos, rx584_eos, rxscan588_done
- rxscan588_scan:
- set_addr $I10, rxscan588_loop
- rx584_cur."!mark_push"(0, rx584_pos, $I10)
- rxscan588_done:
-.annotate 'line', 274
- # rx subcapture "sym"
- set_addr $I10, rxcap_589_fail
- rx584_cur."!mark_push"(0, rx584_pos, $I10)
- # rx literal "our"
- add $I11, rx584_pos, 3
- gt $I11, rx584_eos, rx584_fail
- sub $I11, rx584_pos, rx584_off
- substr $S10, rx584_tgt, $I11, 3
- ne $S10, "our", rx584_fail
- add rx584_pos, 3
- set_addr $I10, rxcap_589_fail
- ($I12, $I11) = rx584_cur."!mark_peek"($I10)
- rx584_cur."!cursor_pos"($I11)
- ($P10) = rx584_cur."!cursor_start"()
- $P10."!cursor_pass"(rx584_pos, "")
- rx584_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_589_done
- rxcap_589_fail:
- goto rx584_fail
- rxcap_589_done:
- # rx subrule "scoped" subtype=capture negate=
- rx584_cur."!cursor_pos"(rx584_pos)
- $P10 = rx584_cur."scoped"("our")
- unless $P10, rx584_fail
- rx584_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("scoped")
- rx584_pos = $P10."pos"()
+ .local string rx585_tgt
+ .local int rx585_pos
+ .local int rx585_off
+ .local int rx585_eos
+ .local int rx585_rep
+ .local pmc rx585_cur
+ (rx585_cur, rx585_pos, rx585_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx585_cur
+ .local pmc match
+ .lex "$/", match
+ length rx585_eos, rx585_tgt
+ gt rx585_pos, rx585_eos, rx585_done
+ set rx585_off, 0
+ lt rx585_pos, 2, rx585_start
+ sub rx585_off, rx585_pos, 1
+ substr rx585_tgt, rx585_tgt, rx585_off
+ rx585_start:
+ eq $I10, 1, rx585_restart
+ rx585_cur."!cursor_debug"("START ", "scoped")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan590_done
+ goto rxscan590_scan
+ rxscan590_loop:
+ ($P10) = rx585_cur."from"()
+ inc $P10
+ set rx585_pos, $P10
+ ge rx585_pos, rx585_eos, rxscan590_done
+ rxscan590_scan:
+ set_addr $I10, rxscan590_loop
+ rx585_cur."!mark_push"(0, rx585_pos, $I10)
+ rxscan590_done:
+ alt591_0:
+.annotate 'line', 278
+ set_addr $I10, alt591_1
+ rx585_cur."!mark_push"(0, rx585_pos, $I10)
+.annotate 'line', 279
+ # rx subrule "ws" subtype=method negate=
+ rx585_cur."!cursor_pos"(rx585_pos)
+ $P10 = rx585_cur."ws"()
+ unless $P10, rx585_fail
+ rx585_pos = $P10."pos"()
+ # rx subrule "declarator" subtype=capture negate=
+ rx585_cur."!cursor_pos"(rx585_pos)
+ $P10 = rx585_cur."declarator"()
+ unless $P10, rx585_fail
+ rx585_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("declarator")
+ rx585_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx585_cur."!cursor_pos"(rx585_pos)
+ $P10 = rx585_cur."ws"()
+ unless $P10, rx585_fail
+ rx585_pos = $P10."pos"()
+ goto alt591_end
+ alt591_1:
+.annotate 'line', 280
+ # rx subrule "ws" subtype=method negate=
+ rx585_cur."!cursor_pos"(rx585_pos)
+ $P10 = rx585_cur."ws"()
+ unless $P10, rx585_fail
+ rx585_pos = $P10."pos"()
+ # rx subrule "multi_declarator" subtype=capture negate=
+ rx585_cur."!cursor_pos"(rx585_pos)
+ $P10 = rx585_cur."multi_declarator"()
+ unless $P10, rx585_fail
+ rx585_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("multi_declarator")
+ rx585_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx585_cur."!cursor_pos"(rx585_pos)
+ $P10 = rx585_cur."ws"()
+ unless $P10, rx585_fail
+ rx585_pos = $P10."pos"()
+ alt591_end:
+.annotate 'line', 278
# rx pass
- rx584_cur."!cursor_pass"(rx584_pos, "scope_declarator:sym<our>")
- rx584_cur."!cursor_debug"("PASS ", "scope_declarator:sym<our>", " at pos=", rx584_pos)
- .return (rx584_cur)
- rx584_fail:
+ rx585_cur."!cursor_pass"(rx585_pos, "scoped")
+ rx585_cur."!cursor_debug"("PASS ", "scoped", " at pos=", rx585_pos)
+ .return (rx585_cur)
+ rx585_restart:
.annotate 'line', 4
- (rx584_rep, rx584_pos, $I10, $P10) = rx584_cur."!mark_fail"(0)
- lt rx584_pos, -1, rx584_done
- eq rx584_pos, -1, rx584_fail
+ rx585_cur."!cursor_debug"("NEXT ", "scoped")
+ rx585_fail:
+ (rx585_rep, rx585_pos, $I10, $P10) = rx585_cur."!mark_fail"(0)
+ lt rx585_pos, -1, rx585_done
+ eq rx585_pos, -1, rx585_fail
jump $I10
- rx584_done:
- rx584_cur."!cursor_fail"()
- rx584_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<our>")
- .return (rx584_cur)
+ rx585_done:
+ rx585_cur."!cursor_fail"()
+ rx585_cur."!cursor_debug"("FAIL ", "scoped")
+ .return (rx585_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<our>" :subid("141_1275811487.95429") :method
+.sub "!PREFIX__scoped" :subid("147_1280467477.44751") :method
.annotate 'line', 4
- $P586 = self."!PREFIX__!subrule"("scoped", "our")
- new $P587, "ResizablePMCArray"
- push $P587, $P586
- .return ($P587)
+ $P587 = self."!PREFIX__!subrule"("ws", "")
+ $P588 = self."!PREFIX__!subrule"("ws", "")
+ new $P589, "ResizablePMCArray"
+ push $P589, $P587
+ push $P589, $P588
+ .return ($P589)
.end
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<has>" :subid("142_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "typename" :subid("148_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx591_tgt
- .local int rx591_pos
- .local int rx591_off
- .local int rx591_eos
- .local int rx591_rep
- .local pmc rx591_cur
- (rx591_cur, rx591_pos, rx591_tgt) = self."!cursor_start"()
- rx591_cur."!cursor_debug"("START ", "scope_declarator:sym<has>")
- .lex unicode:"$\x{a2}", rx591_cur
+ .local string rx597_tgt
+ .local int rx597_pos
+ .local int rx597_off
+ .local int rx597_eos
+ .local int rx597_rep
+ .local pmc rx597_cur
+ (rx597_cur, rx597_pos, rx597_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx597_cur
.local pmc match
.lex "$/", match
- length rx591_eos, rx591_tgt
- gt rx591_pos, rx591_eos, rx591_done
- set rx591_off, 0
- lt rx591_pos, 2, rx591_start
- sub rx591_off, rx591_pos, 1
- substr rx591_tgt, rx591_tgt, rx591_off
- rx591_start:
+ length rx597_eos, rx597_tgt
+ gt rx597_pos, rx597_eos, rx597_done
+ set rx597_off, 0
+ lt rx597_pos, 2, rx597_start
+ sub rx597_off, rx597_pos, 1
+ substr rx597_tgt, rx597_tgt, rx597_off
+ rx597_start:
+ eq $I10, 1, rx597_restart
+ rx597_cur."!cursor_debug"("START ", "typename")
$I10 = self.'from'()
- ne $I10, -1, rxscan595_done
- goto rxscan595_scan
- rxscan595_loop:
- ($P10) = rx591_cur."from"()
+ ne $I10, -1, rxscan601_done
+ goto rxscan601_scan
+ rxscan601_loop:
+ ($P10) = rx597_cur."from"()
inc $P10
- set rx591_pos, $P10
- ge rx591_pos, rx591_eos, rxscan595_done
- rxscan595_scan:
- set_addr $I10, rxscan595_loop
- rx591_cur."!mark_push"(0, rx591_pos, $I10)
- rxscan595_done:
-.annotate 'line', 275
- # rx subcapture "sym"
- set_addr $I10, rxcap_596_fail
- rx591_cur."!mark_push"(0, rx591_pos, $I10)
- # rx literal "has"
- add $I11, rx591_pos, 3
- gt $I11, rx591_eos, rx591_fail
- sub $I11, rx591_pos, rx591_off
- substr $S10, rx591_tgt, $I11, 3
- ne $S10, "has", rx591_fail
- add rx591_pos, 3
- set_addr $I10, rxcap_596_fail
- ($I12, $I11) = rx591_cur."!mark_peek"($I10)
- rx591_cur."!cursor_pos"($I11)
- ($P10) = rx591_cur."!cursor_start"()
- $P10."!cursor_pass"(rx591_pos, "")
- rx591_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_596_done
- rxcap_596_fail:
- goto rx591_fail
- rxcap_596_done:
- # rx subrule "scoped" subtype=capture negate=
- rx591_cur."!cursor_pos"(rx591_pos)
- $P10 = rx591_cur."scoped"("has")
- unless $P10, rx591_fail
- rx591_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("scoped")
- rx591_pos = $P10."pos"()
+ set rx597_pos, $P10
+ ge rx597_pos, rx597_eos, rxscan601_done
+ rxscan601_scan:
+ set_addr $I10, rxscan601_loop
+ rx597_cur."!mark_push"(0, rx597_pos, $I10)
+ rxscan601_done:
+.annotate 'line', 283
+ # rx subrule "name" subtype=capture negate=
+ rx597_cur."!cursor_pos"(rx597_pos)
+ $P10 = rx597_cur."name"()
+ unless $P10, rx597_fail
+ rx597_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("name")
+ rx597_pos = $P10."pos"()
# rx pass
- rx591_cur."!cursor_pass"(rx591_pos, "scope_declarator:sym<has>")
- rx591_cur."!cursor_debug"("PASS ", "scope_declarator:sym<has>", " at pos=", rx591_pos)
- .return (rx591_cur)
- rx591_fail:
+ rx597_cur."!cursor_pass"(rx597_pos, "typename")
+ rx597_cur."!cursor_debug"("PASS ", "typename", " at pos=", rx597_pos)
+ .return (rx597_cur)
+ rx597_restart:
.annotate 'line', 4
- (rx591_rep, rx591_pos, $I10, $P10) = rx591_cur."!mark_fail"(0)
- lt rx591_pos, -1, rx591_done
- eq rx591_pos, -1, rx591_fail
+ rx597_cur."!cursor_debug"("NEXT ", "typename")
+ rx597_fail:
+ (rx597_rep, rx597_pos, $I10, $P10) = rx597_cur."!mark_fail"(0)
+ lt rx597_pos, -1, rx597_done
+ eq rx597_pos, -1, rx597_fail
jump $I10
- rx591_done:
- rx591_cur."!cursor_fail"()
- rx591_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<has>")
- .return (rx591_cur)
+ rx597_done:
+ rx597_cur."!cursor_fail"()
+ rx597_cur."!cursor_debug"("FAIL ", "typename")
+ .return (rx597_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<has>" :subid("143_1275811487.95429") :method
+.sub "!PREFIX__typename" :subid("149_1280467477.44751") :method
.annotate 'line', 4
- $P593 = self."!PREFIX__!subrule"("scoped", "has")
- new $P594, "ResizablePMCArray"
- push $P594, $P593
- .return ($P594)
+ $P599 = self."!PREFIX__!subrule"("name", "")
+ new $P600, "ResizablePMCArray"
+ push $P600, $P599
+ .return ($P600)
.end
.namespace ["NQP";"Grammar"]
-.sub "scoped" :subid("144_1275811487.95429") :method :outer("11_1275811487.95429")
- .param pmc param_598
-.annotate 'line', 277
- .lex "$*SCOPE", param_598
+.sub "declarator" :subid("150_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx599_tgt
- .local int rx599_pos
- .local int rx599_off
- .local int rx599_eos
- .local int rx599_rep
- .local pmc rx599_cur
- (rx599_cur, rx599_pos, rx599_tgt) = self."!cursor_start"()
- rx599_cur."!cursor_debug"("START ", "scoped")
- .lex unicode:"$\x{a2}", rx599_cur
+ .local string rx603_tgt
+ .local int rx603_pos
+ .local int rx603_off
+ .local int rx603_eos
+ .local int rx603_rep
+ .local pmc rx603_cur
+ (rx603_cur, rx603_pos, rx603_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx603_cur
.local pmc match
.lex "$/", match
- length rx599_eos, rx599_tgt
- gt rx599_pos, rx599_eos, rx599_done
- set rx599_off, 0
- lt rx599_pos, 2, rx599_start
- sub rx599_off, rx599_pos, 1
- substr rx599_tgt, rx599_tgt, rx599_off
- rx599_start:
+ length rx603_eos, rx603_tgt
+ gt rx603_pos, rx603_eos, rx603_done
+ set rx603_off, 0
+ lt rx603_pos, 2, rx603_start
+ sub rx603_off, rx603_pos, 1
+ substr rx603_tgt, rx603_tgt, rx603_off
+ rx603_start:
+ eq $I10, 1, rx603_restart
+ rx603_cur."!cursor_debug"("START ", "declarator")
$I10 = self.'from'()
- ne $I10, -1, rxscan604_done
- goto rxscan604_scan
- rxscan604_loop:
- ($P10) = rx599_cur."from"()
+ ne $I10, -1, rxscan608_done
+ goto rxscan608_scan
+ rxscan608_loop:
+ ($P10) = rx603_cur."from"()
inc $P10
- set rx599_pos, $P10
- ge rx599_pos, rx599_eos, rxscan604_done
- rxscan604_scan:
- set_addr $I10, rxscan604_loop
- rx599_cur."!mark_push"(0, rx599_pos, $I10)
- rxscan604_done:
- alt605_0:
-.annotate 'line', 277
- set_addr $I10, alt605_1
- rx599_cur."!mark_push"(0, rx599_pos, $I10)
-.annotate 'line', 278
- # rx subrule "ws" subtype=method negate=
- rx599_cur."!cursor_pos"(rx599_pos)
- $P10 = rx599_cur."ws"()
- unless $P10, rx599_fail
- rx599_pos = $P10."pos"()
- # rx subrule "declarator" subtype=capture negate=
- rx599_cur."!cursor_pos"(rx599_pos)
- $P10 = rx599_cur."declarator"()
- unless $P10, rx599_fail
- rx599_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("declarator")
- rx599_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx599_cur."!cursor_pos"(rx599_pos)
- $P10 = rx599_cur."ws"()
- unless $P10, rx599_fail
- rx599_pos = $P10."pos"()
- goto alt605_end
- alt605_1:
-.annotate 'line', 279
- # rx subrule "ws" subtype=method negate=
- rx599_cur."!cursor_pos"(rx599_pos)
- $P10 = rx599_cur."ws"()
- unless $P10, rx599_fail
- rx599_pos = $P10."pos"()
- # rx subrule "multi_declarator" subtype=capture negate=
- rx599_cur."!cursor_pos"(rx599_pos)
- $P10 = rx599_cur."multi_declarator"()
- unless $P10, rx599_fail
- rx599_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("multi_declarator")
- rx599_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx599_cur."!cursor_pos"(rx599_pos)
- $P10 = rx599_cur."ws"()
- unless $P10, rx599_fail
- rx599_pos = $P10."pos"()
- alt605_end:
-.annotate 'line', 277
+ set rx603_pos, $P10
+ ge rx603_pos, rx603_eos, rxscan608_done
+ rxscan608_scan:
+ set_addr $I10, rxscan608_loop
+ rx603_cur."!mark_push"(0, rx603_pos, $I10)
+ rxscan608_done:
+ alt609_0:
+.annotate 'line', 285
+ set_addr $I10, alt609_1
+ rx603_cur."!mark_push"(0, rx603_pos, $I10)
+.annotate 'line', 286
+ # rx subrule "variable_declarator" subtype=capture negate=
+ rx603_cur."!cursor_pos"(rx603_pos)
+ $P10 = rx603_cur."variable_declarator"()
+ unless $P10, rx603_fail
+ rx603_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("variable_declarator")
+ rx603_pos = $P10."pos"()
+ goto alt609_end
+ alt609_1:
+.annotate 'line', 287
+ # rx subrule "routine_declarator" subtype=capture negate=
+ rx603_cur."!cursor_pos"(rx603_pos)
+ $P10 = rx603_cur."routine_declarator"()
+ unless $P10, rx603_fail
+ rx603_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("routine_declarator")
+ rx603_pos = $P10."pos"()
+ alt609_end:
+.annotate 'line', 285
# rx pass
- rx599_cur."!cursor_pass"(rx599_pos, "scoped")
- rx599_cur."!cursor_debug"("PASS ", "scoped", " at pos=", rx599_pos)
- .return (rx599_cur)
- rx599_fail:
+ rx603_cur."!cursor_pass"(rx603_pos, "declarator")
+ rx603_cur."!cursor_debug"("PASS ", "declarator", " at pos=", rx603_pos)
+ .return (rx603_cur)
+ rx603_restart:
.annotate 'line', 4
- (rx599_rep, rx599_pos, $I10, $P10) = rx599_cur."!mark_fail"(0)
- lt rx599_pos, -1, rx599_done
- eq rx599_pos, -1, rx599_fail
+ rx603_cur."!cursor_debug"("NEXT ", "declarator")
+ rx603_fail:
+ (rx603_rep, rx603_pos, $I10, $P10) = rx603_cur."!mark_fail"(0)
+ lt rx603_pos, -1, rx603_done
+ eq rx603_pos, -1, rx603_fail
jump $I10
- rx599_done:
- rx599_cur."!cursor_fail"()
- rx599_cur."!cursor_debug"("FAIL ", "scoped")
- .return (rx599_cur)
+ rx603_done:
+ rx603_cur."!cursor_fail"()
+ rx603_cur."!cursor_debug"("FAIL ", "declarator")
+ .return (rx603_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scoped" :subid("145_1275811487.95429") :method
+.sub "!PREFIX__declarator" :subid("151_1280467477.44751") :method
.annotate 'line', 4
- $P601 = self."!PREFIX__!subrule"("ws", "")
- $P602 = self."!PREFIX__!subrule"("ws", "")
- new $P603, "ResizablePMCArray"
- push $P603, $P601
- push $P603, $P602
- .return ($P603)
+ $P605 = self."!PREFIX__!subrule"("routine_declarator", "")
+ $P606 = self."!PREFIX__!subrule"("variable_declarator", "")
+ new $P607, "ResizablePMCArray"
+ push $P607, $P605
+ push $P607, $P606
+ .return ($P607)
.end
.namespace ["NQP";"Grammar"]
-.sub "typename" :subid("146_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "variable_declarator" :subid("152_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
.local string rx611_tgt
.local int rx611_pos
@@ -7348,8 +7923,7 @@
.local int rx611_eos
.local int rx611_rep
.local pmc rx611_cur
- (rx611_cur, rx611_pos, rx611_tgt) = self."!cursor_start"()
- rx611_cur."!cursor_debug"("START ", "typename")
+ (rx611_cur, rx611_pos, rx611_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx611_cur
.local pmc match
.lex "$/", match
@@ -7360,6 +7934,8 @@
sub rx611_off, rx611_pos, 1
substr rx611_tgt, rx611_tgt, rx611_off
rx611_start:
+ eq $I10, 1, rx611_restart
+ rx611_cur."!cursor_debug"("START ", "variable_declarator")
$I10 = self.'from'()
ne $I10, -1, rxscan615_done
goto rxscan615_scan
@@ -7372,36 +7948,38 @@
set_addr $I10, rxscan615_loop
rx611_cur."!mark_push"(0, rx611_pos, $I10)
rxscan615_done:
-.annotate 'line', 282
- # rx subrule "name" subtype=capture negate=
+.annotate 'line', 290
+ # rx subrule "variable" subtype=capture negate=
rx611_cur."!cursor_pos"(rx611_pos)
- $P10 = rx611_cur."name"()
+ $P10 = rx611_cur."variable"()
unless $P10, rx611_fail
rx611_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("name")
+ $P10."!cursor_names"("variable")
rx611_pos = $P10."pos"()
# rx pass
- rx611_cur."!cursor_pass"(rx611_pos, "typename")
- rx611_cur."!cursor_debug"("PASS ", "typename", " at pos=", rx611_pos)
+ rx611_cur."!cursor_pass"(rx611_pos, "variable_declarator")
+ rx611_cur."!cursor_debug"("PASS ", "variable_declarator", " at pos=", rx611_pos)
.return (rx611_cur)
- rx611_fail:
+ rx611_restart:
.annotate 'line', 4
+ rx611_cur."!cursor_debug"("NEXT ", "variable_declarator")
+ rx611_fail:
(rx611_rep, rx611_pos, $I10, $P10) = rx611_cur."!mark_fail"(0)
lt rx611_pos, -1, rx611_done
eq rx611_pos, -1, rx611_fail
jump $I10
rx611_done:
rx611_cur."!cursor_fail"()
- rx611_cur."!cursor_debug"("FAIL ", "typename")
+ rx611_cur."!cursor_debug"("FAIL ", "variable_declarator")
.return (rx611_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__typename" :subid("147_1275811487.95429") :method
+.sub "!PREFIX__variable_declarator" :subid("153_1280467477.44751") :method
.annotate 'line', 4
- $P613 = self."!PREFIX__!subrule"("name", "")
+ $P613 = self."!PREFIX__!subrule"("variable", "")
new $P614, "ResizablePMCArray"
push $P614, $P613
.return ($P614)
@@ -7409,179 +7987,209 @@
.namespace ["NQP";"Grammar"]
-.sub "declarator" :subid("148_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "routine_declarator" :subid("154_1280467477.44751") :method
+.annotate 'line', 292
+ $P617 = self."!protoregex"("routine_declarator")
+ .return ($P617)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__routine_declarator" :subid("155_1280467477.44751") :method
+.annotate 'line', 292
+ $P619 = self."!PREFIX__!protoregex"("routine_declarator")
+ .return ($P619)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "routine_declarator:sym<sub>" :subid("156_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx617_tgt
- .local int rx617_pos
- .local int rx617_off
- .local int rx617_eos
- .local int rx617_rep
- .local pmc rx617_cur
- (rx617_cur, rx617_pos, rx617_tgt) = self."!cursor_start"()
- rx617_cur."!cursor_debug"("START ", "declarator")
- .lex unicode:"$\x{a2}", rx617_cur
- .local pmc match
- .lex "$/", match
- length rx617_eos, rx617_tgt
- gt rx617_pos, rx617_eos, rx617_done
- set rx617_off, 0
- lt rx617_pos, 2, rx617_start
- sub rx617_off, rx617_pos, 1
- substr rx617_tgt, rx617_tgt, rx617_off
- rx617_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan622_done
- goto rxscan622_scan
- rxscan622_loop:
- ($P10) = rx617_cur."from"()
- inc $P10
- set rx617_pos, $P10
- ge rx617_pos, rx617_eos, rxscan622_done
- rxscan622_scan:
- set_addr $I10, rxscan622_loop
- rx617_cur."!mark_push"(0, rx617_pos, $I10)
- rxscan622_done:
- alt623_0:
-.annotate 'line', 284
- set_addr $I10, alt623_1
- rx617_cur."!mark_push"(0, rx617_pos, $I10)
-.annotate 'line', 285
- # rx subrule "variable_declarator" subtype=capture negate=
- rx617_cur."!cursor_pos"(rx617_pos)
- $P10 = rx617_cur."variable_declarator"()
- unless $P10, rx617_fail
- rx617_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("variable_declarator")
- rx617_pos = $P10."pos"()
- goto alt623_end
- alt623_1:
-.annotate 'line', 286
- # rx subrule "routine_declarator" subtype=capture negate=
- rx617_cur."!cursor_pos"(rx617_pos)
- $P10 = rx617_cur."routine_declarator"()
- unless $P10, rx617_fail
- rx617_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("routine_declarator")
- rx617_pos = $P10."pos"()
- alt623_end:
-.annotate 'line', 284
+ .local string rx621_tgt
+ .local int rx621_pos
+ .local int rx621_off
+ .local int rx621_eos
+ .local int rx621_rep
+ .local pmc rx621_cur
+ (rx621_cur, rx621_pos, rx621_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx621_cur
+ .local pmc match
+ .lex "$/", match
+ length rx621_eos, rx621_tgt
+ gt rx621_pos, rx621_eos, rx621_done
+ set rx621_off, 0
+ lt rx621_pos, 2, rx621_start
+ sub rx621_off, rx621_pos, 1
+ substr rx621_tgt, rx621_tgt, rx621_off
+ rx621_start:
+ eq $I10, 1, rx621_restart
+ rx621_cur."!cursor_debug"("START ", "routine_declarator:sym<sub>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan625_done
+ goto rxscan625_scan
+ rxscan625_loop:
+ ($P10) = rx621_cur."from"()
+ inc $P10
+ set rx621_pos, $P10
+ ge rx621_pos, rx621_eos, rxscan625_done
+ rxscan625_scan:
+ set_addr $I10, rxscan625_loop
+ rx621_cur."!mark_push"(0, rx621_pos, $I10)
+ rxscan625_done:
+.annotate 'line', 293
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_626_fail
+ rx621_cur."!mark_push"(0, rx621_pos, $I10)
+ # rx literal "sub"
+ add $I11, rx621_pos, 3
+ gt $I11, rx621_eos, rx621_fail
+ sub $I11, rx621_pos, rx621_off
+ substr $S10, rx621_tgt, $I11, 3
+ ne $S10, "sub", rx621_fail
+ add rx621_pos, 3
+ set_addr $I10, rxcap_626_fail
+ ($I12, $I11) = rx621_cur."!mark_peek"($I10)
+ rx621_cur."!cursor_pos"($I11)
+ ($P10) = rx621_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx621_pos, "")
+ rx621_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_626_done
+ rxcap_626_fail:
+ goto rx621_fail
+ rxcap_626_done:
+ # rx subrule "routine_def" subtype=capture negate=
+ rx621_cur."!cursor_pos"(rx621_pos)
+ $P10 = rx621_cur."routine_def"()
+ unless $P10, rx621_fail
+ rx621_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("routine_def")
+ rx621_pos = $P10."pos"()
# rx pass
- rx617_cur."!cursor_pass"(rx617_pos, "declarator")
- rx617_cur."!cursor_debug"("PASS ", "declarator", " at pos=", rx617_pos)
- .return (rx617_cur)
- rx617_fail:
+ rx621_cur."!cursor_pass"(rx621_pos, "routine_declarator:sym<sub>")
+ rx621_cur."!cursor_debug"("PASS ", "routine_declarator:sym<sub>", " at pos=", rx621_pos)
+ .return (rx621_cur)
+ rx621_restart:
.annotate 'line', 4
- (rx617_rep, rx617_pos, $I10, $P10) = rx617_cur."!mark_fail"(0)
- lt rx617_pos, -1, rx617_done
- eq rx617_pos, -1, rx617_fail
+ rx621_cur."!cursor_debug"("NEXT ", "routine_declarator:sym<sub>")
+ rx621_fail:
+ (rx621_rep, rx621_pos, $I10, $P10) = rx621_cur."!mark_fail"(0)
+ lt rx621_pos, -1, rx621_done
+ eq rx621_pos, -1, rx621_fail
jump $I10
- rx617_done:
- rx617_cur."!cursor_fail"()
- rx617_cur."!cursor_debug"("FAIL ", "declarator")
- .return (rx617_cur)
+ rx621_done:
+ rx621_cur."!cursor_fail"()
+ rx621_cur."!cursor_debug"("FAIL ", "routine_declarator:sym<sub>")
+ .return (rx621_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__declarator" :subid("149_1275811487.95429") :method
+.sub "!PREFIX__routine_declarator:sym<sub>" :subid("157_1280467477.44751") :method
.annotate 'line', 4
- $P619 = self."!PREFIX__!subrule"("routine_declarator", "")
- $P620 = self."!PREFIX__!subrule"("variable_declarator", "")
- new $P621, "ResizablePMCArray"
- push $P621, $P619
- push $P621, $P620
- .return ($P621)
+ $P623 = self."!PREFIX__!subrule"("routine_def", "sub")
+ new $P624, "ResizablePMCArray"
+ push $P624, $P623
+ .return ($P624)
.end
.namespace ["NQP";"Grammar"]
-.sub "variable_declarator" :subid("150_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "routine_declarator:sym<method>" :subid("158_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx625_tgt
- .local int rx625_pos
- .local int rx625_off
- .local int rx625_eos
- .local int rx625_rep
- .local pmc rx625_cur
- (rx625_cur, rx625_pos, rx625_tgt) = self."!cursor_start"()
- rx625_cur."!cursor_debug"("START ", "variable_declarator")
- .lex unicode:"$\x{a2}", rx625_cur
+ .local string rx628_tgt
+ .local int rx628_pos
+ .local int rx628_off
+ .local int rx628_eos
+ .local int rx628_rep
+ .local pmc rx628_cur
+ (rx628_cur, rx628_pos, rx628_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx628_cur
.local pmc match
.lex "$/", match
- length rx625_eos, rx625_tgt
- gt rx625_pos, rx625_eos, rx625_done
- set rx625_off, 0
- lt rx625_pos, 2, rx625_start
- sub rx625_off, rx625_pos, 1
- substr rx625_tgt, rx625_tgt, rx625_off
- rx625_start:
+ length rx628_eos, rx628_tgt
+ gt rx628_pos, rx628_eos, rx628_done
+ set rx628_off, 0
+ lt rx628_pos, 2, rx628_start
+ sub rx628_off, rx628_pos, 1
+ substr rx628_tgt, rx628_tgt, rx628_off
+ rx628_start:
+ eq $I10, 1, rx628_restart
+ rx628_cur."!cursor_debug"("START ", "routine_declarator:sym<method>")
$I10 = self.'from'()
- ne $I10, -1, rxscan629_done
- goto rxscan629_scan
- rxscan629_loop:
- ($P10) = rx625_cur."from"()
+ ne $I10, -1, rxscan632_done
+ goto rxscan632_scan
+ rxscan632_loop:
+ ($P10) = rx628_cur."from"()
inc $P10
- set rx625_pos, $P10
- ge rx625_pos, rx625_eos, rxscan629_done
- rxscan629_scan:
- set_addr $I10, rxscan629_loop
- rx625_cur."!mark_push"(0, rx625_pos, $I10)
- rxscan629_done:
-.annotate 'line', 289
- # rx subrule "variable" subtype=capture negate=
- rx625_cur."!cursor_pos"(rx625_pos)
- $P10 = rx625_cur."variable"()
- unless $P10, rx625_fail
- rx625_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("variable")
- rx625_pos = $P10."pos"()
+ set rx628_pos, $P10
+ ge rx628_pos, rx628_eos, rxscan632_done
+ rxscan632_scan:
+ set_addr $I10, rxscan632_loop
+ rx628_cur."!mark_push"(0, rx628_pos, $I10)
+ rxscan632_done:
+.annotate 'line', 294
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_633_fail
+ rx628_cur."!mark_push"(0, rx628_pos, $I10)
+ # rx literal "method"
+ add $I11, rx628_pos, 6
+ gt $I11, rx628_eos, rx628_fail
+ sub $I11, rx628_pos, rx628_off
+ substr $S10, rx628_tgt, $I11, 6
+ ne $S10, "method", rx628_fail
+ add rx628_pos, 6
+ set_addr $I10, rxcap_633_fail
+ ($I12, $I11) = rx628_cur."!mark_peek"($I10)
+ rx628_cur."!cursor_pos"($I11)
+ ($P10) = rx628_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx628_pos, "")
+ rx628_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_633_done
+ rxcap_633_fail:
+ goto rx628_fail
+ rxcap_633_done:
+ # rx subrule "method_def" subtype=capture negate=
+ rx628_cur."!cursor_pos"(rx628_pos)
+ $P10 = rx628_cur."method_def"()
+ unless $P10, rx628_fail
+ rx628_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("method_def")
+ rx628_pos = $P10."pos"()
# rx pass
- rx625_cur."!cursor_pass"(rx625_pos, "variable_declarator")
- rx625_cur."!cursor_debug"("PASS ", "variable_declarator", " at pos=", rx625_pos)
- .return (rx625_cur)
- rx625_fail:
+ rx628_cur."!cursor_pass"(rx628_pos, "routine_declarator:sym<method>")
+ rx628_cur."!cursor_debug"("PASS ", "routine_declarator:sym<method>", " at pos=", rx628_pos)
+ .return (rx628_cur)
+ rx628_restart:
.annotate 'line', 4
- (rx625_rep, rx625_pos, $I10, $P10) = rx625_cur."!mark_fail"(0)
- lt rx625_pos, -1, rx625_done
- eq rx625_pos, -1, rx625_fail
+ rx628_cur."!cursor_debug"("NEXT ", "routine_declarator:sym<method>")
+ rx628_fail:
+ (rx628_rep, rx628_pos, $I10, $P10) = rx628_cur."!mark_fail"(0)
+ lt rx628_pos, -1, rx628_done
+ eq rx628_pos, -1, rx628_fail
jump $I10
- rx625_done:
- rx625_cur."!cursor_fail"()
- rx625_cur."!cursor_debug"("FAIL ", "variable_declarator")
- .return (rx625_cur)
+ rx628_done:
+ rx628_cur."!cursor_fail"()
+ rx628_cur."!cursor_debug"("FAIL ", "routine_declarator:sym<method>")
+ .return (rx628_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable_declarator" :subid("151_1275811487.95429") :method
+.sub "!PREFIX__routine_declarator:sym<method>" :subid("159_1280467477.44751") :method
.annotate 'line', 4
- $P627 = self."!PREFIX__!subrule"("variable", "")
- new $P628, "ResizablePMCArray"
- push $P628, $P627
- .return ($P628)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "routine_declarator" :subid("152_1275811487.95429") :method
-.annotate 'line', 291
- $P631 = self."!protoregex"("routine_declarator")
+ $P630 = self."!PREFIX__!subrule"("method_def", "method")
+ new $P631, "ResizablePMCArray"
+ push $P631, $P630
.return ($P631)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator" :subid("153_1275811487.95429") :method
-.annotate 'line', 291
- $P633 = self."!PREFIX__!protoregex"("routine_declarator")
- .return ($P633)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<sub>" :subid("154_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "routine_def" :subid("160_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
.local string rx635_tgt
.local int rx635_pos
@@ -7589,8 +8197,8 @@
.local int rx635_eos
.local int rx635_rep
.local pmc rx635_cur
- (rx635_cur, rx635_pos, rx635_tgt) = self."!cursor_start"()
- rx635_cur."!cursor_debug"("START ", "routine_declarator:sym<sub>")
+ (rx635_cur, rx635_pos, rx635_tgt, $I10) = self."!cursor_start"()
+ rx635_cur."!cursor_caparray"("sigil", "deflongname")
.lex unicode:"$\x{a2}", rx635_cur
.local pmc match
.lex "$/", match
@@ -7601,6 +8209,8 @@
sub rx635_off, rx635_pos, 1
substr rx635_tgt, rx635_tgt, rx635_off
rx635_start:
+ eq $I10, 1, rx635_restart
+ rx635_cur."!cursor_debug"("START ", "routine_def")
$I10 = self.'from'()
ne $I10, -1, rxscan639_done
goto rxscan639_scan
@@ -7613,57 +8223,188 @@
set_addr $I10, rxscan639_loop
rx635_cur."!mark_push"(0, rx635_pos, $I10)
rxscan639_done:
-.annotate 'line', 292
- # rx subcapture "sym"
- set_addr $I10, rxcap_640_fail
+.annotate 'line', 296
+ # rx subrule "ws" subtype=method negate=
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."ws"()
+ unless $P10, rx635_fail
+ rx635_pos = $P10."pos"()
+.annotate 'line', 297
+ # rx rxquantr641 ** 0..1
+ set_addr $I10, rxquantr641_done
rx635_cur."!mark_push"(0, rx635_pos, $I10)
- # rx literal "sub"
- add $I11, rx635_pos, 3
+ rxquantr641_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."ws"()
+ unless $P10, rx635_fail
+ rx635_pos = $P10."pos"()
+ # rx subcapture "sigil"
+ set_addr $I10, rxcap_644_fail
+ rx635_cur."!mark_push"(0, rx635_pos, $I10)
+ # rx rxquantr643 ** 0..1
+ set_addr $I10, rxquantr643_done
+ rx635_cur."!mark_push"(0, rx635_pos, $I10)
+ rxquantr643_loop:
+ # rx literal "&"
+ add $I11, rx635_pos, 1
gt $I11, rx635_eos, rx635_fail
sub $I11, rx635_pos, rx635_off
- substr $S10, rx635_tgt, $I11, 3
- ne $S10, "sub", rx635_fail
- add rx635_pos, 3
- set_addr $I10, rxcap_640_fail
+ substr $S10, rx635_tgt, $I11, 1
+ ne $S10, "&", rx635_fail
+ add rx635_pos, 1
+ set_addr $I10, rxquantr643_done
+ (rx635_rep) = rx635_cur."!mark_commit"($I10)
+ rxquantr643_done:
+ set_addr $I10, rxcap_644_fail
($I12, $I11) = rx635_cur."!mark_peek"($I10)
rx635_cur."!cursor_pos"($I11)
($P10) = rx635_cur."!cursor_start"()
$P10."!cursor_pass"(rx635_pos, "")
rx635_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_640_done
- rxcap_640_fail:
+ $P10."!cursor_names"("sigil")
+ goto rxcap_644_done
+ rxcap_644_fail:
goto rx635_fail
- rxcap_640_done:
- # rx subrule "routine_def" subtype=capture negate=
+ rxcap_644_done:
+ # rx subrule "deflongname" subtype=capture negate=
rx635_cur."!cursor_pos"(rx635_pos)
- $P10 = rx635_cur."routine_def"()
+ $P10 = rx635_cur."deflongname"()
unless $P10, rx635_fail
rx635_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("routine_def")
+ $P10."!cursor_names"("deflongname")
+ rx635_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."ws"()
+ unless $P10, rx635_fail
+ rx635_pos = $P10."pos"()
+ set_addr $I10, rxquantr641_done
+ (rx635_rep) = rx635_cur."!mark_commit"($I10)
+ rxquantr641_done:
+ # rx subrule "ws" subtype=method negate=
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."ws"()
+ unless $P10, rx635_fail
+ rx635_pos = $P10."pos"()
+.annotate 'line', 298
+ # rx subrule "newpad" subtype=method negate=
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."newpad"()
+ unless $P10, rx635_fail
+ rx635_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."ws"()
+ unless $P10, rx635_fail
+ rx635_pos = $P10."pos"()
+ alt648_0:
+.annotate 'line', 299
+ set_addr $I10, alt648_1
+ rx635_cur."!mark_push"(0, rx635_pos, $I10)
+ # rx subrule "ws" subtype=method negate=
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."ws"()
+ unless $P10, rx635_fail
+ rx635_pos = $P10."pos"()
+ # rx literal "("
+ add $I11, rx635_pos, 1
+ gt $I11, rx635_eos, rx635_fail
+ sub $I11, rx635_pos, rx635_off
+ substr $S10, rx635_tgt, $I11, 1
+ ne $S10, "(", rx635_fail
+ add rx635_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."ws"()
+ unless $P10, rx635_fail
+ rx635_pos = $P10."pos"()
+ # rx subrule "signature" subtype=capture negate=
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."signature"()
+ unless $P10, rx635_fail
+ rx635_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("signature")
+ rx635_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."ws"()
+ unless $P10, rx635_fail
+ rx635_pos = $P10."pos"()
+ # rx literal ")"
+ add $I11, rx635_pos, 1
+ gt $I11, rx635_eos, rx635_fail
+ sub $I11, rx635_pos, rx635_off
+ substr $S10, rx635_tgt, $I11, 1
+ ne $S10, ")", rx635_fail
+ add rx635_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."ws"()
+ unless $P10, rx635_fail
+ rx635_pos = $P10."pos"()
+ goto alt648_end
+ alt648_1:
+.annotate 'line', 300
+ # rx subrule "ws" subtype=method negate=
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."ws"()
+ unless $P10, rx635_fail
+ rx635_pos = $P10."pos"()
+ # rx subrule "panic" subtype=method negate=
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."panic"("Routine declaration requires a signature")
+ unless $P10, rx635_fail
+ rx635_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."ws"()
+ unless $P10, rx635_fail
+ rx635_pos = $P10."pos"()
+ alt648_end:
+ # rx subrule "ws" subtype=method negate=
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."ws"()
+ unless $P10, rx635_fail
+ rx635_pos = $P10."pos"()
+.annotate 'line', 301
+ # rx subrule "blockoid" subtype=capture negate=
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."blockoid"()
+ unless $P10, rx635_fail
+ rx635_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("blockoid")
rx635_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."ws"()
+ unless $P10, rx635_fail
+ rx635_pos = $P10."pos"()
+.annotate 'line', 296
# rx pass
- rx635_cur."!cursor_pass"(rx635_pos, "routine_declarator:sym<sub>")
- rx635_cur."!cursor_debug"("PASS ", "routine_declarator:sym<sub>", " at pos=", rx635_pos)
+ rx635_cur."!cursor_pass"(rx635_pos, "routine_def")
+ rx635_cur."!cursor_debug"("PASS ", "routine_def", " at pos=", rx635_pos)
.return (rx635_cur)
- rx635_fail:
+ rx635_restart:
.annotate 'line', 4
+ rx635_cur."!cursor_debug"("NEXT ", "routine_def")
+ rx635_fail:
(rx635_rep, rx635_pos, $I10, $P10) = rx635_cur."!mark_fail"(0)
lt rx635_pos, -1, rx635_done
eq rx635_pos, -1, rx635_fail
jump $I10
rx635_done:
rx635_cur."!cursor_fail"()
- rx635_cur."!cursor_debug"("FAIL ", "routine_declarator:sym<sub>")
+ rx635_cur."!cursor_debug"("FAIL ", "routine_def")
.return (rx635_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<sub>" :subid("155_1275811487.95429") :method
+.sub "!PREFIX__routine_def" :subid("161_1280467477.44751") :method
.annotate 'line', 4
- $P637 = self."!PREFIX__!subrule"("routine_def", "sub")
+ $P637 = self."!PREFIX__!subrule"("ws", "")
new $P638, "ResizablePMCArray"
push $P638, $P637
.return ($P638)
@@ -7671,2150 +8412,2201 @@
.namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<method>" :subid("156_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx642_tgt
- .local int rx642_pos
- .local int rx642_off
- .local int rx642_eos
- .local int rx642_rep
- .local pmc rx642_cur
- (rx642_cur, rx642_pos, rx642_tgt) = self."!cursor_start"()
- rx642_cur."!cursor_debug"("START ", "routine_declarator:sym<method>")
- .lex unicode:"$\x{a2}", rx642_cur
- .local pmc match
- .lex "$/", match
- length rx642_eos, rx642_tgt
- gt rx642_pos, rx642_eos, rx642_done
- set rx642_off, 0
- lt rx642_pos, 2, rx642_start
- sub rx642_off, rx642_pos, 1
- substr rx642_tgt, rx642_tgt, rx642_off
- rx642_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan646_done
- goto rxscan646_scan
- rxscan646_loop:
- ($P10) = rx642_cur."from"()
- inc $P10
- set rx642_pos, $P10
- ge rx642_pos, rx642_eos, rxscan646_done
- rxscan646_scan:
- set_addr $I10, rxscan646_loop
- rx642_cur."!mark_push"(0, rx642_pos, $I10)
- rxscan646_done:
-.annotate 'line', 293
- # rx subcapture "sym"
- set_addr $I10, rxcap_647_fail
- rx642_cur."!mark_push"(0, rx642_pos, $I10)
- # rx literal "method"
- add $I11, rx642_pos, 6
- gt $I11, rx642_eos, rx642_fail
- sub $I11, rx642_pos, rx642_off
- substr $S10, rx642_tgt, $I11, 6
- ne $S10, "method", rx642_fail
- add rx642_pos, 6
- set_addr $I10, rxcap_647_fail
- ($I12, $I11) = rx642_cur."!mark_peek"($I10)
- rx642_cur."!cursor_pos"($I11)
- ($P10) = rx642_cur."!cursor_start"()
- $P10."!cursor_pass"(rx642_pos, "")
- rx642_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_647_done
- rxcap_647_fail:
- goto rx642_fail
- rxcap_647_done:
- # rx subrule "method_def" subtype=capture negate=
- rx642_cur."!cursor_pos"(rx642_pos)
- $P10 = rx642_cur."method_def"()
- unless $P10, rx642_fail
- rx642_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("method_def")
- rx642_pos = $P10."pos"()
- # rx pass
- rx642_cur."!cursor_pass"(rx642_pos, "routine_declarator:sym<method>")
- rx642_cur."!cursor_debug"("PASS ", "routine_declarator:sym<method>", " at pos=", rx642_pos)
- .return (rx642_cur)
- rx642_fail:
-.annotate 'line', 4
- (rx642_rep, rx642_pos, $I10, $P10) = rx642_cur."!mark_fail"(0)
- lt rx642_pos, -1, rx642_done
- eq rx642_pos, -1, rx642_fail
- jump $I10
- rx642_done:
- rx642_cur."!cursor_fail"()
- rx642_cur."!cursor_debug"("FAIL ", "routine_declarator:sym<method>")
- .return (rx642_cur)
- .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<method>" :subid("157_1275811487.95429") :method
-.annotate 'line', 4
- $P644 = self."!PREFIX__!subrule"("method_def", "method")
- new $P645, "ResizablePMCArray"
- push $P645, $P644
- .return ($P645)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "routine_def" :subid("158_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "method_def" :subid("162_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx649_tgt
- .local int rx649_pos
- .local int rx649_off
- .local int rx649_eos
- .local int rx649_rep
- .local pmc rx649_cur
- (rx649_cur, rx649_pos, rx649_tgt) = self."!cursor_start"()
- rx649_cur."!cursor_debug"("START ", "routine_def")
- rx649_cur."!cursor_caparray"("deflongname", "sigil")
- .lex unicode:"$\x{a2}", rx649_cur
- .local pmc match
- .lex "$/", match
- length rx649_eos, rx649_tgt
- gt rx649_pos, rx649_eos, rx649_done
- set rx649_off, 0
- lt rx649_pos, 2, rx649_start
- sub rx649_off, rx649_pos, 1
- substr rx649_tgt, rx649_tgt, rx649_off
- rx649_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan653_done
- goto rxscan653_scan
- rxscan653_loop:
- ($P10) = rx649_cur."from"()
- inc $P10
- set rx649_pos, $P10
- ge rx649_pos, rx649_eos, rxscan653_done
- rxscan653_scan:
- set_addr $I10, rxscan653_loop
- rx649_cur."!mark_push"(0, rx649_pos, $I10)
- rxscan653_done:
-.annotate 'line', 295
+ .local string rx658_tgt
+ .local int rx658_pos
+ .local int rx658_off
+ .local int rx658_eos
+ .local int rx658_rep
+ .local pmc rx658_cur
+ (rx658_cur, rx658_pos, rx658_tgt, $I10) = self."!cursor_start"()
+ rx658_cur."!cursor_caparray"("deflongname")
+ .lex unicode:"$\x{a2}", rx658_cur
+ .local pmc match
+ .lex "$/", match
+ length rx658_eos, rx658_tgt
+ gt rx658_pos, rx658_eos, rx658_done
+ set rx658_off, 0
+ lt rx658_pos, 2, rx658_start
+ sub rx658_off, rx658_pos, 1
+ substr rx658_tgt, rx658_tgt, rx658_off
+ rx658_start:
+ eq $I10, 1, rx658_restart
+ rx658_cur."!cursor_debug"("START ", "method_def")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan662_done
+ goto rxscan662_scan
+ rxscan662_loop:
+ ($P10) = rx658_cur."from"()
+ inc $P10
+ set rx658_pos, $P10
+ ge rx658_pos, rx658_eos, rxscan662_done
+ rxscan662_scan:
+ set_addr $I10, rxscan662_loop
+ rx658_cur."!mark_push"(0, rx658_pos, $I10)
+ rxscan662_done:
+.annotate 'line', 304
# rx subrule "ws" subtype=method negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."ws"()
- unless $P10, rx649_fail
- rx649_pos = $P10."pos"()
-.annotate 'line', 296
- # rx rxquantr655 ** 0..1
- set_addr $I661, rxquantr655_done
- rx649_cur."!mark_push"(0, rx649_pos, $I661)
- rxquantr655_loop:
- # rx subrule "ws" subtype=method negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."ws"()
- unless $P10, rx649_fail
- rx649_pos = $P10."pos"()
- # rx subcapture "sigil"
- set_addr $I10, rxcap_659_fail
- rx649_cur."!mark_push"(0, rx649_pos, $I10)
- # rx rxquantr657 ** 0..1
- set_addr $I658, rxquantr657_done
- rx649_cur."!mark_push"(0, rx649_pos, $I658)
- rxquantr657_loop:
- # rx literal "&"
- add $I11, rx649_pos, 1
- gt $I11, rx649_eos, rx649_fail
- sub $I11, rx649_pos, rx649_off
- substr $S10, rx649_tgt, $I11, 1
- ne $S10, "&", rx649_fail
- add rx649_pos, 1
- (rx649_rep) = rx649_cur."!mark_commit"($I658)
- rxquantr657_done:
- set_addr $I10, rxcap_659_fail
- ($I12, $I11) = rx649_cur."!mark_peek"($I10)
- rx649_cur."!cursor_pos"($I11)
- ($P10) = rx649_cur."!cursor_start"()
- $P10."!cursor_pass"(rx649_pos, "")
- rx649_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sigil")
- goto rxcap_659_done
- rxcap_659_fail:
- goto rx649_fail
- rxcap_659_done:
+ rx658_cur."!cursor_pos"(rx658_pos)
+ $P10 = rx658_cur."ws"()
+ unless $P10, rx658_fail
+ rx658_pos = $P10."pos"()
+.annotate 'line', 305
+ # rx rxquantr664 ** 0..1
+ set_addr $I10, rxquantr664_done
+ rx658_cur."!mark_push"(0, rx658_pos, $I10)
+ rxquantr664_loop:
# rx subrule "deflongname" subtype=capture negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."deflongname"()
- unless $P10, rx649_fail
- rx649_cur."!mark_push"(0, -1, 0, $P10)
+ rx658_cur."!cursor_pos"(rx658_pos)
+ $P10 = rx658_cur."deflongname"()
+ unless $P10, rx658_fail
+ goto rxsubrule665_pass
+ rxsubrule665_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx658_fail
+ rxsubrule665_pass:
+ set_addr $I10, rxsubrule665_back
+ rx658_cur."!mark_push"(0, rx658_pos, $I10, $P10)
$P10."!cursor_names"("deflongname")
- rx649_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."ws"()
- unless $P10, rx649_fail
- rx649_pos = $P10."pos"()
- (rx649_rep) = rx649_cur."!mark_commit"($I661)
- rxquantr655_done:
- # rx subrule "ws" subtype=method negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."ws"()
- unless $P10, rx649_fail
- rx649_pos = $P10."pos"()
-.annotate 'line', 297
+ rx658_pos = $P10."pos"()
+ set_addr $I10, rxquantr664_done
+ (rx658_rep) = rx658_cur."!mark_commit"($I10)
+ rxquantr664_done:
+ # rx subrule "ws" subtype=method negate=
+ rx658_cur."!cursor_pos"(rx658_pos)
+ $P10 = rx658_cur."ws"()
+ unless $P10, rx658_fail
+ rx658_pos = $P10."pos"()
+.annotate 'line', 306
# rx subrule "newpad" subtype=method negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."newpad"()
- unless $P10, rx649_fail
- rx649_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."ws"()
- unless $P10, rx649_fail
- rx649_pos = $P10."pos"()
- alt664_0:
-.annotate 'line', 298
- set_addr $I10, alt664_1
- rx649_cur."!mark_push"(0, rx649_pos, $I10)
+ rx658_cur."!cursor_pos"(rx658_pos)
+ $P10 = rx658_cur."newpad"()
+ unless $P10, rx658_fail
+ rx658_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx658_cur."!cursor_pos"(rx658_pos)
+ $P10 = rx658_cur."ws"()
+ unless $P10, rx658_fail
+ rx658_pos = $P10."pos"()
+ alt668_0:
+.annotate 'line', 307
+ set_addr $I10, alt668_1
+ rx658_cur."!mark_push"(0, rx658_pos, $I10)
# rx subrule "ws" subtype=method negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."ws"()
- unless $P10, rx649_fail
- rx649_pos = $P10."pos"()
+ rx658_cur."!cursor_pos"(rx658_pos)
+ $P10 = rx658_cur."ws"()
+ unless $P10, rx658_fail
+ rx658_pos = $P10."pos"()
# rx literal "("
- add $I11, rx649_pos, 1
- gt $I11, rx649_eos, rx649_fail
- sub $I11, rx649_pos, rx649_off
- substr $S10, rx649_tgt, $I11, 1
- ne $S10, "(", rx649_fail
- add rx649_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."ws"()
- unless $P10, rx649_fail
- rx649_pos = $P10."pos"()
+ add $I11, rx658_pos, 1
+ gt $I11, rx658_eos, rx658_fail
+ sub $I11, rx658_pos, rx658_off
+ substr $S10, rx658_tgt, $I11, 1
+ ne $S10, "(", rx658_fail
+ add rx658_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx658_cur."!cursor_pos"(rx658_pos)
+ $P10 = rx658_cur."ws"()
+ unless $P10, rx658_fail
+ rx658_pos = $P10."pos"()
# rx subrule "signature" subtype=capture negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."signature"()
- unless $P10, rx649_fail
- rx649_cur."!mark_push"(0, -1, 0, $P10)
+ rx658_cur."!cursor_pos"(rx658_pos)
+ $P10 = rx658_cur."signature"()
+ unless $P10, rx658_fail
+ rx658_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("signature")
- rx649_pos = $P10."pos"()
+ rx658_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."ws"()
- unless $P10, rx649_fail
- rx649_pos = $P10."pos"()
+ rx658_cur."!cursor_pos"(rx658_pos)
+ $P10 = rx658_cur."ws"()
+ unless $P10, rx658_fail
+ rx658_pos = $P10."pos"()
# rx literal ")"
- add $I11, rx649_pos, 1
- gt $I11, rx649_eos, rx649_fail
- sub $I11, rx649_pos, rx649_off
- substr $S10, rx649_tgt, $I11, 1
- ne $S10, ")", rx649_fail
- add rx649_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."ws"()
- unless $P10, rx649_fail
- rx649_pos = $P10."pos"()
- goto alt664_end
- alt664_1:
-.annotate 'line', 299
+ add $I11, rx658_pos, 1
+ gt $I11, rx658_eos, rx658_fail
+ sub $I11, rx658_pos, rx658_off
+ substr $S10, rx658_tgt, $I11, 1
+ ne $S10, ")", rx658_fail
+ add rx658_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx658_cur."!cursor_pos"(rx658_pos)
+ $P10 = rx658_cur."ws"()
+ unless $P10, rx658_fail
+ rx658_pos = $P10."pos"()
+ goto alt668_end
+ alt668_1:
+.annotate 'line', 308
# rx subrule "ws" subtype=method negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."ws"()
- unless $P10, rx649_fail
- rx649_pos = $P10."pos"()
+ rx658_cur."!cursor_pos"(rx658_pos)
+ $P10 = rx658_cur."ws"()
+ unless $P10, rx658_fail
+ rx658_pos = $P10."pos"()
# rx subrule "panic" subtype=method negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."panic"("Routine declaration requires a signature")
- unless $P10, rx649_fail
- rx649_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."ws"()
- unless $P10, rx649_fail
- rx649_pos = $P10."pos"()
- alt664_end:
- # rx subrule "ws" subtype=method negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."ws"()
- unless $P10, rx649_fail
- rx649_pos = $P10."pos"()
-.annotate 'line', 300
+ rx658_cur."!cursor_pos"(rx658_pos)
+ $P10 = rx658_cur."panic"("Routine declaration requires a signature")
+ unless $P10, rx658_fail
+ rx658_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx658_cur."!cursor_pos"(rx658_pos)
+ $P10 = rx658_cur."ws"()
+ unless $P10, rx658_fail
+ rx658_pos = $P10."pos"()
+ alt668_end:
+ # rx subrule "ws" subtype=method negate=
+ rx658_cur."!cursor_pos"(rx658_pos)
+ $P10 = rx658_cur."ws"()
+ unless $P10, rx658_fail
+ rx658_pos = $P10."pos"()
+.annotate 'line', 309
# rx subrule "blockoid" subtype=capture negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."blockoid"()
- unless $P10, rx649_fail
- rx649_cur."!mark_push"(0, -1, 0, $P10)
+ rx658_cur."!cursor_pos"(rx658_pos)
+ $P10 = rx658_cur."blockoid"()
+ unless $P10, rx658_fail
+ rx658_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blockoid")
- rx649_pos = $P10."pos"()
+ rx658_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx649_cur."!cursor_pos"(rx649_pos)
- $P10 = rx649_cur."ws"()
- unless $P10, rx649_fail
- rx649_pos = $P10."pos"()
-.annotate 'line', 295
+ rx658_cur."!cursor_pos"(rx658_pos)
+ $P10 = rx658_cur."ws"()
+ unless $P10, rx658_fail
+ rx658_pos = $P10."pos"()
+.annotate 'line', 304
# rx pass
- rx649_cur."!cursor_pass"(rx649_pos, "routine_def")
- rx649_cur."!cursor_debug"("PASS ", "routine_def", " at pos=", rx649_pos)
- .return (rx649_cur)
- rx649_fail:
+ rx658_cur."!cursor_pass"(rx658_pos, "method_def")
+ rx658_cur."!cursor_debug"("PASS ", "method_def", " at pos=", rx658_pos)
+ .return (rx658_cur)
+ rx658_restart:
.annotate 'line', 4
- (rx649_rep, rx649_pos, $I10, $P10) = rx649_cur."!mark_fail"(0)
- lt rx649_pos, -1, rx649_done
- eq rx649_pos, -1, rx649_fail
+ rx658_cur."!cursor_debug"("NEXT ", "method_def")
+ rx658_fail:
+ (rx658_rep, rx658_pos, $I10, $P10) = rx658_cur."!mark_fail"(0)
+ lt rx658_pos, -1, rx658_done
+ eq rx658_pos, -1, rx658_fail
jump $I10
- rx649_done:
- rx649_cur."!cursor_fail"()
- rx649_cur."!cursor_debug"("FAIL ", "routine_def")
- .return (rx649_cur)
+ rx658_done:
+ rx658_cur."!cursor_fail"()
+ rx658_cur."!cursor_debug"("FAIL ", "method_def")
+ .return (rx658_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_def" :subid("159_1275811487.95429") :method
+.sub "!PREFIX__method_def" :subid("163_1280467477.44751") :method
.annotate 'line', 4
- $P651 = self."!PREFIX__!subrule"("ws", "")
- new $P652, "ResizablePMCArray"
- push $P652, $P651
- .return ($P652)
+ $P660 = self."!PREFIX__!subrule"("ws", "")
+ new $P661, "ResizablePMCArray"
+ push $P661, $P660
+ .return ($P661)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "multi_declarator" :subid("164_1280467477.44751") :method
+.annotate 'line', 312
+ $P678 = self."!protoregex"("multi_declarator")
+ .return ($P678)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__multi_declarator" :subid("165_1280467477.44751") :method
+.annotate 'line', 312
+ $P680 = self."!PREFIX__!protoregex"("multi_declarator")
+ .return ($P680)
.end
.namespace ["NQP";"Grammar"]
-.sub "method_def" :subid("160_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "multi_declarator:sym<multi>" :subid("166_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 314
+ new $P682, "Undef"
+ .lex "$*MULTINESS", $P682
.annotate 'line', 4
- .local string rx674_tgt
- .local int rx674_pos
- .local int rx674_off
- .local int rx674_eos
- .local int rx674_rep
- .local pmc rx674_cur
- (rx674_cur, rx674_pos, rx674_tgt) = self."!cursor_start"()
- rx674_cur."!cursor_debug"("START ", "method_def")
- rx674_cur."!cursor_caparray"("deflongname")
- .lex unicode:"$\x{a2}", rx674_cur
- .local pmc match
- .lex "$/", match
- length rx674_eos, rx674_tgt
- gt rx674_pos, rx674_eos, rx674_done
- set rx674_off, 0
- lt rx674_pos, 2, rx674_start
- sub rx674_off, rx674_pos, 1
- substr rx674_tgt, rx674_tgt, rx674_off
- rx674_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan678_done
- goto rxscan678_scan
- rxscan678_loop:
- ($P10) = rx674_cur."from"()
- inc $P10
- set rx674_pos, $P10
- ge rx674_pos, rx674_eos, rxscan678_done
- rxscan678_scan:
- set_addr $I10, rxscan678_loop
- rx674_cur."!mark_push"(0, rx674_pos, $I10)
- rxscan678_done:
-.annotate 'line', 303
- # rx subrule "ws" subtype=method negate=
- rx674_cur."!cursor_pos"(rx674_pos)
- $P10 = rx674_cur."ws"()
- unless $P10, rx674_fail
- rx674_pos = $P10."pos"()
-.annotate 'line', 304
- # rx rxquantr680 ** 0..1
- set_addr $I681, rxquantr680_done
- rx674_cur."!mark_push"(0, rx674_pos, $I681)
- rxquantr680_loop:
- # rx subrule "deflongname" subtype=capture negate=
- rx674_cur."!cursor_pos"(rx674_pos)
- $P10 = rx674_cur."deflongname"()
- unless $P10, rx674_fail
- rx674_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("deflongname")
- rx674_pos = $P10."pos"()
- (rx674_rep) = rx674_cur."!mark_commit"($I681)
- rxquantr680_done:
- # rx subrule "ws" subtype=method negate=
- rx674_cur."!cursor_pos"(rx674_pos)
- $P10 = rx674_cur."ws"()
- unless $P10, rx674_fail
- rx674_pos = $P10."pos"()
-.annotate 'line', 305
- # rx subrule "newpad" subtype=method negate=
- rx674_cur."!cursor_pos"(rx674_pos)
- $P10 = rx674_cur."newpad"()
- unless $P10, rx674_fail
- rx674_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx674_cur."!cursor_pos"(rx674_pos)
- $P10 = rx674_cur."ws"()
- unless $P10, rx674_fail
- rx674_pos = $P10."pos"()
- alt684_0:
-.annotate 'line', 306
- set_addr $I10, alt684_1
- rx674_cur."!mark_push"(0, rx674_pos, $I10)
- # rx subrule "ws" subtype=method negate=
- rx674_cur."!cursor_pos"(rx674_pos)
- $P10 = rx674_cur."ws"()
- unless $P10, rx674_fail
- rx674_pos = $P10."pos"()
- # rx literal "("
- add $I11, rx674_pos, 1
- gt $I11, rx674_eos, rx674_fail
- sub $I11, rx674_pos, rx674_off
- substr $S10, rx674_tgt, $I11, 1
- ne $S10, "(", rx674_fail
- add rx674_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx674_cur."!cursor_pos"(rx674_pos)
- $P10 = rx674_cur."ws"()
- unless $P10, rx674_fail
- rx674_pos = $P10."pos"()
- # rx subrule "signature" subtype=capture negate=
- rx674_cur."!cursor_pos"(rx674_pos)
- $P10 = rx674_cur."signature"()
- unless $P10, rx674_fail
- rx674_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("signature")
- rx674_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx674_cur."!cursor_pos"(rx674_pos)
- $P10 = rx674_cur."ws"()
- unless $P10, rx674_fail
- rx674_pos = $P10."pos"()
- # rx literal ")"
- add $I11, rx674_pos, 1
- gt $I11, rx674_eos, rx674_fail
- sub $I11, rx674_pos, rx674_off
- substr $S10, rx674_tgt, $I11, 1
- ne $S10, ")", rx674_fail
- add rx674_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx674_cur."!cursor_pos"(rx674_pos)
- $P10 = rx674_cur."ws"()
- unless $P10, rx674_fail
- rx674_pos = $P10."pos"()
- goto alt684_end
- alt684_1:
-.annotate 'line', 307
- # rx subrule "ws" subtype=method negate=
- rx674_cur."!cursor_pos"(rx674_pos)
- $P10 = rx674_cur."ws"()
- unless $P10, rx674_fail
- rx674_pos = $P10."pos"()
- # rx subrule "panic" subtype=method negate=
- rx674_cur."!cursor_pos"(rx674_pos)
- $P10 = rx674_cur."panic"("Routine declaration requires a signature")
- unless $P10, rx674_fail
- rx674_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx674_cur."!cursor_pos"(rx674_pos)
- $P10 = rx674_cur."ws"()
- unless $P10, rx674_fail
- rx674_pos = $P10."pos"()
- alt684_end:
- # rx subrule "ws" subtype=method negate=
- rx674_cur."!cursor_pos"(rx674_pos)
- $P10 = rx674_cur."ws"()
- unless $P10, rx674_fail
- rx674_pos = $P10."pos"()
-.annotate 'line', 308
- # rx subrule "blockoid" subtype=capture negate=
- rx674_cur."!cursor_pos"(rx674_pos)
- $P10 = rx674_cur."blockoid"()
- unless $P10, rx674_fail
- rx674_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("blockoid")
- rx674_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx674_cur."!cursor_pos"(rx674_pos)
- $P10 = rx674_cur."ws"()
- unless $P10, rx674_fail
- rx674_pos = $P10."pos"()
-.annotate 'line', 303
- # rx pass
- rx674_cur."!cursor_pass"(rx674_pos, "method_def")
- rx674_cur."!cursor_debug"("PASS ", "method_def", " at pos=", rx674_pos)
- .return (rx674_cur)
- rx674_fail:
-.annotate 'line', 4
- (rx674_rep, rx674_pos, $I10, $P10) = rx674_cur."!mark_fail"(0)
- lt rx674_pos, -1, rx674_done
- eq rx674_pos, -1, rx674_fail
- jump $I10
- rx674_done:
- rx674_cur."!cursor_fail"()
- rx674_cur."!cursor_debug"("FAIL ", "method_def")
- .return (rx674_cur)
- .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__method_def" :subid("161_1275811487.95429") :method
-.annotate 'line', 4
- $P676 = self."!PREFIX__!subrule"("ws", "")
- new $P677, "ResizablePMCArray"
- push $P677, $P676
- .return ($P677)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "multi_declarator" :subid("162_1275811487.95429") :method
-.annotate 'line', 311
- $P694 = self."!protoregex"("multi_declarator")
- .return ($P694)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator" :subid("163_1275811487.95429") :method
-.annotate 'line', 311
- $P696 = self."!PREFIX__!protoregex"("multi_declarator")
- .return ($P696)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "multi_declarator:sym<multi>" :subid("164_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 313
- new $P698, "Undef"
- .lex "$*MULTINESS", $P698
-.annotate 'line', 4
- .local string rx699_tgt
- .local int rx699_pos
- .local int rx699_off
- .local int rx699_eos
- .local int rx699_rep
- .local pmc rx699_cur
- (rx699_cur, rx699_pos, rx699_tgt) = self."!cursor_start"()
- rx699_cur."!cursor_debug"("START ", "multi_declarator:sym<multi>")
- .lex unicode:"$\x{a2}", rx699_cur
- .local pmc match
- .lex "$/", match
- length rx699_eos, rx699_tgt
- gt rx699_pos, rx699_eos, rx699_done
- set rx699_off, 0
- lt rx699_pos, 2, rx699_start
- sub rx699_off, rx699_pos, 1
- substr rx699_tgt, rx699_tgt, rx699_off
- rx699_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan703_done
- goto rxscan703_scan
- rxscan703_loop:
- ($P10) = rx699_cur."from"()
- inc $P10
- set rx699_pos, $P10
- ge rx699_pos, rx699_eos, rxscan703_done
- rxscan703_scan:
- set_addr $I10, rxscan703_loop
- rx699_cur."!mark_push"(0, rx699_pos, $I10)
- rxscan703_done:
-.annotate 'line', 313
- rx699_cur."!cursor_pos"(rx699_pos)
- new $P704, "String"
- assign $P704, "multi"
- store_lex "$*MULTINESS", $P704
+ .local string rx683_tgt
+ .local int rx683_pos
+ .local int rx683_off
+ .local int rx683_eos
+ .local int rx683_rep
+ .local pmc rx683_cur
+ (rx683_cur, rx683_pos, rx683_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx683_cur
+ .local pmc match
+ .lex "$/", match
+ length rx683_eos, rx683_tgt
+ gt rx683_pos, rx683_eos, rx683_done
+ set rx683_off, 0
+ lt rx683_pos, 2, rx683_start
+ sub rx683_off, rx683_pos, 1
+ substr rx683_tgt, rx683_tgt, rx683_off
+ rx683_start:
+ eq $I10, 1, rx683_restart
+ rx683_cur."!cursor_debug"("START ", "multi_declarator:sym<multi>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan687_done
+ goto rxscan687_scan
+ rxscan687_loop:
+ ($P10) = rx683_cur."from"()
+ inc $P10
+ set rx683_pos, $P10
+ ge rx683_pos, rx683_eos, rxscan687_done
+ rxscan687_scan:
+ set_addr $I10, rxscan687_loop
+ rx683_cur."!mark_push"(0, rx683_pos, $I10)
+ rxscan687_done:
.annotate 'line', 314
+ rx683_cur."!cursor_pos"(rx683_pos)
+ new $P688, "String"
+ assign $P688, "multi"
+ store_lex "$*MULTINESS", $P688
+.annotate 'line', 315
# rx subcapture "sym"
- set_addr $I10, rxcap_705_fail
- rx699_cur."!mark_push"(0, rx699_pos, $I10)
+ set_addr $I10, rxcap_689_fail
+ rx683_cur."!mark_push"(0, rx683_pos, $I10)
# rx literal "multi"
- add $I11, rx699_pos, 5
- gt $I11, rx699_eos, rx699_fail
- sub $I11, rx699_pos, rx699_off
- substr $S10, rx699_tgt, $I11, 5
- ne $S10, "multi", rx699_fail
- add rx699_pos, 5
- set_addr $I10, rxcap_705_fail
- ($I12, $I11) = rx699_cur."!mark_peek"($I10)
- rx699_cur."!cursor_pos"($I11)
- ($P10) = rx699_cur."!cursor_start"()
- $P10."!cursor_pass"(rx699_pos, "")
- rx699_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx683_pos, 5
+ gt $I11, rx683_eos, rx683_fail
+ sub $I11, rx683_pos, rx683_off
+ substr $S10, rx683_tgt, $I11, 5
+ ne $S10, "multi", rx683_fail
+ add rx683_pos, 5
+ set_addr $I10, rxcap_689_fail
+ ($I12, $I11) = rx683_cur."!mark_peek"($I10)
+ rx683_cur."!cursor_pos"($I11)
+ ($P10) = rx683_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx683_pos, "")
+ rx683_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_705_done
- rxcap_705_fail:
- goto rx699_fail
- rxcap_705_done:
-.annotate 'line', 315
- # rx subrule "ws" subtype=method negate=
- rx699_cur."!cursor_pos"(rx699_pos)
- $P10 = rx699_cur."ws"()
- unless $P10, rx699_fail
- rx699_pos = $P10."pos"()
- alt706_0:
- set_addr $I10, alt706_1
- rx699_cur."!mark_push"(0, rx699_pos, $I10)
+ goto rxcap_689_done
+ rxcap_689_fail:
+ goto rx683_fail
+ rxcap_689_done:
+.annotate 'line', 316
+ # rx subrule "ws" subtype=method negate=
+ rx683_cur."!cursor_pos"(rx683_pos)
+ $P10 = rx683_cur."ws"()
+ unless $P10, rx683_fail
+ rx683_pos = $P10."pos"()
+ alt690_0:
+ set_addr $I10, alt690_1
+ rx683_cur."!mark_push"(0, rx683_pos, $I10)
# rx subrule "declarator" subtype=capture negate=
- rx699_cur."!cursor_pos"(rx699_pos)
- $P10 = rx699_cur."declarator"()
- unless $P10, rx699_fail
- rx699_cur."!mark_push"(0, -1, 0, $P10)
+ rx683_cur."!cursor_pos"(rx683_pos)
+ $P10 = rx683_cur."declarator"()
+ unless $P10, rx683_fail
+ rx683_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("declarator")
- rx699_pos = $P10."pos"()
- goto alt706_end
- alt706_1:
- set_addr $I10, alt706_2
- rx699_cur."!mark_push"(0, rx699_pos, $I10)
+ rx683_pos = $P10."pos"()
+ goto alt690_end
+ alt690_1:
+ set_addr $I10, alt690_2
+ rx683_cur."!mark_push"(0, rx683_pos, $I10)
# rx subrule "routine_def" subtype=capture negate=
- rx699_cur."!cursor_pos"(rx699_pos)
- $P10 = rx699_cur."routine_def"()
- unless $P10, rx699_fail
- rx699_cur."!mark_push"(0, -1, 0, $P10)
+ rx683_cur."!cursor_pos"(rx683_pos)
+ $P10 = rx683_cur."routine_def"()
+ unless $P10, rx683_fail
+ rx683_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("routine_def")
- rx699_pos = $P10."pos"()
- goto alt706_end
- alt706_2:
+ rx683_pos = $P10."pos"()
+ goto alt690_end
+ alt690_2:
# rx subrule "panic" subtype=method negate=
- rx699_cur."!cursor_pos"(rx699_pos)
- $P10 = rx699_cur."panic"("Malformed multi")
- unless $P10, rx699_fail
- rx699_pos = $P10."pos"()
- alt706_end:
-.annotate 'line', 312
+ rx683_cur."!cursor_pos"(rx683_pos)
+ $P10 = rx683_cur."panic"("Malformed multi")
+ unless $P10, rx683_fail
+ rx683_pos = $P10."pos"()
+ alt690_end:
+.annotate 'line', 313
# rx pass
- rx699_cur."!cursor_pass"(rx699_pos, "multi_declarator:sym<multi>")
- rx699_cur."!cursor_debug"("PASS ", "multi_declarator:sym<multi>", " at pos=", rx699_pos)
- .return (rx699_cur)
- rx699_fail:
+ rx683_cur."!cursor_pass"(rx683_pos, "multi_declarator:sym<multi>")
+ rx683_cur."!cursor_debug"("PASS ", "multi_declarator:sym<multi>", " at pos=", rx683_pos)
+ .return (rx683_cur)
+ rx683_restart:
.annotate 'line', 4
- (rx699_rep, rx699_pos, $I10, $P10) = rx699_cur."!mark_fail"(0)
- lt rx699_pos, -1, rx699_done
- eq rx699_pos, -1, rx699_fail
+ rx683_cur."!cursor_debug"("NEXT ", "multi_declarator:sym<multi>")
+ rx683_fail:
+ (rx683_rep, rx683_pos, $I10, $P10) = rx683_cur."!mark_fail"(0)
+ lt rx683_pos, -1, rx683_done
+ eq rx683_pos, -1, rx683_fail
jump $I10
- rx699_done:
- rx699_cur."!cursor_fail"()
- rx699_cur."!cursor_debug"("FAIL ", "multi_declarator:sym<multi>")
- .return (rx699_cur)
+ rx683_done:
+ rx683_cur."!cursor_fail"()
+ rx683_cur."!cursor_debug"("FAIL ", "multi_declarator:sym<multi>")
+ .return (rx683_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<multi>" :subid("165_1275811487.95429") :method
+.sub "!PREFIX__multi_declarator:sym<multi>" :subid("167_1280467477.44751") :method
.annotate 'line', 4
- $P701 = self."!PREFIX__!subrule"("ws", "multi")
- new $P702, "ResizablePMCArray"
- push $P702, $P701
- .return ($P702)
+ $P685 = self."!PREFIX__!subrule"("ws", "multi")
+ new $P686, "ResizablePMCArray"
+ push $P686, $P685
+ .return ($P686)
.end
.namespace ["NQP";"Grammar"]
-.sub "multi_declarator:sym<null>" :subid("166_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 318
- new $P708, "Undef"
- .lex "$*MULTINESS", $P708
+.sub "multi_declarator:sym<null>" :subid("168_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 319
+ new $P692, "Undef"
+ .lex "$*MULTINESS", $P692
.annotate 'line', 4
- .local string rx709_tgt
- .local int rx709_pos
- .local int rx709_off
- .local int rx709_eos
- .local int rx709_rep
- .local pmc rx709_cur
- (rx709_cur, rx709_pos, rx709_tgt) = self."!cursor_start"()
- rx709_cur."!cursor_debug"("START ", "multi_declarator:sym<null>")
- .lex unicode:"$\x{a2}", rx709_cur
- .local pmc match
- .lex "$/", match
- length rx709_eos, rx709_tgt
- gt rx709_pos, rx709_eos, rx709_done
- set rx709_off, 0
- lt rx709_pos, 2, rx709_start
- sub rx709_off, rx709_pos, 1
- substr rx709_tgt, rx709_tgt, rx709_off
- rx709_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan713_done
- goto rxscan713_scan
- rxscan713_loop:
- ($P10) = rx709_cur."from"()
- inc $P10
- set rx709_pos, $P10
- ge rx709_pos, rx709_eos, rxscan713_done
- rxscan713_scan:
- set_addr $I10, rxscan713_loop
- rx709_cur."!mark_push"(0, rx709_pos, $I10)
- rxscan713_done:
-.annotate 'line', 318
- rx709_cur."!cursor_pos"(rx709_pos)
- new $P714, "String"
- assign $P714, ""
- store_lex "$*MULTINESS", $P714
+ .local string rx693_tgt
+ .local int rx693_pos
+ .local int rx693_off
+ .local int rx693_eos
+ .local int rx693_rep
+ .local pmc rx693_cur
+ (rx693_cur, rx693_pos, rx693_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx693_cur
+ .local pmc match
+ .lex "$/", match
+ length rx693_eos, rx693_tgt
+ gt rx693_pos, rx693_eos, rx693_done
+ set rx693_off, 0
+ lt rx693_pos, 2, rx693_start
+ sub rx693_off, rx693_pos, 1
+ substr rx693_tgt, rx693_tgt, rx693_off
+ rx693_start:
+ eq $I10, 1, rx693_restart
+ rx693_cur."!cursor_debug"("START ", "multi_declarator:sym<null>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan697_done
+ goto rxscan697_scan
+ rxscan697_loop:
+ ($P10) = rx693_cur."from"()
+ inc $P10
+ set rx693_pos, $P10
+ ge rx693_pos, rx693_eos, rxscan697_done
+ rxscan697_scan:
+ set_addr $I10, rxscan697_loop
+ rx693_cur."!mark_push"(0, rx693_pos, $I10)
+ rxscan697_done:
.annotate 'line', 319
+ rx693_cur."!cursor_pos"(rx693_pos)
+ new $P698, "String"
+ assign $P698, ""
+ store_lex "$*MULTINESS", $P698
+.annotate 'line', 320
# rx subrule "declarator" subtype=capture negate=
- rx709_cur."!cursor_pos"(rx709_pos)
- $P10 = rx709_cur."declarator"()
- unless $P10, rx709_fail
- rx709_cur."!mark_push"(0, -1, 0, $P10)
+ rx693_cur."!cursor_pos"(rx693_pos)
+ $P10 = rx693_cur."declarator"()
+ unless $P10, rx693_fail
+ rx693_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("declarator")
- rx709_pos = $P10."pos"()
-.annotate 'line', 317
+ rx693_pos = $P10."pos"()
+.annotate 'line', 318
# rx pass
- rx709_cur."!cursor_pass"(rx709_pos, "multi_declarator:sym<null>")
- rx709_cur."!cursor_debug"("PASS ", "multi_declarator:sym<null>", " at pos=", rx709_pos)
- .return (rx709_cur)
- rx709_fail:
+ rx693_cur."!cursor_pass"(rx693_pos, "multi_declarator:sym<null>")
+ rx693_cur."!cursor_debug"("PASS ", "multi_declarator:sym<null>", " at pos=", rx693_pos)
+ .return (rx693_cur)
+ rx693_restart:
.annotate 'line', 4
- (rx709_rep, rx709_pos, $I10, $P10) = rx709_cur."!mark_fail"(0)
- lt rx709_pos, -1, rx709_done
- eq rx709_pos, -1, rx709_fail
+ rx693_cur."!cursor_debug"("NEXT ", "multi_declarator:sym<null>")
+ rx693_fail:
+ (rx693_rep, rx693_pos, $I10, $P10) = rx693_cur."!mark_fail"(0)
+ lt rx693_pos, -1, rx693_done
+ eq rx693_pos, -1, rx693_fail
jump $I10
- rx709_done:
- rx709_cur."!cursor_fail"()
- rx709_cur."!cursor_debug"("FAIL ", "multi_declarator:sym<null>")
- .return (rx709_cur)
+ rx693_done:
+ rx693_cur."!cursor_fail"()
+ rx693_cur."!cursor_debug"("FAIL ", "multi_declarator:sym<null>")
+ .return (rx693_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<null>" :subid("167_1275811487.95429") :method
+.sub "!PREFIX__multi_declarator:sym<null>" :subid("169_1280467477.44751") :method
.annotate 'line', 4
- $P711 = self."!PREFIX__!subrule"("declarator", "")
- new $P712, "ResizablePMCArray"
- push $P712, $P711
- .return ($P712)
+ $P695 = self."!PREFIX__!subrule"("declarator", "")
+ new $P696, "ResizablePMCArray"
+ push $P696, $P695
+ .return ($P696)
.end
.namespace ["NQP";"Grammar"]
-.sub "signature" :subid("168_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "signature" :subid("170_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx716_tgt
- .local int rx716_pos
- .local int rx716_off
- .local int rx716_eos
- .local int rx716_rep
- .local pmc rx716_cur
- (rx716_cur, rx716_pos, rx716_tgt) = self."!cursor_start"()
- rx716_cur."!cursor_debug"("START ", "signature")
- rx716_cur."!cursor_caparray"("parameter")
- .lex unicode:"$\x{a2}", rx716_cur
- .local pmc match
- .lex "$/", match
- length rx716_eos, rx716_tgt
- gt rx716_pos, rx716_eos, rx716_done
- set rx716_off, 0
- lt rx716_pos, 2, rx716_start
- sub rx716_off, rx716_pos, 1
- substr rx716_tgt, rx716_tgt, rx716_off
- rx716_start:
+ .local string rx700_tgt
+ .local int rx700_pos
+ .local int rx700_off
+ .local int rx700_eos
+ .local int rx700_rep
+ .local pmc rx700_cur
+ (rx700_cur, rx700_pos, rx700_tgt, $I10) = self."!cursor_start"()
+ rx700_cur."!cursor_caparray"("parameter")
+ .lex unicode:"$\x{a2}", rx700_cur
+ .local pmc match
+ .lex "$/", match
+ length rx700_eos, rx700_tgt
+ gt rx700_pos, rx700_eos, rx700_done
+ set rx700_off, 0
+ lt rx700_pos, 2, rx700_start
+ sub rx700_off, rx700_pos, 1
+ substr rx700_tgt, rx700_tgt, rx700_off
+ rx700_start:
+ eq $I10, 1, rx700_restart
+ rx700_cur."!cursor_debug"("START ", "signature")
$I10 = self.'from'()
- ne $I10, -1, rxscan719_done
- goto rxscan719_scan
- rxscan719_loop:
- ($P10) = rx716_cur."from"()
+ ne $I10, -1, rxscan703_done
+ goto rxscan703_scan
+ rxscan703_loop:
+ ($P10) = rx700_cur."from"()
inc $P10
- set rx716_pos, $P10
- ge rx716_pos, rx716_eos, rxscan719_done
- rxscan719_scan:
- set_addr $I10, rxscan719_loop
- rx716_cur."!mark_push"(0, rx716_pos, $I10)
- rxscan719_done:
-.annotate 'line', 322
- # rx rxquantr720 ** 0..1
- set_addr $I723, rxquantr720_done
- rx716_cur."!mark_push"(0, rx716_pos, $I723)
- rxquantr720_loop:
- # rx rxquantr721 ** 1..*
- set_addr $I722, rxquantr721_done
- rx716_cur."!mark_push"(0, -1, $I722)
- rxquantr721_loop:
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
+ set rx700_pos, $P10
+ ge rx700_pos, rx700_eos, rxscan703_done
+ rxscan703_scan:
+ set_addr $I10, rxscan703_loop
+ rx700_cur."!mark_push"(0, rx700_pos, $I10)
+ rxscan703_done:
+.annotate 'line', 323
+ # rx rxquantr704 ** 0..1
+ set_addr $I10, rxquantr704_done
+ rx700_cur."!mark_push"(0, rx700_pos, $I10)
+ rxquantr704_loop:
+ # rx rxquantr705 ** 1..*
+ set_addr $I10, rxquantr705_done
+ rx700_cur."!mark_push"(0, -1, $I10)
+ rxquantr705_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx700_cur."!cursor_pos"(rx700_pos)
+ $P10 = rx700_cur."ws"()
+ unless $P10, rx700_fail
+ rx700_pos = $P10."pos"()
# rx subrule "parameter" subtype=capture negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."parameter"()
- unless $P10, rx716_fail
- rx716_cur."!mark_push"(0, -1, 0, $P10)
+ rx700_cur."!cursor_pos"(rx700_pos)
+ $P10 = rx700_cur."parameter"()
+ unless $P10, rx700_fail
+ rx700_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("parameter")
- rx716_pos = $P10."pos"()
+ rx700_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- (rx716_rep) = rx716_cur."!mark_commit"($I722)
- rx716_cur."!mark_push"(rx716_rep, rx716_pos, $I722)
+ rx700_cur."!cursor_pos"(rx700_pos)
+ $P10 = rx700_cur."ws"()
+ unless $P10, rx700_fail
+ rx700_pos = $P10."pos"()
+ set_addr $I10, rxquantr705_done
+ (rx700_rep) = rx700_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr705_done
+ rx700_cur."!mark_push"(rx700_rep, rx700_pos, $I10)
# rx literal ","
- add $I11, rx716_pos, 1
- gt $I11, rx716_eos, rx716_fail
- sub $I11, rx716_pos, rx716_off
- substr $S10, rx716_tgt, $I11, 1
- ne $S10, ",", rx716_fail
- add rx716_pos, 1
- goto rxquantr721_loop
- rxquantr721_done:
- (rx716_rep) = rx716_cur."!mark_commit"($I723)
- rxquantr720_done:
- # rx pass
- rx716_cur."!cursor_pass"(rx716_pos, "signature")
- rx716_cur."!cursor_debug"("PASS ", "signature", " at pos=", rx716_pos)
- .return (rx716_cur)
- rx716_fail:
-.annotate 'line', 4
- (rx716_rep, rx716_pos, $I10, $P10) = rx716_cur."!mark_fail"(0)
- lt rx716_pos, -1, rx716_done
- eq rx716_pos, -1, rx716_fail
- jump $I10
- rx716_done:
- rx716_cur."!cursor_fail"()
- rx716_cur."!cursor_debug"("FAIL ", "signature")
- .return (rx716_cur)
+ add $I11, rx700_pos, 1
+ gt $I11, rx700_eos, rx700_fail
+ sub $I11, rx700_pos, rx700_off
+ substr $S10, rx700_tgt, $I11, 1
+ ne $S10, ",", rx700_fail
+ add rx700_pos, 1
+ goto rxquantr705_loop
+ rxquantr705_done:
+ set_addr $I10, rxquantr704_done
+ (rx700_rep) = rx700_cur."!mark_commit"($I10)
+ rxquantr704_done:
+ # rx pass
+ rx700_cur."!cursor_pass"(rx700_pos, "signature")
+ rx700_cur."!cursor_debug"("PASS ", "signature", " at pos=", rx700_pos)
+ .return (rx700_cur)
+ rx700_restart:
+.annotate 'line', 4
+ rx700_cur."!cursor_debug"("NEXT ", "signature")
+ rx700_fail:
+ (rx700_rep, rx700_pos, $I10, $P10) = rx700_cur."!mark_fail"(0)
+ lt rx700_pos, -1, rx700_done
+ eq rx700_pos, -1, rx700_fail
+ jump $I10
+ rx700_done:
+ rx700_cur."!cursor_fail"()
+ rx700_cur."!cursor_debug"("FAIL ", "signature")
+ .return (rx700_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__signature" :subid("169_1275811487.95429") :method
+.sub "!PREFIX__signature" :subid("171_1280467477.44751") :method
.annotate 'line', 4
- new $P718, "ResizablePMCArray"
- push $P718, ""
- .return ($P718)
+ new $P702, "ResizablePMCArray"
+ push $P702, ""
+ .return ($P702)
.end
.namespace ["NQP";"Grammar"]
-.sub "parameter" :subid("170_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "parameter" :subid("172_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx725_tgt
- .local int rx725_pos
- .local int rx725_off
- .local int rx725_eos
- .local int rx725_rep
- .local pmc rx725_cur
- (rx725_cur, rx725_pos, rx725_tgt) = self."!cursor_start"()
- rx725_cur."!cursor_debug"("START ", "parameter")
- rx725_cur."!cursor_caparray"("default_value", "typename")
- .lex unicode:"$\x{a2}", rx725_cur
- .local pmc match
- .lex "$/", match
- length rx725_eos, rx725_tgt
- gt rx725_pos, rx725_eos, rx725_done
- set rx725_off, 0
- lt rx725_pos, 2, rx725_start
- sub rx725_off, rx725_pos, 1
- substr rx725_tgt, rx725_tgt, rx725_off
- rx725_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan728_done
- goto rxscan728_scan
- rxscan728_loop:
- ($P10) = rx725_cur."from"()
- inc $P10
- set rx725_pos, $P10
- ge rx725_pos, rx725_eos, rxscan728_done
- rxscan728_scan:
- set_addr $I10, rxscan728_loop
- rx725_cur."!mark_push"(0, rx725_pos, $I10)
- rxscan728_done:
-.annotate 'line', 325
- # rx rxquantr729 ** 0..*
- set_addr $I730, rxquantr729_done
- rx725_cur."!mark_push"(0, rx725_pos, $I730)
- rxquantr729_loop:
+ .local string rx707_tgt
+ .local int rx707_pos
+ .local int rx707_off
+ .local int rx707_eos
+ .local int rx707_rep
+ .local pmc rx707_cur
+ (rx707_cur, rx707_pos, rx707_tgt, $I10) = self."!cursor_start"()
+ rx707_cur."!cursor_caparray"("typename", "default_value")
+ .lex unicode:"$\x{a2}", rx707_cur
+ .local pmc match
+ .lex "$/", match
+ length rx707_eos, rx707_tgt
+ gt rx707_pos, rx707_eos, rx707_done
+ set rx707_off, 0
+ lt rx707_pos, 2, rx707_start
+ sub rx707_off, rx707_pos, 1
+ substr rx707_tgt, rx707_tgt, rx707_off
+ rx707_start:
+ eq $I10, 1, rx707_restart
+ rx707_cur."!cursor_debug"("START ", "parameter")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan710_done
+ goto rxscan710_scan
+ rxscan710_loop:
+ ($P10) = rx707_cur."from"()
+ inc $P10
+ set rx707_pos, $P10
+ ge rx707_pos, rx707_eos, rxscan710_done
+ rxscan710_scan:
+ set_addr $I10, rxscan710_loop
+ rx707_cur."!mark_push"(0, rx707_pos, $I10)
+ rxscan710_done:
+.annotate 'line', 326
+ # rx rxquantr711 ** 0..*
+ set_addr $I10, rxquantr711_done
+ rx707_cur."!mark_push"(0, rx707_pos, $I10)
+ rxquantr711_loop:
# rx subrule "typename" subtype=capture negate=
- rx725_cur."!cursor_pos"(rx725_pos)
- $P10 = rx725_cur."typename"()
- unless $P10, rx725_fail
- rx725_cur."!mark_push"(0, -1, 0, $P10)
+ rx707_cur."!cursor_pos"(rx707_pos)
+ $P10 = rx707_cur."typename"()
+ unless $P10, rx707_fail
+ rx707_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("typename")
- rx725_pos = $P10."pos"()
+ rx707_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx725_cur."!cursor_pos"(rx725_pos)
- $P10 = rx725_cur."ws"()
- unless $P10, rx725_fail
- rx725_pos = $P10."pos"()
- (rx725_rep) = rx725_cur."!mark_commit"($I730)
- rx725_cur."!mark_push"(rx725_rep, rx725_pos, $I730)
- goto rxquantr729_loop
- rxquantr729_done:
- alt731_0:
-.annotate 'line', 326
- set_addr $I10, alt731_1
- rx725_cur."!mark_push"(0, rx725_pos, $I10)
+ rx707_cur."!cursor_pos"(rx707_pos)
+ $P10 = rx707_cur."ws"()
+ unless $P10, rx707_fail
+ rx707_pos = $P10."pos"()
+ set_addr $I10, rxquantr711_done
+ (rx707_rep) = rx707_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr711_done
+ rx707_cur."!mark_push"(rx707_rep, rx707_pos, $I10)
+ goto rxquantr711_loop
+ rxquantr711_done:
+ alt712_0:
.annotate 'line', 327
+ set_addr $I10, alt712_1
+ rx707_cur."!mark_push"(0, rx707_pos, $I10)
+.annotate 'line', 328
# rx subcapture "quant"
- set_addr $I10, rxcap_732_fail
- rx725_cur."!mark_push"(0, rx725_pos, $I10)
+ set_addr $I10, rxcap_713_fail
+ rx707_cur."!mark_push"(0, rx707_pos, $I10)
# rx literal "*"
- add $I11, rx725_pos, 1
- gt $I11, rx725_eos, rx725_fail
- sub $I11, rx725_pos, rx725_off
- substr $S10, rx725_tgt, $I11, 1
- ne $S10, "*", rx725_fail
- add rx725_pos, 1
- set_addr $I10, rxcap_732_fail
- ($I12, $I11) = rx725_cur."!mark_peek"($I10)
- rx725_cur."!cursor_pos"($I11)
- ($P10) = rx725_cur."!cursor_start"()
- $P10."!cursor_pass"(rx725_pos, "")
- rx725_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx707_pos, 1
+ gt $I11, rx707_eos, rx707_fail
+ sub $I11, rx707_pos, rx707_off
+ substr $S10, rx707_tgt, $I11, 1
+ ne $S10, "*", rx707_fail
+ add rx707_pos, 1
+ set_addr $I10, rxcap_713_fail
+ ($I12, $I11) = rx707_cur."!mark_peek"($I10)
+ rx707_cur."!cursor_pos"($I11)
+ ($P10) = rx707_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx707_pos, "")
+ rx707_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quant")
- goto rxcap_732_done
- rxcap_732_fail:
- goto rx725_fail
- rxcap_732_done:
+ goto rxcap_713_done
+ rxcap_713_fail:
+ goto rx707_fail
+ rxcap_713_done:
# rx subrule "param_var" subtype=capture negate=
- rx725_cur."!cursor_pos"(rx725_pos)
- $P10 = rx725_cur."param_var"()
- unless $P10, rx725_fail
- rx725_cur."!mark_push"(0, -1, 0, $P10)
+ rx707_cur."!cursor_pos"(rx707_pos)
+ $P10 = rx707_cur."param_var"()
+ unless $P10, rx707_fail
+ rx707_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("param_var")
- rx725_pos = $P10."pos"()
- goto alt731_end
- alt731_1:
- alt733_0:
-.annotate 'line', 328
- set_addr $I10, alt733_1
- rx725_cur."!mark_push"(0, rx725_pos, $I10)
+ rx707_pos = $P10."pos"()
+ goto alt712_end
+ alt712_1:
+ alt714_0:
+.annotate 'line', 329
+ set_addr $I10, alt714_1
+ rx707_cur."!mark_push"(0, rx707_pos, $I10)
# rx subrule "param_var" subtype=capture negate=
- rx725_cur."!cursor_pos"(rx725_pos)
- $P10 = rx725_cur."param_var"()
- unless $P10, rx725_fail
- rx725_cur."!mark_push"(0, -1, 0, $P10)
+ rx707_cur."!cursor_pos"(rx707_pos)
+ $P10 = rx707_cur."param_var"()
+ unless $P10, rx707_fail
+ rx707_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("param_var")
- rx725_pos = $P10."pos"()
- goto alt733_end
- alt733_1:
+ rx707_pos = $P10."pos"()
+ goto alt714_end
+ alt714_1:
# rx subrule "named_param" subtype=capture negate=
- rx725_cur."!cursor_pos"(rx725_pos)
- $P10 = rx725_cur."named_param"()
- unless $P10, rx725_fail
- rx725_cur."!mark_push"(0, -1, 0, $P10)
+ rx707_cur."!cursor_pos"(rx707_pos)
+ $P10 = rx707_cur."named_param"()
+ unless $P10, rx707_fail
+ rx707_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("named_param")
- rx725_pos = $P10."pos"()
- alt733_end:
+ rx707_pos = $P10."pos"()
+ alt714_end:
# rx subcapture "quant"
- set_addr $I10, rxcap_735_fail
- rx725_cur."!mark_push"(0, rx725_pos, $I10)
- alt734_0:
- set_addr $I10, alt734_1
- rx725_cur."!mark_push"(0, rx725_pos, $I10)
+ set_addr $I10, rxcap_716_fail
+ rx707_cur."!mark_push"(0, rx707_pos, $I10)
+ alt715_0:
+ set_addr $I10, alt715_1
+ rx707_cur."!mark_push"(0, rx707_pos, $I10)
# rx literal "?"
- add $I11, rx725_pos, 1
- gt $I11, rx725_eos, rx725_fail
- sub $I11, rx725_pos, rx725_off
- substr $S10, rx725_tgt, $I11, 1
- ne $S10, "?", rx725_fail
- add rx725_pos, 1
- goto alt734_end
- alt734_1:
- set_addr $I10, alt734_2
- rx725_cur."!mark_push"(0, rx725_pos, $I10)
+ add $I11, rx707_pos, 1
+ gt $I11, rx707_eos, rx707_fail
+ sub $I11, rx707_pos, rx707_off
+ substr $S10, rx707_tgt, $I11, 1
+ ne $S10, "?", rx707_fail
+ add rx707_pos, 1
+ goto alt715_end
+ alt715_1:
+ set_addr $I10, alt715_2
+ rx707_cur."!mark_push"(0, rx707_pos, $I10)
# rx literal "!"
- add $I11, rx725_pos, 1
- gt $I11, rx725_eos, rx725_fail
- sub $I11, rx725_pos, rx725_off
- substr $S10, rx725_tgt, $I11, 1
- ne $S10, "!", rx725_fail
- add rx725_pos, 1
- goto alt734_end
- alt734_2:
- alt734_end:
- set_addr $I10, rxcap_735_fail
- ($I12, $I11) = rx725_cur."!mark_peek"($I10)
- rx725_cur."!cursor_pos"($I11)
- ($P10) = rx725_cur."!cursor_start"()
- $P10."!cursor_pass"(rx725_pos, "")
- rx725_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx707_pos, 1
+ gt $I11, rx707_eos, rx707_fail
+ sub $I11, rx707_pos, rx707_off
+ substr $S10, rx707_tgt, $I11, 1
+ ne $S10, "!", rx707_fail
+ add rx707_pos, 1
+ goto alt715_end
+ alt715_2:
+ alt715_end:
+ set_addr $I10, rxcap_716_fail
+ ($I12, $I11) = rx707_cur."!mark_peek"($I10)
+ rx707_cur."!cursor_pos"($I11)
+ ($P10) = rx707_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx707_pos, "")
+ rx707_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quant")
- goto rxcap_735_done
- rxcap_735_fail:
- goto rx725_fail
- rxcap_735_done:
- alt731_end:
-.annotate 'line', 330
- # rx rxquantr736 ** 0..1
- set_addr $I737, rxquantr736_done
- rx725_cur."!mark_push"(0, rx725_pos, $I737)
- rxquantr736_loop:
+ goto rxcap_716_done
+ rxcap_716_fail:
+ goto rx707_fail
+ rxcap_716_done:
+ alt712_end:
+.annotate 'line', 331
+ # rx rxquantr717 ** 0..1
+ set_addr $I10, rxquantr717_done
+ rx707_cur."!mark_push"(0, rx707_pos, $I10)
+ rxquantr717_loop:
# rx subrule "default_value" subtype=capture negate=
- rx725_cur."!cursor_pos"(rx725_pos)
- $P10 = rx725_cur."default_value"()
- unless $P10, rx725_fail
- rx725_cur."!mark_push"(0, -1, 0, $P10)
+ rx707_cur."!cursor_pos"(rx707_pos)
+ $P10 = rx707_cur."default_value"()
+ unless $P10, rx707_fail
+ goto rxsubrule718_pass
+ rxsubrule718_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx707_fail
+ rxsubrule718_pass:
+ set_addr $I10, rxsubrule718_back
+ rx707_cur."!mark_push"(0, rx707_pos, $I10, $P10)
$P10."!cursor_names"("default_value")
- rx725_pos = $P10."pos"()
- (rx725_rep) = rx725_cur."!mark_commit"($I737)
- rxquantr736_done:
-.annotate 'line', 324
+ rx707_pos = $P10."pos"()
+ set_addr $I10, rxquantr717_done
+ (rx707_rep) = rx707_cur."!mark_commit"($I10)
+ rxquantr717_done:
+.annotate 'line', 325
# rx pass
- rx725_cur."!cursor_pass"(rx725_pos, "parameter")
- rx725_cur."!cursor_debug"("PASS ", "parameter", " at pos=", rx725_pos)
- .return (rx725_cur)
- rx725_fail:
+ rx707_cur."!cursor_pass"(rx707_pos, "parameter")
+ rx707_cur."!cursor_debug"("PASS ", "parameter", " at pos=", rx707_pos)
+ .return (rx707_cur)
+ rx707_restart:
.annotate 'line', 4
- (rx725_rep, rx725_pos, $I10, $P10) = rx725_cur."!mark_fail"(0)
- lt rx725_pos, -1, rx725_done
- eq rx725_pos, -1, rx725_fail
+ rx707_cur."!cursor_debug"("NEXT ", "parameter")
+ rx707_fail:
+ (rx707_rep, rx707_pos, $I10, $P10) = rx707_cur."!mark_fail"(0)
+ lt rx707_pos, -1, rx707_done
+ eq rx707_pos, -1, rx707_fail
jump $I10
- rx725_done:
- rx725_cur."!cursor_fail"()
- rx725_cur."!cursor_debug"("FAIL ", "parameter")
- .return (rx725_cur)
+ rx707_done:
+ rx707_cur."!cursor_fail"()
+ rx707_cur."!cursor_debug"("FAIL ", "parameter")
+ .return (rx707_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__parameter" :subid("171_1275811487.95429") :method
+.sub "!PREFIX__parameter" :subid("173_1280467477.44751") :method
.annotate 'line', 4
- new $P727, "ResizablePMCArray"
- push $P727, ""
- .return ($P727)
+ new $P709, "ResizablePMCArray"
+ push $P709, ""
+ .return ($P709)
.end
.namespace ["NQP";"Grammar"]
-.sub "param_var" :subid("172_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "param_var" :subid("174_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx739_tgt
- .local int rx739_pos
- .local int rx739_off
- .local int rx739_eos
- .local int rx739_rep
- .local pmc rx739_cur
- (rx739_cur, rx739_pos, rx739_tgt) = self."!cursor_start"()
- rx739_cur."!cursor_debug"("START ", "param_var")
- rx739_cur."!cursor_caparray"("twigil")
- .lex unicode:"$\x{a2}", rx739_cur
+ .local string rx720_tgt
+ .local int rx720_pos
+ .local int rx720_off
+ .local int rx720_eos
+ .local int rx720_rep
+ .local pmc rx720_cur
+ (rx720_cur, rx720_pos, rx720_tgt, $I10) = self."!cursor_start"()
+ rx720_cur."!cursor_caparray"("twigil")
+ .lex unicode:"$\x{a2}", rx720_cur
.local pmc match
.lex "$/", match
- length rx739_eos, rx739_tgt
- gt rx739_pos, rx739_eos, rx739_done
- set rx739_off, 0
- lt rx739_pos, 2, rx739_start
- sub rx739_off, rx739_pos, 1
- substr rx739_tgt, rx739_tgt, rx739_off
- rx739_start:
+ length rx720_eos, rx720_tgt
+ gt rx720_pos, rx720_eos, rx720_done
+ set rx720_off, 0
+ lt rx720_pos, 2, rx720_start
+ sub rx720_off, rx720_pos, 1
+ substr rx720_tgt, rx720_tgt, rx720_off
+ rx720_start:
+ eq $I10, 1, rx720_restart
+ rx720_cur."!cursor_debug"("START ", "param_var")
$I10 = self.'from'()
- ne $I10, -1, rxscan743_done
- goto rxscan743_scan
- rxscan743_loop:
- ($P10) = rx739_cur."from"()
+ ne $I10, -1, rxscan724_done
+ goto rxscan724_scan
+ rxscan724_loop:
+ ($P10) = rx720_cur."from"()
inc $P10
- set rx739_pos, $P10
- ge rx739_pos, rx739_eos, rxscan743_done
- rxscan743_scan:
- set_addr $I10, rxscan743_loop
- rx739_cur."!mark_push"(0, rx739_pos, $I10)
- rxscan743_done:
-.annotate 'line', 334
+ set rx720_pos, $P10
+ ge rx720_pos, rx720_eos, rxscan724_done
+ rxscan724_scan:
+ set_addr $I10, rxscan724_loop
+ rx720_cur."!mark_push"(0, rx720_pos, $I10)
+ rxscan724_done:
+.annotate 'line', 335
# rx subrule "sigil" subtype=capture negate=
- rx739_cur."!cursor_pos"(rx739_pos)
- $P10 = rx739_cur."sigil"()
- unless $P10, rx739_fail
- rx739_cur."!mark_push"(0, -1, 0, $P10)
+ rx720_cur."!cursor_pos"(rx720_pos)
+ $P10 = rx720_cur."sigil"()
+ unless $P10, rx720_fail
+ rx720_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sigil")
- rx739_pos = $P10."pos"()
- # rx rxquantr744 ** 0..1
- set_addr $I745, rxquantr744_done
- rx739_cur."!mark_push"(0, rx739_pos, $I745)
- rxquantr744_loop:
+ rx720_pos = $P10."pos"()
+ # rx rxquantr725 ** 0..1
+ set_addr $I10, rxquantr725_done
+ rx720_cur."!mark_push"(0, rx720_pos, $I10)
+ rxquantr725_loop:
# rx subrule "twigil" subtype=capture negate=
- rx739_cur."!cursor_pos"(rx739_pos)
- $P10 = rx739_cur."twigil"()
- unless $P10, rx739_fail
- rx739_cur."!mark_push"(0, -1, 0, $P10)
+ rx720_cur."!cursor_pos"(rx720_pos)
+ $P10 = rx720_cur."twigil"()
+ unless $P10, rx720_fail
+ goto rxsubrule726_pass
+ rxsubrule726_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx720_fail
+ rxsubrule726_pass:
+ set_addr $I10, rxsubrule726_back
+ rx720_cur."!mark_push"(0, rx720_pos, $I10, $P10)
$P10."!cursor_names"("twigil")
- rx739_pos = $P10."pos"()
- (rx739_rep) = rx739_cur."!mark_commit"($I745)
- rxquantr744_done:
- alt746_0:
-.annotate 'line', 335
- set_addr $I10, alt746_1
- rx739_cur."!mark_push"(0, rx739_pos, $I10)
+ rx720_pos = $P10."pos"()
+ set_addr $I10, rxquantr725_done
+ (rx720_rep) = rx720_cur."!mark_commit"($I10)
+ rxquantr725_done:
+ alt727_0:
+.annotate 'line', 336
+ set_addr $I10, alt727_1
+ rx720_cur."!mark_push"(0, rx720_pos, $I10)
# rx subrule "ident" subtype=capture negate=
- rx739_cur."!cursor_pos"(rx739_pos)
- $P10 = rx739_cur."ident"()
- unless $P10, rx739_fail
- rx739_cur."!mark_push"(0, -1, 0, $P10)
+ rx720_cur."!cursor_pos"(rx720_pos)
+ $P10 = rx720_cur."ident"()
+ unless $P10, rx720_fail
+ rx720_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("name")
- rx739_pos = $P10."pos"()
- goto alt746_end
- alt746_1:
+ rx720_pos = $P10."pos"()
+ goto alt727_end
+ alt727_1:
# rx subcapture "name"
- set_addr $I10, rxcap_747_fail
- rx739_cur."!mark_push"(0, rx739_pos, $I10)
+ set_addr $I10, rxcap_728_fail
+ rx720_cur."!mark_push"(0, rx720_pos, $I10)
# rx enumcharlist negate=0
- ge rx739_pos, rx739_eos, rx739_fail
- sub $I10, rx739_pos, rx739_off
- substr $S10, rx739_tgt, $I10, 1
+ ge rx720_pos, rx720_eos, rx720_fail
+ sub $I10, rx720_pos, rx720_off
+ substr $S10, rx720_tgt, $I10, 1
index $I11, "/!", $S10
- lt $I11, 0, rx739_fail
- inc rx739_pos
- set_addr $I10, rxcap_747_fail
- ($I12, $I11) = rx739_cur."!mark_peek"($I10)
- rx739_cur."!cursor_pos"($I11)
- ($P10) = rx739_cur."!cursor_start"()
- $P10."!cursor_pass"(rx739_pos, "")
- rx739_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx720_fail
+ inc rx720_pos
+ set_addr $I10, rxcap_728_fail
+ ($I12, $I11) = rx720_cur."!mark_peek"($I10)
+ rx720_cur."!cursor_pos"($I11)
+ ($P10) = rx720_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx720_pos, "")
+ rx720_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("name")
- goto rxcap_747_done
- rxcap_747_fail:
- goto rx739_fail
- rxcap_747_done:
- alt746_end:
-.annotate 'line', 333
+ goto rxcap_728_done
+ rxcap_728_fail:
+ goto rx720_fail
+ rxcap_728_done:
+ alt727_end:
+.annotate 'line', 334
# rx pass
- rx739_cur."!cursor_pass"(rx739_pos, "param_var")
- rx739_cur."!cursor_debug"("PASS ", "param_var", " at pos=", rx739_pos)
- .return (rx739_cur)
- rx739_fail:
+ rx720_cur."!cursor_pass"(rx720_pos, "param_var")
+ rx720_cur."!cursor_debug"("PASS ", "param_var", " at pos=", rx720_pos)
+ .return (rx720_cur)
+ rx720_restart:
.annotate 'line', 4
- (rx739_rep, rx739_pos, $I10, $P10) = rx739_cur."!mark_fail"(0)
- lt rx739_pos, -1, rx739_done
- eq rx739_pos, -1, rx739_fail
+ rx720_cur."!cursor_debug"("NEXT ", "param_var")
+ rx720_fail:
+ (rx720_rep, rx720_pos, $I10, $P10) = rx720_cur."!mark_fail"(0)
+ lt rx720_pos, -1, rx720_done
+ eq rx720_pos, -1, rx720_fail
jump $I10
- rx739_done:
- rx739_cur."!cursor_fail"()
- rx739_cur."!cursor_debug"("FAIL ", "param_var")
- .return (rx739_cur)
+ rx720_done:
+ rx720_cur."!cursor_fail"()
+ rx720_cur."!cursor_debug"("FAIL ", "param_var")
+ .return (rx720_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__param_var" :subid("173_1275811487.95429") :method
+.sub "!PREFIX__param_var" :subid("175_1280467477.44751") :method
.annotate 'line', 4
- $P741 = self."!PREFIX__!subrule"("sigil", "")
- new $P742, "ResizablePMCArray"
- push $P742, $P741
- .return ($P742)
+ $P722 = self."!PREFIX__!subrule"("sigil", "")
+ new $P723, "ResizablePMCArray"
+ push $P723, $P722
+ .return ($P723)
.end
.namespace ["NQP";"Grammar"]
-.sub "named_param" :subid("174_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "named_param" :subid("176_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx749_tgt
- .local int rx749_pos
- .local int rx749_off
- .local int rx749_eos
- .local int rx749_rep
- .local pmc rx749_cur
- (rx749_cur, rx749_pos, rx749_tgt) = self."!cursor_start"()
- rx749_cur."!cursor_debug"("START ", "named_param")
- .lex unicode:"$\x{a2}", rx749_cur
+ .local string rx730_tgt
+ .local int rx730_pos
+ .local int rx730_off
+ .local int rx730_eos
+ .local int rx730_rep
+ .local pmc rx730_cur
+ (rx730_cur, rx730_pos, rx730_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx730_cur
.local pmc match
.lex "$/", match
- length rx749_eos, rx749_tgt
- gt rx749_pos, rx749_eos, rx749_done
- set rx749_off, 0
- lt rx749_pos, 2, rx749_start
- sub rx749_off, rx749_pos, 1
- substr rx749_tgt, rx749_tgt, rx749_off
- rx749_start:
+ length rx730_eos, rx730_tgt
+ gt rx730_pos, rx730_eos, rx730_done
+ set rx730_off, 0
+ lt rx730_pos, 2, rx730_start
+ sub rx730_off, rx730_pos, 1
+ substr rx730_tgt, rx730_tgt, rx730_off
+ rx730_start:
+ eq $I10, 1, rx730_restart
+ rx730_cur."!cursor_debug"("START ", "named_param")
$I10 = self.'from'()
- ne $I10, -1, rxscan753_done
- goto rxscan753_scan
- rxscan753_loop:
- ($P10) = rx749_cur."from"()
+ ne $I10, -1, rxscan734_done
+ goto rxscan734_scan
+ rxscan734_loop:
+ ($P10) = rx730_cur."from"()
inc $P10
- set rx749_pos, $P10
- ge rx749_pos, rx749_eos, rxscan753_done
- rxscan753_scan:
- set_addr $I10, rxscan753_loop
- rx749_cur."!mark_push"(0, rx749_pos, $I10)
- rxscan753_done:
-.annotate 'line', 339
+ set rx730_pos, $P10
+ ge rx730_pos, rx730_eos, rxscan734_done
+ rxscan734_scan:
+ set_addr $I10, rxscan734_loop
+ rx730_cur."!mark_push"(0, rx730_pos, $I10)
+ rxscan734_done:
+.annotate 'line', 340
# rx literal ":"
- add $I11, rx749_pos, 1
- gt $I11, rx749_eos, rx749_fail
- sub $I11, rx749_pos, rx749_off
- substr $S10, rx749_tgt, $I11, 1
- ne $S10, ":", rx749_fail
- add rx749_pos, 1
+ add $I11, rx730_pos, 1
+ gt $I11, rx730_eos, rx730_fail
+ sub $I11, rx730_pos, rx730_off
+ substr $S10, rx730_tgt, $I11, 1
+ ne $S10, ":", rx730_fail
+ add rx730_pos, 1
# rx subrule "param_var" subtype=capture negate=
- rx749_cur."!cursor_pos"(rx749_pos)
- $P10 = rx749_cur."param_var"()
- unless $P10, rx749_fail
- rx749_cur."!mark_push"(0, -1, 0, $P10)
+ rx730_cur."!cursor_pos"(rx730_pos)
+ $P10 = rx730_cur."param_var"()
+ unless $P10, rx730_fail
+ rx730_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("param_var")
- rx749_pos = $P10."pos"()
-.annotate 'line', 338
+ rx730_pos = $P10."pos"()
+.annotate 'line', 339
# rx pass
- rx749_cur."!cursor_pass"(rx749_pos, "named_param")
- rx749_cur."!cursor_debug"("PASS ", "named_param", " at pos=", rx749_pos)
- .return (rx749_cur)
- rx749_fail:
+ rx730_cur."!cursor_pass"(rx730_pos, "named_param")
+ rx730_cur."!cursor_debug"("PASS ", "named_param", " at pos=", rx730_pos)
+ .return (rx730_cur)
+ rx730_restart:
.annotate 'line', 4
- (rx749_rep, rx749_pos, $I10, $P10) = rx749_cur."!mark_fail"(0)
- lt rx749_pos, -1, rx749_done
- eq rx749_pos, -1, rx749_fail
+ rx730_cur."!cursor_debug"("NEXT ", "named_param")
+ rx730_fail:
+ (rx730_rep, rx730_pos, $I10, $P10) = rx730_cur."!mark_fail"(0)
+ lt rx730_pos, -1, rx730_done
+ eq rx730_pos, -1, rx730_fail
jump $I10
- rx749_done:
- rx749_cur."!cursor_fail"()
- rx749_cur."!cursor_debug"("FAIL ", "named_param")
- .return (rx749_cur)
+ rx730_done:
+ rx730_cur."!cursor_fail"()
+ rx730_cur."!cursor_debug"("FAIL ", "named_param")
+ .return (rx730_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__named_param" :subid("175_1275811487.95429") :method
+.sub "!PREFIX__named_param" :subid("177_1280467477.44751") :method
.annotate 'line', 4
- $P751 = self."!PREFIX__!subrule"("param_var", ":")
- new $P752, "ResizablePMCArray"
- push $P752, $P751
- .return ($P752)
+ $P732 = self."!PREFIX__!subrule"("param_var", ":")
+ new $P733, "ResizablePMCArray"
+ push $P733, $P732
+ .return ($P733)
.end
.namespace ["NQP";"Grammar"]
-.sub "default_value" :subid("176_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "default_value" :subid("178_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx755_tgt
- .local int rx755_pos
- .local int rx755_off
- .local int rx755_eos
- .local int rx755_rep
- .local pmc rx755_cur
- (rx755_cur, rx755_pos, rx755_tgt) = self."!cursor_start"()
- rx755_cur."!cursor_debug"("START ", "default_value")
- .lex unicode:"$\x{a2}", rx755_cur
+ .local string rx736_tgt
+ .local int rx736_pos
+ .local int rx736_off
+ .local int rx736_eos
+ .local int rx736_rep
+ .local pmc rx736_cur
+ (rx736_cur, rx736_pos, rx736_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx736_cur
.local pmc match
.lex "$/", match
- length rx755_eos, rx755_tgt
- gt rx755_pos, rx755_eos, rx755_done
- set rx755_off, 0
- lt rx755_pos, 2, rx755_start
- sub rx755_off, rx755_pos, 1
- substr rx755_tgt, rx755_tgt, rx755_off
- rx755_start:
+ length rx736_eos, rx736_tgt
+ gt rx736_pos, rx736_eos, rx736_done
+ set rx736_off, 0
+ lt rx736_pos, 2, rx736_start
+ sub rx736_off, rx736_pos, 1
+ substr rx736_tgt, rx736_tgt, rx736_off
+ rx736_start:
+ eq $I10, 1, rx736_restart
+ rx736_cur."!cursor_debug"("START ", "default_value")
$I10 = self.'from'()
- ne $I10, -1, rxscan759_done
- goto rxscan759_scan
- rxscan759_loop:
- ($P10) = rx755_cur."from"()
+ ne $I10, -1, rxscan740_done
+ goto rxscan740_scan
+ rxscan740_loop:
+ ($P10) = rx736_cur."from"()
inc $P10
- set rx755_pos, $P10
- ge rx755_pos, rx755_eos, rxscan759_done
- rxscan759_scan:
- set_addr $I10, rxscan759_loop
- rx755_cur."!mark_push"(0, rx755_pos, $I10)
- rxscan759_done:
-.annotate 'line', 342
+ set rx736_pos, $P10
+ ge rx736_pos, rx736_eos, rxscan740_done
+ rxscan740_scan:
+ set_addr $I10, rxscan740_loop
+ rx736_cur."!mark_push"(0, rx736_pos, $I10)
+ rxscan740_done:
+.annotate 'line', 343
# rx subrule "ws" subtype=method negate=
- rx755_cur."!cursor_pos"(rx755_pos)
- $P10 = rx755_cur."ws"()
- unless $P10, rx755_fail
- rx755_pos = $P10."pos"()
+ rx736_cur."!cursor_pos"(rx736_pos)
+ $P10 = rx736_cur."ws"()
+ unless $P10, rx736_fail
+ rx736_pos = $P10."pos"()
# rx literal "="
- add $I11, rx755_pos, 1
- gt $I11, rx755_eos, rx755_fail
- sub $I11, rx755_pos, rx755_off
- substr $S10, rx755_tgt, $I11, 1
- ne $S10, "=", rx755_fail
- add rx755_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx755_cur."!cursor_pos"(rx755_pos)
- $P10 = rx755_cur."ws"()
- unless $P10, rx755_fail
- rx755_pos = $P10."pos"()
+ add $I11, rx736_pos, 1
+ gt $I11, rx736_eos, rx736_fail
+ sub $I11, rx736_pos, rx736_off
+ substr $S10, rx736_tgt, $I11, 1
+ ne $S10, "=", rx736_fail
+ add rx736_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx736_cur."!cursor_pos"(rx736_pos)
+ $P10 = rx736_cur."ws"()
+ unless $P10, rx736_fail
+ rx736_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx755_cur."!cursor_pos"(rx755_pos)
- $P10 = rx755_cur."EXPR"("i=")
- unless $P10, rx755_fail
- rx755_cur."!mark_push"(0, -1, 0, $P10)
+ rx736_cur."!cursor_pos"(rx736_pos)
+ $P10 = rx736_cur."EXPR"("i=")
+ unless $P10, rx736_fail
+ rx736_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx755_pos = $P10."pos"()
+ rx736_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx755_cur."!cursor_pos"(rx755_pos)
- $P10 = rx755_cur."ws"()
- unless $P10, rx755_fail
- rx755_pos = $P10."pos"()
+ rx736_cur."!cursor_pos"(rx736_pos)
+ $P10 = rx736_cur."ws"()
+ unless $P10, rx736_fail
+ rx736_pos = $P10."pos"()
# rx pass
- rx755_cur."!cursor_pass"(rx755_pos, "default_value")
- rx755_cur."!cursor_debug"("PASS ", "default_value", " at pos=", rx755_pos)
- .return (rx755_cur)
- rx755_fail:
+ rx736_cur."!cursor_pass"(rx736_pos, "default_value")
+ rx736_cur."!cursor_debug"("PASS ", "default_value", " at pos=", rx736_pos)
+ .return (rx736_cur)
+ rx736_restart:
.annotate 'line', 4
- (rx755_rep, rx755_pos, $I10, $P10) = rx755_cur."!mark_fail"(0)
- lt rx755_pos, -1, rx755_done
- eq rx755_pos, -1, rx755_fail
+ rx736_cur."!cursor_debug"("NEXT ", "default_value")
+ rx736_fail:
+ (rx736_rep, rx736_pos, $I10, $P10) = rx736_cur."!mark_fail"(0)
+ lt rx736_pos, -1, rx736_done
+ eq rx736_pos, -1, rx736_fail
jump $I10
- rx755_done:
- rx755_cur."!cursor_fail"()
- rx755_cur."!cursor_debug"("FAIL ", "default_value")
- .return (rx755_cur)
+ rx736_done:
+ rx736_cur."!cursor_fail"()
+ rx736_cur."!cursor_debug"("FAIL ", "default_value")
+ .return (rx736_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__default_value" :subid("177_1275811487.95429") :method
+.sub "!PREFIX__default_value" :subid("179_1280467477.44751") :method
.annotate 'line', 4
- $P757 = self."!PREFIX__!subrule"("ws", "")
- new $P758, "ResizablePMCArray"
- push $P758, $P757
- .return ($P758)
+ $P738 = self."!PREFIX__!subrule"("ws", "")
+ new $P739, "ResizablePMCArray"
+ push $P739, $P738
+ .return ($P739)
.end
.namespace ["NQP";"Grammar"]
-.sub "regex_declarator" :subid("178_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "regex_declarator" :subid("180_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx764_tgt
- .local int rx764_pos
- .local int rx764_off
- .local int rx764_eos
- .local int rx764_rep
- .local pmc rx764_cur
- (rx764_cur, rx764_pos, rx764_tgt) = self."!cursor_start"()
- rx764_cur."!cursor_debug"("START ", "regex_declarator")
- rx764_cur."!cursor_caparray"("signature")
- .lex unicode:"$\x{a2}", rx764_cur
- .local pmc match
- .lex "$/", match
- length rx764_eos, rx764_tgt
- gt rx764_pos, rx764_eos, rx764_done
- set rx764_off, 0
- lt rx764_pos, 2, rx764_start
- sub rx764_off, rx764_pos, 1
- substr rx764_tgt, rx764_tgt, rx764_off
- rx764_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan768_done
- goto rxscan768_scan
- rxscan768_loop:
- ($P10) = rx764_cur."from"()
- inc $P10
- set rx764_pos, $P10
- ge rx764_pos, rx764_eos, rxscan768_done
- rxscan768_scan:
- set_addr $I10, rxscan768_loop
- rx764_cur."!mark_push"(0, rx764_pos, $I10)
- rxscan768_done:
-.annotate 'line', 344
- # rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
- alt770_0:
+ .local string rx745_tgt
+ .local int rx745_pos
+ .local int rx745_off
+ .local int rx745_eos
+ .local int rx745_rep
+ .local pmc rx745_cur
+ (rx745_cur, rx745_pos, rx745_tgt, $I10) = self."!cursor_start"()
+ rx745_cur."!cursor_caparray"("signature")
+ .lex unicode:"$\x{a2}", rx745_cur
+ .local pmc match
+ .lex "$/", match
+ length rx745_eos, rx745_tgt
+ gt rx745_pos, rx745_eos, rx745_done
+ set rx745_off, 0
+ lt rx745_pos, 2, rx745_start
+ sub rx745_off, rx745_pos, 1
+ substr rx745_tgt, rx745_tgt, rx745_off
+ rx745_start:
+ eq $I10, 1, rx745_restart
+ rx745_cur."!cursor_debug"("START ", "regex_declarator")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan749_done
+ goto rxscan749_scan
+ rxscan749_loop:
+ ($P10) = rx745_cur."from"()
+ inc $P10
+ set rx745_pos, $P10
+ ge rx745_pos, rx745_eos, rxscan749_done
+ rxscan749_scan:
+ set_addr $I10, rxscan749_loop
+ rx745_cur."!mark_push"(0, rx745_pos, $I10)
+ rxscan749_done:
.annotate 'line', 345
- set_addr $I10, alt770_1
- rx764_cur."!mark_push"(0, rx764_pos, $I10)
+ # rx subrule "ws" subtype=method negate=
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
+ alt751_0:
.annotate 'line', 346
+ set_addr $I10, alt751_1
+ rx745_cur."!mark_push"(0, rx745_pos, $I10)
+.annotate 'line', 347
# rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
# rx subcapture "proto"
- set_addr $I10, rxcap_772_fail
- rx764_cur."!mark_push"(0, rx764_pos, $I10)
+ set_addr $I10, rxcap_753_fail
+ rx745_cur."!mark_push"(0, rx745_pos, $I10)
# rx literal "proto"
- add $I11, rx764_pos, 5
- gt $I11, rx764_eos, rx764_fail
- sub $I11, rx764_pos, rx764_off
- substr $S10, rx764_tgt, $I11, 5
- ne $S10, "proto", rx764_fail
- add rx764_pos, 5
- set_addr $I10, rxcap_772_fail
- ($I12, $I11) = rx764_cur."!mark_peek"($I10)
- rx764_cur."!cursor_pos"($I11)
- ($P10) = rx764_cur."!cursor_start"()
- $P10."!cursor_pass"(rx764_pos, "")
- rx764_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx745_pos, 5
+ gt $I11, rx745_eos, rx745_fail
+ sub $I11, rx745_pos, rx745_off
+ substr $S10, rx745_tgt, $I11, 5
+ ne $S10, "proto", rx745_fail
+ add rx745_pos, 5
+ set_addr $I10, rxcap_753_fail
+ ($I12, $I11) = rx745_cur."!mark_peek"($I10)
+ rx745_cur."!cursor_pos"($I11)
+ ($P10) = rx745_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx745_pos, "")
+ rx745_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("proto")
- goto rxcap_772_done
- rxcap_772_fail:
- goto rx764_fail
- rxcap_772_done:
- # rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
- alt774_0:
- set_addr $I10, alt774_1
- rx764_cur."!mark_push"(0, rx764_pos, $I10)
+ goto rxcap_753_done
+ rxcap_753_fail:
+ goto rx745_fail
+ rxcap_753_done:
+ # rx subrule "ws" subtype=method negate=
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
+ alt755_0:
+ set_addr $I10, alt755_1
+ rx745_cur."!mark_push"(0, rx745_pos, $I10)
# rx literal "regex"
- add $I11, rx764_pos, 5
- gt $I11, rx764_eos, rx764_fail
- sub $I11, rx764_pos, rx764_off
- substr $S10, rx764_tgt, $I11, 5
- ne $S10, "regex", rx764_fail
- add rx764_pos, 5
- goto alt774_end
- alt774_1:
- set_addr $I10, alt774_2
- rx764_cur."!mark_push"(0, rx764_pos, $I10)
+ add $I11, rx745_pos, 5
+ gt $I11, rx745_eos, rx745_fail
+ sub $I11, rx745_pos, rx745_off
+ substr $S10, rx745_tgt, $I11, 5
+ ne $S10, "regex", rx745_fail
+ add rx745_pos, 5
+ goto alt755_end
+ alt755_1:
+ set_addr $I10, alt755_2
+ rx745_cur."!mark_push"(0, rx745_pos, $I10)
# rx literal "token"
- add $I11, rx764_pos, 5
- gt $I11, rx764_eos, rx764_fail
- sub $I11, rx764_pos, rx764_off
- substr $S10, rx764_tgt, $I11, 5
- ne $S10, "token", rx764_fail
- add rx764_pos, 5
- goto alt774_end
- alt774_2:
+ add $I11, rx745_pos, 5
+ gt $I11, rx745_eos, rx745_fail
+ sub $I11, rx745_pos, rx745_off
+ substr $S10, rx745_tgt, $I11, 5
+ ne $S10, "token", rx745_fail
+ add rx745_pos, 5
+ goto alt755_end
+ alt755_2:
# rx literal "rule"
- add $I11, rx764_pos, 4
- gt $I11, rx764_eos, rx764_fail
- sub $I11, rx764_pos, rx764_off
- substr $S10, rx764_tgt, $I11, 4
- ne $S10, "rule", rx764_fail
- add rx764_pos, 4
- alt774_end:
- # rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
-.annotate 'line', 347
+ add $I11, rx745_pos, 4
+ gt $I11, rx745_eos, rx745_fail
+ sub $I11, rx745_pos, rx745_off
+ substr $S10, rx745_tgt, $I11, 4
+ ne $S10, "rule", rx745_fail
+ add rx745_pos, 4
+ alt755_end:
+ # rx subrule "ws" subtype=method negate=
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
+.annotate 'line', 348
# rx subrule "deflongname" subtype=capture negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."deflongname"()
- unless $P10, rx764_fail
- rx764_cur."!mark_push"(0, -1, 0, $P10)
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."deflongname"()
+ unless $P10, rx745_fail
+ rx745_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("deflongname")
- rx764_pos = $P10."pos"()
+ rx745_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
- alt777_0:
-.annotate 'line', 348
- set_addr $I10, alt777_1
- rx764_cur."!mark_push"(0, rx764_pos, $I10)
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
+ alt758_0:
.annotate 'line', 349
+ set_addr $I10, alt758_1
+ rx745_cur."!mark_push"(0, rx745_pos, $I10)
+.annotate 'line', 350
# rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
# rx literal "{"
- add $I11, rx764_pos, 1
- gt $I11, rx764_eos, rx764_fail
- sub $I11, rx764_pos, rx764_off
- substr $S10, rx764_tgt, $I11, 1
- ne $S10, "{", rx764_fail
- add rx764_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
+ add $I11, rx745_pos, 1
+ gt $I11, rx745_eos, rx745_fail
+ sub $I11, rx745_pos, rx745_off
+ substr $S10, rx745_tgt, $I11, 1
+ ne $S10, "{", rx745_fail
+ add rx745_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
# rx literal "<...>"
- add $I11, rx764_pos, 5
- gt $I11, rx764_eos, rx764_fail
- sub $I11, rx764_pos, rx764_off
- substr $S10, rx764_tgt, $I11, 5
- ne $S10, "<...>", rx764_fail
- add rx764_pos, 5
- # rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
+ add $I11, rx745_pos, 5
+ gt $I11, rx745_eos, rx745_fail
+ sub $I11, rx745_pos, rx745_off
+ substr $S10, rx745_tgt, $I11, 5
+ ne $S10, "<...>", rx745_fail
+ add rx745_pos, 5
+ # rx subrule "ws" subtype=method negate=
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
# rx literal "}"
- add $I11, rx764_pos, 1
- gt $I11, rx764_eos, rx764_fail
- sub $I11, rx764_pos, rx764_off
- substr $S10, rx764_tgt, $I11, 1
- ne $S10, "}", rx764_fail
- add rx764_pos, 1
+ add $I11, rx745_pos, 1
+ gt $I11, rx745_eos, rx745_fail
+ sub $I11, rx745_pos, rx745_off
+ substr $S10, rx745_tgt, $I11, 1
+ ne $S10, "}", rx745_fail
+ add rx745_pos, 1
# rx subrule "ENDSTMT" subtype=zerowidth negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ENDSTMT"()
- unless $P10, rx764_fail
- # rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
- goto alt777_end
- alt777_1:
-.annotate 'line', 350
- # rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
- # rx subrule "panic" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."panic"("Proto regex body must be <...>")
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
- alt777_end:
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ENDSTMT"()
+ unless $P10, rx745_fail
+ # rx subrule "ws" subtype=method negate=
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
+ goto alt758_end
+ alt758_1:
.annotate 'line', 351
# rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
-.annotate 'line', 346
- goto alt770_end
- alt770_1:
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
+ # rx subrule "panic" subtype=method negate=
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."panic"("Proto regex body must be <...>")
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
+ alt758_end:
.annotate 'line', 352
# rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
+.annotate 'line', 347
+ goto alt751_end
+ alt751_1:
+.annotate 'line', 353
+ # rx subrule "ws" subtype=method negate=
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
# rx subcapture "sym"
- set_addr $I10, rxcap_787_fail
- rx764_cur."!mark_push"(0, rx764_pos, $I10)
- alt786_0:
- set_addr $I10, alt786_1
- rx764_cur."!mark_push"(0, rx764_pos, $I10)
+ set_addr $I10, rxcap_768_fail
+ rx745_cur."!mark_push"(0, rx745_pos, $I10)
+ alt767_0:
+ set_addr $I10, alt767_1
+ rx745_cur."!mark_push"(0, rx745_pos, $I10)
# rx literal "regex"
- add $I11, rx764_pos, 5
- gt $I11, rx764_eos, rx764_fail
- sub $I11, rx764_pos, rx764_off
- substr $S10, rx764_tgt, $I11, 5
- ne $S10, "regex", rx764_fail
- add rx764_pos, 5
- goto alt786_end
- alt786_1:
- set_addr $I10, alt786_2
- rx764_cur."!mark_push"(0, rx764_pos, $I10)
+ add $I11, rx745_pos, 5
+ gt $I11, rx745_eos, rx745_fail
+ sub $I11, rx745_pos, rx745_off
+ substr $S10, rx745_tgt, $I11, 5
+ ne $S10, "regex", rx745_fail
+ add rx745_pos, 5
+ goto alt767_end
+ alt767_1:
+ set_addr $I10, alt767_2
+ rx745_cur."!mark_push"(0, rx745_pos, $I10)
# rx literal "token"
- add $I11, rx764_pos, 5
- gt $I11, rx764_eos, rx764_fail
- sub $I11, rx764_pos, rx764_off
- substr $S10, rx764_tgt, $I11, 5
- ne $S10, "token", rx764_fail
- add rx764_pos, 5
- goto alt786_end
- alt786_2:
+ add $I11, rx745_pos, 5
+ gt $I11, rx745_eos, rx745_fail
+ sub $I11, rx745_pos, rx745_off
+ substr $S10, rx745_tgt, $I11, 5
+ ne $S10, "token", rx745_fail
+ add rx745_pos, 5
+ goto alt767_end
+ alt767_2:
# rx literal "rule"
- add $I11, rx764_pos, 4
- gt $I11, rx764_eos, rx764_fail
- sub $I11, rx764_pos, rx764_off
- substr $S10, rx764_tgt, $I11, 4
- ne $S10, "rule", rx764_fail
- add rx764_pos, 4
- alt786_end:
- set_addr $I10, rxcap_787_fail
- ($I12, $I11) = rx764_cur."!mark_peek"($I10)
- rx764_cur."!cursor_pos"($I11)
- ($P10) = rx764_cur."!cursor_start"()
- $P10."!cursor_pass"(rx764_pos, "")
- rx764_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx745_pos, 4
+ gt $I11, rx745_eos, rx745_fail
+ sub $I11, rx745_pos, rx745_off
+ substr $S10, rx745_tgt, $I11, 4
+ ne $S10, "rule", rx745_fail
+ add rx745_pos, 4
+ alt767_end:
+ set_addr $I10, rxcap_768_fail
+ ($I12, $I11) = rx745_cur."!mark_peek"($I10)
+ rx745_cur."!cursor_pos"($I11)
+ ($P10) = rx745_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx745_pos, "")
+ rx745_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_787_done
- rxcap_787_fail:
- goto rx764_fail
- rxcap_787_done:
- # rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
-.annotate 'line', 353
+ goto rxcap_768_done
+ rxcap_768_fail:
+ goto rx745_fail
+ rxcap_768_done:
+ # rx subrule "ws" subtype=method negate=
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
+.annotate 'line', 354
# rx subrule "deflongname" subtype=capture negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."deflongname"()
- unless $P10, rx764_fail
- rx764_cur."!mark_push"(0, -1, 0, $P10)
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."deflongname"()
+ unless $P10, rx745_fail
+ rx745_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("deflongname")
- rx764_pos = $P10."pos"()
+ rx745_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
-.annotate 'line', 354
- # rx subrule "newpad" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."newpad"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
.annotate 'line', 355
- # rx rxquantr791 ** 0..1
- set_addr $I796, rxquantr791_done
- rx764_cur."!mark_push"(0, rx764_pos, $I796)
- rxquantr791_loop:
- # rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
+ # rx subrule "newpad" subtype=method negate=
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."newpad"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
+.annotate 'line', 356
+ # rx rxquantr772 ** 0..1
+ set_addr $I10, rxquantr772_done
+ rx745_cur."!mark_push"(0, rx745_pos, $I10)
+ rxquantr772_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
# rx literal "("
- add $I11, rx764_pos, 1
- gt $I11, rx764_eos, rx764_fail
- sub $I11, rx764_pos, rx764_off
- substr $S10, rx764_tgt, $I11, 1
- ne $S10, "(", rx764_fail
- add rx764_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
+ add $I11, rx745_pos, 1
+ gt $I11, rx745_eos, rx745_fail
+ sub $I11, rx745_pos, rx745_off
+ substr $S10, rx745_tgt, $I11, 1
+ ne $S10, "(", rx745_fail
+ add rx745_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
# rx subrule "signature" subtype=capture negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."signature"()
- unless $P10, rx764_fail
- rx764_cur."!mark_push"(0, -1, 0, $P10)
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."signature"()
+ unless $P10, rx745_fail
+ rx745_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("signature")
- rx764_pos = $P10."pos"()
+ rx745_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
# rx literal ")"
- add $I11, rx764_pos, 1
- gt $I11, rx764_eos, rx764_fail
- sub $I11, rx764_pos, rx764_off
- substr $S10, rx764_tgt, $I11, 1
- ne $S10, ")", rx764_fail
- add rx764_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
- (rx764_rep) = rx764_cur."!mark_commit"($I796)
- rxquantr791_done:
- # rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
-.annotate 'line', 356
+ add $I11, rx745_pos, 1
+ gt $I11, rx745_eos, rx745_fail
+ sub $I11, rx745_pos, rx745_off
+ substr $S10, rx745_tgt, $I11, 1
+ ne $S10, ")", rx745_fail
+ add rx745_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
+ set_addr $I10, rxquantr772_done
+ (rx745_rep) = rx745_cur."!mark_commit"($I10)
+ rxquantr772_done:
+ # rx subrule "ws" subtype=method negate=
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
+.annotate 'line', 357
# rx reduce name="regex_declarator" key="open"
- rx764_cur."!cursor_pos"(rx764_pos)
- rx764_cur."!reduce"("regex_declarator", "open")
+ rx745_cur."!cursor_pos"(rx745_pos)
+ rx745_cur."!reduce"("regex_declarator", "open")
# rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
-.annotate 'line', 357
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
+.annotate 'line', 358
# rx literal "{"
- add $I11, rx764_pos, 1
- gt $I11, rx764_eos, rx764_fail
- sub $I11, rx764_pos, rx764_off
- substr $S10, rx764_tgt, $I11, 1
- ne $S10, "{", rx764_fail
- add rx764_pos, 1
+ add $I11, rx745_pos, 1
+ gt $I11, rx745_eos, rx745_fail
+ sub $I11, rx745_pos, rx745_off
+ substr $S10, rx745_tgt, $I11, 1
+ ne $S10, "{", rx745_fail
+ add rx745_pos, 1
# rx subrule "LANG" subtype=capture negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."LANG"("Regex", "nibbler")
- unless $P10, rx764_fail
- rx764_cur."!mark_push"(0, -1, 0, $P10)
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."LANG"("Regex", "nibbler")
+ unless $P10, rx745_fail
+ rx745_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("p6regex")
- rx764_pos = $P10."pos"()
+ rx745_pos = $P10."pos"()
# rx literal "}"
- add $I11, rx764_pos, 1
- gt $I11, rx764_eos, rx764_fail
- sub $I11, rx764_pos, rx764_off
- substr $S10, rx764_tgt, $I11, 1
- ne $S10, "}", rx764_fail
- add rx764_pos, 1
+ add $I11, rx745_pos, 1
+ gt $I11, rx745_eos, rx745_fail
+ sub $I11, rx745_pos, rx745_off
+ substr $S10, rx745_tgt, $I11, 1
+ ne $S10, "}", rx745_fail
+ add rx745_pos, 1
# rx subrule "ENDSTMT" subtype=zerowidth negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ENDSTMT"()
- unless $P10, rx764_fail
- # rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
- alt770_end:
-.annotate 'line', 358
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ENDSTMT"()
+ unless $P10, rx745_fail
+ # rx subrule "ws" subtype=method negate=
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
+ alt751_end:
+.annotate 'line', 359
# rx subrule "ws" subtype=method negate=
- rx764_cur."!cursor_pos"(rx764_pos)
- $P10 = rx764_cur."ws"()
- unless $P10, rx764_fail
- rx764_pos = $P10."pos"()
-.annotate 'line', 344
+ rx745_cur."!cursor_pos"(rx745_pos)
+ $P10 = rx745_cur."ws"()
+ unless $P10, rx745_fail
+ rx745_pos = $P10."pos"()
+.annotate 'line', 345
# rx pass
- rx764_cur."!cursor_pass"(rx764_pos, "regex_declarator")
- rx764_cur."!cursor_debug"("PASS ", "regex_declarator", " at pos=", rx764_pos)
- .return (rx764_cur)
- rx764_fail:
+ rx745_cur."!cursor_pass"(rx745_pos, "regex_declarator")
+ rx745_cur."!cursor_debug"("PASS ", "regex_declarator", " at pos=", rx745_pos)
+ .return (rx745_cur)
+ rx745_restart:
.annotate 'line', 4
- (rx764_rep, rx764_pos, $I10, $P10) = rx764_cur."!mark_fail"(0)
- lt rx764_pos, -1, rx764_done
- eq rx764_pos, -1, rx764_fail
+ rx745_cur."!cursor_debug"("NEXT ", "regex_declarator")
+ rx745_fail:
+ (rx745_rep, rx745_pos, $I10, $P10) = rx745_cur."!mark_fail"(0)
+ lt rx745_pos, -1, rx745_done
+ eq rx745_pos, -1, rx745_fail
jump $I10
- rx764_done:
- rx764_cur."!cursor_fail"()
- rx764_cur."!cursor_debug"("FAIL ", "regex_declarator")
- .return (rx764_cur)
+ rx745_done:
+ rx745_cur."!cursor_fail"()
+ rx745_cur."!cursor_debug"("FAIL ", "regex_declarator")
+ .return (rx745_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__regex_declarator" :subid("179_1275811487.95429") :method
+.sub "!PREFIX__regex_declarator" :subid("181_1280467477.44751") :method
.annotate 'line', 4
- $P766 = self."!PREFIX__!subrule"("ws", "")
- new $P767, "ResizablePMCArray"
- push $P767, $P766
- .return ($P767)
+ $P747 = self."!PREFIX__!subrule"("ws", "")
+ new $P748, "ResizablePMCArray"
+ push $P748, $P747
+ .return ($P748)
.end
.namespace ["NQP";"Grammar"]
-.sub "dotty" :subid("180_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "dotty" :subid("182_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx802_tgt
- .local int rx802_pos
- .local int rx802_off
- .local int rx802_eos
- .local int rx802_rep
- .local pmc rx802_cur
- (rx802_cur, rx802_pos, rx802_tgt) = self."!cursor_start"()
- rx802_cur."!cursor_debug"("START ", "dotty")
- rx802_cur."!cursor_caparray"("args")
- .lex unicode:"$\x{a2}", rx802_cur
+ .local string rx782_tgt
+ .local int rx782_pos
+ .local int rx782_off
+ .local int rx782_eos
+ .local int rx782_rep
+ .local pmc rx782_cur
+ (rx782_cur, rx782_pos, rx782_tgt, $I10) = self."!cursor_start"()
+ rx782_cur."!cursor_caparray"("args")
+ .lex unicode:"$\x{a2}", rx782_cur
.local pmc match
.lex "$/", match
- length rx802_eos, rx802_tgt
- gt rx802_pos, rx802_eos, rx802_done
- set rx802_off, 0
- lt rx802_pos, 2, rx802_start
- sub rx802_off, rx802_pos, 1
- substr rx802_tgt, rx802_tgt, rx802_off
- rx802_start:
+ length rx782_eos, rx782_tgt
+ gt rx782_pos, rx782_eos, rx782_done
+ set rx782_off, 0
+ lt rx782_pos, 2, rx782_start
+ sub rx782_off, rx782_pos, 1
+ substr rx782_tgt, rx782_tgt, rx782_off
+ rx782_start:
+ eq $I10, 1, rx782_restart
+ rx782_cur."!cursor_debug"("START ", "dotty")
$I10 = self.'from'()
- ne $I10, -1, rxscan806_done
- goto rxscan806_scan
- rxscan806_loop:
- ($P10) = rx802_cur."from"()
+ ne $I10, -1, rxscan786_done
+ goto rxscan786_scan
+ rxscan786_loop:
+ ($P10) = rx782_cur."from"()
inc $P10
- set rx802_pos, $P10
- ge rx802_pos, rx802_eos, rxscan806_done
- rxscan806_scan:
- set_addr $I10, rxscan806_loop
- rx802_cur."!mark_push"(0, rx802_pos, $I10)
- rxscan806_done:
-.annotate 'line', 362
- # rx literal "."
- add $I11, rx802_pos, 1
- gt $I11, rx802_eos, rx802_fail
- sub $I11, rx802_pos, rx802_off
- substr $S10, rx802_tgt, $I11, 1
- ne $S10, ".", rx802_fail
- add rx802_pos, 1
- alt807_0:
+ set rx782_pos, $P10
+ ge rx782_pos, rx782_eos, rxscan786_done
+ rxscan786_scan:
+ set_addr $I10, rxscan786_loop
+ rx782_cur."!mark_push"(0, rx782_pos, $I10)
+ rxscan786_done:
.annotate 'line', 363
- set_addr $I10, alt807_1
- rx802_cur."!mark_push"(0, rx802_pos, $I10)
- # rx subrule "identifier" subtype=capture negate=
- rx802_cur."!cursor_pos"(rx802_pos)
- $P10 = rx802_cur."identifier"()
- unless $P10, rx802_fail
- rx802_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("longname=identifier")
- rx802_pos = $P10."pos"()
- goto alt807_end
- alt807_1:
+ # rx literal "."
+ add $I11, rx782_pos, 1
+ gt $I11, rx782_eos, rx782_fail
+ sub $I11, rx782_pos, rx782_off
+ substr $S10, rx782_tgt, $I11, 1
+ ne $S10, ".", rx782_fail
+ add rx782_pos, 1
+ alt787_0:
.annotate 'line', 364
+ set_addr $I10, alt787_1
+ rx782_cur."!mark_push"(0, rx782_pos, $I10)
+ # rx subrule "deflongname" subtype=capture negate=
+ rx782_cur."!cursor_pos"(rx782_pos)
+ $P10 = rx782_cur."deflongname"()
+ unless $P10, rx782_fail
+ rx782_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("longname=deflongname")
+ rx782_pos = $P10."pos"()
+ goto alt787_end
+ alt787_1:
+.annotate 'line', 365
# rx enumcharlist negate=0 zerowidth
- ge rx802_pos, rx802_eos, rx802_fail
- sub $I10, rx802_pos, rx802_off
- substr $S10, rx802_tgt, $I10, 1
+ ge rx782_pos, rx782_eos, rx782_fail
+ sub $I10, rx782_pos, rx782_off
+ substr $S10, rx782_tgt, $I10, 1
index $I11, "'\"", $S10
- lt $I11, 0, rx802_fail
+ lt $I11, 0, rx782_fail
# rx subrule "quote" subtype=capture negate=
- rx802_cur."!cursor_pos"(rx802_pos)
- $P10 = rx802_cur."quote"()
- unless $P10, rx802_fail
- rx802_cur."!mark_push"(0, -1, 0, $P10)
+ rx782_cur."!cursor_pos"(rx782_pos)
+ $P10 = rx782_cur."quote"()
+ unless $P10, rx782_fail
+ rx782_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote")
- rx802_pos = $P10."pos"()
- alt808_0:
-.annotate 'line', 365
- set_addr $I10, alt808_1
- rx802_cur."!mark_push"(0, rx802_pos, $I10)
+ rx782_pos = $P10."pos"()
+ alt788_0:
+.annotate 'line', 366
+ set_addr $I10, alt788_1
+ rx782_cur."!mark_push"(0, rx782_pos, $I10)
# rx enumcharlist negate=0 zerowidth
- ge rx802_pos, rx802_eos, rx802_fail
- sub $I10, rx802_pos, rx802_off
- substr $S10, rx802_tgt, $I10, 1
+ ge rx782_pos, rx782_eos, rx782_fail
+ sub $I10, rx782_pos, rx782_off
+ substr $S10, rx782_tgt, $I10, 1
index $I11, "(", $S10
- lt $I11, 0, rx802_fail
- goto alt808_end
- alt808_1:
+ lt $I11, 0, rx782_fail
+ goto alt788_end
+ alt788_1:
# rx subrule "panic" subtype=method negate=
- rx802_cur."!cursor_pos"(rx802_pos)
- $P10 = rx802_cur."panic"("Quoted method name requires parenthesized arguments")
- unless $P10, rx802_fail
- rx802_pos = $P10."pos"()
- alt808_end:
- alt807_end:
-.annotate 'line', 371
- # rx rxquantr809 ** 0..1
- set_addr $I811, rxquantr809_done
- rx802_cur."!mark_push"(0, rx802_pos, $I811)
- rxquantr809_loop:
- alt810_0:
-.annotate 'line', 368
- set_addr $I10, alt810_1
- rx802_cur."!mark_push"(0, rx802_pos, $I10)
+ rx782_cur."!cursor_pos"(rx782_pos)
+ $P10 = rx782_cur."panic"("Quoted method name requires parenthesized arguments")
+ unless $P10, rx782_fail
+ rx782_pos = $P10."pos"()
+ alt788_end:
+ alt787_end:
+.annotate 'line', 372
+ # rx rxquantr789 ** 0..1
+ set_addr $I10, rxquantr789_done
+ rx782_cur."!mark_push"(0, rx782_pos, $I10)
+ rxquantr789_loop:
+ alt790_0:
.annotate 'line', 369
+ set_addr $I10, alt790_1
+ rx782_cur."!mark_push"(0, rx782_pos, $I10)
+.annotate 'line', 370
# rx enumcharlist negate=0 zerowidth
- ge rx802_pos, rx802_eos, rx802_fail
- sub $I10, rx802_pos, rx802_off
- substr $S10, rx802_tgt, $I10, 1
+ ge rx782_pos, rx782_eos, rx782_fail
+ sub $I10, rx782_pos, rx782_off
+ substr $S10, rx782_tgt, $I10, 1
index $I11, "(", $S10
- lt $I11, 0, rx802_fail
+ lt $I11, 0, rx782_fail
# rx subrule "args" subtype=capture negate=
- rx802_cur."!cursor_pos"(rx802_pos)
- $P10 = rx802_cur."args"()
- unless $P10, rx802_fail
- rx802_cur."!mark_push"(0, -1, 0, $P10)
+ rx782_cur."!cursor_pos"(rx782_pos)
+ $P10 = rx782_cur."args"()
+ unless $P10, rx782_fail
+ rx782_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("args")
- rx802_pos = $P10."pos"()
- goto alt810_end
- alt810_1:
-.annotate 'line', 370
+ rx782_pos = $P10."pos"()
+ goto alt790_end
+ alt790_1:
+.annotate 'line', 371
# rx literal ":"
- add $I11, rx802_pos, 1
- gt $I11, rx802_eos, rx802_fail
- sub $I11, rx802_pos, rx802_off
- substr $S10, rx802_tgt, $I11, 1
- ne $S10, ":", rx802_fail
- add rx802_pos, 1
+ add $I11, rx782_pos, 1
+ gt $I11, rx782_eos, rx782_fail
+ sub $I11, rx782_pos, rx782_off
+ substr $S10, rx782_tgt, $I11, 1
+ ne $S10, ":", rx782_fail
+ add rx782_pos, 1
# rx charclass s
- ge rx802_pos, rx802_eos, rx802_fail
- sub $I10, rx802_pos, rx802_off
- is_cclass $I11, 32, rx802_tgt, $I10
- unless $I11, rx802_fail
- inc rx802_pos
+ ge rx782_pos, rx782_eos, rx782_fail
+ sub $I10, rx782_pos, rx782_off
+ is_cclass $I11, 32, rx782_tgt, $I10
+ unless $I11, rx782_fail
+ inc rx782_pos
# rx subrule "arglist" subtype=capture negate=
- rx802_cur."!cursor_pos"(rx802_pos)
- $P10 = rx802_cur."arglist"()
- unless $P10, rx802_fail
- rx802_cur."!mark_push"(0, -1, 0, $P10)
+ rx782_cur."!cursor_pos"(rx782_pos)
+ $P10 = rx782_cur."arglist"()
+ unless $P10, rx782_fail
+ rx782_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("args")
- rx802_pos = $P10."pos"()
- alt810_end:
-.annotate 'line', 371
- (rx802_rep) = rx802_cur."!mark_commit"($I811)
- rxquantr809_done:
-.annotate 'line', 361
+ rx782_pos = $P10."pos"()
+ alt790_end:
+.annotate 'line', 372
+ set_addr $I10, rxquantr789_done
+ (rx782_rep) = rx782_cur."!mark_commit"($I10)
+ rxquantr789_done:
+.annotate 'line', 362
# rx pass
- rx802_cur."!cursor_pass"(rx802_pos, "dotty")
- rx802_cur."!cursor_debug"("PASS ", "dotty", " at pos=", rx802_pos)
- .return (rx802_cur)
- rx802_fail:
+ rx782_cur."!cursor_pass"(rx782_pos, "dotty")
+ rx782_cur."!cursor_debug"("PASS ", "dotty", " at pos=", rx782_pos)
+ .return (rx782_cur)
+ rx782_restart:
.annotate 'line', 4
- (rx802_rep, rx802_pos, $I10, $P10) = rx802_cur."!mark_fail"(0)
- lt rx802_pos, -1, rx802_done
- eq rx802_pos, -1, rx802_fail
+ rx782_cur."!cursor_debug"("NEXT ", "dotty")
+ rx782_fail:
+ (rx782_rep, rx782_pos, $I10, $P10) = rx782_cur."!mark_fail"(0)
+ lt rx782_pos, -1, rx782_done
+ eq rx782_pos, -1, rx782_fail
jump $I10
- rx802_done:
- rx802_cur."!cursor_fail"()
- rx802_cur."!cursor_debug"("FAIL ", "dotty")
- .return (rx802_cur)
+ rx782_done:
+ rx782_cur."!cursor_fail"()
+ rx782_cur."!cursor_debug"("FAIL ", "dotty")
+ .return (rx782_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__dotty" :subid("181_1275811487.95429") :method
+.sub "!PREFIX__dotty" :subid("183_1280467477.44751") :method
.annotate 'line', 4
- $P804 = self."!PREFIX__!subrule"("identifier", ".")
- new $P805, "ResizablePMCArray"
- push $P805, "'"
- push $P805, "\""
- push $P805, $P804
- .return ($P805)
+ $P784 = self."!PREFIX__!subrule"("deflongname", ".")
+ new $P785, "ResizablePMCArray"
+ push $P785, "'"
+ push $P785, "\""
+ push $P785, $P784
+ .return ($P785)
.end
.namespace ["NQP";"Grammar"]
-.sub "term" :subid("182_1275811487.95429") :method
-.annotate 'line', 375
- $P813 = self."!protoregex"("term")
- .return ($P813)
+.sub "term" :subid("184_1280467477.44751") :method
+.annotate 'line', 376
+ $P792 = self."!protoregex"("term")
+ .return ($P792)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term" :subid("183_1275811487.95429") :method
-.annotate 'line', 375
- $P815 = self."!PREFIX__!protoregex"("term")
- .return ($P815)
+.sub "!PREFIX__term" :subid("185_1280467477.44751") :method
+.annotate 'line', 376
+ $P794 = self."!PREFIX__!protoregex"("term")
+ .return ($P794)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<self>" :subid("184_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<self>" :subid("186_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx817_tgt
- .local int rx817_pos
- .local int rx817_off
- .local int rx817_eos
- .local int rx817_rep
- .local pmc rx817_cur
- (rx817_cur, rx817_pos, rx817_tgt) = self."!cursor_start"()
- rx817_cur."!cursor_debug"("START ", "term:sym<self>")
- .lex unicode:"$\x{a2}", rx817_cur
- .local pmc match
- .lex "$/", match
- length rx817_eos, rx817_tgt
- gt rx817_pos, rx817_eos, rx817_done
- set rx817_off, 0
- lt rx817_pos, 2, rx817_start
- sub rx817_off, rx817_pos, 1
- substr rx817_tgt, rx817_tgt, rx817_off
- rx817_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan820_done
- goto rxscan820_scan
- rxscan820_loop:
- ($P10) = rx817_cur."from"()
- inc $P10
- set rx817_pos, $P10
- ge rx817_pos, rx817_eos, rxscan820_done
- rxscan820_scan:
- set_addr $I10, rxscan820_loop
- rx817_cur."!mark_push"(0, rx817_pos, $I10)
- rxscan820_done:
-.annotate 'line', 377
+ .local string rx796_tgt
+ .local int rx796_pos
+ .local int rx796_off
+ .local int rx796_eos
+ .local int rx796_rep
+ .local pmc rx796_cur
+ (rx796_cur, rx796_pos, rx796_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx796_cur
+ .local pmc match
+ .lex "$/", match
+ length rx796_eos, rx796_tgt
+ gt rx796_pos, rx796_eos, rx796_done
+ set rx796_off, 0
+ lt rx796_pos, 2, rx796_start
+ sub rx796_off, rx796_pos, 1
+ substr rx796_tgt, rx796_tgt, rx796_off
+ rx796_start:
+ eq $I10, 1, rx796_restart
+ rx796_cur."!cursor_debug"("START ", "term:sym<self>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan799_done
+ goto rxscan799_scan
+ rxscan799_loop:
+ ($P10) = rx796_cur."from"()
+ inc $P10
+ set rx796_pos, $P10
+ ge rx796_pos, rx796_eos, rxscan799_done
+ rxscan799_scan:
+ set_addr $I10, rxscan799_loop
+ rx796_cur."!mark_push"(0, rx796_pos, $I10)
+ rxscan799_done:
+.annotate 'line', 378
# rx subcapture "sym"
- set_addr $I10, rxcap_821_fail
- rx817_cur."!mark_push"(0, rx817_pos, $I10)
+ set_addr $I10, rxcap_800_fail
+ rx796_cur."!mark_push"(0, rx796_pos, $I10)
# rx literal "self"
- add $I11, rx817_pos, 4
- gt $I11, rx817_eos, rx817_fail
- sub $I11, rx817_pos, rx817_off
- substr $S10, rx817_tgt, $I11, 4
- ne $S10, "self", rx817_fail
- add rx817_pos, 4
- set_addr $I10, rxcap_821_fail
- ($I12, $I11) = rx817_cur."!mark_peek"($I10)
- rx817_cur."!cursor_pos"($I11)
- ($P10) = rx817_cur."!cursor_start"()
- $P10."!cursor_pass"(rx817_pos, "")
- rx817_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx796_pos, 4
+ gt $I11, rx796_eos, rx796_fail
+ sub $I11, rx796_pos, rx796_off
+ substr $S10, rx796_tgt, $I11, 4
+ ne $S10, "self", rx796_fail
+ add rx796_pos, 4
+ set_addr $I10, rxcap_800_fail
+ ($I12, $I11) = rx796_cur."!mark_peek"($I10)
+ rx796_cur."!cursor_pos"($I11)
+ ($P10) = rx796_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx796_pos, "")
+ rx796_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_821_done
- rxcap_821_fail:
- goto rx817_fail
- rxcap_821_done:
+ goto rxcap_800_done
+ rxcap_800_fail:
+ goto rx796_fail
+ rxcap_800_done:
# rxanchor rwb
- le rx817_pos, 0, rx817_fail
- sub $I10, rx817_pos, rx817_off
- is_cclass $I11, 8192, rx817_tgt, $I10
- if $I11, rx817_fail
+ le rx796_pos, 0, rx796_fail
+ sub $I10, rx796_pos, rx796_off
+ is_cclass $I11, 8192, rx796_tgt, $I10
+ if $I11, rx796_fail
dec $I10
- is_cclass $I11, 8192, rx817_tgt, $I10
- unless $I11, rx817_fail
- # rx pass
- rx817_cur."!cursor_pass"(rx817_pos, "term:sym<self>")
- rx817_cur."!cursor_debug"("PASS ", "term:sym<self>", " at pos=", rx817_pos)
- .return (rx817_cur)
- rx817_fail:
-.annotate 'line', 4
- (rx817_rep, rx817_pos, $I10, $P10) = rx817_cur."!mark_fail"(0)
- lt rx817_pos, -1, rx817_done
- eq rx817_pos, -1, rx817_fail
- jump $I10
- rx817_done:
- rx817_cur."!cursor_fail"()
- rx817_cur."!cursor_debug"("FAIL ", "term:sym<self>")
- .return (rx817_cur)
- .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<self>" :subid("185_1275811487.95429") :method
-.annotate 'line', 4
- new $P819, "ResizablePMCArray"
- push $P819, "self"
- .return ($P819)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "term:sym<identifier>" :subid("186_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx823_tgt
- .local int rx823_pos
- .local int rx823_off
- .local int rx823_eos
- .local int rx823_rep
- .local pmc rx823_cur
- (rx823_cur, rx823_pos, rx823_tgt) = self."!cursor_start"()
- rx823_cur."!cursor_debug"("START ", "term:sym<identifier>")
- .lex unicode:"$\x{a2}", rx823_cur
- .local pmc match
- .lex "$/", match
- length rx823_eos, rx823_tgt
- gt rx823_pos, rx823_eos, rx823_done
- set rx823_off, 0
- lt rx823_pos, 2, rx823_start
- sub rx823_off, rx823_pos, 1
- substr rx823_tgt, rx823_tgt, rx823_off
- rx823_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan827_done
- goto rxscan827_scan
- rxscan827_loop:
- ($P10) = rx823_cur."from"()
- inc $P10
- set rx823_pos, $P10
- ge rx823_pos, rx823_eos, rxscan827_done
- rxscan827_scan:
- set_addr $I10, rxscan827_loop
- rx823_cur."!mark_push"(0, rx823_pos, $I10)
- rxscan827_done:
-.annotate 'line', 380
- # rx subrule "identifier" subtype=capture negate=
- rx823_cur."!cursor_pos"(rx823_pos)
- $P10 = rx823_cur."identifier"()
- unless $P10, rx823_fail
- rx823_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("identifier")
- rx823_pos = $P10."pos"()
- # rx enumcharlist negate=0 zerowidth
- ge rx823_pos, rx823_eos, rx823_fail
- sub $I10, rx823_pos, rx823_off
- substr $S10, rx823_tgt, $I10, 1
- index $I11, "(", $S10
- lt $I11, 0, rx823_fail
- # rx subrule "args" subtype=capture negate=
- rx823_cur."!cursor_pos"(rx823_pos)
- $P10 = rx823_cur."args"()
- unless $P10, rx823_fail
- rx823_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("args")
- rx823_pos = $P10."pos"()
-.annotate 'line', 379
+ is_cclass $I11, 8192, rx796_tgt, $I10
+ unless $I11, rx796_fail
# rx pass
- rx823_cur."!cursor_pass"(rx823_pos, "term:sym<identifier>")
- rx823_cur."!cursor_debug"("PASS ", "term:sym<identifier>", " at pos=", rx823_pos)
- .return (rx823_cur)
- rx823_fail:
+ rx796_cur."!cursor_pass"(rx796_pos, "term:sym<self>")
+ rx796_cur."!cursor_debug"("PASS ", "term:sym<self>", " at pos=", rx796_pos)
+ .return (rx796_cur)
+ rx796_restart:
.annotate 'line', 4
- (rx823_rep, rx823_pos, $I10, $P10) = rx823_cur."!mark_fail"(0)
- lt rx823_pos, -1, rx823_done
- eq rx823_pos, -1, rx823_fail
+ rx796_cur."!cursor_debug"("NEXT ", "term:sym<self>")
+ rx796_fail:
+ (rx796_rep, rx796_pos, $I10, $P10) = rx796_cur."!mark_fail"(0)
+ lt rx796_pos, -1, rx796_done
+ eq rx796_pos, -1, rx796_fail
jump $I10
- rx823_done:
- rx823_cur."!cursor_fail"()
- rx823_cur."!cursor_debug"("FAIL ", "term:sym<identifier>")
- .return (rx823_cur)
+ rx796_done:
+ rx796_cur."!cursor_fail"()
+ rx796_cur."!cursor_debug"("FAIL ", "term:sym<self>")
+ .return (rx796_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<identifier>" :subid("187_1275811487.95429") :method
+.sub "!PREFIX__term:sym<self>" :subid("187_1280467477.44751") :method
.annotate 'line', 4
- $P825 = self."!PREFIX__!subrule"("identifier", "")
- new $P826, "ResizablePMCArray"
- push $P826, $P825
- .return ($P826)
+ new $P798, "ResizablePMCArray"
+ push $P798, "self"
+ .return ($P798)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<name>" :subid("188_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<identifier>" :subid("188_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx829_tgt
- .local int rx829_pos
- .local int rx829_off
- .local int rx829_eos
- .local int rx829_rep
- .local pmc rx829_cur
- (rx829_cur, rx829_pos, rx829_tgt) = self."!cursor_start"()
- rx829_cur."!cursor_debug"("START ", "term:sym<name>")
- rx829_cur."!cursor_caparray"("args")
- .lex unicode:"$\x{a2}", rx829_cur
- .local pmc match
- .lex "$/", match
- length rx829_eos, rx829_tgt
- gt rx829_pos, rx829_eos, rx829_done
- set rx829_off, 0
- lt rx829_pos, 2, rx829_start
- sub rx829_off, rx829_pos, 1
- substr rx829_tgt, rx829_tgt, rx829_off
- rx829_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan833_done
- goto rxscan833_scan
- rxscan833_loop:
- ($P10) = rx829_cur."from"()
- inc $P10
- set rx829_pos, $P10
- ge rx829_pos, rx829_eos, rxscan833_done
- rxscan833_scan:
- set_addr $I10, rxscan833_loop
- rx829_cur."!mark_push"(0, rx829_pos, $I10)
- rxscan833_done:
-.annotate 'line', 384
+ .local string rx802_tgt
+ .local int rx802_pos
+ .local int rx802_off
+ .local int rx802_eos
+ .local int rx802_rep
+ .local pmc rx802_cur
+ (rx802_cur, rx802_pos, rx802_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx802_cur
+ .local pmc match
+ .lex "$/", match
+ length rx802_eos, rx802_tgt
+ gt rx802_pos, rx802_eos, rx802_done
+ set rx802_off, 0
+ lt rx802_pos, 2, rx802_start
+ sub rx802_off, rx802_pos, 1
+ substr rx802_tgt, rx802_tgt, rx802_off
+ rx802_start:
+ eq $I10, 1, rx802_restart
+ rx802_cur."!cursor_debug"("START ", "term:sym<identifier>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan806_done
+ goto rxscan806_scan
+ rxscan806_loop:
+ ($P10) = rx802_cur."from"()
+ inc $P10
+ set rx802_pos, $P10
+ ge rx802_pos, rx802_eos, rxscan806_done
+ rxscan806_scan:
+ set_addr $I10, rxscan806_loop
+ rx802_cur."!mark_push"(0, rx802_pos, $I10)
+ rxscan806_done:
+.annotate 'line', 381
+ # rx subrule "deflongname" subtype=capture negate=
+ rx802_cur."!cursor_pos"(rx802_pos)
+ $P10 = rx802_cur."deflongname"()
+ unless $P10, rx802_fail
+ rx802_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("deflongname")
+ rx802_pos = $P10."pos"()
+ # rx enumcharlist negate=0 zerowidth
+ ge rx802_pos, rx802_eos, rx802_fail
+ sub $I10, rx802_pos, rx802_off
+ substr $S10, rx802_tgt, $I10, 1
+ index $I11, "(", $S10
+ lt $I11, 0, rx802_fail
+ # rx subrule "args" subtype=capture negate=
+ rx802_cur."!cursor_pos"(rx802_pos)
+ $P10 = rx802_cur."args"()
+ unless $P10, rx802_fail
+ rx802_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("args")
+ rx802_pos = $P10."pos"()
+.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)
+ .return (rx802_cur)
+ rx802_restart:
+.annotate 'line', 4
+ rx802_cur."!cursor_debug"("NEXT ", "term:sym<identifier>")
+ rx802_fail:
+ (rx802_rep, rx802_pos, $I10, $P10) = rx802_cur."!mark_fail"(0)
+ lt rx802_pos, -1, rx802_done
+ eq rx802_pos, -1, rx802_fail
+ jump $I10
+ rx802_done:
+ rx802_cur."!cursor_fail"()
+ rx802_cur."!cursor_debug"("FAIL ", "term:sym<identifier>")
+ .return (rx802_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__term:sym<identifier>" :subid("189_1280467477.44751") :method
+.annotate 'line', 4
+ $P804 = self."!PREFIX__!subrule"("deflongname", "")
+ new $P805, "ResizablePMCArray"
+ push $P805, $P804
+ .return ($P805)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "term:sym<name>" :subid("190_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx808_tgt
+ .local int rx808_pos
+ .local int rx808_off
+ .local int rx808_eos
+ .local int rx808_rep
+ .local pmc rx808_cur
+ (rx808_cur, rx808_pos, rx808_tgt, $I10) = self."!cursor_start"()
+ rx808_cur."!cursor_caparray"("args")
+ .lex unicode:"$\x{a2}", rx808_cur
+ .local pmc match
+ .lex "$/", match
+ length rx808_eos, rx808_tgt
+ gt rx808_pos, rx808_eos, rx808_done
+ set rx808_off, 0
+ lt rx808_pos, 2, rx808_start
+ sub rx808_off, rx808_pos, 1
+ substr rx808_tgt, rx808_tgt, rx808_off
+ rx808_start:
+ eq $I10, 1, rx808_restart
+ rx808_cur."!cursor_debug"("START ", "term:sym<name>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan812_done
+ goto rxscan812_scan
+ rxscan812_loop:
+ ($P10) = rx808_cur."from"()
+ inc $P10
+ set rx808_pos, $P10
+ ge rx808_pos, rx808_eos, rxscan812_done
+ rxscan812_scan:
+ set_addr $I10, rxscan812_loop
+ rx808_cur."!mark_push"(0, rx808_pos, $I10)
+ rxscan812_done:
+.annotate 'line', 385
# rx subrule "name" subtype=capture negate=
- rx829_cur."!cursor_pos"(rx829_pos)
- $P10 = rx829_cur."name"()
- unless $P10, rx829_fail
- rx829_cur."!mark_push"(0, -1, 0, $P10)
+ rx808_cur."!cursor_pos"(rx808_pos)
+ $P10 = rx808_cur."name"()
+ unless $P10, rx808_fail
+ rx808_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("name")
- rx829_pos = $P10."pos"()
- # rx rxquantr834 ** 0..1
- set_addr $I835, rxquantr834_done
- rx829_cur."!mark_push"(0, rx829_pos, $I835)
- rxquantr834_loop:
+ rx808_pos = $P10."pos"()
+ # rx rxquantr813 ** 0..1
+ set_addr $I10, rxquantr813_done
+ rx808_cur."!mark_push"(0, rx808_pos, $I10)
+ rxquantr813_loop:
# rx subrule "args" subtype=capture negate=
- rx829_cur."!cursor_pos"(rx829_pos)
- $P10 = rx829_cur."args"()
- unless $P10, rx829_fail
- rx829_cur."!mark_push"(0, -1, 0, $P10)
+ rx808_cur."!cursor_pos"(rx808_pos)
+ $P10 = rx808_cur."args"()
+ unless $P10, rx808_fail
+ goto rxsubrule814_pass
+ rxsubrule814_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx808_fail
+ rxsubrule814_pass:
+ set_addr $I10, rxsubrule814_back
+ rx808_cur."!mark_push"(0, rx808_pos, $I10, $P10)
$P10."!cursor_names"("args")
- rx829_pos = $P10."pos"()
- (rx829_rep) = rx829_cur."!mark_commit"($I835)
- rxquantr834_done:
-.annotate 'line', 383
+ rx808_pos = $P10."pos"()
+ set_addr $I10, rxquantr813_done
+ (rx808_rep) = rx808_cur."!mark_commit"($I10)
+ rxquantr813_done:
+.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)
+ .return (rx808_cur)
+ rx808_restart:
+.annotate 'line', 4
+ rx808_cur."!cursor_debug"("NEXT ", "term:sym<name>")
+ rx808_fail:
+ (rx808_rep, rx808_pos, $I10, $P10) = rx808_cur."!mark_fail"(0)
+ lt rx808_pos, -1, rx808_done
+ eq rx808_pos, -1, rx808_fail
+ jump $I10
+ rx808_done:
+ rx808_cur."!cursor_fail"()
+ rx808_cur."!cursor_debug"("FAIL ", "term:sym<name>")
+ .return (rx808_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__term:sym<name>" :subid("191_1280467477.44751") :method
+.annotate 'line', 4
+ $P810 = self."!PREFIX__!subrule"("name", "")
+ new $P811, "ResizablePMCArray"
+ push $P811, $P810
+ .return ($P811)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "term:sym<pir::op>" :subid("192_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx816_tgt
+ .local int rx816_pos
+ .local int rx816_off
+ .local int rx816_eos
+ .local int rx816_rep
+ .local pmc rx816_cur
+ (rx816_cur, rx816_pos, rx816_tgt, $I10) = self."!cursor_start"()
+ rx816_cur."!cursor_caparray"("args")
+ .lex unicode:"$\x{a2}", rx816_cur
+ .local pmc match
+ .lex "$/", match
+ length rx816_eos, rx816_tgt
+ gt rx816_pos, rx816_eos, rx816_done
+ set rx816_off, 0
+ lt rx816_pos, 2, rx816_start
+ sub rx816_off, rx816_pos, 1
+ substr rx816_tgt, rx816_tgt, rx816_off
+ rx816_start:
+ eq $I10, 1, rx816_restart
+ rx816_cur."!cursor_debug"("START ", "term:sym<pir::op>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan819_done
+ goto rxscan819_scan
+ rxscan819_loop:
+ ($P10) = rx816_cur."from"()
+ inc $P10
+ set rx816_pos, $P10
+ ge rx816_pos, rx816_eos, rxscan819_done
+ rxscan819_scan:
+ set_addr $I10, rxscan819_loop
+ rx816_cur."!mark_push"(0, rx816_pos, $I10)
+ rxscan819_done:
+.annotate 'line', 389
+ # rx literal "pir::"
+ add $I11, rx816_pos, 5
+ gt $I11, rx816_eos, rx816_fail
+ sub $I11, rx816_pos, rx816_off
+ substr $S10, rx816_tgt, $I11, 5
+ ne $S10, "pir::", rx816_fail
+ add rx816_pos, 5
+ # rx subcapture "op"
+ set_addr $I10, rxcap_820_fail
+ rx816_cur."!mark_push"(0, rx816_pos, $I10)
+ # rx charclass_q w r 1..-1
+ sub $I10, rx816_pos, rx816_off
+ find_not_cclass $I11, 8192, rx816_tgt, $I10, rx816_eos
+ add $I12, $I10, 1
+ lt $I11, $I12, rx816_fail
+ add rx816_pos, rx816_off, $I11
+ set_addr $I10, rxcap_820_fail
+ ($I12, $I11) = rx816_cur."!mark_peek"($I10)
+ rx816_cur."!cursor_pos"($I11)
+ ($P10) = rx816_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx816_pos, "")
+ rx816_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("op")
+ goto rxcap_820_done
+ rxcap_820_fail:
+ goto rx816_fail
+ rxcap_820_done:
+ # rx rxquantr821 ** 0..1
+ set_addr $I10, rxquantr821_done
+ rx816_cur."!mark_push"(0, rx816_pos, $I10)
+ rxquantr821_loop:
+ # rx subrule "args" subtype=capture negate=
+ rx816_cur."!cursor_pos"(rx816_pos)
+ $P10 = rx816_cur."args"()
+ unless $P10, rx816_fail
+ goto rxsubrule822_pass
+ rxsubrule822_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx816_fail
+ rxsubrule822_pass:
+ set_addr $I10, rxsubrule822_back
+ rx816_cur."!mark_push"(0, rx816_pos, $I10, $P10)
+ $P10."!cursor_names"("args")
+ rx816_pos = $P10."pos"()
+ set_addr $I10, rxquantr821_done
+ (rx816_rep) = rx816_cur."!mark_commit"($I10)
+ rxquantr821_done:
+.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)
+ .return (rx816_cur)
+ rx816_restart:
+.annotate 'line', 4
+ rx816_cur."!cursor_debug"("NEXT ", "term:sym<pir::op>")
+ rx816_fail:
+ (rx816_rep, rx816_pos, $I10, $P10) = rx816_cur."!mark_fail"(0)
+ lt rx816_pos, -1, rx816_done
+ eq rx816_pos, -1, rx816_fail
+ jump $I10
+ rx816_done:
+ rx816_cur."!cursor_fail"()
+ rx816_cur."!cursor_debug"("FAIL ", "term:sym<pir::op>")
+ .return (rx816_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__term:sym<pir::op>" :subid("193_1280467477.44751") :method
+.annotate 'line', 4
+ new $P818, "ResizablePMCArray"
+ push $P818, "pir::"
+ .return ($P818)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "args" :subid("194_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx824_tgt
+ .local int rx824_pos
+ .local int rx824_off
+ .local int rx824_eos
+ .local int rx824_rep
+ .local pmc rx824_cur
+ (rx824_cur, rx824_pos, rx824_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx824_cur
+ .local pmc match
+ .lex "$/", match
+ length rx824_eos, rx824_tgt
+ gt rx824_pos, rx824_eos, rx824_done
+ set rx824_off, 0
+ lt rx824_pos, 2, rx824_start
+ sub rx824_off, rx824_pos, 1
+ substr rx824_tgt, rx824_tgt, rx824_off
+ rx824_start:
+ eq $I10, 1, rx824_restart
+ rx824_cur."!cursor_debug"("START ", "args")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan828_done
+ goto rxscan828_scan
+ rxscan828_loop:
+ ($P10) = rx824_cur."from"()
+ inc $P10
+ set rx824_pos, $P10
+ ge rx824_pos, rx824_eos, rxscan828_done
+ rxscan828_scan:
+ set_addr $I10, rxscan828_loop
+ rx824_cur."!mark_push"(0, rx824_pos, $I10)
+ rxscan828_done:
+.annotate 'line', 393
+ # rx literal "("
+ add $I11, rx824_pos, 1
+ gt $I11, rx824_eos, rx824_fail
+ sub $I11, rx824_pos, rx824_off
+ substr $S10, rx824_tgt, $I11, 1
+ ne $S10, "(", rx824_fail
+ add rx824_pos, 1
+ # rx subrule "arglist" subtype=capture negate=
+ rx824_cur."!cursor_pos"(rx824_pos)
+ $P10 = rx824_cur."arglist"()
+ unless $P10, rx824_fail
+ rx824_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("arglist")
+ rx824_pos = $P10."pos"()
+ # rx literal ")"
+ add $I11, rx824_pos, 1
+ gt $I11, rx824_eos, rx824_fail
+ sub $I11, rx824_pos, rx824_off
+ substr $S10, rx824_tgt, $I11, 1
+ ne $S10, ")", rx824_fail
+ add rx824_pos, 1
+ # rx pass
+ rx824_cur."!cursor_pass"(rx824_pos, "args")
+ rx824_cur."!cursor_debug"("PASS ", "args", " at pos=", rx824_pos)
+ .return (rx824_cur)
+ rx824_restart:
+.annotate 'line', 4
+ rx824_cur."!cursor_debug"("NEXT ", "args")
+ rx824_fail:
+ (rx824_rep, rx824_pos, $I10, $P10) = rx824_cur."!mark_fail"(0)
+ lt rx824_pos, -1, rx824_done
+ eq rx824_pos, -1, rx824_fail
+ jump $I10
+ rx824_done:
+ rx824_cur."!cursor_fail"()
+ rx824_cur."!cursor_debug"("FAIL ", "args")
+ .return (rx824_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__args" :subid("195_1280467477.44751") :method
+.annotate 'line', 4
+ $P826 = self."!PREFIX__!subrule"("arglist", "(")
+ new $P827, "ResizablePMCArray"
+ push $P827, $P826
+ .return ($P827)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "arglist" :subid("196_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx830_tgt
+ .local int rx830_pos
+ .local int rx830_off
+ .local int rx830_eos
+ .local int rx830_rep
+ .local pmc rx830_cur
+ (rx830_cur, rx830_pos, rx830_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx830_cur
+ .local pmc match
+ .lex "$/", match
+ length rx830_eos, rx830_tgt
+ gt rx830_pos, rx830_eos, rx830_done
+ set rx830_off, 0
+ lt rx830_pos, 2, rx830_start
+ sub rx830_off, rx830_pos, 1
+ substr rx830_tgt, rx830_tgt, rx830_off
+ rx830_start:
+ eq $I10, 1, rx830_restart
+ rx830_cur."!cursor_debug"("START ", "arglist")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan834_done
+ goto rxscan834_scan
+ rxscan834_loop:
+ ($P10) = rx830_cur."from"()
+ inc $P10
+ set rx830_pos, $P10
+ ge rx830_pos, rx830_eos, rxscan834_done
+ rxscan834_scan:
+ set_addr $I10, rxscan834_loop
+ rx830_cur."!mark_push"(0, rx830_pos, $I10)
+ rxscan834_done:
+.annotate 'line', 397
+ # rx subrule "ws" subtype=method negate=
+ rx830_cur."!cursor_pos"(rx830_pos)
+ $P10 = rx830_cur."ws"()
+ unless $P10, rx830_fail
+ rx830_pos = $P10."pos"()
+ alt835_0:
+.annotate 'line', 398
+ set_addr $I10, alt835_1
+ rx830_cur."!mark_push"(0, rx830_pos, $I10)
+.annotate 'line', 399
+ # rx subrule "EXPR" subtype=capture negate=
+ rx830_cur."!cursor_pos"(rx830_pos)
+ $P10 = rx830_cur."EXPR"("f=")
+ unless $P10, rx830_fail
+ rx830_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("EXPR")
+ rx830_pos = $P10."pos"()
+ goto alt835_end
+ alt835_1:
+ alt835_end:
+.annotate 'line', 396
# rx pass
- rx829_cur."!cursor_pass"(rx829_pos, "term:sym<name>")
- rx829_cur."!cursor_debug"("PASS ", "term:sym<name>", " at pos=", rx829_pos)
- .return (rx829_cur)
- rx829_fail:
+ rx830_cur."!cursor_pass"(rx830_pos, "arglist")
+ rx830_cur."!cursor_debug"("PASS ", "arglist", " at pos=", rx830_pos)
+ .return (rx830_cur)
+ rx830_restart:
.annotate 'line', 4
- (rx829_rep, rx829_pos, $I10, $P10) = rx829_cur."!mark_fail"(0)
- lt rx829_pos, -1, rx829_done
- eq rx829_pos, -1, rx829_fail
+ rx830_cur."!cursor_debug"("NEXT ", "arglist")
+ rx830_fail:
+ (rx830_rep, rx830_pos, $I10, $P10) = rx830_cur."!mark_fail"(0)
+ lt rx830_pos, -1, rx830_done
+ eq rx830_pos, -1, rx830_fail
jump $I10
- rx829_done:
- rx829_cur."!cursor_fail"()
- rx829_cur."!cursor_debug"("FAIL ", "term:sym<name>")
- .return (rx829_cur)
+ rx830_done:
+ rx830_cur."!cursor_fail"()
+ rx830_cur."!cursor_debug"("FAIL ", "arglist")
+ .return (rx830_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<name>" :subid("189_1275811487.95429") :method
+.sub "!PREFIX__arglist" :subid("197_1280467477.44751") :method
.annotate 'line', 4
- $P831 = self."!PREFIX__!subrule"("name", "")
- new $P832, "ResizablePMCArray"
- push $P832, $P831
- .return ($P832)
+ $P832 = self."!PREFIX__!subrule"("ws", "")
+ new $P833, "ResizablePMCArray"
+ push $P833, $P832
+ .return ($P833)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<pir::op>" :subid("190_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<value>" :subid("198_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
.local string rx837_tgt
.local int rx837_pos
@@ -9822,9 +10614,7 @@
.local int rx837_eos
.local int rx837_rep
.local pmc rx837_cur
- (rx837_cur, rx837_pos, rx837_tgt) = self."!cursor_start"()
- rx837_cur."!cursor_debug"("START ", "term:sym<pir::op>")
- rx837_cur."!cursor_caparray"("args")
+ (rx837_cur, rx837_pos, rx837_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx837_cur
.local pmc match
.lex "$/", match
@@ -9835,172 +10625,150 @@
sub rx837_off, rx837_pos, 1
substr rx837_tgt, rx837_tgt, rx837_off
rx837_start:
+ eq $I10, 1, rx837_restart
+ rx837_cur."!cursor_debug"("START ", "term:sym<value>")
$I10 = self.'from'()
- ne $I10, -1, rxscan840_done
- goto rxscan840_scan
- rxscan840_loop:
+ ne $I10, -1, rxscan841_done
+ goto rxscan841_scan
+ rxscan841_loop:
($P10) = rx837_cur."from"()
inc $P10
set rx837_pos, $P10
- ge rx837_pos, rx837_eos, rxscan840_done
- rxscan840_scan:
- set_addr $I10, rxscan840_loop
+ ge rx837_pos, rx837_eos, rxscan841_done
+ rxscan841_scan:
+ set_addr $I10, rxscan841_loop
rx837_cur."!mark_push"(0, rx837_pos, $I10)
- rxscan840_done:
-.annotate 'line', 388
- # rx literal "pir::"
- add $I11, rx837_pos, 5
- gt $I11, rx837_eos, rx837_fail
- sub $I11, rx837_pos, rx837_off
- substr $S10, rx837_tgt, $I11, 5
- ne $S10, "pir::", rx837_fail
- add rx837_pos, 5
- # rx subcapture "op"
- set_addr $I10, rxcap_841_fail
- rx837_cur."!mark_push"(0, rx837_pos, $I10)
- # rx charclass_q w r 1..-1
- sub $I10, rx837_pos, rx837_off
- find_not_cclass $I11, 8192, rx837_tgt, $I10, rx837_eos
- add $I12, $I10, 1
- lt $I11, $I12, rx837_fail
- add rx837_pos, rx837_off, $I11
- set_addr $I10, rxcap_841_fail
- ($I12, $I11) = rx837_cur."!mark_peek"($I10)
- rx837_cur."!cursor_pos"($I11)
- ($P10) = rx837_cur."!cursor_start"()
- $P10."!cursor_pass"(rx837_pos, "")
- rx837_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("op")
- goto rxcap_841_done
- rxcap_841_fail:
- goto rx837_fail
- rxcap_841_done:
- # rx rxquantr842 ** 0..1
- set_addr $I843, rxquantr842_done
- rx837_cur."!mark_push"(0, rx837_pos, $I843)
- rxquantr842_loop:
- # rx subrule "args" subtype=capture negate=
+ rxscan841_done:
+.annotate 'line', 405
+ # rx subrule "value" subtype=capture negate=
rx837_cur."!cursor_pos"(rx837_pos)
- $P10 = rx837_cur."args"()
+ $P10 = rx837_cur."value"()
unless $P10, rx837_fail
rx837_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("args")
+ $P10."!cursor_names"("value")
rx837_pos = $P10."pos"()
- (rx837_rep) = rx837_cur."!mark_commit"($I843)
- rxquantr842_done:
-.annotate 'line', 387
# rx pass
- rx837_cur."!cursor_pass"(rx837_pos, "term:sym<pir::op>")
- rx837_cur."!cursor_debug"("PASS ", "term:sym<pir::op>", " at pos=", rx837_pos)
+ rx837_cur."!cursor_pass"(rx837_pos, "term:sym<value>")
+ rx837_cur."!cursor_debug"("PASS ", "term:sym<value>", " at pos=", rx837_pos)
.return (rx837_cur)
- rx837_fail:
+ rx837_restart:
.annotate 'line', 4
+ rx837_cur."!cursor_debug"("NEXT ", "term:sym<value>")
+ rx837_fail:
(rx837_rep, rx837_pos, $I10, $P10) = rx837_cur."!mark_fail"(0)
lt rx837_pos, -1, rx837_done
eq rx837_pos, -1, rx837_fail
jump $I10
rx837_done:
rx837_cur."!cursor_fail"()
- rx837_cur."!cursor_debug"("FAIL ", "term:sym<pir::op>")
+ rx837_cur."!cursor_debug"("FAIL ", "term:sym<value>")
.return (rx837_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<pir::op>" :subid("191_1275811487.95429") :method
+.sub "!PREFIX__term:sym<value>" :subid("199_1280467477.44751") :method
.annotate 'line', 4
- new $P839, "ResizablePMCArray"
- push $P839, "pir::"
- .return ($P839)
+ $P839 = self."!PREFIX__!subrule"("value", "")
+ new $P840, "ResizablePMCArray"
+ push $P840, $P839
+ .return ($P840)
.end
.namespace ["NQP";"Grammar"]
-.sub "args" :subid("192_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx845_tgt
- .local int rx845_pos
- .local int rx845_off
- .local int rx845_eos
- .local int rx845_rep
- .local pmc rx845_cur
- (rx845_cur, rx845_pos, rx845_tgt) = self."!cursor_start"()
- rx845_cur."!cursor_debug"("START ", "args")
- .lex unicode:"$\x{a2}", rx845_cur
- .local pmc match
- .lex "$/", match
- length rx845_eos, rx845_tgt
- gt rx845_pos, rx845_eos, rx845_done
- set rx845_off, 0
- lt rx845_pos, 2, rx845_start
- sub rx845_off, rx845_pos, 1
- substr rx845_tgt, rx845_tgt, rx845_off
- rx845_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan849_done
- goto rxscan849_scan
- rxscan849_loop:
- ($P10) = rx845_cur."from"()
- inc $P10
- set rx845_pos, $P10
- ge rx845_pos, rx845_eos, rxscan849_done
- rxscan849_scan:
- set_addr $I10, rxscan849_loop
- rx845_cur."!mark_push"(0, rx845_pos, $I10)
- rxscan849_done:
-.annotate 'line', 392
- # rx literal "("
- add $I11, rx845_pos, 1
- gt $I11, rx845_eos, rx845_fail
- sub $I11, rx845_pos, rx845_off
- substr $S10, rx845_tgt, $I11, 1
- ne $S10, "(", rx845_fail
- add rx845_pos, 1
- # rx subrule "arglist" subtype=capture negate=
- rx845_cur."!cursor_pos"(rx845_pos)
- $P10 = rx845_cur."arglist"()
- unless $P10, rx845_fail
- rx845_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("arglist")
- rx845_pos = $P10."pos"()
- # rx literal ")"
- add $I11, rx845_pos, 1
- gt $I11, rx845_eos, rx845_fail
- sub $I11, rx845_pos, rx845_off
- substr $S10, rx845_tgt, $I11, 1
- ne $S10, ")", rx845_fail
- add rx845_pos, 1
+.sub "value" :subid("200_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx843_tgt
+ .local int rx843_pos
+ .local int rx843_off
+ .local int rx843_eos
+ .local int rx843_rep
+ .local pmc rx843_cur
+ (rx843_cur, rx843_pos, rx843_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx843_cur
+ .local pmc match
+ .lex "$/", match
+ length rx843_eos, rx843_tgt
+ gt rx843_pos, rx843_eos, rx843_done
+ set rx843_off, 0
+ lt rx843_pos, 2, rx843_start
+ sub rx843_off, rx843_pos, 1
+ substr rx843_tgt, rx843_tgt, rx843_off
+ rx843_start:
+ eq $I10, 1, rx843_restart
+ rx843_cur."!cursor_debug"("START ", "value")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan848_done
+ goto rxscan848_scan
+ rxscan848_loop:
+ ($P10) = rx843_cur."from"()
+ inc $P10
+ set rx843_pos, $P10
+ ge rx843_pos, rx843_eos, rxscan848_done
+ rxscan848_scan:
+ set_addr $I10, rxscan848_loop
+ rx843_cur."!mark_push"(0, rx843_pos, $I10)
+ rxscan848_done:
+ alt849_0:
+.annotate 'line', 407
+ set_addr $I10, alt849_1
+ rx843_cur."!mark_push"(0, rx843_pos, $I10)
+.annotate 'line', 408
+ # rx subrule "quote" subtype=capture negate=
+ rx843_cur."!cursor_pos"(rx843_pos)
+ $P10 = rx843_cur."quote"()
+ unless $P10, rx843_fail
+ rx843_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quote")
+ rx843_pos = $P10."pos"()
+ goto alt849_end
+ alt849_1:
+.annotate 'line', 409
+ # rx subrule "number" subtype=capture negate=
+ rx843_cur."!cursor_pos"(rx843_pos)
+ $P10 = rx843_cur."number"()
+ unless $P10, rx843_fail
+ rx843_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("number")
+ rx843_pos = $P10."pos"()
+ alt849_end:
+.annotate 'line', 407
# rx pass
- rx845_cur."!cursor_pass"(rx845_pos, "args")
- rx845_cur."!cursor_debug"("PASS ", "args", " at pos=", rx845_pos)
- .return (rx845_cur)
- rx845_fail:
+ rx843_cur."!cursor_pass"(rx843_pos, "value")
+ rx843_cur."!cursor_debug"("PASS ", "value", " at pos=", rx843_pos)
+ .return (rx843_cur)
+ rx843_restart:
.annotate 'line', 4
- (rx845_rep, rx845_pos, $I10, $P10) = rx845_cur."!mark_fail"(0)
- lt rx845_pos, -1, rx845_done
- eq rx845_pos, -1, rx845_fail
+ rx843_cur."!cursor_debug"("NEXT ", "value")
+ rx843_fail:
+ (rx843_rep, rx843_pos, $I10, $P10) = rx843_cur."!mark_fail"(0)
+ lt rx843_pos, -1, rx843_done
+ eq rx843_pos, -1, rx843_fail
jump $I10
- rx845_done:
- rx845_cur."!cursor_fail"()
- rx845_cur."!cursor_debug"("FAIL ", "args")
- .return (rx845_cur)
+ rx843_done:
+ rx843_cur."!cursor_fail"()
+ rx843_cur."!cursor_debug"("FAIL ", "value")
+ .return (rx843_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__args" :subid("193_1275811487.95429") :method
+.sub "!PREFIX__value" :subid("201_1280467477.44751") :method
.annotate 'line', 4
- $P847 = self."!PREFIX__!subrule"("arglist", "(")
- new $P848, "ResizablePMCArray"
- push $P848, $P847
- .return ($P848)
+ $P845 = self."!PREFIX__!subrule"("number", "")
+ $P846 = self."!PREFIX__!subrule"("quote", "")
+ new $P847, "ResizablePMCArray"
+ push $P847, $P845
+ push $P847, $P846
+ .return ($P847)
.end
.namespace ["NQP";"Grammar"]
-.sub "arglist" :subid("194_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "number" :subid("202_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
.local string rx851_tgt
.local int rx851_pos
@@ -10008,8 +10776,7 @@
.local int rx851_eos
.local int rx851_rep
.local pmc rx851_cur
- (rx851_cur, rx851_pos, rx851_tgt) = self."!cursor_start"()
- rx851_cur."!cursor_debug"("START ", "arglist")
+ (rx851_cur, rx851_pos, rx851_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx851_cur
.local pmc match
.lex "$/", match
@@ -10020,361 +10787,476 @@
sub rx851_off, rx851_pos, 1
substr rx851_tgt, rx851_tgt, rx851_off
rx851_start:
+ eq $I10, 1, rx851_restart
+ rx851_cur."!cursor_debug"("START ", "number")
$I10 = self.'from'()
- ne $I10, -1, rxscan855_done
- goto rxscan855_scan
- rxscan855_loop:
+ ne $I10, -1, rxscan854_done
+ goto rxscan854_scan
+ rxscan854_loop:
($P10) = rx851_cur."from"()
inc $P10
set rx851_pos, $P10
- ge rx851_pos, rx851_eos, rxscan855_done
- rxscan855_scan:
- set_addr $I10, rxscan855_loop
+ ge rx851_pos, rx851_eos, rxscan854_done
+ rxscan854_scan:
+ set_addr $I10, rxscan854_loop
rx851_cur."!mark_push"(0, rx851_pos, $I10)
- rxscan855_done:
-.annotate 'line', 396
- # rx subrule "ws" subtype=method negate=
+ rxscan854_done:
+.annotate 'line', 413
+ # 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
+ sub $I10, rx851_pos, rx851_off
+ 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:
+ set_addr $I10, rxcap_856_fail
+ ($I12, $I11) = rx851_cur."!mark_peek"($I10)
+ rx851_cur."!cursor_pos"($I11)
+ ($P10) = rx851_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx851_pos, "")
+ rx851_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sign")
+ goto rxcap_856_done
+ rxcap_856_fail:
+ goto rx851_fail
+ rxcap_856_done:
+ alt857_0:
+.annotate 'line', 414
+ set_addr $I10, alt857_1
+ rx851_cur."!mark_push"(0, rx851_pos, $I10)
+ # rx subrule "dec_number" subtype=capture negate=
rx851_cur."!cursor_pos"(rx851_pos)
- $P10 = rx851_cur."ws"()
+ $P10 = rx851_cur."dec_number"()
unless $P10, rx851_fail
+ rx851_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("dec_number")
rx851_pos = $P10."pos"()
- alt856_0:
-.annotate 'line', 397
- set_addr $I10, alt856_1
- rx851_cur."!mark_push"(0, rx851_pos, $I10)
-.annotate 'line', 398
- # rx subrule "EXPR" subtype=capture negate=
+ goto alt857_end
+ alt857_1:
+ # rx subrule "integer" subtype=capture negate=
rx851_cur."!cursor_pos"(rx851_pos)
- $P10 = rx851_cur."EXPR"("f=")
+ $P10 = rx851_cur."integer"()
unless $P10, rx851_fail
rx851_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("EXPR")
+ $P10."!cursor_names"("integer")
rx851_pos = $P10."pos"()
- goto alt856_end
- alt856_1:
- alt856_end:
-.annotate 'line', 395
+ alt857_end:
+.annotate 'line', 412
# rx pass
- rx851_cur."!cursor_pass"(rx851_pos, "arglist")
- rx851_cur."!cursor_debug"("PASS ", "arglist", " at pos=", rx851_pos)
+ rx851_cur."!cursor_pass"(rx851_pos, "number")
+ rx851_cur."!cursor_debug"("PASS ", "number", " at pos=", rx851_pos)
.return (rx851_cur)
- rx851_fail:
+ rx851_restart:
.annotate 'line', 4
+ rx851_cur."!cursor_debug"("NEXT ", "number")
+ rx851_fail:
(rx851_rep, rx851_pos, $I10, $P10) = rx851_cur."!mark_fail"(0)
lt rx851_pos, -1, rx851_done
eq rx851_pos, -1, rx851_fail
jump $I10
rx851_done:
rx851_cur."!cursor_fail"()
- rx851_cur."!cursor_debug"("FAIL ", "arglist")
+ rx851_cur."!cursor_debug"("FAIL ", "number")
.return (rx851_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__arglist" :subid("195_1275811487.95429") :method
+.sub "!PREFIX__number" :subid("203_1280467477.44751") :method
.annotate 'line', 4
- $P853 = self."!PREFIX__!subrule"("ws", "")
- new $P854, "ResizablePMCArray"
- push $P854, $P853
- .return ($P854)
+ new $P853, "ResizablePMCArray"
+ push $P853, ""
+ .return ($P853)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<value>" :subid("196_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx858_tgt
- .local int rx858_pos
- .local int rx858_off
- .local int rx858_eos
- .local int rx858_rep
- .local pmc rx858_cur
- (rx858_cur, rx858_pos, rx858_tgt) = self."!cursor_start"()
- rx858_cur."!cursor_debug"("START ", "term:sym<value>")
- .lex unicode:"$\x{a2}", rx858_cur
- .local pmc match
- .lex "$/", match
- length rx858_eos, rx858_tgt
- gt rx858_pos, rx858_eos, rx858_done
- set rx858_off, 0
- lt rx858_pos, 2, rx858_start
- sub rx858_off, rx858_pos, 1
- substr rx858_tgt, rx858_tgt, rx858_off
- rx858_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan862_done
- goto rxscan862_scan
- rxscan862_loop:
- ($P10) = rx858_cur."from"()
- inc $P10
- set rx858_pos, $P10
- ge rx858_pos, rx858_eos, rxscan862_done
- rxscan862_scan:
- set_addr $I10, rxscan862_loop
- rx858_cur."!mark_push"(0, rx858_pos, $I10)
- rxscan862_done:
-.annotate 'line', 404
- # rx subrule "value" subtype=capture negate=
- rx858_cur."!cursor_pos"(rx858_pos)
- $P10 = rx858_cur."value"()
- unless $P10, rx858_fail
- rx858_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("value")
- rx858_pos = $P10."pos"()
- # rx pass
- rx858_cur."!cursor_pass"(rx858_pos, "term:sym<value>")
- rx858_cur."!cursor_debug"("PASS ", "term:sym<value>", " at pos=", rx858_pos)
- .return (rx858_cur)
- rx858_fail:
-.annotate 'line', 4
- (rx858_rep, rx858_pos, $I10, $P10) = rx858_cur."!mark_fail"(0)
- lt rx858_pos, -1, rx858_done
- eq rx858_pos, -1, rx858_fail
- jump $I10
- rx858_done:
- rx858_cur."!cursor_fail"()
- rx858_cur."!cursor_debug"("FAIL ", "term:sym<value>")
- .return (rx858_cur)
- .return ()
+.sub "quote" :subid("204_1280467477.44751") :method
+.annotate 'line', 417
+ $P859 = self."!protoregex"("quote")
+ .return ($P859)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<value>" :subid("197_1275811487.95429") :method
-.annotate 'line', 4
- $P860 = self."!PREFIX__!subrule"("value", "")
- new $P861, "ResizablePMCArray"
- push $P861, $P860
+.sub "!PREFIX__quote" :subid("205_1280467477.44751") :method
+.annotate 'line', 417
+ $P861 = self."!PREFIX__!protoregex"("quote")
.return ($P861)
.end
.namespace ["NQP";"Grammar"]
-.sub "value" :subid("198_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "quote:sym<apos>" :subid("206_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx864_tgt
- .local int rx864_pos
- .local int rx864_off
- .local int rx864_eos
- .local int rx864_rep
- .local pmc rx864_cur
- (rx864_cur, rx864_pos, rx864_tgt) = self."!cursor_start"()
- rx864_cur."!cursor_debug"("START ", "value")
- .lex unicode:"$\x{a2}", rx864_cur
- .local pmc match
- .lex "$/", match
- length rx864_eos, rx864_tgt
- gt rx864_pos, rx864_eos, rx864_done
- set rx864_off, 0
- lt rx864_pos, 2, rx864_start
- sub rx864_off, rx864_pos, 1
- substr rx864_tgt, rx864_tgt, rx864_off
- rx864_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan869_done
- goto rxscan869_scan
- rxscan869_loop:
- ($P10) = rx864_cur."from"()
- inc $P10
- set rx864_pos, $P10
- ge rx864_pos, rx864_eos, rxscan869_done
- rxscan869_scan:
- set_addr $I10, rxscan869_loop
- rx864_cur."!mark_push"(0, rx864_pos, $I10)
- rxscan869_done:
- alt870_0:
-.annotate 'line', 406
- set_addr $I10, alt870_1
- rx864_cur."!mark_push"(0, rx864_pos, $I10)
-.annotate 'line', 407
- # rx subrule "quote" subtype=capture negate=
- rx864_cur."!cursor_pos"(rx864_pos)
- $P10 = rx864_cur."quote"()
- unless $P10, rx864_fail
- rx864_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote")
- rx864_pos = $P10."pos"()
- goto alt870_end
- alt870_1:
-.annotate 'line', 408
- # rx subrule "number" subtype=capture negate=
- rx864_cur."!cursor_pos"(rx864_pos)
- $P10 = rx864_cur."number"()
- unless $P10, rx864_fail
- rx864_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("number")
- rx864_pos = $P10."pos"()
- alt870_end:
-.annotate 'line', 406
+ .local string rx863_tgt
+ .local int rx863_pos
+ .local int rx863_off
+ .local int rx863_eos
+ .local int rx863_rep
+ .local pmc rx863_cur
+ (rx863_cur, rx863_pos, rx863_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx863_cur
+ .local pmc match
+ .lex "$/", match
+ length rx863_eos, rx863_tgt
+ gt rx863_pos, rx863_eos, rx863_done
+ set rx863_off, 0
+ lt rx863_pos, 2, rx863_start
+ sub rx863_off, rx863_pos, 1
+ substr rx863_tgt, rx863_tgt, rx863_off
+ rx863_start:
+ eq $I10, 1, rx863_restart
+ rx863_cur."!cursor_debug"("START ", "quote:sym<apos>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan866_done
+ goto rxscan866_scan
+ rxscan866_loop:
+ ($P10) = rx863_cur."from"()
+ inc $P10
+ set rx863_pos, $P10
+ ge rx863_pos, rx863_eos, rxscan866_done
+ rxscan866_scan:
+ set_addr $I10, rxscan866_loop
+ rx863_cur."!mark_push"(0, rx863_pos, $I10)
+ rxscan866_done:
+.annotate 'line', 418
+ # rx enumcharlist negate=0 zerowidth
+ ge rx863_pos, rx863_eos, rx863_fail
+ sub $I10, rx863_pos, rx863_off
+ substr $S10, rx863_tgt, $I10, 1
+ index $I11, "'", $S10
+ lt $I11, 0, rx863_fail
+ # rx subrule "quote_EXPR" subtype=capture negate=
+ rx863_cur."!cursor_pos"(rx863_pos)
+ $P10 = rx863_cur."quote_EXPR"(":q")
+ unless $P10, rx863_fail
+ rx863_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quote_EXPR")
+ rx863_pos = $P10."pos"()
# rx pass
- rx864_cur."!cursor_pass"(rx864_pos, "value")
- rx864_cur."!cursor_debug"("PASS ", "value", " at pos=", rx864_pos)
- .return (rx864_cur)
- rx864_fail:
+ rx863_cur."!cursor_pass"(rx863_pos, "quote:sym<apos>")
+ rx863_cur."!cursor_debug"("PASS ", "quote:sym<apos>", " at pos=", rx863_pos)
+ .return (rx863_cur)
+ rx863_restart:
.annotate 'line', 4
- (rx864_rep, rx864_pos, $I10, $P10) = rx864_cur."!mark_fail"(0)
- lt rx864_pos, -1, rx864_done
- eq rx864_pos, -1, rx864_fail
+ rx863_cur."!cursor_debug"("NEXT ", "quote:sym<apos>")
+ rx863_fail:
+ (rx863_rep, rx863_pos, $I10, $P10) = rx863_cur."!mark_fail"(0)
+ lt rx863_pos, -1, rx863_done
+ eq rx863_pos, -1, rx863_fail
jump $I10
- rx864_done:
- rx864_cur."!cursor_fail"()
- rx864_cur."!cursor_debug"("FAIL ", "value")
- .return (rx864_cur)
+ rx863_done:
+ rx863_cur."!cursor_fail"()
+ rx863_cur."!cursor_debug"("FAIL ", "quote:sym<apos>")
+ .return (rx863_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__value" :subid("199_1275811487.95429") :method
+.sub "!PREFIX__quote:sym<apos>" :subid("207_1280467477.44751") :method
.annotate 'line', 4
- $P866 = self."!PREFIX__!subrule"("number", "")
- $P867 = self."!PREFIX__!subrule"("quote", "")
- new $P868, "ResizablePMCArray"
- push $P868, $P866
- push $P868, $P867
- .return ($P868)
+ new $P865, "ResizablePMCArray"
+ push $P865, "'"
+ .return ($P865)
.end
.namespace ["NQP";"Grammar"]
-.sub "number" :subid("200_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "quote:sym<dblq>" :subid("208_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx872_tgt
- .local int rx872_pos
- .local int rx872_off
- .local int rx872_eos
- .local int rx872_rep
- .local pmc rx872_cur
- (rx872_cur, rx872_pos, rx872_tgt) = self."!cursor_start"()
- rx872_cur."!cursor_debug"("START ", "number")
- .lex unicode:"$\x{a2}", rx872_cur
+ .local string rx868_tgt
+ .local int rx868_pos
+ .local int rx868_off
+ .local int rx868_eos
+ .local int rx868_rep
+ .local pmc rx868_cur
+ (rx868_cur, rx868_pos, rx868_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx868_cur
.local pmc match
.lex "$/", match
- length rx872_eos, rx872_tgt
- gt rx872_pos, rx872_eos, rx872_done
- set rx872_off, 0
- lt rx872_pos, 2, rx872_start
- sub rx872_off, rx872_pos, 1
- substr rx872_tgt, rx872_tgt, rx872_off
- rx872_start:
+ length rx868_eos, rx868_tgt
+ gt rx868_pos, rx868_eos, rx868_done
+ set rx868_off, 0
+ lt rx868_pos, 2, rx868_start
+ sub rx868_off, rx868_pos, 1
+ substr rx868_tgt, rx868_tgt, rx868_off
+ rx868_start:
+ eq $I10, 1, rx868_restart
+ rx868_cur."!cursor_debug"("START ", "quote:sym<dblq>")
$I10 = self.'from'()
- ne $I10, -1, rxscan875_done
- goto rxscan875_scan
- rxscan875_loop:
- ($P10) = rx872_cur."from"()
+ ne $I10, -1, rxscan871_done
+ goto rxscan871_scan
+ rxscan871_loop:
+ ($P10) = rx868_cur."from"()
inc $P10
- set rx872_pos, $P10
- ge rx872_pos, rx872_eos, rxscan875_done
- rxscan875_scan:
- set_addr $I10, rxscan875_loop
- rx872_cur."!mark_push"(0, rx872_pos, $I10)
- rxscan875_done:
-.annotate 'line', 412
- # rx subcapture "sign"
- set_addr $I10, rxcap_878_fail
- rx872_cur."!mark_push"(0, rx872_pos, $I10)
- # rx rxquantr876 ** 0..1
- set_addr $I877, rxquantr876_done
- rx872_cur."!mark_push"(0, rx872_pos, $I877)
- rxquantr876_loop:
- # rx enumcharlist negate=0
- ge rx872_pos, rx872_eos, rx872_fail
- sub $I10, rx872_pos, rx872_off
- substr $S10, rx872_tgt, $I10, 1
- index $I11, "+-", $S10
- lt $I11, 0, rx872_fail
- inc rx872_pos
- (rx872_rep) = rx872_cur."!mark_commit"($I877)
- rxquantr876_done:
- set_addr $I10, rxcap_878_fail
- ($I12, $I11) = rx872_cur."!mark_peek"($I10)
- rx872_cur."!cursor_pos"($I11)
- ($P10) = rx872_cur."!cursor_start"()
- $P10."!cursor_pass"(rx872_pos, "")
- rx872_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sign")
- goto rxcap_878_done
- rxcap_878_fail:
- goto rx872_fail
- rxcap_878_done:
- alt879_0:
-.annotate 'line', 413
- set_addr $I10, alt879_1
- rx872_cur."!mark_push"(0, rx872_pos, $I10)
- # rx subrule "dec_number" subtype=capture negate=
- rx872_cur."!cursor_pos"(rx872_pos)
- $P10 = rx872_cur."dec_number"()
- unless $P10, rx872_fail
- rx872_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("dec_number")
- rx872_pos = $P10."pos"()
- goto alt879_end
- alt879_1:
- # rx subrule "integer" subtype=capture negate=
- rx872_cur."!cursor_pos"(rx872_pos)
- $P10 = rx872_cur."integer"()
- unless $P10, rx872_fail
- rx872_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("integer")
- rx872_pos = $P10."pos"()
- alt879_end:
-.annotate 'line', 411
+ set rx868_pos, $P10
+ ge rx868_pos, rx868_eos, rxscan871_done
+ rxscan871_scan:
+ set_addr $I10, rxscan871_loop
+ rx868_cur."!mark_push"(0, rx868_pos, $I10)
+ rxscan871_done:
+.annotate 'line', 419
+ # rx enumcharlist negate=0 zerowidth
+ ge rx868_pos, rx868_eos, rx868_fail
+ sub $I10, rx868_pos, rx868_off
+ substr $S10, rx868_tgt, $I10, 1
+ index $I11, "\"", $S10
+ lt $I11, 0, rx868_fail
+ # rx subrule "quote_EXPR" subtype=capture negate=
+ rx868_cur."!cursor_pos"(rx868_pos)
+ $P10 = rx868_cur."quote_EXPR"(":qq")
+ unless $P10, rx868_fail
+ rx868_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quote_EXPR")
+ rx868_pos = $P10."pos"()
# rx pass
- rx872_cur."!cursor_pass"(rx872_pos, "number")
- rx872_cur."!cursor_debug"("PASS ", "number", " at pos=", rx872_pos)
- .return (rx872_cur)
- rx872_fail:
+ rx868_cur."!cursor_pass"(rx868_pos, "quote:sym<dblq>")
+ rx868_cur."!cursor_debug"("PASS ", "quote:sym<dblq>", " at pos=", rx868_pos)
+ .return (rx868_cur)
+ rx868_restart:
.annotate 'line', 4
- (rx872_rep, rx872_pos, $I10, $P10) = rx872_cur."!mark_fail"(0)
- lt rx872_pos, -1, rx872_done
- eq rx872_pos, -1, rx872_fail
+ rx868_cur."!cursor_debug"("NEXT ", "quote:sym<dblq>")
+ rx868_fail:
+ (rx868_rep, rx868_pos, $I10, $P10) = rx868_cur."!mark_fail"(0)
+ lt rx868_pos, -1, rx868_done
+ eq rx868_pos, -1, rx868_fail
jump $I10
- rx872_done:
- rx872_cur."!cursor_fail"()
- rx872_cur."!cursor_debug"("FAIL ", "number")
- .return (rx872_cur)
+ rx868_done:
+ rx868_cur."!cursor_fail"()
+ rx868_cur."!cursor_debug"("FAIL ", "quote:sym<dblq>")
+ .return (rx868_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__number" :subid("201_1275811487.95429") :method
+.sub "!PREFIX__quote:sym<dblq>" :subid("209_1280467477.44751") :method
.annotate 'line', 4
- new $P874, "ResizablePMCArray"
- push $P874, ""
- .return ($P874)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "quote" :subid("202_1275811487.95429") :method
-.annotate 'line', 416
- $P881 = self."!protoregex"("quote")
- .return ($P881)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote" :subid("203_1275811487.95429") :method
-.annotate 'line', 416
- $P883 = self."!PREFIX__!protoregex"("quote")
- .return ($P883)
+ new $P870, "ResizablePMCArray"
+ push $P870, "\""
+ .return ($P870)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<apos>" :subid("204_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "quote:sym<q>" :subid("210_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx885_tgt
- .local int rx885_pos
- .local int rx885_off
- .local int rx885_eos
- .local int rx885_rep
+ .local string rx873_tgt
+ .local int rx873_pos
+ .local int rx873_off
+ .local int rx873_eos
+ .local int rx873_rep
+ .local pmc rx873_cur
+ (rx873_cur, rx873_pos, rx873_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx873_cur
+ .local pmc match
+ .lex "$/", match
+ length rx873_eos, rx873_tgt
+ gt rx873_pos, rx873_eos, rx873_done
+ set rx873_off, 0
+ lt rx873_pos, 2, rx873_start
+ sub rx873_off, rx873_pos, 1
+ substr rx873_tgt, rx873_tgt, rx873_off
+ rx873_start:
+ eq $I10, 1, rx873_restart
+ rx873_cur."!cursor_debug"("START ", "quote:sym<q>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan877_done
+ goto rxscan877_scan
+ rxscan877_loop:
+ ($P10) = rx873_cur."from"()
+ inc $P10
+ set rx873_pos, $P10
+ ge rx873_pos, rx873_eos, rxscan877_done
+ rxscan877_scan:
+ set_addr $I10, rxscan877_loop
+ rx873_cur."!mark_push"(0, rx873_pos, $I10)
+ rxscan877_done:
+.annotate 'line', 420
+ # rx literal "q"
+ 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
+ add rx873_pos, 1
+ # rxanchor rwb
+ le rx873_pos, 0, rx873_fail
+ sub $I10, rx873_pos, rx873_off
+ is_cclass $I11, 8192, rx873_tgt, $I10
+ if $I11, rx873_fail
+ dec $I10
+ is_cclass $I11, 8192, rx873_tgt, $I10
+ unless $I11, rx873_fail
+ # rx enumcharlist negate=1 zerowidth
+ ge rx873_pos, rx873_eos, rx873_fail
+ sub $I10, rx873_pos, rx873_off
+ substr $S10, rx873_tgt, $I10, 1
+ index $I11, "(", $S10
+ ge $I11, 0, rx873_fail
+ # rx subrule "ws" subtype=method negate=
+ rx873_cur."!cursor_pos"(rx873_pos)
+ $P10 = rx873_cur."ws"()
+ unless $P10, rx873_fail
+ rx873_pos = $P10."pos"()
+ # rx subrule "quote_EXPR" subtype=capture negate=
+ rx873_cur."!cursor_pos"(rx873_pos)
+ $P10 = rx873_cur."quote_EXPR"(":q")
+ unless $P10, rx873_fail
+ rx873_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quote_EXPR")
+ 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)
+ .return (rx873_cur)
+ rx873_restart:
+.annotate 'line', 4
+ rx873_cur."!cursor_debug"("NEXT ", "quote:sym<q>")
+ rx873_fail:
+ (rx873_rep, rx873_pos, $I10, $P10) = rx873_cur."!mark_fail"(0)
+ lt rx873_pos, -1, rx873_done
+ eq rx873_pos, -1, rx873_fail
+ jump $I10
+ rx873_done:
+ rx873_cur."!cursor_fail"()
+ rx873_cur."!cursor_debug"("FAIL ", "quote:sym<q>")
+ .return (rx873_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__quote:sym<q>" :subid("211_1280467477.44751") :method
+.annotate 'line', 4
+ $P875 = self."!PREFIX__!subrule"("ws", "q")
+ new $P876, "ResizablePMCArray"
+ push $P876, $P875
+ .return ($P876)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "quote:sym<qq>" :subid("212_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx879_tgt
+ .local int rx879_pos
+ .local int rx879_off
+ .local int rx879_eos
+ .local int rx879_rep
+ .local pmc rx879_cur
+ (rx879_cur, rx879_pos, rx879_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx879_cur
+ .local pmc match
+ .lex "$/", match
+ length rx879_eos, rx879_tgt
+ gt rx879_pos, rx879_eos, rx879_done
+ set rx879_off, 0
+ lt rx879_pos, 2, rx879_start
+ sub rx879_off, rx879_pos, 1
+ substr rx879_tgt, rx879_tgt, rx879_off
+ rx879_start:
+ eq $I10, 1, rx879_restart
+ rx879_cur."!cursor_debug"("START ", "quote:sym<qq>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan883_done
+ goto rxscan883_scan
+ rxscan883_loop:
+ ($P10) = rx879_cur."from"()
+ inc $P10
+ set rx879_pos, $P10
+ ge rx879_pos, rx879_eos, rxscan883_done
+ rxscan883_scan:
+ set_addr $I10, rxscan883_loop
+ rx879_cur."!mark_push"(0, rx879_pos, $I10)
+ rxscan883_done:
+.annotate 'line', 421
+ # rx literal "qq"
+ add $I11, rx879_pos, 2
+ gt $I11, rx879_eos, rx879_fail
+ sub $I11, rx879_pos, rx879_off
+ substr $S10, rx879_tgt, $I11, 2
+ ne $S10, "qq", rx879_fail
+ add rx879_pos, 2
+ # rxanchor rwb
+ le rx879_pos, 0, rx879_fail
+ sub $I10, rx879_pos, rx879_off
+ is_cclass $I11, 8192, rx879_tgt, $I10
+ if $I11, rx879_fail
+ dec $I10
+ is_cclass $I11, 8192, rx879_tgt, $I10
+ unless $I11, rx879_fail
+ # rx enumcharlist negate=1 zerowidth
+ ge rx879_pos, rx879_eos, rx879_fail
+ sub $I10, rx879_pos, rx879_off
+ substr $S10, rx879_tgt, $I10, 1
+ index $I11, "(", $S10
+ ge $I11, 0, rx879_fail
+ # rx subrule "ws" subtype=method negate=
+ rx879_cur."!cursor_pos"(rx879_pos)
+ $P10 = rx879_cur."ws"()
+ unless $P10, rx879_fail
+ rx879_pos = $P10."pos"()
+ # rx subrule "quote_EXPR" subtype=capture negate=
+ rx879_cur."!cursor_pos"(rx879_pos)
+ $P10 = rx879_cur."quote_EXPR"(":qq")
+ unless $P10, rx879_fail
+ rx879_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quote_EXPR")
+ 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)
+ .return (rx879_cur)
+ rx879_restart:
+.annotate 'line', 4
+ rx879_cur."!cursor_debug"("NEXT ", "quote:sym<qq>")
+ rx879_fail:
+ (rx879_rep, rx879_pos, $I10, $P10) = rx879_cur."!mark_fail"(0)
+ lt rx879_pos, -1, rx879_done
+ eq rx879_pos, -1, rx879_fail
+ jump $I10
+ rx879_done:
+ rx879_cur."!cursor_fail"()
+ rx879_cur."!cursor_debug"("FAIL ", "quote:sym<qq>")
+ .return (rx879_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__quote:sym<qq>" :subid("213_1280467477.44751") :method
+.annotate 'line', 4
+ $P881 = self."!PREFIX__!subrule"("ws", "qq")
+ new $P882, "ResizablePMCArray"
+ push $P882, $P881
+ .return ($P882)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "quote:sym<Q>" :subid("214_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx885_tgt
+ .local int rx885_pos
+ .local int rx885_off
+ .local int rx885_eos
+ .local int rx885_rep
.local pmc rx885_cur
- (rx885_cur, rx885_pos, rx885_tgt) = self."!cursor_start"()
- rx885_cur."!cursor_debug"("START ", "quote:sym<apos>")
+ (rx885_cur, rx885_pos, rx885_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx885_cur
.local pmc match
.lex "$/", match
@@ -10385,420 +11267,431 @@
sub rx885_off, rx885_pos, 1
substr rx885_tgt, rx885_tgt, rx885_off
rx885_start:
+ eq $I10, 1, rx885_restart
+ rx885_cur."!cursor_debug"("START ", "quote:sym<Q>")
$I10 = self.'from'()
- ne $I10, -1, rxscan888_done
- goto rxscan888_scan
- rxscan888_loop:
+ ne $I10, -1, rxscan889_done
+ goto rxscan889_scan
+ rxscan889_loop:
($P10) = rx885_cur."from"()
inc $P10
set rx885_pos, $P10
- ge rx885_pos, rx885_eos, rxscan888_done
- rxscan888_scan:
- set_addr $I10, rxscan888_loop
+ ge rx885_pos, rx885_eos, rxscan889_done
+ rxscan889_scan:
+ set_addr $I10, rxscan889_loop
rx885_cur."!mark_push"(0, rx885_pos, $I10)
- rxscan888_done:
-.annotate 'line', 417
- # rx enumcharlist negate=0 zerowidth
+ rxscan889_done:
+.annotate 'line', 422
+ # rx literal "Q"
+ 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
+ add rx885_pos, 1
+ # rxanchor rwb
+ le rx885_pos, 0, rx885_fail
+ sub $I10, rx885_pos, rx885_off
+ is_cclass $I11, 8192, rx885_tgt, $I10
+ if $I11, rx885_fail
+ dec $I10
+ is_cclass $I11, 8192, rx885_tgt, $I10
+ unless $I11, rx885_fail
+ # rx enumcharlist negate=1 zerowidth
ge rx885_pos, rx885_eos, rx885_fail
sub $I10, rx885_pos, rx885_off
substr $S10, rx885_tgt, $I10, 1
- index $I11, "'", $S10
- lt $I11, 0, rx885_fail
+ index $I11, "(", $S10
+ ge $I11, 0, rx885_fail
+ # rx subrule "ws" subtype=method negate=
+ rx885_cur."!cursor_pos"(rx885_pos)
+ $P10 = rx885_cur."ws"()
+ unless $P10, rx885_fail
+ rx885_pos = $P10."pos"()
# rx subrule "quote_EXPR" subtype=capture negate=
rx885_cur."!cursor_pos"(rx885_pos)
- $P10 = rx885_cur."quote_EXPR"(":q")
+ $P10 = rx885_cur."quote_EXPR"()
unless $P10, rx885_fail
rx885_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
rx885_pos = $P10."pos"()
# rx pass
- rx885_cur."!cursor_pass"(rx885_pos, "quote:sym<apos>")
- rx885_cur."!cursor_debug"("PASS ", "quote:sym<apos>", " at pos=", rx885_pos)
+ rx885_cur."!cursor_pass"(rx885_pos, "quote:sym<Q>")
+ rx885_cur."!cursor_debug"("PASS ", "quote:sym<Q>", " at pos=", rx885_pos)
.return (rx885_cur)
- rx885_fail:
+ rx885_restart:
.annotate 'line', 4
+ rx885_cur."!cursor_debug"("NEXT ", "quote:sym<Q>")
+ rx885_fail:
(rx885_rep, rx885_pos, $I10, $P10) = rx885_cur."!mark_fail"(0)
lt rx885_pos, -1, rx885_done
eq rx885_pos, -1, rx885_fail
jump $I10
rx885_done:
rx885_cur."!cursor_fail"()
- rx885_cur."!cursor_debug"("FAIL ", "quote:sym<apos>")
+ rx885_cur."!cursor_debug"("FAIL ", "quote:sym<Q>")
.return (rx885_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<apos>" :subid("205_1275811487.95429") :method
+.sub "!PREFIX__quote:sym<Q>" :subid("215_1280467477.44751") :method
.annotate 'line', 4
- new $P887, "ResizablePMCArray"
- push $P887, "'"
- .return ($P887)
+ $P887 = self."!PREFIX__!subrule"("ws", "Q")
+ new $P888, "ResizablePMCArray"
+ push $P888, $P887
+ .return ($P888)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<dblq>" :subid("206_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx890_tgt
- .local int rx890_pos
- .local int rx890_off
- .local int rx890_eos
- .local int rx890_rep
- .local pmc rx890_cur
- (rx890_cur, rx890_pos, rx890_tgt) = self."!cursor_start"()
- rx890_cur."!cursor_debug"("START ", "quote:sym<dblq>")
- .lex unicode:"$\x{a2}", rx890_cur
- .local pmc match
- .lex "$/", match
- length rx890_eos, rx890_tgt
- gt rx890_pos, rx890_eos, rx890_done
- set rx890_off, 0
- lt rx890_pos, 2, rx890_start
- sub rx890_off, rx890_pos, 1
- substr rx890_tgt, rx890_tgt, rx890_off
- rx890_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan893_done
- goto rxscan893_scan
- rxscan893_loop:
- ($P10) = rx890_cur."from"()
- inc $P10
- set rx890_pos, $P10
- ge rx890_pos, rx890_eos, rxscan893_done
- rxscan893_scan:
- set_addr $I10, rxscan893_loop
- rx890_cur."!mark_push"(0, rx890_pos, $I10)
- rxscan893_done:
-.annotate 'line', 418
- # rx enumcharlist negate=0 zerowidth
- ge rx890_pos, rx890_eos, rx890_fail
- sub $I10, rx890_pos, rx890_off
- substr $S10, rx890_tgt, $I10, 1
- index $I11, "\"", $S10
- lt $I11, 0, rx890_fail
+.sub "quote:sym<Q:PIR>" :subid("216_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx891_tgt
+ .local int rx891_pos
+ .local int rx891_off
+ .local int rx891_eos
+ .local int rx891_rep
+ .local pmc rx891_cur
+ (rx891_cur, rx891_pos, rx891_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx891_cur
+ .local pmc match
+ .lex "$/", match
+ length rx891_eos, rx891_tgt
+ gt rx891_pos, rx891_eos, rx891_done
+ set rx891_off, 0
+ lt rx891_pos, 2, rx891_start
+ sub rx891_off, rx891_pos, 1
+ substr rx891_tgt, rx891_tgt, rx891_off
+ rx891_start:
+ eq $I10, 1, rx891_restart
+ rx891_cur."!cursor_debug"("START ", "quote:sym<Q:PIR>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan895_done
+ goto rxscan895_scan
+ rxscan895_loop:
+ ($P10) = rx891_cur."from"()
+ inc $P10
+ set rx891_pos, $P10
+ ge rx891_pos, rx891_eos, rxscan895_done
+ rxscan895_scan:
+ set_addr $I10, rxscan895_loop
+ rx891_cur."!mark_push"(0, rx891_pos, $I10)
+ rxscan895_done:
+.annotate 'line', 423
+ # rx literal "Q:PIR"
+ add $I11, rx891_pos, 5
+ gt $I11, rx891_eos, rx891_fail
+ sub $I11, rx891_pos, rx891_off
+ substr $S10, rx891_tgt, $I11, 5
+ ne $S10, "Q:PIR", rx891_fail
+ add rx891_pos, 5
+ # rx subrule "ws" subtype=method negate=
+ rx891_cur."!cursor_pos"(rx891_pos)
+ $P10 = rx891_cur."ws"()
+ unless $P10, rx891_fail
+ rx891_pos = $P10."pos"()
# rx subrule "quote_EXPR" subtype=capture negate=
- rx890_cur."!cursor_pos"(rx890_pos)
- $P10 = rx890_cur."quote_EXPR"(":qq")
- unless $P10, rx890_fail
- rx890_cur."!mark_push"(0, -1, 0, $P10)
+ rx891_cur."!cursor_pos"(rx891_pos)
+ $P10 = rx891_cur."quote_EXPR"()
+ unless $P10, rx891_fail
+ rx891_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx890_pos = $P10."pos"()
+ rx891_pos = $P10."pos"()
# rx pass
- rx890_cur."!cursor_pass"(rx890_pos, "quote:sym<dblq>")
- rx890_cur."!cursor_debug"("PASS ", "quote:sym<dblq>", " at pos=", rx890_pos)
- .return (rx890_cur)
- rx890_fail:
+ rx891_cur."!cursor_pass"(rx891_pos, "quote:sym<Q:PIR>")
+ rx891_cur."!cursor_debug"("PASS ", "quote:sym<Q:PIR>", " at pos=", rx891_pos)
+ .return (rx891_cur)
+ rx891_restart:
.annotate 'line', 4
- (rx890_rep, rx890_pos, $I10, $P10) = rx890_cur."!mark_fail"(0)
- lt rx890_pos, -1, rx890_done
- eq rx890_pos, -1, rx890_fail
+ rx891_cur."!cursor_debug"("NEXT ", "quote:sym<Q:PIR>")
+ rx891_fail:
+ (rx891_rep, rx891_pos, $I10, $P10) = rx891_cur."!mark_fail"(0)
+ lt rx891_pos, -1, rx891_done
+ eq rx891_pos, -1, rx891_fail
jump $I10
- rx890_done:
- rx890_cur."!cursor_fail"()
- rx890_cur."!cursor_debug"("FAIL ", "quote:sym<dblq>")
- .return (rx890_cur)
+ rx891_done:
+ rx891_cur."!cursor_fail"()
+ rx891_cur."!cursor_debug"("FAIL ", "quote:sym<Q:PIR>")
+ .return (rx891_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<dblq>" :subid("207_1275811487.95429") :method
+.sub "!PREFIX__quote:sym<Q:PIR>" :subid("217_1280467477.44751") :method
.annotate 'line', 4
- new $P892, "ResizablePMCArray"
- push $P892, "\""
- .return ($P892)
+ $P893 = self."!PREFIX__!subrule"("ws", "Q:PIR")
+ new $P894, "ResizablePMCArray"
+ push $P894, $P893
+ .return ($P894)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<q>" :subid("208_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "quote:sym</ />" :subid("218_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx895_tgt
- .local int rx895_pos
- .local int rx895_off
- .local int rx895_eos
- .local int rx895_rep
- .local pmc rx895_cur
- (rx895_cur, rx895_pos, rx895_tgt) = self."!cursor_start"()
- rx895_cur."!cursor_debug"("START ", "quote:sym<q>")
- .lex unicode:"$\x{a2}", rx895_cur
+ .local string rx897_tgt
+ .local int rx897_pos
+ .local int rx897_off
+ .local int rx897_eos
+ .local int rx897_rep
+ .local pmc rx897_cur
+ (rx897_cur, rx897_pos, rx897_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx897_cur
.local pmc match
.lex "$/", match
- length rx895_eos, rx895_tgt
- gt rx895_pos, rx895_eos, rx895_done
- set rx895_off, 0
- lt rx895_pos, 2, rx895_start
- sub rx895_off, rx895_pos, 1
- substr rx895_tgt, rx895_tgt, rx895_off
- rx895_start:
+ length rx897_eos, rx897_tgt
+ gt rx897_pos, rx897_eos, rx897_done
+ set rx897_off, 0
+ lt rx897_pos, 2, rx897_start
+ sub rx897_off, rx897_pos, 1
+ substr rx897_tgt, rx897_tgt, rx897_off
+ rx897_start:
+ eq $I10, 1, rx897_restart
+ rx897_cur."!cursor_debug"("START ", "quote:sym</ />")
$I10 = self.'from'()
- ne $I10, -1, rxscan899_done
- goto rxscan899_scan
- rxscan899_loop:
- ($P10) = rx895_cur."from"()
+ ne $I10, -1, rxscan901_done
+ goto rxscan901_scan
+ rxscan901_loop:
+ ($P10) = rx897_cur."from"()
inc $P10
- set rx895_pos, $P10
- ge rx895_pos, rx895_eos, rxscan899_done
- rxscan899_scan:
- set_addr $I10, rxscan899_loop
- rx895_cur."!mark_push"(0, rx895_pos, $I10)
- rxscan899_done:
-.annotate 'line', 419
- # rx literal "q"
- add $I11, rx895_pos, 1
- gt $I11, rx895_eos, rx895_fail
- sub $I11, rx895_pos, rx895_off
- substr $S10, rx895_tgt, $I11, 1
- ne $S10, "q", rx895_fail
- add rx895_pos, 1
- # rxanchor rwb
- le rx895_pos, 0, rx895_fail
- sub $I10, rx895_pos, rx895_off
- is_cclass $I11, 8192, rx895_tgt, $I10
- if $I11, rx895_fail
- dec $I10
- is_cclass $I11, 8192, rx895_tgt, $I10
- unless $I11, rx895_fail
- # rx enumcharlist negate=1 zerowidth
- ge rx895_pos, rx895_eos, rx895_fail
- sub $I10, rx895_pos, rx895_off
- substr $S10, rx895_tgt, $I10, 1
- index $I11, "(", $S10
- ge $I11, 0, rx895_fail
- # rx subrule "ws" subtype=method negate=
- rx895_cur."!cursor_pos"(rx895_pos)
- $P10 = rx895_cur."ws"()
- unless $P10, rx895_fail
- rx895_pos = $P10."pos"()
- # rx subrule "quote_EXPR" subtype=capture negate=
- rx895_cur."!cursor_pos"(rx895_pos)
- $P10 = rx895_cur."quote_EXPR"(":q")
- unless $P10, rx895_fail
- rx895_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote_EXPR")
- rx895_pos = $P10."pos"()
+ set rx897_pos, $P10
+ ge rx897_pos, rx897_eos, rxscan901_done
+ rxscan901_scan:
+ set_addr $I10, rxscan901_loop
+ rx897_cur."!mark_push"(0, rx897_pos, $I10)
+ rxscan901_done:
+.annotate 'line', 425
+ # rx literal "/"
+ 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
+ add rx897_pos, 1
+.annotate 'line', 426
+ # rx subrule "newpad" subtype=method negate=
+ rx897_cur."!cursor_pos"(rx897_pos)
+ $P10 = rx897_cur."newpad"()
+ unless $P10, rx897_fail
+ rx897_pos = $P10."pos"()
+.annotate 'line', 427
+ # rx reduce name="quote:sym</ />" key="open"
+ rx897_cur."!cursor_pos"(rx897_pos)
+ rx897_cur."!reduce"("quote:sym</ />", "open")
+.annotate 'line', 428
+ # rx subrule "LANG" subtype=capture negate=
+ rx897_cur."!cursor_pos"(rx897_pos)
+ $P10 = rx897_cur."LANG"("Regex", "nibbler")
+ unless $P10, rx897_fail
+ rx897_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("p6regex")
+ rx897_pos = $P10."pos"()
+.annotate 'line', 429
+ # rx literal "/"
+ 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
+ add rx897_pos, 1
+.annotate 'line', 424
# rx pass
- rx895_cur."!cursor_pass"(rx895_pos, "quote:sym<q>")
- rx895_cur."!cursor_debug"("PASS ", "quote:sym<q>", " at pos=", rx895_pos)
- .return (rx895_cur)
- rx895_fail:
+ rx897_cur."!cursor_pass"(rx897_pos, "quote:sym</ />")
+ rx897_cur."!cursor_debug"("PASS ", "quote:sym</ />", " at pos=", rx897_pos)
+ .return (rx897_cur)
+ rx897_restart:
.annotate 'line', 4
- (rx895_rep, rx895_pos, $I10, $P10) = rx895_cur."!mark_fail"(0)
- lt rx895_pos, -1, rx895_done
- eq rx895_pos, -1, rx895_fail
+ rx897_cur."!cursor_debug"("NEXT ", "quote:sym</ />")
+ rx897_fail:
+ (rx897_rep, rx897_pos, $I10, $P10) = rx897_cur."!mark_fail"(0)
+ lt rx897_pos, -1, rx897_done
+ eq rx897_pos, -1, rx897_fail
jump $I10
- rx895_done:
- rx895_cur."!cursor_fail"()
- rx895_cur."!cursor_debug"("FAIL ", "quote:sym<q>")
- .return (rx895_cur)
+ rx897_done:
+ rx897_cur."!cursor_fail"()
+ rx897_cur."!cursor_debug"("FAIL ", "quote:sym</ />")
+ .return (rx897_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<q>" :subid("209_1275811487.95429") :method
+.sub "!PREFIX__quote:sym</ />" :subid("219_1280467477.44751") :method
.annotate 'line', 4
- $P897 = self."!PREFIX__!subrule"("ws", "q")
- new $P898, "ResizablePMCArray"
- push $P898, $P897
- .return ($P898)
+ $P899 = self."!PREFIX__!subrule"("newpad", "/")
+ new $P900, "ResizablePMCArray"
+ push $P900, $P899
+ .return ($P900)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<qq>" :subid("210_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "quote_escape:sym<$>" :subid("220_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx901_tgt
- .local int rx901_pos
- .local int rx901_off
- .local int rx901_eos
- .local int rx901_rep
- .local pmc rx901_cur
- (rx901_cur, rx901_pos, rx901_tgt) = self."!cursor_start"()
- rx901_cur."!cursor_debug"("START ", "quote:sym<qq>")
- .lex unicode:"$\x{a2}", rx901_cur
+ .local string rx903_tgt
+ .local int rx903_pos
+ .local int rx903_off
+ .local int rx903_eos
+ .local int rx903_rep
+ .local pmc rx903_cur
+ (rx903_cur, rx903_pos, rx903_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx903_cur
.local pmc match
.lex "$/", match
- length rx901_eos, rx901_tgt
- gt rx901_pos, rx901_eos, rx901_done
- set rx901_off, 0
- lt rx901_pos, 2, rx901_start
- sub rx901_off, rx901_pos, 1
- substr rx901_tgt, rx901_tgt, rx901_off
- rx901_start:
+ length rx903_eos, rx903_tgt
+ gt rx903_pos, rx903_eos, rx903_done
+ set rx903_off, 0
+ lt rx903_pos, 2, rx903_start
+ sub rx903_off, rx903_pos, 1
+ substr rx903_tgt, rx903_tgt, rx903_off
+ rx903_start:
+ eq $I10, 1, rx903_restart
+ rx903_cur."!cursor_debug"("START ", "quote_escape:sym<$>")
$I10 = self.'from'()
- ne $I10, -1, rxscan905_done
- goto rxscan905_scan
- rxscan905_loop:
- ($P10) = rx901_cur."from"()
+ ne $I10, -1, rxscan906_done
+ goto rxscan906_scan
+ rxscan906_loop:
+ ($P10) = rx903_cur."from"()
inc $P10
- set rx901_pos, $P10
- ge rx901_pos, rx901_eos, rxscan905_done
- rxscan905_scan:
- set_addr $I10, rxscan905_loop
- rx901_cur."!mark_push"(0, rx901_pos, $I10)
- rxscan905_done:
-.annotate 'line', 420
- # rx literal "qq"
- add $I11, rx901_pos, 2
- gt $I11, rx901_eos, rx901_fail
- sub $I11, rx901_pos, rx901_off
- substr $S10, rx901_tgt, $I11, 2
- ne $S10, "qq", rx901_fail
- add rx901_pos, 2
- # rxanchor rwb
- le rx901_pos, 0, rx901_fail
- sub $I10, rx901_pos, rx901_off
- is_cclass $I11, 8192, rx901_tgt, $I10
- if $I11, rx901_fail
- dec $I10
- is_cclass $I11, 8192, rx901_tgt, $I10
- unless $I11, rx901_fail
- # rx enumcharlist negate=1 zerowidth
- ge rx901_pos, rx901_eos, rx901_fail
- sub $I10, rx901_pos, rx901_off
- substr $S10, rx901_tgt, $I10, 1
- index $I11, "(", $S10
- ge $I11, 0, rx901_fail
- # rx subrule "ws" subtype=method negate=
- rx901_cur."!cursor_pos"(rx901_pos)
- $P10 = rx901_cur."ws"()
- unless $P10, rx901_fail
- rx901_pos = $P10."pos"()
- # rx subrule "quote_EXPR" subtype=capture negate=
- rx901_cur."!cursor_pos"(rx901_pos)
- $P10 = rx901_cur."quote_EXPR"(":qq")
- unless $P10, rx901_fail
- rx901_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote_EXPR")
- rx901_pos = $P10."pos"()
+ set rx903_pos, $P10
+ ge rx903_pos, rx903_eos, rxscan906_done
+ rxscan906_scan:
+ set_addr $I10, rxscan906_loop
+ rx903_cur."!mark_push"(0, rx903_pos, $I10)
+ rxscan906_done:
+.annotate 'line', 432
+ # rx enumcharlist negate=0 zerowidth
+ ge rx903_pos, rx903_eos, rx903_fail
+ sub $I10, rx903_pos, rx903_off
+ substr $S10, rx903_tgt, $I10, 1
+ index $I11, "$", $S10
+ lt $I11, 0, rx903_fail
+ # rx subrule "quotemod_check" subtype=zerowidth negate=
+ rx903_cur."!cursor_pos"(rx903_pos)
+ $P10 = rx903_cur."quotemod_check"("s")
+ unless $P10, rx903_fail
+ # rx subrule "variable" subtype=capture negate=
+ rx903_cur."!cursor_pos"(rx903_pos)
+ $P10 = rx903_cur."variable"()
+ unless $P10, rx903_fail
+ rx903_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("variable")
+ rx903_pos = $P10."pos"()
# rx pass
- rx901_cur."!cursor_pass"(rx901_pos, "quote:sym<qq>")
- rx901_cur."!cursor_debug"("PASS ", "quote:sym<qq>", " at pos=", rx901_pos)
- .return (rx901_cur)
- rx901_fail:
+ rx903_cur."!cursor_pass"(rx903_pos, "quote_escape:sym<$>")
+ rx903_cur."!cursor_debug"("PASS ", "quote_escape:sym<$>", " at pos=", rx903_pos)
+ .return (rx903_cur)
+ rx903_restart:
.annotate 'line', 4
- (rx901_rep, rx901_pos, $I10, $P10) = rx901_cur."!mark_fail"(0)
- lt rx901_pos, -1, rx901_done
- eq rx901_pos, -1, rx901_fail
+ rx903_cur."!cursor_debug"("NEXT ", "quote_escape:sym<$>")
+ rx903_fail:
+ (rx903_rep, rx903_pos, $I10, $P10) = rx903_cur."!mark_fail"(0)
+ lt rx903_pos, -1, rx903_done
+ eq rx903_pos, -1, rx903_fail
jump $I10
- rx901_done:
- rx901_cur."!cursor_fail"()
- rx901_cur."!cursor_debug"("FAIL ", "quote:sym<qq>")
- .return (rx901_cur)
+ rx903_done:
+ rx903_cur."!cursor_fail"()
+ rx903_cur."!cursor_debug"("FAIL ", "quote_escape:sym<$>")
+ .return (rx903_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<qq>" :subid("211_1275811487.95429") :method
+.sub "!PREFIX__quote_escape:sym<$>" :subid("221_1280467477.44751") :method
.annotate 'line', 4
- $P903 = self."!PREFIX__!subrule"("ws", "qq")
- new $P904, "ResizablePMCArray"
- push $P904, $P903
- .return ($P904)
+ new $P905, "ResizablePMCArray"
+ push $P905, "$"
+ .return ($P905)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q>" :subid("212_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "quote_escape:sym<{ }>" :subid("222_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx907_tgt
- .local int rx907_pos
- .local int rx907_off
- .local int rx907_eos
- .local int rx907_rep
- .local pmc rx907_cur
- (rx907_cur, rx907_pos, rx907_tgt) = self."!cursor_start"()
- rx907_cur."!cursor_debug"("START ", "quote:sym<Q>")
- .lex unicode:"$\x{a2}", rx907_cur
+ .local string rx908_tgt
+ .local int rx908_pos
+ .local int rx908_off
+ .local int rx908_eos
+ .local int rx908_rep
+ .local pmc rx908_cur
+ (rx908_cur, rx908_pos, rx908_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx908_cur
.local pmc match
.lex "$/", match
- length rx907_eos, rx907_tgt
- gt rx907_pos, rx907_eos, rx907_done
- set rx907_off, 0
- lt rx907_pos, 2, rx907_start
- sub rx907_off, rx907_pos, 1
- substr rx907_tgt, rx907_tgt, rx907_off
- rx907_start:
+ length rx908_eos, rx908_tgt
+ gt rx908_pos, rx908_eos, rx908_done
+ set rx908_off, 0
+ lt rx908_pos, 2, rx908_start
+ sub rx908_off, rx908_pos, 1
+ substr rx908_tgt, rx908_tgt, rx908_off
+ rx908_start:
+ eq $I10, 1, rx908_restart
+ rx908_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>")
$I10 = self.'from'()
ne $I10, -1, rxscan911_done
goto rxscan911_scan
rxscan911_loop:
- ($P10) = rx907_cur."from"()
+ ($P10) = rx908_cur."from"()
inc $P10
- set rx907_pos, $P10
- ge rx907_pos, rx907_eos, rxscan911_done
+ set rx908_pos, $P10
+ ge rx908_pos, rx908_eos, rxscan911_done
rxscan911_scan:
set_addr $I10, rxscan911_loop
- rx907_cur."!mark_push"(0, rx907_pos, $I10)
+ rx908_cur."!mark_push"(0, rx908_pos, $I10)
rxscan911_done:
-.annotate 'line', 421
- # rx literal "Q"
- add $I11, rx907_pos, 1
- gt $I11, rx907_eos, rx907_fail
- sub $I11, rx907_pos, rx907_off
- substr $S10, rx907_tgt, $I11, 1
- ne $S10, "Q", rx907_fail
- add rx907_pos, 1
- # rxanchor rwb
- le rx907_pos, 0, rx907_fail
- sub $I10, rx907_pos, rx907_off
- is_cclass $I11, 8192, rx907_tgt, $I10
- if $I11, rx907_fail
- dec $I10
- is_cclass $I11, 8192, rx907_tgt, $I10
- unless $I11, rx907_fail
- # rx enumcharlist negate=1 zerowidth
- ge rx907_pos, rx907_eos, rx907_fail
- sub $I10, rx907_pos, rx907_off
- substr $S10, rx907_tgt, $I10, 1
- index $I11, "(", $S10
- ge $I11, 0, rx907_fail
- # rx subrule "ws" subtype=method negate=
- rx907_cur."!cursor_pos"(rx907_pos)
- $P10 = rx907_cur."ws"()
- unless $P10, rx907_fail
- rx907_pos = $P10."pos"()
- # rx subrule "quote_EXPR" subtype=capture negate=
- rx907_cur."!cursor_pos"(rx907_pos)
- $P10 = rx907_cur."quote_EXPR"()
- unless $P10, rx907_fail
- rx907_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote_EXPR")
- rx907_pos = $P10."pos"()
+.annotate 'line', 433
+ # rx enumcharlist negate=0 zerowidth
+ ge rx908_pos, rx908_eos, rx908_fail
+ sub $I10, rx908_pos, rx908_off
+ substr $S10, rx908_tgt, $I10, 1
+ index $I11, "{", $S10
+ lt $I11, 0, rx908_fail
+ # rx subrule "quotemod_check" subtype=zerowidth negate=
+ rx908_cur."!cursor_pos"(rx908_pos)
+ $P10 = rx908_cur."quotemod_check"("c")
+ unless $P10, rx908_fail
+ # rx subrule "block" subtype=capture negate=
+ rx908_cur."!cursor_pos"(rx908_pos)
+ $P10 = rx908_cur."block"()
+ unless $P10, rx908_fail
+ rx908_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("block")
+ rx908_pos = $P10."pos"()
# rx pass
- rx907_cur."!cursor_pass"(rx907_pos, "quote:sym<Q>")
- rx907_cur."!cursor_debug"("PASS ", "quote:sym<Q>", " at pos=", rx907_pos)
- .return (rx907_cur)
- rx907_fail:
+ rx908_cur."!cursor_pass"(rx908_pos, "quote_escape:sym<{ }>")
+ rx908_cur."!cursor_debug"("PASS ", "quote_escape:sym<{ }>", " at pos=", rx908_pos)
+ .return (rx908_cur)
+ rx908_restart:
.annotate 'line', 4
- (rx907_rep, rx907_pos, $I10, $P10) = rx907_cur."!mark_fail"(0)
- lt rx907_pos, -1, rx907_done
- eq rx907_pos, -1, rx907_fail
+ rx908_cur."!cursor_debug"("NEXT ", "quote_escape:sym<{ }>")
+ rx908_fail:
+ (rx908_rep, rx908_pos, $I10, $P10) = rx908_cur."!mark_fail"(0)
+ lt rx908_pos, -1, rx908_done
+ eq rx908_pos, -1, rx908_fail
jump $I10
- rx907_done:
- rx907_cur."!cursor_fail"()
- rx907_cur."!cursor_debug"("FAIL ", "quote:sym<Q>")
- .return (rx907_cur)
+ rx908_done:
+ rx908_cur."!cursor_fail"()
+ rx908_cur."!cursor_debug"("FAIL ", "quote_escape:sym<{ }>")
+ .return (rx908_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q>" :subid("213_1275811487.95429") :method
+.sub "!PREFIX__quote_escape:sym<{ }>" :subid("223_1280467477.44751") :method
.annotate 'line', 4
- $P909 = self."!PREFIX__!subrule"("ws", "Q")
new $P910, "ResizablePMCArray"
- push $P910, $P909
+ push $P910, "{"
.return ($P910)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q:PIR>" :subid("214_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "quote_escape:sym<esc>" :subid("224_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
.local string rx913_tgt
.local int rx913_pos
@@ -10806,8 +11699,7 @@
.local int rx913_eos
.local int rx913_rep
.local pmc rx913_cur
- (rx913_cur, rx913_pos, rx913_tgt) = self."!cursor_start"()
- rx913_cur."!cursor_debug"("START ", "quote:sym<Q:PIR>")
+ (rx913_cur, rx913_pos, rx913_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx913_cur
.local pmc match
.lex "$/", match
@@ -10818,754 +11710,722 @@
sub rx913_off, rx913_pos, 1
substr rx913_tgt, rx913_tgt, rx913_off
rx913_start:
+ eq $I10, 1, rx913_restart
+ rx913_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
$I10 = self.'from'()
- ne $I10, -1, rxscan917_done
- goto rxscan917_scan
- rxscan917_loop:
+ ne $I10, -1, rxscan916_done
+ goto rxscan916_scan
+ rxscan916_loop:
($P10) = rx913_cur."from"()
inc $P10
set rx913_pos, $P10
- ge rx913_pos, rx913_eos, rxscan917_done
- rxscan917_scan:
- set_addr $I10, rxscan917_loop
+ ge rx913_pos, rx913_eos, rxscan916_done
+ rxscan916_scan:
+ set_addr $I10, rxscan916_loop
rx913_cur."!mark_push"(0, rx913_pos, $I10)
- rxscan917_done:
-.annotate 'line', 422
- # rx literal "Q:PIR"
- add $I11, rx913_pos, 5
+ rxscan916_done:
+.annotate 'line', 434
+ # rx literal "\\e"
+ add $I11, rx913_pos, 2
gt $I11, rx913_eos, rx913_fail
sub $I11, rx913_pos, rx913_off
- substr $S10, rx913_tgt, $I11, 5
- ne $S10, "Q:PIR", rx913_fail
- add rx913_pos, 5
- # rx subrule "ws" subtype=method negate=
- rx913_cur."!cursor_pos"(rx913_pos)
- $P10 = rx913_cur."ws"()
- unless $P10, rx913_fail
- rx913_pos = $P10."pos"()
- # rx subrule "quote_EXPR" subtype=capture negate=
+ substr $S10, rx913_tgt, $I11, 2
+ ne $S10, "\\e", rx913_fail
+ add rx913_pos, 2
+ # rx subrule "quotemod_check" subtype=zerowidth negate=
rx913_cur."!cursor_pos"(rx913_pos)
- $P10 = rx913_cur."quote_EXPR"()
+ $P10 = rx913_cur."quotemod_check"("b")
unless $P10, rx913_fail
- rx913_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote_EXPR")
- rx913_pos = $P10."pos"()
# rx pass
- rx913_cur."!cursor_pass"(rx913_pos, "quote:sym<Q:PIR>")
- rx913_cur."!cursor_debug"("PASS ", "quote:sym<Q:PIR>", " at pos=", rx913_pos)
+ rx913_cur."!cursor_pass"(rx913_pos, "quote_escape:sym<esc>")
+ rx913_cur."!cursor_debug"("PASS ", "quote_escape:sym<esc>", " at pos=", rx913_pos)
.return (rx913_cur)
- rx913_fail:
+ rx913_restart:
.annotate 'line', 4
+ rx913_cur."!cursor_debug"("NEXT ", "quote_escape:sym<esc>")
+ rx913_fail:
(rx913_rep, rx913_pos, $I10, $P10) = rx913_cur."!mark_fail"(0)
lt rx913_pos, -1, rx913_done
eq rx913_pos, -1, rx913_fail
jump $I10
rx913_done:
rx913_cur."!cursor_fail"()
- rx913_cur."!cursor_debug"("FAIL ", "quote:sym<Q:PIR>")
+ rx913_cur."!cursor_debug"("FAIL ", "quote_escape:sym<esc>")
.return (rx913_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q:PIR>" :subid("215_1275811487.95429") :method
+.sub "!PREFIX__quote_escape:sym<esc>" :subid("225_1280467477.44751") :method
.annotate 'line', 4
- $P915 = self."!PREFIX__!subrule"("ws", "Q:PIR")
- new $P916, "ResizablePMCArray"
- push $P916, $P915
- .return ($P916)
+ new $P915, "ResizablePMCArray"
+ push $P915, "\\e"
+ .return ($P915)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym</ />" :subid("216_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx919_tgt
- .local int rx919_pos
- .local int rx919_off
- .local int rx919_eos
- .local int rx919_rep
- .local pmc rx919_cur
- (rx919_cur, rx919_pos, rx919_tgt) = self."!cursor_start"()
- rx919_cur."!cursor_debug"("START ", "quote:sym</ />")
- .lex unicode:"$\x{a2}", rx919_cur
- .local pmc match
- .lex "$/", match
- length rx919_eos, rx919_tgt
- gt rx919_pos, rx919_eos, rx919_done
- set rx919_off, 0
- lt rx919_pos, 2, rx919_start
- sub rx919_off, rx919_pos, 1
- substr rx919_tgt, rx919_tgt, rx919_off
- rx919_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan923_done
- goto rxscan923_scan
- rxscan923_loop:
- ($P10) = rx919_cur."from"()
- inc $P10
- set rx919_pos, $P10
- ge rx919_pos, rx919_eos, rxscan923_done
- rxscan923_scan:
- set_addr $I10, rxscan923_loop
- rx919_cur."!mark_push"(0, rx919_pos, $I10)
- rxscan923_done:
-.annotate 'line', 424
- # rx literal "/"
- add $I11, rx919_pos, 1
- gt $I11, rx919_eos, rx919_fail
- sub $I11, rx919_pos, rx919_off
- substr $S10, rx919_tgt, $I11, 1
- ne $S10, "/", rx919_fail
- add rx919_pos, 1
-.annotate 'line', 425
- # rx subrule "newpad" subtype=method negate=
- rx919_cur."!cursor_pos"(rx919_pos)
- $P10 = rx919_cur."newpad"()
- unless $P10, rx919_fail
- rx919_pos = $P10."pos"()
-.annotate 'line', 426
- # rx reduce name="quote:sym</ />" key="open"
- rx919_cur."!cursor_pos"(rx919_pos)
- rx919_cur."!reduce"("quote:sym</ />", "open")
-.annotate 'line', 427
- # rx subrule "LANG" subtype=capture negate=
- rx919_cur."!cursor_pos"(rx919_pos)
- $P10 = rx919_cur."LANG"("Regex", "nibbler")
- unless $P10, rx919_fail
- rx919_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("p6regex")
- rx919_pos = $P10."pos"()
-.annotate 'line', 428
- # rx literal "/"
- add $I11, rx919_pos, 1
- gt $I11, rx919_eos, rx919_fail
- sub $I11, rx919_pos, rx919_off
- substr $S10, rx919_tgt, $I11, 1
- ne $S10, "/", rx919_fail
- add rx919_pos, 1
-.annotate 'line', 423
+.sub "circumfix:sym<( )>" :subid("226_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx918_tgt
+ .local int rx918_pos
+ .local int rx918_off
+ .local int rx918_eos
+ .local int rx918_rep
+ .local pmc rx918_cur
+ (rx918_cur, rx918_pos, rx918_tgt, $I10) = self."!cursor_start"()
+ rx918_cur."!cursor_caparray"("EXPR")
+ .lex unicode:"$\x{a2}", rx918_cur
+ .local pmc match
+ .lex "$/", match
+ length rx918_eos, rx918_tgt
+ gt rx918_pos, rx918_eos, rx918_done
+ set rx918_off, 0
+ lt rx918_pos, 2, rx918_start
+ sub rx918_off, rx918_pos, 1
+ substr rx918_tgt, rx918_tgt, rx918_off
+ rx918_start:
+ eq $I10, 1, rx918_restart
+ rx918_cur."!cursor_debug"("START ", "circumfix:sym<( )>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan922_done
+ goto rxscan922_scan
+ rxscan922_loop:
+ ($P10) = rx918_cur."from"()
+ inc $P10
+ set rx918_pos, $P10
+ ge rx918_pos, rx918_eos, rxscan922_done
+ rxscan922_scan:
+ set_addr $I10, rxscan922_loop
+ rx918_cur."!mark_push"(0, rx918_pos, $I10)
+ rxscan922_done:
+.annotate 'line', 436
+ # rx literal "("
+ 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
+ add rx918_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx918_cur."!cursor_pos"(rx918_pos)
+ $P10 = rx918_cur."ws"()
+ unless $P10, rx918_fail
+ rx918_pos = $P10."pos"()
+ # rx rxquantr923 ** 0..1
+ set_addr $I10, rxquantr923_done
+ rx918_cur."!mark_push"(0, rx918_pos, $I10)
+ rxquantr923_loop:
+ # rx subrule "EXPR" subtype=capture negate=
+ rx918_cur."!cursor_pos"(rx918_pos)
+ $P10 = rx918_cur."EXPR"()
+ unless $P10, rx918_fail
+ goto rxsubrule924_pass
+ rxsubrule924_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx918_fail
+ rxsubrule924_pass:
+ set_addr $I10, rxsubrule924_back
+ rx918_cur."!mark_push"(0, rx918_pos, $I10, $P10)
+ $P10."!cursor_names"("EXPR")
+ rx918_pos = $P10."pos"()
+ set_addr $I10, rxquantr923_done
+ (rx918_rep) = rx918_cur."!mark_commit"($I10)
+ rxquantr923_done:
+ # rx literal ")"
+ 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
+ add rx918_pos, 1
# rx pass
- rx919_cur."!cursor_pass"(rx919_pos, "quote:sym</ />")
- rx919_cur."!cursor_debug"("PASS ", "quote:sym</ />", " at pos=", rx919_pos)
- .return (rx919_cur)
- rx919_fail:
+ rx918_cur."!cursor_pass"(rx918_pos, "circumfix:sym<( )>")
+ rx918_cur."!cursor_debug"("PASS ", "circumfix:sym<( )>", " at pos=", rx918_pos)
+ .return (rx918_cur)
+ rx918_restart:
.annotate 'line', 4
- (rx919_rep, rx919_pos, $I10, $P10) = rx919_cur."!mark_fail"(0)
- lt rx919_pos, -1, rx919_done
- eq rx919_pos, -1, rx919_fail
+ rx918_cur."!cursor_debug"("NEXT ", "circumfix:sym<( )>")
+ rx918_fail:
+ (rx918_rep, rx918_pos, $I10, $P10) = rx918_cur."!mark_fail"(0)
+ lt rx918_pos, -1, rx918_done
+ eq rx918_pos, -1, rx918_fail
jump $I10
- rx919_done:
- rx919_cur."!cursor_fail"()
- rx919_cur."!cursor_debug"("FAIL ", "quote:sym</ />")
- .return (rx919_cur)
+ rx918_done:
+ rx918_cur."!cursor_fail"()
+ rx918_cur."!cursor_debug"("FAIL ", "circumfix:sym<( )>")
+ .return (rx918_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym</ />" :subid("217_1275811487.95429") :method
+.sub "!PREFIX__circumfix:sym<( )>" :subid("227_1280467477.44751") :method
.annotate 'line', 4
- $P921 = self."!PREFIX__!subrule"("newpad", "/")
- new $P922, "ResizablePMCArray"
- push $P922, $P921
- .return ($P922)
+ $P920 = self."!PREFIX__!subrule"("ws", "(")
+ new $P921, "ResizablePMCArray"
+ push $P921, $P920
+ .return ($P921)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<$>" :subid("218_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "circumfix:sym<[ ]>" :subid("228_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx925_tgt
- .local int rx925_pos
- .local int rx925_off
- .local int rx925_eos
- .local int rx925_rep
- .local pmc rx925_cur
- (rx925_cur, rx925_pos, rx925_tgt) = self."!cursor_start"()
- rx925_cur."!cursor_debug"("START ", "quote_escape:sym<$>")
- .lex unicode:"$\x{a2}", rx925_cur
+ .local string rx926_tgt
+ .local int rx926_pos
+ .local int rx926_off
+ .local int rx926_eos
+ .local int rx926_rep
+ .local pmc rx926_cur
+ (rx926_cur, rx926_pos, rx926_tgt, $I10) = self."!cursor_start"()
+ rx926_cur."!cursor_caparray"("EXPR")
+ .lex unicode:"$\x{a2}", rx926_cur
.local pmc match
.lex "$/", match
- length rx925_eos, rx925_tgt
- gt rx925_pos, rx925_eos, rx925_done
- set rx925_off, 0
- lt rx925_pos, 2, rx925_start
- sub rx925_off, rx925_pos, 1
- substr rx925_tgt, rx925_tgt, rx925_off
- rx925_start:
+ length rx926_eos, rx926_tgt
+ gt rx926_pos, rx926_eos, rx926_done
+ set rx926_off, 0
+ lt rx926_pos, 2, rx926_start
+ sub rx926_off, rx926_pos, 1
+ substr rx926_tgt, rx926_tgt, rx926_off
+ rx926_start:
+ eq $I10, 1, rx926_restart
+ rx926_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>")
$I10 = self.'from'()
- ne $I10, -1, rxscan928_done
- goto rxscan928_scan
- rxscan928_loop:
- ($P10) = rx925_cur."from"()
+ ne $I10, -1, rxscan930_done
+ goto rxscan930_scan
+ rxscan930_loop:
+ ($P10) = rx926_cur."from"()
inc $P10
- set rx925_pos, $P10
- ge rx925_pos, rx925_eos, rxscan928_done
- rxscan928_scan:
- set_addr $I10, rxscan928_loop
- rx925_cur."!mark_push"(0, rx925_pos, $I10)
- rxscan928_done:
-.annotate 'line', 431
- # rx enumcharlist negate=0 zerowidth
- ge rx925_pos, rx925_eos, rx925_fail
- sub $I10, rx925_pos, rx925_off
- substr $S10, rx925_tgt, $I10, 1
- index $I11, "$", $S10
- lt $I11, 0, rx925_fail
- # rx subrule "quotemod_check" subtype=zerowidth negate=
- rx925_cur."!cursor_pos"(rx925_pos)
- $P10 = rx925_cur."quotemod_check"("s")
- unless $P10, rx925_fail
- # rx subrule "variable" subtype=capture negate=
- rx925_cur."!cursor_pos"(rx925_pos)
- $P10 = rx925_cur."variable"()
- unless $P10, rx925_fail
- rx925_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("variable")
- rx925_pos = $P10."pos"()
+ set rx926_pos, $P10
+ ge rx926_pos, rx926_eos, rxscan930_done
+ rxscan930_scan:
+ set_addr $I10, rxscan930_loop
+ rx926_cur."!mark_push"(0, rx926_pos, $I10)
+ rxscan930_done:
+.annotate 'line', 437
+ # rx literal "["
+ 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
+ add rx926_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx926_cur."!cursor_pos"(rx926_pos)
+ $P10 = rx926_cur."ws"()
+ unless $P10, rx926_fail
+ rx926_pos = $P10."pos"()
+ # rx rxquantr931 ** 0..1
+ set_addr $I10, rxquantr931_done
+ rx926_cur."!mark_push"(0, rx926_pos, $I10)
+ rxquantr931_loop:
+ # rx subrule "EXPR" subtype=capture negate=
+ rx926_cur."!cursor_pos"(rx926_pos)
+ $P10 = rx926_cur."EXPR"()
+ unless $P10, rx926_fail
+ goto rxsubrule932_pass
+ rxsubrule932_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx926_fail
+ rxsubrule932_pass:
+ set_addr $I10, rxsubrule932_back
+ rx926_cur."!mark_push"(0, rx926_pos, $I10, $P10)
+ $P10."!cursor_names"("EXPR")
+ rx926_pos = $P10."pos"()
+ set_addr $I10, rxquantr931_done
+ (rx926_rep) = rx926_cur."!mark_commit"($I10)
+ rxquantr931_done:
+ # rx literal "]"
+ 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
+ add rx926_pos, 1
# rx pass
- rx925_cur."!cursor_pass"(rx925_pos, "quote_escape:sym<$>")
- rx925_cur."!cursor_debug"("PASS ", "quote_escape:sym<$>", " at pos=", rx925_pos)
- .return (rx925_cur)
- rx925_fail:
+ rx926_cur."!cursor_pass"(rx926_pos, "circumfix:sym<[ ]>")
+ rx926_cur."!cursor_debug"("PASS ", "circumfix:sym<[ ]>", " at pos=", rx926_pos)
+ .return (rx926_cur)
+ rx926_restart:
.annotate 'line', 4
- (rx925_rep, rx925_pos, $I10, $P10) = rx925_cur."!mark_fail"(0)
- lt rx925_pos, -1, rx925_done
- eq rx925_pos, -1, rx925_fail
+ rx926_cur."!cursor_debug"("NEXT ", "circumfix:sym<[ ]>")
+ rx926_fail:
+ (rx926_rep, rx926_pos, $I10, $P10) = rx926_cur."!mark_fail"(0)
+ lt rx926_pos, -1, rx926_done
+ eq rx926_pos, -1, rx926_fail
jump $I10
- rx925_done:
- rx925_cur."!cursor_fail"()
- rx925_cur."!cursor_debug"("FAIL ", "quote_escape:sym<$>")
- .return (rx925_cur)
+ rx926_done:
+ rx926_cur."!cursor_fail"()
+ rx926_cur."!cursor_debug"("FAIL ", "circumfix:sym<[ ]>")
+ .return (rx926_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<$>" :subid("219_1275811487.95429") :method
+.sub "!PREFIX__circumfix:sym<[ ]>" :subid("229_1280467477.44751") :method
.annotate 'line', 4
- new $P927, "ResizablePMCArray"
- push $P927, "$"
- .return ($P927)
+ $P928 = self."!PREFIX__!subrule"("ws", "[")
+ new $P929, "ResizablePMCArray"
+ push $P929, $P928
+ .return ($P929)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<{ }>" :subid("220_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "circumfix:sym<ang>" :subid("230_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx930_tgt
- .local int rx930_pos
- .local int rx930_off
- .local int rx930_eos
- .local int rx930_rep
- .local pmc rx930_cur
- (rx930_cur, rx930_pos, rx930_tgt) = self."!cursor_start"()
- rx930_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>")
- .lex unicode:"$\x{a2}", rx930_cur
+ .local string rx934_tgt
+ .local int rx934_pos
+ .local int rx934_off
+ .local int rx934_eos
+ .local int rx934_rep
+ .local pmc rx934_cur
+ (rx934_cur, rx934_pos, rx934_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx934_cur
.local pmc match
.lex "$/", match
- length rx930_eos, rx930_tgt
- gt rx930_pos, rx930_eos, rx930_done
- set rx930_off, 0
- lt rx930_pos, 2, rx930_start
- sub rx930_off, rx930_pos, 1
- substr rx930_tgt, rx930_tgt, rx930_off
- rx930_start:
+ length rx934_eos, rx934_tgt
+ gt rx934_pos, rx934_eos, rx934_done
+ set rx934_off, 0
+ lt rx934_pos, 2, rx934_start
+ sub rx934_off, rx934_pos, 1
+ substr rx934_tgt, rx934_tgt, rx934_off
+ rx934_start:
+ eq $I10, 1, rx934_restart
+ rx934_cur."!cursor_debug"("START ", "circumfix:sym<ang>")
$I10 = self.'from'()
- ne $I10, -1, rxscan933_done
- goto rxscan933_scan
- rxscan933_loop:
- ($P10) = rx930_cur."from"()
+ ne $I10, -1, rxscan937_done
+ goto rxscan937_scan
+ rxscan937_loop:
+ ($P10) = rx934_cur."from"()
inc $P10
- set rx930_pos, $P10
- ge rx930_pos, rx930_eos, rxscan933_done
- rxscan933_scan:
- set_addr $I10, rxscan933_loop
- rx930_cur."!mark_push"(0, rx930_pos, $I10)
- rxscan933_done:
-.annotate 'line', 432
+ set rx934_pos, $P10
+ ge rx934_pos, rx934_eos, rxscan937_done
+ rxscan937_scan:
+ set_addr $I10, rxscan937_loop
+ rx934_cur."!mark_push"(0, rx934_pos, $I10)
+ rxscan937_done:
+.annotate 'line', 438
# rx enumcharlist negate=0 zerowidth
- ge rx930_pos, rx930_eos, rx930_fail
- sub $I10, rx930_pos, rx930_off
- substr $S10, rx930_tgt, $I10, 1
- index $I11, "{", $S10
- lt $I11, 0, rx930_fail
- # rx subrule "quotemod_check" subtype=zerowidth negate=
- rx930_cur."!cursor_pos"(rx930_pos)
- $P10 = rx930_cur."quotemod_check"("c")
- unless $P10, rx930_fail
- # rx subrule "block" subtype=capture negate=
- rx930_cur."!cursor_pos"(rx930_pos)
- $P10 = rx930_cur."block"()
- unless $P10, rx930_fail
- rx930_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("block")
- rx930_pos = $P10."pos"()
+ ge rx934_pos, rx934_eos, rx934_fail
+ sub $I10, rx934_pos, rx934_off
+ substr $S10, rx934_tgt, $I10, 1
+ index $I11, "<", $S10
+ lt $I11, 0, rx934_fail
+ # rx subrule "quote_EXPR" subtype=capture negate=
+ rx934_cur."!cursor_pos"(rx934_pos)
+ $P10 = rx934_cur."quote_EXPR"(":q", ":w")
+ unless $P10, rx934_fail
+ rx934_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quote_EXPR")
+ rx934_pos = $P10."pos"()
# rx pass
- rx930_cur."!cursor_pass"(rx930_pos, "quote_escape:sym<{ }>")
- rx930_cur."!cursor_debug"("PASS ", "quote_escape:sym<{ }>", " at pos=", rx930_pos)
- .return (rx930_cur)
- rx930_fail:
+ rx934_cur."!cursor_pass"(rx934_pos, "circumfix:sym<ang>")
+ rx934_cur."!cursor_debug"("PASS ", "circumfix:sym<ang>", " at pos=", rx934_pos)
+ .return (rx934_cur)
+ rx934_restart:
.annotate 'line', 4
- (rx930_rep, rx930_pos, $I10, $P10) = rx930_cur."!mark_fail"(0)
- lt rx930_pos, -1, rx930_done
- eq rx930_pos, -1, rx930_fail
+ rx934_cur."!cursor_debug"("NEXT ", "circumfix:sym<ang>")
+ rx934_fail:
+ (rx934_rep, rx934_pos, $I10, $P10) = rx934_cur."!mark_fail"(0)
+ lt rx934_pos, -1, rx934_done
+ eq rx934_pos, -1, rx934_fail
jump $I10
- rx930_done:
- rx930_cur."!cursor_fail"()
- rx930_cur."!cursor_debug"("FAIL ", "quote_escape:sym<{ }>")
- .return (rx930_cur)
+ rx934_done:
+ rx934_cur."!cursor_fail"()
+ rx934_cur."!cursor_debug"("FAIL ", "circumfix:sym<ang>")
+ .return (rx934_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<{ }>" :subid("221_1275811487.95429") :method
+.sub "!PREFIX__circumfix:sym<ang>" :subid("231_1280467477.44751") :method
.annotate 'line', 4
- new $P932, "ResizablePMCArray"
- push $P932, "{"
- .return ($P932)
+ new $P936, "ResizablePMCArray"
+ push $P936, "<"
+ .return ($P936)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<esc>" :subid("222_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("232_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx935_tgt
- .local int rx935_pos
- .local int rx935_off
- .local int rx935_eos
- .local int rx935_rep
- .local pmc rx935_cur
- (rx935_cur, rx935_pos, rx935_tgt) = self."!cursor_start"()
- rx935_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
- .lex unicode:"$\x{a2}", rx935_cur
+ .local string rx939_tgt
+ .local int rx939_pos
+ .local int rx939_off
+ .local int rx939_eos
+ .local int rx939_rep
+ .local pmc rx939_cur
+ (rx939_cur, rx939_pos, rx939_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx939_cur
.local pmc match
.lex "$/", match
- length rx935_eos, rx935_tgt
- gt rx935_pos, rx935_eos, rx935_done
- set rx935_off, 0
- lt rx935_pos, 2, rx935_start
- sub rx935_off, rx935_pos, 1
- substr rx935_tgt, rx935_tgt, rx935_off
- rx935_start:
+ length rx939_eos, rx939_tgt
+ gt rx939_pos, rx939_eos, rx939_done
+ set rx939_off, 0
+ lt rx939_pos, 2, rx939_start
+ sub rx939_off, rx939_pos, 1
+ 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}>")
$I10 = self.'from'()
- ne $I10, -1, rxscan938_done
- goto rxscan938_scan
- rxscan938_loop:
- ($P10) = rx935_cur."from"()
+ ne $I10, -1, rxscan942_done
+ goto rxscan942_scan
+ rxscan942_loop:
+ ($P10) = rx939_cur."from"()
inc $P10
- set rx935_pos, $P10
- ge rx935_pos, rx935_eos, rxscan938_done
- rxscan938_scan:
- set_addr $I10, rxscan938_loop
- rx935_cur."!mark_push"(0, rx935_pos, $I10)
- rxscan938_done:
-.annotate 'line', 433
- # rx literal "\\e"
- add $I11, rx935_pos, 2
- gt $I11, rx935_eos, rx935_fail
- sub $I11, rx935_pos, rx935_off
- substr $S10, rx935_tgt, $I11, 2
- ne $S10, "\\e", rx935_fail
- add rx935_pos, 2
- # rx subrule "quotemod_check" subtype=zerowidth negate=
- rx935_cur."!cursor_pos"(rx935_pos)
- $P10 = rx935_cur."quotemod_check"("b")
- unless $P10, rx935_fail
+ set rx939_pos, $P10
+ ge rx939_pos, rx939_eos, rxscan942_done
+ rxscan942_scan:
+ set_addr $I10, rxscan942_loop
+ rx939_cur."!mark_push"(0, rx939_pos, $I10)
+ rxscan942_done:
+.annotate 'line', 439
+ # rx enumcharlist negate=0 zerowidth
+ ge rx939_pos, rx939_eos, rx939_fail
+ sub $I10, rx939_pos, rx939_off
+ substr $S10, rx939_tgt, $I10, 1
+ index $I11, unicode:"\x{ab}", $S10
+ lt $I11, 0, rx939_fail
+ # rx subrule "quote_EXPR" subtype=capture negate=
+ rx939_cur."!cursor_pos"(rx939_pos)
+ $P10 = rx939_cur."quote_EXPR"(":qq", ":w")
+ unless $P10, rx939_fail
+ rx939_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quote_EXPR")
+ rx939_pos = $P10."pos"()
# rx pass
- rx935_cur."!cursor_pass"(rx935_pos, "quote_escape:sym<esc>")
- rx935_cur."!cursor_debug"("PASS ", "quote_escape:sym<esc>", " at pos=", rx935_pos)
- .return (rx935_cur)
- rx935_fail:
+ 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)
+ .return (rx939_cur)
+ rx939_restart:
.annotate 'line', 4
- (rx935_rep, rx935_pos, $I10, $P10) = rx935_cur."!mark_fail"(0)
- lt rx935_pos, -1, rx935_done
- eq rx935_pos, -1, rx935_fail
+ rx939_cur."!cursor_debug"("NEXT ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+ rx939_fail:
+ (rx939_rep, rx939_pos, $I10, $P10) = rx939_cur."!mark_fail"(0)
+ lt rx939_pos, -1, rx939_done
+ eq rx939_pos, -1, rx939_fail
jump $I10
- rx935_done:
- rx935_cur."!cursor_fail"()
- rx935_cur."!cursor_debug"("FAIL ", "quote_escape:sym<esc>")
- .return (rx935_cur)
+ rx939_done:
+ rx939_cur."!cursor_fail"()
+ rx939_cur."!cursor_debug"("FAIL ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+ .return (rx939_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>" :subid("223_1275811487.95429") :method
+.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>" :subid("233_1280467477.44751") :method
.annotate 'line', 4
- new $P937, "ResizablePMCArray"
- push $P937, "\\e"
- .return ($P937)
+ new $P941, "ResizablePMCArray"
+ push $P941, unicode:"\x{ab}"
+ .return ($P941)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<( )>" :subid("224_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "circumfix:sym<{ }>" :subid("234_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx940_tgt
- .local int rx940_pos
- .local int rx940_off
- .local int rx940_eos
- .local int rx940_rep
- .local pmc rx940_cur
- (rx940_cur, rx940_pos, rx940_tgt) = self."!cursor_start"()
- rx940_cur."!cursor_debug"("START ", "circumfix:sym<( )>")
- rx940_cur."!cursor_caparray"("EXPR")
- .lex unicode:"$\x{a2}", rx940_cur
+ .local string rx944_tgt
+ .local int rx944_pos
+ .local int rx944_off
+ .local int rx944_eos
+ .local int rx944_rep
+ .local pmc rx944_cur
+ (rx944_cur, rx944_pos, rx944_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx944_cur
.local pmc match
.lex "$/", match
- length rx940_eos, rx940_tgt
- gt rx940_pos, rx940_eos, rx940_done
- set rx940_off, 0
- lt rx940_pos, 2, rx940_start
- sub rx940_off, rx940_pos, 1
- substr rx940_tgt, rx940_tgt, rx940_off
- rx940_start:
+ length rx944_eos, rx944_tgt
+ gt rx944_pos, rx944_eos, rx944_done
+ set rx944_off, 0
+ lt rx944_pos, 2, rx944_start
+ sub rx944_off, rx944_pos, 1
+ substr rx944_tgt, rx944_tgt, rx944_off
+ rx944_start:
+ eq $I10, 1, rx944_restart
+ rx944_cur."!cursor_debug"("START ", "circumfix:sym<{ }>")
$I10 = self.'from'()
- ne $I10, -1, rxscan944_done
- goto rxscan944_scan
- rxscan944_loop:
- ($P10) = rx940_cur."from"()
+ ne $I10, -1, rxscan947_done
+ goto rxscan947_scan
+ rxscan947_loop:
+ ($P10) = rx944_cur."from"()
inc $P10
- set rx940_pos, $P10
- ge rx940_pos, rx940_eos, rxscan944_done
- rxscan944_scan:
- set_addr $I10, rxscan944_loop
- rx940_cur."!mark_push"(0, rx940_pos, $I10)
- rxscan944_done:
-.annotate 'line', 435
- # rx literal "("
- add $I11, rx940_pos, 1
- gt $I11, rx940_eos, rx940_fail
- sub $I11, rx940_pos, rx940_off
- substr $S10, rx940_tgt, $I11, 1
- ne $S10, "(", rx940_fail
- add rx940_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx940_cur."!cursor_pos"(rx940_pos)
- $P10 = rx940_cur."ws"()
- unless $P10, rx940_fail
- rx940_pos = $P10."pos"()
- # rx rxquantr945 ** 0..1
- set_addr $I946, rxquantr945_done
- rx940_cur."!mark_push"(0, rx940_pos, $I946)
- rxquantr945_loop:
- # rx subrule "EXPR" subtype=capture negate=
- rx940_cur."!cursor_pos"(rx940_pos)
- $P10 = rx940_cur."EXPR"()
- unless $P10, rx940_fail
- rx940_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("EXPR")
- rx940_pos = $P10."pos"()
- (rx940_rep) = rx940_cur."!mark_commit"($I946)
- rxquantr945_done:
- # rx literal ")"
- add $I11, rx940_pos, 1
- gt $I11, rx940_eos, rx940_fail
- sub $I11, rx940_pos, rx940_off
- substr $S10, rx940_tgt, $I11, 1
- ne $S10, ")", rx940_fail
- add rx940_pos, 1
+ set rx944_pos, $P10
+ ge rx944_pos, rx944_eos, rxscan947_done
+ rxscan947_scan:
+ set_addr $I10, rxscan947_loop
+ rx944_cur."!mark_push"(0, rx944_pos, $I10)
+ rxscan947_done:
+.annotate 'line', 440
+ # rx enumcharlist negate=0 zerowidth
+ ge rx944_pos, rx944_eos, rx944_fail
+ sub $I10, rx944_pos, rx944_off
+ substr $S10, rx944_tgt, $I10, 1
+ index $I11, "{", $S10
+ lt $I11, 0, rx944_fail
+ # rx subrule "pblock" subtype=capture negate=
+ rx944_cur."!cursor_pos"(rx944_pos)
+ $P10 = rx944_cur."pblock"()
+ unless $P10, rx944_fail
+ rx944_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("pblock")
+ rx944_pos = $P10."pos"()
# rx pass
- rx940_cur."!cursor_pass"(rx940_pos, "circumfix:sym<( )>")
- rx940_cur."!cursor_debug"("PASS ", "circumfix:sym<( )>", " at pos=", rx940_pos)
- .return (rx940_cur)
- rx940_fail:
+ rx944_cur."!cursor_pass"(rx944_pos, "circumfix:sym<{ }>")
+ rx944_cur."!cursor_debug"("PASS ", "circumfix:sym<{ }>", " at pos=", rx944_pos)
+ .return (rx944_cur)
+ rx944_restart:
.annotate 'line', 4
- (rx940_rep, rx940_pos, $I10, $P10) = rx940_cur."!mark_fail"(0)
- lt rx940_pos, -1, rx940_done
- eq rx940_pos, -1, rx940_fail
+ rx944_cur."!cursor_debug"("NEXT ", "circumfix:sym<{ }>")
+ rx944_fail:
+ (rx944_rep, rx944_pos, $I10, $P10) = rx944_cur."!mark_fail"(0)
+ lt rx944_pos, -1, rx944_done
+ eq rx944_pos, -1, rx944_fail
jump $I10
- rx940_done:
- rx940_cur."!cursor_fail"()
- rx940_cur."!cursor_debug"("FAIL ", "circumfix:sym<( )>")
- .return (rx940_cur)
+ rx944_done:
+ rx944_cur."!cursor_fail"()
+ rx944_cur."!cursor_debug"("FAIL ", "circumfix:sym<{ }>")
+ .return (rx944_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<( )>" :subid("225_1275811487.95429") :method
+.sub "!PREFIX__circumfix:sym<{ }>" :subid("235_1280467477.44751") :method
.annotate 'line', 4
- $P942 = self."!PREFIX__!subrule"("ws", "(")
- new $P943, "ResizablePMCArray"
- push $P943, $P942
- .return ($P943)
+ new $P946, "ResizablePMCArray"
+ push $P946, "{"
+ .return ($P946)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<[ ]>" :subid("226_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "circumfix:sym<sigil>" :subid("236_1280467477.44751") :method :outer("11_1280467477.44751")
.annotate 'line', 4
- .local string rx948_tgt
- .local int rx948_pos
- .local int rx948_off
- .local int rx948_eos
- .local int rx948_rep
- .local pmc rx948_cur
- (rx948_cur, rx948_pos, rx948_tgt) = self."!cursor_start"()
- rx948_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>")
- rx948_cur."!cursor_caparray"("EXPR")
- .lex unicode:"$\x{a2}", rx948_cur
+ .local string rx949_tgt
+ .local int rx949_pos
+ .local int rx949_off
+ .local int rx949_eos
+ .local int rx949_rep
+ .local pmc rx949_cur
+ (rx949_cur, rx949_pos, rx949_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx949_cur
.local pmc match
.lex "$/", match
- length rx948_eos, rx948_tgt
- gt rx948_pos, rx948_eos, rx948_done
- set rx948_off, 0
- lt rx948_pos, 2, rx948_start
- sub rx948_off, rx948_pos, 1
- substr rx948_tgt, rx948_tgt, rx948_off
- rx948_start:
+ length rx949_eos, rx949_tgt
+ gt rx949_pos, rx949_eos, rx949_done
+ set rx949_off, 0
+ lt rx949_pos, 2, rx949_start
+ sub rx949_off, rx949_pos, 1
+ substr rx949_tgt, rx949_tgt, rx949_off
+ rx949_start:
+ eq $I10, 1, rx949_restart
+ rx949_cur."!cursor_debug"("START ", "circumfix:sym<sigil>")
$I10 = self.'from'()
- ne $I10, -1, rxscan952_done
- goto rxscan952_scan
- rxscan952_loop:
- ($P10) = rx948_cur."from"()
+ ne $I10, -1, rxscan953_done
+ goto rxscan953_scan
+ rxscan953_loop:
+ ($P10) = rx949_cur."from"()
inc $P10
- set rx948_pos, $P10
- ge rx948_pos, rx948_eos, rxscan952_done
- rxscan952_scan:
- set_addr $I10, rxscan952_loop
- rx948_cur."!mark_push"(0, rx948_pos, $I10)
- rxscan952_done:
-.annotate 'line', 436
- # rx literal "["
- add $I11, rx948_pos, 1
- gt $I11, rx948_eos, rx948_fail
- sub $I11, rx948_pos, rx948_off
- substr $S10, rx948_tgt, $I11, 1
- ne $S10, "[", rx948_fail
- add rx948_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx948_cur."!cursor_pos"(rx948_pos)
- $P10 = rx948_cur."ws"()
- unless $P10, rx948_fail
- rx948_pos = $P10."pos"()
- # rx rxquantr953 ** 0..1
- set_addr $I954, rxquantr953_done
- rx948_cur."!mark_push"(0, rx948_pos, $I954)
- rxquantr953_loop:
- # rx subrule "EXPR" subtype=capture negate=
- rx948_cur."!cursor_pos"(rx948_pos)
- $P10 = rx948_cur."EXPR"()
- unless $P10, rx948_fail
- rx948_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("EXPR")
- rx948_pos = $P10."pos"()
- (rx948_rep) = rx948_cur."!mark_commit"($I954)
- rxquantr953_done:
- # rx literal "]"
- add $I11, rx948_pos, 1
- gt $I11, rx948_eos, rx948_fail
- sub $I11, rx948_pos, rx948_off
- substr $S10, rx948_tgt, $I11, 1
- ne $S10, "]", rx948_fail
- add rx948_pos, 1
- # rx pass
- rx948_cur."!cursor_pass"(rx948_pos, "circumfix:sym<[ ]>")
- rx948_cur."!cursor_debug"("PASS ", "circumfix:sym<[ ]>", " at pos=", rx948_pos)
- .return (rx948_cur)
- rx948_fail:
-.annotate 'line', 4
- (rx948_rep, rx948_pos, $I10, $P10) = rx948_cur."!mark_fail"(0)
- lt rx948_pos, -1, rx948_done
- eq rx948_pos, -1, rx948_fail
- jump $I10
- rx948_done:
- rx948_cur."!cursor_fail"()
- rx948_cur."!cursor_debug"("FAIL ", "circumfix:sym<[ ]>")
- .return (rx948_cur)
+ set rx949_pos, $P10
+ ge rx949_pos, rx949_eos, rxscan953_done
+ rxscan953_scan:
+ set_addr $I10, rxscan953_loop
+ rx949_cur."!mark_push"(0, rx949_pos, $I10)
+ rxscan953_done:
+.annotate 'line', 441
+ # rx subrule "sigil" subtype=capture negate=
+ rx949_cur."!cursor_pos"(rx949_pos)
+ $P10 = rx949_cur."sigil"()
+ unless $P10, rx949_fail
+ rx949_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sigil")
+ rx949_pos = $P10."pos"()
+ # rx literal "("
+ 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
+ add rx949_pos, 1
+ # rx subrule "semilist" subtype=capture negate=
+ rx949_cur."!cursor_pos"(rx949_pos)
+ $P10 = rx949_cur."semilist"()
+ unless $P10, rx949_fail
+ rx949_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("semilist")
+ rx949_pos = $P10."pos"()
+ alt954_0:
+ set_addr $I10, alt954_1
+ rx949_cur."!mark_push"(0, rx949_pos, $I10)
+ # rx literal ")"
+ 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
+ add rx949_pos, 1
+ goto alt954_end
+ alt954_1:
+ # rx subrule "FAILGOAL" subtype=method negate=
+ rx949_cur."!cursor_pos"(rx949_pos)
+ $P10 = rx949_cur."FAILGOAL"("')'")
+ unless $P10, rx949_fail
+ goto rxsubrule956_pass
+ rxsubrule956_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx949_fail
+ rxsubrule956_pass:
+ set_addr $I10, rxsubrule956_back
+ rx949_cur."!mark_push"(0, rx949_pos, $I10, $P10)
+ rx949_pos = $P10."pos"()
+ 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)
+ .return (rx949_cur)
+ rx949_restart:
+.annotate 'line', 4
+ rx949_cur."!cursor_debug"("NEXT ", "circumfix:sym<sigil>")
+ rx949_fail:
+ (rx949_rep, rx949_pos, $I10, $P10) = rx949_cur."!mark_fail"(0)
+ lt rx949_pos, -1, rx949_done
+ eq rx949_pos, -1, rx949_fail
+ jump $I10
+ rx949_done:
+ rx949_cur."!cursor_fail"()
+ rx949_cur."!cursor_debug"("FAIL ", "circumfix:sym<sigil>")
+ .return (rx949_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<[ ]>" :subid("227_1275811487.95429") :method
-.annotate 'line', 4
- $P950 = self."!PREFIX__!subrule"("ws", "[")
- new $P951, "ResizablePMCArray"
- push $P951, $P950
- .return ($P951)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<ang>" :subid("228_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx956_tgt
- .local int rx956_pos
- .local int rx956_off
- .local int rx956_eos
- .local int rx956_rep
- .local pmc rx956_cur
- (rx956_cur, rx956_pos, rx956_tgt) = self."!cursor_start"()
- rx956_cur."!cursor_debug"("START ", "circumfix:sym<ang>")
- .lex unicode:"$\x{a2}", rx956_cur
- .local pmc match
- .lex "$/", match
- length rx956_eos, rx956_tgt
- gt rx956_pos, rx956_eos, rx956_done
- set rx956_off, 0
- lt rx956_pos, 2, rx956_start
- sub rx956_off, rx956_pos, 1
- substr rx956_tgt, rx956_tgt, rx956_off
- rx956_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan959_done
- goto rxscan959_scan
- rxscan959_loop:
- ($P10) = rx956_cur."from"()
- inc $P10
- set rx956_pos, $P10
- ge rx956_pos, rx956_eos, rxscan959_done
- rxscan959_scan:
- set_addr $I10, rxscan959_loop
- rx956_cur."!mark_push"(0, rx956_pos, $I10)
- rxscan959_done:
-.annotate 'line', 437
- # rx enumcharlist negate=0 zerowidth
- ge rx956_pos, rx956_eos, rx956_fail
- sub $I10, rx956_pos, rx956_off
- substr $S10, rx956_tgt, $I10, 1
- index $I11, "<", $S10
- lt $I11, 0, rx956_fail
- # rx subrule "quote_EXPR" subtype=capture negate=
- rx956_cur."!cursor_pos"(rx956_pos)
- $P10 = rx956_cur."quote_EXPR"(":q", ":w")
- unless $P10, rx956_fail
- rx956_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote_EXPR")
- rx956_pos = $P10."pos"()
+.sub "!PREFIX__circumfix:sym<sigil>" :subid("237_1280467477.44751") :method
+.annotate 'line', 4
+ $P951 = self."!PREFIX__!subrule"("sigil", "")
+ new $P952, "ResizablePMCArray"
+ push $P952, $P951
+ .return ($P952)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "semilist" :subid("238_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 4
+ .local string rx958_tgt
+ .local int rx958_pos
+ .local int rx958_off
+ .local int rx958_eos
+ .local int rx958_rep
+ .local pmc rx958_cur
+ (rx958_cur, rx958_pos, rx958_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx958_cur
+ .local pmc match
+ .lex "$/", match
+ length rx958_eos, rx958_tgt
+ gt rx958_pos, rx958_eos, rx958_done
+ set rx958_off, 0
+ lt rx958_pos, 2, rx958_start
+ sub rx958_off, rx958_pos, 1
+ substr rx958_tgt, rx958_tgt, rx958_off
+ rx958_start:
+ eq $I10, 1, rx958_restart
+ rx958_cur."!cursor_debug"("START ", "semilist")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan962_done
+ goto rxscan962_scan
+ rxscan962_loop:
+ ($P10) = rx958_cur."from"()
+ inc $P10
+ set rx958_pos, $P10
+ ge rx958_pos, rx958_eos, rxscan962_done
+ rxscan962_scan:
+ set_addr $I10, rxscan962_loop
+ rx958_cur."!mark_push"(0, rx958_pos, $I10)
+ rxscan962_done:
+.annotate 'line', 443
+ # rx subrule "ws" subtype=method negate=
+ rx958_cur."!cursor_pos"(rx958_pos)
+ $P10 = rx958_cur."ws"()
+ unless $P10, rx958_fail
+ rx958_pos = $P10."pos"()
+ # rx subrule "statement" subtype=capture negate=
+ rx958_cur."!cursor_pos"(rx958_pos)
+ $P10 = rx958_cur."statement"()
+ unless $P10, rx958_fail
+ rx958_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("statement")
+ rx958_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx958_cur."!cursor_pos"(rx958_pos)
+ $P10 = rx958_cur."ws"()
+ unless $P10, rx958_fail
+ rx958_pos = $P10."pos"()
# rx pass
- rx956_cur."!cursor_pass"(rx956_pos, "circumfix:sym<ang>")
- rx956_cur."!cursor_debug"("PASS ", "circumfix:sym<ang>", " at pos=", rx956_pos)
- .return (rx956_cur)
- rx956_fail:
+ rx958_cur."!cursor_pass"(rx958_pos, "semilist")
+ rx958_cur."!cursor_debug"("PASS ", "semilist", " at pos=", rx958_pos)
+ .return (rx958_cur)
+ rx958_restart:
.annotate 'line', 4
- (rx956_rep, rx956_pos, $I10, $P10) = rx956_cur."!mark_fail"(0)
- lt rx956_pos, -1, rx956_done
- eq rx956_pos, -1, rx956_fail
+ rx958_cur."!cursor_debug"("NEXT ", "semilist")
+ rx958_fail:
+ (rx958_rep, rx958_pos, $I10, $P10) = rx958_cur."!mark_fail"(0)
+ lt rx958_pos, -1, rx958_done
+ eq rx958_pos, -1, rx958_fail
jump $I10
- rx956_done:
- rx956_cur."!cursor_fail"()
- rx956_cur."!cursor_debug"("FAIL ", "circumfix:sym<ang>")
- .return (rx956_cur)
+ rx958_done:
+ rx958_cur."!cursor_fail"()
+ rx958_cur."!cursor_debug"("FAIL ", "semilist")
+ .return (rx958_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<ang>" :subid("229_1275811487.95429") :method
+.sub "!PREFIX__semilist" :subid("239_1280467477.44751") :method
.annotate 'line', 4
- new $P958, "ResizablePMCArray"
- push $P958, "<"
- .return ($P958)
+ $P960 = self."!PREFIX__!subrule"("ws", "")
+ new $P961, "ResizablePMCArray"
+ push $P961, $P960
+ .return ($P961)
.end
.namespace ["NQP";"Grammar"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("230_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx961_tgt
- .local int rx961_pos
- .local int rx961_off
- .local int rx961_eos
- .local int rx961_rep
- .local pmc rx961_cur
- (rx961_cur, rx961_pos, rx961_tgt) = self."!cursor_start"()
- rx961_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
- .lex unicode:"$\x{a2}", rx961_cur
+.sub "infixish" :subid("240_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+ .local string rx966_tgt
+ .local int rx966_pos
+ .local int rx966_off
+ .local int rx966_eos
+ .local int rx966_rep
+ .local pmc rx966_cur
+ (rx966_cur, rx966_pos, rx966_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx966_cur
.local pmc match
.lex "$/", match
- length rx961_eos, rx961_tgt
- gt rx961_pos, rx961_eos, rx961_done
- set rx961_off, 0
- lt rx961_pos, 2, rx961_start
- sub rx961_off, rx961_pos, 1
- substr rx961_tgt, rx961_tgt, rx961_off
- rx961_start:
+ length rx966_eos, rx966_tgt
+ gt rx966_pos, rx966_eos, rx966_done
+ set rx966_off, 0
+ lt rx966_pos, 2, rx966_start
+ sub rx966_off, rx966_pos, 1
+ substr rx966_tgt, rx966_tgt, rx966_off
+ rx966_start:
+ eq $I10, 1, rx966_restart
+ rx966_cur."!cursor_debug"("START ", "infixish")
$I10 = self.'from'()
- ne $I10, -1, rxscan964_done
- goto rxscan964_scan
- rxscan964_loop:
- ($P10) = rx961_cur."from"()
- inc $P10
- set rx961_pos, $P10
- ge rx961_pos, rx961_eos, rxscan964_done
- rxscan964_scan:
- set_addr $I10, rxscan964_loop
- rx961_cur."!mark_push"(0, rx961_pos, $I10)
- rxscan964_done:
-.annotate 'line', 438
- # rx enumcharlist negate=0 zerowidth
- ge rx961_pos, rx961_eos, rx961_fail
- sub $I10, rx961_pos, rx961_off
- substr $S10, rx961_tgt, $I10, 1
- index $I11, unicode:"\x{ab}", $S10
- lt $I11, 0, rx961_fail
- # rx subrule "quote_EXPR" subtype=capture negate=
- rx961_cur."!cursor_pos"(rx961_pos)
- $P10 = rx961_cur."quote_EXPR"(":qq", ":w")
- unless $P10, rx961_fail
- rx961_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote_EXPR")
- rx961_pos = $P10."pos"()
- # rx pass
- rx961_cur."!cursor_pass"(rx961_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
- rx961_cur."!cursor_debug"("PASS ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx961_pos)
- .return (rx961_cur)
- rx961_fail:
-.annotate 'line', 4
- (rx961_rep, rx961_pos, $I10, $P10) = rx961_cur."!mark_fail"(0)
- lt rx961_pos, -1, rx961_done
- eq rx961_pos, -1, rx961_fail
- jump $I10
- rx961_done:
- rx961_cur."!cursor_fail"()
- rx961_cur."!cursor_debug"("FAIL ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
- .return (rx961_cur)
- .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>" :subid("231_1275811487.95429") :method
-.annotate 'line', 4
- new $P963, "ResizablePMCArray"
- push $P963, unicode:"\x{ab}"
- .return ($P963)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<{ }>" :subid("232_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx966_tgt
- .local int rx966_pos
- .local int rx966_off
- .local int rx966_eos
- .local int rx966_rep
- .local pmc rx966_cur
- (rx966_cur, rx966_pos, rx966_tgt) = self."!cursor_start"()
- rx966_cur."!cursor_debug"("START ", "circumfix:sym<{ }>")
- .lex unicode:"$\x{a2}", rx966_cur
- .local pmc match
- .lex "$/", match
- length rx966_eos, rx966_tgt
- gt rx966_pos, rx966_eos, rx966_done
- set rx966_off, 0
- lt rx966_pos, 2, rx966_start
- sub rx966_off, rx966_pos, 1
- substr rx966_tgt, rx966_tgt, rx966_off
- rx966_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan969_done
- goto rxscan969_scan
- rxscan969_loop:
- ($P10) = rx966_cur."from"()
+ ne $I10, -1, rxscan969_done
+ goto rxscan969_scan
+ rxscan969_loop:
+ ($P10) = rx966_cur."from"()
inc $P10
set rx966_pos, $P10
ge rx966_pos, rx966_eos, rxscan969_done
@@ -11573,58 +12433,57 @@
set_addr $I10, rxscan969_loop
rx966_cur."!mark_push"(0, rx966_pos, $I10)
rxscan969_done:
-.annotate 'line', 439
- # rx enumcharlist negate=0 zerowidth
- ge rx966_pos, rx966_eos, rx966_fail
- sub $I10, rx966_pos, rx966_off
- substr $S10, rx966_tgt, $I10, 1
- index $I11, "{", $S10
- lt $I11, 0, rx966_fail
- # rx subrule "pblock" subtype=capture negate=
+.annotate 'line', 466
+ # rx subrule "infixstopper" subtype=zerowidth negate=1
rx966_cur."!cursor_pos"(rx966_pos)
- $P10 = rx966_cur."pblock"()
+ $P10 = rx966_cur."infixstopper"()
+ if $P10, rx966_fail
+ # rx subrule "infix" subtype=capture negate=
+ rx966_cur."!cursor_pos"(rx966_pos)
+ $P10 = rx966_cur."infix"()
unless $P10, rx966_fail
rx966_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("pblock")
+ $P10."!cursor_names"("OPER=infix")
rx966_pos = $P10."pos"()
# rx pass
- rx966_cur."!cursor_pass"(rx966_pos, "circumfix:sym<{ }>")
- rx966_cur."!cursor_debug"("PASS ", "circumfix:sym<{ }>", " at pos=", rx966_pos)
+ rx966_cur."!cursor_pass"(rx966_pos, "infixish")
+ rx966_cur."!cursor_debug"("PASS ", "infixish", " at pos=", rx966_pos)
.return (rx966_cur)
+ rx966_restart:
+.annotate 'line', 447
+ rx966_cur."!cursor_debug"("NEXT ", "infixish")
rx966_fail:
-.annotate 'line', 4
(rx966_rep, rx966_pos, $I10, $P10) = rx966_cur."!mark_fail"(0)
lt rx966_pos, -1, rx966_done
eq rx966_pos, -1, rx966_fail
jump $I10
rx966_done:
rx966_cur."!cursor_fail"()
- rx966_cur."!cursor_debug"("FAIL ", "circumfix:sym<{ }>")
+ rx966_cur."!cursor_debug"("FAIL ", "infixish")
.return (rx966_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<{ }>" :subid("233_1275811487.95429") :method
-.annotate 'line', 4
+.sub "!PREFIX__infixish" :subid("241_1280467477.44751") :method
+.annotate 'line', 447
new $P968, "ResizablePMCArray"
- push $P968, "{"
+ push $P968, ""
.return ($P968)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<sigil>" :subid("234_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
+.sub "infixstopper" :subid("242_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx971_tgt
.local int rx971_pos
.local int rx971_off
.local int rx971_eos
.local int rx971_rep
.local pmc rx971_cur
- (rx971_cur, rx971_pos, rx971_tgt) = self."!cursor_start"()
- rx971_cur."!cursor_debug"("START ", "circumfix:sym<sigil>")
+ (rx971_cur, rx971_pos, rx971_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx971_cur
.local pmc match
.lex "$/", match
@@ -11635,763 +12494,808 @@
sub rx971_off, rx971_pos, 1
substr rx971_tgt, rx971_tgt, rx971_off
rx971_start:
+ eq $I10, 1, rx971_restart
+ rx971_cur."!cursor_debug"("START ", "infixstopper")
$I10 = self.'from'()
- ne $I10, -1, rxscan975_done
- goto rxscan975_scan
- rxscan975_loop:
+ ne $I10, -1, rxscan974_done
+ goto rxscan974_scan
+ rxscan974_loop:
($P10) = rx971_cur."from"()
inc $P10
set rx971_pos, $P10
- ge rx971_pos, rx971_eos, rxscan975_done
- rxscan975_scan:
- set_addr $I10, rxscan975_loop
- rx971_cur."!mark_push"(0, rx971_pos, $I10)
- rxscan975_done:
-.annotate 'line', 440
- # rx subrule "sigil" subtype=capture negate=
- rx971_cur."!cursor_pos"(rx971_pos)
- $P10 = rx971_cur."sigil"()
- unless $P10, rx971_fail
- rx971_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sigil")
- rx971_pos = $P10."pos"()
- # rx literal "("
- add $I11, rx971_pos, 1
- gt $I11, rx971_eos, rx971_fail
- sub $I11, rx971_pos, rx971_off
- substr $S10, rx971_tgt, $I11, 1
- ne $S10, "(", rx971_fail
- add rx971_pos, 1
- # rx subrule "semilist" subtype=capture negate=
- rx971_cur."!cursor_pos"(rx971_pos)
- $P10 = rx971_cur."semilist"()
- unless $P10, rx971_fail
- rx971_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("semilist")
- rx971_pos = $P10."pos"()
- alt976_0:
- set_addr $I10, alt976_1
+ ge rx971_pos, rx971_eos, rxscan974_done
+ rxscan974_scan:
+ set_addr $I10, rxscan974_loop
rx971_cur."!mark_push"(0, rx971_pos, $I10)
- # rx literal ")"
- add $I11, rx971_pos, 1
- gt $I11, rx971_eos, rx971_fail
- sub $I11, rx971_pos, rx971_off
- substr $S10, rx971_tgt, $I11, 1
- ne $S10, ")", rx971_fail
- add rx971_pos, 1
- goto alt976_end
- alt976_1:
- # rx subrule "FAILGOAL" subtype=method negate=
+ rxscan974_done:
+.annotate 'line', 467
+ # rx subrule "lambda" subtype=zerowidth negate=
rx971_cur."!cursor_pos"(rx971_pos)
- $P10 = rx971_cur."FAILGOAL"("')'")
+ $P10 = rx971_cur."lambda"()
unless $P10, rx971_fail
- rx971_pos = $P10."pos"()
- alt976_end:
# rx pass
- rx971_cur."!cursor_pass"(rx971_pos, "circumfix:sym<sigil>")
- rx971_cur."!cursor_debug"("PASS ", "circumfix:sym<sigil>", " at pos=", rx971_pos)
+ rx971_cur."!cursor_pass"(rx971_pos, "infixstopper")
+ rx971_cur."!cursor_debug"("PASS ", "infixstopper", " at pos=", rx971_pos)
.return (rx971_cur)
+ rx971_restart:
+.annotate 'line', 447
+ rx971_cur."!cursor_debug"("NEXT ", "infixstopper")
rx971_fail:
-.annotate 'line', 4
(rx971_rep, rx971_pos, $I10, $P10) = rx971_cur."!mark_fail"(0)
lt rx971_pos, -1, rx971_done
eq rx971_pos, -1, rx971_fail
jump $I10
rx971_done:
rx971_cur."!cursor_fail"()
- rx971_cur."!cursor_debug"("FAIL ", "circumfix:sym<sigil>")
+ rx971_cur."!cursor_debug"("FAIL ", "infixstopper")
.return (rx971_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<sigil>" :subid("235_1275811487.95429") :method
-.annotate 'line', 4
- $P973 = self."!PREFIX__!subrule"("sigil", "")
- new $P974, "ResizablePMCArray"
- push $P974, $P973
- .return ($P974)
+.sub "!PREFIX__infixstopper" :subid("243_1280467477.44751") :method
+.annotate 'line', 447
+ new $P973, "ResizablePMCArray"
+ push $P973, ""
+ .return ($P973)
.end
.namespace ["NQP";"Grammar"]
-.sub "semilist" :subid("236_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
- .local string rx979_tgt
- .local int rx979_pos
- .local int rx979_off
- .local int rx979_eos
- .local int rx979_rep
- .local pmc rx979_cur
- (rx979_cur, rx979_pos, rx979_tgt) = self."!cursor_start"()
- rx979_cur."!cursor_debug"("START ", "semilist")
- .lex unicode:"$\x{a2}", rx979_cur
- .local pmc match
- .lex "$/", match
- length rx979_eos, rx979_tgt
- gt rx979_pos, rx979_eos, rx979_done
- set rx979_off, 0
- lt rx979_pos, 2, rx979_start
- sub rx979_off, rx979_pos, 1
- substr rx979_tgt, rx979_tgt, rx979_off
- rx979_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan983_done
- goto rxscan983_scan
- rxscan983_loop:
- ($P10) = rx979_cur."from"()
- inc $P10
- set rx979_pos, $P10
- ge rx979_pos, rx979_eos, rxscan983_done
- rxscan983_scan:
- set_addr $I10, rxscan983_loop
- rx979_cur."!mark_push"(0, rx979_pos, $I10)
- rxscan983_done:
-.annotate 'line', 442
- # rx subrule "ws" subtype=method negate=
- rx979_cur."!cursor_pos"(rx979_pos)
- $P10 = rx979_cur."ws"()
- unless $P10, rx979_fail
- rx979_pos = $P10."pos"()
- # rx subrule "statement" subtype=capture negate=
- rx979_cur."!cursor_pos"(rx979_pos)
- $P10 = rx979_cur."statement"()
- unless $P10, rx979_fail
- rx979_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("statement")
- rx979_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx979_cur."!cursor_pos"(rx979_pos)
- $P10 = rx979_cur."ws"()
- unless $P10, rx979_fail
- rx979_pos = $P10."pos"()
+.sub "postcircumfix:sym<[ ]>" :subid("244_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+ .local string rx976_tgt
+ .local int rx976_pos
+ .local int rx976_off
+ .local int rx976_eos
+ .local int rx976_rep
+ .local pmc rx976_cur
+ (rx976_cur, rx976_pos, rx976_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx976_cur
+ .local pmc match
+ .lex "$/", match
+ length rx976_eos, rx976_tgt
+ gt rx976_pos, rx976_eos, rx976_done
+ set rx976_off, 0
+ lt rx976_pos, 2, rx976_start
+ sub rx976_off, rx976_pos, 1
+ substr rx976_tgt, rx976_tgt, rx976_off
+ rx976_start:
+ eq $I10, 1, rx976_restart
+ rx976_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan980_done
+ goto rxscan980_scan
+ rxscan980_loop:
+ ($P10) = rx976_cur."from"()
+ inc $P10
+ set rx976_pos, $P10
+ ge rx976_pos, rx976_eos, rxscan980_done
+ rxscan980_scan:
+ set_addr $I10, rxscan980_loop
+ rx976_cur."!mark_push"(0, rx976_pos, $I10)
+ rxscan980_done:
+.annotate 'line', 470
+ # rx literal "["
+ 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
+ add rx976_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx976_cur."!cursor_pos"(rx976_pos)
+ $P10 = rx976_cur."ws"()
+ unless $P10, rx976_fail
+ rx976_pos = $P10."pos"()
+ # rx subrule "EXPR" subtype=capture negate=
+ rx976_cur."!cursor_pos"(rx976_pos)
+ $P10 = rx976_cur."EXPR"()
+ unless $P10, rx976_fail
+ rx976_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("EXPR")
+ rx976_pos = $P10."pos"()
+ # rx literal "]"
+ 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
+ add rx976_pos, 1
+.annotate 'line', 471
+ # rx subrule "O" subtype=capture negate=
+ rx976_cur."!cursor_pos"(rx976_pos)
+ $P10 = rx976_cur."O"("%methodop")
+ unless $P10, rx976_fail
+ rx976_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("O")
+ rx976_pos = $P10."pos"()
+.annotate 'line', 469
# rx pass
- rx979_cur."!cursor_pass"(rx979_pos, "semilist")
- rx979_cur."!cursor_debug"("PASS ", "semilist", " at pos=", rx979_pos)
- .return (rx979_cur)
- rx979_fail:
-.annotate 'line', 4
- (rx979_rep, rx979_pos, $I10, $P10) = rx979_cur."!mark_fail"(0)
- lt rx979_pos, -1, rx979_done
- eq rx979_pos, -1, rx979_fail
+ rx976_cur."!cursor_pass"(rx976_pos, "postcircumfix:sym<[ ]>")
+ rx976_cur."!cursor_debug"("PASS ", "postcircumfix:sym<[ ]>", " at pos=", rx976_pos)
+ .return (rx976_cur)
+ rx976_restart:
+.annotate 'line', 447
+ rx976_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<[ ]>")
+ rx976_fail:
+ (rx976_rep, rx976_pos, $I10, $P10) = rx976_cur."!mark_fail"(0)
+ lt rx976_pos, -1, rx976_done
+ eq rx976_pos, -1, rx976_fail
jump $I10
- rx979_done:
- rx979_cur."!cursor_fail"()
- rx979_cur."!cursor_debug"("FAIL ", "semilist")
- .return (rx979_cur)
+ rx976_done:
+ rx976_cur."!cursor_fail"()
+ rx976_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<[ ]>")
+ .return (rx976_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__semilist" :subid("237_1275811487.95429") :method
-.annotate 'line', 4
- $P981 = self."!PREFIX__!subrule"("ws", "")
- new $P982, "ResizablePMCArray"
- push $P982, $P981
- .return ($P982)
+.sub "!PREFIX__postcircumfix:sym<[ ]>" :subid("245_1280467477.44751") :method
+.annotate 'line', 447
+ $P978 = self."!PREFIX__!subrule"("ws", "[")
+ new $P979, "ResizablePMCArray"
+ push $P979, $P978
+ .return ($P979)
.end
.namespace ["NQP";"Grammar"]
-.sub "infixish" :subid("238_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
- .local string rx987_tgt
- .local int rx987_pos
- .local int rx987_off
- .local int rx987_eos
- .local int rx987_rep
- .local pmc rx987_cur
- (rx987_cur, rx987_pos, rx987_tgt) = self."!cursor_start"()
- rx987_cur."!cursor_debug"("START ", "infixish")
- .lex unicode:"$\x{a2}", rx987_cur
- .local pmc match
- .lex "$/", match
- length rx987_eos, rx987_tgt
- gt rx987_pos, rx987_eos, rx987_done
- set rx987_off, 0
- lt rx987_pos, 2, rx987_start
- sub rx987_off, rx987_pos, 1
- substr rx987_tgt, rx987_tgt, rx987_off
- rx987_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan990_done
- goto rxscan990_scan
- rxscan990_loop:
- ($P10) = rx987_cur."from"()
- inc $P10
- set rx987_pos, $P10
- ge rx987_pos, rx987_eos, rxscan990_done
- rxscan990_scan:
- set_addr $I10, rxscan990_loop
- rx987_cur."!mark_push"(0, rx987_pos, $I10)
- rxscan990_done:
-.annotate 'line', 465
- # rx subrule "infixstopper" subtype=zerowidth negate=1
- rx987_cur."!cursor_pos"(rx987_pos)
- $P10 = rx987_cur."infixstopper"()
- if $P10, rx987_fail
- # rx subrule "infix" subtype=capture negate=
- rx987_cur."!cursor_pos"(rx987_pos)
- $P10 = rx987_cur."infix"()
- unless $P10, rx987_fail
- rx987_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("OPER=infix")
- rx987_pos = $P10."pos"()
+.sub "postcircumfix:sym<{ }>" :subid("246_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+ .local string rx982_tgt
+ .local int rx982_pos
+ .local int rx982_off
+ .local int rx982_eos
+ .local int rx982_rep
+ .local pmc rx982_cur
+ (rx982_cur, rx982_pos, rx982_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx982_cur
+ .local pmc match
+ .lex "$/", match
+ length rx982_eos, rx982_tgt
+ gt rx982_pos, rx982_eos, rx982_done
+ set rx982_off, 0
+ lt rx982_pos, 2, rx982_start
+ sub rx982_off, rx982_pos, 1
+ substr rx982_tgt, rx982_tgt, rx982_off
+ rx982_start:
+ eq $I10, 1, rx982_restart
+ rx982_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan986_done
+ goto rxscan986_scan
+ rxscan986_loop:
+ ($P10) = rx982_cur."from"()
+ inc $P10
+ set rx982_pos, $P10
+ ge rx982_pos, rx982_eos, rxscan986_done
+ rxscan986_scan:
+ set_addr $I10, rxscan986_loop
+ rx982_cur."!mark_push"(0, rx982_pos, $I10)
+ rxscan986_done:
+.annotate 'line', 475
+ # rx literal "{"
+ 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
+ add rx982_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx982_cur."!cursor_pos"(rx982_pos)
+ $P10 = rx982_cur."ws"()
+ unless $P10, rx982_fail
+ rx982_pos = $P10."pos"()
+ # rx subrule "EXPR" subtype=capture negate=
+ rx982_cur."!cursor_pos"(rx982_pos)
+ $P10 = rx982_cur."EXPR"()
+ unless $P10, rx982_fail
+ rx982_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("EXPR")
+ rx982_pos = $P10."pos"()
+ # rx literal "}"
+ 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
+ add rx982_pos, 1
+.annotate 'line', 476
+ # rx subrule "O" subtype=capture negate=
+ rx982_cur."!cursor_pos"(rx982_pos)
+ $P10 = rx982_cur."O"("%methodop")
+ unless $P10, rx982_fail
+ rx982_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("O")
+ rx982_pos = $P10."pos"()
+.annotate 'line', 474
# rx pass
- rx987_cur."!cursor_pass"(rx987_pos, "infixish")
- rx987_cur."!cursor_debug"("PASS ", "infixish", " at pos=", rx987_pos)
- .return (rx987_cur)
- rx987_fail:
-.annotate 'line', 446
- (rx987_rep, rx987_pos, $I10, $P10) = rx987_cur."!mark_fail"(0)
- lt rx987_pos, -1, rx987_done
- eq rx987_pos, -1, rx987_fail
+ rx982_cur."!cursor_pass"(rx982_pos, "postcircumfix:sym<{ }>")
+ rx982_cur."!cursor_debug"("PASS ", "postcircumfix:sym<{ }>", " at pos=", rx982_pos)
+ .return (rx982_cur)
+ rx982_restart:
+.annotate 'line', 447
+ rx982_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<{ }>")
+ rx982_fail:
+ (rx982_rep, rx982_pos, $I10, $P10) = rx982_cur."!mark_fail"(0)
+ lt rx982_pos, -1, rx982_done
+ eq rx982_pos, -1, rx982_fail
jump $I10
- rx987_done:
- rx987_cur."!cursor_fail"()
- rx987_cur."!cursor_debug"("FAIL ", "infixish")
- .return (rx987_cur)
+ rx982_done:
+ rx982_cur."!cursor_fail"()
+ rx982_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<{ }>")
+ .return (rx982_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixish" :subid("239_1275811487.95429") :method
-.annotate 'line', 446
- new $P989, "ResizablePMCArray"
- push $P989, ""
- .return ($P989)
+.sub "!PREFIX__postcircumfix:sym<{ }>" :subid("247_1280467477.44751") :method
+.annotate 'line', 447
+ $P984 = self."!PREFIX__!subrule"("ws", "{")
+ new $P985, "ResizablePMCArray"
+ push $P985, $P984
+ .return ($P985)
.end
.namespace ["NQP";"Grammar"]
-.sub "infixstopper" :subid("240_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
- .local string rx992_tgt
- .local int rx992_pos
- .local int rx992_off
- .local int rx992_eos
- .local int rx992_rep
- .local pmc rx992_cur
- (rx992_cur, rx992_pos, rx992_tgt) = self."!cursor_start"()
- rx992_cur."!cursor_debug"("START ", "infixstopper")
- .lex unicode:"$\x{a2}", rx992_cur
- .local pmc match
- .lex "$/", match
- length rx992_eos, rx992_tgt
- gt rx992_pos, rx992_eos, rx992_done
- set rx992_off, 0
- lt rx992_pos, 2, rx992_start
- sub rx992_off, rx992_pos, 1
- substr rx992_tgt, rx992_tgt, rx992_off
- rx992_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan995_done
- goto rxscan995_scan
- rxscan995_loop:
- ($P10) = rx992_cur."from"()
- inc $P10
- set rx992_pos, $P10
- ge rx992_pos, rx992_eos, rxscan995_done
- rxscan995_scan:
- set_addr $I10, rxscan995_loop
- rx992_cur."!mark_push"(0, rx992_pos, $I10)
- rxscan995_done:
-.annotate 'line', 466
- # rx subrule "lambda" subtype=zerowidth negate=
- rx992_cur."!cursor_pos"(rx992_pos)
- $P10 = rx992_cur."lambda"()
- unless $P10, rx992_fail
- # rx pass
- rx992_cur."!cursor_pass"(rx992_pos, "infixstopper")
- rx992_cur."!cursor_debug"("PASS ", "infixstopper", " at pos=", rx992_pos)
- .return (rx992_cur)
- rx992_fail:
-.annotate 'line', 446
- (rx992_rep, rx992_pos, $I10, $P10) = rx992_cur."!mark_fail"(0)
- lt rx992_pos, -1, rx992_done
- eq rx992_pos, -1, rx992_fail
+.sub "postcircumfix:sym<ang>" :subid("248_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+ .local string rx988_tgt
+ .local int rx988_pos
+ .local int rx988_off
+ .local int rx988_eos
+ .local int rx988_rep
+ .local pmc rx988_cur
+ (rx988_cur, rx988_pos, rx988_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx988_cur
+ .local pmc match
+ .lex "$/", match
+ length rx988_eos, rx988_tgt
+ gt rx988_pos, rx988_eos, rx988_done
+ set rx988_off, 0
+ lt rx988_pos, 2, rx988_start
+ sub rx988_off, rx988_pos, 1
+ substr rx988_tgt, rx988_tgt, rx988_off
+ rx988_start:
+ eq $I10, 1, rx988_restart
+ rx988_cur."!cursor_debug"("START ", "postcircumfix:sym<ang>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan991_done
+ goto rxscan991_scan
+ rxscan991_loop:
+ ($P10) = rx988_cur."from"()
+ inc $P10
+ set rx988_pos, $P10
+ ge rx988_pos, rx988_eos, rxscan991_done
+ rxscan991_scan:
+ set_addr $I10, rxscan991_loop
+ rx988_cur."!mark_push"(0, rx988_pos, $I10)
+ rxscan991_done:
+.annotate 'line', 480
+ # rx enumcharlist negate=0 zerowidth
+ ge rx988_pos, rx988_eos, rx988_fail
+ sub $I10, rx988_pos, rx988_off
+ substr $S10, rx988_tgt, $I10, 1
+ index $I11, "<", $S10
+ lt $I11, 0, rx988_fail
+ # rx subrule "quote_EXPR" subtype=capture negate=
+ rx988_cur."!cursor_pos"(rx988_pos)
+ $P10 = rx988_cur."quote_EXPR"(":q")
+ unless $P10, rx988_fail
+ rx988_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quote_EXPR")
+ rx988_pos = $P10."pos"()
+.annotate 'line', 481
+ # rx subrule "O" subtype=capture negate=
+ rx988_cur."!cursor_pos"(rx988_pos)
+ $P10 = rx988_cur."O"("%methodop")
+ unless $P10, rx988_fail
+ rx988_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("O")
+ rx988_pos = $P10."pos"()
+.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)
+ .return (rx988_cur)
+ rx988_restart:
+.annotate 'line', 447
+ rx988_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<ang>")
+ rx988_fail:
+ (rx988_rep, rx988_pos, $I10, $P10) = rx988_cur."!mark_fail"(0)
+ lt rx988_pos, -1, rx988_done
+ eq rx988_pos, -1, rx988_fail
jump $I10
- rx992_done:
- rx992_cur."!cursor_fail"()
- rx992_cur."!cursor_debug"("FAIL ", "infixstopper")
- .return (rx992_cur)
+ rx988_done:
+ rx988_cur."!cursor_fail"()
+ rx988_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<ang>")
+ .return (rx988_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixstopper" :subid("241_1275811487.95429") :method
-.annotate 'line', 446
- new $P994, "ResizablePMCArray"
- push $P994, ""
- .return ($P994)
+.sub "!PREFIX__postcircumfix:sym<ang>" :subid("249_1280467477.44751") :method
+.annotate 'line', 447
+ new $P990, "ResizablePMCArray"
+ push $P990, "<"
+ .return ($P990)
.end
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<[ ]>" :subid("242_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
- .local string rx997_tgt
- .local int rx997_pos
- .local int rx997_off
- .local int rx997_eos
- .local int rx997_rep
- .local pmc rx997_cur
- (rx997_cur, rx997_pos, rx997_tgt) = self."!cursor_start"()
- rx997_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>")
- .lex unicode:"$\x{a2}", rx997_cur
- .local pmc match
- .lex "$/", match
- length rx997_eos, rx997_tgt
- gt rx997_pos, rx997_eos, rx997_done
- set rx997_off, 0
- lt rx997_pos, 2, rx997_start
- sub rx997_off, rx997_pos, 1
- substr rx997_tgt, rx997_tgt, rx997_off
- rx997_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1001_done
- goto rxscan1001_scan
- rxscan1001_loop:
- ($P10) = rx997_cur."from"()
- inc $P10
- set rx997_pos, $P10
- ge rx997_pos, rx997_eos, rxscan1001_done
- rxscan1001_scan:
- set_addr $I10, rxscan1001_loop
- rx997_cur."!mark_push"(0, rx997_pos, $I10)
- rxscan1001_done:
-.annotate 'line', 469
- # rx literal "["
- add $I11, rx997_pos, 1
- gt $I11, rx997_eos, rx997_fail
- sub $I11, rx997_pos, rx997_off
- substr $S10, rx997_tgt, $I11, 1
- ne $S10, "[", rx997_fail
- add rx997_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx997_cur."!cursor_pos"(rx997_pos)
- $P10 = rx997_cur."ws"()
- unless $P10, rx997_fail
- rx997_pos = $P10."pos"()
- # rx subrule "EXPR" subtype=capture negate=
- rx997_cur."!cursor_pos"(rx997_pos)
- $P10 = rx997_cur."EXPR"()
- unless $P10, rx997_fail
- rx997_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("EXPR")
- rx997_pos = $P10."pos"()
- # rx literal "]"
- add $I11, rx997_pos, 1
- gt $I11, rx997_eos, rx997_fail
- sub $I11, rx997_pos, rx997_off
- substr $S10, rx997_tgt, $I11, 1
- ne $S10, "]", rx997_fail
- add rx997_pos, 1
-.annotate 'line', 470
+.sub "postcircumfix:sym<( )>" :subid("250_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+ .local string rx993_tgt
+ .local int rx993_pos
+ .local int rx993_off
+ .local int rx993_eos
+ .local int rx993_rep
+ .local pmc rx993_cur
+ (rx993_cur, rx993_pos, rx993_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx993_cur
+ .local pmc match
+ .lex "$/", match
+ length rx993_eos, rx993_tgt
+ gt rx993_pos, rx993_eos, rx993_done
+ set rx993_off, 0
+ lt rx993_pos, 2, rx993_start
+ sub rx993_off, rx993_pos, 1
+ substr rx993_tgt, rx993_tgt, rx993_off
+ rx993_start:
+ eq $I10, 1, rx993_restart
+ rx993_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan997_done
+ goto rxscan997_scan
+ rxscan997_loop:
+ ($P10) = rx993_cur."from"()
+ inc $P10
+ set rx993_pos, $P10
+ ge rx993_pos, rx993_eos, rxscan997_done
+ rxscan997_scan:
+ set_addr $I10, rxscan997_loop
+ rx993_cur."!mark_push"(0, rx993_pos, $I10)
+ rxscan997_done:
+.annotate 'line', 485
+ # rx literal "("
+ 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
+ add rx993_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx993_cur."!cursor_pos"(rx993_pos)
+ $P10 = rx993_cur."ws"()
+ unless $P10, rx993_fail
+ rx993_pos = $P10."pos"()
+ # rx subrule "arglist" subtype=capture negate=
+ rx993_cur."!cursor_pos"(rx993_pos)
+ $P10 = rx993_cur."arglist"()
+ unless $P10, rx993_fail
+ rx993_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("arglist")
+ rx993_pos = $P10."pos"()
+ # rx literal ")"
+ 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
+ add rx993_pos, 1
+.annotate 'line', 486
# rx subrule "O" subtype=capture negate=
- rx997_cur."!cursor_pos"(rx997_pos)
- $P10 = rx997_cur."O"("%methodop")
- unless $P10, rx997_fail
- rx997_cur."!mark_push"(0, -1, 0, $P10)
+ rx993_cur."!cursor_pos"(rx993_pos)
+ $P10 = rx993_cur."O"("%methodop")
+ unless $P10, rx993_fail
+ rx993_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx997_pos = $P10."pos"()
-.annotate 'line', 468
+ rx993_pos = $P10."pos"()
+.annotate 'line', 484
# rx pass
- rx997_cur."!cursor_pass"(rx997_pos, "postcircumfix:sym<[ ]>")
- rx997_cur."!cursor_debug"("PASS ", "postcircumfix:sym<[ ]>", " at pos=", rx997_pos)
- .return (rx997_cur)
- rx997_fail:
-.annotate 'line', 446
- (rx997_rep, rx997_pos, $I10, $P10) = rx997_cur."!mark_fail"(0)
- lt rx997_pos, -1, rx997_done
- eq rx997_pos, -1, rx997_fail
+ rx993_cur."!cursor_pass"(rx993_pos, "postcircumfix:sym<( )>")
+ rx993_cur."!cursor_debug"("PASS ", "postcircumfix:sym<( )>", " at pos=", rx993_pos)
+ .return (rx993_cur)
+ rx993_restart:
+.annotate 'line', 447
+ rx993_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<( )>")
+ rx993_fail:
+ (rx993_rep, rx993_pos, $I10, $P10) = rx993_cur."!mark_fail"(0)
+ lt rx993_pos, -1, rx993_done
+ eq rx993_pos, -1, rx993_fail
jump $I10
- rx997_done:
- rx997_cur."!cursor_fail"()
- rx997_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<[ ]>")
- .return (rx997_cur)
+ rx993_done:
+ rx993_cur."!cursor_fail"()
+ rx993_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<( )>")
+ .return (rx993_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<[ ]>" :subid("243_1275811487.95429") :method
-.annotate 'line', 446
- $P999 = self."!PREFIX__!subrule"("ws", "[")
- new $P1000, "ResizablePMCArray"
- push $P1000, $P999
- .return ($P1000)
+.sub "!PREFIX__postcircumfix:sym<( )>" :subid("251_1280467477.44751") :method
+.annotate 'line', 447
+ $P995 = self."!PREFIX__!subrule"("ws", "(")
+ new $P996, "ResizablePMCArray"
+ push $P996, $P995
+ .return ($P996)
.end
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<{ }>" :subid("244_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
- .local string rx1003_tgt
- .local int rx1003_pos
- .local int rx1003_off
- .local int rx1003_eos
- .local int rx1003_rep
- .local pmc rx1003_cur
- (rx1003_cur, rx1003_pos, rx1003_tgt) = self."!cursor_start"()
- rx1003_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>")
- .lex unicode:"$\x{a2}", rx1003_cur
- .local pmc match
- .lex "$/", match
- length rx1003_eos, rx1003_tgt
- gt rx1003_pos, rx1003_eos, rx1003_done
- set rx1003_off, 0
- lt rx1003_pos, 2, rx1003_start
- sub rx1003_off, rx1003_pos, 1
- substr rx1003_tgt, rx1003_tgt, rx1003_off
- rx1003_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1007_done
- goto rxscan1007_scan
- rxscan1007_loop:
- ($P10) = rx1003_cur."from"()
- inc $P10
- set rx1003_pos, $P10
- ge rx1003_pos, rx1003_eos, rxscan1007_done
- rxscan1007_scan:
- set_addr $I10, rxscan1007_loop
- rx1003_cur."!mark_push"(0, rx1003_pos, $I10)
- rxscan1007_done:
-.annotate 'line', 474
- # rx literal "{"
- add $I11, rx1003_pos, 1
- gt $I11, rx1003_eos, rx1003_fail
- sub $I11, rx1003_pos, rx1003_off
- substr $S10, rx1003_tgt, $I11, 1
- ne $S10, "{", rx1003_fail
- add rx1003_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx1003_cur."!cursor_pos"(rx1003_pos)
- $P10 = rx1003_cur."ws"()
- unless $P10, rx1003_fail
- rx1003_pos = $P10."pos"()
- # rx subrule "EXPR" subtype=capture negate=
- rx1003_cur."!cursor_pos"(rx1003_pos)
- $P10 = rx1003_cur."EXPR"()
- unless $P10, rx1003_fail
- rx1003_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("EXPR")
- rx1003_pos = $P10."pos"()
- # rx literal "}"
- add $I11, rx1003_pos, 1
- gt $I11, rx1003_eos, rx1003_fail
- sub $I11, rx1003_pos, rx1003_off
- substr $S10, rx1003_tgt, $I11, 1
- ne $S10, "}", rx1003_fail
- add rx1003_pos, 1
-.annotate 'line', 475
+.sub "postfix:sym<.>" :subid("252_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+ .local string rx999_tgt
+ .local int rx999_pos
+ .local int rx999_off
+ .local int rx999_eos
+ .local int rx999_rep
+ .local pmc rx999_cur
+ (rx999_cur, rx999_pos, rx999_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx999_cur
+ .local pmc match
+ .lex "$/", match
+ length rx999_eos, rx999_tgt
+ gt rx999_pos, rx999_eos, rx999_done
+ set rx999_off, 0
+ lt rx999_pos, 2, rx999_start
+ sub rx999_off, rx999_pos, 1
+ substr rx999_tgt, rx999_tgt, rx999_off
+ rx999_start:
+ eq $I10, 1, rx999_restart
+ rx999_cur."!cursor_debug"("START ", "postfix:sym<.>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1003_done
+ goto rxscan1003_scan
+ rxscan1003_loop:
+ ($P10) = rx999_cur."from"()
+ inc $P10
+ set rx999_pos, $P10
+ ge rx999_pos, rx999_eos, rxscan1003_done
+ rxscan1003_scan:
+ set_addr $I10, rxscan1003_loop
+ rx999_cur."!mark_push"(0, rx999_pos, $I10)
+ rxscan1003_done:
+.annotate 'line', 489
+ # rx subrule "dotty" subtype=capture negate=
+ rx999_cur."!cursor_pos"(rx999_pos)
+ $P10 = rx999_cur."dotty"()
+ unless $P10, rx999_fail
+ rx999_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("dotty")
+ rx999_pos = $P10."pos"()
# rx subrule "O" subtype=capture negate=
- rx1003_cur."!cursor_pos"(rx1003_pos)
- $P10 = rx1003_cur."O"("%methodop")
- unless $P10, rx1003_fail
- rx1003_cur."!mark_push"(0, -1, 0, $P10)
+ rx999_cur."!cursor_pos"(rx999_pos)
+ $P10 = rx999_cur."O"("%methodop")
+ unless $P10, rx999_fail
+ rx999_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1003_pos = $P10."pos"()
-.annotate 'line', 473
+ rx999_pos = $P10."pos"()
# rx pass
- rx1003_cur."!cursor_pass"(rx1003_pos, "postcircumfix:sym<{ }>")
- rx1003_cur."!cursor_debug"("PASS ", "postcircumfix:sym<{ }>", " at pos=", rx1003_pos)
- .return (rx1003_cur)
- rx1003_fail:
-.annotate 'line', 446
- (rx1003_rep, rx1003_pos, $I10, $P10) = rx1003_cur."!mark_fail"(0)
- lt rx1003_pos, -1, rx1003_done
- eq rx1003_pos, -1, rx1003_fail
+ rx999_cur."!cursor_pass"(rx999_pos, "postfix:sym<.>")
+ rx999_cur."!cursor_debug"("PASS ", "postfix:sym<.>", " at pos=", rx999_pos)
+ .return (rx999_cur)
+ rx999_restart:
+.annotate 'line', 447
+ rx999_cur."!cursor_debug"("NEXT ", "postfix:sym<.>")
+ rx999_fail:
+ (rx999_rep, rx999_pos, $I10, $P10) = rx999_cur."!mark_fail"(0)
+ lt rx999_pos, -1, rx999_done
+ eq rx999_pos, -1, rx999_fail
jump $I10
- rx1003_done:
- rx1003_cur."!cursor_fail"()
- rx1003_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<{ }>")
- .return (rx1003_cur)
+ rx999_done:
+ rx999_cur."!cursor_fail"()
+ rx999_cur."!cursor_debug"("FAIL ", "postfix:sym<.>")
+ .return (rx999_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<{ }>" :subid("245_1275811487.95429") :method
-.annotate 'line', 446
- $P1005 = self."!PREFIX__!subrule"("ws", "{")
- new $P1006, "ResizablePMCArray"
- push $P1006, $P1005
- .return ($P1006)
+.sub "!PREFIX__postfix:sym<.>" :subid("253_1280467477.44751") :method
+.annotate 'line', 447
+ $P1001 = self."!PREFIX__!subrule"("dotty", "")
+ new $P1002, "ResizablePMCArray"
+ push $P1002, $P1001
+ .return ($P1002)
.end
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<ang>" :subid("246_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
- .local string rx1009_tgt
- .local int rx1009_pos
- .local int rx1009_off
- .local int rx1009_eos
- .local int rx1009_rep
- .local pmc rx1009_cur
- (rx1009_cur, rx1009_pos, rx1009_tgt) = self."!cursor_start"()
- rx1009_cur."!cursor_debug"("START ", "postcircumfix:sym<ang>")
- .lex unicode:"$\x{a2}", rx1009_cur
- .local pmc match
- .lex "$/", match
- length rx1009_eos, rx1009_tgt
- gt rx1009_pos, rx1009_eos, rx1009_done
- set rx1009_off, 0
- lt rx1009_pos, 2, rx1009_start
- sub rx1009_off, rx1009_pos, 1
- substr rx1009_tgt, rx1009_tgt, rx1009_off
- rx1009_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1012_done
- goto rxscan1012_scan
- rxscan1012_loop:
- ($P10) = rx1009_cur."from"()
- inc $P10
- set rx1009_pos, $P10
- ge rx1009_pos, rx1009_eos, rxscan1012_done
- rxscan1012_scan:
- set_addr $I10, rxscan1012_loop
- rx1009_cur."!mark_push"(0, rx1009_pos, $I10)
- rxscan1012_done:
-.annotate 'line', 479
- # rx enumcharlist negate=0 zerowidth
- ge rx1009_pos, rx1009_eos, rx1009_fail
- sub $I10, rx1009_pos, rx1009_off
- substr $S10, rx1009_tgt, $I10, 1
- index $I11, "<", $S10
- lt $I11, 0, rx1009_fail
- # rx subrule "quote_EXPR" subtype=capture negate=
- rx1009_cur."!cursor_pos"(rx1009_pos)
- $P10 = rx1009_cur."quote_EXPR"(":q")
- unless $P10, rx1009_fail
- rx1009_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote_EXPR")
- rx1009_pos = $P10."pos"()
-.annotate 'line', 480
+.sub "prefix:sym<++>" :subid("254_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+ .local string rx1005_tgt
+ .local int rx1005_pos
+ .local int rx1005_off
+ .local int rx1005_eos
+ .local int rx1005_rep
+ .local pmc rx1005_cur
+ (rx1005_cur, rx1005_pos, rx1005_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx1005_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1005_eos, rx1005_tgt
+ gt rx1005_pos, rx1005_eos, rx1005_done
+ set rx1005_off, 0
+ lt rx1005_pos, 2, rx1005_start
+ sub rx1005_off, rx1005_pos, 1
+ substr rx1005_tgt, rx1005_tgt, rx1005_off
+ rx1005_start:
+ eq $I10, 1, rx1005_restart
+ rx1005_cur."!cursor_debug"("START ", "prefix:sym<++>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1009_done
+ goto rxscan1009_scan
+ rxscan1009_loop:
+ ($P10) = rx1005_cur."from"()
+ inc $P10
+ set rx1005_pos, $P10
+ ge rx1005_pos, rx1005_eos, rxscan1009_done
+ rxscan1009_scan:
+ set_addr $I10, rxscan1009_loop
+ rx1005_cur."!mark_push"(0, rx1005_pos, $I10)
+ rxscan1009_done:
+.annotate 'line', 491
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_1010_fail
+ rx1005_cur."!mark_push"(0, rx1005_pos, $I10)
+ # rx literal "++"
+ add $I11, rx1005_pos, 2
+ gt $I11, rx1005_eos, rx1005_fail
+ sub $I11, rx1005_pos, rx1005_off
+ substr $S10, rx1005_tgt, $I11, 2
+ ne $S10, "++", rx1005_fail
+ add rx1005_pos, 2
+ set_addr $I10, rxcap_1010_fail
+ ($I12, $I11) = rx1005_cur."!mark_peek"($I10)
+ rx1005_cur."!cursor_pos"($I11)
+ ($P10) = rx1005_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1005_pos, "")
+ rx1005_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_1010_done
+ rxcap_1010_fail:
+ goto rx1005_fail
+ rxcap_1010_done:
# rx subrule "O" subtype=capture negate=
- rx1009_cur."!cursor_pos"(rx1009_pos)
- $P10 = rx1009_cur."O"("%methodop")
- unless $P10, rx1009_fail
- rx1009_cur."!mark_push"(0, -1, 0, $P10)
+ rx1005_cur."!cursor_pos"(rx1005_pos)
+ $P10 = rx1005_cur."O"("%autoincrement, :pirop<inc>")
+ unless $P10, rx1005_fail
+ rx1005_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1009_pos = $P10."pos"()
-.annotate 'line', 478
+ rx1005_pos = $P10."pos"()
# rx pass
- rx1009_cur."!cursor_pass"(rx1009_pos, "postcircumfix:sym<ang>")
- rx1009_cur."!cursor_debug"("PASS ", "postcircumfix:sym<ang>", " at pos=", rx1009_pos)
- .return (rx1009_cur)
- rx1009_fail:
-.annotate 'line', 446
- (rx1009_rep, rx1009_pos, $I10, $P10) = rx1009_cur."!mark_fail"(0)
- lt rx1009_pos, -1, rx1009_done
- eq rx1009_pos, -1, rx1009_fail
+ rx1005_cur."!cursor_pass"(rx1005_pos, "prefix:sym<++>")
+ rx1005_cur."!cursor_debug"("PASS ", "prefix:sym<++>", " at pos=", rx1005_pos)
+ .return (rx1005_cur)
+ rx1005_restart:
+.annotate 'line', 447
+ rx1005_cur."!cursor_debug"("NEXT ", "prefix:sym<++>")
+ rx1005_fail:
+ (rx1005_rep, rx1005_pos, $I10, $P10) = rx1005_cur."!mark_fail"(0)
+ lt rx1005_pos, -1, rx1005_done
+ eq rx1005_pos, -1, rx1005_fail
jump $I10
- rx1009_done:
- rx1009_cur."!cursor_fail"()
- rx1009_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<ang>")
- .return (rx1009_cur)
+ rx1005_done:
+ rx1005_cur."!cursor_fail"()
+ rx1005_cur."!cursor_debug"("FAIL ", "prefix:sym<++>")
+ .return (rx1005_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<ang>" :subid("247_1275811487.95429") :method
-.annotate 'line', 446
- new $P1011, "ResizablePMCArray"
- push $P1011, "<"
- .return ($P1011)
+.sub "!PREFIX__prefix:sym<++>" :subid("255_1280467477.44751") :method
+.annotate 'line', 447
+ $P1007 = self."!PREFIX__!subrule"("O", "++")
+ new $P1008, "ResizablePMCArray"
+ push $P1008, $P1007
+ .return ($P1008)
.end
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<( )>" :subid("248_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
- .local string rx1014_tgt
- .local int rx1014_pos
- .local int rx1014_off
- .local int rx1014_eos
- .local int rx1014_rep
- .local pmc rx1014_cur
- (rx1014_cur, rx1014_pos, rx1014_tgt) = self."!cursor_start"()
- rx1014_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>")
- .lex unicode:"$\x{a2}", rx1014_cur
- .local pmc match
- .lex "$/", match
- length rx1014_eos, rx1014_tgt
- gt rx1014_pos, rx1014_eos, rx1014_done
- set rx1014_off, 0
- lt rx1014_pos, 2, rx1014_start
- sub rx1014_off, rx1014_pos, 1
- substr rx1014_tgt, rx1014_tgt, rx1014_off
- rx1014_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1018_done
- goto rxscan1018_scan
- rxscan1018_loop:
- ($P10) = rx1014_cur."from"()
- inc $P10
- set rx1014_pos, $P10
- ge rx1014_pos, rx1014_eos, rxscan1018_done
- rxscan1018_scan:
- set_addr $I10, rxscan1018_loop
- rx1014_cur."!mark_push"(0, rx1014_pos, $I10)
- rxscan1018_done:
-.annotate 'line', 484
- # rx literal "("
- add $I11, rx1014_pos, 1
- gt $I11, rx1014_eos, rx1014_fail
- sub $I11, rx1014_pos, rx1014_off
- substr $S10, rx1014_tgt, $I11, 1
- ne $S10, "(", rx1014_fail
- add rx1014_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx1014_cur."!cursor_pos"(rx1014_pos)
- $P10 = rx1014_cur."ws"()
- unless $P10, rx1014_fail
- rx1014_pos = $P10."pos"()
- # rx subrule "arglist" subtype=capture negate=
- rx1014_cur."!cursor_pos"(rx1014_pos)
- $P10 = rx1014_cur."arglist"()
- unless $P10, rx1014_fail
- rx1014_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("arglist")
- rx1014_pos = $P10."pos"()
- # rx literal ")"
- add $I11, rx1014_pos, 1
- gt $I11, rx1014_eos, rx1014_fail
- sub $I11, rx1014_pos, rx1014_off
- substr $S10, rx1014_tgt, $I11, 1
- ne $S10, ")", rx1014_fail
- add rx1014_pos, 1
-.annotate 'line', 485
+.sub "prefix:sym<-->" :subid("256_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+ .local string rx1012_tgt
+ .local int rx1012_pos
+ .local int rx1012_off
+ .local int rx1012_eos
+ .local int rx1012_rep
+ .local pmc rx1012_cur
+ (rx1012_cur, rx1012_pos, rx1012_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx1012_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1012_eos, rx1012_tgt
+ gt rx1012_pos, rx1012_eos, rx1012_done
+ set rx1012_off, 0
+ lt rx1012_pos, 2, rx1012_start
+ sub rx1012_off, rx1012_pos, 1
+ substr rx1012_tgt, rx1012_tgt, rx1012_off
+ rx1012_start:
+ eq $I10, 1, rx1012_restart
+ rx1012_cur."!cursor_debug"("START ", "prefix:sym<-->")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1016_done
+ goto rxscan1016_scan
+ rxscan1016_loop:
+ ($P10) = rx1012_cur."from"()
+ inc $P10
+ set rx1012_pos, $P10
+ ge rx1012_pos, rx1012_eos, rxscan1016_done
+ rxscan1016_scan:
+ set_addr $I10, rxscan1016_loop
+ rx1012_cur."!mark_push"(0, rx1012_pos, $I10)
+ rxscan1016_done:
+.annotate 'line', 492
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_1017_fail
+ rx1012_cur."!mark_push"(0, rx1012_pos, $I10)
+ # rx literal "--"
+ add $I11, rx1012_pos, 2
+ gt $I11, rx1012_eos, rx1012_fail
+ sub $I11, rx1012_pos, rx1012_off
+ substr $S10, rx1012_tgt, $I11, 2
+ ne $S10, "--", rx1012_fail
+ add rx1012_pos, 2
+ set_addr $I10, rxcap_1017_fail
+ ($I12, $I11) = rx1012_cur."!mark_peek"($I10)
+ rx1012_cur."!cursor_pos"($I11)
+ ($P10) = rx1012_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1012_pos, "")
+ rx1012_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_1017_done
+ rxcap_1017_fail:
+ goto rx1012_fail
+ rxcap_1017_done:
# rx subrule "O" subtype=capture negate=
- rx1014_cur."!cursor_pos"(rx1014_pos)
- $P10 = rx1014_cur."O"("%methodop")
- unless $P10, rx1014_fail
- rx1014_cur."!mark_push"(0, -1, 0, $P10)
+ rx1012_cur."!cursor_pos"(rx1012_pos)
+ $P10 = rx1012_cur."O"("%autoincrement, :pirop<dec>")
+ unless $P10, rx1012_fail
+ rx1012_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1014_pos = $P10."pos"()
-.annotate 'line', 483
+ rx1012_pos = $P10."pos"()
# rx pass
- rx1014_cur."!cursor_pass"(rx1014_pos, "postcircumfix:sym<( )>")
- rx1014_cur."!cursor_debug"("PASS ", "postcircumfix:sym<( )>", " at pos=", rx1014_pos)
- .return (rx1014_cur)
- rx1014_fail:
-.annotate 'line', 446
- (rx1014_rep, rx1014_pos, $I10, $P10) = rx1014_cur."!mark_fail"(0)
- lt rx1014_pos, -1, rx1014_done
- eq rx1014_pos, -1, rx1014_fail
+ rx1012_cur."!cursor_pass"(rx1012_pos, "prefix:sym<-->")
+ rx1012_cur."!cursor_debug"("PASS ", "prefix:sym<-->", " at pos=", rx1012_pos)
+ .return (rx1012_cur)
+ rx1012_restart:
+.annotate 'line', 447
+ rx1012_cur."!cursor_debug"("NEXT ", "prefix:sym<-->")
+ rx1012_fail:
+ (rx1012_rep, rx1012_pos, $I10, $P10) = rx1012_cur."!mark_fail"(0)
+ lt rx1012_pos, -1, rx1012_done
+ eq rx1012_pos, -1, rx1012_fail
jump $I10
- rx1014_done:
- rx1014_cur."!cursor_fail"()
- rx1014_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<( )>")
- .return (rx1014_cur)
+ rx1012_done:
+ rx1012_cur."!cursor_fail"()
+ rx1012_cur."!cursor_debug"("FAIL ", "prefix:sym<-->")
+ .return (rx1012_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<( )>" :subid("249_1275811487.95429") :method
-.annotate 'line', 446
- $P1016 = self."!PREFIX__!subrule"("ws", "(")
- new $P1017, "ResizablePMCArray"
- push $P1017, $P1016
- .return ($P1017)
+.sub "!PREFIX__prefix:sym<-->" :subid("257_1280467477.44751") :method
+.annotate 'line', 447
+ $P1014 = self."!PREFIX__!subrule"("O", "--")
+ new $P1015, "ResizablePMCArray"
+ push $P1015, $P1014
+ .return ($P1015)
.end
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<.>" :subid("250_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
- .local string rx1020_tgt
- .local int rx1020_pos
- .local int rx1020_off
- .local int rx1020_eos
- .local int rx1020_rep
- .local pmc rx1020_cur
- (rx1020_cur, rx1020_pos, rx1020_tgt) = self."!cursor_start"()
- rx1020_cur."!cursor_debug"("START ", "postfix:sym<.>")
- .lex unicode:"$\x{a2}", rx1020_cur
- .local pmc match
- .lex "$/", match
- length rx1020_eos, rx1020_tgt
- gt rx1020_pos, rx1020_eos, rx1020_done
- set rx1020_off, 0
- lt rx1020_pos, 2, rx1020_start
- sub rx1020_off, rx1020_pos, 1
- substr rx1020_tgt, rx1020_tgt, rx1020_off
- rx1020_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1024_done
- goto rxscan1024_scan
- rxscan1024_loop:
- ($P10) = rx1020_cur."from"()
- inc $P10
- set rx1020_pos, $P10
- ge rx1020_pos, rx1020_eos, rxscan1024_done
- rxscan1024_scan:
- set_addr $I10, rxscan1024_loop
- rx1020_cur."!mark_push"(0, rx1020_pos, $I10)
- rxscan1024_done:
-.annotate 'line', 488
- # rx subrule "dotty" subtype=capture negate=
- rx1020_cur."!cursor_pos"(rx1020_pos)
- $P10 = rx1020_cur."dotty"()
- unless $P10, rx1020_fail
- rx1020_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("dotty")
- rx1020_pos = $P10."pos"()
+.sub "postfix:sym<++>" :subid("258_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+ .local string rx1019_tgt
+ .local int rx1019_pos
+ .local int rx1019_off
+ .local int rx1019_eos
+ .local int rx1019_rep
+ .local pmc rx1019_cur
+ (rx1019_cur, rx1019_pos, rx1019_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx1019_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1019_eos, rx1019_tgt
+ gt rx1019_pos, rx1019_eos, rx1019_done
+ set rx1019_off, 0
+ lt rx1019_pos, 2, rx1019_start
+ sub rx1019_off, rx1019_pos, 1
+ substr rx1019_tgt, rx1019_tgt, rx1019_off
+ rx1019_start:
+ eq $I10, 1, rx1019_restart
+ rx1019_cur."!cursor_debug"("START ", "postfix:sym<++>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1023_done
+ goto rxscan1023_scan
+ rxscan1023_loop:
+ ($P10) = rx1019_cur."from"()
+ inc $P10
+ set rx1019_pos, $P10
+ ge rx1019_pos, rx1019_eos, rxscan1023_done
+ rxscan1023_scan:
+ set_addr $I10, rxscan1023_loop
+ rx1019_cur."!mark_push"(0, rx1019_pos, $I10)
+ rxscan1023_done:
+.annotate 'line', 495
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_1024_fail
+ rx1019_cur."!mark_push"(0, rx1019_pos, $I10)
+ # rx literal "++"
+ add $I11, rx1019_pos, 2
+ gt $I11, rx1019_eos, rx1019_fail
+ sub $I11, rx1019_pos, rx1019_off
+ substr $S10, rx1019_tgt, $I11, 2
+ ne $S10, "++", rx1019_fail
+ add rx1019_pos, 2
+ set_addr $I10, rxcap_1024_fail
+ ($I12, $I11) = rx1019_cur."!mark_peek"($I10)
+ rx1019_cur."!cursor_pos"($I11)
+ ($P10) = rx1019_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1019_pos, "")
+ rx1019_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_1024_done
+ rxcap_1024_fail:
+ goto rx1019_fail
+ rxcap_1024_done:
# rx subrule "O" subtype=capture negate=
- rx1020_cur."!cursor_pos"(rx1020_pos)
- $P10 = rx1020_cur."O"("%methodop")
- unless $P10, rx1020_fail
- rx1020_cur."!mark_push"(0, -1, 0, $P10)
+ rx1019_cur."!cursor_pos"(rx1019_pos)
+ $P10 = rx1019_cur."O"("%autoincrement")
+ unless $P10, rx1019_fail
+ rx1019_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1020_pos = $P10."pos"()
+ rx1019_pos = $P10."pos"()
# rx pass
- rx1020_cur."!cursor_pass"(rx1020_pos, "postfix:sym<.>")
- rx1020_cur."!cursor_debug"("PASS ", "postfix:sym<.>", " at pos=", rx1020_pos)
- .return (rx1020_cur)
- rx1020_fail:
-.annotate 'line', 446
- (rx1020_rep, rx1020_pos, $I10, $P10) = rx1020_cur."!mark_fail"(0)
- lt rx1020_pos, -1, rx1020_done
- eq rx1020_pos, -1, rx1020_fail
+ rx1019_cur."!cursor_pass"(rx1019_pos, "postfix:sym<++>")
+ rx1019_cur."!cursor_debug"("PASS ", "postfix:sym<++>", " at pos=", rx1019_pos)
+ .return (rx1019_cur)
+ rx1019_restart:
+.annotate 'line', 447
+ rx1019_cur."!cursor_debug"("NEXT ", "postfix:sym<++>")
+ rx1019_fail:
+ (rx1019_rep, rx1019_pos, $I10, $P10) = rx1019_cur."!mark_fail"(0)
+ lt rx1019_pos, -1, rx1019_done
+ eq rx1019_pos, -1, rx1019_fail
jump $I10
- rx1020_done:
- rx1020_cur."!cursor_fail"()
- rx1020_cur."!cursor_debug"("FAIL ", "postfix:sym<.>")
- .return (rx1020_cur)
+ rx1019_done:
+ rx1019_cur."!cursor_fail"()
+ rx1019_cur."!cursor_debug"("FAIL ", "postfix:sym<++>")
+ .return (rx1019_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<.>" :subid("251_1275811487.95429") :method
-.annotate 'line', 446
- $P1022 = self."!PREFIX__!subrule"("dotty", "")
- new $P1023, "ResizablePMCArray"
- push $P1023, $P1022
- .return ($P1023)
+.sub "!PREFIX__postfix:sym<++>" :subid("259_1280467477.44751") :method
+.annotate 'line', 447
+ $P1021 = self."!PREFIX__!subrule"("O", "++")
+ new $P1022, "ResizablePMCArray"
+ push $P1022, $P1021
+ .return ($P1022)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<++>" :subid("252_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "postfix:sym<-->" :subid("260_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1026_tgt
.local int rx1026_pos
.local int rx1026_off
.local int rx1026_eos
.local int rx1026_rep
.local pmc rx1026_cur
- (rx1026_cur, rx1026_pos, rx1026_tgt) = self."!cursor_start"()
- rx1026_cur."!cursor_debug"("START ", "prefix:sym<++>")
+ (rx1026_cur, rx1026_pos, rx1026_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1026_cur
.local pmc match
.lex "$/", match
@@ -12402,6 +13306,8 @@
sub rx1026_off, rx1026_pos, 1
substr rx1026_tgt, rx1026_tgt, rx1026_off
rx1026_start:
+ eq $I10, 1, rx1026_restart
+ rx1026_cur."!cursor_debug"("START ", "postfix:sym<-->")
$I10 = self.'from'()
ne $I10, -1, rxscan1030_done
goto rxscan1030_scan
@@ -12414,16 +13320,16 @@
set_addr $I10, rxscan1030_loop
rx1026_cur."!mark_push"(0, rx1026_pos, $I10)
rxscan1030_done:
-.annotate 'line', 490
+.annotate 'line', 496
# rx subcapture "sym"
set_addr $I10, rxcap_1031_fail
rx1026_cur."!mark_push"(0, rx1026_pos, $I10)
- # rx literal "++"
+ # rx literal "--"
add $I11, rx1026_pos, 2
gt $I11, rx1026_eos, rx1026_fail
sub $I11, rx1026_pos, rx1026_off
substr $S10, rx1026_tgt, $I11, 2
- ne $S10, "++", rx1026_fail
+ ne $S10, "--", rx1026_fail
add rx1026_pos, 2
set_addr $I10, rxcap_1031_fail
($I12, $I11) = rx1026_cur."!mark_peek"($I10)
@@ -12438,33 +13344,35 @@
rxcap_1031_done:
# rx subrule "O" subtype=capture negate=
rx1026_cur."!cursor_pos"(rx1026_pos)
- $P10 = rx1026_cur."O"("%autoincrement, :pirop<inc>")
+ $P10 = rx1026_cur."O"("%autoincrement")
unless $P10, rx1026_fail
rx1026_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
rx1026_pos = $P10."pos"()
# rx pass
- rx1026_cur."!cursor_pass"(rx1026_pos, "prefix:sym<++>")
- rx1026_cur."!cursor_debug"("PASS ", "prefix:sym<++>", " at pos=", rx1026_pos)
+ rx1026_cur."!cursor_pass"(rx1026_pos, "postfix:sym<-->")
+ rx1026_cur."!cursor_debug"("PASS ", "postfix:sym<-->", " at pos=", rx1026_pos)
.return (rx1026_cur)
+ rx1026_restart:
+.annotate 'line', 447
+ rx1026_cur."!cursor_debug"("NEXT ", "postfix:sym<-->")
rx1026_fail:
-.annotate 'line', 446
(rx1026_rep, rx1026_pos, $I10, $P10) = rx1026_cur."!mark_fail"(0)
lt rx1026_pos, -1, rx1026_done
eq rx1026_pos, -1, rx1026_fail
jump $I10
rx1026_done:
rx1026_cur."!cursor_fail"()
- rx1026_cur."!cursor_debug"("FAIL ", "prefix:sym<++>")
+ rx1026_cur."!cursor_debug"("FAIL ", "postfix:sym<-->")
.return (rx1026_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<++>" :subid("253_1275811487.95429") :method
-.annotate 'line', 446
- $P1028 = self."!PREFIX__!subrule"("O", "++")
+.sub "!PREFIX__postfix:sym<-->" :subid("261_1280467477.44751") :method
+.annotate 'line', 447
+ $P1028 = self."!PREFIX__!subrule"("O", "--")
new $P1029, "ResizablePMCArray"
push $P1029, $P1028
.return ($P1029)
@@ -12472,16 +13380,15 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<-->" :subid("254_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<**>" :subid("262_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1033_tgt
.local int rx1033_pos
.local int rx1033_off
.local int rx1033_eos
.local int rx1033_rep
.local pmc rx1033_cur
- (rx1033_cur, rx1033_pos, rx1033_tgt) = self."!cursor_start"()
- rx1033_cur."!cursor_debug"("START ", "prefix:sym<-->")
+ (rx1033_cur, rx1033_pos, rx1033_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1033_cur
.local pmc match
.lex "$/", match
@@ -12492,6 +13399,8 @@
sub rx1033_off, rx1033_pos, 1
substr rx1033_tgt, rx1033_tgt, rx1033_off
rx1033_start:
+ eq $I10, 1, rx1033_restart
+ rx1033_cur."!cursor_debug"("START ", "infix:sym<**>")
$I10 = self.'from'()
ne $I10, -1, rxscan1037_done
goto rxscan1037_scan
@@ -12504,16 +13413,16 @@
set_addr $I10, rxscan1037_loop
rx1033_cur."!mark_push"(0, rx1033_pos, $I10)
rxscan1037_done:
-.annotate 'line', 491
+.annotate 'line', 498
# rx subcapture "sym"
set_addr $I10, rxcap_1038_fail
rx1033_cur."!mark_push"(0, rx1033_pos, $I10)
- # rx literal "--"
+ # rx literal "**"
add $I11, rx1033_pos, 2
gt $I11, rx1033_eos, rx1033_fail
sub $I11, rx1033_pos, rx1033_off
substr $S10, rx1033_tgt, $I11, 2
- ne $S10, "--", rx1033_fail
+ ne $S10, "**", rx1033_fail
add rx1033_pos, 2
set_addr $I10, rxcap_1038_fail
($I12, $I11) = rx1033_cur."!mark_peek"($I10)
@@ -12528,33 +13437,35 @@
rxcap_1038_done:
# rx subrule "O" subtype=capture negate=
rx1033_cur."!cursor_pos"(rx1033_pos)
- $P10 = rx1033_cur."O"("%autoincrement, :pirop<dec>")
+ $P10 = rx1033_cur."O"("%exponentiation, :pirop<pow>")
unless $P10, rx1033_fail
rx1033_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
rx1033_pos = $P10."pos"()
# rx pass
- rx1033_cur."!cursor_pass"(rx1033_pos, "prefix:sym<-->")
- rx1033_cur."!cursor_debug"("PASS ", "prefix:sym<-->", " at pos=", rx1033_pos)
+ rx1033_cur."!cursor_pass"(rx1033_pos, "infix:sym<**>")
+ rx1033_cur."!cursor_debug"("PASS ", "infix:sym<**>", " at pos=", rx1033_pos)
.return (rx1033_cur)
+ rx1033_restart:
+.annotate 'line', 447
+ rx1033_cur."!cursor_debug"("NEXT ", "infix:sym<**>")
rx1033_fail:
-.annotate 'line', 446
(rx1033_rep, rx1033_pos, $I10, $P10) = rx1033_cur."!mark_fail"(0)
lt rx1033_pos, -1, rx1033_done
eq rx1033_pos, -1, rx1033_fail
jump $I10
rx1033_done:
rx1033_cur."!cursor_fail"()
- rx1033_cur."!cursor_debug"("FAIL ", "prefix:sym<-->")
+ rx1033_cur."!cursor_debug"("FAIL ", "infix:sym<**>")
.return (rx1033_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<-->" :subid("255_1275811487.95429") :method
-.annotate 'line', 446
- $P1035 = self."!PREFIX__!subrule"("O", "--")
+.sub "!PREFIX__infix:sym<**>" :subid("263_1280467477.44751") :method
+.annotate 'line', 447
+ $P1035 = self."!PREFIX__!subrule"("O", "**")
new $P1036, "ResizablePMCArray"
push $P1036, $P1035
.return ($P1036)
@@ -12562,16 +13473,15 @@
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<++>" :subid("256_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "prefix:sym<+>" :subid("264_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1040_tgt
.local int rx1040_pos
.local int rx1040_off
.local int rx1040_eos
.local int rx1040_rep
.local pmc rx1040_cur
- (rx1040_cur, rx1040_pos, rx1040_tgt) = self."!cursor_start"()
- rx1040_cur."!cursor_debug"("START ", "postfix:sym<++>")
+ (rx1040_cur, rx1040_pos, rx1040_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1040_cur
.local pmc match
.lex "$/", match
@@ -12582,6 +13492,8 @@
sub rx1040_off, rx1040_pos, 1
substr rx1040_tgt, rx1040_tgt, rx1040_off
rx1040_start:
+ eq $I10, 1, rx1040_restart
+ rx1040_cur."!cursor_debug"("START ", "prefix:sym<+>")
$I10 = self.'from'()
ne $I10, -1, rxscan1044_done
goto rxscan1044_scan
@@ -12594,17 +13506,17 @@
set_addr $I10, rxscan1044_loop
rx1040_cur."!mark_push"(0, rx1040_pos, $I10)
rxscan1044_done:
-.annotate 'line', 494
+.annotate 'line', 500
# rx subcapture "sym"
set_addr $I10, rxcap_1045_fail
rx1040_cur."!mark_push"(0, rx1040_pos, $I10)
- # rx literal "++"
- add $I11, rx1040_pos, 2
+ # rx literal "+"
+ add $I11, rx1040_pos, 1
gt $I11, rx1040_eos, rx1040_fail
sub $I11, rx1040_pos, rx1040_off
- substr $S10, rx1040_tgt, $I11, 2
- ne $S10, "++", rx1040_fail
- add rx1040_pos, 2
+ substr $S10, rx1040_tgt, $I11, 1
+ ne $S10, "+", rx1040_fail
+ add rx1040_pos, 1
set_addr $I10, rxcap_1045_fail
($I12, $I11) = rx1040_cur."!mark_peek"($I10)
rx1040_cur."!cursor_pos"($I11)
@@ -12618,33 +13530,35 @@
rxcap_1045_done:
# rx subrule "O" subtype=capture negate=
rx1040_cur."!cursor_pos"(rx1040_pos)
- $P10 = rx1040_cur."O"("%autoincrement")
+ $P10 = rx1040_cur."O"("%symbolic_unary, :pirop<set N*>")
unless $P10, rx1040_fail
rx1040_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
rx1040_pos = $P10."pos"()
# rx pass
- rx1040_cur."!cursor_pass"(rx1040_pos, "postfix:sym<++>")
- rx1040_cur."!cursor_debug"("PASS ", "postfix:sym<++>", " at pos=", rx1040_pos)
+ rx1040_cur."!cursor_pass"(rx1040_pos, "prefix:sym<+>")
+ rx1040_cur."!cursor_debug"("PASS ", "prefix:sym<+>", " at pos=", rx1040_pos)
.return (rx1040_cur)
+ rx1040_restart:
+.annotate 'line', 447
+ rx1040_cur."!cursor_debug"("NEXT ", "prefix:sym<+>")
rx1040_fail:
-.annotate 'line', 446
(rx1040_rep, rx1040_pos, $I10, $P10) = rx1040_cur."!mark_fail"(0)
lt rx1040_pos, -1, rx1040_done
eq rx1040_pos, -1, rx1040_fail
jump $I10
rx1040_done:
rx1040_cur."!cursor_fail"()
- rx1040_cur."!cursor_debug"("FAIL ", "postfix:sym<++>")
+ rx1040_cur."!cursor_debug"("FAIL ", "prefix:sym<+>")
.return (rx1040_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<++>" :subid("257_1275811487.95429") :method
-.annotate 'line', 446
- $P1042 = self."!PREFIX__!subrule"("O", "++")
+.sub "!PREFIX__prefix:sym<+>" :subid("265_1280467477.44751") :method
+.annotate 'line', 447
+ $P1042 = self."!PREFIX__!subrule"("O", "+")
new $P1043, "ResizablePMCArray"
push $P1043, $P1042
.return ($P1043)
@@ -12652,16 +13566,15 @@
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<-->" :subid("258_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "prefix:sym<~>" :subid("266_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1047_tgt
.local int rx1047_pos
.local int rx1047_off
.local int rx1047_eos
.local int rx1047_rep
.local pmc rx1047_cur
- (rx1047_cur, rx1047_pos, rx1047_tgt) = self."!cursor_start"()
- rx1047_cur."!cursor_debug"("START ", "postfix:sym<-->")
+ (rx1047_cur, rx1047_pos, rx1047_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1047_cur
.local pmc match
.lex "$/", match
@@ -12672,6 +13585,8 @@
sub rx1047_off, rx1047_pos, 1
substr rx1047_tgt, rx1047_tgt, rx1047_off
rx1047_start:
+ eq $I10, 1, rx1047_restart
+ rx1047_cur."!cursor_debug"("START ", "prefix:sym<~>")
$I10 = self.'from'()
ne $I10, -1, rxscan1051_done
goto rxscan1051_scan
@@ -12684,17 +13599,17 @@
set_addr $I10, rxscan1051_loop
rx1047_cur."!mark_push"(0, rx1047_pos, $I10)
rxscan1051_done:
-.annotate 'line', 495
+.annotate 'line', 501
# rx subcapture "sym"
set_addr $I10, rxcap_1052_fail
rx1047_cur."!mark_push"(0, rx1047_pos, $I10)
- # rx literal "--"
- add $I11, rx1047_pos, 2
+ # rx literal "~"
+ add $I11, rx1047_pos, 1
gt $I11, rx1047_eos, rx1047_fail
sub $I11, rx1047_pos, rx1047_off
- substr $S10, rx1047_tgt, $I11, 2
- ne $S10, "--", rx1047_fail
- add rx1047_pos, 2
+ substr $S10, rx1047_tgt, $I11, 1
+ ne $S10, "~", rx1047_fail
+ add rx1047_pos, 1
set_addr $I10, rxcap_1052_fail
($I12, $I11) = rx1047_cur."!mark_peek"($I10)
rx1047_cur."!cursor_pos"($I11)
@@ -12708,33 +13623,35 @@
rxcap_1052_done:
# rx subrule "O" subtype=capture negate=
rx1047_cur."!cursor_pos"(rx1047_pos)
- $P10 = rx1047_cur."O"("%autoincrement")
+ $P10 = rx1047_cur."O"("%symbolic_unary, :pirop<set S*>")
unless $P10, rx1047_fail
rx1047_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
rx1047_pos = $P10."pos"()
# rx pass
- rx1047_cur."!cursor_pass"(rx1047_pos, "postfix:sym<-->")
- rx1047_cur."!cursor_debug"("PASS ", "postfix:sym<-->", " at pos=", rx1047_pos)
+ rx1047_cur."!cursor_pass"(rx1047_pos, "prefix:sym<~>")
+ rx1047_cur."!cursor_debug"("PASS ", "prefix:sym<~>", " at pos=", rx1047_pos)
.return (rx1047_cur)
+ rx1047_restart:
+.annotate 'line', 447
+ rx1047_cur."!cursor_debug"("NEXT ", "prefix:sym<~>")
rx1047_fail:
-.annotate 'line', 446
(rx1047_rep, rx1047_pos, $I10, $P10) = rx1047_cur."!mark_fail"(0)
lt rx1047_pos, -1, rx1047_done
eq rx1047_pos, -1, rx1047_fail
jump $I10
rx1047_done:
rx1047_cur."!cursor_fail"()
- rx1047_cur."!cursor_debug"("FAIL ", "postfix:sym<-->")
+ rx1047_cur."!cursor_debug"("FAIL ", "prefix:sym<~>")
.return (rx1047_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<-->" :subid("259_1275811487.95429") :method
-.annotate 'line', 446
- $P1049 = self."!PREFIX__!subrule"("O", "--")
+.sub "!PREFIX__prefix:sym<~>" :subid("267_1280467477.44751") :method
+.annotate 'line', 447
+ $P1049 = self."!PREFIX__!subrule"("O", "~")
new $P1050, "ResizablePMCArray"
push $P1050, $P1049
.return ($P1050)
@@ -12742,16 +13659,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<**>" :subid("260_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "prefix:sym<->" :subid("268_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1054_tgt
.local int rx1054_pos
.local int rx1054_off
.local int rx1054_eos
.local int rx1054_rep
.local pmc rx1054_cur
- (rx1054_cur, rx1054_pos, rx1054_tgt) = self."!cursor_start"()
- rx1054_cur."!cursor_debug"("START ", "infix:sym<**>")
+ (rx1054_cur, rx1054_pos, rx1054_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1054_cur
.local pmc match
.lex "$/", match
@@ -12762,365 +13678,377 @@
sub rx1054_off, rx1054_pos, 1
substr rx1054_tgt, rx1054_tgt, rx1054_off
rx1054_start:
+ eq $I10, 1, rx1054_restart
+ rx1054_cur."!cursor_debug"("START ", "prefix:sym<->")
$I10 = self.'from'()
- ne $I10, -1, rxscan1058_done
- goto rxscan1058_scan
- rxscan1058_loop:
+ ne $I10, -1, rxscan1057_done
+ goto rxscan1057_scan
+ rxscan1057_loop:
($P10) = rx1054_cur."from"()
inc $P10
set rx1054_pos, $P10
- ge rx1054_pos, rx1054_eos, rxscan1058_done
- rxscan1058_scan:
- set_addr $I10, rxscan1058_loop
+ ge rx1054_pos, rx1054_eos, rxscan1057_done
+ rxscan1057_scan:
+ set_addr $I10, rxscan1057_loop
rx1054_cur."!mark_push"(0, rx1054_pos, $I10)
- rxscan1058_done:
-.annotate 'line', 497
+ rxscan1057_done:
+.annotate 'line', 502
# rx subcapture "sym"
- set_addr $I10, rxcap_1059_fail
+ set_addr $I10, rxcap_1058_fail
rx1054_cur."!mark_push"(0, rx1054_pos, $I10)
- # rx literal "**"
- add $I11, rx1054_pos, 2
+ # rx literal "-"
+ add $I11, rx1054_pos, 1
gt $I11, rx1054_eos, rx1054_fail
sub $I11, rx1054_pos, rx1054_off
- substr $S10, rx1054_tgt, $I11, 2
- ne $S10, "**", rx1054_fail
- add rx1054_pos, 2
- set_addr $I10, rxcap_1059_fail
+ substr $S10, rx1054_tgt, $I11, 1
+ ne $S10, "-", rx1054_fail
+ add rx1054_pos, 1
+ set_addr $I10, rxcap_1058_fail
($I12, $I11) = rx1054_cur."!mark_peek"($I10)
rx1054_cur."!cursor_pos"($I11)
($P10) = rx1054_cur."!cursor_start"()
$P10."!cursor_pass"(rx1054_pos, "")
rx1054_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1059_done
- rxcap_1059_fail:
+ goto rxcap_1058_done
+ rxcap_1058_fail:
goto rx1054_fail
- rxcap_1059_done:
+ rxcap_1058_done:
+ # rx enumcharlist negate=1 zerowidth
+ ge rx1054_pos, rx1054_eos, rx1054_fail
+ sub $I10, rx1054_pos, rx1054_off
+ substr $S10, rx1054_tgt, $I10, 1
+ index $I11, ">", $S10
+ ge $I11, 0, rx1054_fail
+ # rx subrule "number" subtype=zerowidth negate=1
+ rx1054_cur."!cursor_pos"(rx1054_pos)
+ $P10 = rx1054_cur."number"()
+ if $P10, rx1054_fail
# rx subrule "O" subtype=capture negate=
rx1054_cur."!cursor_pos"(rx1054_pos)
- $P10 = rx1054_cur."O"("%exponentiation, :pirop<pow>")
+ $P10 = rx1054_cur."O"("%symbolic_unary, :pirop<neg>")
unless $P10, rx1054_fail
rx1054_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
rx1054_pos = $P10."pos"()
# rx pass
- rx1054_cur."!cursor_pass"(rx1054_pos, "infix:sym<**>")
- rx1054_cur."!cursor_debug"("PASS ", "infix:sym<**>", " at pos=", rx1054_pos)
+ rx1054_cur."!cursor_pass"(rx1054_pos, "prefix:sym<->")
+ rx1054_cur."!cursor_debug"("PASS ", "prefix:sym<->", " at pos=", rx1054_pos)
.return (rx1054_cur)
+ rx1054_restart:
+.annotate 'line', 447
+ rx1054_cur."!cursor_debug"("NEXT ", "prefix:sym<->")
rx1054_fail:
-.annotate 'line', 446
(rx1054_rep, rx1054_pos, $I10, $P10) = rx1054_cur."!mark_fail"(0)
lt rx1054_pos, -1, rx1054_done
eq rx1054_pos, -1, rx1054_fail
jump $I10
rx1054_done:
rx1054_cur."!cursor_fail"()
- rx1054_cur."!cursor_debug"("FAIL ", "infix:sym<**>")
+ rx1054_cur."!cursor_debug"("FAIL ", "prefix:sym<->")
.return (rx1054_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<**>" :subid("261_1275811487.95429") :method
-.annotate 'line', 446
- $P1056 = self."!PREFIX__!subrule"("O", "**")
- new $P1057, "ResizablePMCArray"
- push $P1057, $P1056
- .return ($P1057)
+.sub "!PREFIX__prefix:sym<->" :subid("269_1280467477.44751") :method
+.annotate 'line', 447
+ new $P1056, "ResizablePMCArray"
+ push $P1056, "-"
+ .return ($P1056)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<+>" :subid("262_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
- .local string rx1061_tgt
- .local int rx1061_pos
- .local int rx1061_off
- .local int rx1061_eos
- .local int rx1061_rep
- .local pmc rx1061_cur
- (rx1061_cur, rx1061_pos, rx1061_tgt) = self."!cursor_start"()
- rx1061_cur."!cursor_debug"("START ", "prefix:sym<+>")
- .lex unicode:"$\x{a2}", rx1061_cur
- .local pmc match
- .lex "$/", match
- length rx1061_eos, rx1061_tgt
- gt rx1061_pos, rx1061_eos, rx1061_done
- set rx1061_off, 0
- lt rx1061_pos, 2, rx1061_start
- sub rx1061_off, rx1061_pos, 1
- substr rx1061_tgt, rx1061_tgt, rx1061_off
- rx1061_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1065_done
- goto rxscan1065_scan
- rxscan1065_loop:
- ($P10) = rx1061_cur."from"()
- inc $P10
- set rx1061_pos, $P10
- ge rx1061_pos, rx1061_eos, rxscan1065_done
- rxscan1065_scan:
- set_addr $I10, rxscan1065_loop
- rx1061_cur."!mark_push"(0, rx1061_pos, $I10)
- rxscan1065_done:
-.annotate 'line', 499
+.sub "prefix:sym<?>" :subid("270_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+ .local string rx1060_tgt
+ .local int rx1060_pos
+ .local int rx1060_off
+ .local int rx1060_eos
+ .local int rx1060_rep
+ .local pmc rx1060_cur
+ (rx1060_cur, rx1060_pos, rx1060_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx1060_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1060_eos, rx1060_tgt
+ gt rx1060_pos, rx1060_eos, rx1060_done
+ set rx1060_off, 0
+ lt rx1060_pos, 2, rx1060_start
+ sub rx1060_off, rx1060_pos, 1
+ substr rx1060_tgt, rx1060_tgt, rx1060_off
+ rx1060_start:
+ eq $I10, 1, rx1060_restart
+ rx1060_cur."!cursor_debug"("START ", "prefix:sym<?>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1064_done
+ goto rxscan1064_scan
+ rxscan1064_loop:
+ ($P10) = rx1060_cur."from"()
+ inc $P10
+ set rx1060_pos, $P10
+ ge rx1060_pos, rx1060_eos, rxscan1064_done
+ rxscan1064_scan:
+ set_addr $I10, rxscan1064_loop
+ rx1060_cur."!mark_push"(0, rx1060_pos, $I10)
+ rxscan1064_done:
+.annotate 'line', 503
# rx subcapture "sym"
- set_addr $I10, rxcap_1066_fail
- rx1061_cur."!mark_push"(0, rx1061_pos, $I10)
- # rx literal "+"
- add $I11, rx1061_pos, 1
- gt $I11, rx1061_eos, rx1061_fail
- sub $I11, rx1061_pos, rx1061_off
- substr $S10, rx1061_tgt, $I11, 1
- ne $S10, "+", rx1061_fail
- add rx1061_pos, 1
- set_addr $I10, rxcap_1066_fail
- ($I12, $I11) = rx1061_cur."!mark_peek"($I10)
- rx1061_cur."!cursor_pos"($I11)
- ($P10) = rx1061_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1061_pos, "")
- rx1061_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1065_fail
+ rx1060_cur."!mark_push"(0, rx1060_pos, $I10)
+ # rx literal "?"
+ 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
+ add rx1060_pos, 1
+ set_addr $I10, rxcap_1065_fail
+ ($I12, $I11) = rx1060_cur."!mark_peek"($I10)
+ rx1060_cur."!cursor_pos"($I11)
+ ($P10) = rx1060_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1060_pos, "")
+ rx1060_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1066_done
- rxcap_1066_fail:
- goto rx1061_fail
- rxcap_1066_done:
+ goto rxcap_1065_done
+ rxcap_1065_fail:
+ goto rx1060_fail
+ rxcap_1065_done:
# rx subrule "O" subtype=capture negate=
- rx1061_cur."!cursor_pos"(rx1061_pos)
- $P10 = rx1061_cur."O"("%symbolic_unary, :pirop<set N*>")
- unless $P10, rx1061_fail
- rx1061_cur."!mark_push"(0, -1, 0, $P10)
+ rx1060_cur."!cursor_pos"(rx1060_pos)
+ $P10 = rx1060_cur."O"("%symbolic_unary, :pirop<istrue>")
+ unless $P10, rx1060_fail
+ rx1060_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1061_pos = $P10."pos"()
+ rx1060_pos = $P10."pos"()
# rx pass
- rx1061_cur."!cursor_pass"(rx1061_pos, "prefix:sym<+>")
- rx1061_cur."!cursor_debug"("PASS ", "prefix:sym<+>", " at pos=", rx1061_pos)
- .return (rx1061_cur)
- rx1061_fail:
-.annotate 'line', 446
- (rx1061_rep, rx1061_pos, $I10, $P10) = rx1061_cur."!mark_fail"(0)
- lt rx1061_pos, -1, rx1061_done
- eq rx1061_pos, -1, rx1061_fail
+ rx1060_cur."!cursor_pass"(rx1060_pos, "prefix:sym<?>")
+ rx1060_cur."!cursor_debug"("PASS ", "prefix:sym<?>", " at pos=", rx1060_pos)
+ .return (rx1060_cur)
+ rx1060_restart:
+.annotate 'line', 447
+ rx1060_cur."!cursor_debug"("NEXT ", "prefix:sym<?>")
+ rx1060_fail:
+ (rx1060_rep, rx1060_pos, $I10, $P10) = rx1060_cur."!mark_fail"(0)
+ lt rx1060_pos, -1, rx1060_done
+ eq rx1060_pos, -1, rx1060_fail
jump $I10
- rx1061_done:
- rx1061_cur."!cursor_fail"()
- rx1061_cur."!cursor_debug"("FAIL ", "prefix:sym<+>")
- .return (rx1061_cur)
+ rx1060_done:
+ rx1060_cur."!cursor_fail"()
+ rx1060_cur."!cursor_debug"("FAIL ", "prefix:sym<?>")
+ .return (rx1060_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<+>" :subid("263_1275811487.95429") :method
-.annotate 'line', 446
- $P1063 = self."!PREFIX__!subrule"("O", "+")
- new $P1064, "ResizablePMCArray"
- push $P1064, $P1063
- .return ($P1064)
+.sub "!PREFIX__prefix:sym<?>" :subid("271_1280467477.44751") :method
+.annotate 'line', 447
+ $P1062 = self."!PREFIX__!subrule"("O", "?")
+ new $P1063, "ResizablePMCArray"
+ push $P1063, $P1062
+ .return ($P1063)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<~>" :subid("264_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
- .local string rx1068_tgt
- .local int rx1068_pos
- .local int rx1068_off
- .local int rx1068_eos
- .local int rx1068_rep
- .local pmc rx1068_cur
- (rx1068_cur, rx1068_pos, rx1068_tgt) = self."!cursor_start"()
- rx1068_cur."!cursor_debug"("START ", "prefix:sym<~>")
- .lex unicode:"$\x{a2}", rx1068_cur
- .local pmc match
- .lex "$/", match
- length rx1068_eos, rx1068_tgt
- gt rx1068_pos, rx1068_eos, rx1068_done
- set rx1068_off, 0
- lt rx1068_pos, 2, rx1068_start
- sub rx1068_off, rx1068_pos, 1
- substr rx1068_tgt, rx1068_tgt, rx1068_off
- rx1068_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1072_done
- goto rxscan1072_scan
- rxscan1072_loop:
- ($P10) = rx1068_cur."from"()
- inc $P10
- set rx1068_pos, $P10
- ge rx1068_pos, rx1068_eos, rxscan1072_done
- rxscan1072_scan:
- set_addr $I10, rxscan1072_loop
- rx1068_cur."!mark_push"(0, rx1068_pos, $I10)
- rxscan1072_done:
-.annotate 'line', 500
+.sub "prefix:sym<!>" :subid("272_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+ .local string rx1067_tgt
+ .local int rx1067_pos
+ .local int rx1067_off
+ .local int rx1067_eos
+ .local int rx1067_rep
+ .local pmc rx1067_cur
+ (rx1067_cur, rx1067_pos, rx1067_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx1067_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1067_eos, rx1067_tgt
+ gt rx1067_pos, rx1067_eos, rx1067_done
+ set rx1067_off, 0
+ lt rx1067_pos, 2, rx1067_start
+ sub rx1067_off, rx1067_pos, 1
+ substr rx1067_tgt, rx1067_tgt, rx1067_off
+ rx1067_start:
+ eq $I10, 1, rx1067_restart
+ rx1067_cur."!cursor_debug"("START ", "prefix:sym<!>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1071_done
+ goto rxscan1071_scan
+ rxscan1071_loop:
+ ($P10) = rx1067_cur."from"()
+ inc $P10
+ set rx1067_pos, $P10
+ ge rx1067_pos, rx1067_eos, rxscan1071_done
+ rxscan1071_scan:
+ set_addr $I10, rxscan1071_loop
+ rx1067_cur."!mark_push"(0, rx1067_pos, $I10)
+ rxscan1071_done:
+.annotate 'line', 504
# rx subcapture "sym"
- set_addr $I10, rxcap_1073_fail
- rx1068_cur."!mark_push"(0, rx1068_pos, $I10)
- # rx literal "~"
- add $I11, rx1068_pos, 1
- gt $I11, rx1068_eos, rx1068_fail
- sub $I11, rx1068_pos, rx1068_off
- substr $S10, rx1068_tgt, $I11, 1
- ne $S10, "~", rx1068_fail
- add rx1068_pos, 1
- set_addr $I10, rxcap_1073_fail
- ($I12, $I11) = rx1068_cur."!mark_peek"($I10)
- rx1068_cur."!cursor_pos"($I11)
- ($P10) = rx1068_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1068_pos, "")
- rx1068_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1072_fail
+ rx1067_cur."!mark_push"(0, rx1067_pos, $I10)
+ # rx literal "!"
+ 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
+ add rx1067_pos, 1
+ set_addr $I10, rxcap_1072_fail
+ ($I12, $I11) = rx1067_cur."!mark_peek"($I10)
+ rx1067_cur."!cursor_pos"($I11)
+ ($P10) = rx1067_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1067_pos, "")
+ rx1067_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1073_done
- rxcap_1073_fail:
- goto rx1068_fail
- rxcap_1073_done:
+ goto rxcap_1072_done
+ rxcap_1072_fail:
+ goto rx1067_fail
+ rxcap_1072_done:
# rx subrule "O" subtype=capture negate=
- rx1068_cur."!cursor_pos"(rx1068_pos)
- $P10 = rx1068_cur."O"("%symbolic_unary, :pirop<set S*>")
- unless $P10, rx1068_fail
- rx1068_cur."!mark_push"(0, -1, 0, $P10)
+ rx1067_cur."!cursor_pos"(rx1067_pos)
+ $P10 = rx1067_cur."O"("%symbolic_unary, :pirop<isfalse>")
+ unless $P10, rx1067_fail
+ rx1067_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1068_pos = $P10."pos"()
+ rx1067_pos = $P10."pos"()
# rx pass
- rx1068_cur."!cursor_pass"(rx1068_pos, "prefix:sym<~>")
- rx1068_cur."!cursor_debug"("PASS ", "prefix:sym<~>", " at pos=", rx1068_pos)
- .return (rx1068_cur)
- rx1068_fail:
-.annotate 'line', 446
- (rx1068_rep, rx1068_pos, $I10, $P10) = rx1068_cur."!mark_fail"(0)
- lt rx1068_pos, -1, rx1068_done
- eq rx1068_pos, -1, rx1068_fail
+ rx1067_cur."!cursor_pass"(rx1067_pos, "prefix:sym<!>")
+ rx1067_cur."!cursor_debug"("PASS ", "prefix:sym<!>", " at pos=", rx1067_pos)
+ .return (rx1067_cur)
+ rx1067_restart:
+.annotate 'line', 447
+ rx1067_cur."!cursor_debug"("NEXT ", "prefix:sym<!>")
+ rx1067_fail:
+ (rx1067_rep, rx1067_pos, $I10, $P10) = rx1067_cur."!mark_fail"(0)
+ lt rx1067_pos, -1, rx1067_done
+ eq rx1067_pos, -1, rx1067_fail
jump $I10
- rx1068_done:
- rx1068_cur."!cursor_fail"()
- rx1068_cur."!cursor_debug"("FAIL ", "prefix:sym<~>")
- .return (rx1068_cur)
+ rx1067_done:
+ rx1067_cur."!cursor_fail"()
+ rx1067_cur."!cursor_debug"("FAIL ", "prefix:sym<!>")
+ .return (rx1067_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<~>" :subid("265_1275811487.95429") :method
-.annotate 'line', 446
- $P1070 = self."!PREFIX__!subrule"("O", "~")
- new $P1071, "ResizablePMCArray"
- push $P1071, $P1070
- .return ($P1071)
+.sub "!PREFIX__prefix:sym<!>" :subid("273_1280467477.44751") :method
+.annotate 'line', 447
+ $P1069 = self."!PREFIX__!subrule"("O", "!")
+ new $P1070, "ResizablePMCArray"
+ push $P1070, $P1069
+ .return ($P1070)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<->" :subid("266_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
- .local string rx1075_tgt
- .local int rx1075_pos
- .local int rx1075_off
- .local int rx1075_eos
- .local int rx1075_rep
- .local pmc rx1075_cur
- (rx1075_cur, rx1075_pos, rx1075_tgt) = self."!cursor_start"()
- rx1075_cur."!cursor_debug"("START ", "prefix:sym<->")
- .lex unicode:"$\x{a2}", rx1075_cur
- .local pmc match
- .lex "$/", match
- length rx1075_eos, rx1075_tgt
- gt rx1075_pos, rx1075_eos, rx1075_done
- set rx1075_off, 0
- lt rx1075_pos, 2, rx1075_start
- sub rx1075_off, rx1075_pos, 1
- substr rx1075_tgt, rx1075_tgt, rx1075_off
- rx1075_start:
+.sub "prefix:sym<|>" :subid("274_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
+ .local string rx1074_tgt
+ .local int rx1074_pos
+ .local int rx1074_off
+ .local int rx1074_eos
+ .local int rx1074_rep
+ .local pmc rx1074_cur
+ (rx1074_cur, rx1074_pos, rx1074_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx1074_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1074_eos, rx1074_tgt
+ gt rx1074_pos, rx1074_eos, rx1074_done
+ set rx1074_off, 0
+ lt rx1074_pos, 2, rx1074_start
+ sub rx1074_off, rx1074_pos, 1
+ substr rx1074_tgt, rx1074_tgt, rx1074_off
+ rx1074_start:
+ eq $I10, 1, rx1074_restart
+ rx1074_cur."!cursor_debug"("START ", "prefix:sym<|>")
$I10 = self.'from'()
ne $I10, -1, rxscan1078_done
goto rxscan1078_scan
rxscan1078_loop:
- ($P10) = rx1075_cur."from"()
+ ($P10) = rx1074_cur."from"()
inc $P10
- set rx1075_pos, $P10
- ge rx1075_pos, rx1075_eos, rxscan1078_done
+ set rx1074_pos, $P10
+ ge rx1074_pos, rx1074_eos, rxscan1078_done
rxscan1078_scan:
set_addr $I10, rxscan1078_loop
- rx1075_cur."!mark_push"(0, rx1075_pos, $I10)
+ rx1074_cur."!mark_push"(0, rx1074_pos, $I10)
rxscan1078_done:
-.annotate 'line', 501
+.annotate 'line', 505
# rx subcapture "sym"
set_addr $I10, rxcap_1079_fail
- rx1075_cur."!mark_push"(0, rx1075_pos, $I10)
- # rx literal "-"
- add $I11, rx1075_pos, 1
- gt $I11, rx1075_eos, rx1075_fail
- sub $I11, rx1075_pos, rx1075_off
- substr $S10, rx1075_tgt, $I11, 1
- ne $S10, "-", rx1075_fail
- add rx1075_pos, 1
+ rx1074_cur."!mark_push"(0, rx1074_pos, $I10)
+ # rx literal "|"
+ 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
+ add rx1074_pos, 1
set_addr $I10, rxcap_1079_fail
- ($I12, $I11) = rx1075_cur."!mark_peek"($I10)
- rx1075_cur."!cursor_pos"($I11)
- ($P10) = rx1075_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1075_pos, "")
- rx1075_cur."!mark_push"(0, -1, 0, $P10)
+ ($I12, $I11) = rx1074_cur."!mark_peek"($I10)
+ rx1074_cur."!cursor_pos"($I11)
+ ($P10) = rx1074_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1074_pos, "")
+ rx1074_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
goto rxcap_1079_done
rxcap_1079_fail:
- goto rx1075_fail
+ goto rx1074_fail
rxcap_1079_done:
- # rx enumcharlist negate=1 zerowidth
- ge rx1075_pos, rx1075_eos, rx1075_fail
- sub $I10, rx1075_pos, rx1075_off
- substr $S10, rx1075_tgt, $I10, 1
- index $I11, ">", $S10
- ge $I11, 0, rx1075_fail
- # rx subrule "number" subtype=zerowidth negate=1
- rx1075_cur."!cursor_pos"(rx1075_pos)
- $P10 = rx1075_cur."number"()
- if $P10, rx1075_fail
# rx subrule "O" subtype=capture negate=
- rx1075_cur."!cursor_pos"(rx1075_pos)
- $P10 = rx1075_cur."O"("%symbolic_unary, :pirop<neg>")
- unless $P10, rx1075_fail
- rx1075_cur."!mark_push"(0, -1, 0, $P10)
+ rx1074_cur."!cursor_pos"(rx1074_pos)
+ $P10 = rx1074_cur."O"("%symbolic_unary")
+ unless $P10, rx1074_fail
+ rx1074_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1075_pos = $P10."pos"()
+ rx1074_pos = $P10."pos"()
# rx pass
- rx1075_cur."!cursor_pass"(rx1075_pos, "prefix:sym<->")
- rx1075_cur."!cursor_debug"("PASS ", "prefix:sym<->", " at pos=", rx1075_pos)
- .return (rx1075_cur)
- rx1075_fail:
-.annotate 'line', 446
- (rx1075_rep, rx1075_pos, $I10, $P10) = rx1075_cur."!mark_fail"(0)
- lt rx1075_pos, -1, rx1075_done
- eq rx1075_pos, -1, rx1075_fail
+ rx1074_cur."!cursor_pass"(rx1074_pos, "prefix:sym<|>")
+ rx1074_cur."!cursor_debug"("PASS ", "prefix:sym<|>", " at pos=", rx1074_pos)
+ .return (rx1074_cur)
+ rx1074_restart:
+.annotate 'line', 447
+ rx1074_cur."!cursor_debug"("NEXT ", "prefix:sym<|>")
+ rx1074_fail:
+ (rx1074_rep, rx1074_pos, $I10, $P10) = rx1074_cur."!mark_fail"(0)
+ lt rx1074_pos, -1, rx1074_done
+ eq rx1074_pos, -1, rx1074_fail
jump $I10
- rx1075_done:
- rx1075_cur."!cursor_fail"()
- rx1075_cur."!cursor_debug"("FAIL ", "prefix:sym<->")
- .return (rx1075_cur)
+ rx1074_done:
+ rx1074_cur."!cursor_fail"()
+ rx1074_cur."!cursor_debug"("FAIL ", "prefix:sym<|>")
+ .return (rx1074_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<->" :subid("267_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__prefix:sym<|>" :subid("275_1280467477.44751") :method
+.annotate 'line', 447
+ $P1076 = self."!PREFIX__!subrule"("O", "|")
new $P1077, "ResizablePMCArray"
- push $P1077, "-"
+ push $P1077, $P1076
.return ($P1077)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<?>" :subid("268_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<*>" :subid("276_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1081_tgt
.local int rx1081_pos
.local int rx1081_off
.local int rx1081_eos
.local int rx1081_rep
.local pmc rx1081_cur
- (rx1081_cur, rx1081_pos, rx1081_tgt) = self."!cursor_start"()
- rx1081_cur."!cursor_debug"("START ", "prefix:sym<?>")
+ (rx1081_cur, rx1081_pos, rx1081_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1081_cur
.local pmc match
.lex "$/", match
@@ -13131,6 +14059,8 @@
sub rx1081_off, rx1081_pos, 1
substr rx1081_tgt, rx1081_tgt, rx1081_off
rx1081_start:
+ eq $I10, 1, rx1081_restart
+ rx1081_cur."!cursor_debug"("START ", "infix:sym<*>")
$I10 = self.'from'()
ne $I10, -1, rxscan1085_done
goto rxscan1085_scan
@@ -13143,16 +14073,16 @@
set_addr $I10, rxscan1085_loop
rx1081_cur."!mark_push"(0, rx1081_pos, $I10)
rxscan1085_done:
-.annotate 'line', 502
+.annotate 'line', 507
# rx subcapture "sym"
set_addr $I10, rxcap_1086_fail
rx1081_cur."!mark_push"(0, rx1081_pos, $I10)
- # rx literal "?"
+ # rx literal "*"
add $I11, rx1081_pos, 1
gt $I11, rx1081_eos, rx1081_fail
sub $I11, rx1081_pos, rx1081_off
substr $S10, rx1081_tgt, $I11, 1
- ne $S10, "?", rx1081_fail
+ ne $S10, "*", rx1081_fail
add rx1081_pos, 1
set_addr $I10, rxcap_1086_fail
($I12, $I11) = rx1081_cur."!mark_peek"($I10)
@@ -13167,33 +14097,35 @@
rxcap_1086_done:
# rx subrule "O" subtype=capture negate=
rx1081_cur."!cursor_pos"(rx1081_pos)
- $P10 = rx1081_cur."O"("%symbolic_unary, :pirop<istrue>")
+ $P10 = rx1081_cur."O"("%multiplicative, :pirop<mul>")
unless $P10, rx1081_fail
rx1081_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
rx1081_pos = $P10."pos"()
# rx pass
- rx1081_cur."!cursor_pass"(rx1081_pos, "prefix:sym<?>")
- rx1081_cur."!cursor_debug"("PASS ", "prefix:sym<?>", " at pos=", rx1081_pos)
+ rx1081_cur."!cursor_pass"(rx1081_pos, "infix:sym<*>")
+ rx1081_cur."!cursor_debug"("PASS ", "infix:sym<*>", " at pos=", rx1081_pos)
.return (rx1081_cur)
+ rx1081_restart:
+.annotate 'line', 447
+ rx1081_cur."!cursor_debug"("NEXT ", "infix:sym<*>")
rx1081_fail:
-.annotate 'line', 446
(rx1081_rep, rx1081_pos, $I10, $P10) = rx1081_cur."!mark_fail"(0)
lt rx1081_pos, -1, rx1081_done
eq rx1081_pos, -1, rx1081_fail
jump $I10
rx1081_done:
rx1081_cur."!cursor_fail"()
- rx1081_cur."!cursor_debug"("FAIL ", "prefix:sym<?>")
+ rx1081_cur."!cursor_debug"("FAIL ", "infix:sym<*>")
.return (rx1081_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<?>" :subid("269_1275811487.95429") :method
-.annotate 'line', 446
- $P1083 = self."!PREFIX__!subrule"("O", "?")
+.sub "!PREFIX__infix:sym<*>" :subid("277_1280467477.44751") :method
+.annotate 'line', 447
+ $P1083 = self."!PREFIX__!subrule"("O", "*")
new $P1084, "ResizablePMCArray"
push $P1084, $P1083
.return ($P1084)
@@ -13201,16 +14133,15 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<!>" :subid("270_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym</>" :subid("278_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1088_tgt
.local int rx1088_pos
.local int rx1088_off
.local int rx1088_eos
.local int rx1088_rep
.local pmc rx1088_cur
- (rx1088_cur, rx1088_pos, rx1088_tgt) = self."!cursor_start"()
- rx1088_cur."!cursor_debug"("START ", "prefix:sym<!>")
+ (rx1088_cur, rx1088_pos, rx1088_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1088_cur
.local pmc match
.lex "$/", match
@@ -13221,6 +14152,8 @@
sub rx1088_off, rx1088_pos, 1
substr rx1088_tgt, rx1088_tgt, rx1088_off
rx1088_start:
+ eq $I10, 1, rx1088_restart
+ rx1088_cur."!cursor_debug"("START ", "infix:sym</>")
$I10 = self.'from'()
ne $I10, -1, rxscan1092_done
goto rxscan1092_scan
@@ -13233,16 +14166,16 @@
set_addr $I10, rxscan1092_loop
rx1088_cur."!mark_push"(0, rx1088_pos, $I10)
rxscan1092_done:
-.annotate 'line', 503
+.annotate 'line', 508
# rx subcapture "sym"
set_addr $I10, rxcap_1093_fail
rx1088_cur."!mark_push"(0, rx1088_pos, $I10)
- # rx literal "!"
+ # rx literal "/"
add $I11, rx1088_pos, 1
gt $I11, rx1088_eos, rx1088_fail
sub $I11, rx1088_pos, rx1088_off
substr $S10, rx1088_tgt, $I11, 1
- ne $S10, "!", rx1088_fail
+ ne $S10, "/", rx1088_fail
add rx1088_pos, 1
set_addr $I10, rxcap_1093_fail
($I12, $I11) = rx1088_cur."!mark_peek"($I10)
@@ -13257,33 +14190,35 @@
rxcap_1093_done:
# rx subrule "O" subtype=capture negate=
rx1088_cur."!cursor_pos"(rx1088_pos)
- $P10 = rx1088_cur."O"("%symbolic_unary, :pirop<isfalse>")
+ $P10 = rx1088_cur."O"("%multiplicative, :pirop<div>")
unless $P10, rx1088_fail
rx1088_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
rx1088_pos = $P10."pos"()
# rx pass
- rx1088_cur."!cursor_pass"(rx1088_pos, "prefix:sym<!>")
- rx1088_cur."!cursor_debug"("PASS ", "prefix:sym<!>", " at pos=", rx1088_pos)
+ rx1088_cur."!cursor_pass"(rx1088_pos, "infix:sym</>")
+ rx1088_cur."!cursor_debug"("PASS ", "infix:sym</>", " at pos=", rx1088_pos)
.return (rx1088_cur)
+ rx1088_restart:
+.annotate 'line', 447
+ rx1088_cur."!cursor_debug"("NEXT ", "infix:sym</>")
rx1088_fail:
-.annotate 'line', 446
(rx1088_rep, rx1088_pos, $I10, $P10) = rx1088_cur."!mark_fail"(0)
lt rx1088_pos, -1, rx1088_done
eq rx1088_pos, -1, rx1088_fail
jump $I10
rx1088_done:
rx1088_cur."!cursor_fail"()
- rx1088_cur."!cursor_debug"("FAIL ", "prefix:sym<!>")
+ rx1088_cur."!cursor_debug"("FAIL ", "infix:sym</>")
.return (rx1088_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<!>" :subid("271_1275811487.95429") :method
-.annotate 'line', 446
- $P1090 = self."!PREFIX__!subrule"("O", "!")
+.sub "!PREFIX__infix:sym</>" :subid("279_1280467477.44751") :method
+.annotate 'line', 447
+ $P1090 = self."!PREFIX__!subrule"("O", "/")
new $P1091, "ResizablePMCArray"
push $P1091, $P1090
.return ($P1091)
@@ -13291,16 +14226,15 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<|>" :subid("272_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<%>" :subid("280_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1095_tgt
.local int rx1095_pos
.local int rx1095_off
.local int rx1095_eos
.local int rx1095_rep
.local pmc rx1095_cur
- (rx1095_cur, rx1095_pos, rx1095_tgt) = self."!cursor_start"()
- rx1095_cur."!cursor_debug"("START ", "prefix:sym<|>")
+ (rx1095_cur, rx1095_pos, rx1095_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1095_cur
.local pmc match
.lex "$/", match
@@ -13311,6 +14245,8 @@
sub rx1095_off, rx1095_pos, 1
substr rx1095_tgt, rx1095_tgt, rx1095_off
rx1095_start:
+ eq $I10, 1, rx1095_restart
+ rx1095_cur."!cursor_debug"("START ", "infix:sym<%>")
$I10 = self.'from'()
ne $I10, -1, rxscan1099_done
goto rxscan1099_scan
@@ -13323,16 +14259,16 @@
set_addr $I10, rxscan1099_loop
rx1095_cur."!mark_push"(0, rx1095_pos, $I10)
rxscan1099_done:
-.annotate 'line', 504
+.annotate 'line', 509
# rx subcapture "sym"
set_addr $I10, rxcap_1100_fail
rx1095_cur."!mark_push"(0, rx1095_pos, $I10)
- # rx literal "|"
+ # rx literal "%"
add $I11, rx1095_pos, 1
gt $I11, rx1095_eos, rx1095_fail
sub $I11, rx1095_pos, rx1095_off
substr $S10, rx1095_tgt, $I11, 1
- ne $S10, "|", rx1095_fail
+ ne $S10, "%", rx1095_fail
add rx1095_pos, 1
set_addr $I10, rxcap_1100_fail
($I12, $I11) = rx1095_cur."!mark_peek"($I10)
@@ -13347,33 +14283,35 @@
rxcap_1100_done:
# rx subrule "O" subtype=capture negate=
rx1095_cur."!cursor_pos"(rx1095_pos)
- $P10 = rx1095_cur."O"("%symbolic_unary")
+ $P10 = rx1095_cur."O"("%multiplicative, :pirop<mod>")
unless $P10, rx1095_fail
rx1095_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
rx1095_pos = $P10."pos"()
# rx pass
- rx1095_cur."!cursor_pass"(rx1095_pos, "prefix:sym<|>")
- rx1095_cur."!cursor_debug"("PASS ", "prefix:sym<|>", " at pos=", rx1095_pos)
+ rx1095_cur."!cursor_pass"(rx1095_pos, "infix:sym<%>")
+ rx1095_cur."!cursor_debug"("PASS ", "infix:sym<%>", " at pos=", rx1095_pos)
.return (rx1095_cur)
+ rx1095_restart:
+.annotate 'line', 447
+ rx1095_cur."!cursor_debug"("NEXT ", "infix:sym<%>")
rx1095_fail:
-.annotate 'line', 446
(rx1095_rep, rx1095_pos, $I10, $P10) = rx1095_cur."!mark_fail"(0)
lt rx1095_pos, -1, rx1095_done
eq rx1095_pos, -1, rx1095_fail
jump $I10
rx1095_done:
rx1095_cur."!cursor_fail"()
- rx1095_cur."!cursor_debug"("FAIL ", "prefix:sym<|>")
+ rx1095_cur."!cursor_debug"("FAIL ", "infix:sym<%>")
.return (rx1095_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<|>" :subid("273_1275811487.95429") :method
-.annotate 'line', 446
- $P1097 = self."!PREFIX__!subrule"("O", "|")
+.sub "!PREFIX__infix:sym<%>" :subid("281_1280467477.44751") :method
+.annotate 'line', 447
+ $P1097 = self."!PREFIX__!subrule"("O", "%")
new $P1098, "ResizablePMCArray"
push $P1098, $P1097
.return ($P1098)
@@ -13381,16 +14319,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<*>" :subid("274_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<+&>" :subid("282_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1102_tgt
.local int rx1102_pos
.local int rx1102_off
.local int rx1102_eos
.local int rx1102_rep
.local pmc rx1102_cur
- (rx1102_cur, rx1102_pos, rx1102_tgt) = self."!cursor_start"()
- rx1102_cur."!cursor_debug"("START ", "infix:sym<*>")
+ (rx1102_cur, rx1102_pos, rx1102_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1102_cur
.local pmc match
.lex "$/", match
@@ -13401,6 +14338,8 @@
sub rx1102_off, rx1102_pos, 1
substr rx1102_tgt, rx1102_tgt, rx1102_off
rx1102_start:
+ eq $I10, 1, rx1102_restart
+ rx1102_cur."!cursor_debug"("START ", "infix:sym<+&>")
$I10 = self.'from'()
ne $I10, -1, rxscan1106_done
goto rxscan1106_scan
@@ -13413,17 +14352,17 @@
set_addr $I10, rxscan1106_loop
rx1102_cur."!mark_push"(0, rx1102_pos, $I10)
rxscan1106_done:
-.annotate 'line', 506
+.annotate 'line', 510
# rx subcapture "sym"
set_addr $I10, rxcap_1107_fail
rx1102_cur."!mark_push"(0, rx1102_pos, $I10)
- # rx literal "*"
- add $I11, rx1102_pos, 1
+ # rx literal "+&"
+ add $I11, rx1102_pos, 2
gt $I11, rx1102_eos, rx1102_fail
sub $I11, rx1102_pos, rx1102_off
- substr $S10, rx1102_tgt, $I11, 1
- ne $S10, "*", rx1102_fail
- add rx1102_pos, 1
+ substr $S10, rx1102_tgt, $I11, 2
+ ne $S10, "+&", rx1102_fail
+ add rx1102_pos, 2
set_addr $I10, rxcap_1107_fail
($I12, $I11) = rx1102_cur."!mark_peek"($I10)
rx1102_cur."!cursor_pos"($I11)
@@ -13437,33 +14376,35 @@
rxcap_1107_done:
# rx subrule "O" subtype=capture negate=
rx1102_cur."!cursor_pos"(rx1102_pos)
- $P10 = rx1102_cur."O"("%multiplicative, :pirop<mul>")
+ $P10 = rx1102_cur."O"("%multiplicative, :pirop<band III>")
unless $P10, rx1102_fail
rx1102_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
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)
+ rx1102_cur."!cursor_pass"(rx1102_pos, "infix:sym<+&>")
+ rx1102_cur."!cursor_debug"("PASS ", "infix:sym<+&>", " at pos=", rx1102_pos)
.return (rx1102_cur)
+ rx1102_restart:
+.annotate 'line', 447
+ rx1102_cur."!cursor_debug"("NEXT ", "infix:sym<+&>")
rx1102_fail:
-.annotate 'line', 446
(rx1102_rep, rx1102_pos, $I10, $P10) = rx1102_cur."!mark_fail"(0)
lt rx1102_pos, -1, rx1102_done
eq rx1102_pos, -1, rx1102_fail
jump $I10
rx1102_done:
rx1102_cur."!cursor_fail"()
- rx1102_cur."!cursor_debug"("FAIL ", "infix:sym<*>")
+ rx1102_cur."!cursor_debug"("FAIL ", "infix:sym<+&>")
.return (rx1102_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<*>" :subid("275_1275811487.95429") :method
-.annotate 'line', 446
- $P1104 = self."!PREFIX__!subrule"("O", "*")
+.sub "!PREFIX__infix:sym<+&>" :subid("283_1280467477.44751") :method
+.annotate 'line', 447
+ $P1104 = self."!PREFIX__!subrule"("O", "+&")
new $P1105, "ResizablePMCArray"
push $P1105, $P1104
.return ($P1105)
@@ -13471,16 +14412,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym</>" :subid("276_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<+>" :subid("284_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1109_tgt
.local int rx1109_pos
.local int rx1109_off
.local int rx1109_eos
.local int rx1109_rep
.local pmc rx1109_cur
- (rx1109_cur, rx1109_pos, rx1109_tgt) = self."!cursor_start"()
- rx1109_cur."!cursor_debug"("START ", "infix:sym</>")
+ (rx1109_cur, rx1109_pos, rx1109_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1109_cur
.local pmc match
.lex "$/", match
@@ -13491,6 +14431,8 @@
sub rx1109_off, rx1109_pos, 1
substr rx1109_tgt, rx1109_tgt, rx1109_off
rx1109_start:
+ eq $I10, 1, rx1109_restart
+ rx1109_cur."!cursor_debug"("START ", "infix:sym<+>")
$I10 = self.'from'()
ne $I10, -1, rxscan1113_done
goto rxscan1113_scan
@@ -13503,16 +14445,16 @@
set_addr $I10, rxscan1113_loop
rx1109_cur."!mark_push"(0, rx1109_pos, $I10)
rxscan1113_done:
-.annotate 'line', 507
+.annotate 'line', 512
# rx subcapture "sym"
set_addr $I10, rxcap_1114_fail
rx1109_cur."!mark_push"(0, rx1109_pos, $I10)
- # rx literal "/"
+ # rx literal "+"
add $I11, rx1109_pos, 1
gt $I11, rx1109_eos, rx1109_fail
sub $I11, rx1109_pos, rx1109_off
substr $S10, rx1109_tgt, $I11, 1
- ne $S10, "/", rx1109_fail
+ ne $S10, "+", rx1109_fail
add rx1109_pos, 1
set_addr $I10, rxcap_1114_fail
($I12, $I11) = rx1109_cur."!mark_peek"($I10)
@@ -13527,33 +14469,35 @@
rxcap_1114_done:
# rx subrule "O" subtype=capture negate=
rx1109_cur."!cursor_pos"(rx1109_pos)
- $P10 = rx1109_cur."O"("%multiplicative, :pirop<div>")
+ $P10 = rx1109_cur."O"("%additive, :pirop<add>")
unless $P10, rx1109_fail
rx1109_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
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)
+ rx1109_cur."!cursor_pass"(rx1109_pos, "infix:sym<+>")
+ rx1109_cur."!cursor_debug"("PASS ", "infix:sym<+>", " at pos=", rx1109_pos)
.return (rx1109_cur)
+ rx1109_restart:
+.annotate 'line', 447
+ rx1109_cur."!cursor_debug"("NEXT ", "infix:sym<+>")
rx1109_fail:
-.annotate 'line', 446
(rx1109_rep, rx1109_pos, $I10, $P10) = rx1109_cur."!mark_fail"(0)
lt rx1109_pos, -1, rx1109_done
eq rx1109_pos, -1, rx1109_fail
jump $I10
rx1109_done:
rx1109_cur."!cursor_fail"()
- rx1109_cur."!cursor_debug"("FAIL ", "infix:sym</>")
+ rx1109_cur."!cursor_debug"("FAIL ", "infix:sym<+>")
.return (rx1109_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym</>" :subid("277_1275811487.95429") :method
-.annotate 'line', 446
- $P1111 = self."!PREFIX__!subrule"("O", "/")
+.sub "!PREFIX__infix:sym<+>" :subid("285_1280467477.44751") :method
+.annotate 'line', 447
+ $P1111 = self."!PREFIX__!subrule"("O", "+")
new $P1112, "ResizablePMCArray"
push $P1112, $P1111
.return ($P1112)
@@ -13561,16 +14505,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<%>" :subid("278_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<->" :subid("286_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1116_tgt
.local int rx1116_pos
.local int rx1116_off
.local int rx1116_eos
.local int rx1116_rep
.local pmc rx1116_cur
- (rx1116_cur, rx1116_pos, rx1116_tgt) = self."!cursor_start"()
- rx1116_cur."!cursor_debug"("START ", "infix:sym<%>")
+ (rx1116_cur, rx1116_pos, rx1116_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1116_cur
.local pmc match
.lex "$/", match
@@ -13581,6 +14524,8 @@
sub rx1116_off, rx1116_pos, 1
substr rx1116_tgt, rx1116_tgt, rx1116_off
rx1116_start:
+ eq $I10, 1, rx1116_restart
+ rx1116_cur."!cursor_debug"("START ", "infix:sym<->")
$I10 = self.'from'()
ne $I10, -1, rxscan1120_done
goto rxscan1120_scan
@@ -13593,16 +14538,16 @@
set_addr $I10, rxscan1120_loop
rx1116_cur."!mark_push"(0, rx1116_pos, $I10)
rxscan1120_done:
-.annotate 'line', 508
+.annotate 'line', 513
# rx subcapture "sym"
set_addr $I10, rxcap_1121_fail
rx1116_cur."!mark_push"(0, rx1116_pos, $I10)
- # rx literal "%"
+ # rx literal "-"
add $I11, rx1116_pos, 1
gt $I11, rx1116_eos, rx1116_fail
sub $I11, rx1116_pos, rx1116_off
substr $S10, rx1116_tgt, $I11, 1
- ne $S10, "%", rx1116_fail
+ ne $S10, "-", rx1116_fail
add rx1116_pos, 1
set_addr $I10, rxcap_1121_fail
($I12, $I11) = rx1116_cur."!mark_peek"($I10)
@@ -13617,33 +14562,35 @@
rxcap_1121_done:
# rx subrule "O" subtype=capture negate=
rx1116_cur."!cursor_pos"(rx1116_pos)
- $P10 = rx1116_cur."O"("%multiplicative, :pirop<mod>")
+ $P10 = rx1116_cur."O"("%additive, :pirop<sub>")
unless $P10, rx1116_fail
rx1116_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
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)
+ rx1116_cur."!cursor_pass"(rx1116_pos, "infix:sym<->")
+ rx1116_cur."!cursor_debug"("PASS ", "infix:sym<->", " at pos=", rx1116_pos)
.return (rx1116_cur)
+ rx1116_restart:
+.annotate 'line', 447
+ rx1116_cur."!cursor_debug"("NEXT ", "infix:sym<->")
rx1116_fail:
-.annotate 'line', 446
(rx1116_rep, rx1116_pos, $I10, $P10) = rx1116_cur."!mark_fail"(0)
lt rx1116_pos, -1, rx1116_done
eq rx1116_pos, -1, rx1116_fail
jump $I10
rx1116_done:
rx1116_cur."!cursor_fail"()
- rx1116_cur."!cursor_debug"("FAIL ", "infix:sym<%>")
+ rx1116_cur."!cursor_debug"("FAIL ", "infix:sym<->")
.return (rx1116_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<%>" :subid("279_1275811487.95429") :method
-.annotate 'line', 446
- $P1118 = self."!PREFIX__!subrule"("O", "%")
+.sub "!PREFIX__infix:sym<->" :subid("287_1280467477.44751") :method
+.annotate 'line', 447
+ $P1118 = self."!PREFIX__!subrule"("O", "-")
new $P1119, "ResizablePMCArray"
push $P1119, $P1118
.return ($P1119)
@@ -13651,16 +14598,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<+>" :subid("280_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<+|>" :subid("288_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1123_tgt
.local int rx1123_pos
.local int rx1123_off
.local int rx1123_eos
.local int rx1123_rep
.local pmc rx1123_cur
- (rx1123_cur, rx1123_pos, rx1123_tgt) = self."!cursor_start"()
- rx1123_cur."!cursor_debug"("START ", "infix:sym<+>")
+ (rx1123_cur, rx1123_pos, rx1123_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1123_cur
.local pmc match
.lex "$/", match
@@ -13671,6 +14617,8 @@
sub rx1123_off, rx1123_pos, 1
substr rx1123_tgt, rx1123_tgt, rx1123_off
rx1123_start:
+ eq $I10, 1, rx1123_restart
+ rx1123_cur."!cursor_debug"("START ", "infix:sym<+|>")
$I10 = self.'from'()
ne $I10, -1, rxscan1127_done
goto rxscan1127_scan
@@ -13683,17 +14631,17 @@
set_addr $I10, rxscan1127_loop
rx1123_cur."!mark_push"(0, rx1123_pos, $I10)
rxscan1127_done:
-.annotate 'line', 510
+.annotate 'line', 514
# rx subcapture "sym"
set_addr $I10, rxcap_1128_fail
rx1123_cur."!mark_push"(0, rx1123_pos, $I10)
- # rx literal "+"
- add $I11, rx1123_pos, 1
+ # rx literal "+|"
+ add $I11, rx1123_pos, 2
gt $I11, rx1123_eos, rx1123_fail
sub $I11, rx1123_pos, rx1123_off
- substr $S10, rx1123_tgt, $I11, 1
- ne $S10, "+", rx1123_fail
- add rx1123_pos, 1
+ substr $S10, rx1123_tgt, $I11, 2
+ ne $S10, "+|", rx1123_fail
+ add rx1123_pos, 2
set_addr $I10, rxcap_1128_fail
($I12, $I11) = rx1123_cur."!mark_peek"($I10)
rx1123_cur."!cursor_pos"($I11)
@@ -13707,33 +14655,35 @@
rxcap_1128_done:
# rx subrule "O" subtype=capture negate=
rx1123_cur."!cursor_pos"(rx1123_pos)
- $P10 = rx1123_cur."O"("%additive, :pirop<add>")
+ $P10 = rx1123_cur."O"("%additive, :pirop<bor III>")
unless $P10, rx1123_fail
rx1123_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
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)
+ rx1123_cur."!cursor_pass"(rx1123_pos, "infix:sym<+|>")
+ rx1123_cur."!cursor_debug"("PASS ", "infix:sym<+|>", " at pos=", rx1123_pos)
.return (rx1123_cur)
+ rx1123_restart:
+.annotate 'line', 447
+ rx1123_cur."!cursor_debug"("NEXT ", "infix:sym<+|>")
rx1123_fail:
-.annotate 'line', 446
(rx1123_rep, rx1123_pos, $I10, $P10) = rx1123_cur."!mark_fail"(0)
lt rx1123_pos, -1, rx1123_done
eq rx1123_pos, -1, rx1123_fail
jump $I10
rx1123_done:
rx1123_cur."!cursor_fail"()
- rx1123_cur."!cursor_debug"("FAIL ", "infix:sym<+>")
+ rx1123_cur."!cursor_debug"("FAIL ", "infix:sym<+|>")
.return (rx1123_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+>" :subid("281_1275811487.95429") :method
-.annotate 'line', 446
- $P1125 = self."!PREFIX__!subrule"("O", "+")
+.sub "!PREFIX__infix:sym<+|>" :subid("289_1280467477.44751") :method
+.annotate 'line', 447
+ $P1125 = self."!PREFIX__!subrule"("O", "+|")
new $P1126, "ResizablePMCArray"
push $P1126, $P1125
.return ($P1126)
@@ -13741,16 +14691,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<->" :subid("282_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<+^>" :subid("290_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1130_tgt
.local int rx1130_pos
.local int rx1130_off
.local int rx1130_eos
.local int rx1130_rep
.local pmc rx1130_cur
- (rx1130_cur, rx1130_pos, rx1130_tgt) = self."!cursor_start"()
- rx1130_cur."!cursor_debug"("START ", "infix:sym<->")
+ (rx1130_cur, rx1130_pos, rx1130_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1130_cur
.local pmc match
.lex "$/", match
@@ -13761,6 +14710,8 @@
sub rx1130_off, rx1130_pos, 1
substr rx1130_tgt, rx1130_tgt, rx1130_off
rx1130_start:
+ eq $I10, 1, rx1130_restart
+ rx1130_cur."!cursor_debug"("START ", "infix:sym<+^>")
$I10 = self.'from'()
ne $I10, -1, rxscan1134_done
goto rxscan1134_scan
@@ -13773,17 +14724,17 @@
set_addr $I10, rxscan1134_loop
rx1130_cur."!mark_push"(0, rx1130_pos, $I10)
rxscan1134_done:
-.annotate 'line', 511
+.annotate 'line', 515
# rx subcapture "sym"
set_addr $I10, rxcap_1135_fail
rx1130_cur."!mark_push"(0, rx1130_pos, $I10)
- # rx literal "-"
- add $I11, rx1130_pos, 1
+ # rx literal "+^"
+ add $I11, rx1130_pos, 2
gt $I11, rx1130_eos, rx1130_fail
sub $I11, rx1130_pos, rx1130_off
- substr $S10, rx1130_tgt, $I11, 1
- ne $S10, "-", rx1130_fail
- add rx1130_pos, 1
+ substr $S10, rx1130_tgt, $I11, 2
+ ne $S10, "+^", rx1130_fail
+ add rx1130_pos, 2
set_addr $I10, rxcap_1135_fail
($I12, $I11) = rx1130_cur."!mark_peek"($I10)
rx1130_cur."!cursor_pos"($I11)
@@ -13797,33 +14748,35 @@
rxcap_1135_done:
# rx subrule "O" subtype=capture negate=
rx1130_cur."!cursor_pos"(rx1130_pos)
- $P10 = rx1130_cur."O"("%additive, :pirop<sub>")
+ $P10 = rx1130_cur."O"("%additive, :pirop<bxor III>")
unless $P10, rx1130_fail
rx1130_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
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)
+ rx1130_cur."!cursor_pass"(rx1130_pos, "infix:sym<+^>")
+ rx1130_cur."!cursor_debug"("PASS ", "infix:sym<+^>", " at pos=", rx1130_pos)
.return (rx1130_cur)
+ rx1130_restart:
+.annotate 'line', 447
+ rx1130_cur."!cursor_debug"("NEXT ", "infix:sym<+^>")
rx1130_fail:
-.annotate 'line', 446
(rx1130_rep, rx1130_pos, $I10, $P10) = rx1130_cur."!mark_fail"(0)
lt rx1130_pos, -1, rx1130_done
eq rx1130_pos, -1, rx1130_fail
jump $I10
rx1130_done:
rx1130_cur."!cursor_fail"()
- rx1130_cur."!cursor_debug"("FAIL ", "infix:sym<->")
+ rx1130_cur."!cursor_debug"("FAIL ", "infix:sym<+^>")
.return (rx1130_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<->" :subid("283_1275811487.95429") :method
-.annotate 'line', 446
- $P1132 = self."!PREFIX__!subrule"("O", "-")
+.sub "!PREFIX__infix:sym<+^>" :subid("291_1280467477.44751") :method
+.annotate 'line', 447
+ $P1132 = self."!PREFIX__!subrule"("O", "+^")
new $P1133, "ResizablePMCArray"
push $P1133, $P1132
.return ($P1133)
@@ -13831,16 +14784,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<~>" :subid("284_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<~>" :subid("292_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1137_tgt
.local int rx1137_pos
.local int rx1137_off
.local int rx1137_eos
.local int rx1137_rep
.local pmc rx1137_cur
- (rx1137_cur, rx1137_pos, rx1137_tgt) = self."!cursor_start"()
- rx1137_cur."!cursor_debug"("START ", "infix:sym<~>")
+ (rx1137_cur, rx1137_pos, rx1137_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1137_cur
.local pmc match
.lex "$/", match
@@ -13851,6 +14803,8 @@
sub rx1137_off, rx1137_pos, 1
substr rx1137_tgt, rx1137_tgt, rx1137_off
rx1137_start:
+ eq $I10, 1, rx1137_restart
+ rx1137_cur."!cursor_debug"("START ", "infix:sym<~>")
$I10 = self.'from'()
ne $I10, -1, rxscan1141_done
goto rxscan1141_scan
@@ -13863,7 +14817,7 @@
set_addr $I10, rxscan1141_loop
rx1137_cur."!mark_push"(0, rx1137_pos, $I10)
rxscan1141_done:
-.annotate 'line', 513
+.annotate 'line', 517
# rx subcapture "sym"
set_addr $I10, rxcap_1142_fail
rx1137_cur."!mark_push"(0, rx1137_pos, $I10)
@@ -13896,8 +14850,10 @@
rx1137_cur."!cursor_pass"(rx1137_pos, "infix:sym<~>")
rx1137_cur."!cursor_debug"("PASS ", "infix:sym<~>", " at pos=", rx1137_pos)
.return (rx1137_cur)
+ rx1137_restart:
+.annotate 'line', 447
+ rx1137_cur."!cursor_debug"("NEXT ", "infix:sym<~>")
rx1137_fail:
-.annotate 'line', 446
(rx1137_rep, rx1137_pos, $I10, $P10) = rx1137_cur."!mark_fail"(0)
lt rx1137_pos, -1, rx1137_done
eq rx1137_pos, -1, rx1137_fail
@@ -13911,8 +14867,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~>" :subid("285_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<~>" :subid("293_1280467477.44751") :method
+.annotate 'line', 447
$P1139 = self."!PREFIX__!subrule"("O", "~")
new $P1140, "ResizablePMCArray"
push $P1140, $P1139
@@ -13921,16 +14877,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<==>" :subid("286_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<==>" :subid("294_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1144_tgt
.local int rx1144_pos
.local int rx1144_off
.local int rx1144_eos
.local int rx1144_rep
.local pmc rx1144_cur
- (rx1144_cur, rx1144_pos, rx1144_tgt) = self."!cursor_start"()
- rx1144_cur."!cursor_debug"("START ", "infix:sym<==>")
+ (rx1144_cur, rx1144_pos, rx1144_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1144_cur
.local pmc match
.lex "$/", match
@@ -13941,6 +14896,8 @@
sub rx1144_off, rx1144_pos, 1
substr rx1144_tgt, rx1144_tgt, rx1144_off
rx1144_start:
+ eq $I10, 1, rx1144_restart
+ rx1144_cur."!cursor_debug"("START ", "infix:sym<==>")
$I10 = self.'from'()
ne $I10, -1, rxscan1148_done
goto rxscan1148_scan
@@ -13953,7 +14910,7 @@
set_addr $I10, rxscan1148_loop
rx1144_cur."!mark_push"(0, rx1144_pos, $I10)
rxscan1148_done:
-.annotate 'line', 515
+.annotate 'line', 519
# rx subcapture "sym"
set_addr $I10, rxcap_1149_fail
rx1144_cur."!mark_push"(0, rx1144_pos, $I10)
@@ -13986,8 +14943,10 @@
rx1144_cur."!cursor_pass"(rx1144_pos, "infix:sym<==>")
rx1144_cur."!cursor_debug"("PASS ", "infix:sym<==>", " at pos=", rx1144_pos)
.return (rx1144_cur)
+ rx1144_restart:
+.annotate 'line', 447
+ rx1144_cur."!cursor_debug"("NEXT ", "infix:sym<==>")
rx1144_fail:
-.annotate 'line', 446
(rx1144_rep, rx1144_pos, $I10, $P10) = rx1144_cur."!mark_fail"(0)
lt rx1144_pos, -1, rx1144_done
eq rx1144_pos, -1, rx1144_fail
@@ -14001,8 +14960,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<==>" :subid("287_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<==>" :subid("295_1280467477.44751") :method
+.annotate 'line', 447
$P1146 = self."!PREFIX__!subrule"("O", "==")
new $P1147, "ResizablePMCArray"
push $P1147, $P1146
@@ -14011,16 +14970,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<!=>" :subid("288_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<!=>" :subid("296_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1151_tgt
.local int rx1151_pos
.local int rx1151_off
.local int rx1151_eos
.local int rx1151_rep
.local pmc rx1151_cur
- (rx1151_cur, rx1151_pos, rx1151_tgt) = self."!cursor_start"()
- rx1151_cur."!cursor_debug"("START ", "infix:sym<!=>")
+ (rx1151_cur, rx1151_pos, rx1151_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1151_cur
.local pmc match
.lex "$/", match
@@ -14031,6 +14989,8 @@
sub rx1151_off, rx1151_pos, 1
substr rx1151_tgt, rx1151_tgt, rx1151_off
rx1151_start:
+ eq $I10, 1, rx1151_restart
+ rx1151_cur."!cursor_debug"("START ", "infix:sym<!=>")
$I10 = self.'from'()
ne $I10, -1, rxscan1155_done
goto rxscan1155_scan
@@ -14043,7 +15003,7 @@
set_addr $I10, rxscan1155_loop
rx1151_cur."!mark_push"(0, rx1151_pos, $I10)
rxscan1155_done:
-.annotate 'line', 516
+.annotate 'line', 520
# rx subcapture "sym"
set_addr $I10, rxcap_1156_fail
rx1151_cur."!mark_push"(0, rx1151_pos, $I10)
@@ -14076,8 +15036,10 @@
rx1151_cur."!cursor_pass"(rx1151_pos, "infix:sym<!=>")
rx1151_cur."!cursor_debug"("PASS ", "infix:sym<!=>", " at pos=", rx1151_pos)
.return (rx1151_cur)
+ rx1151_restart:
+.annotate 'line', 447
+ rx1151_cur."!cursor_debug"("NEXT ", "infix:sym<!=>")
rx1151_fail:
-.annotate 'line', 446
(rx1151_rep, rx1151_pos, $I10, $P10) = rx1151_cur."!mark_fail"(0)
lt rx1151_pos, -1, rx1151_done
eq rx1151_pos, -1, rx1151_fail
@@ -14091,8 +15053,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<!=>" :subid("289_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<!=>" :subid("297_1280467477.44751") :method
+.annotate 'line', 447
$P1153 = self."!PREFIX__!subrule"("O", "!=")
new $P1154, "ResizablePMCArray"
push $P1154, $P1153
@@ -14101,16 +15063,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<<=>" :subid("290_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<<=>" :subid("298_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1158_tgt
.local int rx1158_pos
.local int rx1158_off
.local int rx1158_eos
.local int rx1158_rep
.local pmc rx1158_cur
- (rx1158_cur, rx1158_pos, rx1158_tgt) = self."!cursor_start"()
- rx1158_cur."!cursor_debug"("START ", "infix:sym<<=>")
+ (rx1158_cur, rx1158_pos, rx1158_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1158_cur
.local pmc match
.lex "$/", match
@@ -14121,6 +15082,8 @@
sub rx1158_off, rx1158_pos, 1
substr rx1158_tgt, rx1158_tgt, rx1158_off
rx1158_start:
+ eq $I10, 1, rx1158_restart
+ rx1158_cur."!cursor_debug"("START ", "infix:sym<<=>")
$I10 = self.'from'()
ne $I10, -1, rxscan1162_done
goto rxscan1162_scan
@@ -14133,7 +15096,7 @@
set_addr $I10, rxscan1162_loop
rx1158_cur."!mark_push"(0, rx1158_pos, $I10)
rxscan1162_done:
-.annotate 'line', 517
+.annotate 'line', 521
# rx subcapture "sym"
set_addr $I10, rxcap_1163_fail
rx1158_cur."!mark_push"(0, rx1158_pos, $I10)
@@ -14166,8 +15129,10 @@
rx1158_cur."!cursor_pass"(rx1158_pos, "infix:sym<<=>")
rx1158_cur."!cursor_debug"("PASS ", "infix:sym<<=>", " at pos=", rx1158_pos)
.return (rx1158_cur)
+ rx1158_restart:
+.annotate 'line', 447
+ rx1158_cur."!cursor_debug"("NEXT ", "infix:sym<<=>")
rx1158_fail:
-.annotate 'line', 446
(rx1158_rep, rx1158_pos, $I10, $P10) = rx1158_cur."!mark_fail"(0)
lt rx1158_pos, -1, rx1158_done
eq rx1158_pos, -1, rx1158_fail
@@ -14181,8 +15146,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<=>" :subid("291_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<<=>" :subid("299_1280467477.44751") :method
+.annotate 'line', 447
$P1160 = self."!PREFIX__!subrule"("O", "<=")
new $P1161, "ResizablePMCArray"
push $P1161, $P1160
@@ -14191,16 +15156,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<>=>" :subid("292_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<>=>" :subid("300_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1165_tgt
.local int rx1165_pos
.local int rx1165_off
.local int rx1165_eos
.local int rx1165_rep
.local pmc rx1165_cur
- (rx1165_cur, rx1165_pos, rx1165_tgt) = self."!cursor_start"()
- rx1165_cur."!cursor_debug"("START ", "infix:sym<>=>")
+ (rx1165_cur, rx1165_pos, rx1165_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1165_cur
.local pmc match
.lex "$/", match
@@ -14211,6 +15175,8 @@
sub rx1165_off, rx1165_pos, 1
substr rx1165_tgt, rx1165_tgt, rx1165_off
rx1165_start:
+ eq $I10, 1, rx1165_restart
+ rx1165_cur."!cursor_debug"("START ", "infix:sym<>=>")
$I10 = self.'from'()
ne $I10, -1, rxscan1169_done
goto rxscan1169_scan
@@ -14223,7 +15189,7 @@
set_addr $I10, rxscan1169_loop
rx1165_cur."!mark_push"(0, rx1165_pos, $I10)
rxscan1169_done:
-.annotate 'line', 518
+.annotate 'line', 522
# rx subcapture "sym"
set_addr $I10, rxcap_1170_fail
rx1165_cur."!mark_push"(0, rx1165_pos, $I10)
@@ -14256,8 +15222,10 @@
rx1165_cur."!cursor_pass"(rx1165_pos, "infix:sym<>=>")
rx1165_cur."!cursor_debug"("PASS ", "infix:sym<>=>", " at pos=", rx1165_pos)
.return (rx1165_cur)
+ rx1165_restart:
+.annotate 'line', 447
+ rx1165_cur."!cursor_debug"("NEXT ", "infix:sym<>=>")
rx1165_fail:
-.annotate 'line', 446
(rx1165_rep, rx1165_pos, $I10, $P10) = rx1165_cur."!mark_fail"(0)
lt rx1165_pos, -1, rx1165_done
eq rx1165_pos, -1, rx1165_fail
@@ -14271,8 +15239,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>=>" :subid("293_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<>=>" :subid("301_1280467477.44751") :method
+.annotate 'line', 447
$P1167 = self."!PREFIX__!subrule"("O", ">=")
new $P1168, "ResizablePMCArray"
push $P1168, $P1167
@@ -14281,16 +15249,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<<>" :subid("294_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<<>" :subid("302_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1172_tgt
.local int rx1172_pos
.local int rx1172_off
.local int rx1172_eos
.local int rx1172_rep
.local pmc rx1172_cur
- (rx1172_cur, rx1172_pos, rx1172_tgt) = self."!cursor_start"()
- rx1172_cur."!cursor_debug"("START ", "infix:sym<<>")
+ (rx1172_cur, rx1172_pos, rx1172_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1172_cur
.local pmc match
.lex "$/", match
@@ -14301,6 +15268,8 @@
sub rx1172_off, rx1172_pos, 1
substr rx1172_tgt, rx1172_tgt, rx1172_off
rx1172_start:
+ eq $I10, 1, rx1172_restart
+ rx1172_cur."!cursor_debug"("START ", "infix:sym<<>")
$I10 = self.'from'()
ne $I10, -1, rxscan1176_done
goto rxscan1176_scan
@@ -14313,7 +15282,7 @@
set_addr $I10, rxscan1176_loop
rx1172_cur."!mark_push"(0, rx1172_pos, $I10)
rxscan1176_done:
-.annotate 'line', 519
+.annotate 'line', 523
# rx subcapture "sym"
set_addr $I10, rxcap_1177_fail
rx1172_cur."!mark_push"(0, rx1172_pos, $I10)
@@ -14346,8 +15315,10 @@
rx1172_cur."!cursor_pass"(rx1172_pos, "infix:sym<<>")
rx1172_cur."!cursor_debug"("PASS ", "infix:sym<<>", " at pos=", rx1172_pos)
.return (rx1172_cur)
+ rx1172_restart:
+.annotate 'line', 447
+ rx1172_cur."!cursor_debug"("NEXT ", "infix:sym<<>")
rx1172_fail:
-.annotate 'line', 446
(rx1172_rep, rx1172_pos, $I10, $P10) = rx1172_cur."!mark_fail"(0)
lt rx1172_pos, -1, rx1172_done
eq rx1172_pos, -1, rx1172_fail
@@ -14361,8 +15332,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<>" :subid("295_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<<>" :subid("303_1280467477.44751") :method
+.annotate 'line', 447
$P1174 = self."!PREFIX__!subrule"("O", "<")
new $P1175, "ResizablePMCArray"
push $P1175, $P1174
@@ -14371,16 +15342,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<>>" :subid("296_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<>>" :subid("304_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1179_tgt
.local int rx1179_pos
.local int rx1179_off
.local int rx1179_eos
.local int rx1179_rep
.local pmc rx1179_cur
- (rx1179_cur, rx1179_pos, rx1179_tgt) = self."!cursor_start"()
- rx1179_cur."!cursor_debug"("START ", "infix:sym<>>")
+ (rx1179_cur, rx1179_pos, rx1179_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1179_cur
.local pmc match
.lex "$/", match
@@ -14391,6 +15361,8 @@
sub rx1179_off, rx1179_pos, 1
substr rx1179_tgt, rx1179_tgt, rx1179_off
rx1179_start:
+ eq $I10, 1, rx1179_restart
+ rx1179_cur."!cursor_debug"("START ", "infix:sym<>>")
$I10 = self.'from'()
ne $I10, -1, rxscan1183_done
goto rxscan1183_scan
@@ -14403,7 +15375,7 @@
set_addr $I10, rxscan1183_loop
rx1179_cur."!mark_push"(0, rx1179_pos, $I10)
rxscan1183_done:
-.annotate 'line', 520
+.annotate 'line', 524
# rx subcapture "sym"
set_addr $I10, rxcap_1184_fail
rx1179_cur."!mark_push"(0, rx1179_pos, $I10)
@@ -14436,8 +15408,10 @@
rx1179_cur."!cursor_pass"(rx1179_pos, "infix:sym<>>")
rx1179_cur."!cursor_debug"("PASS ", "infix:sym<>>", " at pos=", rx1179_pos)
.return (rx1179_cur)
+ rx1179_restart:
+.annotate 'line', 447
+ rx1179_cur."!cursor_debug"("NEXT ", "infix:sym<>>")
rx1179_fail:
-.annotate 'line', 446
(rx1179_rep, rx1179_pos, $I10, $P10) = rx1179_cur."!mark_fail"(0)
lt rx1179_pos, -1, rx1179_done
eq rx1179_pos, -1, rx1179_fail
@@ -14451,8 +15425,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>>" :subid("297_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<>>" :subid("305_1280467477.44751") :method
+.annotate 'line', 447
$P1181 = self."!PREFIX__!subrule"("O", ">")
new $P1182, "ResizablePMCArray"
push $P1182, $P1181
@@ -14461,16 +15435,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<eq>" :subid("298_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<eq>" :subid("306_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1186_tgt
.local int rx1186_pos
.local int rx1186_off
.local int rx1186_eos
.local int rx1186_rep
.local pmc rx1186_cur
- (rx1186_cur, rx1186_pos, rx1186_tgt) = self."!cursor_start"()
- rx1186_cur."!cursor_debug"("START ", "infix:sym<eq>")
+ (rx1186_cur, rx1186_pos, rx1186_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1186_cur
.local pmc match
.lex "$/", match
@@ -14481,6 +15454,8 @@
sub rx1186_off, rx1186_pos, 1
substr rx1186_tgt, rx1186_tgt, rx1186_off
rx1186_start:
+ eq $I10, 1, rx1186_restart
+ rx1186_cur."!cursor_debug"("START ", "infix:sym<eq>")
$I10 = self.'from'()
ne $I10, -1, rxscan1190_done
goto rxscan1190_scan
@@ -14493,7 +15468,7 @@
set_addr $I10, rxscan1190_loop
rx1186_cur."!mark_push"(0, rx1186_pos, $I10)
rxscan1190_done:
-.annotate 'line', 521
+.annotate 'line', 525
# rx subcapture "sym"
set_addr $I10, rxcap_1191_fail
rx1186_cur."!mark_push"(0, rx1186_pos, $I10)
@@ -14526,8 +15501,10 @@
rx1186_cur."!cursor_pass"(rx1186_pos, "infix:sym<eq>")
rx1186_cur."!cursor_debug"("PASS ", "infix:sym<eq>", " at pos=", rx1186_pos)
.return (rx1186_cur)
+ rx1186_restart:
+.annotate 'line', 447
+ rx1186_cur."!cursor_debug"("NEXT ", "infix:sym<eq>")
rx1186_fail:
-.annotate 'line', 446
(rx1186_rep, rx1186_pos, $I10, $P10) = rx1186_cur."!mark_fail"(0)
lt rx1186_pos, -1, rx1186_done
eq rx1186_pos, -1, rx1186_fail
@@ -14541,8 +15518,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<eq>" :subid("299_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<eq>" :subid("307_1280467477.44751") :method
+.annotate 'line', 447
$P1188 = self."!PREFIX__!subrule"("O", "eq")
new $P1189, "ResizablePMCArray"
push $P1189, $P1188
@@ -14551,16 +15528,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<ne>" :subid("300_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<ne>" :subid("308_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1193_tgt
.local int rx1193_pos
.local int rx1193_off
.local int rx1193_eos
.local int rx1193_rep
.local pmc rx1193_cur
- (rx1193_cur, rx1193_pos, rx1193_tgt) = self."!cursor_start"()
- rx1193_cur."!cursor_debug"("START ", "infix:sym<ne>")
+ (rx1193_cur, rx1193_pos, rx1193_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1193_cur
.local pmc match
.lex "$/", match
@@ -14571,6 +15547,8 @@
sub rx1193_off, rx1193_pos, 1
substr rx1193_tgt, rx1193_tgt, rx1193_off
rx1193_start:
+ eq $I10, 1, rx1193_restart
+ rx1193_cur."!cursor_debug"("START ", "infix:sym<ne>")
$I10 = self.'from'()
ne $I10, -1, rxscan1197_done
goto rxscan1197_scan
@@ -14583,7 +15561,7 @@
set_addr $I10, rxscan1197_loop
rx1193_cur."!mark_push"(0, rx1193_pos, $I10)
rxscan1197_done:
-.annotate 'line', 522
+.annotate 'line', 526
# rx subcapture "sym"
set_addr $I10, rxcap_1198_fail
rx1193_cur."!mark_push"(0, rx1193_pos, $I10)
@@ -14616,8 +15594,10 @@
rx1193_cur."!cursor_pass"(rx1193_pos, "infix:sym<ne>")
rx1193_cur."!cursor_debug"("PASS ", "infix:sym<ne>", " at pos=", rx1193_pos)
.return (rx1193_cur)
+ rx1193_restart:
+.annotate 'line', 447
+ rx1193_cur."!cursor_debug"("NEXT ", "infix:sym<ne>")
rx1193_fail:
-.annotate 'line', 446
(rx1193_rep, rx1193_pos, $I10, $P10) = rx1193_cur."!mark_fail"(0)
lt rx1193_pos, -1, rx1193_done
eq rx1193_pos, -1, rx1193_fail
@@ -14631,8 +15611,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ne>" :subid("301_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<ne>" :subid("309_1280467477.44751") :method
+.annotate 'line', 447
$P1195 = self."!PREFIX__!subrule"("O", "ne")
new $P1196, "ResizablePMCArray"
push $P1196, $P1195
@@ -14641,16 +15621,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<le>" :subid("302_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<le>" :subid("310_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1200_tgt
.local int rx1200_pos
.local int rx1200_off
.local int rx1200_eos
.local int rx1200_rep
.local pmc rx1200_cur
- (rx1200_cur, rx1200_pos, rx1200_tgt) = self."!cursor_start"()
- rx1200_cur."!cursor_debug"("START ", "infix:sym<le>")
+ (rx1200_cur, rx1200_pos, rx1200_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1200_cur
.local pmc match
.lex "$/", match
@@ -14661,6 +15640,8 @@
sub rx1200_off, rx1200_pos, 1
substr rx1200_tgt, rx1200_tgt, rx1200_off
rx1200_start:
+ eq $I10, 1, rx1200_restart
+ rx1200_cur."!cursor_debug"("START ", "infix:sym<le>")
$I10 = self.'from'()
ne $I10, -1, rxscan1204_done
goto rxscan1204_scan
@@ -14673,7 +15654,7 @@
set_addr $I10, rxscan1204_loop
rx1200_cur."!mark_push"(0, rx1200_pos, $I10)
rxscan1204_done:
-.annotate 'line', 523
+.annotate 'line', 527
# rx subcapture "sym"
set_addr $I10, rxcap_1205_fail
rx1200_cur."!mark_push"(0, rx1200_pos, $I10)
@@ -14706,8 +15687,10 @@
rx1200_cur."!cursor_pass"(rx1200_pos, "infix:sym<le>")
rx1200_cur."!cursor_debug"("PASS ", "infix:sym<le>", " at pos=", rx1200_pos)
.return (rx1200_cur)
+ rx1200_restart:
+.annotate 'line', 447
+ rx1200_cur."!cursor_debug"("NEXT ", "infix:sym<le>")
rx1200_fail:
-.annotate 'line', 446
(rx1200_rep, rx1200_pos, $I10, $P10) = rx1200_cur."!mark_fail"(0)
lt rx1200_pos, -1, rx1200_done
eq rx1200_pos, -1, rx1200_fail
@@ -14721,8 +15704,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<le>" :subid("303_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<le>" :subid("311_1280467477.44751") :method
+.annotate 'line', 447
$P1202 = self."!PREFIX__!subrule"("O", "le")
new $P1203, "ResizablePMCArray"
push $P1203, $P1202
@@ -14731,16 +15714,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<ge>" :subid("304_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<ge>" :subid("312_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1207_tgt
.local int rx1207_pos
.local int rx1207_off
.local int rx1207_eos
.local int rx1207_rep
.local pmc rx1207_cur
- (rx1207_cur, rx1207_pos, rx1207_tgt) = self."!cursor_start"()
- rx1207_cur."!cursor_debug"("START ", "infix:sym<ge>")
+ (rx1207_cur, rx1207_pos, rx1207_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1207_cur
.local pmc match
.lex "$/", match
@@ -14751,6 +15733,8 @@
sub rx1207_off, rx1207_pos, 1
substr rx1207_tgt, rx1207_tgt, rx1207_off
rx1207_start:
+ eq $I10, 1, rx1207_restart
+ rx1207_cur."!cursor_debug"("START ", "infix:sym<ge>")
$I10 = self.'from'()
ne $I10, -1, rxscan1211_done
goto rxscan1211_scan
@@ -14763,7 +15747,7 @@
set_addr $I10, rxscan1211_loop
rx1207_cur."!mark_push"(0, rx1207_pos, $I10)
rxscan1211_done:
-.annotate 'line', 524
+.annotate 'line', 528
# rx subcapture "sym"
set_addr $I10, rxcap_1212_fail
rx1207_cur."!mark_push"(0, rx1207_pos, $I10)
@@ -14796,8 +15780,10 @@
rx1207_cur."!cursor_pass"(rx1207_pos, "infix:sym<ge>")
rx1207_cur."!cursor_debug"("PASS ", "infix:sym<ge>", " at pos=", rx1207_pos)
.return (rx1207_cur)
+ rx1207_restart:
+.annotate 'line', 447
+ rx1207_cur."!cursor_debug"("NEXT ", "infix:sym<ge>")
rx1207_fail:
-.annotate 'line', 446
(rx1207_rep, rx1207_pos, $I10, $P10) = rx1207_cur."!mark_fail"(0)
lt rx1207_pos, -1, rx1207_done
eq rx1207_pos, -1, rx1207_fail
@@ -14811,8 +15797,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ge>" :subid("305_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<ge>" :subid("313_1280467477.44751") :method
+.annotate 'line', 447
$P1209 = self."!PREFIX__!subrule"("O", "ge")
new $P1210, "ResizablePMCArray"
push $P1210, $P1209
@@ -14821,16 +15807,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<lt>" :subid("306_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<lt>" :subid("314_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1214_tgt
.local int rx1214_pos
.local int rx1214_off
.local int rx1214_eos
.local int rx1214_rep
.local pmc rx1214_cur
- (rx1214_cur, rx1214_pos, rx1214_tgt) = self."!cursor_start"()
- rx1214_cur."!cursor_debug"("START ", "infix:sym<lt>")
+ (rx1214_cur, rx1214_pos, rx1214_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1214_cur
.local pmc match
.lex "$/", match
@@ -14841,6 +15826,8 @@
sub rx1214_off, rx1214_pos, 1
substr rx1214_tgt, rx1214_tgt, rx1214_off
rx1214_start:
+ eq $I10, 1, rx1214_restart
+ rx1214_cur."!cursor_debug"("START ", "infix:sym<lt>")
$I10 = self.'from'()
ne $I10, -1, rxscan1218_done
goto rxscan1218_scan
@@ -14853,7 +15840,7 @@
set_addr $I10, rxscan1218_loop
rx1214_cur."!mark_push"(0, rx1214_pos, $I10)
rxscan1218_done:
-.annotate 'line', 525
+.annotate 'line', 529
# rx subcapture "sym"
set_addr $I10, rxcap_1219_fail
rx1214_cur."!mark_push"(0, rx1214_pos, $I10)
@@ -14886,8 +15873,10 @@
rx1214_cur."!cursor_pass"(rx1214_pos, "infix:sym<lt>")
rx1214_cur."!cursor_debug"("PASS ", "infix:sym<lt>", " at pos=", rx1214_pos)
.return (rx1214_cur)
+ rx1214_restart:
+.annotate 'line', 447
+ rx1214_cur."!cursor_debug"("NEXT ", "infix:sym<lt>")
rx1214_fail:
-.annotate 'line', 446
(rx1214_rep, rx1214_pos, $I10, $P10) = rx1214_cur."!mark_fail"(0)
lt rx1214_pos, -1, rx1214_done
eq rx1214_pos, -1, rx1214_fail
@@ -14901,8 +15890,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<lt>" :subid("307_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<lt>" :subid("315_1280467477.44751") :method
+.annotate 'line', 447
$P1216 = self."!PREFIX__!subrule"("O", "lt")
new $P1217, "ResizablePMCArray"
push $P1217, $P1216
@@ -14911,16 +15900,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<gt>" :subid("308_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<gt>" :subid("316_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1221_tgt
.local int rx1221_pos
.local int rx1221_off
.local int rx1221_eos
.local int rx1221_rep
.local pmc rx1221_cur
- (rx1221_cur, rx1221_pos, rx1221_tgt) = self."!cursor_start"()
- rx1221_cur."!cursor_debug"("START ", "infix:sym<gt>")
+ (rx1221_cur, rx1221_pos, rx1221_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1221_cur
.local pmc match
.lex "$/", match
@@ -14931,6 +15919,8 @@
sub rx1221_off, rx1221_pos, 1
substr rx1221_tgt, rx1221_tgt, rx1221_off
rx1221_start:
+ eq $I10, 1, rx1221_restart
+ rx1221_cur."!cursor_debug"("START ", "infix:sym<gt>")
$I10 = self.'from'()
ne $I10, -1, rxscan1225_done
goto rxscan1225_scan
@@ -14943,7 +15933,7 @@
set_addr $I10, rxscan1225_loop
rx1221_cur."!mark_push"(0, rx1221_pos, $I10)
rxscan1225_done:
-.annotate 'line', 526
+.annotate 'line', 530
# rx subcapture "sym"
set_addr $I10, rxcap_1226_fail
rx1221_cur."!mark_push"(0, rx1221_pos, $I10)
@@ -14976,8 +15966,10 @@
rx1221_cur."!cursor_pass"(rx1221_pos, "infix:sym<gt>")
rx1221_cur."!cursor_debug"("PASS ", "infix:sym<gt>", " at pos=", rx1221_pos)
.return (rx1221_cur)
+ rx1221_restart:
+.annotate 'line', 447
+ rx1221_cur."!cursor_debug"("NEXT ", "infix:sym<gt>")
rx1221_fail:
-.annotate 'line', 446
(rx1221_rep, rx1221_pos, $I10, $P10) = rx1221_cur."!mark_fail"(0)
lt rx1221_pos, -1, rx1221_done
eq rx1221_pos, -1, rx1221_fail
@@ -14991,8 +15983,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<gt>" :subid("309_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<gt>" :subid("317_1280467477.44751") :method
+.annotate 'line', 447
$P1223 = self."!PREFIX__!subrule"("O", "gt")
new $P1224, "ResizablePMCArray"
push $P1224, $P1223
@@ -15001,16 +15993,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<=:=>" :subid("310_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<=:=>" :subid("318_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1228_tgt
.local int rx1228_pos
.local int rx1228_off
.local int rx1228_eos
.local int rx1228_rep
.local pmc rx1228_cur
- (rx1228_cur, rx1228_pos, rx1228_tgt) = self."!cursor_start"()
- rx1228_cur."!cursor_debug"("START ", "infix:sym<=:=>")
+ (rx1228_cur, rx1228_pos, rx1228_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1228_cur
.local pmc match
.lex "$/", match
@@ -15021,6 +16012,8 @@
sub rx1228_off, rx1228_pos, 1
substr rx1228_tgt, rx1228_tgt, rx1228_off
rx1228_start:
+ eq $I10, 1, rx1228_restart
+ rx1228_cur."!cursor_debug"("START ", "infix:sym<=:=>")
$I10 = self.'from'()
ne $I10, -1, rxscan1232_done
goto rxscan1232_scan
@@ -15033,7 +16026,7 @@
set_addr $I10, rxscan1232_loop
rx1228_cur."!mark_push"(0, rx1228_pos, $I10)
rxscan1232_done:
-.annotate 'line', 527
+.annotate 'line', 531
# rx subcapture "sym"
set_addr $I10, rxcap_1233_fail
rx1228_cur."!mark_push"(0, rx1228_pos, $I10)
@@ -15066,8 +16059,10 @@
rx1228_cur."!cursor_pass"(rx1228_pos, "infix:sym<=:=>")
rx1228_cur."!cursor_debug"("PASS ", "infix:sym<=:=>", " at pos=", rx1228_pos)
.return (rx1228_cur)
+ rx1228_restart:
+.annotate 'line', 447
+ rx1228_cur."!cursor_debug"("NEXT ", "infix:sym<=:=>")
rx1228_fail:
-.annotate 'line', 446
(rx1228_rep, rx1228_pos, $I10, $P10) = rx1228_cur."!mark_fail"(0)
lt rx1228_pos, -1, rx1228_done
eq rx1228_pos, -1, rx1228_fail
@@ -15081,8 +16076,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=:=>" :subid("311_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<=:=>" :subid("319_1280467477.44751") :method
+.annotate 'line', 447
$P1230 = self."!PREFIX__!subrule"("O", "=:=")
new $P1231, "ResizablePMCArray"
push $P1231, $P1230
@@ -15091,16 +16086,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<~~>" :subid("312_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<~~>" :subid("320_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1235_tgt
.local int rx1235_pos
.local int rx1235_off
.local int rx1235_eos
.local int rx1235_rep
.local pmc rx1235_cur
- (rx1235_cur, rx1235_pos, rx1235_tgt) = self."!cursor_start"()
- rx1235_cur."!cursor_debug"("START ", "infix:sym<~~>")
+ (rx1235_cur, rx1235_pos, rx1235_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1235_cur
.local pmc match
.lex "$/", match
@@ -15111,6 +16105,8 @@
sub rx1235_off, rx1235_pos, 1
substr rx1235_tgt, rx1235_tgt, rx1235_off
rx1235_start:
+ eq $I10, 1, rx1235_restart
+ rx1235_cur."!cursor_debug"("START ", "infix:sym<~~>")
$I10 = self.'from'()
ne $I10, -1, rxscan1239_done
goto rxscan1239_scan
@@ -15123,7 +16119,7 @@
set_addr $I10, rxscan1239_loop
rx1235_cur."!mark_push"(0, rx1235_pos, $I10)
rxscan1239_done:
-.annotate 'line', 528
+.annotate 'line', 532
# rx subcapture "sym"
set_addr $I10, rxcap_1240_fail
rx1235_cur."!mark_push"(0, rx1235_pos, $I10)
@@ -15156,8 +16152,10 @@
rx1235_cur."!cursor_pass"(rx1235_pos, "infix:sym<~~>")
rx1235_cur."!cursor_debug"("PASS ", "infix:sym<~~>", " at pos=", rx1235_pos)
.return (rx1235_cur)
+ rx1235_restart:
+.annotate 'line', 447
+ rx1235_cur."!cursor_debug"("NEXT ", "infix:sym<~~>")
rx1235_fail:
-.annotate 'line', 446
(rx1235_rep, rx1235_pos, $I10, $P10) = rx1235_cur."!mark_fail"(0)
lt rx1235_pos, -1, rx1235_done
eq rx1235_pos, -1, rx1235_fail
@@ -15171,8 +16169,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~~>" :subid("313_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<~~>" :subid("321_1280467477.44751") :method
+.annotate 'line', 447
$P1237 = self."!PREFIX__!subrule"("O", "~~")
new $P1238, "ResizablePMCArray"
push $P1238, $P1237
@@ -15181,16 +16179,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<&&>" :subid("314_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<&&>" :subid("322_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1242_tgt
.local int rx1242_pos
.local int rx1242_off
.local int rx1242_eos
.local int rx1242_rep
.local pmc rx1242_cur
- (rx1242_cur, rx1242_pos, rx1242_tgt) = self."!cursor_start"()
- rx1242_cur."!cursor_debug"("START ", "infix:sym<&&>")
+ (rx1242_cur, rx1242_pos, rx1242_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1242_cur
.local pmc match
.lex "$/", match
@@ -15201,6 +16198,8 @@
sub rx1242_off, rx1242_pos, 1
substr rx1242_tgt, rx1242_tgt, rx1242_off
rx1242_start:
+ eq $I10, 1, rx1242_restart
+ rx1242_cur."!cursor_debug"("START ", "infix:sym<&&>")
$I10 = self.'from'()
ne $I10, -1, rxscan1246_done
goto rxscan1246_scan
@@ -15213,7 +16212,7 @@
set_addr $I10, rxscan1246_loop
rx1242_cur."!mark_push"(0, rx1242_pos, $I10)
rxscan1246_done:
-.annotate 'line', 530
+.annotate 'line', 534
# rx subcapture "sym"
set_addr $I10, rxcap_1247_fail
rx1242_cur."!mark_push"(0, rx1242_pos, $I10)
@@ -15246,8 +16245,10 @@
rx1242_cur."!cursor_pass"(rx1242_pos, "infix:sym<&&>")
rx1242_cur."!cursor_debug"("PASS ", "infix:sym<&&>", " at pos=", rx1242_pos)
.return (rx1242_cur)
+ rx1242_restart:
+.annotate 'line', 447
+ rx1242_cur."!cursor_debug"("NEXT ", "infix:sym<&&>")
rx1242_fail:
-.annotate 'line', 446
(rx1242_rep, rx1242_pos, $I10, $P10) = rx1242_cur."!mark_fail"(0)
lt rx1242_pos, -1, rx1242_done
eq rx1242_pos, -1, rx1242_fail
@@ -15261,8 +16262,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<&&>" :subid("315_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<&&>" :subid("323_1280467477.44751") :method
+.annotate 'line', 447
$P1244 = self."!PREFIX__!subrule"("O", "&&")
new $P1245, "ResizablePMCArray"
push $P1245, $P1244
@@ -15271,16 +16272,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<||>" :subid("316_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<||>" :subid("324_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1249_tgt
.local int rx1249_pos
.local int rx1249_off
.local int rx1249_eos
.local int rx1249_rep
.local pmc rx1249_cur
- (rx1249_cur, rx1249_pos, rx1249_tgt) = self."!cursor_start"()
- rx1249_cur."!cursor_debug"("START ", "infix:sym<||>")
+ (rx1249_cur, rx1249_pos, rx1249_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1249_cur
.local pmc match
.lex "$/", match
@@ -15291,6 +16291,8 @@
sub rx1249_off, rx1249_pos, 1
substr rx1249_tgt, rx1249_tgt, rx1249_off
rx1249_start:
+ eq $I10, 1, rx1249_restart
+ rx1249_cur."!cursor_debug"("START ", "infix:sym<||>")
$I10 = self.'from'()
ne $I10, -1, rxscan1253_done
goto rxscan1253_scan
@@ -15303,7 +16305,7 @@
set_addr $I10, rxscan1253_loop
rx1249_cur."!mark_push"(0, rx1249_pos, $I10)
rxscan1253_done:
-.annotate 'line', 532
+.annotate 'line', 536
# rx subcapture "sym"
set_addr $I10, rxcap_1254_fail
rx1249_cur."!mark_push"(0, rx1249_pos, $I10)
@@ -15336,8 +16338,10 @@
rx1249_cur."!cursor_pass"(rx1249_pos, "infix:sym<||>")
rx1249_cur."!cursor_debug"("PASS ", "infix:sym<||>", " at pos=", rx1249_pos)
.return (rx1249_cur)
+ rx1249_restart:
+.annotate 'line', 447
+ rx1249_cur."!cursor_debug"("NEXT ", "infix:sym<||>")
rx1249_fail:
-.annotate 'line', 446
(rx1249_rep, rx1249_pos, $I10, $P10) = rx1249_cur."!mark_fail"(0)
lt rx1249_pos, -1, rx1249_done
eq rx1249_pos, -1, rx1249_fail
@@ -15351,8 +16355,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<||>" :subid("317_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<||>" :subid("325_1280467477.44751") :method
+.annotate 'line', 447
$P1251 = self."!PREFIX__!subrule"("O", "||")
new $P1252, "ResizablePMCArray"
push $P1252, $P1251
@@ -15361,16 +16365,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<//>" :subid("318_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<//>" :subid("326_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1256_tgt
.local int rx1256_pos
.local int rx1256_off
.local int rx1256_eos
.local int rx1256_rep
.local pmc rx1256_cur
- (rx1256_cur, rx1256_pos, rx1256_tgt) = self."!cursor_start"()
- rx1256_cur."!cursor_debug"("START ", "infix:sym<//>")
+ (rx1256_cur, rx1256_pos, rx1256_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1256_cur
.local pmc match
.lex "$/", match
@@ -15381,6 +16384,8 @@
sub rx1256_off, rx1256_pos, 1
substr rx1256_tgt, rx1256_tgt, rx1256_off
rx1256_start:
+ eq $I10, 1, rx1256_restart
+ rx1256_cur."!cursor_debug"("START ", "infix:sym<//>")
$I10 = self.'from'()
ne $I10, -1, rxscan1260_done
goto rxscan1260_scan
@@ -15393,7 +16398,7 @@
set_addr $I10, rxscan1260_loop
rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
rxscan1260_done:
-.annotate 'line', 533
+.annotate 'line', 537
# rx subcapture "sym"
set_addr $I10, rxcap_1261_fail
rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
@@ -15426,8 +16431,10 @@
rx1256_cur."!cursor_pass"(rx1256_pos, "infix:sym<//>")
rx1256_cur."!cursor_debug"("PASS ", "infix:sym<//>", " at pos=", rx1256_pos)
.return (rx1256_cur)
+ rx1256_restart:
+.annotate 'line', 447
+ rx1256_cur."!cursor_debug"("NEXT ", "infix:sym<//>")
rx1256_fail:
-.annotate 'line', 446
(rx1256_rep, rx1256_pos, $I10, $P10) = rx1256_cur."!mark_fail"(0)
lt rx1256_pos, -1, rx1256_done
eq rx1256_pos, -1, rx1256_fail
@@ -15441,8 +16448,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<//>" :subid("319_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<//>" :subid("327_1280467477.44751") :method
+.annotate 'line', 447
$P1258 = self."!PREFIX__!subrule"("O", "//")
new $P1259, "ResizablePMCArray"
push $P1259, $P1258
@@ -15451,16 +16458,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<?? !!>" :subid("320_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<?? !!>" :subid("328_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1263_tgt
.local int rx1263_pos
.local int rx1263_off
.local int rx1263_eos
.local int rx1263_rep
.local pmc rx1263_cur
- (rx1263_cur, rx1263_pos, rx1263_tgt) = self."!cursor_start"()
- rx1263_cur."!cursor_debug"("START ", "infix:sym<?? !!>")
+ (rx1263_cur, rx1263_pos, rx1263_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1263_cur
.local pmc match
.lex "$/", match
@@ -15471,6 +16477,8 @@
sub rx1263_off, rx1263_pos, 1
substr rx1263_tgt, rx1263_tgt, rx1263_off
rx1263_start:
+ eq $I10, 1, rx1263_restart
+ rx1263_cur."!cursor_debug"("START ", "infix:sym<?? !!>")
$I10 = self.'from'()
ne $I10, -1, rxscan1267_done
goto rxscan1267_scan
@@ -15483,7 +16491,7 @@
set_addr $I10, rxscan1267_loop
rx1263_cur."!mark_push"(0, rx1263_pos, $I10)
rxscan1267_done:
-.annotate 'line', 536
+.annotate 'line', 540
# rx literal "??"
add $I11, rx1263_pos, 2
gt $I11, rx1263_eos, rx1263_fail
@@ -15491,13 +16499,13 @@
substr $S10, rx1263_tgt, $I11, 2
ne $S10, "??", rx1263_fail
add rx1263_pos, 2
-.annotate 'line', 537
+.annotate 'line', 541
# rx subrule "ws" subtype=method negate=
rx1263_cur."!cursor_pos"(rx1263_pos)
$P10 = rx1263_cur."ws"()
unless $P10, rx1263_fail
rx1263_pos = $P10."pos"()
-.annotate 'line', 538
+.annotate 'line', 542
# rx subrule "EXPR" subtype=capture negate=
rx1263_cur."!cursor_pos"(rx1263_pos)
$P10 = rx1263_cur."EXPR"("i=")
@@ -15505,7 +16513,7 @@
rx1263_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
rx1263_pos = $P10."pos"()
-.annotate 'line', 539
+.annotate 'line', 543
# rx literal "!!"
add $I11, rx1263_pos, 2
gt $I11, rx1263_eos, rx1263_fail
@@ -15513,7 +16521,7 @@
substr $S10, rx1263_tgt, $I11, 2
ne $S10, "!!", rx1263_fail
add rx1263_pos, 2
-.annotate 'line', 540
+.annotate 'line', 544
# rx subrule "O" subtype=capture negate=
rx1263_cur."!cursor_pos"(rx1263_pos)
$P10 = rx1263_cur."O"("%conditional, :reducecheck<ternary>, :pasttype<if>")
@@ -15521,13 +16529,15 @@
rx1263_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
rx1263_pos = $P10."pos"()
-.annotate 'line', 535
+.annotate 'line', 539
# rx pass
rx1263_cur."!cursor_pass"(rx1263_pos, "infix:sym<?? !!>")
rx1263_cur."!cursor_debug"("PASS ", "infix:sym<?? !!>", " at pos=", rx1263_pos)
.return (rx1263_cur)
+ rx1263_restart:
+.annotate 'line', 447
+ rx1263_cur."!cursor_debug"("NEXT ", "infix:sym<?? !!>")
rx1263_fail:
-.annotate 'line', 446
(rx1263_rep, rx1263_pos, $I10, $P10) = rx1263_cur."!mark_fail"(0)
lt rx1263_pos, -1, rx1263_done
eq rx1263_pos, -1, rx1263_fail
@@ -15541,8 +16551,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<?? !!>" :subid("321_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<?? !!>" :subid("329_1280467477.44751") :method
+.annotate 'line', 447
$P1265 = self."!PREFIX__!subrule"("ws", "??")
new $P1266, "ResizablePMCArray"
push $P1266, $P1265
@@ -15551,16 +16561,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<=>" :subid("322_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<=>" :subid("330_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1269_tgt
.local int rx1269_pos
.local int rx1269_off
.local int rx1269_eos
.local int rx1269_rep
.local pmc rx1269_cur
- (rx1269_cur, rx1269_pos, rx1269_tgt) = self."!cursor_start"()
- rx1269_cur."!cursor_debug"("START ", "infix:sym<=>")
+ (rx1269_cur, rx1269_pos, rx1269_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1269_cur
.local pmc match
.lex "$/", match
@@ -15571,6 +16580,8 @@
sub rx1269_off, rx1269_pos, 1
substr rx1269_tgt, rx1269_tgt, rx1269_off
rx1269_start:
+ eq $I10, 1, rx1269_restart
+ rx1269_cur."!cursor_debug"("START ", "infix:sym<=>")
$I10 = self.'from'()
ne $I10, -1, rxscan1273_done
goto rxscan1273_scan
@@ -15583,7 +16594,7 @@
set_addr $I10, rxscan1273_loop
rx1269_cur."!mark_push"(0, rx1269_pos, $I10)
rxscan1273_done:
-.annotate 'line', 544
+.annotate 'line', 548
# rx subcapture "sym"
set_addr $I10, rxcap_1274_fail
rx1269_cur."!mark_push"(0, rx1269_pos, $I10)
@@ -15610,13 +16621,15 @@
$P10 = rx1269_cur."panic"("Assignment (\"=\") not supported in NQP, use \":=\" instead")
unless $P10, rx1269_fail
rx1269_pos = $P10."pos"()
-.annotate 'line', 543
+.annotate 'line', 547
# rx pass
rx1269_cur."!cursor_pass"(rx1269_pos, "infix:sym<=>")
rx1269_cur."!cursor_debug"("PASS ", "infix:sym<=>", " at pos=", rx1269_pos)
.return (rx1269_cur)
+ rx1269_restart:
+.annotate 'line', 447
+ rx1269_cur."!cursor_debug"("NEXT ", "infix:sym<=>")
rx1269_fail:
-.annotate 'line', 446
(rx1269_rep, rx1269_pos, $I10, $P10) = rx1269_cur."!mark_fail"(0)
lt rx1269_pos, -1, rx1269_done
eq rx1269_pos, -1, rx1269_fail
@@ -15630,8 +16643,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=>" :subid("323_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<=>" :subid("331_1280467477.44751") :method
+.annotate 'line', 447
$P1271 = self."!PREFIX__!subrule"("panic", "=")
new $P1272, "ResizablePMCArray"
push $P1272, $P1271
@@ -15640,16 +16653,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<:=>" :subid("324_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<:=>" :subid("332_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1276_tgt
.local int rx1276_pos
.local int rx1276_off
.local int rx1276_eos
.local int rx1276_rep
.local pmc rx1276_cur
- (rx1276_cur, rx1276_pos, rx1276_tgt) = self."!cursor_start"()
- rx1276_cur."!cursor_debug"("START ", "infix:sym<:=>")
+ (rx1276_cur, rx1276_pos, rx1276_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1276_cur
.local pmc match
.lex "$/", match
@@ -15660,6 +16672,8 @@
sub rx1276_off, rx1276_pos, 1
substr rx1276_tgt, rx1276_tgt, rx1276_off
rx1276_start:
+ eq $I10, 1, rx1276_restart
+ rx1276_cur."!cursor_debug"("START ", "infix:sym<:=>")
$I10 = self.'from'()
ne $I10, -1, rxscan1280_done
goto rxscan1280_scan
@@ -15672,7 +16686,7 @@
set_addr $I10, rxscan1280_loop
rx1276_cur."!mark_push"(0, rx1276_pos, $I10)
rxscan1280_done:
-.annotate 'line', 546
+.annotate 'line', 550
# rx subcapture "sym"
set_addr $I10, rxcap_1281_fail
rx1276_cur."!mark_push"(0, rx1276_pos, $I10)
@@ -15705,8 +16719,10 @@
rx1276_cur."!cursor_pass"(rx1276_pos, "infix:sym<:=>")
rx1276_cur."!cursor_debug"("PASS ", "infix:sym<:=>", " at pos=", rx1276_pos)
.return (rx1276_cur)
+ rx1276_restart:
+.annotate 'line', 447
+ rx1276_cur."!cursor_debug"("NEXT ", "infix:sym<:=>")
rx1276_fail:
-.annotate 'line', 446
(rx1276_rep, rx1276_pos, $I10, $P10) = rx1276_cur."!mark_fail"(0)
lt rx1276_pos, -1, rx1276_done
eq rx1276_pos, -1, rx1276_fail
@@ -15720,8 +16736,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<:=>" :subid("325_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<:=>" :subid("333_1280467477.44751") :method
+.annotate 'line', 447
$P1278 = self."!PREFIX__!subrule"("O", ":=")
new $P1279, "ResizablePMCArray"
push $P1279, $P1278
@@ -15730,16 +16746,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<::=>" :subid("326_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<::=>" :subid("334_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1283_tgt
.local int rx1283_pos
.local int rx1283_off
.local int rx1283_eos
.local int rx1283_rep
.local pmc rx1283_cur
- (rx1283_cur, rx1283_pos, rx1283_tgt) = self."!cursor_start"()
- rx1283_cur."!cursor_debug"("START ", "infix:sym<::=>")
+ (rx1283_cur, rx1283_pos, rx1283_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1283_cur
.local pmc match
.lex "$/", match
@@ -15750,6 +16765,8 @@
sub rx1283_off, rx1283_pos, 1
substr rx1283_tgt, rx1283_tgt, rx1283_off
rx1283_start:
+ eq $I10, 1, rx1283_restart
+ rx1283_cur."!cursor_debug"("START ", "infix:sym<::=>")
$I10 = self.'from'()
ne $I10, -1, rxscan1287_done
goto rxscan1287_scan
@@ -15762,7 +16779,7 @@
set_addr $I10, rxscan1287_loop
rx1283_cur."!mark_push"(0, rx1283_pos, $I10)
rxscan1287_done:
-.annotate 'line', 547
+.annotate 'line', 551
# rx subcapture "sym"
set_addr $I10, rxcap_1288_fail
rx1283_cur."!mark_push"(0, rx1283_pos, $I10)
@@ -15795,8 +16812,10 @@
rx1283_cur."!cursor_pass"(rx1283_pos, "infix:sym<::=>")
rx1283_cur."!cursor_debug"("PASS ", "infix:sym<::=>", " at pos=", rx1283_pos)
.return (rx1283_cur)
+ rx1283_restart:
+.annotate 'line', 447
+ rx1283_cur."!cursor_debug"("NEXT ", "infix:sym<::=>")
rx1283_fail:
-.annotate 'line', 446
(rx1283_rep, rx1283_pos, $I10, $P10) = rx1283_cur."!mark_fail"(0)
lt rx1283_pos, -1, rx1283_done
eq rx1283_pos, -1, rx1283_fail
@@ -15810,8 +16829,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<::=>" :subid("327_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<::=>" :subid("335_1280467477.44751") :method
+.annotate 'line', 447
$P1285 = self."!PREFIX__!subrule"("O", "::=")
new $P1286, "ResizablePMCArray"
push $P1286, $P1285
@@ -15820,16 +16839,15 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<,>" :subid("328_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "infix:sym<,>" :subid("336_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1290_tgt
.local int rx1290_pos
.local int rx1290_off
.local int rx1290_eos
.local int rx1290_rep
.local pmc rx1290_cur
- (rx1290_cur, rx1290_pos, rx1290_tgt) = self."!cursor_start"()
- rx1290_cur."!cursor_debug"("START ", "infix:sym<,>")
+ (rx1290_cur, rx1290_pos, rx1290_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1290_cur
.local pmc match
.lex "$/", match
@@ -15840,6 +16858,8 @@
sub rx1290_off, rx1290_pos, 1
substr rx1290_tgt, rx1290_tgt, rx1290_off
rx1290_start:
+ eq $I10, 1, rx1290_restart
+ rx1290_cur."!cursor_debug"("START ", "infix:sym<,>")
$I10 = self.'from'()
ne $I10, -1, rxscan1294_done
goto rxscan1294_scan
@@ -15852,7 +16872,7 @@
set_addr $I10, rxscan1294_loop
rx1290_cur."!mark_push"(0, rx1290_pos, $I10)
rxscan1294_done:
-.annotate 'line', 549
+.annotate 'line', 553
# rx subcapture "sym"
set_addr $I10, rxcap_1295_fail
rx1290_cur."!mark_push"(0, rx1290_pos, $I10)
@@ -15885,8 +16905,10 @@
rx1290_cur."!cursor_pass"(rx1290_pos, "infix:sym<,>")
rx1290_cur."!cursor_debug"("PASS ", "infix:sym<,>", " at pos=", rx1290_pos)
.return (rx1290_cur)
+ rx1290_restart:
+.annotate 'line', 447
+ rx1290_cur."!cursor_debug"("NEXT ", "infix:sym<,>")
rx1290_fail:
-.annotate 'line', 446
(rx1290_rep, rx1290_pos, $I10, $P10) = rx1290_cur."!mark_fail"(0)
lt rx1290_pos, -1, rx1290_done
eq rx1290_pos, -1, rx1290_fail
@@ -15900,8 +16922,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<,>" :subid("329_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__infix:sym<,>" :subid("337_1280467477.44751") :method
+.annotate 'line', 447
$P1292 = self."!PREFIX__!subrule"("O", ",")
new $P1293, "ResizablePMCArray"
push $P1293, $P1292
@@ -15910,16 +16932,15 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<return>" :subid("330_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "prefix:sym<return>" :subid("338_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1297_tgt
.local int rx1297_pos
.local int rx1297_off
.local int rx1297_eos
.local int rx1297_rep
.local pmc rx1297_cur
- (rx1297_cur, rx1297_pos, rx1297_tgt) = self."!cursor_start"()
- rx1297_cur."!cursor_debug"("START ", "prefix:sym<return>")
+ (rx1297_cur, rx1297_pos, rx1297_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1297_cur
.local pmc match
.lex "$/", match
@@ -15930,6 +16951,8 @@
sub rx1297_off, rx1297_pos, 1
substr rx1297_tgt, rx1297_tgt, rx1297_off
rx1297_start:
+ eq $I10, 1, rx1297_restart
+ rx1297_cur."!cursor_debug"("START ", "prefix:sym<return>")
$I10 = self.'from'()
ne $I10, -1, rxscan1300_done
goto rxscan1300_scan
@@ -15942,7 +16965,7 @@
set_addr $I10, rxscan1300_loop
rx1297_cur."!mark_push"(0, rx1297_pos, $I10)
rxscan1300_done:
-.annotate 'line', 551
+.annotate 'line', 555
# rx subcapture "sym"
set_addr $I10, rxcap_1301_fail
rx1297_cur."!mark_push"(0, rx1297_pos, $I10)
@@ -15981,8 +17004,10 @@
rx1297_cur."!cursor_pass"(rx1297_pos, "prefix:sym<return>")
rx1297_cur."!cursor_debug"("PASS ", "prefix:sym<return>", " at pos=", rx1297_pos)
.return (rx1297_cur)
+ rx1297_restart:
+.annotate 'line', 447
+ rx1297_cur."!cursor_debug"("NEXT ", "prefix:sym<return>")
rx1297_fail:
-.annotate 'line', 446
(rx1297_rep, rx1297_pos, $I10, $P10) = rx1297_cur."!mark_fail"(0)
lt rx1297_pos, -1, rx1297_done
eq rx1297_pos, -1, rx1297_fail
@@ -15996,8 +17021,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<return>" :subid("331_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__prefix:sym<return>" :subid("339_1280467477.44751") :method
+.annotate 'line', 447
new $P1299, "ResizablePMCArray"
push $P1299, "return"
.return ($P1299)
@@ -16005,16 +17030,15 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<make>" :subid("332_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "prefix:sym<make>" :subid("340_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1303_tgt
.local int rx1303_pos
.local int rx1303_off
.local int rx1303_eos
.local int rx1303_rep
.local pmc rx1303_cur
- (rx1303_cur, rx1303_pos, rx1303_tgt) = self."!cursor_start"()
- rx1303_cur."!cursor_debug"("START ", "prefix:sym<make>")
+ (rx1303_cur, rx1303_pos, rx1303_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1303_cur
.local pmc match
.lex "$/", match
@@ -16025,6 +17049,8 @@
sub rx1303_off, rx1303_pos, 1
substr rx1303_tgt, rx1303_tgt, rx1303_off
rx1303_start:
+ eq $I10, 1, rx1303_restart
+ rx1303_cur."!cursor_debug"("START ", "prefix:sym<make>")
$I10 = self.'from'()
ne $I10, -1, rxscan1306_done
goto rxscan1306_scan
@@ -16037,7 +17063,7 @@
set_addr $I10, rxscan1306_loop
rx1303_cur."!mark_push"(0, rx1303_pos, $I10)
rxscan1306_done:
-.annotate 'line', 552
+.annotate 'line', 556
# rx subcapture "sym"
set_addr $I10, rxcap_1307_fail
rx1303_cur."!mark_push"(0, rx1303_pos, $I10)
@@ -16076,8 +17102,10 @@
rx1303_cur."!cursor_pass"(rx1303_pos, "prefix:sym<make>")
rx1303_cur."!cursor_debug"("PASS ", "prefix:sym<make>", " at pos=", rx1303_pos)
.return (rx1303_cur)
+ rx1303_restart:
+.annotate 'line', 447
+ rx1303_cur."!cursor_debug"("NEXT ", "prefix:sym<make>")
rx1303_fail:
-.annotate 'line', 446
(rx1303_rep, rx1303_pos, $I10, $P10) = rx1303_cur."!mark_fail"(0)
lt rx1303_pos, -1, rx1303_done
eq rx1303_pos, -1, rx1303_fail
@@ -16091,8 +17119,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<make>" :subid("333_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__prefix:sym<make>" :subid("341_1280467477.44751") :method
+.annotate 'line', 447
new $P1305, "ResizablePMCArray"
push $P1305, "make"
.return ($P1305)
@@ -16100,16 +17128,15 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<last>" :subid("334_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "term:sym<last>" :subid("342_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1309_tgt
.local int rx1309_pos
.local int rx1309_off
.local int rx1309_eos
.local int rx1309_rep
.local pmc rx1309_cur
- (rx1309_cur, rx1309_pos, rx1309_tgt) = self."!cursor_start"()
- rx1309_cur."!cursor_debug"("START ", "term:sym<last>")
+ (rx1309_cur, rx1309_pos, rx1309_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1309_cur
.local pmc match
.lex "$/", match
@@ -16120,6 +17147,8 @@
sub rx1309_off, rx1309_pos, 1
substr rx1309_tgt, rx1309_tgt, rx1309_off
rx1309_start:
+ eq $I10, 1, rx1309_restart
+ rx1309_cur."!cursor_debug"("START ", "term:sym<last>")
$I10 = self.'from'()
ne $I10, -1, rxscan1312_done
goto rxscan1312_scan
@@ -16132,7 +17161,7 @@
set_addr $I10, rxscan1312_loop
rx1309_cur."!mark_push"(0, rx1309_pos, $I10)
rxscan1312_done:
-.annotate 'line', 553
+.annotate 'line', 557
# rx subcapture "sym"
set_addr $I10, rxcap_1313_fail
rx1309_cur."!mark_push"(0, rx1309_pos, $I10)
@@ -16158,8 +17187,10 @@
rx1309_cur."!cursor_pass"(rx1309_pos, "term:sym<last>")
rx1309_cur."!cursor_debug"("PASS ", "term:sym<last>", " at pos=", rx1309_pos)
.return (rx1309_cur)
+ rx1309_restart:
+.annotate 'line', 447
+ rx1309_cur."!cursor_debug"("NEXT ", "term:sym<last>")
rx1309_fail:
-.annotate 'line', 446
(rx1309_rep, rx1309_pos, $I10, $P10) = rx1309_cur."!mark_fail"(0)
lt rx1309_pos, -1, rx1309_done
eq rx1309_pos, -1, rx1309_fail
@@ -16173,8 +17204,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<last>" :subid("335_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__term:sym<last>" :subid("343_1280467477.44751") :method
+.annotate 'line', 447
new $P1311, "ResizablePMCArray"
push $P1311, "last"
.return ($P1311)
@@ -16182,16 +17213,15 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<next>" :subid("336_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "term:sym<next>" :subid("344_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1315_tgt
.local int rx1315_pos
.local int rx1315_off
.local int rx1315_eos
.local int rx1315_rep
.local pmc rx1315_cur
- (rx1315_cur, rx1315_pos, rx1315_tgt) = self."!cursor_start"()
- rx1315_cur."!cursor_debug"("START ", "term:sym<next>")
+ (rx1315_cur, rx1315_pos, rx1315_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1315_cur
.local pmc match
.lex "$/", match
@@ -16202,6 +17232,8 @@
sub rx1315_off, rx1315_pos, 1
substr rx1315_tgt, rx1315_tgt, rx1315_off
rx1315_start:
+ eq $I10, 1, rx1315_restart
+ rx1315_cur."!cursor_debug"("START ", "term:sym<next>")
$I10 = self.'from'()
ne $I10, -1, rxscan1318_done
goto rxscan1318_scan
@@ -16214,7 +17246,7 @@
set_addr $I10, rxscan1318_loop
rx1315_cur."!mark_push"(0, rx1315_pos, $I10)
rxscan1318_done:
-.annotate 'line', 554
+.annotate 'line', 558
# rx subcapture "sym"
set_addr $I10, rxcap_1319_fail
rx1315_cur."!mark_push"(0, rx1315_pos, $I10)
@@ -16240,8 +17272,10 @@
rx1315_cur."!cursor_pass"(rx1315_pos, "term:sym<next>")
rx1315_cur."!cursor_debug"("PASS ", "term:sym<next>", " at pos=", rx1315_pos)
.return (rx1315_cur)
+ rx1315_restart:
+.annotate 'line', 447
+ rx1315_cur."!cursor_debug"("NEXT ", "term:sym<next>")
rx1315_fail:
-.annotate 'line', 446
(rx1315_rep, rx1315_pos, $I10, $P10) = rx1315_cur."!mark_fail"(0)
lt rx1315_pos, -1, rx1315_done
eq rx1315_pos, -1, rx1315_fail
@@ -16255,8 +17289,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<next>" :subid("337_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__term:sym<next>" :subid("345_1280467477.44751") :method
+.annotate 'line', 447
new $P1317, "ResizablePMCArray"
push $P1317, "next"
.return ($P1317)
@@ -16264,16 +17298,15 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<redo>" :subid("338_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 446
+.sub "term:sym<redo>" :subid("346_1280467477.44751") :method :outer("11_1280467477.44751")
+.annotate 'line', 447
.local string rx1321_tgt
.local int rx1321_pos
.local int rx1321_off
.local int rx1321_eos
.local int rx1321_rep
.local pmc rx1321_cur
- (rx1321_cur, rx1321_pos, rx1321_tgt) = self."!cursor_start"()
- rx1321_cur."!cursor_debug"("START ", "term:sym<redo>")
+ (rx1321_cur, rx1321_pos, rx1321_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1321_cur
.local pmc match
.lex "$/", match
@@ -16284,6 +17317,8 @@
sub rx1321_off, rx1321_pos, 1
substr rx1321_tgt, rx1321_tgt, rx1321_off
rx1321_start:
+ eq $I10, 1, rx1321_restart
+ rx1321_cur."!cursor_debug"("START ", "term:sym<redo>")
$I10 = self.'from'()
ne $I10, -1, rxscan1324_done
goto rxscan1324_scan
@@ -16296,7 +17331,7 @@
set_addr $I10, rxscan1324_loop
rx1321_cur."!mark_push"(0, rx1321_pos, $I10)
rxscan1324_done:
-.annotate 'line', 555
+.annotate 'line', 559
# rx subcapture "sym"
set_addr $I10, rxcap_1325_fail
rx1321_cur."!mark_push"(0, rx1321_pos, $I10)
@@ -16322,8 +17357,10 @@
rx1321_cur."!cursor_pass"(rx1321_pos, "term:sym<redo>")
rx1321_cur."!cursor_debug"("PASS ", "term:sym<redo>", " at pos=", rx1321_pos)
.return (rx1321_cur)
+ rx1321_restart:
+.annotate 'line', 447
+ rx1321_cur."!cursor_debug"("NEXT ", "term:sym<redo>")
rx1321_fail:
-.annotate 'line', 446
(rx1321_rep, rx1321_pos, $I10, $P10) = rx1321_cur."!mark_fail"(0)
lt rx1321_pos, -1, rx1321_done
eq rx1321_pos, -1, rx1321_fail
@@ -16337,8 +17374,8 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<redo>" :subid("339_1275811487.95429") :method
-.annotate 'line', 446
+.sub "!PREFIX__term:sym<redo>" :subid("347_1280467477.44751") :method
+.annotate 'line', 447
new $P1323, "ResizablePMCArray"
push $P1323, "redo"
.return ($P1323)
@@ -16347,49 +17384,49 @@
.namespace ["NQP";"Grammar"]
.include "except_types.pasm"
-.sub "smartmatch" :subid("340_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "smartmatch" :subid("348_1280467477.44751") :method :outer("11_1280467477.44751")
.param pmc param_1329
-.annotate 'line', 557
+.annotate 'line', 561
new $P1328, 'ExceptionHandler'
set_addr $P1328, control_1327
$P1328."handle_types"(.CONTROL_RETURN)
push_eh $P1328
.lex "self", self
.lex "$/", param_1329
-.annotate 'line', 559
+.annotate 'line', 563
new $P1330, "Undef"
.lex "$t", $P1330
find_lex $P1331, "$/"
- unless_null $P1331, vivify_376
+ unless_null $P1331, vivify_384
$P1331 = root_new ['parrot';'ResizablePMCArray']
- vivify_376:
+ vivify_384:
set $P1332, $P1331[0]
- unless_null $P1332, vivify_377
+ unless_null $P1332, vivify_385
new $P1332, "Undef"
- vivify_377:
+ vivify_385:
store_lex "$t", $P1332
find_lex $P1333, "$/"
- unless_null $P1333, vivify_378
+ unless_null $P1333, vivify_386
$P1333 = root_new ['parrot';'ResizablePMCArray']
- vivify_378:
+ vivify_386:
set $P1334, $P1333[1]
- unless_null $P1334, vivify_379
+ unless_null $P1334, vivify_387
new $P1334, "Undef"
- vivify_379:
+ vivify_387:
find_lex $P1335, "$/"
- unless_null $P1335, vivify_380
+ unless_null $P1335, vivify_388
$P1335 = root_new ['parrot';'ResizablePMCArray']
store_lex "$/", $P1335
- vivify_380:
+ vivify_388:
set $P1335[0], $P1334
find_lex $P1336, "$t"
find_lex $P1337, "$/"
- unless_null $P1337, vivify_381
+ unless_null $P1337, vivify_389
$P1337 = root_new ['parrot';'ResizablePMCArray']
store_lex "$/", $P1337
- vivify_381:
+ vivify_389:
set $P1337[1], $P1336
-.annotate 'line', 557
+.annotate 'line', 561
.return ($P1336)
control_1327:
.local pmc exception
@@ -16400,34 +17437,34 @@
.namespace ["NQP";"Regex"]
-.sub "_block1339" :subid("341_1275811487.95429") :outer("11_1275811487.95429")
-.annotate 'line', 563
- .const 'Sub' $P1397 = "360_1275811487.95429"
- capture_lex $P1397
- .const 'Sub' $P1392 = "358_1275811487.95429"
- capture_lex $P1392
- .const 'Sub' $P1379 = "355_1275811487.95429"
+.sub "_block1339" :subid("349_1280467477.44751") :outer("11_1280467477.44751")
+.annotate 'line', 567
+ .const 'Sub' $P1396 = "368_1280467477.44751"
+ capture_lex $P1396
+ .const 'Sub' $P1391 = "366_1280467477.44751"
+ capture_lex $P1391
+ .const 'Sub' $P1379 = "363_1280467477.44751"
capture_lex $P1379
- .const 'Sub' $P1369 = "352_1275811487.95429"
+ .const 'Sub' $P1369 = "360_1280467477.44751"
capture_lex $P1369
- .const 'Sub' $P1364 = "350_1275811487.95429"
+ .const 'Sub' $P1364 = "358_1280467477.44751"
capture_lex $P1364
- .const 'Sub' $P1355 = "347_1275811487.95429"
+ .const 'Sub' $P1355 = "355_1280467477.44751"
capture_lex $P1355
- .const 'Sub' $P1350 = "345_1275811487.95429"
+ .const 'Sub' $P1350 = "353_1280467477.44751"
capture_lex $P1350
- .const 'Sub' $P1341 = "342_1275811487.95429"
+ .const 'Sub' $P1341 = "350_1280467477.44751"
capture_lex $P1341
- .const 'Sub' $P1397 = "360_1275811487.95429"
- capture_lex $P1397
- .return ($P1397)
+ .const 'Sub' $P1396 = "368_1280467477.44751"
+ capture_lex $P1396
+ .return ($P1396)
.end
.namespace ["NQP";"Regex"]
-.sub "metachar:sym<:my>" :subid("342_1275811487.95429") :method :outer("341_1275811487.95429")
-.annotate 'line', 563
- .const 'Sub' $P1347 = "344_1275811487.95429"
+.sub "metachar:sym<:my>" :subid("350_1280467477.44751") :method :outer("349_1280467477.44751")
+.annotate 'line', 567
+ .const 'Sub' $P1347 = "352_1280467477.44751"
capture_lex $P1347
.local string rx1342_tgt
.local int rx1342_pos
@@ -16435,8 +17472,7 @@
.local int rx1342_eos
.local int rx1342_rep
.local pmc rx1342_cur
- (rx1342_cur, rx1342_pos, rx1342_tgt) = self."!cursor_start"()
- rx1342_cur."!cursor_debug"("START ", "metachar:sym<:my>")
+ (rx1342_cur, rx1342_pos, rx1342_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1342_cur
.local pmc match
.lex "$/", match
@@ -16447,6 +17483,8 @@
sub rx1342_off, rx1342_pos, 1
substr rx1342_tgt, rx1342_tgt, rx1342_off
rx1342_start:
+ eq $I10, 1, rx1342_restart
+ rx1342_cur."!cursor_debug"("START ", "metachar:sym<:my>")
$I10 = self.'from'()
ne $I10, -1, rxscan1345_done
goto rxscan1345_scan
@@ -16459,7 +17497,7 @@
set_addr $I10, rxscan1345_loop
rx1342_cur."!mark_push"(0, rx1342_pos, $I10)
rxscan1345_done:
-.annotate 'line', 565
+.annotate 'line', 569
# rx literal ":"
add $I11, rx1342_pos, 1
gt $I11, rx1342_eos, rx1342_fail
@@ -16469,7 +17507,7 @@
add rx1342_pos, 1
# rx subrule "before" subtype=zerowidth negate=
rx1342_cur."!cursor_pos"(rx1342_pos)
- .const 'Sub' $P1347 = "344_1275811487.95429"
+ .const 'Sub' $P1347 = "352_1280467477.44751"
capture_lex $P1347
$P10 = rx1342_cur."before"($P1347)
unless $P10, rx1342_fail
@@ -16492,13 +17530,15 @@
substr $S10, rx1342_tgt, $I11, 1
ne $S10, ";", rx1342_fail
add rx1342_pos, 1
-.annotate 'line', 564
+.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)
.return (rx1342_cur)
+ rx1342_restart:
+.annotate 'line', 567
+ rx1342_cur."!cursor_debug"("NEXT ", "metachar:sym<:my>")
rx1342_fail:
-.annotate 'line', 563
(rx1342_rep, rx1342_pos, $I10, $P10) = rx1342_cur."!mark_fail"(0)
lt rx1342_pos, -1, rx1342_done
eq rx1342_pos, -1, rx1342_fail
@@ -16512,8 +17552,8 @@
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<:my>" :subid("343_1275811487.95429") :method
-.annotate 'line', 563
+.sub "!PREFIX__metachar:sym<:my>" :subid("351_1280467477.44751") :method
+.annotate 'line', 567
new $P1344, "ResizablePMCArray"
push $P1344, ":"
.return ($P1344)
@@ -16521,16 +17561,15 @@
.namespace ["NQP";"Regex"]
-.sub "_block1346" :anon :subid("344_1275811487.95429") :method :outer("342_1275811487.95429")
-.annotate 'line', 565
+.sub "_block1346" :anon :subid("352_1280467477.44751") :method :outer("350_1280467477.44751")
+.annotate 'line', 569
.local string rx1348_tgt
.local int rx1348_pos
.local int rx1348_off
.local int rx1348_eos
.local int rx1348_rep
.local pmc rx1348_cur
- (rx1348_cur, rx1348_pos, rx1348_tgt) = self."!cursor_start"()
- rx1348_cur."!cursor_debug"("START ", "")
+ (rx1348_cur, rx1348_pos, rx1348_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1348_cur
.local pmc match
.lex "$/", match
@@ -16541,6 +17580,8 @@
sub rx1348_off, rx1348_pos, 1
substr rx1348_tgt, rx1348_tgt, rx1348_off
rx1348_start:
+ eq $I10, 1, rx1348_restart
+ rx1348_cur."!cursor_debug"("START ", "")
$I10 = self.'from'()
ne $I10, -1, rxscan1349_done
goto rxscan1349_scan
@@ -16564,6 +17605,8 @@
rx1348_cur."!cursor_pass"(rx1348_pos, "")
rx1348_cur."!cursor_debug"("PASS ", "", " at pos=", rx1348_pos)
.return (rx1348_cur)
+ rx1348_restart:
+ rx1348_cur."!cursor_debug"("NEXT ", "")
rx1348_fail:
(rx1348_rep, rx1348_pos, $I10, $P10) = rx1348_cur."!mark_fail"(0)
lt rx1348_pos, -1, rx1348_done
@@ -16578,16 +17621,15 @@
.namespace ["NQP";"Regex"]
-.sub "metachar:sym<{ }>" :subid("345_1275811487.95429") :method :outer("341_1275811487.95429")
-.annotate 'line', 563
+.sub "metachar:sym<{ }>" :subid("353_1280467477.44751") :method :outer("349_1280467477.44751")
+.annotate 'line', 567
.local string rx1351_tgt
.local int rx1351_pos
.local int rx1351_off
.local int rx1351_eos
.local int rx1351_rep
.local pmc rx1351_cur
- (rx1351_cur, rx1351_pos, rx1351_tgt) = self."!cursor_start"()
- rx1351_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
+ (rx1351_cur, rx1351_pos, rx1351_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1351_cur
.local pmc match
.lex "$/", match
@@ -16598,6 +17640,8 @@
sub rx1351_off, rx1351_pos, 1
substr rx1351_tgt, rx1351_tgt, rx1351_off
rx1351_start:
+ eq $I10, 1, rx1351_restart
+ rx1351_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
$I10 = self.'from'()
ne $I10, -1, rxscan1354_done
goto rxscan1354_scan
@@ -16610,7 +17654,7 @@
set_addr $I10, rxscan1354_loop
rx1351_cur."!mark_push"(0, rx1351_pos, $I10)
rxscan1354_done:
-.annotate 'line', 569
+.annotate 'line', 573
# rx enumcharlist negate=0 zerowidth
ge rx1351_pos, rx1351_eos, rx1351_fail
sub $I10, rx1351_pos, rx1351_off
@@ -16624,13 +17668,15 @@
rx1351_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("codeblock")
rx1351_pos = $P10."pos"()
-.annotate 'line', 568
+.annotate 'line', 572
# rx pass
rx1351_cur."!cursor_pass"(rx1351_pos, "metachar:sym<{ }>")
rx1351_cur."!cursor_debug"("PASS ", "metachar:sym<{ }>", " at pos=", rx1351_pos)
.return (rx1351_cur)
+ rx1351_restart:
+.annotate 'line', 567
+ rx1351_cur."!cursor_debug"("NEXT ", "metachar:sym<{ }>")
rx1351_fail:
-.annotate 'line', 563
(rx1351_rep, rx1351_pos, $I10, $P10) = rx1351_cur."!mark_fail"(0)
lt rx1351_pos, -1, rx1351_done
eq rx1351_pos, -1, rx1351_fail
@@ -16644,8 +17690,8 @@
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<{ }>" :subid("346_1275811487.95429") :method
-.annotate 'line', 563
+.sub "!PREFIX__metachar:sym<{ }>" :subid("354_1280467477.44751") :method
+.annotate 'line', 567
new $P1353, "ResizablePMCArray"
push $P1353, "{"
.return ($P1353)
@@ -16653,9 +17699,9 @@
.namespace ["NQP";"Regex"]
-.sub "metachar:sym<nqpvar>" :subid("347_1275811487.95429") :method :outer("341_1275811487.95429")
-.annotate 'line', 563
- .const 'Sub' $P1361 = "349_1275811487.95429"
+.sub "metachar:sym<nqpvar>" :subid("355_1280467477.44751") :method :outer("349_1280467477.44751")
+.annotate 'line', 567
+ .const 'Sub' $P1361 = "357_1280467477.44751"
capture_lex $P1361
.local string rx1356_tgt
.local int rx1356_pos
@@ -16663,8 +17709,7 @@
.local int rx1356_eos
.local int rx1356_rep
.local pmc rx1356_cur
- (rx1356_cur, rx1356_pos, rx1356_tgt) = self."!cursor_start"()
- rx1356_cur."!cursor_debug"("START ", "metachar:sym<nqpvar>")
+ (rx1356_cur, rx1356_pos, rx1356_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1356_cur
.local pmc match
.lex "$/", match
@@ -16675,6 +17720,8 @@
sub rx1356_off, rx1356_pos, 1
substr rx1356_tgt, rx1356_tgt, rx1356_off
rx1356_start:
+ eq $I10, 1, rx1356_restart
+ rx1356_cur."!cursor_debug"("START ", "metachar:sym<nqpvar>")
$I10 = self.'from'()
ne $I10, -1, rxscan1359_done
goto rxscan1359_scan
@@ -16687,7 +17734,7 @@
set_addr $I10, rxscan1359_loop
rx1356_cur."!mark_push"(0, rx1356_pos, $I10)
rxscan1359_done:
-.annotate 'line', 573
+.annotate 'line', 577
# rx enumcharlist negate=0 zerowidth
ge rx1356_pos, rx1356_eos, rx1356_fail
sub $I10, rx1356_pos, rx1356_off
@@ -16696,7 +17743,7 @@
lt $I11, 0, rx1356_fail
# rx subrule "before" subtype=zerowidth negate=
rx1356_cur."!cursor_pos"(rx1356_pos)
- .const 'Sub' $P1361 = "349_1275811487.95429"
+ .const 'Sub' $P1361 = "357_1280467477.44751"
capture_lex $P1361
$P10 = rx1356_cur."before"($P1361)
unless $P10, rx1356_fail
@@ -16707,13 +17754,15 @@
rx1356_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("var")
rx1356_pos = $P10."pos"()
-.annotate 'line', 572
+.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)
.return (rx1356_cur)
+ rx1356_restart:
+.annotate 'line', 567
+ rx1356_cur."!cursor_debug"("NEXT ", "metachar:sym<nqpvar>")
rx1356_fail:
-.annotate 'line', 563
(rx1356_rep, rx1356_pos, $I10, $P10) = rx1356_cur."!mark_fail"(0)
lt rx1356_pos, -1, rx1356_done
eq rx1356_pos, -1, rx1356_fail
@@ -16727,8 +17776,8 @@
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<nqpvar>" :subid("348_1275811487.95429") :method
-.annotate 'line', 563
+.sub "!PREFIX__metachar:sym<nqpvar>" :subid("356_1280467477.44751") :method
+.annotate 'line', 567
new $P1358, "ResizablePMCArray"
push $P1358, "$"
push $P1358, "@"
@@ -16737,16 +17786,15 @@
.namespace ["NQP";"Regex"]
-.sub "_block1360" :anon :subid("349_1275811487.95429") :method :outer("347_1275811487.95429")
-.annotate 'line', 573
+.sub "_block1360" :anon :subid("357_1280467477.44751") :method :outer("355_1280467477.44751")
+.annotate 'line', 577
.local string rx1362_tgt
.local int rx1362_pos
.local int rx1362_off
.local int rx1362_eos
.local int rx1362_rep
.local pmc rx1362_cur
- (rx1362_cur, rx1362_pos, rx1362_tgt) = self."!cursor_start"()
- rx1362_cur."!cursor_debug"("START ", "")
+ (rx1362_cur, rx1362_pos, rx1362_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1362_cur
.local pmc match
.lex "$/", match
@@ -16757,6 +17805,8 @@
sub rx1362_off, rx1362_pos, 1
substr rx1362_tgt, rx1362_tgt, rx1362_off
rx1362_start:
+ eq $I10, 1, rx1362_restart
+ rx1362_cur."!cursor_debug"("START ", "")
$I10 = self.'from'()
ne $I10, -1, rxscan1363_done
goto rxscan1363_scan
@@ -16782,6 +17832,8 @@
rx1362_cur."!cursor_pass"(rx1362_pos, "")
rx1362_cur."!cursor_debug"("PASS ", "", " at pos=", rx1362_pos)
.return (rx1362_cur)
+ rx1362_restart:
+ rx1362_cur."!cursor_debug"("NEXT ", "")
rx1362_fail:
(rx1362_rep, rx1362_pos, $I10, $P10) = rx1362_cur."!mark_fail"(0)
lt rx1362_pos, -1, rx1362_done
@@ -16796,16 +17848,15 @@
.namespace ["NQP";"Regex"]
-.sub "assertion:sym<{ }>" :subid("350_1275811487.95429") :method :outer("341_1275811487.95429")
-.annotate 'line', 563
+.sub "assertion:sym<{ }>" :subid("358_1280467477.44751") :method :outer("349_1280467477.44751")
+.annotate 'line', 567
.local string rx1365_tgt
.local int rx1365_pos
.local int rx1365_off
.local int rx1365_eos
.local int rx1365_rep
.local pmc rx1365_cur
- (rx1365_cur, rx1365_pos, rx1365_tgt) = self."!cursor_start"()
- rx1365_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
+ (rx1365_cur, rx1365_pos, rx1365_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1365_cur
.local pmc match
.lex "$/", match
@@ -16816,6 +17867,8 @@
sub rx1365_off, rx1365_pos, 1
substr rx1365_tgt, rx1365_tgt, rx1365_off
rx1365_start:
+ eq $I10, 1, rx1365_restart
+ rx1365_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
$I10 = self.'from'()
ne $I10, -1, rxscan1368_done
goto rxscan1368_scan
@@ -16828,7 +17881,7 @@
set_addr $I10, rxscan1368_loop
rx1365_cur."!mark_push"(0, rx1365_pos, $I10)
rxscan1368_done:
-.annotate 'line', 577
+.annotate 'line', 581
# rx enumcharlist negate=0 zerowidth
ge rx1365_pos, rx1365_eos, rx1365_fail
sub $I10, rx1365_pos, rx1365_off
@@ -16842,13 +17895,15 @@
rx1365_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("codeblock")
rx1365_pos = $P10."pos"()
-.annotate 'line', 576
+.annotate 'line', 580
# rx pass
rx1365_cur."!cursor_pass"(rx1365_pos, "assertion:sym<{ }>")
rx1365_cur."!cursor_debug"("PASS ", "assertion:sym<{ }>", " at pos=", rx1365_pos)
.return (rx1365_cur)
+ rx1365_restart:
+.annotate 'line', 567
+ rx1365_cur."!cursor_debug"("NEXT ", "assertion:sym<{ }>")
rx1365_fail:
-.annotate 'line', 563
(rx1365_rep, rx1365_pos, $I10, $P10) = rx1365_cur."!mark_fail"(0)
lt rx1365_pos, -1, rx1365_done
eq rx1365_pos, -1, rx1365_fail
@@ -16862,8 +17917,8 @@
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<{ }>" :subid("351_1275811487.95429") :method
-.annotate 'line', 563
+.sub "!PREFIX__assertion:sym<{ }>" :subid("359_1280467477.44751") :method
+.annotate 'line', 567
new $P1367, "ResizablePMCArray"
push $P1367, "{"
.return ($P1367)
@@ -16871,9 +17926,9 @@
.namespace ["NQP";"Regex"]
-.sub "assertion:sym<?{ }>" :subid("352_1275811487.95429") :method :outer("341_1275811487.95429")
-.annotate 'line', 563
- .const 'Sub' $P1375 = "354_1275811487.95429"
+.sub "assertion:sym<?{ }>" :subid("360_1280467477.44751") :method :outer("349_1280467477.44751")
+.annotate 'line', 567
+ .const 'Sub' $P1375 = "362_1280467477.44751"
capture_lex $P1375
.local string rx1370_tgt
.local int rx1370_pos
@@ -16881,8 +17936,7 @@
.local int rx1370_eos
.local int rx1370_rep
.local pmc rx1370_cur
- (rx1370_cur, rx1370_pos, rx1370_tgt) = self."!cursor_start"()
- rx1370_cur."!cursor_debug"("START ", "assertion:sym<?{ }>")
+ (rx1370_cur, rx1370_pos, rx1370_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1370_cur
.local pmc match
.lex "$/", match
@@ -16893,6 +17947,8 @@
sub rx1370_off, rx1370_pos, 1
substr rx1370_tgt, rx1370_tgt, rx1370_off
rx1370_start:
+ eq $I10, 1, rx1370_restart
+ rx1370_cur."!cursor_debug"("START ", "assertion:sym<?{ }>")
$I10 = self.'from'()
ne $I10, -1, rxscan1373_done
goto rxscan1373_scan
@@ -16905,7 +17961,7 @@
set_addr $I10, rxscan1373_loop
rx1370_cur."!mark_push"(0, rx1370_pos, $I10)
rxscan1373_done:
-.annotate 'line', 581
+.annotate 'line', 585
# rx subcapture "zw"
set_addr $I10, rxcap_1378_fail
rx1370_cur."!mark_push"(0, rx1370_pos, $I10)
@@ -16918,7 +17974,7 @@
inc rx1370_pos
# rx subrule "before" subtype=zerowidth negate=
rx1370_cur."!cursor_pos"(rx1370_pos)
- .const 'Sub' $P1375 = "354_1275811487.95429"
+ .const 'Sub' $P1375 = "362_1280467477.44751"
capture_lex $P1375
$P10 = rx1370_cur."before"($P1375)
unless $P10, rx1370_fail
@@ -16940,13 +17996,15 @@
rx1370_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("codeblock")
rx1370_pos = $P10."pos"()
-.annotate 'line', 580
+.annotate 'line', 584
# rx pass
rx1370_cur."!cursor_pass"(rx1370_pos, "assertion:sym<?{ }>")
rx1370_cur."!cursor_debug"("PASS ", "assertion:sym<?{ }>", " at pos=", rx1370_pos)
.return (rx1370_cur)
+ rx1370_restart:
+.annotate 'line', 567
+ rx1370_cur."!cursor_debug"("NEXT ", "assertion:sym<?{ }>")
rx1370_fail:
-.annotate 'line', 563
(rx1370_rep, rx1370_pos, $I10, $P10) = rx1370_cur."!mark_fail"(0)
lt rx1370_pos, -1, rx1370_done
eq rx1370_pos, -1, rx1370_fail
@@ -16960,8 +18018,8 @@
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<?{ }>" :subid("353_1275811487.95429") :method
-.annotate 'line', 563
+.sub "!PREFIX__assertion:sym<?{ }>" :subid("361_1280467477.44751") :method
+.annotate 'line', 567
new $P1372, "ResizablePMCArray"
push $P1372, "!"
push $P1372, "?"
@@ -16970,16 +18028,15 @@
.namespace ["NQP";"Regex"]
-.sub "_block1374" :anon :subid("354_1275811487.95429") :method :outer("352_1275811487.95429")
-.annotate 'line', 581
+.sub "_block1374" :anon :subid("362_1280467477.44751") :method :outer("360_1280467477.44751")
+.annotate 'line', 585
.local string rx1376_tgt
.local int rx1376_pos
.local int rx1376_off
.local int rx1376_eos
.local int rx1376_rep
.local pmc rx1376_cur
- (rx1376_cur, rx1376_pos, rx1376_tgt) = self."!cursor_start"()
- rx1376_cur."!cursor_debug"("START ", "")
+ (rx1376_cur, rx1376_pos, rx1376_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1376_cur
.local pmc match
.lex "$/", match
@@ -16990,6 +18047,8 @@
sub rx1376_off, rx1376_pos, 1
substr rx1376_tgt, rx1376_tgt, rx1376_off
rx1376_start:
+ eq $I10, 1, rx1376_restart
+ rx1376_cur."!cursor_debug"("START ", "")
$I10 = self.'from'()
ne $I10, -1, rxscan1377_done
goto rxscan1377_scan
@@ -17013,6 +18072,8 @@
rx1376_cur."!cursor_pass"(rx1376_pos, "")
rx1376_cur."!cursor_debug"("PASS ", "", " at pos=", rx1376_pos)
.return (rx1376_cur)
+ rx1376_restart:
+ rx1376_cur."!cursor_debug"("NEXT ", "")
rx1376_fail:
(rx1376_rep, rx1376_pos, $I10, $P10) = rx1376_cur."!mark_fail"(0)
lt rx1376_pos, -1, rx1376_done
@@ -17027,9 +18088,9 @@
.namespace ["NQP";"Regex"]
-.sub "assertion:sym<name>" :subid("355_1275811487.95429") :method :outer("341_1275811487.95429")
-.annotate 'line', 563
- .const 'Sub' $P1388 = "357_1275811487.95429"
+.sub "assertion:sym<name>" :subid("363_1280467477.44751") :method :outer("349_1280467477.44751")
+.annotate 'line', 567
+ .const 'Sub' $P1388 = "365_1280467477.44751"
capture_lex $P1388
.local string rx1380_tgt
.local int rx1380_pos
@@ -17037,9 +18098,8 @@
.local int rx1380_eos
.local int rx1380_rep
.local pmc rx1380_cur
- (rx1380_cur, rx1380_pos, rx1380_tgt) = self."!cursor_start"()
- rx1380_cur."!cursor_debug"("START ", "assertion:sym<name>")
- rx1380_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+ (rx1380_cur, rx1380_pos, rx1380_tgt, $I10) = self."!cursor_start"()
+ rx1380_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
.lex unicode:"$\x{a2}", rx1380_cur
.local pmc match
.lex "$/", match
@@ -17050,52 +18110,41 @@
sub rx1380_off, rx1380_pos, 1
substr rx1380_tgt, rx1380_tgt, rx1380_off
rx1380_start:
+ eq $I10, 1, rx1380_restart
+ rx1380_cur."!cursor_debug"("START ", "assertion:sym<name>")
$I10 = self.'from'()
- ne $I10, -1, rxscan1383_done
- goto rxscan1383_scan
- rxscan1383_loop:
+ ne $I10, -1, rxscan1384_done
+ goto rxscan1384_scan
+ rxscan1384_loop:
($P10) = rx1380_cur."from"()
inc $P10
set rx1380_pos, $P10
- ge rx1380_pos, rx1380_eos, rxscan1383_done
- rxscan1383_scan:
- set_addr $I10, rxscan1383_loop
- rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
- rxscan1383_done:
-.annotate 'line', 585
- # rx subcapture "longname"
- set_addr $I10, rxcap_1384_fail
+ ge rx1380_pos, rx1380_eos, rxscan1384_done
+ rxscan1384_scan:
+ set_addr $I10, rxscan1384_loop
rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
- # rx charclass_q w r 1..-1
- sub $I10, rx1380_pos, rx1380_off
- find_not_cclass $I11, 8192, rx1380_tgt, $I10, rx1380_eos
- add $I12, $I10, 1
- lt $I11, $I12, rx1380_fail
- add rx1380_pos, rx1380_off, $I11
- set_addr $I10, rxcap_1384_fail
- ($I12, $I11) = rx1380_cur."!mark_peek"($I10)
- rx1380_cur."!cursor_pos"($I11)
- ($P10) = rx1380_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1380_pos, "")
+ rxscan1384_done:
+.annotate 'line', 589
+ # rx subrule "identifier" subtype=capture negate=
+ rx1380_cur."!cursor_pos"(rx1380_pos)
+ $P10 = rx1380_cur."identifier"()
+ unless $P10, rx1380_fail
rx1380_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("longname")
- goto rxcap_1384_done
- rxcap_1384_fail:
- goto rx1380_fail
- rxcap_1384_done:
-.annotate 'line', 592
+ rx1380_pos = $P10."pos"()
+.annotate 'line', 596
# rx rxquantr1385 ** 0..1
- set_addr $I1391, rxquantr1385_done
- rx1380_cur."!mark_push"(0, rx1380_pos, $I1391)
+ set_addr $I10, rxquantr1385_done
+ rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
rxquantr1385_loop:
alt1386_0:
-.annotate 'line', 586
+.annotate 'line', 590
set_addr $I10, alt1386_1
rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
-.annotate 'line', 587
+.annotate 'line', 591
# rx subrule "before" subtype=zerowidth negate=
rx1380_cur."!cursor_pos"(rx1380_pos)
- .const 'Sub' $P1388 = "357_1275811487.95429"
+ .const 'Sub' $P1388 = "365_1280467477.44751"
capture_lex $P1388
$P10 = rx1380_cur."before"($P1388)
unless $P10, rx1380_fail
@@ -17103,7 +18152,7 @@
alt1386_1:
set_addr $I10, alt1386_2
rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
-.annotate 'line', 588
+.annotate 'line', 592
# rx literal "="
add $I11, rx1380_pos, 1
gt $I11, rx1380_eos, rx1380_fail
@@ -17122,7 +18171,7 @@
alt1386_2:
set_addr $I10, alt1386_3
rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
-.annotate 'line', 589
+.annotate 'line', 593
# rx literal ":"
add $I11, rx1380_pos, 1
gt $I11, rx1380_eos, rx1380_fail
@@ -17141,7 +18190,7 @@
alt1386_3:
set_addr $I10, alt1386_4
rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
-.annotate 'line', 590
+.annotate 'line', 594
# rx literal "("
add $I11, rx1380_pos, 1
gt $I11, rx1380_eos, rx1380_fail
@@ -17165,7 +18214,7 @@
add rx1380_pos, 1
goto alt1386_end
alt1386_4:
-.annotate 'line', 591
+.annotate 'line', 595
# rx subrule "normspace" subtype=method negate=
rx1380_cur."!cursor_pos"(rx1380_pos)
$P10 = rx1380_cur."normspace"()
@@ -17179,16 +18228,19 @@
$P10."!cursor_names"("nibbler")
rx1380_pos = $P10."pos"()
alt1386_end:
-.annotate 'line', 592
- (rx1380_rep) = rx1380_cur."!mark_commit"($I1391)
+.annotate 'line', 596
+ set_addr $I10, rxquantr1385_done
+ (rx1380_rep) = rx1380_cur."!mark_commit"($I10)
rxquantr1385_done:
-.annotate 'line', 584
+.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)
.return (rx1380_cur)
+ rx1380_restart:
+.annotate 'line', 567
+ rx1380_cur."!cursor_debug"("NEXT ", "assertion:sym<name>")
rx1380_fail:
-.annotate 'line', 563
(rx1380_rep, rx1380_pos, $I10, $P10) = rx1380_cur."!mark_fail"(0)
lt rx1380_pos, -1, rx1380_done
eq rx1380_pos, -1, rx1380_fail
@@ -17202,25 +18254,25 @@
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<name>" :subid("356_1275811487.95429") :method
-.annotate 'line', 563
- new $P1382, "ResizablePMCArray"
- push $P1382, ""
- .return ($P1382)
+.sub "!PREFIX__assertion:sym<name>" :subid("364_1280467477.44751") :method
+.annotate 'line', 567
+ $P1382 = self."!PREFIX__!subrule"("identifier", "")
+ new $P1383, "ResizablePMCArray"
+ push $P1383, $P1382
+ .return ($P1383)
.end
.namespace ["NQP";"Regex"]
-.sub "_block1387" :anon :subid("357_1275811487.95429") :method :outer("355_1275811487.95429")
-.annotate 'line', 587
+.sub "_block1387" :anon :subid("365_1280467477.44751") :method :outer("363_1280467477.44751")
+.annotate 'line', 591
.local string rx1389_tgt
.local int rx1389_pos
.local int rx1389_off
.local int rx1389_eos
.local int rx1389_rep
.local pmc rx1389_cur
- (rx1389_cur, rx1389_pos, rx1389_tgt) = self."!cursor_start"()
- rx1389_cur."!cursor_debug"("START ", "")
+ (rx1389_cur, rx1389_pos, rx1389_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx1389_cur
.local pmc match
.lex "$/", match
@@ -17231,6 +18283,8 @@
sub rx1389_off, rx1389_pos, 1
substr rx1389_tgt, rx1389_tgt, rx1389_off
rx1389_start:
+ eq $I10, 1, rx1389_restart
+ rx1389_cur."!cursor_debug"("START ", "")
$I10 = self.'from'()
ne $I10, -1, rxscan1390_done
goto rxscan1390_scan
@@ -17254,6 +18308,8 @@
rx1389_cur."!cursor_pass"(rx1389_pos, "")
rx1389_cur."!cursor_debug"("PASS ", "", " at pos=", rx1389_pos)
.return (rx1389_cur)
+ rx1389_restart:
+ rx1389_cur."!cursor_debug"("NEXT ", "")
rx1389_fail:
(rx1389_rep, rx1389_pos, $I10, $P10) = rx1389_cur."!mark_fail"(0)
lt rx1389_pos, -1, rx1389_done
@@ -17268,172 +18324,178 @@
.namespace ["NQP";"Regex"]
-.sub "assertion:sym<var>" :subid("358_1275811487.95429") :method :outer("341_1275811487.95429")
-.annotate 'line', 563
- .local string rx1393_tgt
- .local int rx1393_pos
- .local int rx1393_off
- .local int rx1393_eos
- .local int rx1393_rep
- .local pmc rx1393_cur
- (rx1393_cur, rx1393_pos, rx1393_tgt) = self."!cursor_start"()
- rx1393_cur."!cursor_debug"("START ", "assertion:sym<var>")
- .lex unicode:"$\x{a2}", rx1393_cur
- .local pmc match
- .lex "$/", match
- length rx1393_eos, rx1393_tgt
- gt rx1393_pos, rx1393_eos, rx1393_done
- set rx1393_off, 0
- lt rx1393_pos, 2, rx1393_start
- sub rx1393_off, rx1393_pos, 1
- substr rx1393_tgt, rx1393_tgt, rx1393_off
- rx1393_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1396_done
- goto rxscan1396_scan
- rxscan1396_loop:
- ($P10) = rx1393_cur."from"()
- inc $P10
- set rx1393_pos, $P10
- ge rx1393_pos, rx1393_eos, rxscan1396_done
- rxscan1396_scan:
- set_addr $I10, rxscan1396_loop
- rx1393_cur."!mark_push"(0, rx1393_pos, $I10)
- rxscan1396_done:
-.annotate 'line', 596
+.sub "assertion:sym<var>" :subid("366_1280467477.44751") :method :outer("349_1280467477.44751")
+.annotate 'line', 567
+ .local string rx1392_tgt
+ .local int rx1392_pos
+ .local int rx1392_off
+ .local int rx1392_eos
+ .local int rx1392_rep
+ .local pmc rx1392_cur
+ (rx1392_cur, rx1392_pos, rx1392_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx1392_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1392_eos, rx1392_tgt
+ gt rx1392_pos, rx1392_eos, rx1392_done
+ set rx1392_off, 0
+ lt rx1392_pos, 2, rx1392_start
+ sub rx1392_off, rx1392_pos, 1
+ substr rx1392_tgt, rx1392_tgt, rx1392_off
+ rx1392_start:
+ eq $I10, 1, rx1392_restart
+ rx1392_cur."!cursor_debug"("START ", "assertion:sym<var>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1395_done
+ goto rxscan1395_scan
+ rxscan1395_loop:
+ ($P10) = rx1392_cur."from"()
+ inc $P10
+ set rx1392_pos, $P10
+ ge rx1392_pos, rx1392_eos, rxscan1395_done
+ rxscan1395_scan:
+ set_addr $I10, rxscan1395_loop
+ rx1392_cur."!mark_push"(0, rx1392_pos, $I10)
+ rxscan1395_done:
+.annotate 'line', 600
# rx enumcharlist negate=0 zerowidth
- ge rx1393_pos, rx1393_eos, rx1393_fail
- sub $I10, rx1393_pos, rx1393_off
- substr $S10, rx1393_tgt, $I10, 1
+ ge rx1392_pos, rx1392_eos, rx1392_fail
+ sub $I10, rx1392_pos, rx1392_off
+ substr $S10, rx1392_tgt, $I10, 1
index $I11, "$@", $S10
- lt $I11, 0, rx1393_fail
+ lt $I11, 0, rx1392_fail
# rx subrule "LANG" subtype=capture negate=
- rx1393_cur."!cursor_pos"(rx1393_pos)
- $P10 = rx1393_cur."LANG"("MAIN", "variable")
- unless $P10, rx1393_fail
- rx1393_cur."!mark_push"(0, -1, 0, $P10)
+ rx1392_cur."!cursor_pos"(rx1392_pos)
+ $P10 = rx1392_cur."LANG"("MAIN", "variable")
+ unless $P10, rx1392_fail
+ rx1392_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("var")
- rx1393_pos = $P10."pos"()
-.annotate 'line', 595
+ rx1392_pos = $P10."pos"()
+.annotate 'line', 599
# rx pass
- rx1393_cur."!cursor_pass"(rx1393_pos, "assertion:sym<var>")
- rx1393_cur."!cursor_debug"("PASS ", "assertion:sym<var>", " at pos=", rx1393_pos)
- .return (rx1393_cur)
- rx1393_fail:
-.annotate 'line', 563
- (rx1393_rep, rx1393_pos, $I10, $P10) = rx1393_cur."!mark_fail"(0)
- lt rx1393_pos, -1, rx1393_done
- eq rx1393_pos, -1, rx1393_fail
- jump $I10
- rx1393_done:
- rx1393_cur."!cursor_fail"()
- rx1393_cur."!cursor_debug"("FAIL ", "assertion:sym<var>")
- .return (rx1393_cur)
+ rx1392_cur."!cursor_pass"(rx1392_pos, "assertion:sym<var>")
+ rx1392_cur."!cursor_debug"("PASS ", "assertion:sym<var>", " at pos=", rx1392_pos)
+ .return (rx1392_cur)
+ rx1392_restart:
+.annotate 'line', 567
+ rx1392_cur."!cursor_debug"("NEXT ", "assertion:sym<var>")
+ rx1392_fail:
+ (rx1392_rep, rx1392_pos, $I10, $P10) = rx1392_cur."!mark_fail"(0)
+ lt rx1392_pos, -1, rx1392_done
+ eq rx1392_pos, -1, rx1392_fail
+ jump $I10
+ rx1392_done:
+ rx1392_cur."!cursor_fail"()
+ rx1392_cur."!cursor_debug"("FAIL ", "assertion:sym<var>")
+ .return (rx1392_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<var>" :subid("359_1275811487.95429") :method
-.annotate 'line', 563
- new $P1395, "ResizablePMCArray"
- push $P1395, "$"
- push $P1395, "@"
- .return ($P1395)
+.sub "!PREFIX__assertion:sym<var>" :subid("367_1280467477.44751") :method
+.annotate 'line', 567
+ new $P1394, "ResizablePMCArray"
+ push $P1394, "$"
+ push $P1394, "@"
+ .return ($P1394)
.end
.namespace ["NQP";"Regex"]
-.sub "codeblock" :subid("360_1275811487.95429") :method :outer("341_1275811487.95429")
-.annotate 'line', 563
- .local string rx1398_tgt
- .local int rx1398_pos
- .local int rx1398_off
- .local int rx1398_eos
- .local int rx1398_rep
- .local pmc rx1398_cur
- (rx1398_cur, rx1398_pos, rx1398_tgt) = self."!cursor_start"()
- rx1398_cur."!cursor_debug"("START ", "codeblock")
- .lex unicode:"$\x{a2}", rx1398_cur
- .local pmc match
- .lex "$/", match
- length rx1398_eos, rx1398_tgt
- gt rx1398_pos, rx1398_eos, rx1398_done
- set rx1398_off, 0
- lt rx1398_pos, 2, rx1398_start
- sub rx1398_off, rx1398_pos, 1
- substr rx1398_tgt, rx1398_tgt, rx1398_off
- rx1398_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1402_done
- goto rxscan1402_scan
- rxscan1402_loop:
- ($P10) = rx1398_cur."from"()
- inc $P10
- set rx1398_pos, $P10
- ge rx1398_pos, rx1398_eos, rxscan1402_done
- rxscan1402_scan:
- set_addr $I10, rxscan1402_loop
- rx1398_cur."!mark_push"(0, rx1398_pos, $I10)
- rxscan1402_done:
-.annotate 'line', 600
+.sub "codeblock" :subid("368_1280467477.44751") :method :outer("349_1280467477.44751")
+.annotate 'line', 567
+ .local string rx1397_tgt
+ .local int rx1397_pos
+ .local int rx1397_off
+ .local int rx1397_eos
+ .local int rx1397_rep
+ .local pmc rx1397_cur
+ (rx1397_cur, rx1397_pos, rx1397_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx1397_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1397_eos, rx1397_tgt
+ gt rx1397_pos, rx1397_eos, rx1397_done
+ set rx1397_off, 0
+ lt rx1397_pos, 2, rx1397_start
+ sub rx1397_off, rx1397_pos, 1
+ substr rx1397_tgt, rx1397_tgt, rx1397_off
+ rx1397_start:
+ eq $I10, 1, rx1397_restart
+ rx1397_cur."!cursor_debug"("START ", "codeblock")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1401_done
+ goto rxscan1401_scan
+ rxscan1401_loop:
+ ($P10) = rx1397_cur."from"()
+ inc $P10
+ set rx1397_pos, $P10
+ ge rx1397_pos, rx1397_eos, rxscan1401_done
+ rxscan1401_scan:
+ set_addr $I10, rxscan1401_loop
+ rx1397_cur."!mark_push"(0, rx1397_pos, $I10)
+ rxscan1401_done:
+.annotate 'line', 604
# rx subrule "LANG" subtype=capture negate=
- rx1398_cur."!cursor_pos"(rx1398_pos)
- $P10 = rx1398_cur."LANG"("MAIN", "pblock")
- unless $P10, rx1398_fail
- rx1398_cur."!mark_push"(0, -1, 0, $P10)
+ rx1397_cur."!cursor_pos"(rx1397_pos)
+ $P10 = rx1397_cur."LANG"("MAIN", "pblock")
+ unless $P10, rx1397_fail
+ rx1397_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("block")
- rx1398_pos = $P10."pos"()
-.annotate 'line', 599
+ rx1397_pos = $P10."pos"()
+.annotate 'line', 603
# rx pass
- rx1398_cur."!cursor_pass"(rx1398_pos, "codeblock")
- rx1398_cur."!cursor_debug"("PASS ", "codeblock", " at pos=", rx1398_pos)
- .return (rx1398_cur)
- rx1398_fail:
-.annotate 'line', 563
- (rx1398_rep, rx1398_pos, $I10, $P10) = rx1398_cur."!mark_fail"(0)
- lt rx1398_pos, -1, rx1398_done
- eq rx1398_pos, -1, rx1398_fail
- jump $I10
- rx1398_done:
- rx1398_cur."!cursor_fail"()
- rx1398_cur."!cursor_debug"("FAIL ", "codeblock")
- .return (rx1398_cur)
+ rx1397_cur."!cursor_pass"(rx1397_pos, "codeblock")
+ rx1397_cur."!cursor_debug"("PASS ", "codeblock", " at pos=", rx1397_pos)
+ .return (rx1397_cur)
+ rx1397_restart:
+.annotate 'line', 567
+ rx1397_cur."!cursor_debug"("NEXT ", "codeblock")
+ rx1397_fail:
+ (rx1397_rep, rx1397_pos, $I10, $P10) = rx1397_cur."!mark_fail"(0)
+ lt rx1397_pos, -1, rx1397_done
+ eq rx1397_pos, -1, rx1397_fail
+ jump $I10
+ rx1397_done:
+ rx1397_cur."!cursor_fail"()
+ rx1397_cur."!cursor_debug"("FAIL ", "codeblock")
+ .return (rx1397_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__codeblock" :subid("361_1275811487.95429") :method
-.annotate 'line', 563
- $P1400 = self."!PREFIX__!subrule"("LANG", "")
- new $P1401, "ResizablePMCArray"
- push $P1401, $P1400
- .return ($P1401)
+.sub "!PREFIX__codeblock" :subid("369_1280467477.44751") :method
+.annotate 'line', 567
+ $P1399 = self."!PREFIX__!subrule"("LANG", "")
+ new $P1400, "ResizablePMCArray"
+ push $P1400, $P1399
+ .return ($P1400)
.end
.namespace ["NQP";"Grammar"]
-.sub "_block1404" :load :anon :subid("362_1275811487.95429")
+.sub "_block1403" :load :anon :subid("370_1280467477.44751")
.annotate 'line', 4
- .const 'Sub' $P1406 = "11_1275811487.95429"
- $P1407 = $P1406()
- .return ($P1407)
+ .const 'Sub' $P1405 = "11_1280467477.44751"
+ $P1406 = $P1405()
+ .return ($P1406)
.end
.namespace []
-.sub "_block1425" :load :anon :subid("363_1275811487.95429")
+.sub "_block1424" :load :anon :subid("371_1280467477.44751")
.annotate 'line', 1
- .const 'Sub' $P1427 = "10_1275811487.95429"
- $P1428 = $P1427()
- .return ($P1428)
+ .const 'Sub' $P1426 = "10_1280467477.44751"
+ $P1427 = $P1426()
+ .return ($P1427)
.end
### .include 'gen/nqp-actions.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1275811497.55064")
+.sub "_block11" :anon :subid("10_1280467483.70067")
.annotate 'line', 0
get_hll_global $P14, ["NQP";"Actions"], "_block13"
capture_lex $P14
@@ -17447,237 +18509,237 @@
.annotate 'line', 3
get_hll_global $P14, ["NQP";"Actions"], "_block13"
capture_lex $P14
- $P2424 = $P14()
+ $P2452 = $P14()
.annotate 'line', 1
- .return ($P2424)
- .const 'Sub' $P2426 = "143_1275811497.55064"
- .return ($P2426)
+ .return ($P2452)
+ .const 'Sub' $P2454 = "143_1280467483.70067"
+ .return ($P2454)
.end
.namespace []
-.sub "" :load :init :subid("post144") :outer("10_1275811497.55064")
+.sub "" :load :init :subid("post144") :outer("10_1280467483.70067")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1275811497.55064"
+ .const 'Sub' $P12 = "10_1280467483.70067"
.local pmc block
set block, $P12
- $P2429 = get_root_global ["parrot"], "P6metaclass"
- $P2429."new_class"("NQP::Actions", "HLL::Actions" :named("parent"))
+ $P2457 = get_root_global ["parrot"], "P6metaclass"
+ $P2457."new_class"("NQP::Actions", "HLL::Actions" :named("parent"))
.end
.namespace ["NQP";"Actions"]
-.sub "_block13" :subid("11_1275811497.55064") :outer("10_1275811497.55064")
+.sub "_block13" :subid("11_1280467483.70067") :outer("10_1280467483.70067")
.annotate 'line', 3
- .const 'Sub' $P2420 = "142_1275811497.55064"
- capture_lex $P2420
- get_hll_global $P2303, ["NQP";"RegexActions"], "_block2302"
- capture_lex $P2303
- .const 'Sub' $P2292 = "132_1275811497.55064"
- capture_lex $P2292
- .const 'Sub' $P2285 = "131_1275811497.55064"
- capture_lex $P2285
- .const 'Sub' $P2278 = "130_1275811497.55064"
- capture_lex $P2278
- .const 'Sub' $P2271 = "129_1275811497.55064"
- capture_lex $P2271
- .const 'Sub' $P2258 = "128_1275811497.55064"
- capture_lex $P2258
- .const 'Sub' $P2248 = "127_1275811497.55064"
- capture_lex $P2248
- .const 'Sub' $P2238 = "126_1275811497.55064"
- capture_lex $P2238
- .const 'Sub' $P2228 = "125_1275811497.55064"
- capture_lex $P2228
- .const 'Sub' $P2221 = "124_1275811497.55064"
- capture_lex $P2221
- .const 'Sub' $P2207 = "123_1275811497.55064"
- capture_lex $P2207
- .const 'Sub' $P2197 = "122_1275811497.55064"
- capture_lex $P2197
- .const 'Sub' $P2160 = "121_1275811497.55064"
- capture_lex $P2160
- .const 'Sub' $P2146 = "120_1275811497.55064"
- capture_lex $P2146
- .const 'Sub' $P2136 = "119_1275811497.55064"
- capture_lex $P2136
- .const 'Sub' $P2126 = "118_1275811497.55064"
- capture_lex $P2126
- .const 'Sub' $P2116 = "117_1275811497.55064"
- capture_lex $P2116
- .const 'Sub' $P2106 = "116_1275811497.55064"
- capture_lex $P2106
- .const 'Sub' $P2096 = "115_1275811497.55064"
+ .const 'Sub' $P2448 = "142_1280467483.70067"
+ capture_lex $P2448
+ get_hll_global $P2331, ["NQP";"RegexActions"], "_block2330"
+ capture_lex $P2331
+ .const 'Sub' $P2320 = "132_1280467483.70067"
+ capture_lex $P2320
+ .const 'Sub' $P2313 = "131_1280467483.70067"
+ capture_lex $P2313
+ .const 'Sub' $P2306 = "130_1280467483.70067"
+ capture_lex $P2306
+ .const 'Sub' $P2299 = "129_1280467483.70067"
+ capture_lex $P2299
+ .const 'Sub' $P2286 = "128_1280467483.70067"
+ capture_lex $P2286
+ .const 'Sub' $P2276 = "127_1280467483.70067"
+ capture_lex $P2276
+ .const 'Sub' $P2266 = "126_1280467483.70067"
+ capture_lex $P2266
+ .const 'Sub' $P2256 = "125_1280467483.70067"
+ capture_lex $P2256
+ .const 'Sub' $P2249 = "124_1280467483.70067"
+ capture_lex $P2249
+ .const 'Sub' $P2235 = "123_1280467483.70067"
+ capture_lex $P2235
+ .const 'Sub' $P2225 = "122_1280467483.70067"
+ capture_lex $P2225
+ .const 'Sub' $P2188 = "121_1280467483.70067"
+ capture_lex $P2188
+ .const 'Sub' $P2174 = "120_1280467483.70067"
+ capture_lex $P2174
+ .const 'Sub' $P2164 = "119_1280467483.70067"
+ capture_lex $P2164
+ .const 'Sub' $P2154 = "118_1280467483.70067"
+ capture_lex $P2154
+ .const 'Sub' $P2144 = "117_1280467483.70067"
+ capture_lex $P2144
+ .const 'Sub' $P2134 = "116_1280467483.70067"
+ capture_lex $P2134
+ .const 'Sub' $P2124 = "115_1280467483.70067"
+ capture_lex $P2124
+ .const 'Sub' $P2096 = "114_1280467483.70067"
capture_lex $P2096
- .const 'Sub' $P2068 = "114_1275811497.55064"
- capture_lex $P2068
- .const 'Sub' $P2051 = "113_1275811497.55064"
- capture_lex $P2051
- .const 'Sub' $P2041 = "112_1275811497.55064"
- capture_lex $P2041
- .const 'Sub' $P2028 = "111_1275811497.55064"
- capture_lex $P2028
- .const 'Sub' $P2015 = "110_1275811497.55064"
- capture_lex $P2015
- .const 'Sub' $P2002 = "109_1275811497.55064"
- capture_lex $P2002
- .const 'Sub' $P1992 = "108_1275811497.55064"
- capture_lex $P1992
- .const 'Sub' $P1963 = "107_1275811497.55064"
- capture_lex $P1963
- .const 'Sub' $P1939 = "106_1275811497.55064"
- capture_lex $P1939
- .const 'Sub' $P1929 = "105_1275811497.55064"
- capture_lex $P1929
- .const 'Sub' $P1919 = "104_1275811497.55064"
- capture_lex $P1919
- .const 'Sub' $P1892 = "103_1275811497.55064"
+ .const 'Sub' $P2079 = "113_1280467483.70067"
+ capture_lex $P2079
+ .const 'Sub' $P2069 = "112_1280467483.70067"
+ capture_lex $P2069
+ .const 'Sub' $P2056 = "111_1280467483.70067"
+ capture_lex $P2056
+ .const 'Sub' $P2043 = "110_1280467483.70067"
+ capture_lex $P2043
+ .const 'Sub' $P2030 = "109_1280467483.70067"
+ capture_lex $P2030
+ .const 'Sub' $P2020 = "108_1280467483.70067"
+ capture_lex $P2020
+ .const 'Sub' $P1991 = "107_1280467483.70067"
+ capture_lex $P1991
+ .const 'Sub' $P1967 = "106_1280467483.70067"
+ capture_lex $P1967
+ .const 'Sub' $P1957 = "105_1280467483.70067"
+ capture_lex $P1957
+ .const 'Sub' $P1947 = "104_1280467483.70067"
+ capture_lex $P1947
+ .const 'Sub' $P1920 = "103_1280467483.70067"
+ capture_lex $P1920
+ .const 'Sub' $P1902 = "102_1280467483.70067"
+ capture_lex $P1902
+ .const 'Sub' $P1892 = "101_1280467483.70067"
capture_lex $P1892
- .const 'Sub' $P1874 = "102_1275811497.55064"
- capture_lex $P1874
- .const 'Sub' $P1864 = "101_1275811497.55064"
- capture_lex $P1864
- .const 'Sub' $P1760 = "98_1275811497.55064"
- capture_lex $P1760
- .const 'Sub' $P1750 = "97_1275811497.55064"
- capture_lex $P1750
- .const 'Sub' $P1721 = "96_1275811497.55064"
- capture_lex $P1721
- .const 'Sub' $P1679 = "95_1275811497.55064"
- capture_lex $P1679
- .const 'Sub' $P1663 = "94_1275811497.55064"
- capture_lex $P1663
- .const 'Sub' $P1654 = "93_1275811497.55064"
- capture_lex $P1654
- .const 'Sub' $P1622 = "92_1275811497.55064"
- capture_lex $P1622
- .const 'Sub' $P1523 = "89_1275811497.55064"
- capture_lex $P1523
- .const 'Sub' $P1506 = "88_1275811497.55064"
- capture_lex $P1506
- .const 'Sub' $P1486 = "87_1275811497.55064"
- capture_lex $P1486
- .const 'Sub' $P1374 = "84_1275811497.55064"
- capture_lex $P1374
- .const 'Sub' $P1317 = "80_1275811497.55064"
- capture_lex $P1317
- .const 'Sub' $P1277 = "78_1275811497.55064"
- capture_lex $P1277
- .const 'Sub' $P1227 = "76_1275811497.55064"
- capture_lex $P1227
- .const 'Sub' $P1217 = "75_1275811497.55064"
- capture_lex $P1217
- .const 'Sub' $P1207 = "74_1275811497.55064"
- capture_lex $P1207
- .const 'Sub' $P1136 = "72_1275811497.55064"
- capture_lex $P1136
- .const 'Sub' $P1126 = "71_1275811497.55064"
- capture_lex $P1126
- .const 'Sub' $P1109 = "70_1275811497.55064"
- capture_lex $P1109
- .const 'Sub' $P1092 = "69_1275811497.55064"
- capture_lex $P1092
- .const 'Sub' $P1075 = "68_1275811497.55064"
- capture_lex $P1075
- .const 'Sub' $P1065 = "67_1275811497.55064"
- capture_lex $P1065
- .const 'Sub' $P1055 = "66_1275811497.55064"
- capture_lex $P1055
- .const 'Sub' $P1045 = "65_1275811497.55064"
- capture_lex $P1045
- .const 'Sub' $P1021 = "64_1275811497.55064"
- capture_lex $P1021
- .const 'Sub' $P968 = "63_1275811497.55064"
- capture_lex $P968
- .const 'Sub' $P958 = "62_1275811497.55064"
- capture_lex $P958
- .const 'Sub' $P869 = "60_1275811497.55064"
- capture_lex $P869
- .const 'Sub' $P843 = "59_1275811497.55064"
- capture_lex $P843
- .const 'Sub' $P827 = "58_1275811497.55064"
- capture_lex $P827
- .const 'Sub' $P817 = "57_1275811497.55064"
- capture_lex $P817
- .const 'Sub' $P807 = "56_1275811497.55064"
- capture_lex $P807
- .const 'Sub' $P797 = "55_1275811497.55064"
- capture_lex $P797
- .const 'Sub' $P787 = "54_1275811497.55064"
- capture_lex $P787
- .const 'Sub' $P777 = "53_1275811497.55064"
- capture_lex $P777
- .const 'Sub' $P767 = "52_1275811497.55064"
- capture_lex $P767
- .const 'Sub' $P757 = "51_1275811497.55064"
- capture_lex $P757
- .const 'Sub' $P747 = "50_1275811497.55064"
- capture_lex $P747
- .const 'Sub' $P737 = "49_1275811497.55064"
- capture_lex $P737
- .const 'Sub' $P727 = "48_1275811497.55064"
- capture_lex $P727
- .const 'Sub' $P717 = "47_1275811497.55064"
- capture_lex $P717
- .const 'Sub' $P707 = "46_1275811497.55064"
- capture_lex $P707
- .const 'Sub' $P697 = "45_1275811497.55064"
- capture_lex $P697
- .const 'Sub' $P679 = "44_1275811497.55064"
- capture_lex $P679
- .const 'Sub' $P644 = "43_1275811497.55064"
- capture_lex $P644
- .const 'Sub' $P628 = "42_1275811497.55064"
- capture_lex $P628
- .const 'Sub' $P607 = "41_1275811497.55064"
- capture_lex $P607
- .const 'Sub' $P587 = "40_1275811497.55064"
- capture_lex $P587
- .const 'Sub' $P574 = "39_1275811497.55064"
- capture_lex $P574
- .const 'Sub' $P548 = "38_1275811497.55064"
- capture_lex $P548
- .const 'Sub' $P512 = "37_1275811497.55064"
- capture_lex $P512
- .const 'Sub' $P495 = "36_1275811497.55064"
- capture_lex $P495
- .const 'Sub' $P481 = "35_1275811497.55064"
- capture_lex $P481
- .const 'Sub' $P428 = "33_1275811497.55064"
- capture_lex $P428
- .const 'Sub' $P417 = "32_1275811497.55064"
- capture_lex $P417
- .const 'Sub' $P404 = "31_1275811497.55064"
- capture_lex $P404
- .const 'Sub' $P384 = "30_1275811497.55064"
- capture_lex $P384
- .const 'Sub' $P374 = "29_1275811497.55064"
- capture_lex $P374
- .const 'Sub' $P364 = "28_1275811497.55064"
- capture_lex $P364
- .const 'Sub' $P348 = "27_1275811497.55064"
- capture_lex $P348
- .const 'Sub' $P288 = "25_1275811497.55064"
+ .const 'Sub' $P1788 = "98_1280467483.70067"
+ capture_lex $P1788
+ .const 'Sub' $P1778 = "97_1280467483.70067"
+ capture_lex $P1778
+ .const 'Sub' $P1749 = "96_1280467483.70067"
+ capture_lex $P1749
+ .const 'Sub' $P1707 = "95_1280467483.70067"
+ capture_lex $P1707
+ .const 'Sub' $P1691 = "94_1280467483.70067"
+ capture_lex $P1691
+ .const 'Sub' $P1682 = "93_1280467483.70067"
+ capture_lex $P1682
+ .const 'Sub' $P1650 = "92_1280467483.70067"
+ capture_lex $P1650
+ .const 'Sub' $P1551 = "89_1280467483.70067"
+ capture_lex $P1551
+ .const 'Sub' $P1534 = "88_1280467483.70067"
+ capture_lex $P1534
+ .const 'Sub' $P1514 = "87_1280467483.70067"
+ capture_lex $P1514
+ .const 'Sub' $P1402 = "84_1280467483.70067"
+ capture_lex $P1402
+ .const 'Sub' $P1345 = "80_1280467483.70067"
+ capture_lex $P1345
+ .const 'Sub' $P1300 = "78_1280467483.70067"
+ capture_lex $P1300
+ .const 'Sub' $P1250 = "76_1280467483.70067"
+ capture_lex $P1250
+ .const 'Sub' $P1240 = "75_1280467483.70067"
+ capture_lex $P1240
+ .const 'Sub' $P1230 = "74_1280467483.70067"
+ capture_lex $P1230
+ .const 'Sub' $P1159 = "72_1280467483.70067"
+ capture_lex $P1159
+ .const 'Sub' $P1149 = "71_1280467483.70067"
+ capture_lex $P1149
+ .const 'Sub' $P1132 = "70_1280467483.70067"
+ capture_lex $P1132
+ .const 'Sub' $P1115 = "69_1280467483.70067"
+ capture_lex $P1115
+ .const 'Sub' $P1098 = "68_1280467483.70067"
+ capture_lex $P1098
+ .const 'Sub' $P1088 = "67_1280467483.70067"
+ capture_lex $P1088
+ .const 'Sub' $P1078 = "66_1280467483.70067"
+ capture_lex $P1078
+ .const 'Sub' $P1068 = "65_1280467483.70067"
+ capture_lex $P1068
+ .const 'Sub' $P1044 = "64_1280467483.70067"
+ capture_lex $P1044
+ .const 'Sub' $P991 = "63_1280467483.70067"
+ capture_lex $P991
+ .const 'Sub' $P981 = "62_1280467483.70067"
+ capture_lex $P981
+ .const 'Sub' $P892 = "60_1280467483.70067"
+ capture_lex $P892
+ .const 'Sub' $P866 = "59_1280467483.70067"
+ capture_lex $P866
+ .const 'Sub' $P850 = "58_1280467483.70067"
+ capture_lex $P850
+ .const 'Sub' $P840 = "57_1280467483.70067"
+ capture_lex $P840
+ .const 'Sub' $P830 = "56_1280467483.70067"
+ capture_lex $P830
+ .const 'Sub' $P820 = "55_1280467483.70067"
+ capture_lex $P820
+ .const 'Sub' $P810 = "54_1280467483.70067"
+ capture_lex $P810
+ .const 'Sub' $P800 = "53_1280467483.70067"
+ capture_lex $P800
+ .const 'Sub' $P790 = "52_1280467483.70067"
+ capture_lex $P790
+ .const 'Sub' $P780 = "51_1280467483.70067"
+ capture_lex $P780
+ .const 'Sub' $P770 = "50_1280467483.70067"
+ capture_lex $P770
+ .const 'Sub' $P760 = "49_1280467483.70067"
+ capture_lex $P760
+ .const 'Sub' $P750 = "48_1280467483.70067"
+ capture_lex $P750
+ .const 'Sub' $P740 = "47_1280467483.70067"
+ capture_lex $P740
+ .const 'Sub' $P730 = "46_1280467483.70067"
+ capture_lex $P730
+ .const 'Sub' $P720 = "45_1280467483.70067"
+ capture_lex $P720
+ .const 'Sub' $P702 = "44_1280467483.70067"
+ capture_lex $P702
+ .const 'Sub' $P667 = "43_1280467483.70067"
+ capture_lex $P667
+ .const 'Sub' $P651 = "42_1280467483.70067"
+ capture_lex $P651
+ .const 'Sub' $P630 = "41_1280467483.70067"
+ capture_lex $P630
+ .const 'Sub' $P610 = "40_1280467483.70067"
+ capture_lex $P610
+ .const 'Sub' $P597 = "39_1280467483.70067"
+ capture_lex $P597
+ .const 'Sub' $P571 = "38_1280467483.70067"
+ capture_lex $P571
+ .const 'Sub' $P535 = "37_1280467483.70067"
+ capture_lex $P535
+ .const 'Sub' $P518 = "36_1280467483.70067"
+ capture_lex $P518
+ .const 'Sub' $P504 = "35_1280467483.70067"
+ capture_lex $P504
+ .const 'Sub' $P451 = "33_1280467483.70067"
+ capture_lex $P451
+ .const 'Sub' $P440 = "32_1280467483.70067"
+ capture_lex $P440
+ .const 'Sub' $P427 = "31_1280467483.70067"
+ capture_lex $P427
+ .const 'Sub' $P407 = "30_1280467483.70067"
+ capture_lex $P407
+ .const 'Sub' $P397 = "29_1280467483.70067"
+ capture_lex $P397
+ .const 'Sub' $P387 = "28_1280467483.70067"
+ capture_lex $P387
+ .const 'Sub' $P371 = "27_1280467483.70067"
+ capture_lex $P371
+ .const 'Sub' $P288 = "25_1280467483.70067"
capture_lex $P288
- .const 'Sub' $P245 = "23_1275811497.55064"
+ .const 'Sub' $P245 = "23_1280467483.70067"
capture_lex $P245
- .const 'Sub' $P213 = "22_1275811497.55064"
+ .const 'Sub' $P213 = "22_1280467483.70067"
capture_lex $P213
- .const 'Sub' $P180 = "21_1275811497.55064"
+ .const 'Sub' $P180 = "21_1280467483.70067"
capture_lex $P180
- .const 'Sub' $P170 = "20_1275811497.55064"
+ .const 'Sub' $P170 = "20_1280467483.70067"
capture_lex $P170
- .const 'Sub' $P151 = "19_1275811497.55064"
+ .const 'Sub' $P151 = "19_1280467483.70067"
capture_lex $P151
- .const 'Sub' $P100 = "18_1275811497.55064"
+ .const 'Sub' $P100 = "18_1280467483.70067"
capture_lex $P100
- .const 'Sub' $P84 = "17_1275811497.55064"
+ .const 'Sub' $P84 = "17_1280467483.70067"
capture_lex $P84
- .const 'Sub' $P63 = "16_1275811497.55064"
+ .const 'Sub' $P63 = "16_1280467483.70067"
capture_lex $P63
- .const 'Sub' $P27 = "13_1275811497.55064"
+ .const 'Sub' $P27 = "13_1280467483.70067"
capture_lex $P27
- .const 'Sub' $P16 = "12_1275811497.55064"
+ .const 'Sub' $P16 = "12_1280467483.70067"
capture_lex $P16
get_global $P15, "@BLOCK"
unless_null $P15, vivify_147
@@ -17685,27 +18747,27 @@
set_global "@BLOCK", $P15
vivify_147:
.annotate 'line', 9
- .const 'Sub' $P16 = "12_1275811497.55064"
+ .const 'Sub' $P16 = "12_1280467483.70067"
newclosure $P26, $P16
.lex "xblock_immediate", $P26
.annotate 'line', 14
- .const 'Sub' $P27 = "13_1275811497.55064"
+ .const 'Sub' $P27 = "13_1280467483.70067"
newclosure $P62, $P27
.lex "block_immediate", $P62
.annotate 'line', 24
- .const 'Sub' $P63 = "16_1275811497.55064"
+ .const 'Sub' $P63 = "16_1280467483.70067"
newclosure $P83, $P63
.lex "vivitype", $P83
.annotate 'line', 43
- .const 'Sub' $P84 = "17_1275811497.55064"
+ .const 'Sub' $P84 = "17_1280467483.70067"
newclosure $P99, $P84
.lex "colonpair_str", $P99
-.annotate 'line', 213
- .const 'Sub' $P100 = "18_1275811497.55064"
+.annotate 'line', 223
+ .const 'Sub' $P100 = "18_1280467483.70067"
newclosure $P150, $P100
.lex "push_block_handler", $P150
-.annotate 'line', 822
- .const 'Sub' $P151 = "19_1275811497.55064"
+.annotate 'line', 835
+ .const 'Sub' $P151 = "19_1280467483.70067"
newclosure $P165, $P151
.lex "control", $P165
.annotate 'line', 3
@@ -17722,54 +18784,54 @@
find_lex $P169, "vivitype"
.annotate 'line', 35
find_lex $P212, "colonpair_str"
-.annotate 'line', 206
- find_lex $P627, "push_block_handler"
-.annotate 'line', 813
- find_lex $P2270, "control"
-.annotate 'line', 840
- get_hll_global $P2303, ["NQP";"RegexActions"], "_block2302"
- capture_lex $P2303
- $P2414 = $P2303()
+.annotate 'line', 216
+ find_lex $P650, "push_block_handler"
+.annotate 'line', 826
+ find_lex $P2298, "control"
+.annotate 'line', 853
+ get_hll_global $P2331, ["NQP";"RegexActions"], "_block2330"
+ capture_lex $P2331
+ $P2442 = $P2331()
.annotate 'line', 3
- .return ($P2414)
- .const 'Sub' $P2416 = "141_1275811497.55064"
- .return ($P2416)
+ .return ($P2442)
+ .const 'Sub' $P2444 = "141_1280467483.70067"
+ .return ($P2444)
.end
.namespace ["NQP";"Actions"]
-.sub "" :load :init :subid("post145") :outer("11_1275811497.55064")
+.sub "" :load :init :subid("post145") :outer("11_1280467483.70067")
.annotate 'line', 3
get_hll_global $P14, ["NQP";"Actions"], "_block13"
.local pmc block
set block, $P14
.annotate 'line', 5
- .const 'Sub' $P2420 = "142_1275811497.55064"
- capture_lex $P2420
- $P2420()
- $P2423 = get_root_global ["parrot"], "P6metaclass"
- $P2423."new_class"("NQP::RegexActions", "Regex::P6Regex::Actions" :named("parent"))
+ .const 'Sub' $P2448 = "142_1280467483.70067"
+ capture_lex $P2448
+ $P2448()
+ $P2451 = get_root_global ["parrot"], "P6metaclass"
+ $P2451."new_class"("NQP::RegexActions", "Regex::P6Regex::Actions" :named("parent"))
.end
.namespace ["NQP";"Actions"]
-.sub "_block2419" :anon :subid("142_1275811497.55064") :outer("11_1275811497.55064")
+.sub "_block2447" :anon :subid("142_1280467483.70067") :outer("11_1280467483.70067")
.annotate 'line', 6
- get_global $P2421, "@BLOCK"
- unless_null $P2421, vivify_146
- $P2421 = root_new ['parrot';'ResizablePMCArray']
- set_global "@BLOCK", $P2421
+ get_global $P2449, "@BLOCK"
+ unless_null $P2449, vivify_146
+ $P2449 = root_new ['parrot';'ResizablePMCArray']
+ set_global "@BLOCK", $P2449
vivify_146:
- $P2422 = new ['ResizablePMCArray']
- set_global "@BLOCK", $P2422
+ $P2450 = new ['ResizablePMCArray']
+ set_global "@BLOCK", $P2450
.annotate 'line', 5
- .return ($P2422)
+ .return ($P2450)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "xblock_immediate" :subid("12_1275811497.55064") :outer("11_1275811497.55064")
+.sub "xblock_immediate" :subid("12_1280467483.70067") :outer("11_1280467483.70067")
.param pmc param_19
.annotate 'line', 9
new $P18, 'ExceptionHandler'
@@ -17806,10 +18868,10 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "block_immediate" :subid("13_1275811497.55064") :outer("11_1275811497.55064")
+.sub "block_immediate" :subid("13_1280467483.70067") :outer("11_1280467483.70067")
.param pmc param_30
.annotate 'line', 14
- .const 'Sub' $P40 = "14_1275811497.55064"
+ .const 'Sub' $P40 = "14_1280467483.70067"
capture_lex $P40
new $P29, 'ExceptionHandler'
set_addr $P29, control_28
@@ -17831,7 +18893,7 @@
set $P33, $P38
unless_34_end:
if $P33, unless_32_end
- .const 'Sub' $P40 = "14_1275811497.55064"
+ .const 'Sub' $P40 = "14_1280467483.70067"
capture_lex $P40
$P40()
unless_32_end:
@@ -17848,9 +18910,9 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "_block39" :anon :subid("14_1275811497.55064") :outer("13_1275811497.55064")
+.sub "_block39" :anon :subid("14_1280467483.70067") :outer("13_1280467483.70067")
.annotate 'line', 16
- .const 'Sub' $P51 = "15_1275811497.55064"
+ .const 'Sub' $P51 = "15_1280467483.70067"
capture_lex $P51
.annotate 'line', 17
new $P41, "Undef"
@@ -17873,7 +18935,7 @@
unless $P45, loop56_done
shift $P49, $P45
loop56_redo:
- .const 'Sub' $P51 = "15_1275811497.55064"
+ .const 'Sub' $P51 = "15_1280467483.70067"
capture_lex $P51
$P51($P49)
loop56_next:
@@ -17896,7 +18958,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block50" :anon :subid("15_1275811497.55064") :outer("14_1275811497.55064")
+.sub "_block50" :anon :subid("15_1280467483.70067") :outer("14_1280467483.70067")
.param pmc param_52
.annotate 'line', 18
.lex "$_", param_52
@@ -17909,7 +18971,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "vivitype" :subid("16_1275811497.55064") :outer("11_1275811497.55064")
+.sub "vivitype" :subid("16_1280467483.70067") :outer("11_1280467483.70067")
.param pmc param_66
.annotate 'line', 24
new $P65, 'ExceptionHandler'
@@ -17958,7 +19020,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "colonpair_str" :subid("17_1275811497.55064") :outer("11_1275811497.55064")
+.sub "colonpair_str" :subid("17_1280467483.70067") :outer("11_1280467483.70067")
.param pmc param_87
.annotate 'line', 43
new $P86, 'ExceptionHandler'
@@ -17997,17 +19059,17 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "push_block_handler" :subid("18_1275811497.55064") :outer("11_1275811497.55064")
+.sub "push_block_handler" :subid("18_1280467483.70067") :outer("11_1280467483.70067")
.param pmc param_103
.param pmc param_104
-.annotate 'line', 213
+.annotate 'line', 223
new $P102, 'ExceptionHandler'
set_addr $P102, control_101
$P102."handle_types"(.CONTROL_RETURN)
push_eh $P102
.lex "$/", param_103
.lex "$block", param_104
-.annotate 'line', 214
+.annotate 'line', 224
get_global $P106, "@BLOCK"
unless_null $P106, vivify_152
$P106 = root_new ['parrot';'ResizablePMCArray']
@@ -18018,7 +19080,7 @@
vivify_153:
$P108 = $P107."handlers"()
if $P108, unless_105_end
-.annotate 'line', 215
+.annotate 'line', 225
get_global $P109, "@BLOCK"
unless_null $P109, vivify_154
$P109 = root_new ['parrot';'ResizablePMCArray']
@@ -18030,42 +19092,42 @@
new $P111, "ResizablePMCArray"
$P110."handlers"($P111)
unless_105_end:
-.annotate 'line', 217
+.annotate 'line', 227
find_lex $P113, "$block"
$P114 = $P113."arity"()
if $P114, unless_112_end
-.annotate 'line', 218
+.annotate 'line', 228
find_lex $P115, "$block"
-.annotate 'line', 219
+.annotate 'line', 229
get_hll_global $P116, ["PAST"], "Op"
-.annotate 'line', 220
+.annotate 'line', 230
get_hll_global $P117, ["PAST"], "Var"
$P118 = $P117."new"("lexical" :named("scope"), "$!" :named("name"), 1 :named("isdecl"))
-.annotate 'line', 221
+.annotate 'line', 231
get_hll_global $P119, ["PAST"], "Var"
$P120 = $P119."new"("lexical" :named("scope"), "$_" :named("name"))
$P121 = $P116."new"($P118, $P120, "bind" :named("pasttype"))
-.annotate 'line', 219
+.annotate 'line', 229
$P115."unshift"($P121)
-.annotate 'line', 224
+.annotate 'line', 234
find_lex $P122, "$block"
get_hll_global $P123, ["PAST"], "Var"
$P124 = $P123."new"("$_" :named("name"), "parameter" :named("scope"))
$P122."unshift"($P124)
-.annotate 'line', 225
+.annotate 'line', 235
find_lex $P125, "$block"
$P125."symbol"("$_", "lexical" :named("scope"))
-.annotate 'line', 226
+.annotate 'line', 236
find_lex $P126, "$block"
$P126."symbol"("$!", "lexical" :named("scope"))
-.annotate 'line', 227
+.annotate 'line', 237
find_lex $P127, "$block"
$P127."arity"(1)
unless_112_end:
-.annotate 'line', 229
+.annotate 'line', 239
find_lex $P128, "$block"
$P128."blocktype"("declaration")
-.annotate 'line', 230
+.annotate 'line', 240
get_global $P129, "@BLOCK"
unless_null $P129, vivify_156
$P129 = root_new ['parrot';'ResizablePMCArray']
@@ -18075,35 +19137,35 @@
new $P130, "Undef"
vivify_157:
$P131 = $P130."handlers"()
-.annotate 'line', 231
+.annotate 'line', 241
get_hll_global $P132, ["PAST"], "Control"
find_lex $P133, "$/"
-.annotate 'line', 233
+.annotate 'line', 243
get_hll_global $P134, ["PAST"], "Stmts"
-.annotate 'line', 234
+.annotate 'line', 244
get_hll_global $P135, ["PAST"], "Op"
find_lex $P136, "$block"
-.annotate 'line', 236
+.annotate 'line', 246
get_hll_global $P137, ["PAST"], "Var"
$P138 = $P137."new"("register" :named("scope"), "exception" :named("name"))
$P139 = $P135."new"($P136, $P138, "call" :named("pasttype"))
-.annotate 'line', 238
+.annotate 'line', 248
get_hll_global $P140, ["PAST"], "Op"
-.annotate 'line', 239
+.annotate 'line', 249
get_hll_global $P141, ["PAST"], "Var"
-.annotate 'line', 240
+.annotate 'line', 250
get_hll_global $P142, ["PAST"], "Var"
$P143 = $P142."new"("register" :named("scope"), "exception" :named("name"))
$P144 = $P141."new"($P143, "handled", "keyed" :named("scope"))
-.annotate 'line', 239
+.annotate 'line', 249
$P145 = $P140."new"($P144, 1, "bind" :named("pasttype"))
-.annotate 'line', 238
+.annotate 'line', 248
$P146 = $P134."new"($P139, $P145)
-.annotate 'line', 233
+.annotate 'line', 243
$P147 = $P132."new"($P146, $P133 :named("node"))
-.annotate 'line', 231
+.annotate 'line', 241
$P148 = $P131."unshift"($P147)
-.annotate 'line', 213
+.annotate 'line', 223
.return ($P148)
control_101:
.local pmc exception
@@ -18115,28 +19177,28 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "control" :subid("19_1275811497.55064") :outer("11_1275811497.55064")
+.sub "control" :subid("19_1280467483.70067") :outer("11_1280467483.70067")
.param pmc param_154
.param pmc param_155
-.annotate 'line', 822
+.annotate 'line', 835
new $P153, 'ExceptionHandler'
set_addr $P153, control_152
$P153."handle_types"(.CONTROL_RETURN)
push_eh $P153
.lex "$/", param_154
.lex "$type", param_155
-.annotate 'line', 823
+.annotate 'line', 836
find_lex $P156, "$/"
get_hll_global $P157, ["PAST"], "Op"
find_lex $P158, "$/"
-.annotate 'line', 827
+.annotate 'line', 840
get_hll_global $P159, ["PAST"], "Val"
find_lex $P160, "$type"
$P161 = $P159."new"($P160 :named("value"), "!except_types" :named("returns"))
$P162 = $P157."new"(0, $P161, $P158 :named("node"), "die__vii" :named("pirop"))
-.annotate 'line', 823
+.annotate 'line', 836
$P163 = $P156."!make"($P162)
-.annotate 'line', 822
+.annotate 'line', 835
.return ($P163)
control_152:
.local pmc exception
@@ -18148,7 +19210,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "TOP" :subid("20_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "TOP" :subid("20_1280467483.70067") :method :outer("11_1280467483.70067")
.param pmc param_173
.annotate 'line', 33
new $P172, 'ExceptionHandler'
@@ -18179,7 +19241,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "deflongname" :subid("21_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "deflongname" :subid("21_1280467483.70067") :method :outer("11_1280467483.70067")
.param pmc param_183
.annotate 'line', 35
new $P182, 'ExceptionHandler'
@@ -18269,7 +19331,7 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "comp_unit" :subid("22_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "comp_unit" :subid("22_1280467483.70067") :method :outer("11_1280467483.70067")
.param pmc param_216
.annotate 'line', 49
new $P215, 'ExceptionHandler'
@@ -18344,10 +19406,10 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statementlist" :subid("23_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statementlist" :subid("23_1280467483.70067") :method :outer("11_1280467483.70067")
.param pmc param_248
.annotate 'line', 76
- .const 'Sub' $P262 = "24_1275811497.55064"
+ .const 'Sub' $P262 = "24_1280467483.70067"
capture_lex $P262
new $P247, 'ExceptionHandler'
set_addr $P247, control_246
@@ -18392,7 +19454,7 @@
unless $P256, loop281_done
shift $P260, $P256
loop281_redo:
- .const 'Sub' $P262 = "24_1275811497.55064"
+ .const 'Sub' $P262 = "24_1280467483.70067"
capture_lex $P262
$P262($P260)
loop281_next:
@@ -18422,7 +19484,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block261" :anon :subid("24_1275811497.55064") :outer("23_1275811497.55064")
+.sub "_block261" :anon :subid("24_1280467483.70067") :outer("23_1280467483.70067")
.param pmc param_264
.annotate 'line', 80
new $P263, "Undef"
@@ -18477,12 +19539,12 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement" :subid("25_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statement" :subid("25_1280467483.70067") :method :outer("11_1280467483.70067")
.param pmc param_291
.param pmc param_292 :optional
.param int has_param_292 :opt_flag
.annotate 'line', 89
- .const 'Sub' $P300 = "26_1275811497.55064"
+ .const 'Sub' $P300 = "26_1280467483.70067"
capture_lex $P300
new $P290, 'ExceptionHandler'
set_addr $P290, control_289
@@ -18510,57 +19572,57 @@
new $P298, "Undef"
vivify_185:
if $P298, if_296
-.annotate 'line', 102
- find_lex $P338, "$/"
- unless_null $P338, vivify_186
- $P338 = root_new ['parrot';'Hash']
+.annotate 'line', 112
+ find_lex $P361, "$/"
+ unless_null $P361, vivify_186
+ $P361 = root_new ['parrot';'Hash']
vivify_186:
- set $P339, $P338["statement_control"]
- unless_null $P339, vivify_187
- new $P339, "Undef"
+ set $P362, $P361["statement_control"]
+ unless_null $P362, vivify_187
+ new $P362, "Undef"
vivify_187:
- if $P339, if_337
-.annotate 'line', 103
- new $P343, "Integer"
- assign $P343, 0
- store_lex "$past", $P343
- goto if_337_end
- if_337:
-.annotate 'line', 102
- find_lex $P340, "$/"
- unless_null $P340, vivify_188
- $P340 = root_new ['parrot';'Hash']
+ if $P362, if_360
+.annotate 'line', 113
+ new $P366, "Integer"
+ assign $P366, 0
+ store_lex "$past", $P366
+ goto if_360_end
+ if_360:
+.annotate 'line', 112
+ find_lex $P363, "$/"
+ unless_null $P363, vivify_188
+ $P363 = root_new ['parrot';'Hash']
vivify_188:
- set $P341, $P340["statement_control"]
- unless_null $P341, vivify_189
- new $P341, "Undef"
+ set $P364, $P363["statement_control"]
+ unless_null $P364, vivify_189
+ new $P364, "Undef"
vivify_189:
- $P342 = $P341."ast"()
- store_lex "$past", $P342
- if_337_end:
+ $P365 = $P364."ast"()
+ store_lex "$past", $P365
+ if_360_end:
goto if_296_end
if_296:
.annotate 'line', 91
- .const 'Sub' $P300 = "26_1275811497.55064"
+ .const 'Sub' $P300 = "26_1280467483.70067"
capture_lex $P300
$P300()
if_296_end:
-.annotate 'line', 104
- find_lex $P344, "$/"
- find_lex $P345, "$past"
- $P346 = $P344."!make"($P345)
+.annotate 'line', 114
+ find_lex $P367, "$/"
+ find_lex $P368, "$past"
+ $P369 = $P367."!make"($P368)
.annotate 'line', 89
- .return ($P346)
+ .return ($P369)
control_289:
.local pmc exception
.get_results (exception)
- getattribute $P347, exception, "payload"
- .return ($P347)
+ getattribute $P370, exception, "payload"
+ .return ($P370)
.end
.namespace ["NQP";"Actions"]
-.sub "_block299" :anon :subid("26_1275811497.55064") :outer("25_1275811497.55064")
+.sub "_block299" :anon :subid("26_1280467483.70067") :outer("25_1280467483.70067")
.annotate 'line', 92
new $P301, "Undef"
.lex "$mc", $P301
@@ -18641,3066 +19703,3058 @@
goto if_325_end
if_325:
.annotate 'line', 99
- get_hll_global $P327, ["PAST"], "Op"
- find_lex $P328, "$ml"
- unless_null $P328, vivify_202
- $P328 = root_new ['parrot';'Hash']
+ find_lex $P329, "$ml"
+ unless_null $P329, vivify_202
+ $P329 = root_new ['parrot';'Hash']
vivify_202:
- set $P329, $P328["cond"]
- unless_null $P329, vivify_203
- new $P329, "Undef"
+ set $P330, $P329["sym"]
+ unless_null $P330, vivify_203
+ new $P330, "Undef"
vivify_203:
- $P330 = $P329."ast"()
- find_lex $P331, "$past"
- find_lex $P332, "$ml"
- unless_null $P332, vivify_204
- $P332 = root_new ['parrot';'Hash']
+ set $S331, $P330
+ iseq $I332, $S331, "for"
+ if $I332, if_328
+.annotate 'line', 108
+ get_hll_global $P350, ["PAST"], "Op"
+ find_lex $P351, "$ml"
+ unless_null $P351, vivify_204
+ $P351 = root_new ['parrot';'Hash']
vivify_204:
- set $P333, $P332["sym"]
- unless_null $P333, vivify_205
- new $P333, "Undef"
+ set $P352, $P351["cond"]
+ unless_null $P352, vivify_205
+ new $P352, "Undef"
vivify_205:
- set $S334, $P333
- find_lex $P335, "$/"
- $P336 = $P327."new"($P330, $P331, $S334 :named("pasttype"), $P335 :named("node"))
- store_lex "$past", $P336
-.annotate 'line', 98
- set $P324, $P336
- if_325_end:
-.annotate 'line', 91
- .return ($P324)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "xblock" :subid("27_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_351
-.annotate 'line', 107
- new $P350, 'ExceptionHandler'
- set_addr $P350, control_349
- $P350."handle_types"(.CONTROL_RETURN)
- push_eh $P350
- .lex "self", self
- .lex "$/", param_351
-.annotate 'line', 108
- find_lex $P352, "$/"
- get_hll_global $P353, ["PAST"], "Op"
- find_lex $P354, "$/"
- unless_null $P354, vivify_206
- $P354 = root_new ['parrot';'Hash']
+ $P353 = $P352."ast"()
+ find_lex $P354, "$past"
+ find_lex $P355, "$ml"
+ unless_null $P355, vivify_206
+ $P355 = root_new ['parrot';'Hash']
vivify_206:
- set $P355, $P354["EXPR"]
- unless_null $P355, vivify_207
- new $P355, "Undef"
+ set $P356, $P355["sym"]
+ unless_null $P356, vivify_207
+ new $P356, "Undef"
vivify_207:
- $P356 = $P355."ast"()
- find_lex $P357, "$/"
- unless_null $P357, vivify_208
- $P357 = root_new ['parrot';'Hash']
+ set $S357, $P356
+ find_lex $P358, "$/"
+ $P359 = $P350."new"($P353, $P354, $S357 :named("pasttype"), $P358 :named("node"))
+ store_lex "$past", $P359
+.annotate 'line', 107
+ set $P327, $P359
+.annotate 'line', 99
+ goto if_328_end
+ if_328:
+.annotate 'line', 100
+ get_hll_global $P333, ["PAST"], "Block"
+.annotate 'line', 101
+ get_hll_global $P334, ["PAST"], "Var"
+ $P335 = $P334."new"("$_" :named("name"), "parameter" :named("scope"), 1 :named("isdecl"))
+ find_lex $P336, "$past"
+ $P337 = $P333."new"($P335, $P336, "immediate" :named("blocktype"))
+.annotate 'line', 100
+ store_lex "$past", $P337
+.annotate 'line', 103
+ find_lex $P338, "$past"
+ $P338."symbol"("$_", "lexical" :named("scope"))
+.annotate 'line', 104
+ find_lex $P339, "$past"
+ $P339."arity"(1)
+.annotate 'line', 105
+ get_hll_global $P340, ["PAST"], "Op"
+ find_lex $P341, "$ml"
+ unless_null $P341, vivify_208
+ $P341 = root_new ['parrot';'Hash']
vivify_208:
- set $P358, $P357["pblock"]
- unless_null $P358, vivify_209
- new $P358, "Undef"
+ set $P342, $P341["cond"]
+ unless_null $P342, vivify_209
+ new $P342, "Undef"
vivify_209:
- $P359 = $P358."ast"()
- find_lex $P360, "$/"
- $P361 = $P353."new"($P356, $P359, "if" :named("pasttype"), $P360 :named("node"))
- $P362 = $P352."!make"($P361)
-.annotate 'line', 107
- .return ($P362)
- control_349:
- .local pmc exception
- .get_results (exception)
- getattribute $P363, exception, "payload"
- .return ($P363)
+ $P343 = $P342."ast"()
+ find_lex $P344, "$past"
+ find_lex $P345, "$ml"
+ unless_null $P345, vivify_210
+ $P345 = root_new ['parrot';'Hash']
+ vivify_210:
+ set $P346, $P345["sym"]
+ unless_null $P346, vivify_211
+ new $P346, "Undef"
+ vivify_211:
+ set $S347, $P346
+ find_lex $P348, "$/"
+ $P349 = $P340."new"($P343, $P344, $S347 :named("pasttype"), $P348 :named("node"))
+ store_lex "$past", $P349
+.annotate 'line', 99
+ set $P327, $P349
+ if_328_end:
+.annotate 'line', 98
+ set $P324, $P327
+ if_325_end:
+.annotate 'line', 91
+ .return ($P324)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "pblock" :subid("28_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_367
-.annotate 'line', 111
- new $P366, 'ExceptionHandler'
- set_addr $P366, control_365
- $P366."handle_types"(.CONTROL_RETURN)
- push_eh $P366
- .lex "self", self
- .lex "$/", param_367
-.annotate 'line', 112
- find_lex $P368, "$/"
- find_lex $P369, "$/"
- unless_null $P369, vivify_210
- $P369 = root_new ['parrot';'Hash']
- vivify_210:
- set $P370, $P369["blockoid"]
- unless_null $P370, vivify_211
- new $P370, "Undef"
- vivify_211:
- $P371 = $P370."ast"()
- $P372 = $P368."!make"($P371)
-.annotate 'line', 111
- .return ($P372)
- control_365:
+.sub "xblock" :subid("27_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_374
+.annotate 'line', 117
+ new $P373, 'ExceptionHandler'
+ set_addr $P373, control_372
+ $P373."handle_types"(.CONTROL_RETURN)
+ push_eh $P373
+ .lex "self", self
+ .lex "$/", param_374
+.annotate 'line', 118
+ find_lex $P375, "$/"
+ get_hll_global $P376, ["PAST"], "Op"
+ find_lex $P377, "$/"
+ unless_null $P377, vivify_212
+ $P377 = root_new ['parrot';'Hash']
+ vivify_212:
+ set $P378, $P377["EXPR"]
+ unless_null $P378, vivify_213
+ new $P378, "Undef"
+ vivify_213:
+ $P379 = $P378."ast"()
+ find_lex $P380, "$/"
+ unless_null $P380, vivify_214
+ $P380 = root_new ['parrot';'Hash']
+ vivify_214:
+ set $P381, $P380["pblock"]
+ unless_null $P381, vivify_215
+ new $P381, "Undef"
+ vivify_215:
+ $P382 = $P381."ast"()
+ find_lex $P383, "$/"
+ $P384 = $P376."new"($P379, $P382, "if" :named("pasttype"), $P383 :named("node"))
+ $P385 = $P375."!make"($P384)
+.annotate 'line', 117
+ .return ($P385)
+ control_372:
.local pmc exception
.get_results (exception)
- getattribute $P373, exception, "payload"
- .return ($P373)
+ getattribute $P386, exception, "payload"
+ .return ($P386)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "block" :subid("29_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_377
-.annotate 'line', 115
- new $P376, 'ExceptionHandler'
- set_addr $P376, control_375
- $P376."handle_types"(.CONTROL_RETURN)
- push_eh $P376
+.sub "pblock" :subid("28_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_390
+.annotate 'line', 121
+ new $P389, 'ExceptionHandler'
+ set_addr $P389, control_388
+ $P389."handle_types"(.CONTROL_RETURN)
+ push_eh $P389
.lex "self", self
- .lex "$/", param_377
-.annotate 'line', 116
- find_lex $P378, "$/"
- find_lex $P379, "$/"
- unless_null $P379, vivify_212
- $P379 = root_new ['parrot';'Hash']
- vivify_212:
- set $P380, $P379["blockoid"]
- unless_null $P380, vivify_213
- new $P380, "Undef"
- vivify_213:
- $P381 = $P380."ast"()
- $P382 = $P378."!make"($P381)
-.annotate 'line', 115
- .return ($P382)
- control_375:
+ .lex "$/", param_390
+.annotate 'line', 122
+ find_lex $P391, "$/"
+ find_lex $P392, "$/"
+ unless_null $P392, vivify_216
+ $P392 = root_new ['parrot';'Hash']
+ vivify_216:
+ set $P393, $P392["blockoid"]
+ unless_null $P393, vivify_217
+ new $P393, "Undef"
+ vivify_217:
+ $P394 = $P393."ast"()
+ $P395 = $P391."!make"($P394)
+.annotate 'line', 121
+ .return ($P395)
+ control_388:
.local pmc exception
.get_results (exception)
- getattribute $P383, exception, "payload"
- .return ($P383)
+ getattribute $P396, exception, "payload"
+ .return ($P396)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "blockoid" :subid("30_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_387
-.annotate 'line', 119
- new $P386, 'ExceptionHandler'
- set_addr $P386, control_385
- $P386."handle_types"(.CONTROL_RETURN)
- push_eh $P386
+.sub "block" :subid("29_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_400
+.annotate 'line', 125
+ new $P399, 'ExceptionHandler'
+ set_addr $P399, control_398
+ $P399."handle_types"(.CONTROL_RETURN)
+ push_eh $P399
.lex "self", self
- .lex "$/", param_387
-.annotate 'line', 120
- new $P388, "Undef"
- .lex "$past", $P388
-.annotate 'line', 121
- new $P389, "Undef"
- .lex "$BLOCK", $P389
-.annotate 'line', 120
- find_lex $P390, "$/"
- unless_null $P390, vivify_214
- $P390 = root_new ['parrot';'Hash']
- vivify_214:
- set $P391, $P390["statementlist"]
- unless_null $P391, vivify_215
- new $P391, "Undef"
- vivify_215:
- $P392 = $P391."ast"()
- store_lex "$past", $P392
-.annotate 'line', 121
- get_global $P393, "@BLOCK"
- $P394 = $P393."shift"()
- store_lex "$BLOCK", $P394
-.annotate 'line', 122
- find_lex $P395, "$BLOCK"
- find_lex $P396, "$past"
- $P395."push"($P396)
-.annotate 'line', 123
- find_lex $P397, "$BLOCK"
- find_lex $P398, "$/"
- $P397."node"($P398)
-.annotate 'line', 124
- find_lex $P399, "$BLOCK"
- $P399."closure"(1)
+ .lex "$/", param_400
+.annotate 'line', 126
+ find_lex $P401, "$/"
+ find_lex $P402, "$/"
+ unless_null $P402, vivify_218
+ $P402 = root_new ['parrot';'Hash']
+ vivify_218:
+ set $P403, $P402["blockoid"]
+ unless_null $P403, vivify_219
+ new $P403, "Undef"
+ vivify_219:
+ $P404 = $P403."ast"()
+ $P405 = $P401."!make"($P404)
.annotate 'line', 125
- find_lex $P400, "$/"
- find_lex $P401, "$BLOCK"
- $P402 = $P400."!make"($P401)
-.annotate 'line', 119
- .return ($P402)
- control_385:
+ .return ($P405)
+ control_398:
.local pmc exception
.get_results (exception)
- getattribute $P403, exception, "payload"
- .return ($P403)
+ getattribute $P406, exception, "payload"
+ .return ($P406)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "newpad" :subid("31_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_407
-.annotate 'line', 128
- new $P406, 'ExceptionHandler'
- set_addr $P406, control_405
- $P406."handle_types"(.CONTROL_RETURN)
- push_eh $P406
- .lex "self", self
- .lex "$/", param_407
+.sub "blockoid" :subid("30_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_410
.annotate 'line', 129
- get_global $P408, "@BLOCK"
- unless_null $P408, vivify_216
- $P408 = root_new ['parrot';'ResizablePMCArray']
- set_global "@BLOCK", $P408
- vivify_216:
-.annotate 'line', 128
- get_global $P409, "@BLOCK"
+ new $P409, 'ExceptionHandler'
+ set_addr $P409, control_408
+ $P409."handle_types"(.CONTROL_RETURN)
+ push_eh $P409
+ .lex "self", self
+ .lex "$/", param_410
.annotate 'line', 130
- get_global $P410, "@BLOCK"
- get_hll_global $P411, ["PAST"], "Block"
- get_hll_global $P412, ["PAST"], "Stmts"
- $P413 = $P412."new"()
- $P414 = $P411."new"($P413)
- $P415 = $P410."unshift"($P414)
-.annotate 'line', 128
- .return ($P415)
- control_405:
+ new $P411, "Undef"
+ .lex "$past", $P411
+.annotate 'line', 131
+ new $P412, "Undef"
+ .lex "$BLOCK", $P412
+.annotate 'line', 130
+ find_lex $P413, "$/"
+ unless_null $P413, vivify_220
+ $P413 = root_new ['parrot';'Hash']
+ vivify_220:
+ set $P414, $P413["statementlist"]
+ unless_null $P414, vivify_221
+ new $P414, "Undef"
+ vivify_221:
+ $P415 = $P414."ast"()
+ store_lex "$past", $P415
+.annotate 'line', 131
+ get_global $P416, "@BLOCK"
+ $P417 = $P416."shift"()
+ store_lex "$BLOCK", $P417
+.annotate 'line', 132
+ find_lex $P418, "$BLOCK"
+ find_lex $P419, "$past"
+ $P418."push"($P419)
+.annotate 'line', 133
+ find_lex $P420, "$BLOCK"
+ find_lex $P421, "$/"
+ $P420."node"($P421)
+.annotate 'line', 134
+ find_lex $P422, "$BLOCK"
+ $P422."closure"(1)
+.annotate 'line', 135
+ find_lex $P423, "$/"
+ find_lex $P424, "$BLOCK"
+ $P425 = $P423."!make"($P424)
+.annotate 'line', 129
+ .return ($P425)
+ control_408:
.local pmc exception
.get_results (exception)
- getattribute $P416, exception, "payload"
- .return ($P416)
+ getattribute $P426, exception, "payload"
+ .return ($P426)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "outerctx" :subid("32_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_420
-.annotate 'line', 133
- new $P419, 'ExceptionHandler'
- set_addr $P419, control_418
- $P419."handle_types"(.CONTROL_RETURN)
- push_eh $P419
+.sub "newpad" :subid("31_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_430
+.annotate 'line', 138
+ new $P429, 'ExceptionHandler'
+ set_addr $P429, control_428
+ $P429."handle_types"(.CONTROL_RETURN)
+ push_eh $P429
.lex "self", self
- .lex "$/", param_420
-.annotate 'line', 134
- get_global $P421, "@BLOCK"
- unless_null $P421, vivify_217
- $P421 = root_new ['parrot';'ResizablePMCArray']
- set_global "@BLOCK", $P421
- vivify_217:
-.annotate 'line', 133
- get_global $P422, "@BLOCK"
-.annotate 'line', 135
- find_lex $P423, "self"
- get_global $P424, "@BLOCK"
- unless_null $P424, vivify_218
- $P424 = root_new ['parrot';'ResizablePMCArray']
- vivify_218:
- set $P425, $P424[0]
- unless_null $P425, vivify_219
- new $P425, "Undef"
- vivify_219:
- $P426 = $P423."SET_BLOCK_OUTER_CTX"($P425)
-.annotate 'line', 133
- .return ($P426)
- control_418:
+ .lex "$/", param_430
+.annotate 'line', 139
+ get_global $P431, "@BLOCK"
+ unless_null $P431, vivify_222
+ $P431 = root_new ['parrot';'ResizablePMCArray']
+ set_global "@BLOCK", $P431
+ vivify_222:
+.annotate 'line', 138
+ get_global $P432, "@BLOCK"
+.annotate 'line', 140
+ get_global $P433, "@BLOCK"
+ get_hll_global $P434, ["PAST"], "Block"
+ get_hll_global $P435, ["PAST"], "Stmts"
+ $P436 = $P435."new"()
+ $P437 = $P434."new"($P436)
+ $P438 = $P433."unshift"($P437)
+.annotate 'line', 138
+ .return ($P438)
+ control_428:
.local pmc exception
.get_results (exception)
- getattribute $P427, exception, "payload"
- .return ($P427)
+ getattribute $P439, exception, "payload"
+ .return ($P439)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_control:sym<if>" :subid("33_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_431
-.annotate 'line', 140
- .const 'Sub' $P459 = "34_1275811497.55064"
- capture_lex $P459
- new $P430, 'ExceptionHandler'
- set_addr $P430, control_429
- $P430."handle_types"(.CONTROL_RETURN)
- push_eh $P430
+.sub "outerctx" :subid("32_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_443
+.annotate 'line', 143
+ new $P442, 'ExceptionHandler'
+ set_addr $P442, control_441
+ $P442."handle_types"(.CONTROL_RETURN)
+ push_eh $P442
.lex "self", self
- .lex "$/", param_431
-.annotate 'line', 141
- new $P432, "Undef"
- .lex "$count", $P432
-.annotate 'line', 142
- new $P433, "Undef"
- .lex "$past", $P433
-.annotate 'line', 141
- find_lex $P434, "$/"
- unless_null $P434, vivify_220
- $P434 = root_new ['parrot';'Hash']
- vivify_220:
- set $P435, $P434["xblock"]
- unless_null $P435, vivify_221
- new $P435, "Undef"
- vivify_221:
- set $N436, $P435
- new $P437, 'Float'
- set $P437, $N436
- sub $P438, $P437, 1
- store_lex "$count", $P438
-.annotate 'line', 142
- find_lex $P439, "$count"
- set $I440, $P439
- find_lex $P441, "$/"
- unless_null $P441, vivify_222
- $P441 = root_new ['parrot';'Hash']
- vivify_222:
- set $P442, $P441["xblock"]
- unless_null $P442, vivify_223
- $P442 = root_new ['parrot';'ResizablePMCArray']
+ .lex "$/", param_443
+.annotate 'line', 144
+ get_global $P444, "@BLOCK"
+ unless_null $P444, vivify_223
+ $P444 = root_new ['parrot';'ResizablePMCArray']
+ set_global "@BLOCK", $P444
vivify_223:
- set $P443, $P442[$I440]
- unless_null $P443, vivify_224
- new $P443, "Undef"
- vivify_224:
- $P444 = $P443."ast"()
- $P445 = "xblock_immediate"($P444)
- store_lex "$past", $P445
.annotate 'line', 143
- find_lex $P447, "$/"
- unless_null $P447, vivify_225
- $P447 = root_new ['parrot';'Hash']
- vivify_225:
- set $P448, $P447["else"]
- unless_null $P448, vivify_226
+ get_global $P445, "@BLOCK"
+.annotate 'line', 145
+ find_lex $P446, "self"
+ get_global $P447, "@BLOCK"
+ unless_null $P447, vivify_224
+ $P447 = root_new ['parrot';'ResizablePMCArray']
+ vivify_224:
+ set $P448, $P447[0]
+ unless_null $P448, vivify_225
new $P448, "Undef"
- vivify_226:
- unless $P448, if_446_end
-.annotate 'line', 144
- find_lex $P449, "$past"
- find_lex $P450, "$/"
- unless_null $P450, vivify_227
- $P450 = root_new ['parrot';'Hash']
- vivify_227:
- set $P451, $P450["else"]
- unless_null $P451, vivify_228
- $P451 = root_new ['parrot';'ResizablePMCArray']
- vivify_228:
- set $P452, $P451[0]
- unless_null $P452, vivify_229
- new $P452, "Undef"
- vivify_229:
- $P453 = $P452."ast"()
- $P454 = "block_immediate"($P453)
- $P449."push"($P454)
- if_446_end:
-.annotate 'line', 147
- new $P475, 'ExceptionHandler'
- set_addr $P475, loop474_handler
- $P475."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P475
- loop474_test:
- find_lex $P455, "$count"
- set $N456, $P455
- isgt $I457, $N456, 0.0
- unless $I457, loop474_done
- loop474_redo:
- .const 'Sub' $P459 = "34_1275811497.55064"
- capture_lex $P459
- $P459()
- loop474_next:
- goto loop474_test
- loop474_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P476, exception, 'type'
- eq $P476, .CONTROL_LOOP_NEXT, loop474_next
- eq $P476, .CONTROL_LOOP_REDO, loop474_redo
- loop474_done:
- pop_eh
-.annotate 'line', 153
- find_lex $P477, "$/"
- find_lex $P478, "$past"
- $P479 = $P477."!make"($P478)
-.annotate 'line', 140
- .return ($P479)
- control_429:
+ vivify_225:
+ $P449 = $P446."SET_BLOCK_OUTER_CTX"($P448)
+.annotate 'line', 143
+ .return ($P449)
+ control_441:
.local pmc exception
.get_results (exception)
- getattribute $P480, exception, "payload"
- .return ($P480)
+ getattribute $P450, exception, "payload"
+ .return ($P450)
.end
.namespace ["NQP";"Actions"]
-.sub "_block458" :anon :subid("34_1275811497.55064") :outer("33_1275811497.55064")
-.annotate 'line', 149
- new $P460, "Undef"
- .lex "$else", $P460
-.annotate 'line', 147
- find_lex $P461, "$count"
- clone $P462, $P461
- dec $P461
-.annotate 'line', 149
- find_lex $P463, "$past"
- store_lex "$else", $P463
+.include "except_types.pasm"
+.sub "statement_control:sym<if>" :subid("33_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_454
.annotate 'line', 150
- find_lex $P464, "$count"
- set $I465, $P464
- find_lex $P466, "$/"
+ .const 'Sub' $P482 = "34_1280467483.70067"
+ capture_lex $P482
+ new $P453, 'ExceptionHandler'
+ set_addr $P453, control_452
+ $P453."handle_types"(.CONTROL_RETURN)
+ push_eh $P453
+ .lex "self", self
+ .lex "$/", param_454
+.annotate 'line', 151
+ new $P455, "Undef"
+ .lex "$count", $P455
+.annotate 'line', 152
+ new $P456, "Undef"
+ .lex "$past", $P456
+.annotate 'line', 151
+ find_lex $P457, "$/"
+ unless_null $P457, vivify_226
+ $P457 = root_new ['parrot';'Hash']
+ vivify_226:
+ set $P458, $P457["xblock"]
+ unless_null $P458, vivify_227
+ new $P458, "Undef"
+ vivify_227:
+ set $N459, $P458
+ new $P460, 'Float'
+ set $P460, $N459
+ sub $P461, $P460, 1
+ store_lex "$count", $P461
+.annotate 'line', 152
+ find_lex $P462, "$count"
+ set $I463, $P462
+ find_lex $P464, "$/"
+ unless_null $P464, vivify_228
+ $P464 = root_new ['parrot';'Hash']
+ vivify_228:
+ set $P465, $P464["xblock"]
+ unless_null $P465, vivify_229
+ $P465 = root_new ['parrot';'ResizablePMCArray']
+ vivify_229:
+ set $P466, $P465[$I463]
unless_null $P466, vivify_230
- $P466 = root_new ['parrot';'Hash']
+ new $P466, "Undef"
vivify_230:
- set $P467, $P466["xblock"]
- unless_null $P467, vivify_231
- $P467 = root_new ['parrot';'ResizablePMCArray']
+ $P467 = $P466."ast"()
+ $P468 = "xblock_immediate"($P467)
+ store_lex "$past", $P468
+.annotate 'line', 153
+ find_lex $P470, "$/"
+ unless_null $P470, vivify_231
+ $P470 = root_new ['parrot';'Hash']
vivify_231:
- set $P468, $P467[$I465]
- unless_null $P468, vivify_232
- new $P468, "Undef"
+ set $P471, $P470["else"]
+ unless_null $P471, vivify_232
+ new $P471, "Undef"
vivify_232:
- $P469 = $P468."ast"()
- $P470 = "xblock_immediate"($P469)
- store_lex "$past", $P470
-.annotate 'line', 151
- find_lex $P471, "$past"
- find_lex $P472, "$else"
- $P473 = $P471."push"($P472)
-.annotate 'line', 147
- .return ($P473)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "statement_control:sym<unless>" :subid("35_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_484
-.annotate 'line', 156
- new $P483, 'ExceptionHandler'
- set_addr $P483, control_482
- $P483."handle_types"(.CONTROL_RETURN)
- push_eh $P483
- .lex "self", self
- .lex "$/", param_484
-.annotate 'line', 157
- new $P485, "Undef"
- .lex "$past", $P485
- find_lex $P486, "$/"
- unless_null $P486, vivify_233
- $P486 = root_new ['parrot';'Hash']
+ unless $P471, if_469_end
+.annotate 'line', 154
+ find_lex $P472, "$past"
+ find_lex $P473, "$/"
+ unless_null $P473, vivify_233
+ $P473 = root_new ['parrot';'Hash']
vivify_233:
- set $P487, $P486["xblock"]
- unless_null $P487, vivify_234
- new $P487, "Undef"
+ set $P474, $P473["else"]
+ unless_null $P474, vivify_234
+ $P474 = root_new ['parrot';'ResizablePMCArray']
vivify_234:
- $P488 = $P487."ast"()
- $P489 = "xblock_immediate"($P488)
- store_lex "$past", $P489
-.annotate 'line', 158
- find_lex $P490, "$past"
- $P490."pasttype"("unless")
-.annotate 'line', 159
- find_lex $P491, "$/"
- find_lex $P492, "$past"
- $P493 = $P491."!make"($P492)
-.annotate 'line', 156
- .return ($P493)
- control_482:
+ set $P475, $P474[0]
+ unless_null $P475, vivify_235
+ new $P475, "Undef"
+ vivify_235:
+ $P476 = $P475."ast"()
+ $P477 = "block_immediate"($P476)
+ $P472."push"($P477)
+ if_469_end:
+.annotate 'line', 157
+ new $P498, 'ExceptionHandler'
+ set_addr $P498, loop497_handler
+ $P498."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P498
+ loop497_test:
+ find_lex $P478, "$count"
+ set $N479, $P478
+ isgt $I480, $N479, 0.0
+ unless $I480, loop497_done
+ loop497_redo:
+ .const 'Sub' $P482 = "34_1280467483.70067"
+ capture_lex $P482
+ $P482()
+ loop497_next:
+ goto loop497_test
+ loop497_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P499, exception, 'type'
+ eq $P499, .CONTROL_LOOP_NEXT, loop497_next
+ eq $P499, .CONTROL_LOOP_REDO, loop497_redo
+ loop497_done:
+ pop_eh
+.annotate 'line', 163
+ find_lex $P500, "$/"
+ find_lex $P501, "$past"
+ $P502 = $P500."!make"($P501)
+.annotate 'line', 150
+ .return ($P502)
+ control_452:
.local pmc exception
.get_results (exception)
- getattribute $P494, exception, "payload"
- .return ($P494)
+ getattribute $P503, exception, "payload"
+ .return ($P503)
.end
.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "statement_control:sym<while>" :subid("36_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_498
-.annotate 'line', 162
- new $P497, 'ExceptionHandler'
- set_addr $P497, control_496
- $P497."handle_types"(.CONTROL_RETURN)
- push_eh $P497
- .lex "self", self
- .lex "$/", param_498
-.annotate 'line', 163
- new $P499, "Undef"
- .lex "$past", $P499
- find_lex $P500, "$/"
- unless_null $P500, vivify_235
- $P500 = root_new ['parrot';'Hash']
- vivify_235:
- set $P501, $P500["xblock"]
- unless_null $P501, vivify_236
- new $P501, "Undef"
+.sub "_block481" :anon :subid("34_1280467483.70067") :outer("33_1280467483.70067")
+.annotate 'line', 159
+ new $P483, "Undef"
+ .lex "$else", $P483
+.annotate 'line', 157
+ find_lex $P484, "$count"
+ clone $P485, $P484
+ dec $P484
+.annotate 'line', 159
+ find_lex $P486, "$past"
+ store_lex "$else", $P486
+.annotate 'line', 160
+ find_lex $P487, "$count"
+ set $I488, $P487
+ find_lex $P489, "$/"
+ unless_null $P489, vivify_236
+ $P489 = root_new ['parrot';'Hash']
vivify_236:
- $P502 = $P501."ast"()
- $P503 = "xblock_immediate"($P502)
- store_lex "$past", $P503
-.annotate 'line', 164
- find_lex $P504, "$past"
- find_lex $P505, "$/"
- unless_null $P505, vivify_237
- $P505 = root_new ['parrot';'Hash']
+ set $P490, $P489["xblock"]
+ unless_null $P490, vivify_237
+ $P490 = root_new ['parrot';'ResizablePMCArray']
vivify_237:
- set $P506, $P505["sym"]
- unless_null $P506, vivify_238
- new $P506, "Undef"
+ set $P491, $P490[$I488]
+ unless_null $P491, vivify_238
+ new $P491, "Undef"
vivify_238:
- set $S507, $P506
- $P504."pasttype"($S507)
-.annotate 'line', 165
- find_lex $P508, "$/"
- find_lex $P509, "$past"
- $P510 = $P508."!make"($P509)
-.annotate 'line', 162
- .return ($P510)
- control_496:
- .local pmc exception
- .get_results (exception)
- getattribute $P511, exception, "payload"
- .return ($P511)
+ $P492 = $P491."ast"()
+ $P493 = "xblock_immediate"($P492)
+ store_lex "$past", $P493
+.annotate 'line', 161
+ find_lex $P494, "$past"
+ find_lex $P495, "$else"
+ $P496 = $P494."push"($P495)
+.annotate 'line', 157
+ .return ($P496)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_control:sym<repeat>" :subid("37_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_515
-.annotate 'line', 168
- new $P514, 'ExceptionHandler'
- set_addr $P514, control_513
- $P514."handle_types"(.CONTROL_RETURN)
- push_eh $P514
+.sub "statement_control:sym<unless>" :subid("35_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_507
+.annotate 'line', 166
+ new $P506, 'ExceptionHandler'
+ set_addr $P506, control_505
+ $P506."handle_types"(.CONTROL_RETURN)
+ push_eh $P506
.lex "self", self
- .lex "$/", param_515
-.annotate 'line', 169
- new $P516, "Undef"
- .lex "$pasttype", $P516
-.annotate 'line', 170
- new $P517, "Undef"
- .lex "$past", $P517
-.annotate 'line', 169
- new $P518, "String"
- assign $P518, "repeat_"
- find_lex $P519, "$/"
- unless_null $P519, vivify_239
- $P519 = root_new ['parrot';'Hash']
+ .lex "$/", param_507
+.annotate 'line', 167
+ new $P508, "Undef"
+ .lex "$past", $P508
+ find_lex $P509, "$/"
+ unless_null $P509, vivify_239
+ $P509 = root_new ['parrot';'Hash']
vivify_239:
- set $P520, $P519["wu"]
- unless_null $P520, vivify_240
- new $P520, "Undef"
+ set $P510, $P509["xblock"]
+ unless_null $P510, vivify_240
+ new $P510, "Undef"
vivify_240:
- set $S521, $P520
- concat $P522, $P518, $S521
- store_lex "$pasttype", $P522
- find_lex $P523, "$past"
-.annotate 'line', 171
- find_lex $P525, "$/"
- unless_null $P525, vivify_241
- $P525 = root_new ['parrot';'Hash']
+ $P511 = $P510."ast"()
+ $P512 = "xblock_immediate"($P511)
+ store_lex "$past", $P512
+.annotate 'line', 168
+ find_lex $P513, "$past"
+ $P513."pasttype"("unless")
+.annotate 'line', 169
+ find_lex $P514, "$/"
+ find_lex $P515, "$past"
+ $P516 = $P514."!make"($P515)
+.annotate 'line', 166
+ .return ($P516)
+ control_505:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P517, exception, "payload"
+ .return ($P517)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "statement_control:sym<while>" :subid("36_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_521
+.annotate 'line', 172
+ new $P520, 'ExceptionHandler'
+ set_addr $P520, control_519
+ $P520."handle_types"(.CONTROL_RETURN)
+ push_eh $P520
+ .lex "self", self
+ .lex "$/", param_521
+.annotate 'line', 173
+ new $P522, "Undef"
+ .lex "$past", $P522
+ find_lex $P523, "$/"
+ unless_null $P523, vivify_241
+ $P523 = root_new ['parrot';'Hash']
vivify_241:
- set $P526, $P525["xblock"]
- unless_null $P526, vivify_242
- new $P526, "Undef"
+ set $P524, $P523["xblock"]
+ unless_null $P524, vivify_242
+ new $P524, "Undef"
vivify_242:
- if $P526, if_524
-.annotate 'line', 176
- get_hll_global $P533, ["PAST"], "Op"
- find_lex $P534, "$/"
- unless_null $P534, vivify_243
- $P534 = root_new ['parrot';'Hash']
+ $P525 = $P524."ast"()
+ $P526 = "xblock_immediate"($P525)
+ store_lex "$past", $P526
+.annotate 'line', 174
+ find_lex $P527, "$past"
+ find_lex $P528, "$/"
+ unless_null $P528, vivify_243
+ $P528 = root_new ['parrot';'Hash']
vivify_243:
- set $P535, $P534["EXPR"]
- unless_null $P535, vivify_244
- new $P535, "Undef"
+ set $P529, $P528["sym"]
+ unless_null $P529, vivify_244
+ new $P529, "Undef"
vivify_244:
- $P536 = $P535."ast"()
- find_lex $P537, "$/"
- unless_null $P537, vivify_245
- $P537 = root_new ['parrot';'Hash']
- vivify_245:
- set $P538, $P537["pblock"]
- unless_null $P538, vivify_246
- new $P538, "Undef"
- vivify_246:
- $P539 = $P538."ast"()
- $P540 = "block_immediate"($P539)
- find_lex $P541, "$pasttype"
- find_lex $P542, "$/"
- $P543 = $P533."new"($P536, $P540, $P541 :named("pasttype"), $P542 :named("node"))
- store_lex "$past", $P543
+ set $S530, $P529
+ $P527."pasttype"($S530)
.annotate 'line', 175
- goto if_524_end
- if_524:
+ find_lex $P531, "$/"
+ find_lex $P532, "$past"
+ $P533 = $P531."!make"($P532)
.annotate 'line', 172
- find_lex $P527, "$/"
- unless_null $P527, vivify_247
- $P527 = root_new ['parrot';'Hash']
- vivify_247:
- set $P528, $P527["xblock"]
- unless_null $P528, vivify_248
- new $P528, "Undef"
- vivify_248:
- $P529 = $P528."ast"()
- $P530 = "xblock_immediate"($P529)
- store_lex "$past", $P530
-.annotate 'line', 173
- find_lex $P531, "$past"
- find_lex $P532, "$pasttype"
- $P531."pasttype"($P532)
- if_524_end:
-.annotate 'line', 179
- find_lex $P544, "$/"
- find_lex $P545, "$past"
- $P546 = $P544."!make"($P545)
-.annotate 'line', 168
- .return ($P546)
- control_513:
+ .return ($P533)
+ control_519:
.local pmc exception
.get_results (exception)
- getattribute $P547, exception, "payload"
- .return ($P547)
+ getattribute $P534, exception, "payload"
+ .return ($P534)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_control:sym<for>" :subid("38_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_551
-.annotate 'line', 182
- new $P550, 'ExceptionHandler'
- set_addr $P550, control_549
- $P550."handle_types"(.CONTROL_RETURN)
- push_eh $P550
+.sub "statement_control:sym<repeat>" :subid("37_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_538
+.annotate 'line', 178
+ new $P537, 'ExceptionHandler'
+ set_addr $P537, control_536
+ $P537."handle_types"(.CONTROL_RETURN)
+ push_eh $P537
.lex "self", self
- .lex "$/", param_551
-.annotate 'line', 183
- new $P552, "Undef"
- .lex "$past", $P552
-.annotate 'line', 185
- new $P553, "Undef"
- .lex "$block", $P553
-.annotate 'line', 183
- find_lex $P554, "$/"
- unless_null $P554, vivify_249
- $P554 = root_new ['parrot';'Hash']
+ .lex "$/", param_538
+.annotate 'line', 179
+ new $P539, "Undef"
+ .lex "$pasttype", $P539
+.annotate 'line', 180
+ new $P540, "Undef"
+ .lex "$past", $P540
+.annotate 'line', 179
+ new $P541, "String"
+ assign $P541, "repeat_"
+ find_lex $P542, "$/"
+ unless_null $P542, vivify_245
+ $P542 = root_new ['parrot';'Hash']
+ vivify_245:
+ set $P543, $P542["wu"]
+ unless_null $P543, vivify_246
+ new $P543, "Undef"
+ vivify_246:
+ set $S544, $P543
+ concat $P545, $P541, $S544
+ store_lex "$pasttype", $P545
+ find_lex $P546, "$past"
+.annotate 'line', 181
+ find_lex $P548, "$/"
+ unless_null $P548, vivify_247
+ $P548 = root_new ['parrot';'Hash']
+ vivify_247:
+ set $P549, $P548["xblock"]
+ unless_null $P549, vivify_248
+ new $P549, "Undef"
+ vivify_248:
+ if $P549, if_547
+.annotate 'line', 186
+ get_hll_global $P556, ["PAST"], "Op"
+ find_lex $P557, "$/"
+ unless_null $P557, vivify_249
+ $P557 = root_new ['parrot';'Hash']
vivify_249:
- set $P555, $P554["xblock"]
- unless_null $P555, vivify_250
- new $P555, "Undef"
+ set $P558, $P557["EXPR"]
+ unless_null $P558, vivify_250
+ new $P558, "Undef"
vivify_250:
- $P556 = $P555."ast"()
- store_lex "$past", $P556
-.annotate 'line', 184
- find_lex $P557, "$past"
- $P557."pasttype"("for")
-.annotate 'line', 185
- find_lex $P558, "$past"
- unless_null $P558, vivify_251
- $P558 = root_new ['parrot';'ResizablePMCArray']
+ $P559 = $P558."ast"()
+ find_lex $P560, "$/"
+ unless_null $P560, vivify_251
+ $P560 = root_new ['parrot';'Hash']
vivify_251:
- set $P559, $P558[1]
- unless_null $P559, vivify_252
- new $P559, "Undef"
+ set $P561, $P560["pblock"]
+ unless_null $P561, vivify_252
+ new $P561, "Undef"
vivify_252:
- store_lex "$block", $P559
-.annotate 'line', 186
- find_lex $P561, "$block"
- $P562 = $P561."arity"()
- if $P562, unless_560_end
-.annotate 'line', 187
- find_lex $P563, "$block"
- unless_null $P563, vivify_253
- $P563 = root_new ['parrot';'ResizablePMCArray']
+ $P562 = $P561."ast"()
+ $P563 = "block_immediate"($P562)
+ find_lex $P564, "$pasttype"
+ find_lex $P565, "$/"
+ $P566 = $P556."new"($P559, $P563, $P564 :named("pasttype"), $P565 :named("node"))
+ store_lex "$past", $P566
+.annotate 'line', 185
+ goto if_547_end
+ if_547:
+.annotate 'line', 182
+ find_lex $P550, "$/"
+ unless_null $P550, vivify_253
+ $P550 = root_new ['parrot';'Hash']
vivify_253:
- set $P564, $P563[0]
- unless_null $P564, vivify_254
- new $P564, "Undef"
+ set $P551, $P550["xblock"]
+ unless_null $P551, vivify_254
+ new $P551, "Undef"
vivify_254:
- get_hll_global $P565, ["PAST"], "Var"
- $P566 = $P565."new"("$_" :named("name"), "parameter" :named("scope"))
- $P564."push"($P566)
-.annotate 'line', 188
- find_lex $P567, "$block"
- $P567."symbol"("$_", "lexical" :named("scope"))
+ $P552 = $P551."ast"()
+ $P553 = "xblock_immediate"($P552)
+ store_lex "$past", $P553
+.annotate 'line', 183
+ find_lex $P554, "$past"
+ find_lex $P555, "$pasttype"
+ $P554."pasttype"($P555)
+ if_547_end:
.annotate 'line', 189
- find_lex $P568, "$block"
- $P568."arity"(1)
- unless_560_end:
-.annotate 'line', 191
- find_lex $P569, "$block"
- $P569."blocktype"("immediate")
-.annotate 'line', 192
- find_lex $P570, "$/"
- find_lex $P571, "$past"
- $P572 = $P570."!make"($P571)
-.annotate 'line', 182
- .return ($P572)
- control_549:
+ find_lex $P567, "$/"
+ find_lex $P568, "$past"
+ $P569 = $P567."!make"($P568)
+.annotate 'line', 178
+ .return ($P569)
+ control_536:
.local pmc exception
.get_results (exception)
- getattribute $P573, exception, "payload"
- .return ($P573)
+ getattribute $P570, exception, "payload"
+ .return ($P570)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_control:sym<return>" :subid("39_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_577
-.annotate 'line', 195
- new $P576, 'ExceptionHandler'
- set_addr $P576, control_575
- $P576."handle_types"(.CONTROL_RETURN)
- push_eh $P576
+.sub "statement_control:sym<for>" :subid("38_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_574
+.annotate 'line', 192
+ new $P573, 'ExceptionHandler'
+ set_addr $P573, control_572
+ $P573."handle_types"(.CONTROL_RETURN)
+ push_eh $P573
.lex "self", self
- .lex "$/", param_577
-.annotate 'line', 196
- find_lex $P578, "$/"
- get_hll_global $P579, ["PAST"], "Op"
- find_lex $P580, "$/"
- unless_null $P580, vivify_255
- $P580 = root_new ['parrot';'Hash']
+ .lex "$/", param_574
+.annotate 'line', 193
+ new $P575, "Undef"
+ .lex "$past", $P575
+.annotate 'line', 195
+ new $P576, "Undef"
+ .lex "$block", $P576
+.annotate 'line', 193
+ find_lex $P577, "$/"
+ unless_null $P577, vivify_255
+ $P577 = root_new ['parrot';'Hash']
vivify_255:
- set $P581, $P580["EXPR"]
- unless_null $P581, vivify_256
- new $P581, "Undef"
+ set $P578, $P577["xblock"]
+ unless_null $P578, vivify_256
+ new $P578, "Undef"
vivify_256:
- $P582 = $P581."ast"()
- find_lex $P583, "$/"
- $P584 = $P579."new"($P582, "return" :named("pasttype"), $P583 :named("node"))
- $P585 = $P578."!make"($P584)
+ $P579 = $P578."ast"()
+ store_lex "$past", $P579
+.annotate 'line', 194
+ find_lex $P580, "$past"
+ $P580."pasttype"("for")
.annotate 'line', 195
- .return ($P585)
- control_575:
+ find_lex $P581, "$past"
+ unless_null $P581, vivify_257
+ $P581 = root_new ['parrot';'ResizablePMCArray']
+ vivify_257:
+ set $P582, $P581[1]
+ unless_null $P582, vivify_258
+ new $P582, "Undef"
+ vivify_258:
+ store_lex "$block", $P582
+.annotate 'line', 196
+ find_lex $P584, "$block"
+ $P585 = $P584."arity"()
+ if $P585, unless_583_end
+.annotate 'line', 197
+ find_lex $P586, "$block"
+ unless_null $P586, vivify_259
+ $P586 = root_new ['parrot';'ResizablePMCArray']
+ vivify_259:
+ set $P587, $P586[0]
+ unless_null $P587, vivify_260
+ new $P587, "Undef"
+ vivify_260:
+ get_hll_global $P588, ["PAST"], "Var"
+ $P589 = $P588."new"("$_" :named("name"), "parameter" :named("scope"))
+ $P587."push"($P589)
+.annotate 'line', 198
+ find_lex $P590, "$block"
+ $P590."symbol"("$_", "lexical" :named("scope"))
+.annotate 'line', 199
+ find_lex $P591, "$block"
+ $P591."arity"(1)
+ unless_583_end:
+.annotate 'line', 201
+ find_lex $P592, "$block"
+ $P592."blocktype"("immediate")
+.annotate 'line', 202
+ find_lex $P593, "$/"
+ find_lex $P594, "$past"
+ $P595 = $P593."!make"($P594)
+.annotate 'line', 192
+ .return ($P595)
+ control_572:
.local pmc exception
.get_results (exception)
- getattribute $P586, exception, "payload"
- .return ($P586)
+ getattribute $P596, exception, "payload"
+ .return ($P596)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_control:sym<CATCH>" :subid("40_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_590
-.annotate 'line', 199
- new $P589, 'ExceptionHandler'
- set_addr $P589, control_588
- $P589."handle_types"(.CONTROL_RETURN)
- push_eh $P589
- .lex "self", self
- .lex "$/", param_590
-.annotate 'line', 200
- new $P591, "Undef"
- .lex "$block", $P591
- find_lex $P592, "$/"
- unless_null $P592, vivify_257
- $P592 = root_new ['parrot';'Hash']
- vivify_257:
- set $P593, $P592["block"]
- unless_null $P593, vivify_258
- new $P593, "Undef"
- vivify_258:
- $P594 = $P593."ast"()
- store_lex "$block", $P594
-.annotate 'line', 201
- find_lex $P595, "$/"
- find_lex $P596, "$block"
- "push_block_handler"($P595, $P596)
-.annotate 'line', 202
- get_global $P597, "@BLOCK"
- unless_null $P597, vivify_259
- $P597 = root_new ['parrot';'ResizablePMCArray']
- vivify_259:
- set $P598, $P597[0]
- unless_null $P598, vivify_260
- new $P598, "Undef"
- vivify_260:
- $P599 = $P598."handlers"()
- set $P600, $P599[0]
- unless_null $P600, vivify_261
- new $P600, "Undef"
- vivify_261:
- $P600."handle_types_except"("CONTROL")
-.annotate 'line', 203
+.sub "statement_control:sym<return>" :subid("39_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_600
+.annotate 'line', 205
+ new $P599, 'ExceptionHandler'
+ set_addr $P599, control_598
+ $P599."handle_types"(.CONTROL_RETURN)
+ push_eh $P599
+ .lex "self", self
+ .lex "$/", param_600
+.annotate 'line', 206
find_lex $P601, "$/"
- get_hll_global $P602, ["PAST"], "Stmts"
+ get_hll_global $P602, ["PAST"], "Op"
find_lex $P603, "$/"
- $P604 = $P602."new"($P603 :named("node"))
- $P605 = $P601."!make"($P604)
-.annotate 'line', 199
- .return ($P605)
- control_588:
+ unless_null $P603, vivify_261
+ $P603 = root_new ['parrot';'Hash']
+ vivify_261:
+ set $P604, $P603["EXPR"]
+ unless_null $P604, vivify_262
+ new $P604, "Undef"
+ vivify_262:
+ $P605 = $P604."ast"()
+ find_lex $P606, "$/"
+ $P607 = $P602."new"($P605, "return" :named("pasttype"), $P606 :named("node"))
+ $P608 = $P601."!make"($P607)
+.annotate 'line', 205
+ .return ($P608)
+ control_598:
.local pmc exception
.get_results (exception)
- getattribute $P606, exception, "payload"
- .return ($P606)
+ getattribute $P609, exception, "payload"
+ .return ($P609)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_control:sym<CONTROL>" :subid("41_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_610
-.annotate 'line', 206
- new $P609, 'ExceptionHandler'
- set_addr $P609, control_608
- $P609."handle_types"(.CONTROL_RETURN)
- push_eh $P609
+.sub "statement_control:sym<CATCH>" :subid("40_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_613
+.annotate 'line', 209
+ new $P612, 'ExceptionHandler'
+ set_addr $P612, control_611
+ $P612."handle_types"(.CONTROL_RETURN)
+ push_eh $P612
.lex "self", self
- .lex "$/", param_610
-.annotate 'line', 207
- new $P611, "Undef"
- .lex "$block", $P611
- find_lex $P612, "$/"
- unless_null $P612, vivify_262
- $P612 = root_new ['parrot';'Hash']
- vivify_262:
- set $P613, $P612["block"]
- unless_null $P613, vivify_263
- new $P613, "Undef"
- vivify_263:
- $P614 = $P613."ast"()
- store_lex "$block", $P614
-.annotate 'line', 208
+ .lex "$/", param_613
+.annotate 'line', 210
+ new $P614, "Undef"
+ .lex "$block", $P614
find_lex $P615, "$/"
- find_lex $P616, "$block"
- "push_block_handler"($P615, $P616)
-.annotate 'line', 209
- get_global $P617, "@BLOCK"
- unless_null $P617, vivify_264
- $P617 = root_new ['parrot';'ResizablePMCArray']
+ unless_null $P615, vivify_263
+ $P615 = root_new ['parrot';'Hash']
+ vivify_263:
+ set $P616, $P615["block"]
+ unless_null $P616, vivify_264
+ new $P616, "Undef"
vivify_264:
- set $P618, $P617[0]
- unless_null $P618, vivify_265
- new $P618, "Undef"
+ $P617 = $P616."ast"()
+ store_lex "$block", $P617
+.annotate 'line', 211
+ find_lex $P618, "$/"
+ find_lex $P619, "$block"
+ "push_block_handler"($P618, $P619)
+.annotate 'line', 212
+ get_global $P620, "@BLOCK"
+ unless_null $P620, vivify_265
+ $P620 = root_new ['parrot';'ResizablePMCArray']
vivify_265:
- $P619 = $P618."handlers"()
- set $P620, $P619[0]
- unless_null $P620, vivify_266
- new $P620, "Undef"
+ set $P621, $P620[0]
+ unless_null $P621, vivify_266
+ new $P621, "Undef"
vivify_266:
- $P620."handle_types"("CONTROL")
-.annotate 'line', 210
- find_lex $P621, "$/"
- get_hll_global $P622, ["PAST"], "Stmts"
- find_lex $P623, "$/"
- $P624 = $P622."new"($P623 :named("node"))
- $P625 = $P621."!make"($P624)
-.annotate 'line', 206
- .return ($P625)
- control_608:
+ $P622 = $P621."handlers"()
+ set $P623, $P622[0]
+ unless_null $P623, vivify_267
+ new $P623, "Undef"
+ vivify_267:
+ $P623."handle_types_except"("CONTROL")
+.annotate 'line', 213
+ find_lex $P624, "$/"
+ get_hll_global $P625, ["PAST"], "Stmts"
+ find_lex $P626, "$/"
+ $P627 = $P625."new"($P626 :named("node"))
+ $P628 = $P624."!make"($P627)
+.annotate 'line', 209
+ .return ($P628)
+ control_611:
.local pmc exception
.get_results (exception)
- getattribute $P626, exception, "payload"
- .return ($P626)
+ getattribute $P629, exception, "payload"
+ .return ($P629)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_prefix:sym<INIT>" :subid("42_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_631
-.annotate 'line', 250
- new $P630, 'ExceptionHandler'
- set_addr $P630, control_629
- $P630."handle_types"(.CONTROL_RETURN)
- push_eh $P630
+.sub "statement_control:sym<CONTROL>" :subid("41_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_633
+.annotate 'line', 216
+ new $P632, 'ExceptionHandler'
+ set_addr $P632, control_631
+ $P632."handle_types"(.CONTROL_RETURN)
+ push_eh $P632
.lex "self", self
- .lex "$/", param_631
-.annotate 'line', 251
- get_global $P632, "@BLOCK"
- unless_null $P632, vivify_267
- $P632 = root_new ['parrot';'ResizablePMCArray']
- vivify_267:
- set $P633, $P632[0]
- unless_null $P633, vivify_268
- new $P633, "Undef"
- vivify_268:
- $P634 = $P633."loadinit"()
+ .lex "$/", param_633
+.annotate 'line', 217
+ new $P634, "Undef"
+ .lex "$block", $P634
find_lex $P635, "$/"
- unless_null $P635, vivify_269
+ unless_null $P635, vivify_268
$P635 = root_new ['parrot';'Hash']
- vivify_269:
- set $P636, $P635["blorst"]
- unless_null $P636, vivify_270
+ vivify_268:
+ set $P636, $P635["block"]
+ unless_null $P636, vivify_269
new $P636, "Undef"
- vivify_270:
+ vivify_269:
$P637 = $P636."ast"()
- $P634."push"($P637)
-.annotate 'line', 252
+ store_lex "$block", $P637
+.annotate 'line', 218
find_lex $P638, "$/"
- get_hll_global $P639, ["PAST"], "Stmts"
- find_lex $P640, "$/"
- $P641 = $P639."new"($P640 :named("node"))
- $P642 = $P638."!make"($P641)
-.annotate 'line', 250
- .return ($P642)
- control_629:
- .local pmc exception
- .get_results (exception)
- getattribute $P643, exception, "payload"
- .return ($P643)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "statement_prefix:sym<try>" :subid("43_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_647
-.annotate 'line', 255
- new $P646, 'ExceptionHandler'
- set_addr $P646, control_645
- $P646."handle_types"(.CONTROL_RETURN)
- push_eh $P646
- .lex "self", self
- .lex "$/", param_647
-.annotate 'line', 256
- new $P648, "Undef"
- .lex "$past", $P648
- find_lex $P649, "$/"
- unless_null $P649, vivify_271
- $P649 = root_new ['parrot';'Hash']
+ find_lex $P639, "$block"
+ "push_block_handler"($P638, $P639)
+.annotate 'line', 219
+ get_global $P640, "@BLOCK"
+ unless_null $P640, vivify_270
+ $P640 = root_new ['parrot';'ResizablePMCArray']
+ vivify_270:
+ set $P641, $P640[0]
+ unless_null $P641, vivify_271
+ new $P641, "Undef"
vivify_271:
- set $P650, $P649["blorst"]
- unless_null $P650, vivify_272
- new $P650, "Undef"
+ $P642 = $P641."handlers"()
+ set $P643, $P642[0]
+ unless_null $P643, vivify_272
+ new $P643, "Undef"
vivify_272:
- $P651 = $P650."ast"()
- store_lex "$past", $P651
-.annotate 'line', 257
- find_lex $P653, "$past"
- $S654 = $P653."WHAT"()
- isne $I655, $S654, "PAST::Block()"
- unless $I655, if_652_end
-.annotate 'line', 258
- get_hll_global $P656, ["PAST"], "Block"
- find_lex $P657, "$past"
- find_lex $P658, "$/"
- $P659 = $P656."new"($P657, "immediate" :named("blocktype"), $P658 :named("node"))
- store_lex "$past", $P659
- if_652_end:
-.annotate 'line', 260
- find_lex $P661, "$past"
- $P662 = $P661."handlers"()
- if $P662, unless_660_end
-.annotate 'line', 261
- find_lex $P663, "$past"
- get_hll_global $P664, ["PAST"], "Control"
-.annotate 'line', 263
- get_hll_global $P665, ["PAST"], "Stmts"
-.annotate 'line', 264
- get_hll_global $P666, ["PAST"], "Op"
-.annotate 'line', 265
- get_hll_global $P667, ["PAST"], "Var"
-.annotate 'line', 266
- get_hll_global $P668, ["PAST"], "Var"
- $P669 = $P668."new"("register" :named("scope"), "exception" :named("name"))
- $P670 = $P667."new"($P669, "handled", "keyed" :named("scope"))
-.annotate 'line', 265
- $P671 = $P666."new"($P670, 1, "bind" :named("pasttype"))
-.annotate 'line', 264
- $P672 = $P665."new"($P671)
-.annotate 'line', 263
- $P673 = $P664."new"($P672, "CONTROL" :named("handle_types_except"))
-.annotate 'line', 261
- new $P674, "ResizablePMCArray"
- push $P674, $P673
- $P663."handlers"($P674)
- unless_660_end:
-.annotate 'line', 275
- find_lex $P675, "$/"
- find_lex $P676, "$past"
- $P677 = $P675."!make"($P676)
-.annotate 'line', 255
- .return ($P677)
- control_645:
+ $P643."handle_types"("CONTROL")
+.annotate 'line', 220
+ find_lex $P644, "$/"
+ get_hll_global $P645, ["PAST"], "Stmts"
+ find_lex $P646, "$/"
+ $P647 = $P645."new"($P646 :named("node"))
+ $P648 = $P644."!make"($P647)
+.annotate 'line', 216
+ .return ($P648)
+ control_631:
.local pmc exception
.get_results (exception)
- getattribute $P678, exception, "payload"
- .return ($P678)
+ getattribute $P649, exception, "payload"
+ .return ($P649)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "blorst" :subid("44_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_682
-.annotate 'line', 278
- new $P681, 'ExceptionHandler'
- set_addr $P681, control_680
- $P681."handle_types"(.CONTROL_RETURN)
- push_eh $P681
+.sub "statement_prefix:sym<INIT>" :subid("42_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_654
+.annotate 'line', 260
+ new $P653, 'ExceptionHandler'
+ set_addr $P653, control_652
+ $P653."handle_types"(.CONTROL_RETURN)
+ push_eh $P653
.lex "self", self
- .lex "$/", param_682
-.annotate 'line', 279
- find_lex $P683, "$/"
-.annotate 'line', 280
- find_lex $P686, "$/"
- unless_null $P686, vivify_273
- $P686 = root_new ['parrot';'Hash']
+ .lex "$/", param_654
+.annotate 'line', 261
+ get_global $P655, "@BLOCK"
+ unless_null $P655, vivify_273
+ $P655 = root_new ['parrot';'ResizablePMCArray']
vivify_273:
- set $P687, $P686["block"]
- unless_null $P687, vivify_274
- new $P687, "Undef"
+ set $P656, $P655[0]
+ unless_null $P656, vivify_274
+ new $P656, "Undef"
vivify_274:
- if $P687, if_685
-.annotate 'line', 281
- find_lex $P692, "$/"
- unless_null $P692, vivify_275
- $P692 = root_new ['parrot';'Hash']
+ $P657 = $P656."loadinit"()
+ find_lex $P658, "$/"
+ unless_null $P658, vivify_275
+ $P658 = root_new ['parrot';'Hash']
vivify_275:
- set $P693, $P692["statement"]
- unless_null $P693, vivify_276
- new $P693, "Undef"
+ set $P659, $P658["blorst"]
+ unless_null $P659, vivify_276
+ new $P659, "Undef"
vivify_276:
- $P694 = $P693."ast"()
- set $P684, $P694
-.annotate 'line', 280
- goto if_685_end
- if_685:
- find_lex $P688, "$/"
- unless_null $P688, vivify_277
- $P688 = root_new ['parrot';'Hash']
- vivify_277:
- set $P689, $P688["block"]
- unless_null $P689, vivify_278
- new $P689, "Undef"
- vivify_278:
- $P690 = $P689."ast"()
- $P691 = "block_immediate"($P690)
- set $P684, $P691
- if_685_end:
- $P695 = $P683."!make"($P684)
-.annotate 'line', 278
- .return ($P695)
- control_680:
+ $P660 = $P659."ast"()
+ $P657."push"($P660)
+.annotate 'line', 262
+ find_lex $P661, "$/"
+ get_hll_global $P662, ["PAST"], "Stmts"
+ find_lex $P663, "$/"
+ $P664 = $P662."new"($P663 :named("node"))
+ $P665 = $P661."!make"($P664)
+.annotate 'line', 260
+ .return ($P665)
+ control_652:
.local pmc exception
.get_results (exception)
- getattribute $P696, exception, "payload"
- .return ($P696)
+ getattribute $P666, exception, "payload"
+ .return ($P666)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_mod_cond:sym<if>" :subid("45_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_700
-.annotate 'line', 286
- new $P699, 'ExceptionHandler'
- set_addr $P699, control_698
- $P699."handle_types"(.CONTROL_RETURN)
- push_eh $P699
- .lex "self", self
- .lex "$/", param_700
- find_lex $P701, "$/"
- find_lex $P702, "$/"
- unless_null $P702, vivify_279
- $P702 = root_new ['parrot';'Hash']
- vivify_279:
- set $P703, $P702["cond"]
- unless_null $P703, vivify_280
- new $P703, "Undef"
- vivify_280:
- $P704 = $P703."ast"()
- $P705 = $P701."!make"($P704)
- .return ($P705)
- control_698:
+.sub "statement_prefix:sym<try>" :subid("43_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_670
+.annotate 'line', 265
+ new $P669, 'ExceptionHandler'
+ set_addr $P669, control_668
+ $P669."handle_types"(.CONTROL_RETURN)
+ push_eh $P669
+ .lex "self", self
+ .lex "$/", param_670
+.annotate 'line', 266
+ new $P671, "Undef"
+ .lex "$past", $P671
+ find_lex $P672, "$/"
+ unless_null $P672, vivify_277
+ $P672 = root_new ['parrot';'Hash']
+ vivify_277:
+ set $P673, $P672["blorst"]
+ unless_null $P673, vivify_278
+ new $P673, "Undef"
+ vivify_278:
+ $P674 = $P673."ast"()
+ store_lex "$past", $P674
+.annotate 'line', 267
+ find_lex $P676, "$past"
+ $S677 = $P676."WHAT"()
+ isne $I678, $S677, "PAST::Block()"
+ unless $I678, if_675_end
+.annotate 'line', 268
+ get_hll_global $P679, ["PAST"], "Block"
+ find_lex $P680, "$past"
+ find_lex $P681, "$/"
+ $P682 = $P679."new"($P680, "immediate" :named("blocktype"), $P681 :named("node"))
+ store_lex "$past", $P682
+ if_675_end:
+.annotate 'line', 270
+ find_lex $P684, "$past"
+ $P685 = $P684."handlers"()
+ if $P685, unless_683_end
+.annotate 'line', 271
+ find_lex $P686, "$past"
+ get_hll_global $P687, ["PAST"], "Control"
+.annotate 'line', 273
+ get_hll_global $P688, ["PAST"], "Stmts"
+.annotate 'line', 274
+ get_hll_global $P689, ["PAST"], "Op"
+.annotate 'line', 275
+ get_hll_global $P690, ["PAST"], "Var"
+.annotate 'line', 276
+ get_hll_global $P691, ["PAST"], "Var"
+ $P692 = $P691."new"("register" :named("scope"), "exception" :named("name"))
+ $P693 = $P690."new"($P692, "handled", "keyed" :named("scope"))
+.annotate 'line', 275
+ $P694 = $P689."new"($P693, 1, "bind" :named("pasttype"))
+.annotate 'line', 274
+ $P695 = $P688."new"($P694)
+.annotate 'line', 273
+ $P696 = $P687."new"($P695, "CONTROL" :named("handle_types_except"))
+.annotate 'line', 271
+ new $P697, "ResizablePMCArray"
+ push $P697, $P696
+ $P686."handlers"($P697)
+ unless_683_end:
+.annotate 'line', 285
+ find_lex $P698, "$/"
+ find_lex $P699, "$past"
+ $P700 = $P698."!make"($P699)
+.annotate 'line', 265
+ .return ($P700)
+ control_668:
.local pmc exception
.get_results (exception)
- getattribute $P706, exception, "payload"
- .return ($P706)
+ getattribute $P701, exception, "payload"
+ .return ($P701)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_mod_cond:sym<unless>" :subid("46_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_710
-.annotate 'line', 287
- new $P709, 'ExceptionHandler'
- set_addr $P709, control_708
- $P709."handle_types"(.CONTROL_RETURN)
- push_eh $P709
+.sub "blorst" :subid("44_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_705
+.annotate 'line', 288
+ new $P704, 'ExceptionHandler'
+ set_addr $P704, control_703
+ $P704."handle_types"(.CONTROL_RETURN)
+ push_eh $P704
.lex "self", self
- .lex "$/", param_710
- find_lex $P711, "$/"
- find_lex $P712, "$/"
- unless_null $P712, vivify_281
- $P712 = root_new ['parrot';'Hash']
+ .lex "$/", param_705
+.annotate 'line', 289
+ find_lex $P706, "$/"
+.annotate 'line', 290
+ find_lex $P709, "$/"
+ unless_null $P709, vivify_279
+ $P709 = root_new ['parrot';'Hash']
+ vivify_279:
+ set $P710, $P709["block"]
+ unless_null $P710, vivify_280
+ new $P710, "Undef"
+ vivify_280:
+ if $P710, if_708
+.annotate 'line', 291
+ find_lex $P715, "$/"
+ unless_null $P715, vivify_281
+ $P715 = root_new ['parrot';'Hash']
vivify_281:
- set $P713, $P712["cond"]
- unless_null $P713, vivify_282
- new $P713, "Undef"
+ set $P716, $P715["statement"]
+ unless_null $P716, vivify_282
+ new $P716, "Undef"
vivify_282:
- $P714 = $P713."ast"()
- $P715 = $P711."!make"($P714)
- .return ($P715)
- control_708:
- .local pmc exception
- .get_results (exception)
- getattribute $P716, exception, "payload"
- .return ($P716)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "statement_mod_loop:sym<while>" :subid("47_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_720
-.annotate 'line', 289
- new $P719, 'ExceptionHandler'
- set_addr $P719, control_718
- $P719."handle_types"(.CONTROL_RETURN)
- push_eh $P719
- .lex "self", self
- .lex "$/", param_720
- find_lex $P721, "$/"
- find_lex $P722, "$/"
- unless_null $P722, vivify_283
- $P722 = root_new ['parrot';'Hash']
+ $P717 = $P716."ast"()
+ set $P707, $P717
+.annotate 'line', 290
+ goto if_708_end
+ if_708:
+ find_lex $P711, "$/"
+ unless_null $P711, vivify_283
+ $P711 = root_new ['parrot';'Hash']
vivify_283:
- set $P723, $P722["cond"]
- unless_null $P723, vivify_284
- new $P723, "Undef"
+ set $P712, $P711["block"]
+ unless_null $P712, vivify_284
+ new $P712, "Undef"
vivify_284:
- $P724 = $P723."ast"()
- $P725 = $P721."!make"($P724)
- .return ($P725)
- control_718:
+ $P713 = $P712."ast"()
+ $P714 = "block_immediate"($P713)
+ set $P707, $P714
+ if_708_end:
+ $P718 = $P706."!make"($P707)
+.annotate 'line', 288
+ .return ($P718)
+ control_703:
.local pmc exception
.get_results (exception)
- getattribute $P726, exception, "payload"
- .return ($P726)
+ getattribute $P719, exception, "payload"
+ .return ($P719)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "statement_mod_loop:sym<until>" :subid("48_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_730
-.annotate 'line', 290
- new $P729, 'ExceptionHandler'
- set_addr $P729, control_728
- $P729."handle_types"(.CONTROL_RETURN)
- push_eh $P729
- .lex "self", self
- .lex "$/", param_730
- find_lex $P731, "$/"
- find_lex $P732, "$/"
- unless_null $P732, vivify_285
- $P732 = root_new ['parrot';'Hash']
+.sub "statement_mod_cond:sym<if>" :subid("45_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_723
+.annotate 'line', 296
+ new $P722, 'ExceptionHandler'
+ set_addr $P722, control_721
+ $P722."handle_types"(.CONTROL_RETURN)
+ push_eh $P722
+ .lex "self", self
+ .lex "$/", param_723
+ find_lex $P724, "$/"
+ find_lex $P725, "$/"
+ unless_null $P725, vivify_285
+ $P725 = root_new ['parrot';'Hash']
vivify_285:
- set $P733, $P732["cond"]
- unless_null $P733, vivify_286
- new $P733, "Undef"
+ set $P726, $P725["cond"]
+ unless_null $P726, vivify_286
+ new $P726, "Undef"
vivify_286:
- $P734 = $P733."ast"()
- $P735 = $P731."!make"($P734)
- .return ($P735)
- control_728:
+ $P727 = $P726."ast"()
+ $P728 = $P724."!make"($P727)
+ .return ($P728)
+ control_721:
.local pmc exception
.get_results (exception)
- getattribute $P736, exception, "payload"
- .return ($P736)
+ getattribute $P729, exception, "payload"
+ .return ($P729)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<fatarrow>" :subid("49_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_740
-.annotate 'line', 294
- new $P739, 'ExceptionHandler'
- set_addr $P739, control_738
- $P739."handle_types"(.CONTROL_RETURN)
- push_eh $P739
- .lex "self", self
- .lex "$/", param_740
- find_lex $P741, "$/"
- find_lex $P742, "$/"
- unless_null $P742, vivify_287
- $P742 = root_new ['parrot';'Hash']
+.sub "statement_mod_cond:sym<unless>" :subid("46_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_733
+.annotate 'line', 297
+ new $P732, 'ExceptionHandler'
+ set_addr $P732, control_731
+ $P732."handle_types"(.CONTROL_RETURN)
+ push_eh $P732
+ .lex "self", self
+ .lex "$/", param_733
+ find_lex $P734, "$/"
+ find_lex $P735, "$/"
+ unless_null $P735, vivify_287
+ $P735 = root_new ['parrot';'Hash']
vivify_287:
- set $P743, $P742["fatarrow"]
- unless_null $P743, vivify_288
- new $P743, "Undef"
+ set $P736, $P735["cond"]
+ unless_null $P736, vivify_288
+ new $P736, "Undef"
vivify_288:
- $P744 = $P743."ast"()
- $P745 = $P741."!make"($P744)
- .return ($P745)
- control_738:
+ $P737 = $P736."ast"()
+ $P738 = $P734."!make"($P737)
+ .return ($P738)
+ control_731:
.local pmc exception
.get_results (exception)
- getattribute $P746, exception, "payload"
- .return ($P746)
+ getattribute $P739, exception, "payload"
+ .return ($P739)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<colonpair>" :subid("50_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_750
-.annotate 'line', 295
- new $P749, 'ExceptionHandler'
- set_addr $P749, control_748
- $P749."handle_types"(.CONTROL_RETURN)
- push_eh $P749
- .lex "self", self
- .lex "$/", param_750
- find_lex $P751, "$/"
- find_lex $P752, "$/"
- unless_null $P752, vivify_289
- $P752 = root_new ['parrot';'Hash']
+.sub "statement_mod_loop:sym<while>" :subid("47_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_743
+.annotate 'line', 299
+ new $P742, 'ExceptionHandler'
+ set_addr $P742, control_741
+ $P742."handle_types"(.CONTROL_RETURN)
+ push_eh $P742
+ .lex "self", self
+ .lex "$/", param_743
+ find_lex $P744, "$/"
+ find_lex $P745, "$/"
+ unless_null $P745, vivify_289
+ $P745 = root_new ['parrot';'Hash']
vivify_289:
- set $P753, $P752["colonpair"]
- unless_null $P753, vivify_290
- new $P753, "Undef"
+ set $P746, $P745["cond"]
+ unless_null $P746, vivify_290
+ new $P746, "Undef"
vivify_290:
- $P754 = $P753."ast"()
- $P755 = $P751."!make"($P754)
- .return ($P755)
- control_748:
+ $P747 = $P746."ast"()
+ $P748 = $P744."!make"($P747)
+ .return ($P748)
+ control_741:
.local pmc exception
.get_results (exception)
- getattribute $P756, exception, "payload"
- .return ($P756)
+ getattribute $P749, exception, "payload"
+ .return ($P749)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<variable>" :subid("51_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_760
-.annotate 'line', 296
- new $P759, 'ExceptionHandler'
- set_addr $P759, control_758
- $P759."handle_types"(.CONTROL_RETURN)
- push_eh $P759
- .lex "self", self
- .lex "$/", param_760
- find_lex $P761, "$/"
- find_lex $P762, "$/"
- unless_null $P762, vivify_291
- $P762 = root_new ['parrot';'Hash']
+.sub "statement_mod_loop:sym<until>" :subid("48_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_753
+.annotate 'line', 300
+ new $P752, 'ExceptionHandler'
+ set_addr $P752, control_751
+ $P752."handle_types"(.CONTROL_RETURN)
+ push_eh $P752
+ .lex "self", self
+ .lex "$/", param_753
+ find_lex $P754, "$/"
+ find_lex $P755, "$/"
+ unless_null $P755, vivify_291
+ $P755 = root_new ['parrot';'Hash']
vivify_291:
- set $P763, $P762["variable"]
- unless_null $P763, vivify_292
- new $P763, "Undef"
+ set $P756, $P755["cond"]
+ unless_null $P756, vivify_292
+ new $P756, "Undef"
vivify_292:
- $P764 = $P763."ast"()
- $P765 = $P761."!make"($P764)
- .return ($P765)
- control_758:
+ $P757 = $P756."ast"()
+ $P758 = $P754."!make"($P757)
+ .return ($P758)
+ control_751:
.local pmc exception
.get_results (exception)
- getattribute $P766, exception, "payload"
- .return ($P766)
+ getattribute $P759, exception, "payload"
+ .return ($P759)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<package_declarator>" :subid("52_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_770
-.annotate 'line', 297
- new $P769, 'ExceptionHandler'
- set_addr $P769, control_768
- $P769."handle_types"(.CONTROL_RETURN)
- push_eh $P769
- .lex "self", self
- .lex "$/", param_770
- find_lex $P771, "$/"
- find_lex $P772, "$/"
- unless_null $P772, vivify_293
- $P772 = root_new ['parrot';'Hash']
+.sub "term:sym<fatarrow>" :subid("49_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_763
+.annotate 'line', 304
+ new $P762, 'ExceptionHandler'
+ set_addr $P762, control_761
+ $P762."handle_types"(.CONTROL_RETURN)
+ push_eh $P762
+ .lex "self", self
+ .lex "$/", param_763
+ find_lex $P764, "$/"
+ find_lex $P765, "$/"
+ unless_null $P765, vivify_293
+ $P765 = root_new ['parrot';'Hash']
vivify_293:
- set $P773, $P772["package_declarator"]
- unless_null $P773, vivify_294
- new $P773, "Undef"
+ set $P766, $P765["fatarrow"]
+ unless_null $P766, vivify_294
+ new $P766, "Undef"
vivify_294:
- $P774 = $P773."ast"()
- $P775 = $P771."!make"($P774)
- .return ($P775)
- control_768:
+ $P767 = $P766."ast"()
+ $P768 = $P764."!make"($P767)
+ .return ($P768)
+ control_761:
.local pmc exception
.get_results (exception)
- getattribute $P776, exception, "payload"
- .return ($P776)
+ getattribute $P769, exception, "payload"
+ .return ($P769)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<scope_declarator>" :subid("53_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_780
-.annotate 'line', 298
- new $P779, 'ExceptionHandler'
- set_addr $P779, control_778
- $P779."handle_types"(.CONTROL_RETURN)
- push_eh $P779
- .lex "self", self
- .lex "$/", param_780
- find_lex $P781, "$/"
- find_lex $P782, "$/"
- unless_null $P782, vivify_295
- $P782 = root_new ['parrot';'Hash']
+.sub "term:sym<colonpair>" :subid("50_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_773
+.annotate 'line', 305
+ new $P772, 'ExceptionHandler'
+ set_addr $P772, control_771
+ $P772."handle_types"(.CONTROL_RETURN)
+ push_eh $P772
+ .lex "self", self
+ .lex "$/", param_773
+ find_lex $P774, "$/"
+ find_lex $P775, "$/"
+ unless_null $P775, vivify_295
+ $P775 = root_new ['parrot';'Hash']
vivify_295:
- set $P783, $P782["scope_declarator"]
- unless_null $P783, vivify_296
- new $P783, "Undef"
+ set $P776, $P775["colonpair"]
+ unless_null $P776, vivify_296
+ new $P776, "Undef"
vivify_296:
- $P784 = $P783."ast"()
- $P785 = $P781."!make"($P784)
- .return ($P785)
- control_778:
+ $P777 = $P776."ast"()
+ $P778 = $P774."!make"($P777)
+ .return ($P778)
+ control_771:
.local pmc exception
.get_results (exception)
- getattribute $P786, exception, "payload"
- .return ($P786)
+ getattribute $P779, exception, "payload"
+ .return ($P779)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<routine_declarator>" :subid("54_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_790
-.annotate 'line', 299
- new $P789, 'ExceptionHandler'
- set_addr $P789, control_788
- $P789."handle_types"(.CONTROL_RETURN)
- push_eh $P789
- .lex "self", self
- .lex "$/", param_790
- find_lex $P791, "$/"
- find_lex $P792, "$/"
- unless_null $P792, vivify_297
- $P792 = root_new ['parrot';'Hash']
+.sub "term:sym<variable>" :subid("51_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_783
+.annotate 'line', 306
+ new $P782, 'ExceptionHandler'
+ set_addr $P782, control_781
+ $P782."handle_types"(.CONTROL_RETURN)
+ push_eh $P782
+ .lex "self", self
+ .lex "$/", param_783
+ find_lex $P784, "$/"
+ find_lex $P785, "$/"
+ unless_null $P785, vivify_297
+ $P785 = root_new ['parrot';'Hash']
vivify_297:
- set $P793, $P792["routine_declarator"]
- unless_null $P793, vivify_298
- new $P793, "Undef"
+ set $P786, $P785["variable"]
+ unless_null $P786, vivify_298
+ new $P786, "Undef"
vivify_298:
- $P794 = $P793."ast"()
- $P795 = $P791."!make"($P794)
- .return ($P795)
- control_788:
+ $P787 = $P786."ast"()
+ $P788 = $P784."!make"($P787)
+ .return ($P788)
+ control_781:
.local pmc exception
.get_results (exception)
- getattribute $P796, exception, "payload"
- .return ($P796)
+ getattribute $P789, exception, "payload"
+ .return ($P789)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<regex_declarator>" :subid("55_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_800
-.annotate 'line', 300
- new $P799, 'ExceptionHandler'
- set_addr $P799, control_798
- $P799."handle_types"(.CONTROL_RETURN)
- push_eh $P799
- .lex "self", self
- .lex "$/", param_800
- find_lex $P801, "$/"
- find_lex $P802, "$/"
- unless_null $P802, vivify_299
- $P802 = root_new ['parrot';'Hash']
+.sub "term:sym<package_declarator>" :subid("52_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_793
+.annotate 'line', 307
+ new $P792, 'ExceptionHandler'
+ set_addr $P792, control_791
+ $P792."handle_types"(.CONTROL_RETURN)
+ push_eh $P792
+ .lex "self", self
+ .lex "$/", param_793
+ find_lex $P794, "$/"
+ find_lex $P795, "$/"
+ unless_null $P795, vivify_299
+ $P795 = root_new ['parrot';'Hash']
vivify_299:
- set $P803, $P802["regex_declarator"]
- unless_null $P803, vivify_300
- new $P803, "Undef"
+ set $P796, $P795["package_declarator"]
+ unless_null $P796, vivify_300
+ new $P796, "Undef"
vivify_300:
- $P804 = $P803."ast"()
- $P805 = $P801."!make"($P804)
- .return ($P805)
- control_798:
+ $P797 = $P796."ast"()
+ $P798 = $P794."!make"($P797)
+ .return ($P798)
+ control_791:
.local pmc exception
.get_results (exception)
- getattribute $P806, exception, "payload"
- .return ($P806)
+ getattribute $P799, exception, "payload"
+ .return ($P799)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<statement_prefix>" :subid("56_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_810
-.annotate 'line', 301
- new $P809, 'ExceptionHandler'
- set_addr $P809, control_808
- $P809."handle_types"(.CONTROL_RETURN)
- push_eh $P809
- .lex "self", self
- .lex "$/", param_810
- find_lex $P811, "$/"
- find_lex $P812, "$/"
- unless_null $P812, vivify_301
- $P812 = root_new ['parrot';'Hash']
+.sub "term:sym<scope_declarator>" :subid("53_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_803
+.annotate 'line', 308
+ new $P802, 'ExceptionHandler'
+ set_addr $P802, control_801
+ $P802."handle_types"(.CONTROL_RETURN)
+ push_eh $P802
+ .lex "self", self
+ .lex "$/", param_803
+ find_lex $P804, "$/"
+ find_lex $P805, "$/"
+ unless_null $P805, vivify_301
+ $P805 = root_new ['parrot';'Hash']
vivify_301:
- set $P813, $P812["statement_prefix"]
- unless_null $P813, vivify_302
- new $P813, "Undef"
+ set $P806, $P805["scope_declarator"]
+ unless_null $P806, vivify_302
+ new $P806, "Undef"
vivify_302:
- $P814 = $P813."ast"()
- $P815 = $P811."!make"($P814)
- .return ($P815)
- control_808:
+ $P807 = $P806."ast"()
+ $P808 = $P804."!make"($P807)
+ .return ($P808)
+ control_801:
.local pmc exception
.get_results (exception)
- getattribute $P816, exception, "payload"
- .return ($P816)
+ getattribute $P809, exception, "payload"
+ .return ($P809)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<lambda>" :subid("57_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_820
-.annotate 'line', 302
- new $P819, 'ExceptionHandler'
- set_addr $P819, control_818
- $P819."handle_types"(.CONTROL_RETURN)
- push_eh $P819
+.sub "term:sym<routine_declarator>" :subid("54_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_813
+.annotate 'line', 309
+ new $P812, 'ExceptionHandler'
+ set_addr $P812, control_811
+ $P812."handle_types"(.CONTROL_RETURN)
+ push_eh $P812
.lex "self", self
- .lex "$/", param_820
- find_lex $P821, "$/"
- find_lex $P822, "$/"
- unless_null $P822, vivify_303
- $P822 = root_new ['parrot';'Hash']
+ .lex "$/", param_813
+ find_lex $P814, "$/"
+ find_lex $P815, "$/"
+ unless_null $P815, vivify_303
+ $P815 = root_new ['parrot';'Hash']
vivify_303:
- set $P823, $P822["pblock"]
- unless_null $P823, vivify_304
- new $P823, "Undef"
+ set $P816, $P815["routine_declarator"]
+ unless_null $P816, vivify_304
+ new $P816, "Undef"
vivify_304:
- $P824 = $P823."ast"()
- $P825 = $P821."!make"($P824)
- .return ($P825)
- control_818:
+ $P817 = $P816."ast"()
+ $P818 = $P814."!make"($P817)
+ .return ($P818)
+ control_811:
.local pmc exception
.get_results (exception)
- getattribute $P826, exception, "payload"
- .return ($P826)
+ getattribute $P819, exception, "payload"
+ .return ($P819)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "fatarrow" :subid("58_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_830
-.annotate 'line', 304
- new $P829, 'ExceptionHandler'
- set_addr $P829, control_828
- $P829."handle_types"(.CONTROL_RETURN)
- push_eh $P829
- .lex "self", self
- .lex "$/", param_830
-.annotate 'line', 305
- new $P831, "Undef"
- .lex "$past", $P831
- find_lex $P832, "$/"
- unless_null $P832, vivify_305
- $P832 = root_new ['parrot';'Hash']
+.sub "term:sym<regex_declarator>" :subid("55_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_823
+.annotate 'line', 310
+ new $P822, 'ExceptionHandler'
+ set_addr $P822, control_821
+ $P822."handle_types"(.CONTROL_RETURN)
+ push_eh $P822
+ .lex "self", self
+ .lex "$/", param_823
+ find_lex $P824, "$/"
+ find_lex $P825, "$/"
+ unless_null $P825, vivify_305
+ $P825 = root_new ['parrot';'Hash']
vivify_305:
- set $P833, $P832["val"]
- unless_null $P833, vivify_306
- new $P833, "Undef"
+ set $P826, $P825["regex_declarator"]
+ unless_null $P826, vivify_306
+ new $P826, "Undef"
vivify_306:
- $P834 = $P833."ast"()
- store_lex "$past", $P834
-.annotate 'line', 306
- find_lex $P835, "$past"
- find_lex $P836, "$/"
- unless_null $P836, vivify_307
- $P836 = root_new ['parrot';'Hash']
+ $P827 = $P826."ast"()
+ $P828 = $P824."!make"($P827)
+ .return ($P828)
+ control_821:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P829, exception, "payload"
+ .return ($P829)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "term:sym<statement_prefix>" :subid("56_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_833
+.annotate 'line', 311
+ new $P832, 'ExceptionHandler'
+ set_addr $P832, control_831
+ $P832."handle_types"(.CONTROL_RETURN)
+ push_eh $P832
+ .lex "self", self
+ .lex "$/", param_833
+ find_lex $P834, "$/"
+ find_lex $P835, "$/"
+ unless_null $P835, vivify_307
+ $P835 = root_new ['parrot';'Hash']
vivify_307:
- set $P837, $P836["key"]
- unless_null $P837, vivify_308
- new $P837, "Undef"
+ set $P836, $P835["statement_prefix"]
+ unless_null $P836, vivify_308
+ new $P836, "Undef"
vivify_308:
- $P838 = $P837."Str"()
- $P835."named"($P838)
-.annotate 'line', 307
- find_lex $P839, "$/"
- find_lex $P840, "$past"
- $P841 = $P839."!make"($P840)
-.annotate 'line', 304
- .return ($P841)
- control_828:
+ $P837 = $P836."ast"()
+ $P838 = $P834."!make"($P837)
+ .return ($P838)
+ control_831:
.local pmc exception
.get_results (exception)
- getattribute $P842, exception, "payload"
- .return ($P842)
+ getattribute $P839, exception, "payload"
+ .return ($P839)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "colonpair" :subid("59_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_846
-.annotate 'line', 310
- new $P845, 'ExceptionHandler'
- set_addr $P845, control_844
- $P845."handle_types"(.CONTROL_RETURN)
- push_eh $P845
- .lex "self", self
- .lex "$/", param_846
-.annotate 'line', 311
- new $P847, "Undef"
- .lex "$past", $P847
+.sub "term:sym<lambda>" :subid("57_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_843
.annotate 'line', 312
- find_lex $P850, "$/"
- unless_null $P850, vivify_309
- $P850 = root_new ['parrot';'Hash']
+ new $P842, 'ExceptionHandler'
+ set_addr $P842, control_841
+ $P842."handle_types"(.CONTROL_RETURN)
+ push_eh $P842
+ .lex "self", self
+ .lex "$/", param_843
+ find_lex $P844, "$/"
+ find_lex $P845, "$/"
+ unless_null $P845, vivify_309
+ $P845 = root_new ['parrot';'Hash']
vivify_309:
- set $P851, $P850["circumfix"]
- unless_null $P851, vivify_310
- new $P851, "Undef"
+ set $P846, $P845["pblock"]
+ unless_null $P846, vivify_310
+ new $P846, "Undef"
vivify_310:
- if $P851, if_849
-.annotate 'line', 313
- get_hll_global $P856, ["PAST"], "Val"
- find_lex $P857, "$/"
- unless_null $P857, vivify_311
- $P857 = root_new ['parrot';'Hash']
+ $P847 = $P846."ast"()
+ $P848 = $P844."!make"($P847)
+ .return ($P848)
+ control_841:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P849, exception, "payload"
+ .return ($P849)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "fatarrow" :subid("58_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_853
+.annotate 'line', 314
+ new $P852, 'ExceptionHandler'
+ set_addr $P852, control_851
+ $P852."handle_types"(.CONTROL_RETURN)
+ push_eh $P852
+ .lex "self", self
+ .lex "$/", param_853
+.annotate 'line', 315
+ new $P854, "Undef"
+ .lex "$past", $P854
+ find_lex $P855, "$/"
+ unless_null $P855, vivify_311
+ $P855 = root_new ['parrot';'Hash']
vivify_311:
- set $P858, $P857["not"]
- unless_null $P858, vivify_312
- new $P858, "Undef"
+ set $P856, $P855["val"]
+ unless_null $P856, vivify_312
+ new $P856, "Undef"
vivify_312:
- isfalse $I859, $P858
- $P860 = $P856."new"($I859 :named("value"))
- set $P848, $P860
-.annotate 'line', 312
- goto if_849_end
- if_849:
- find_lex $P852, "$/"
- unless_null $P852, vivify_313
- $P852 = root_new ['parrot';'Hash']
+ $P857 = $P856."ast"()
+ store_lex "$past", $P857
+.annotate 'line', 316
+ find_lex $P858, "$past"
+ find_lex $P859, "$/"
+ unless_null $P859, vivify_313
+ $P859 = root_new ['parrot';'Hash']
vivify_313:
- set $P853, $P852["circumfix"]
- unless_null $P853, vivify_314
- $P853 = root_new ['parrot';'ResizablePMCArray']
+ set $P860, $P859["key"]
+ unless_null $P860, vivify_314
+ new $P860, "Undef"
vivify_314:
- set $P854, $P853[0]
- unless_null $P854, vivify_315
- new $P854, "Undef"
- vivify_315:
- $P855 = $P854."ast"()
- set $P848, $P855
- if_849_end:
- store_lex "$past", $P848
-.annotate 'line', 314
- find_lex $P861, "$past"
+ $P861 = $P860."Str"()
+ $P858."named"($P861)
+.annotate 'line', 317
find_lex $P862, "$/"
- unless_null $P862, vivify_316
- $P862 = root_new ['parrot';'Hash']
- vivify_316:
- set $P863, $P862["identifier"]
- unless_null $P863, vivify_317
- new $P863, "Undef"
- vivify_317:
- set $S864, $P863
- $P861."named"($S864)
-.annotate 'line', 315
- find_lex $P865, "$/"
- find_lex $P866, "$past"
- $P867 = $P865."!make"($P866)
-.annotate 'line', 310
- .return ($P867)
- control_844:
+ find_lex $P863, "$past"
+ $P864 = $P862."!make"($P863)
+.annotate 'line', 314
+ .return ($P864)
+ control_851:
.local pmc exception
.get_results (exception)
- getattribute $P868, exception, "payload"
- .return ($P868)
+ getattribute $P865, exception, "payload"
+ .return ($P865)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "variable" :subid("60_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_872
-.annotate 'line', 318
- .const 'Sub' $P885 = "61_1275811497.55064"
- capture_lex $P885
- new $P871, 'ExceptionHandler'
- set_addr $P871, control_870
- $P871."handle_types"(.CONTROL_RETURN)
- push_eh $P871
- .lex "self", self
- .lex "$/", param_872
-.annotate 'line', 319
- new $P873, "Undef"
- .lex "$past", $P873
-.annotate 'line', 318
- find_lex $P874, "$past"
+.sub "colonpair" :subid("59_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_869
.annotate 'line', 320
- find_lex $P876, "$/"
- unless_null $P876, vivify_318
- $P876 = root_new ['parrot';'Hash']
- vivify_318:
- set $P877, $P876["postcircumfix"]
- unless_null $P877, vivify_319
- new $P877, "Undef"
- vivify_319:
- if $P877, if_875
-.annotate 'line', 324
- .const 'Sub' $P885 = "61_1275811497.55064"
- capture_lex $P885
- $P885()
- goto if_875_end
- if_875:
+ new $P868, 'ExceptionHandler'
+ set_addr $P868, control_867
+ $P868."handle_types"(.CONTROL_RETURN)
+ push_eh $P868
+ .lex "self", self
+ .lex "$/", param_869
.annotate 'line', 321
- find_lex $P878, "$/"
- unless_null $P878, vivify_336
- $P878 = root_new ['parrot';'Hash']
- vivify_336:
- set $P879, $P878["postcircumfix"]
- unless_null $P879, vivify_337
- new $P879, "Undef"
- vivify_337:
- $P880 = $P879."ast"()
- store_lex "$past", $P880
+ new $P870, "Undef"
+ .lex "$past", $P870
.annotate 'line', 322
- find_lex $P881, "$past"
- get_hll_global $P882, ["PAST"], "Var"
- $P883 = $P882."new"("$/" :named("name"))
- $P881."unshift"($P883)
- if_875_end:
-.annotate 'line', 353
- find_lex $P954, "$/"
- find_lex $P955, "$past"
- $P956 = $P954."!make"($P955)
-.annotate 'line', 318
- .return ($P956)
- control_870:
+ find_lex $P873, "$/"
+ unless_null $P873, vivify_315
+ $P873 = root_new ['parrot';'Hash']
+ vivify_315:
+ set $P874, $P873["circumfix"]
+ unless_null $P874, vivify_316
+ new $P874, "Undef"
+ vivify_316:
+ if $P874, if_872
+.annotate 'line', 323
+ get_hll_global $P879, ["PAST"], "Val"
+ find_lex $P880, "$/"
+ unless_null $P880, vivify_317
+ $P880 = root_new ['parrot';'Hash']
+ vivify_317:
+ set $P881, $P880["not"]
+ unless_null $P881, vivify_318
+ new $P881, "Undef"
+ vivify_318:
+ isfalse $I882, $P881
+ $P883 = $P879."new"($I882 :named("value"))
+ set $P871, $P883
+.annotate 'line', 322
+ goto if_872_end
+ if_872:
+ find_lex $P875, "$/"
+ unless_null $P875, vivify_319
+ $P875 = root_new ['parrot';'Hash']
+ vivify_319:
+ set $P876, $P875["circumfix"]
+ unless_null $P876, vivify_320
+ $P876 = root_new ['parrot';'ResizablePMCArray']
+ vivify_320:
+ set $P877, $P876[0]
+ unless_null $P877, vivify_321
+ new $P877, "Undef"
+ vivify_321:
+ $P878 = $P877."ast"()
+ set $P871, $P878
+ if_872_end:
+ store_lex "$past", $P871
+.annotate 'line', 324
+ find_lex $P884, "$past"
+ find_lex $P885, "$/"
+ unless_null $P885, vivify_322
+ $P885 = root_new ['parrot';'Hash']
+ vivify_322:
+ set $P886, $P885["identifier"]
+ unless_null $P886, vivify_323
+ new $P886, "Undef"
+ vivify_323:
+ set $S887, $P886
+ $P884."named"($S887)
+.annotate 'line', 325
+ find_lex $P888, "$/"
+ find_lex $P889, "$past"
+ $P890 = $P888."!make"($P889)
+.annotate 'line', 320
+ .return ($P890)
+ control_867:
.local pmc exception
.get_results (exception)
- getattribute $P957, exception, "payload"
- .return ($P957)
+ getattribute $P891, exception, "payload"
+ .return ($P891)
.end
.namespace ["NQP";"Actions"]
-.sub "_block884" :anon :subid("61_1275811497.55064") :outer("60_1275811497.55064")
-.annotate 'line', 325
- $P886 = root_new ['parrot';'ResizablePMCArray']
- .lex "@name", $P886
- get_hll_global $P887, ["NQP"], "Compiler"
- find_lex $P888, "$/"
- set $S889, $P888
- $P890 = $P887."parse_name"($S889)
- store_lex "@name", $P890
-.annotate 'line', 326
- get_hll_global $P891, ["PAST"], "Var"
- find_lex $P892, "@name"
- $P893 = $P892."pop"()
- set $S894, $P893
- $P895 = $P891."new"($S894 :named("name"))
- store_lex "$past", $P895
-.annotate 'line', 327
- find_lex $P897, "@name"
- unless $P897, if_896_end
+.include "except_types.pasm"
+.sub "variable" :subid("60_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_895
.annotate 'line', 328
- find_lex $P899, "@name"
- unless_null $P899, vivify_320
- $P899 = root_new ['parrot';'ResizablePMCArray']
- vivify_320:
- set $P900, $P899[0]
- unless_null $P900, vivify_321
- new $P900, "Undef"
- vivify_321:
- set $S901, $P900
- iseq $I902, $S901, "GLOBAL"
- unless $I902, if_898_end
- find_lex $P903, "@name"
- $P903."shift"()
- if_898_end:
+ .const 'Sub' $P908 = "61_1280467483.70067"
+ capture_lex $P908
+ new $P894, 'ExceptionHandler'
+ set_addr $P894, control_893
+ $P894."handle_types"(.CONTROL_RETURN)
+ push_eh $P894
+ .lex "self", self
+ .lex "$/", param_895
.annotate 'line', 329
- find_lex $P904, "$past"
- find_lex $P905, "@name"
- $P904."namespace"($P905)
+ new $P896, "Undef"
+ .lex "$past", $P896
+.annotate 'line', 328
+ find_lex $P897, "$past"
.annotate 'line', 330
- find_lex $P906, "$past"
- $P906."scope"("package")
-.annotate 'line', 331
- find_lex $P907, "$past"
- find_lex $P908, "$/"
- unless_null $P908, vivify_322
- $P908 = root_new ['parrot';'Hash']
- vivify_322:
- set $P909, $P908["sigil"]
- unless_null $P909, vivify_323
- new $P909, "Undef"
- vivify_323:
- $P910 = "vivitype"($P909)
- $P907."viviself"($P910)
-.annotate 'line', 332
- find_lex $P911, "$past"
- $P911."lvalue"(1)
- if_896_end:
-.annotate 'line', 334
- find_lex $P914, "$/"
- unless_null $P914, vivify_324
- $P914 = root_new ['parrot';'Hash']
+ find_lex $P899, "$/"
+ unless_null $P899, vivify_324
+ $P899 = root_new ['parrot';'Hash']
vivify_324:
- set $P915, $P914["twigil"]
- unless_null $P915, vivify_325
- $P915 = root_new ['parrot';'ResizablePMCArray']
+ set $P900, $P899["postcircumfix"]
+ unless_null $P900, vivify_325
+ new $P900, "Undef"
vivify_325:
- set $P916, $P915[0]
- unless_null $P916, vivify_326
- new $P916, "Undef"
- vivify_326:
+ if $P900, if_898
+.annotate 'line', 334
+ .const 'Sub' $P908 = "61_1280467483.70067"
+ capture_lex $P908
+ $P908()
+ goto if_898_end
+ if_898:
+.annotate 'line', 331
+ find_lex $P901, "$/"
+ unless_null $P901, vivify_342
+ $P901 = root_new ['parrot';'Hash']
+ vivify_342:
+ set $P902, $P901["postcircumfix"]
+ unless_null $P902, vivify_343
+ new $P902, "Undef"
+ vivify_343:
+ $P903 = $P902."ast"()
+ store_lex "$past", $P903
+.annotate 'line', 332
+ find_lex $P904, "$past"
+ get_hll_global $P905, ["PAST"], "Var"
+ $P906 = $P905."new"("$/" :named("name"))
+ $P904."unshift"($P906)
+ if_898_end:
+.annotate 'line', 363
+ find_lex $P977, "$/"
+ find_lex $P978, "$past"
+ $P979 = $P977."!make"($P978)
+.annotate 'line', 328
+ .return ($P979)
+ control_893:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P980, exception, "payload"
+ .return ($P980)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block907" :anon :subid("61_1280467483.70067") :outer("60_1280467483.70067")
+.annotate 'line', 335
+ $P909 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@name", $P909
+ get_hll_global $P910, ["NQP"], "Compiler"
+ find_lex $P911, "$/"
+ set $S912, $P911
+ $P913 = $P910."parse_name"($S912)
+ store_lex "@name", $P913
+.annotate 'line', 336
+ get_hll_global $P914, ["PAST"], "Var"
+ find_lex $P915, "@name"
+ $P916 = $P915."pop"()
set $S917, $P916
- iseq $I918, $S917, "*"
- if $I918, if_913
-.annotate 'line', 347
- find_lex $P940, "$/"
- unless_null $P940, vivify_327
- $P940 = root_new ['parrot';'Hash']
+ $P918 = $P914."new"($S917 :named("name"))
+ store_lex "$past", $P918
+.annotate 'line', 337
+ find_lex $P920, "@name"
+ unless $P920, if_919_end
+.annotate 'line', 338
+ find_lex $P922, "@name"
+ unless_null $P922, vivify_326
+ $P922 = root_new ['parrot';'ResizablePMCArray']
+ vivify_326:
+ set $P923, $P922[0]
+ unless_null $P923, vivify_327
+ new $P923, "Undef"
vivify_327:
- set $P941, $P940["twigil"]
- unless_null $P941, vivify_328
- $P941 = root_new ['parrot';'ResizablePMCArray']
+ set $S924, $P923
+ iseq $I925, $S924, "GLOBAL"
+ unless $I925, if_921_end
+ find_lex $P926, "@name"
+ $P926."shift"()
+ if_921_end:
+.annotate 'line', 339
+ find_lex $P927, "$past"
+ find_lex $P928, "@name"
+ $P927."namespace"($P928)
+.annotate 'line', 340
+ find_lex $P929, "$past"
+ $P929."scope"("package")
+.annotate 'line', 341
+ find_lex $P930, "$past"
+ find_lex $P931, "$/"
+ unless_null $P931, vivify_328
+ $P931 = root_new ['parrot';'Hash']
vivify_328:
- set $P942, $P941[0]
- unless_null $P942, vivify_329
- new $P942, "Undef"
+ set $P932, $P931["sigil"]
+ unless_null $P932, vivify_329
+ new $P932, "Undef"
vivify_329:
- set $S943, $P942
- iseq $I944, $S943, "!"
- if $I944, if_939
- new $P938, 'Integer'
- set $P938, $I944
- goto if_939_end
- if_939:
-.annotate 'line', 348
- find_lex $P945, "$past"
- get_hll_global $P946, ["PAST"], "Var"
- $P947 = $P946."new"("self" :named("name"))
- $P945."push"($P947)
-.annotate 'line', 349
- find_lex $P948, "$past"
- $P948."scope"("attribute")
-.annotate 'line', 350
- find_lex $P949, "$past"
- find_lex $P950, "$/"
- unless_null $P950, vivify_330
- $P950 = root_new ['parrot';'Hash']
+ $P933 = "vivitype"($P932)
+ $P930."viviself"($P933)
+.annotate 'line', 342
+ find_lex $P934, "$past"
+ $P934."lvalue"(1)
+ if_919_end:
+.annotate 'line', 344
+ find_lex $P937, "$/"
+ unless_null $P937, vivify_330
+ $P937 = root_new ['parrot';'Hash']
vivify_330:
- set $P951, $P950["sigil"]
- unless_null $P951, vivify_331
- new $P951, "Undef"
+ set $P938, $P937["twigil"]
+ unless_null $P938, vivify_331
+ $P938 = root_new ['parrot';'ResizablePMCArray']
vivify_331:
- $P952 = "vivitype"($P951)
- $P953 = $P949."viviself"($P952)
-.annotate 'line', 347
- set $P938, $P953
- if_939_end:
- set $P912, $P938
-.annotate 'line', 334
- goto if_913_end
- if_913:
-.annotate 'line', 335
- find_lex $P919, "$past"
- $P919."scope"("contextual")
-.annotate 'line', 336
- find_lex $P920, "$past"
-.annotate 'line', 337
- get_hll_global $P921, ["PAST"], "Var"
-.annotate 'line', 339
- find_lex $P922, "$/"
- unless_null $P922, vivify_332
- $P922 = root_new ['parrot';'Hash']
+ set $P939, $P938[0]
+ unless_null $P939, vivify_332
+ new $P939, "Undef"
vivify_332:
- set $P923, $P922["sigil"]
- unless_null $P923, vivify_333
- new $P923, "Undef"
+ set $S940, $P939
+ iseq $I941, $S940, "*"
+ if $I941, if_936
+.annotate 'line', 357
+ find_lex $P963, "$/"
+ unless_null $P963, vivify_333
+ $P963 = root_new ['parrot';'Hash']
vivify_333:
- set $S924, $P923
- new $P925, 'String'
- set $P925, $S924
- find_lex $P926, "$/"
- unless_null $P926, vivify_334
- $P926 = root_new ['parrot';'Hash']
+ set $P964, $P963["twigil"]
+ unless_null $P964, vivify_334
+ $P964 = root_new ['parrot';'ResizablePMCArray']
vivify_334:
- set $P927, $P926["desigilname"]
- unless_null $P927, vivify_335
- new $P927, "Undef"
+ set $P965, $P964[0]
+ unless_null $P965, vivify_335
+ new $P965, "Undef"
vivify_335:
- concat $P928, $P925, $P927
-.annotate 'line', 341
- get_hll_global $P929, ["PAST"], "Op"
- new $P930, "String"
- assign $P930, "Contextual "
- find_lex $P931, "$/"
- set $S932, $P931
- concat $P933, $P930, $S932
- concat $P934, $P933, " not found"
- $P935 = $P929."new"($P934, "die" :named("pirop"))
- $P936 = $P921."new"("package" :named("scope"), "" :named("namespace"), $P928 :named("name"), $P935 :named("viviself"))
-.annotate 'line', 337
- $P937 = $P920."viviself"($P936)
+ set $S966, $P965
+ iseq $I967, $S966, "!"
+ if $I967, if_962
+ new $P961, 'Integer'
+ set $P961, $I967
+ goto if_962_end
+ if_962:
+.annotate 'line', 358
+ find_lex $P968, "$past"
+ get_hll_global $P969, ["PAST"], "Var"
+ $P970 = $P969."new"("self" :named("name"))
+ $P968."push"($P970)
+.annotate 'line', 359
+ find_lex $P971, "$past"
+ $P971."scope"("attribute")
+.annotate 'line', 360
+ find_lex $P972, "$past"
+ find_lex $P973, "$/"
+ unless_null $P973, vivify_336
+ $P973 = root_new ['parrot';'Hash']
+ vivify_336:
+ set $P974, $P973["sigil"]
+ unless_null $P974, vivify_337
+ new $P974, "Undef"
+ vivify_337:
+ $P975 = "vivitype"($P974)
+ $P976 = $P972."viviself"($P975)
+.annotate 'line', 357
+ set $P961, $P976
+ if_962_end:
+ set $P935, $P961
+.annotate 'line', 344
+ goto if_936_end
+ if_936:
+.annotate 'line', 345
+ find_lex $P942, "$past"
+ $P942."scope"("contextual")
+.annotate 'line', 346
+ find_lex $P943, "$past"
+.annotate 'line', 347
+ get_hll_global $P944, ["PAST"], "Var"
+.annotate 'line', 349
+ find_lex $P945, "$/"
+ unless_null $P945, vivify_338
+ $P945 = root_new ['parrot';'Hash']
+ vivify_338:
+ set $P946, $P945["sigil"]
+ unless_null $P946, vivify_339
+ new $P946, "Undef"
+ vivify_339:
+ set $S947, $P946
+ new $P948, 'String'
+ set $P948, $S947
+ find_lex $P949, "$/"
+ unless_null $P949, vivify_340
+ $P949 = root_new ['parrot';'Hash']
+ vivify_340:
+ set $P950, $P949["desigilname"]
+ unless_null $P950, vivify_341
+ new $P950, "Undef"
+ vivify_341:
+ concat $P951, $P948, $P950
+.annotate 'line', 351
+ get_hll_global $P952, ["PAST"], "Op"
+ new $P953, "String"
+ assign $P953, "Contextual "
+ find_lex $P954, "$/"
+ set $S955, $P954
+ concat $P956, $P953, $S955
+ concat $P957, $P956, " not found"
+ $P958 = $P952."new"($P957, "die" :named("pirop"))
+ $P959 = $P944."new"("package" :named("scope"), "" :named("namespace"), $P951 :named("name"), $P958 :named("viviself"))
+.annotate 'line', 347
+ $P960 = $P943."viviself"($P959)
+.annotate 'line', 344
+ set $P935, $P960
+ if_936_end:
.annotate 'line', 334
- set $P912, $P937
- if_913_end:
-.annotate 'line', 324
- .return ($P912)
+ .return ($P935)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "package_declarator:sym<module>" :subid("62_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_961
-.annotate 'line', 356
- new $P960, 'ExceptionHandler'
- set_addr $P960, control_959
- $P960."handle_types"(.CONTROL_RETURN)
- push_eh $P960
+.sub "package_declarator:sym<module>" :subid("62_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_984
+.annotate 'line', 366
+ new $P983, 'ExceptionHandler'
+ set_addr $P983, control_982
+ $P983."handle_types"(.CONTROL_RETURN)
+ push_eh $P983
.lex "self", self
- .lex "$/", param_961
- find_lex $P962, "$/"
- find_lex $P963, "$/"
- unless_null $P963, vivify_338
- $P963 = root_new ['parrot';'Hash']
- vivify_338:
- set $P964, $P963["package_def"]
- unless_null $P964, vivify_339
- new $P964, "Undef"
- vivify_339:
- $P965 = $P964."ast"()
- $P966 = $P962."!make"($P965)
- .return ($P966)
- control_959:
+ .lex "$/", param_984
+ find_lex $P985, "$/"
+ find_lex $P986, "$/"
+ unless_null $P986, vivify_344
+ $P986 = root_new ['parrot';'Hash']
+ vivify_344:
+ set $P987, $P986["package_def"]
+ unless_null $P987, vivify_345
+ new $P987, "Undef"
+ vivify_345:
+ $P988 = $P987."ast"()
+ $P989 = $P985."!make"($P988)
+ .return ($P989)
+ control_982:
.local pmc exception
.get_results (exception)
- getattribute $P967, exception, "payload"
- .return ($P967)
+ getattribute $P990, exception, "payload"
+ .return ($P990)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "package_declarator:sym<class>" :subid("63_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_971
-.annotate 'line', 357
- new $P970, 'ExceptionHandler'
- set_addr $P970, control_969
- $P970."handle_types"(.CONTROL_RETURN)
- push_eh $P970
+.sub "package_declarator:sym<class>" :subid("63_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_994
+.annotate 'line', 367
+ new $P993, 'ExceptionHandler'
+ set_addr $P993, control_992
+ $P993."handle_types"(.CONTROL_RETURN)
+ push_eh $P993
.lex "self", self
- .lex "$/", param_971
-.annotate 'line', 358
- new $P972, "Undef"
- .lex "$past", $P972
-.annotate 'line', 359
- new $P973, "Undef"
- .lex "$classinit", $P973
+ .lex "$/", param_994
.annotate 'line', 368
- new $P974, "Undef"
- .lex "$parent", $P974
-.annotate 'line', 358
- find_lex $P975, "$/"
- unless_null $P975, vivify_340
- $P975 = root_new ['parrot';'Hash']
- vivify_340:
- set $P976, $P975["package_def"]
- unless_null $P976, vivify_341
- new $P976, "Undef"
- vivify_341:
- $P977 = $P976."ast"()
- store_lex "$past", $P977
-.annotate 'line', 360
- get_hll_global $P978, ["PAST"], "Op"
-.annotate 'line', 361
- get_hll_global $P979, ["PAST"], "Op"
- $P980 = $P979."new"(" %r = get_root_global [\"parrot\"], \"P6metaclass\"" :named("inline"))
-.annotate 'line', 364
- find_lex $P981, "$/"
- unless_null $P981, vivify_342
- $P981 = root_new ['parrot';'Hash']
- vivify_342:
- set $P982, $P981["package_def"]
- unless_null $P982, vivify_343
- $P982 = root_new ['parrot';'Hash']
- vivify_343:
- set $P983, $P982["name"]
- unless_null $P983, vivify_344
- new $P983, "Undef"
- vivify_344:
- set $S984, $P983
- $P985 = $P978."new"($P980, $S984, "new_class" :named("name"), "callmethod" :named("pasttype"))
-.annotate 'line', 360
- store_lex "$classinit", $P985
+ new $P995, "Undef"
+ .lex "$past", $P995
+.annotate 'line', 369
+ new $P996, "Undef"
+ .lex "$classinit", $P996
+.annotate 'line', 378
+ new $P997, "Undef"
+ .lex "$parent", $P997
.annotate 'line', 368
- find_lex $P988, "$/"
- unless_null $P988, vivify_345
- $P988 = root_new ['parrot';'Hash']
- vivify_345:
- set $P989, $P988["package_def"]
- unless_null $P989, vivify_346
- $P989 = root_new ['parrot';'Hash']
+ find_lex $P998, "$/"
+ unless_null $P998, vivify_346
+ $P998 = root_new ['parrot';'Hash']
vivify_346:
- set $P990, $P989["parent"]
- unless_null $P990, vivify_347
- $P990 = root_new ['parrot';'ResizablePMCArray']
+ set $P999, $P998["package_def"]
+ unless_null $P999, vivify_347
+ new $P999, "Undef"
vivify_347:
- set $P991, $P990[0]
- unless_null $P991, vivify_348
- new $P991, "Undef"
+ $P1000 = $P999."ast"()
+ store_lex "$past", $P1000
+.annotate 'line', 370
+ get_hll_global $P1001, ["PAST"], "Op"
+.annotate 'line', 371
+ get_hll_global $P1002, ["PAST"], "Op"
+ $P1003 = $P1002."new"(" %r = get_root_global [\"parrot\"], \"P6metaclass\"" :named("inline"))
+.annotate 'line', 374
+ find_lex $P1004, "$/"
+ unless_null $P1004, vivify_348
+ $P1004 = root_new ['parrot';'Hash']
vivify_348:
- set $S992, $P991
- unless $S992, unless_987
- new $P986, 'String'
- set $P986, $S992
- goto unless_987_end
- unless_987:
-.annotate 'line', 369
- find_lex $P995, "$/"
- unless_null $P995, vivify_349
- $P995 = root_new ['parrot';'Hash']
+ set $P1005, $P1004["package_def"]
+ unless_null $P1005, vivify_349
+ $P1005 = root_new ['parrot';'Hash']
vivify_349:
- set $P996, $P995["sym"]
- unless_null $P996, vivify_350
- new $P996, "Undef"
+ set $P1006, $P1005["name"]
+ unless_null $P1006, vivify_350
+ new $P1006, "Undef"
vivify_350:
- set $S997, $P996
- iseq $I998, $S997, "grammar"
- if $I998, if_994
- new $P1000, "String"
- assign $P1000, ""
- set $P993, $P1000
- goto if_994_end
- if_994:
- new $P999, "String"
- assign $P999, "Regex::Cursor"
- set $P993, $P999
- if_994_end:
- set $P986, $P993
- unless_987_end:
- store_lex "$parent", $P986
+ set $S1007, $P1006
+ $P1008 = $P1001."new"($P1003, $S1007, "new_class" :named("name"), "callmethod" :named("pasttype"))
.annotate 'line', 370
- find_lex $P1002, "$parent"
- unless $P1002, if_1001_end
-.annotate 'line', 371
- find_lex $P1003, "$classinit"
- get_hll_global $P1004, ["PAST"], "Val"
- find_lex $P1005, "$parent"
- $P1006 = $P1004."new"($P1005 :named("value"), "parent" :named("named"))
- $P1003."push"($P1006)
- if_1001_end:
-.annotate 'line', 373
- find_lex $P1008, "$past"
- unless_null $P1008, vivify_351
- $P1008 = root_new ['parrot';'Hash']
+ store_lex "$classinit", $P1008
+.annotate 'line', 378
+ find_lex $P1011, "$/"
+ unless_null $P1011, vivify_351
+ $P1011 = root_new ['parrot';'Hash']
vivify_351:
- set $P1009, $P1008["attributes"]
- unless_null $P1009, vivify_352
- new $P1009, "Undef"
+ set $P1012, $P1011["package_def"]
+ unless_null $P1012, vivify_352
+ $P1012 = root_new ['parrot';'Hash']
vivify_352:
- unless $P1009, if_1007_end
-.annotate 'line', 374
- find_lex $P1010, "$classinit"
- find_lex $P1011, "$past"
- unless_null $P1011, vivify_353
- $P1011 = root_new ['parrot';'Hash']
- vivify_353:
- set $P1012, $P1011["attributes"]
- unless_null $P1012, vivify_354
- new $P1012, "Undef"
- vivify_354:
- $P1010."push"($P1012)
- if_1007_end:
-.annotate 'line', 376
- get_global $P1013, "@BLOCK"
- unless_null $P1013, vivify_355
+ set $P1013, $P1012["parent"]
+ unless_null $P1013, vivify_353
$P1013 = root_new ['parrot';'ResizablePMCArray']
- vivify_355:
+ vivify_353:
set $P1014, $P1013[0]
- unless_null $P1014, vivify_356
+ unless_null $P1014, vivify_354
new $P1014, "Undef"
+ vivify_354:
+ set $S1015, $P1014
+ unless $S1015, unless_1010
+ new $P1009, 'String'
+ set $P1009, $S1015
+ goto unless_1010_end
+ unless_1010:
+.annotate 'line', 379
+ find_lex $P1018, "$/"
+ unless_null $P1018, vivify_355
+ $P1018 = root_new ['parrot';'Hash']
+ vivify_355:
+ set $P1019, $P1018["sym"]
+ unless_null $P1019, vivify_356
+ new $P1019, "Undef"
vivify_356:
- $P1015 = $P1014."loadinit"()
- find_lex $P1016, "$classinit"
- $P1015."push"($P1016)
-.annotate 'line', 377
- find_lex $P1017, "$/"
- find_lex $P1018, "$past"
- $P1019 = $P1017."!make"($P1018)
-.annotate 'line', 357
- .return ($P1019)
- control_969:
- .local pmc exception
- .get_results (exception)
- getattribute $P1020, exception, "payload"
- .return ($P1020)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "package_def" :subid("64_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1024
+ set $S1020, $P1019
+ iseq $I1021, $S1020, "grammar"
+ if $I1021, if_1017
+ new $P1023, "String"
+ assign $P1023, ""
+ set $P1016, $P1023
+ goto if_1017_end
+ if_1017:
+ new $P1022, "String"
+ assign $P1022, "Regex::Cursor"
+ set $P1016, $P1022
+ if_1017_end:
+ set $P1009, $P1016
+ unless_1010_end:
+ store_lex "$parent", $P1009
.annotate 'line', 380
- new $P1023, 'ExceptionHandler'
- set_addr $P1023, control_1022
- $P1023."handle_types"(.CONTROL_RETURN)
- push_eh $P1023
- .lex "self", self
- .lex "$/", param_1024
+ find_lex $P1025, "$parent"
+ unless $P1025, if_1024_end
.annotate 'line', 381
- new $P1025, "Undef"
- .lex "$past", $P1025
- find_lex $P1028, "$/"
- unless_null $P1028, vivify_357
- $P1028 = root_new ['parrot';'Hash']
+ find_lex $P1026, "$classinit"
+ get_hll_global $P1027, ["PAST"], "Val"
+ find_lex $P1028, "$parent"
+ $P1029 = $P1027."new"($P1028 :named("value"), "parent" :named("named"))
+ $P1026."push"($P1029)
+ if_1024_end:
+.annotate 'line', 383
+ find_lex $P1031, "$past"
+ unless_null $P1031, vivify_357
+ $P1031 = root_new ['parrot';'Hash']
vivify_357:
- set $P1029, $P1028["block"]
- unless_null $P1029, vivify_358
- new $P1029, "Undef"
+ set $P1032, $P1031["attributes"]
+ unless_null $P1032, vivify_358
+ new $P1032, "Undef"
vivify_358:
- if $P1029, if_1027
- find_lex $P1033, "$/"
- unless_null $P1033, vivify_359
- $P1033 = root_new ['parrot';'Hash']
+ unless $P1032, if_1030_end
+.annotate 'line', 384
+ find_lex $P1033, "$classinit"
+ find_lex $P1034, "$past"
+ unless_null $P1034, vivify_359
+ $P1034 = root_new ['parrot';'Hash']
vivify_359:
- set $P1034, $P1033["comp_unit"]
- unless_null $P1034, vivify_360
- new $P1034, "Undef"
+ set $P1035, $P1034["attributes"]
+ unless_null $P1035, vivify_360
+ new $P1035, "Undef"
vivify_360:
- $P1035 = $P1034."ast"()
- set $P1026, $P1035
- goto if_1027_end
- if_1027:
- find_lex $P1030, "$/"
- unless_null $P1030, vivify_361
- $P1030 = root_new ['parrot';'Hash']
+ $P1033."push"($P1035)
+ if_1030_end:
+.annotate 'line', 386
+ get_global $P1036, "@BLOCK"
+ unless_null $P1036, vivify_361
+ $P1036 = root_new ['parrot';'ResizablePMCArray']
vivify_361:
- set $P1031, $P1030["block"]
- unless_null $P1031, vivify_362
- new $P1031, "Undef"
+ set $P1037, $P1036[0]
+ unless_null $P1037, vivify_362
+ new $P1037, "Undef"
vivify_362:
- $P1032 = $P1031."ast"()
- set $P1026, $P1032
- if_1027_end:
- store_lex "$past", $P1026
-.annotate 'line', 382
- find_lex $P1036, "$past"
- find_lex $P1037, "$/"
- unless_null $P1037, vivify_363
- $P1037 = root_new ['parrot';'Hash']
- vivify_363:
- set $P1038, $P1037["name"]
- unless_null $P1038, vivify_364
- $P1038 = root_new ['parrot';'Hash']
- vivify_364:
- set $P1039, $P1038["identifier"]
- unless_null $P1039, vivify_365
- new $P1039, "Undef"
- vivify_365:
- $P1036."namespace"($P1039)
-.annotate 'line', 383
- find_lex $P1040, "$past"
- $P1040."blocktype"("immediate")
-.annotate 'line', 384
- find_lex $P1041, "$/"
- find_lex $P1042, "$past"
- $P1043 = $P1041."!make"($P1042)
-.annotate 'line', 380
- .return ($P1043)
- control_1022:
- .local pmc exception
- .get_results (exception)
- getattribute $P1044, exception, "payload"
- .return ($P1044)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "scope_declarator:sym<my>" :subid("65_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1048
+ $P1038 = $P1037."loadinit"()
+ find_lex $P1039, "$classinit"
+ $P1038."push"($P1039)
.annotate 'line', 387
- new $P1047, 'ExceptionHandler'
- set_addr $P1047, control_1046
- $P1047."handle_types"(.CONTROL_RETURN)
- push_eh $P1047
- .lex "self", self
- .lex "$/", param_1048
- find_lex $P1049, "$/"
- find_lex $P1050, "$/"
- unless_null $P1050, vivify_366
- $P1050 = root_new ['parrot';'Hash']
- vivify_366:
- set $P1051, $P1050["scoped"]
- unless_null $P1051, vivify_367
- new $P1051, "Undef"
- vivify_367:
- $P1052 = $P1051."ast"()
- $P1053 = $P1049."!make"($P1052)
- .return ($P1053)
- control_1046:
+ find_lex $P1040, "$/"
+ find_lex $P1041, "$past"
+ $P1042 = $P1040."!make"($P1041)
+.annotate 'line', 367
+ .return ($P1042)
+ control_992:
.local pmc exception
.get_results (exception)
- getattribute $P1054, exception, "payload"
- .return ($P1054)
+ getattribute $P1043, exception, "payload"
+ .return ($P1043)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "scope_declarator:sym<our>" :subid("66_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1058
-.annotate 'line', 388
- new $P1057, 'ExceptionHandler'
- set_addr $P1057, control_1056
- $P1057."handle_types"(.CONTROL_RETURN)
- push_eh $P1057
+.sub "package_def" :subid("64_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1047
+.annotate 'line', 390
+ new $P1046, 'ExceptionHandler'
+ set_addr $P1046, control_1045
+ $P1046."handle_types"(.CONTROL_RETURN)
+ push_eh $P1046
.lex "self", self
- .lex "$/", param_1058
- find_lex $P1059, "$/"
+ .lex "$/", param_1047
+.annotate 'line', 391
+ new $P1048, "Undef"
+ .lex "$past", $P1048
+ find_lex $P1051, "$/"
+ unless_null $P1051, vivify_363
+ $P1051 = root_new ['parrot';'Hash']
+ vivify_363:
+ set $P1052, $P1051["block"]
+ unless_null $P1052, vivify_364
+ new $P1052, "Undef"
+ vivify_364:
+ if $P1052, if_1050
+ find_lex $P1056, "$/"
+ unless_null $P1056, vivify_365
+ $P1056 = root_new ['parrot';'Hash']
+ vivify_365:
+ set $P1057, $P1056["comp_unit"]
+ unless_null $P1057, vivify_366
+ new $P1057, "Undef"
+ vivify_366:
+ $P1058 = $P1057."ast"()
+ set $P1049, $P1058
+ goto if_1050_end
+ if_1050:
+ find_lex $P1053, "$/"
+ unless_null $P1053, vivify_367
+ $P1053 = root_new ['parrot';'Hash']
+ vivify_367:
+ set $P1054, $P1053["block"]
+ unless_null $P1054, vivify_368
+ new $P1054, "Undef"
+ vivify_368:
+ $P1055 = $P1054."ast"()
+ set $P1049, $P1055
+ if_1050_end:
+ store_lex "$past", $P1049
+.annotate 'line', 392
+ find_lex $P1059, "$past"
find_lex $P1060, "$/"
- unless_null $P1060, vivify_368
+ unless_null $P1060, vivify_369
$P1060 = root_new ['parrot';'Hash']
- vivify_368:
- set $P1061, $P1060["scoped"]
- unless_null $P1061, vivify_369
- new $P1061, "Undef"
vivify_369:
- $P1062 = $P1061."ast"()
- $P1063 = $P1059."!make"($P1062)
- .return ($P1063)
- control_1056:
+ set $P1061, $P1060["name"]
+ unless_null $P1061, vivify_370
+ $P1061 = root_new ['parrot';'Hash']
+ vivify_370:
+ set $P1062, $P1061["identifier"]
+ unless_null $P1062, vivify_371
+ new $P1062, "Undef"
+ vivify_371:
+ $P1059."namespace"($P1062)
+.annotate 'line', 393
+ find_lex $P1063, "$past"
+ $P1063."blocktype"("immediate")
+.annotate 'line', 394
+ find_lex $P1064, "$/"
+ find_lex $P1065, "$past"
+ $P1066 = $P1064."!make"($P1065)
+.annotate 'line', 390
+ .return ($P1066)
+ control_1045:
.local pmc exception
.get_results (exception)
- getattribute $P1064, exception, "payload"
- .return ($P1064)
+ getattribute $P1067, exception, "payload"
+ .return ($P1067)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "scope_declarator:sym<has>" :subid("67_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1068
-.annotate 'line', 389
- new $P1067, 'ExceptionHandler'
- set_addr $P1067, control_1066
- $P1067."handle_types"(.CONTROL_RETURN)
- push_eh $P1067
- .lex "self", self
- .lex "$/", param_1068
- find_lex $P1069, "$/"
- find_lex $P1070, "$/"
- unless_null $P1070, vivify_370
- $P1070 = root_new ['parrot';'Hash']
- vivify_370:
- set $P1071, $P1070["scoped"]
- unless_null $P1071, vivify_371
- new $P1071, "Undef"
- vivify_371:
- $P1072 = $P1071."ast"()
- $P1073 = $P1069."!make"($P1072)
- .return ($P1073)
- control_1066:
+.sub "scope_declarator:sym<my>" :subid("65_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1071
+.annotate 'line', 397
+ new $P1070, 'ExceptionHandler'
+ set_addr $P1070, control_1069
+ $P1070."handle_types"(.CONTROL_RETURN)
+ push_eh $P1070
+ .lex "self", self
+ .lex "$/", param_1071
+ find_lex $P1072, "$/"
+ find_lex $P1073, "$/"
+ unless_null $P1073, vivify_372
+ $P1073 = root_new ['parrot';'Hash']
+ vivify_372:
+ set $P1074, $P1073["scoped"]
+ unless_null $P1074, vivify_373
+ new $P1074, "Undef"
+ vivify_373:
+ $P1075 = $P1074."ast"()
+ $P1076 = $P1072."!make"($P1075)
+ .return ($P1076)
+ control_1069:
.local pmc exception
.get_results (exception)
- getattribute $P1074, exception, "payload"
- .return ($P1074)
+ getattribute $P1077, exception, "payload"
+ .return ($P1077)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "scoped" :subid("68_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1078
-.annotate 'line', 391
- new $P1077, 'ExceptionHandler'
- set_addr $P1077, control_1076
- $P1077."handle_types"(.CONTROL_RETURN)
- push_eh $P1077
+.sub "scope_declarator:sym<our>" :subid("66_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1081
+.annotate 'line', 398
+ new $P1080, 'ExceptionHandler'
+ set_addr $P1080, control_1079
+ $P1080."handle_types"(.CONTROL_RETURN)
+ push_eh $P1080
.lex "self", self
- .lex "$/", param_1078
-.annotate 'line', 392
- find_lex $P1079, "$/"
-.annotate 'line', 393
+ .lex "$/", param_1081
find_lex $P1082, "$/"
- unless_null $P1082, vivify_372
- $P1082 = root_new ['parrot';'Hash']
- vivify_372:
- set $P1083, $P1082["declarator"]
- unless_null $P1083, vivify_373
- new $P1083, "Undef"
- vivify_373:
- if $P1083, if_1081
-.annotate 'line', 394
- find_lex $P1087, "$/"
- unless_null $P1087, vivify_374
- $P1087 = root_new ['parrot';'Hash']
+ find_lex $P1083, "$/"
+ unless_null $P1083, vivify_374
+ $P1083 = root_new ['parrot';'Hash']
vivify_374:
- set $P1088, $P1087["multi_declarator"]
- unless_null $P1088, vivify_375
- new $P1088, "Undef"
+ set $P1084, $P1083["scoped"]
+ unless_null $P1084, vivify_375
+ new $P1084, "Undef"
vivify_375:
- $P1089 = $P1088."ast"()
- set $P1080, $P1089
-.annotate 'line', 393
- goto if_1081_end
- if_1081:
- find_lex $P1084, "$/"
- unless_null $P1084, vivify_376
- $P1084 = root_new ['parrot';'Hash']
+ $P1085 = $P1084."ast"()
+ $P1086 = $P1082."!make"($P1085)
+ .return ($P1086)
+ control_1079:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1087, exception, "payload"
+ .return ($P1087)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "scope_declarator:sym<has>" :subid("67_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1091
+.annotate 'line', 399
+ new $P1090, 'ExceptionHandler'
+ set_addr $P1090, control_1089
+ $P1090."handle_types"(.CONTROL_RETURN)
+ push_eh $P1090
+ .lex "self", self
+ .lex "$/", param_1091
+ find_lex $P1092, "$/"
+ find_lex $P1093, "$/"
+ unless_null $P1093, vivify_376
+ $P1093 = root_new ['parrot';'Hash']
vivify_376:
- set $P1085, $P1084["declarator"]
- unless_null $P1085, vivify_377
- new $P1085, "Undef"
+ set $P1094, $P1093["scoped"]
+ unless_null $P1094, vivify_377
+ new $P1094, "Undef"
vivify_377:
- $P1086 = $P1085."ast"()
- set $P1080, $P1086
- if_1081_end:
- $P1090 = $P1079."!make"($P1080)
-.annotate 'line', 391
- .return ($P1090)
- control_1076:
+ $P1095 = $P1094."ast"()
+ $P1096 = $P1092."!make"($P1095)
+ .return ($P1096)
+ control_1089:
.local pmc exception
.get_results (exception)
- getattribute $P1091, exception, "payload"
- .return ($P1091)
+ getattribute $P1097, exception, "payload"
+ .return ($P1097)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "declarator" :subid("69_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1095
-.annotate 'line', 397
- new $P1094, 'ExceptionHandler'
- set_addr $P1094, control_1093
- $P1094."handle_types"(.CONTROL_RETURN)
- push_eh $P1094
+.sub "scoped" :subid("68_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1101
+.annotate 'line', 401
+ new $P1100, 'ExceptionHandler'
+ set_addr $P1100, control_1099
+ $P1100."handle_types"(.CONTROL_RETURN)
+ push_eh $P1100
.lex "self", self
- .lex "$/", param_1095
-.annotate 'line', 398
- find_lex $P1096, "$/"
-.annotate 'line', 399
- find_lex $P1099, "$/"
- unless_null $P1099, vivify_378
- $P1099 = root_new ['parrot';'Hash']
+ .lex "$/", param_1101
+.annotate 'line', 402
+ find_lex $P1102, "$/"
+.annotate 'line', 403
+ find_lex $P1105, "$/"
+ unless_null $P1105, vivify_378
+ $P1105 = root_new ['parrot';'Hash']
vivify_378:
- set $P1100, $P1099["routine_declarator"]
- unless_null $P1100, vivify_379
- new $P1100, "Undef"
+ set $P1106, $P1105["declarator"]
+ unless_null $P1106, vivify_379
+ new $P1106, "Undef"
vivify_379:
- if $P1100, if_1098
-.annotate 'line', 400
- find_lex $P1104, "$/"
- unless_null $P1104, vivify_380
- $P1104 = root_new ['parrot';'Hash']
+ if $P1106, if_1104
+.annotate 'line', 404
+ find_lex $P1110, "$/"
+ unless_null $P1110, vivify_380
+ $P1110 = root_new ['parrot';'Hash']
vivify_380:
- set $P1105, $P1104["variable_declarator"]
- unless_null $P1105, vivify_381
- new $P1105, "Undef"
+ set $P1111, $P1110["multi_declarator"]
+ unless_null $P1111, vivify_381
+ new $P1111, "Undef"
vivify_381:
- $P1106 = $P1105."ast"()
- set $P1097, $P1106
-.annotate 'line', 399
- goto if_1098_end
- if_1098:
- find_lex $P1101, "$/"
- unless_null $P1101, vivify_382
- $P1101 = root_new ['parrot';'Hash']
+ $P1112 = $P1111."ast"()
+ set $P1103, $P1112
+.annotate 'line', 403
+ goto if_1104_end
+ if_1104:
+ find_lex $P1107, "$/"
+ unless_null $P1107, vivify_382
+ $P1107 = root_new ['parrot';'Hash']
vivify_382:
- set $P1102, $P1101["routine_declarator"]
- unless_null $P1102, vivify_383
- new $P1102, "Undef"
+ set $P1108, $P1107["declarator"]
+ unless_null $P1108, vivify_383
+ new $P1108, "Undef"
vivify_383:
- $P1103 = $P1102."ast"()
- set $P1097, $P1103
- if_1098_end:
- $P1107 = $P1096."!make"($P1097)
-.annotate 'line', 397
- .return ($P1107)
- control_1093:
+ $P1109 = $P1108."ast"()
+ set $P1103, $P1109
+ if_1104_end:
+ $P1113 = $P1102."!make"($P1103)
+.annotate 'line', 401
+ .return ($P1113)
+ control_1099:
.local pmc exception
.get_results (exception)
- getattribute $P1108, exception, "payload"
- .return ($P1108)
+ getattribute $P1114, exception, "payload"
+ .return ($P1114)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "multi_declarator:sym<multi>" :subid("70_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1112
-.annotate 'line', 403
- new $P1111, 'ExceptionHandler'
- set_addr $P1111, control_1110
- $P1111."handle_types"(.CONTROL_RETURN)
- push_eh $P1111
- .lex "self", self
- .lex "$/", param_1112
- find_lex $P1113, "$/"
- find_lex $P1116, "$/"
- unless_null $P1116, vivify_384
- $P1116 = root_new ['parrot';'Hash']
+.sub "declarator" :subid("69_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1118
+.annotate 'line', 407
+ new $P1117, 'ExceptionHandler'
+ set_addr $P1117, control_1116
+ $P1117."handle_types"(.CONTROL_RETURN)
+ push_eh $P1117
+ .lex "self", self
+ .lex "$/", param_1118
+.annotate 'line', 408
+ find_lex $P1119, "$/"
+.annotate 'line', 409
+ find_lex $P1122, "$/"
+ unless_null $P1122, vivify_384
+ $P1122 = root_new ['parrot';'Hash']
vivify_384:
- set $P1117, $P1116["declarator"]
- unless_null $P1117, vivify_385
- new $P1117, "Undef"
+ set $P1123, $P1122["routine_declarator"]
+ unless_null $P1123, vivify_385
+ new $P1123, "Undef"
vivify_385:
- if $P1117, if_1115
- find_lex $P1121, "$/"
- unless_null $P1121, vivify_386
- $P1121 = root_new ['parrot';'Hash']
+ if $P1123, if_1121
+.annotate 'line', 410
+ find_lex $P1127, "$/"
+ unless_null $P1127, vivify_386
+ $P1127 = root_new ['parrot';'Hash']
vivify_386:
- set $P1122, $P1121["routine_def"]
- unless_null $P1122, vivify_387
- new $P1122, "Undef"
+ set $P1128, $P1127["variable_declarator"]
+ unless_null $P1128, vivify_387
+ new $P1128, "Undef"
vivify_387:
- $P1123 = $P1122."ast"()
- set $P1114, $P1123
- goto if_1115_end
- if_1115:
- find_lex $P1118, "$/"
- unless_null $P1118, vivify_388
- $P1118 = root_new ['parrot';'Hash']
+ $P1129 = $P1128."ast"()
+ set $P1120, $P1129
+.annotate 'line', 409
+ goto if_1121_end
+ if_1121:
+ find_lex $P1124, "$/"
+ unless_null $P1124, vivify_388
+ $P1124 = root_new ['parrot';'Hash']
vivify_388:
- set $P1119, $P1118["declarator"]
- unless_null $P1119, vivify_389
- new $P1119, "Undef"
+ set $P1125, $P1124["routine_declarator"]
+ unless_null $P1125, vivify_389
+ new $P1125, "Undef"
vivify_389:
- $P1120 = $P1119."ast"()
- set $P1114, $P1120
- if_1115_end:
- $P1124 = $P1113."!make"($P1114)
- .return ($P1124)
- control_1110:
+ $P1126 = $P1125."ast"()
+ set $P1120, $P1126
+ if_1121_end:
+ $P1130 = $P1119."!make"($P1120)
+.annotate 'line', 407
+ .return ($P1130)
+ control_1116:
.local pmc exception
.get_results (exception)
- getattribute $P1125, exception, "payload"
- .return ($P1125)
+ getattribute $P1131, exception, "payload"
+ .return ($P1131)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "multi_declarator:sym<null>" :subid("71_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1129
-.annotate 'line', 404
- new $P1128, 'ExceptionHandler'
- set_addr $P1128, control_1127
- $P1128."handle_types"(.CONTROL_RETURN)
- push_eh $P1128
- .lex "self", self
- .lex "$/", param_1129
- find_lex $P1130, "$/"
- find_lex $P1131, "$/"
- unless_null $P1131, vivify_390
- $P1131 = root_new ['parrot';'Hash']
+.sub "multi_declarator:sym<multi>" :subid("70_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1135
+.annotate 'line', 413
+ new $P1134, 'ExceptionHandler'
+ set_addr $P1134, control_1133
+ $P1134."handle_types"(.CONTROL_RETURN)
+ push_eh $P1134
+ .lex "self", self
+ .lex "$/", param_1135
+ find_lex $P1136, "$/"
+ find_lex $P1139, "$/"
+ unless_null $P1139, vivify_390
+ $P1139 = root_new ['parrot';'Hash']
vivify_390:
- set $P1132, $P1131["declarator"]
- unless_null $P1132, vivify_391
- new $P1132, "Undef"
- vivify_391:
- $P1133 = $P1132."ast"()
- $P1134 = $P1130."!make"($P1133)
- .return ($P1134)
- control_1127:
- .local pmc exception
- .get_results (exception)
- getattribute $P1135, exception, "payload"
- .return ($P1135)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "variable_declarator" :subid("72_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1139
-.annotate 'line', 407
- .const 'Sub' $P1179 = "73_1275811497.55064"
- capture_lex $P1179
- new $P1138, 'ExceptionHandler'
- set_addr $P1138, control_1137
- $P1138."handle_types"(.CONTROL_RETURN)
- push_eh $P1138
- .lex "self", self
- .lex "$/", param_1139
-.annotate 'line', 408
+ set $P1140, $P1139["declarator"]
+ unless_null $P1140, vivify_391
new $P1140, "Undef"
- .lex "$past", $P1140
-.annotate 'line', 409
- new $P1141, "Undef"
- .lex "$sigil", $P1141
-.annotate 'line', 410
- new $P1142, "Undef"
- .lex "$name", $P1142
-.annotate 'line', 411
- new $P1143, "Undef"
- .lex "$BLOCK", $P1143
-.annotate 'line', 408
+ vivify_391:
+ if $P1140, if_1138
find_lex $P1144, "$/"
unless_null $P1144, vivify_392
$P1144 = root_new ['parrot';'Hash']
vivify_392:
- set $P1145, $P1144["variable"]
+ set $P1145, $P1144["routine_def"]
unless_null $P1145, vivify_393
new $P1145, "Undef"
vivify_393:
$P1146 = $P1145."ast"()
- store_lex "$past", $P1146
-.annotate 'line', 409
- find_lex $P1147, "$/"
- unless_null $P1147, vivify_394
- $P1147 = root_new ['parrot';'Hash']
+ set $P1137, $P1146
+ goto if_1138_end
+ if_1138:
+ find_lex $P1141, "$/"
+ unless_null $P1141, vivify_394
+ $P1141 = root_new ['parrot';'Hash']
vivify_394:
- set $P1148, $P1147["variable"]
- unless_null $P1148, vivify_395
- $P1148 = root_new ['parrot';'Hash']
+ set $P1142, $P1141["declarator"]
+ unless_null $P1142, vivify_395
+ new $P1142, "Undef"
vivify_395:
- set $P1149, $P1148["sigil"]
- unless_null $P1149, vivify_396
- new $P1149, "Undef"
- vivify_396:
- store_lex "$sigil", $P1149
-.annotate 'line', 410
- find_lex $P1150, "$past"
- $P1151 = $P1150."name"()
- store_lex "$name", $P1151
-.annotate 'line', 411
- get_global $P1152, "@BLOCK"
- unless_null $P1152, vivify_397
- $P1152 = root_new ['parrot';'ResizablePMCArray']
- vivify_397:
- set $P1153, $P1152[0]
- unless_null $P1153, vivify_398
- new $P1153, "Undef"
- vivify_398:
- store_lex "$BLOCK", $P1153
-.annotate 'line', 412
- find_lex $P1155, "$BLOCK"
- find_lex $P1156, "$name"
- $P1157 = $P1155."symbol"($P1156)
- unless $P1157, if_1154_end
-.annotate 'line', 413
- find_lex $P1158, "$/"
- $P1159 = $P1158."CURSOR"()
- find_lex $P1160, "$name"
- $P1159."panic"("Redeclaration of symbol ", $P1160)
- if_1154_end:
-.annotate 'line', 415
- find_dynamic_lex $P1162, "$*SCOPE"
- unless_null $P1162, vivify_399
- get_hll_global $P1162, "$SCOPE"
- unless_null $P1162, vivify_400
- die "Contextual $*SCOPE not found"
- vivify_400:
- vivify_399:
- set $S1163, $P1162
- iseq $I1164, $S1163, "has"
- if $I1164, if_1161
-.annotate 'line', 424
- .const 'Sub' $P1179 = "73_1275811497.55064"
- capture_lex $P1179
- $P1179()
- goto if_1161_end
- if_1161:
-.annotate 'line', 416
- find_lex $P1165, "$BLOCK"
- find_lex $P1166, "$name"
- $P1165."symbol"($P1166, "attribute" :named("scope"))
-.annotate 'line', 417
- find_lex $P1168, "$BLOCK"
- unless_null $P1168, vivify_405
- $P1168 = root_new ['parrot';'Hash']
- vivify_405:
- set $P1169, $P1168["attributes"]
- unless_null $P1169, vivify_406
- new $P1169, "Undef"
- vivify_406:
- if $P1169, unless_1167_end
-.annotate 'line', 419
- get_hll_global $P1170, ["PAST"], "Op"
- $P1171 = $P1170."new"("list" :named("pasttype"), "attr" :named("named"))
- find_lex $P1172, "$BLOCK"
- unless_null $P1172, vivify_407
- $P1172 = root_new ['parrot';'Hash']
- store_lex "$BLOCK", $P1172
- vivify_407:
- set $P1172["attributes"], $P1171
- unless_1167_end:
-.annotate 'line', 421
- find_lex $P1173, "$BLOCK"
- unless_null $P1173, vivify_408
- $P1173 = root_new ['parrot';'Hash']
- vivify_408:
- set $P1174, $P1173["attributes"]
- unless_null $P1174, vivify_409
- new $P1174, "Undef"
- vivify_409:
- find_lex $P1175, "$name"
- $P1174."push"($P1175)
-.annotate 'line', 422
- get_hll_global $P1176, ["PAST"], "Stmts"
- $P1177 = $P1176."new"()
- store_lex "$past", $P1177
- if_1161_end:
-.annotate 'line', 432
- find_lex $P1203, "$/"
- find_lex $P1204, "$past"
- $P1205 = $P1203."!make"($P1204)
-.annotate 'line', 407
- .return ($P1205)
- control_1137:
+ $P1143 = $P1142."ast"()
+ set $P1137, $P1143
+ if_1138_end:
+ $P1147 = $P1136."!make"($P1137)
+ .return ($P1147)
+ control_1133:
.local pmc exception
.get_results (exception)
- getattribute $P1206, exception, "payload"
- .return ($P1206)
+ getattribute $P1148, exception, "payload"
+ .return ($P1148)
.end
.namespace ["NQP";"Actions"]
-.sub "_block1178" :anon :subid("73_1275811497.55064") :outer("72_1275811497.55064")
-.annotate 'line', 425
- new $P1180, "Undef"
- .lex "$scope", $P1180
-.annotate 'line', 426
- new $P1181, "Undef"
- .lex "$decl", $P1181
+.include "except_types.pasm"
+.sub "multi_declarator:sym<null>" :subid("71_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1152
+.annotate 'line', 414
+ new $P1151, 'ExceptionHandler'
+ set_addr $P1151, control_1150
+ $P1151."handle_types"(.CONTROL_RETURN)
+ push_eh $P1151
+ .lex "self", self
+ .lex "$/", param_1152
+ find_lex $P1153, "$/"
+ find_lex $P1154, "$/"
+ unless_null $P1154, vivify_396
+ $P1154 = root_new ['parrot';'Hash']
+ vivify_396:
+ set $P1155, $P1154["declarator"]
+ unless_null $P1155, vivify_397
+ new $P1155, "Undef"
+ vivify_397:
+ $P1156 = $P1155."ast"()
+ $P1157 = $P1153."!make"($P1156)
+ .return ($P1157)
+ control_1150:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1158, exception, "payload"
+ .return ($P1158)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "variable_declarator" :subid("72_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1162
+.annotate 'line', 417
+ .const 'Sub' $P1202 = "73_1280467483.70067"
+ capture_lex $P1202
+ new $P1161, 'ExceptionHandler'
+ set_addr $P1161, control_1160
+ $P1161."handle_types"(.CONTROL_RETURN)
+ push_eh $P1161
+ .lex "self", self
+ .lex "$/", param_1162
+.annotate 'line', 418
+ new $P1163, "Undef"
+ .lex "$past", $P1163
+.annotate 'line', 419
+ new $P1164, "Undef"
+ .lex "$sigil", $P1164
+.annotate 'line', 420
+ new $P1165, "Undef"
+ .lex "$name", $P1165
+.annotate 'line', 421
+ new $P1166, "Undef"
+ .lex "$BLOCK", $P1166
+.annotate 'line', 418
+ find_lex $P1167, "$/"
+ unless_null $P1167, vivify_398
+ $P1167 = root_new ['parrot';'Hash']
+ vivify_398:
+ set $P1168, $P1167["variable"]
+ unless_null $P1168, vivify_399
+ new $P1168, "Undef"
+ vivify_399:
+ $P1169 = $P1168."ast"()
+ store_lex "$past", $P1169
+.annotate 'line', 419
+ find_lex $P1170, "$/"
+ unless_null $P1170, vivify_400
+ $P1170 = root_new ['parrot';'Hash']
+ vivify_400:
+ set $P1171, $P1170["variable"]
+ unless_null $P1171, vivify_401
+ $P1171 = root_new ['parrot';'Hash']
+ vivify_401:
+ set $P1172, $P1171["sigil"]
+ unless_null $P1172, vivify_402
+ new $P1172, "Undef"
+ vivify_402:
+ store_lex "$sigil", $P1172
+.annotate 'line', 420
+ find_lex $P1173, "$past"
+ $P1174 = $P1173."name"()
+ store_lex "$name", $P1174
+.annotate 'line', 421
+ get_global $P1175, "@BLOCK"
+ unless_null $P1175, vivify_403
+ $P1175 = root_new ['parrot';'ResizablePMCArray']
+ vivify_403:
+ set $P1176, $P1175[0]
+ unless_null $P1176, vivify_404
+ new $P1176, "Undef"
+ vivify_404:
+ store_lex "$BLOCK", $P1176
+.annotate 'line', 422
+ find_lex $P1178, "$BLOCK"
+ find_lex $P1179, "$name"
+ $P1180 = $P1178."symbol"($P1179)
+ unless $P1180, if_1177_end
+.annotate 'line', 423
+ find_lex $P1181, "$/"
+ $P1182 = $P1181."CURSOR"()
+ find_lex $P1183, "$name"
+ $P1182."panic"("Redeclaration of symbol ", $P1183)
+ if_1177_end:
.annotate 'line', 425
- find_dynamic_lex $P1184, "$*SCOPE"
- unless_null $P1184, vivify_401
- get_hll_global $P1184, "$SCOPE"
- unless_null $P1184, vivify_402
+ find_dynamic_lex $P1185, "$*SCOPE"
+ unless_null $P1185, vivify_405
+ get_hll_global $P1185, "$SCOPE"
+ unless_null $P1185, vivify_406
die "Contextual $*SCOPE not found"
- vivify_402:
- vivify_401:
- set $S1185, $P1184
- iseq $I1186, $S1185, "our"
- if $I1186, if_1183
- new $P1188, "String"
- assign $P1188, "lexical"
- set $P1182, $P1188
- goto if_1183_end
- if_1183:
- new $P1187, "String"
- assign $P1187, "package"
- set $P1182, $P1187
- if_1183_end:
- store_lex "$scope", $P1182
+ vivify_406:
+ vivify_405:
+ set $S1186, $P1185
+ iseq $I1187, $S1186, "has"
+ if $I1187, if_1184
+.annotate 'line', 434
+ .const 'Sub' $P1202 = "73_1280467483.70067"
+ capture_lex $P1202
+ $P1202()
+ goto if_1184_end
+ if_1184:
.annotate 'line', 426
- get_hll_global $P1189, ["PAST"], "Var"
- find_lex $P1190, "$name"
- find_lex $P1191, "$scope"
+ find_lex $P1188, "$BLOCK"
+ find_lex $P1189, "$name"
+ $P1188."symbol"($P1189, "attribute" :named("scope"))
.annotate 'line', 427
- find_lex $P1192, "$sigil"
- $P1193 = "vivitype"($P1192)
- find_lex $P1194, "$/"
- $P1195 = $P1189."new"($P1190 :named("name"), $P1191 :named("scope"), 1 :named("isdecl"), 1 :named("lvalue"), $P1193 :named("viviself"), $P1194 :named("node"))
-.annotate 'line', 426
- store_lex "$decl", $P1195
+ find_lex $P1191, "$BLOCK"
+ unless_null $P1191, vivify_411
+ $P1191 = root_new ['parrot';'Hash']
+ vivify_411:
+ set $P1192, $P1191["attributes"]
+ unless_null $P1192, vivify_412
+ new $P1192, "Undef"
+ vivify_412:
+ if $P1192, unless_1190_end
.annotate 'line', 429
+ get_hll_global $P1193, ["PAST"], "Op"
+ $P1194 = $P1193."new"("list" :named("pasttype"), "attr" :named("named"))
+ find_lex $P1195, "$BLOCK"
+ unless_null $P1195, vivify_413
+ $P1195 = root_new ['parrot';'Hash']
+ store_lex "$BLOCK", $P1195
+ vivify_413:
+ set $P1195["attributes"], $P1194
+ unless_1190_end:
+.annotate 'line', 431
find_lex $P1196, "$BLOCK"
- find_lex $P1197, "$name"
- find_lex $P1198, "$scope"
- $P1196."symbol"($P1197, $P1198 :named("scope"))
-.annotate 'line', 430
- find_lex $P1199, "$BLOCK"
- unless_null $P1199, vivify_403
- $P1199 = root_new ['parrot';'ResizablePMCArray']
- vivify_403:
- set $P1200, $P1199[0]
- unless_null $P1200, vivify_404
- new $P1200, "Undef"
- vivify_404:
- find_lex $P1201, "$decl"
- $P1202 = $P1200."push"($P1201)
-.annotate 'line', 424
- .return ($P1202)
+ unless_null $P1196, vivify_414
+ $P1196 = root_new ['parrot';'Hash']
+ vivify_414:
+ set $P1197, $P1196["attributes"]
+ unless_null $P1197, vivify_415
+ new $P1197, "Undef"
+ vivify_415:
+ find_lex $P1198, "$name"
+ $P1197."push"($P1198)
+.annotate 'line', 432
+ get_hll_global $P1199, ["PAST"], "Stmts"
+ $P1200 = $P1199."new"()
+ store_lex "$past", $P1200
+ if_1184_end:
+.annotate 'line', 442
+ find_lex $P1226, "$/"
+ find_lex $P1227, "$past"
+ $P1228 = $P1226."!make"($P1227)
+.annotate 'line', 417
+ .return ($P1228)
+ control_1160:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1229, exception, "payload"
+ .return ($P1229)
.end
.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "routine_declarator:sym<sub>" :subid("74_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1210
+.sub "_block1201" :anon :subid("73_1280467483.70067") :outer("72_1280467483.70067")
+.annotate 'line', 435
+ new $P1203, "Undef"
+ .lex "$scope", $P1203
+.annotate 'line', 436
+ new $P1204, "Undef"
+ .lex "$decl", $P1204
.annotate 'line', 435
- new $P1209, 'ExceptionHandler'
- set_addr $P1209, control_1208
- $P1209."handle_types"(.CONTROL_RETURN)
- push_eh $P1209
- .lex "self", self
- .lex "$/", param_1210
- find_lex $P1211, "$/"
- find_lex $P1212, "$/"
- unless_null $P1212, vivify_410
- $P1212 = root_new ['parrot';'Hash']
+ find_dynamic_lex $P1207, "$*SCOPE"
+ unless_null $P1207, vivify_407
+ get_hll_global $P1207, "$SCOPE"
+ unless_null $P1207, vivify_408
+ die "Contextual $*SCOPE not found"
+ vivify_408:
+ vivify_407:
+ set $S1208, $P1207
+ iseq $I1209, $S1208, "our"
+ if $I1209, if_1206
+ new $P1211, "String"
+ assign $P1211, "lexical"
+ set $P1205, $P1211
+ goto if_1206_end
+ if_1206:
+ new $P1210, "String"
+ assign $P1210, "package"
+ set $P1205, $P1210
+ if_1206_end:
+ store_lex "$scope", $P1205
+.annotate 'line', 436
+ get_hll_global $P1212, ["PAST"], "Var"
+ find_lex $P1213, "$name"
+ find_lex $P1214, "$scope"
+.annotate 'line', 437
+ find_lex $P1215, "$sigil"
+ $P1216 = "vivitype"($P1215)
+ find_lex $P1217, "$/"
+ $P1218 = $P1212."new"($P1213 :named("name"), $P1214 :named("scope"), 1 :named("isdecl"), 1 :named("lvalue"), $P1216 :named("viviself"), $P1217 :named("node"))
+.annotate 'line', 436
+ store_lex "$decl", $P1218
+.annotate 'line', 439
+ find_lex $P1219, "$BLOCK"
+ find_lex $P1220, "$name"
+ find_lex $P1221, "$scope"
+ $P1219."symbol"($P1220, $P1221 :named("scope"))
+.annotate 'line', 440
+ find_lex $P1222, "$BLOCK"
+ unless_null $P1222, vivify_409
+ $P1222 = root_new ['parrot';'ResizablePMCArray']
+ vivify_409:
+ set $P1223, $P1222[0]
+ unless_null $P1223, vivify_410
+ new $P1223, "Undef"
vivify_410:
- set $P1213, $P1212["routine_def"]
- unless_null $P1213, vivify_411
- new $P1213, "Undef"
- vivify_411:
- $P1214 = $P1213."ast"()
- $P1215 = $P1211."!make"($P1214)
- .return ($P1215)
- control_1208:
- .local pmc exception
- .get_results (exception)
- getattribute $P1216, exception, "payload"
- .return ($P1216)
+ find_lex $P1224, "$decl"
+ $P1225 = $P1223."push"($P1224)
+.annotate 'line', 434
+ .return ($P1225)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "routine_declarator:sym<method>" :subid("75_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1220
-.annotate 'line', 436
- new $P1219, 'ExceptionHandler'
- set_addr $P1219, control_1218
- $P1219."handle_types"(.CONTROL_RETURN)
- push_eh $P1219
- .lex "self", self
- .lex "$/", param_1220
- find_lex $P1221, "$/"
- find_lex $P1222, "$/"
- unless_null $P1222, vivify_412
- $P1222 = root_new ['parrot';'Hash']
- vivify_412:
- set $P1223, $P1222["method_def"]
- unless_null $P1223, vivify_413
- new $P1223, "Undef"
- vivify_413:
- $P1224 = $P1223."ast"()
- $P1225 = $P1221."!make"($P1224)
- .return ($P1225)
- control_1218:
+.sub "routine_declarator:sym<sub>" :subid("74_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1233
+.annotate 'line', 445
+ new $P1232, 'ExceptionHandler'
+ set_addr $P1232, control_1231
+ $P1232."handle_types"(.CONTROL_RETURN)
+ push_eh $P1232
+ .lex "self", self
+ .lex "$/", param_1233
+ find_lex $P1234, "$/"
+ find_lex $P1235, "$/"
+ unless_null $P1235, vivify_416
+ $P1235 = root_new ['parrot';'Hash']
+ vivify_416:
+ set $P1236, $P1235["routine_def"]
+ unless_null $P1236, vivify_417
+ new $P1236, "Undef"
+ vivify_417:
+ $P1237 = $P1236."ast"()
+ $P1238 = $P1234."!make"($P1237)
+ .return ($P1238)
+ control_1231:
.local pmc exception
.get_results (exception)
- getattribute $P1226, exception, "payload"
- .return ($P1226)
+ getattribute $P1239, exception, "payload"
+ .return ($P1239)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "routine_def" :subid("76_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1230
-.annotate 'line', 438
- .const 'Sub' $P1241 = "77_1275811497.55064"
- capture_lex $P1241
- new $P1229, 'ExceptionHandler'
- set_addr $P1229, control_1228
- $P1229."handle_types"(.CONTROL_RETURN)
- push_eh $P1229
+.sub "routine_declarator:sym<method>" :subid("75_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1243
+.annotate 'line', 446
+ new $P1242, 'ExceptionHandler'
+ set_addr $P1242, control_1241
+ $P1242."handle_types"(.CONTROL_RETURN)
+ push_eh $P1242
.lex "self", self
- .lex "$/", param_1230
-.annotate 'line', 439
- new $P1231, "Undef"
- .lex "$past", $P1231
- find_lex $P1232, "$/"
- unless_null $P1232, vivify_414
- $P1232 = root_new ['parrot';'Hash']
- vivify_414:
- set $P1233, $P1232["blockoid"]
- unless_null $P1233, vivify_415
- new $P1233, "Undef"
- vivify_415:
- $P1234 = $P1233."ast"()
- store_lex "$past", $P1234
-.annotate 'line', 440
- find_lex $P1235, "$past"
- $P1235."blocktype"("declaration")
-.annotate 'line', 441
- find_lex $P1236, "$past"
- $P1236."control"("return_pir")
-.annotate 'line', 442
- find_lex $P1238, "$/"
- unless_null $P1238, vivify_416
- $P1238 = root_new ['parrot';'Hash']
- vivify_416:
- set $P1239, $P1238["deflongname"]
- unless_null $P1239, vivify_417
- new $P1239, "Undef"
- vivify_417:
- unless $P1239, if_1237_end
- .const 'Sub' $P1241 = "77_1275811497.55064"
- capture_lex $P1241
- $P1241()
- if_1237_end:
-.annotate 'line', 452
- find_lex $P1273, "$/"
- find_lex $P1274, "$past"
- $P1275 = $P1273."!make"($P1274)
-.annotate 'line', 438
- .return ($P1275)
- control_1228:
+ .lex "$/", param_1243
+ find_lex $P1244, "$/"
+ find_lex $P1245, "$/"
+ unless_null $P1245, vivify_418
+ $P1245 = root_new ['parrot';'Hash']
+ vivify_418:
+ set $P1246, $P1245["method_def"]
+ unless_null $P1246, vivify_419
+ new $P1246, "Undef"
+ vivify_419:
+ $P1247 = $P1246."ast"()
+ $P1248 = $P1244."!make"($P1247)
+ .return ($P1248)
+ control_1241:
.local pmc exception
.get_results (exception)
- getattribute $P1276, exception, "payload"
- .return ($P1276)
+ getattribute $P1249, exception, "payload"
+ .return ($P1249)
.end
.namespace ["NQP";"Actions"]
-.sub "_block1240" :anon :subid("77_1275811497.55064") :outer("76_1275811497.55064")
-.annotate 'line', 443
- new $P1242, "Undef"
- .lex "$name", $P1242
- find_lex $P1243, "$/"
- unless_null $P1243, vivify_418
- $P1243 = root_new ['parrot';'Hash']
- vivify_418:
- set $P1244, $P1243["sigil"]
- unless_null $P1244, vivify_419
- $P1244 = root_new ['parrot';'ResizablePMCArray']
- vivify_419:
- set $P1245, $P1244[0]
- unless_null $P1245, vivify_420
- new $P1245, "Undef"
+.include "except_types.pasm"
+.sub "routine_def" :subid("76_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1253
+.annotate 'line', 448
+ .const 'Sub' $P1264 = "77_1280467483.70067"
+ capture_lex $P1264
+ new $P1252, 'ExceptionHandler'
+ set_addr $P1252, control_1251
+ $P1252."handle_types"(.CONTROL_RETURN)
+ push_eh $P1252
+ .lex "self", self
+ .lex "$/", param_1253
+.annotate 'line', 449
+ new $P1254, "Undef"
+ .lex "$past", $P1254
+ find_lex $P1255, "$/"
+ unless_null $P1255, vivify_420
+ $P1255 = root_new ['parrot';'Hash']
vivify_420:
- set $S1246, $P1245
- new $P1247, 'String'
- set $P1247, $S1246
- find_lex $P1248, "$/"
- unless_null $P1248, vivify_421
- $P1248 = root_new ['parrot';'Hash']
+ set $P1256, $P1255["blockoid"]
+ unless_null $P1256, vivify_421
+ new $P1256, "Undef"
vivify_421:
- set $P1249, $P1248["deflongname"]
- unless_null $P1249, vivify_422
- $P1249 = root_new ['parrot';'ResizablePMCArray']
+ $P1257 = $P1256."ast"()
+ store_lex "$past", $P1257
+.annotate 'line', 450
+ find_lex $P1258, "$past"
+ $P1258."blocktype"("declaration")
+.annotate 'line', 451
+ find_lex $P1259, "$past"
+ $P1259."control"("return_pir")
+.annotate 'line', 452
+ find_lex $P1261, "$/"
+ unless_null $P1261, vivify_422
+ $P1261 = root_new ['parrot';'Hash']
vivify_422:
- set $P1250, $P1249[0]
- unless_null $P1250, vivify_423
- new $P1250, "Undef"
+ set $P1262, $P1261["deflongname"]
+ unless_null $P1262, vivify_423
+ new $P1262, "Undef"
vivify_423:
- $S1251 = $P1250."ast"()
- concat $P1252, $P1247, $S1251
- store_lex "$name", $P1252
-.annotate 'line', 444
- find_lex $P1253, "$past"
- find_lex $P1254, "$name"
- $P1253."name"($P1254)
-.annotate 'line', 445
- find_dynamic_lex $P1257, "$*SCOPE"
- unless_null $P1257, vivify_424
- get_hll_global $P1257, "$SCOPE"
- unless_null $P1257, vivify_425
- die "Contextual $*SCOPE not found"
- vivify_425:
+ unless $P1262, if_1260_end
+ .const 'Sub' $P1264 = "77_1280467483.70067"
+ capture_lex $P1264
+ $P1264()
+ if_1260_end:
+.annotate 'line', 462
+ find_lex $P1296, "$/"
+ find_lex $P1297, "$past"
+ $P1298 = $P1296."!make"($P1297)
+.annotate 'line', 448
+ .return ($P1298)
+ control_1251:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1299, exception, "payload"
+ .return ($P1299)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1263" :anon :subid("77_1280467483.70067") :outer("76_1280467483.70067")
+.annotate 'line', 453
+ new $P1265, "Undef"
+ .lex "$name", $P1265
+ find_lex $P1266, "$/"
+ unless_null $P1266, vivify_424
+ $P1266 = root_new ['parrot';'Hash']
vivify_424:
- set $S1258, $P1257
- isne $I1259, $S1258, "our"
- if $I1259, if_1256
- new $P1255, 'Integer'
- set $P1255, $I1259
- goto if_1256_end
- if_1256:
-.annotate 'line', 446
- get_global $P1260, "@BLOCK"
- unless_null $P1260, vivify_426
- $P1260 = root_new ['parrot';'ResizablePMCArray']
+ set $P1267, $P1266["sigil"]
+ unless_null $P1267, vivify_425
+ $P1267 = root_new ['parrot';'ResizablePMCArray']
+ vivify_425:
+ set $P1268, $P1267[0]
+ unless_null $P1268, vivify_426
+ new $P1268, "Undef"
vivify_426:
- set $P1261, $P1260[0]
- unless_null $P1261, vivify_427
- $P1261 = root_new ['parrot';'ResizablePMCArray']
+ set $S1269, $P1268
+ new $P1270, 'String'
+ set $P1270, $S1269
+ find_lex $P1271, "$/"
+ unless_null $P1271, vivify_427
+ $P1271 = root_new ['parrot';'Hash']
vivify_427:
- set $P1262, $P1261[0]
- unless_null $P1262, vivify_428
- new $P1262, "Undef"
+ set $P1272, $P1271["deflongname"]
+ unless_null $P1272, vivify_428
+ $P1272 = root_new ['parrot';'ResizablePMCArray']
vivify_428:
- get_hll_global $P1263, ["PAST"], "Var"
- find_lex $P1264, "$name"
- find_lex $P1265, "$past"
- $P1266 = $P1263."new"($P1264 :named("name"), 1 :named("isdecl"), $P1265 :named("viviself"), "lexical" :named("scope"))
- $P1262."push"($P1266)
-.annotate 'line', 448
- get_global $P1267, "@BLOCK"
- unless_null $P1267, vivify_429
- $P1267 = root_new ['parrot';'ResizablePMCArray']
+ set $P1273, $P1272[0]
+ unless_null $P1273, vivify_429
+ new $P1273, "Undef"
vivify_429:
- set $P1268, $P1267[0]
- unless_null $P1268, vivify_430
- new $P1268, "Undef"
+ $S1274 = $P1273."ast"()
+ concat $P1275, $P1270, $S1274
+ store_lex "$name", $P1275
+.annotate 'line', 454
+ find_lex $P1276, "$past"
+ find_lex $P1277, "$name"
+ $P1276."name"($P1277)
+.annotate 'line', 455
+ find_dynamic_lex $P1280, "$*SCOPE"
+ unless_null $P1280, vivify_430
+ get_hll_global $P1280, "$SCOPE"
+ unless_null $P1280, vivify_431
+ die "Contextual $*SCOPE not found"
+ vivify_431:
vivify_430:
- find_lex $P1269, "$name"
- $P1268."symbol"($P1269, "lexical" :named("scope"))
-.annotate 'line', 449
- get_hll_global $P1270, ["PAST"], "Var"
- find_lex $P1271, "$name"
- $P1272 = $P1270."new"($P1271 :named("name"))
- store_lex "$past", $P1272
-.annotate 'line', 445
- set $P1255, $P1272
- if_1256_end:
-.annotate 'line', 442
- .return ($P1255)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "method_def" :subid("78_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1280
+ set $S1281, $P1280
+ isne $I1282, $S1281, "our"
+ if $I1282, if_1279
+ new $P1278, 'Integer'
+ set $P1278, $I1282
+ goto if_1279_end
+ if_1279:
.annotate 'line', 456
- .const 'Sub' $P1296 = "79_1275811497.55064"
- capture_lex $P1296
- new $P1279, 'ExceptionHandler'
- set_addr $P1279, control_1278
- $P1279."handle_types"(.CONTROL_RETURN)
- push_eh $P1279
- .lex "self", self
- .lex "$/", param_1280
-.annotate 'line', 457
- new $P1281, "Undef"
- .lex "$past", $P1281
- find_lex $P1282, "$/"
- unless_null $P1282, vivify_431
- $P1282 = root_new ['parrot';'Hash']
- vivify_431:
- set $P1283, $P1282["blockoid"]
+ get_global $P1283, "@BLOCK"
unless_null $P1283, vivify_432
- new $P1283, "Undef"
+ $P1283 = root_new ['parrot';'ResizablePMCArray']
vivify_432:
- $P1284 = $P1283."ast"()
- store_lex "$past", $P1284
-.annotate 'line', 458
- find_lex $P1285, "$past"
- $P1285."blocktype"("method")
-.annotate 'line', 459
- find_lex $P1286, "$past"
- $P1286."control"("return_pir")
-.annotate 'line', 460
- find_lex $P1287, "$past"
- unless_null $P1287, vivify_433
- $P1287 = root_new ['parrot';'ResizablePMCArray']
+ set $P1284, $P1283[0]
+ unless_null $P1284, vivify_433
+ $P1284 = root_new ['parrot';'ResizablePMCArray']
vivify_433:
- set $P1288, $P1287[0]
- unless_null $P1288, vivify_434
- new $P1288, "Undef"
+ set $P1285, $P1284[0]
+ unless_null $P1285, vivify_434
+ new $P1285, "Undef"
vivify_434:
- get_hll_global $P1289, ["PAST"], "Op"
- $P1290 = $P1289."new"(" .lex \"self\", self" :named("inline"))
- $P1288."unshift"($P1290)
-.annotate 'line', 461
- find_lex $P1291, "$past"
- $P1291."symbol"("self", "lexical" :named("scope"))
-.annotate 'line', 462
- find_lex $P1293, "$/"
- unless_null $P1293, vivify_435
- $P1293 = root_new ['parrot';'Hash']
+ get_hll_global $P1286, ["PAST"], "Var"
+ find_lex $P1287, "$name"
+ find_lex $P1288, "$past"
+ $P1289 = $P1286."new"($P1287 :named("name"), 1 :named("isdecl"), $P1288 :named("viviself"), "lexical" :named("scope"))
+ $P1285."push"($P1289)
+.annotate 'line', 458
+ get_global $P1290, "@BLOCK"
+ unless_null $P1290, vivify_435
+ $P1290 = root_new ['parrot';'ResizablePMCArray']
vivify_435:
- set $P1294, $P1293["deflongname"]
- unless_null $P1294, vivify_436
- new $P1294, "Undef"
+ set $P1291, $P1290[0]
+ unless_null $P1291, vivify_436
+ new $P1291, "Undef"
vivify_436:
- unless $P1294, if_1292_end
- .const 'Sub' $P1296 = "79_1275811497.55064"
- capture_lex $P1296
- $P1296()
- if_1292_end:
-.annotate 'line', 466
- find_dynamic_lex $P1308, "$*MULTINESS"
- unless_null $P1308, vivify_440
- get_hll_global $P1308, "$MULTINESS"
- unless_null $P1308, vivify_441
- die "Contextual $*MULTINESS not found"
- vivify_441:
- vivify_440:
- set $S1309, $P1308
- iseq $I1310, $S1309, "multi"
- unless $I1310, if_1307_end
- find_lex $P1311, "$past"
- $P1312 = $P1311."multi"()
- $P1312."unshift"("_")
- if_1307_end:
-.annotate 'line', 467
- find_lex $P1313, "$/"
- find_lex $P1314, "$past"
- $P1315 = $P1313."!make"($P1314)
-.annotate 'line', 456
- .return ($P1315)
- control_1278:
- .local pmc exception
- .get_results (exception)
- getattribute $P1316, exception, "payload"
- .return ($P1316)
+ find_lex $P1292, "$name"
+ $P1291."symbol"($P1292, "lexical" :named("scope"))
+.annotate 'line', 459
+ get_hll_global $P1293, ["PAST"], "Var"
+ find_lex $P1294, "$name"
+ $P1295 = $P1293."new"($P1294 :named("name"))
+ store_lex "$past", $P1295
+.annotate 'line', 455
+ set $P1278, $P1295
+ if_1279_end:
+.annotate 'line', 452
+ .return ($P1278)
.end
.namespace ["NQP";"Actions"]
-.sub "_block1295" :anon :subid("79_1275811497.55064") :outer("78_1275811497.55064")
-.annotate 'line', 463
- new $P1297, "Undef"
- .lex "$name", $P1297
- find_lex $P1298, "$/"
- unless_null $P1298, vivify_437
- $P1298 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "method_def" :subid("78_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1303
+.annotate 'line', 466
+ .const 'Sub' $P1324 = "79_1280467483.70067"
+ capture_lex $P1324
+ new $P1302, 'ExceptionHandler'
+ set_addr $P1302, control_1301
+ $P1302."handle_types"(.CONTROL_RETURN)
+ push_eh $P1302
+ .lex "self", self
+ .lex "$/", param_1303
+.annotate 'line', 467
+ new $P1304, "Undef"
+ .lex "$past", $P1304
+ find_lex $P1305, "$/"
+ unless_null $P1305, vivify_437
+ $P1305 = root_new ['parrot';'Hash']
vivify_437:
- set $P1299, $P1298["deflongname"]
- unless_null $P1299, vivify_438
- $P1299 = root_new ['parrot';'ResizablePMCArray']
+ set $P1306, $P1305["blockoid"]
+ unless_null $P1306, vivify_438
+ new $P1306, "Undef"
vivify_438:
- set $P1300, $P1299[0]
- unless_null $P1300, vivify_439
- new $P1300, "Undef"
+ $P1307 = $P1306."ast"()
+ store_lex "$past", $P1307
+.annotate 'line', 468
+ find_lex $P1308, "$past"
+ $P1308."blocktype"("method")
+.annotate 'line', 469
+ find_dynamic_lex $P1310, "$*SCOPE"
+ unless_null $P1310, vivify_439
+ get_hll_global $P1310, "$SCOPE"
+ unless_null $P1310, vivify_440
+ die "Contextual $*SCOPE not found"
+ vivify_440:
vivify_439:
- $P1301 = $P1300."ast"()
- set $S1302, $P1301
- new $P1303, 'String'
- set $P1303, $S1302
- store_lex "$name", $P1303
-.annotate 'line', 464
- find_lex $P1304, "$past"
- find_lex $P1305, "$name"
- $P1306 = $P1304."name"($P1305)
-.annotate 'line', 462
- .return ($P1306)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "signature" :subid("80_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1320
-.annotate 'line', 471
- .const 'Sub' $P1346 = "82_1275811497.55064"
- capture_lex $P1346
- .const 'Sub' $P1331 = "81_1275811497.55064"
- capture_lex $P1331
- new $P1319, 'ExceptionHandler'
- set_addr $P1319, control_1318
- $P1319."handle_types"(.CONTROL_RETURN)
- push_eh $P1319
- .lex "self", self
- .lex "$/", param_1320
+ set $S1311, $P1310
+ iseq $I1312, $S1311, "our"
+ unless $I1312, if_1309_end
+.annotate 'line', 470
+ find_lex $P1313, "$past"
+ $P1313."pirflags"(":nsentry")
+ if_1309_end:
.annotate 'line', 472
- new $P1321, "Undef"
- .lex "$BLOCKINIT", $P1321
- get_global $P1322, "@BLOCK"
- unless_null $P1322, vivify_442
- $P1322 = root_new ['parrot';'ResizablePMCArray']
+ find_lex $P1314, "$past"
+ $P1314."control"("return_pir")
+.annotate 'line', 473
+ find_lex $P1315, "$past"
+ unless_null $P1315, vivify_441
+ $P1315 = root_new ['parrot';'ResizablePMCArray']
+ vivify_441:
+ set $P1316, $P1315[0]
+ unless_null $P1316, vivify_442
+ new $P1316, "Undef"
vivify_442:
- set $P1323, $P1322[0]
- unless_null $P1323, vivify_443
- $P1323 = root_new ['parrot';'ResizablePMCArray']
+ get_hll_global $P1317, ["PAST"], "Op"
+ $P1318 = $P1317."new"(" .lex \"self\", self" :named("inline"))
+ $P1316."unshift"($P1318)
+.annotate 'line', 474
+ find_lex $P1319, "$past"
+ $P1319."symbol"("self", "lexical" :named("scope"))
+.annotate 'line', 475
+ find_lex $P1321, "$/"
+ unless_null $P1321, vivify_443
+ $P1321 = root_new ['parrot';'Hash']
vivify_443:
- set $P1324, $P1323[0]
- unless_null $P1324, vivify_444
- new $P1324, "Undef"
+ set $P1322, $P1321["deflongname"]
+ unless_null $P1322, vivify_444
+ new $P1322, "Undef"
vivify_444:
- store_lex "$BLOCKINIT", $P1324
-.annotate 'line', 474
- find_lex $P1326, "$/"
- unless_null $P1326, vivify_445
- $P1326 = root_new ['parrot';'Hash']
- vivify_445:
- set $P1327, $P1326["parameter"]
- unless_null $P1327, vivify_446
- new $P1327, "Undef"
- vivify_446:
- defined $I1328, $P1327
- unless $I1328, for_undef_447
- iter $P1325, $P1327
- new $P1338, 'ExceptionHandler'
- set_addr $P1338, loop1337_handler
- $P1338."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P1338
- loop1337_test:
- unless $P1325, loop1337_done
- shift $P1329, $P1325
- loop1337_redo:
- .const 'Sub' $P1331 = "81_1275811497.55064"
- capture_lex $P1331
- $P1331($P1329)
- loop1337_next:
- goto loop1337_test
- loop1337_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1339, exception, 'type'
- eq $P1339, .CONTROL_LOOP_NEXT, loop1337_next
- eq $P1339, .CONTROL_LOOP_REDO, loop1337_redo
- loop1337_done:
- pop_eh
- for_undef_447:
-.annotate 'line', 477
- find_dynamic_lex $P1342, "$*MULTINESS"
- unless_null $P1342, vivify_448
- get_hll_global $P1342, "$MULTINESS"
- unless_null $P1342, vivify_449
+ unless $P1322, if_1320_end
+ .const 'Sub' $P1324 = "79_1280467483.70067"
+ capture_lex $P1324
+ $P1324()
+ if_1320_end:
+.annotate 'line', 479
+ find_dynamic_lex $P1336, "$*MULTINESS"
+ unless_null $P1336, vivify_448
+ get_hll_global $P1336, "$MULTINESS"
+ unless_null $P1336, vivify_449
die "Contextual $*MULTINESS not found"
vivify_449:
vivify_448:
- set $S1343, $P1342
- iseq $I1344, $S1343, "multi"
- if $I1344, if_1341
- new $P1340, 'Integer'
- set $P1340, $I1344
- goto if_1341_end
- if_1341:
- .const 'Sub' $P1346 = "82_1275811497.55064"
- capture_lex $P1346
- $P1372 = $P1346()
- set $P1340, $P1372
- if_1341_end:
-.annotate 'line', 471
- .return ($P1340)
- control_1318:
+ set $S1337, $P1336
+ iseq $I1338, $S1337, "multi"
+ unless $I1338, if_1335_end
+ find_lex $P1339, "$past"
+ $P1340 = $P1339."multi"()
+ $P1340."unshift"("_")
+ if_1335_end:
+.annotate 'line', 480
+ find_lex $P1341, "$/"
+ find_lex $P1342, "$past"
+ $P1343 = $P1341."!make"($P1342)
+.annotate 'line', 466
+ .return ($P1343)
+ control_1301:
.local pmc exception
.get_results (exception)
- getattribute $P1373, exception, "payload"
- .return ($P1373)
+ getattribute $P1344, exception, "payload"
+ .return ($P1344)
.end
.namespace ["NQP";"Actions"]
-.sub "_block1330" :anon :subid("81_1275811497.55064") :outer("80_1275811497.55064")
- .param pmc param_1332
-.annotate 'line', 474
- .lex "$_", param_1332
- find_lex $P1333, "$BLOCKINIT"
- find_lex $P1334, "$_"
- $P1335 = $P1334."ast"()
- $P1336 = $P1333."push"($P1335)
- .return ($P1336)
+.sub "_block1323" :anon :subid("79_1280467483.70067") :outer("78_1280467483.70067")
+.annotate 'line', 476
+ new $P1325, "Undef"
+ .lex "$name", $P1325
+ find_lex $P1326, "$/"
+ unless_null $P1326, vivify_445
+ $P1326 = root_new ['parrot';'Hash']
+ vivify_445:
+ set $P1327, $P1326["deflongname"]
+ unless_null $P1327, vivify_446
+ $P1327 = root_new ['parrot';'ResizablePMCArray']
+ vivify_446:
+ set $P1328, $P1327[0]
+ unless_null $P1328, vivify_447
+ new $P1328, "Undef"
+ vivify_447:
+ $P1329 = $P1328."ast"()
+ set $S1330, $P1329
+ new $P1331, 'String'
+ set $P1331, $S1330
+ store_lex "$name", $P1331
+.annotate 'line', 477
+ find_lex $P1332, "$past"
+ find_lex $P1333, "$name"
+ $P1334 = $P1332."name"($P1333)
+.annotate 'line', 475
+ .return ($P1334)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "_block1345" :anon :subid("82_1275811497.55064") :outer("80_1275811497.55064")
-.annotate 'line', 477
- .const 'Sub' $P1355 = "83_1275811497.55064"
- capture_lex $P1355
-.annotate 'line', 478
- $P1347 = root_new ['parrot';'ResizablePMCArray']
- .lex "@params", $P1347
-.annotate 'line', 477
- find_lex $P1348, "@params"
-.annotate 'line', 479
- find_lex $P1350, "$BLOCKINIT"
- $P1351 = $P1350."list"()
- defined $I1352, $P1351
- unless $I1352, for_undef_450
- iter $P1349, $P1351
+.sub "signature" :subid("80_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1348
+.annotate 'line', 484
+ .const 'Sub' $P1374 = "82_1280467483.70067"
+ capture_lex $P1374
+ .const 'Sub' $P1359 = "81_1280467483.70067"
+ capture_lex $P1359
+ new $P1347, 'ExceptionHandler'
+ set_addr $P1347, control_1346
+ $P1347."handle_types"(.CONTROL_RETURN)
+ push_eh $P1347
+ .lex "self", self
+ .lex "$/", param_1348
+.annotate 'line', 485
+ new $P1349, "Undef"
+ .lex "$BLOCKINIT", $P1349
+ get_global $P1350, "@BLOCK"
+ unless_null $P1350, vivify_450
+ $P1350 = root_new ['parrot';'ResizablePMCArray']
+ vivify_450:
+ set $P1351, $P1350[0]
+ unless_null $P1351, vivify_451
+ $P1351 = root_new ['parrot';'ResizablePMCArray']
+ vivify_451:
+ set $P1352, $P1351[0]
+ unless_null $P1352, vivify_452
+ new $P1352, "Undef"
+ vivify_452:
+ store_lex "$BLOCKINIT", $P1352
+.annotate 'line', 487
+ find_lex $P1354, "$/"
+ unless_null $P1354, vivify_453
+ $P1354 = root_new ['parrot';'Hash']
+ vivify_453:
+ set $P1355, $P1354["parameter"]
+ unless_null $P1355, vivify_454
+ new $P1355, "Undef"
+ vivify_454:
+ defined $I1356, $P1355
+ unless $I1356, for_undef_455
+ iter $P1353, $P1355
new $P1366, 'ExceptionHandler'
set_addr $P1366, loop1365_handler
$P1366."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P1366
loop1365_test:
- unless $P1349, loop1365_done
- shift $P1353, $P1349
+ unless $P1353, loop1365_done
+ shift $P1357, $P1353
loop1365_redo:
- .const 'Sub' $P1355 = "83_1275811497.55064"
- capture_lex $P1355
- $P1355($P1353)
+ .const 'Sub' $P1359 = "81_1280467483.70067"
+ capture_lex $P1359
+ $P1359($P1357)
loop1365_next:
goto loop1365_test
loop1365_handler:
@@ -21711,1540 +22765,1443 @@
eq $P1367, .CONTROL_LOOP_REDO, loop1365_redo
loop1365_done:
pop_eh
- for_undef_450:
-.annotate 'line', 482
- get_global $P1368, "@BLOCK"
- unless_null $P1368, vivify_451
- $P1368 = root_new ['parrot';'ResizablePMCArray']
- vivify_451:
- set $P1369, $P1368[0]
- unless_null $P1369, vivify_452
- new $P1369, "Undef"
- vivify_452:
- find_lex $P1370, "@params"
- $P1371 = $P1369."multi"($P1370)
-.annotate 'line', 477
- .return ($P1371)
+ for_undef_455:
+.annotate 'line', 490
+ find_dynamic_lex $P1370, "$*MULTINESS"
+ unless_null $P1370, vivify_456
+ get_hll_global $P1370, "$MULTINESS"
+ unless_null $P1370, vivify_457
+ die "Contextual $*MULTINESS not found"
+ vivify_457:
+ vivify_456:
+ set $S1371, $P1370
+ iseq $I1372, $S1371, "multi"
+ if $I1372, if_1369
+ new $P1368, 'Integer'
+ set $P1368, $I1372
+ goto if_1369_end
+ if_1369:
+ .const 'Sub' $P1374 = "82_1280467483.70067"
+ capture_lex $P1374
+ $P1400 = $P1374()
+ set $P1368, $P1400
+ if_1369_end:
+.annotate 'line', 484
+ .return ($P1368)
+ control_1346:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1401, exception, "payload"
+ .return ($P1401)
.end
.namespace ["NQP";"Actions"]
-.sub "_block1354" :anon :subid("83_1275811497.55064") :outer("82_1275811497.55064")
- .param pmc param_1356
-.annotate 'line', 479
- .lex "$_", param_1356
-.annotate 'line', 480
- find_lex $P1357, "@params"
- find_lex $P1359, "$_"
- $P1360 = $P1359."multitype"()
- set $P1358, $P1360
- defined $I1362, $P1358
- if $I1362, default_1361
- new $P1363, "String"
- assign $P1363, "_"
- set $P1358, $P1363
- default_1361:
- $P1364 = $P1357."push"($P1358)
-.annotate 'line', 479
+.sub "_block1358" :anon :subid("81_1280467483.70067") :outer("80_1280467483.70067")
+ .param pmc param_1360
+.annotate 'line', 487
+ .lex "$_", param_1360
+ find_lex $P1361, "$BLOCKINIT"
+ find_lex $P1362, "$_"
+ $P1363 = $P1362."ast"()
+ $P1364 = $P1361."push"($P1363)
.return ($P1364)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "parameter" :subid("84_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1377
-.annotate 'line', 486
- .const 'Sub' $P1458 = "85_1275811497.55064"
- capture_lex $P1458
- new $P1376, 'ExceptionHandler'
- set_addr $P1376, control_1375
- $P1376."handle_types"(.CONTROL_RETURN)
- push_eh $P1376
- .lex "self", self
- .lex "$/", param_1377
-.annotate 'line', 487
- new $P1378, "Undef"
- .lex "$quant", $P1378
-.annotate 'line', 488
- new $P1379, "Undef"
- .lex "$past", $P1379
-.annotate 'line', 487
- find_lex $P1380, "$/"
- unless_null $P1380, vivify_453
- $P1380 = root_new ['parrot';'Hash']
- vivify_453:
- set $P1381, $P1380["quant"]
- unless_null $P1381, vivify_454
- new $P1381, "Undef"
- vivify_454:
- store_lex "$quant", $P1381
- find_lex $P1382, "$past"
-.annotate 'line', 489
- find_lex $P1384, "$/"
- unless_null $P1384, vivify_455
- $P1384 = root_new ['parrot';'Hash']
- vivify_455:
- set $P1385, $P1384["named_param"]
- unless_null $P1385, vivify_456
- new $P1385, "Undef"
- vivify_456:
- if $P1385, if_1383
-.annotate 'line', 496
- find_lex $P1399, "$/"
- unless_null $P1399, vivify_457
- $P1399 = root_new ['parrot';'Hash']
- vivify_457:
- set $P1400, $P1399["param_var"]
- unless_null $P1400, vivify_458
- new $P1400, "Undef"
- vivify_458:
- $P1401 = $P1400."ast"()
- store_lex "$past", $P1401
-.annotate 'line', 497
- find_lex $P1403, "$quant"
- set $S1404, $P1403
- iseq $I1405, $S1404, "*"
- if $I1405, if_1402
-.annotate 'line', 501
- find_lex $P1414, "$quant"
- set $S1415, $P1414
- iseq $I1416, $S1415, "?"
- unless $I1416, if_1413_end
-.annotate 'line', 502
- find_lex $P1417, "$past"
- find_lex $P1418, "$/"
- unless_null $P1418, vivify_459
- $P1418 = root_new ['parrot';'Hash']
+.sub "_block1373" :anon :subid("82_1280467483.70067") :outer("80_1280467483.70067")
+.annotate 'line', 490
+ .const 'Sub' $P1383 = "83_1280467483.70067"
+ capture_lex $P1383
+.annotate 'line', 491
+ $P1375 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@params", $P1375
+.annotate 'line', 490
+ find_lex $P1376, "@params"
+.annotate 'line', 492
+ find_lex $P1378, "$BLOCKINIT"
+ $P1379 = $P1378."list"()
+ defined $I1380, $P1379
+ unless $I1380, for_undef_458
+ iter $P1377, $P1379
+ new $P1394, 'ExceptionHandler'
+ set_addr $P1394, loop1393_handler
+ $P1394."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P1394
+ loop1393_test:
+ unless $P1377, loop1393_done
+ shift $P1381, $P1377
+ loop1393_redo:
+ .const 'Sub' $P1383 = "83_1280467483.70067"
+ capture_lex $P1383
+ $P1383($P1381)
+ loop1393_next:
+ goto loop1393_test
+ loop1393_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1395, exception, 'type'
+ eq $P1395, .CONTROL_LOOP_NEXT, loop1393_next
+ eq $P1395, .CONTROL_LOOP_REDO, loop1393_redo
+ loop1393_done:
+ pop_eh
+ for_undef_458:
+.annotate 'line', 495
+ get_global $P1396, "@BLOCK"
+ unless_null $P1396, vivify_459
+ $P1396 = root_new ['parrot';'ResizablePMCArray']
vivify_459:
- set $P1419, $P1418["param_var"]
- unless_null $P1419, vivify_460
- $P1419 = root_new ['parrot';'Hash']
+ set $P1397, $P1396[0]
+ unless_null $P1397, vivify_460
+ new $P1397, "Undef"
vivify_460:
- set $P1420, $P1419["sigil"]
- unless_null $P1420, vivify_461
- new $P1420, "Undef"
- vivify_461:
- $P1421 = "vivitype"($P1420)
- $P1417."viviself"($P1421)
- if_1413_end:
-.annotate 'line', 501
- goto if_1402_end
- if_1402:
-.annotate 'line', 498
- find_lex $P1406, "$past"
- $P1406."slurpy"(1)
+ find_lex $P1398, "@params"
+ $P1399 = $P1397."multi"($P1398)
+.annotate 'line', 490
+ .return ($P1399)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1382" :anon :subid("83_1280467483.70067") :outer("82_1280467483.70067")
+ .param pmc param_1384
+.annotate 'line', 492
+ .lex "$_", param_1384
+.annotate 'line', 493
+ find_lex $P1385, "@params"
+ find_lex $P1387, "$_"
+ $P1388 = $P1387."multitype"()
+ set $P1386, $P1388
+ defined $I1390, $P1386
+ if $I1390, default_1389
+ new $P1391, "String"
+ assign $P1391, "_"
+ set $P1386, $P1391
+ default_1389:
+ $P1392 = $P1385."push"($P1386)
+.annotate 'line', 492
+ .return ($P1392)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "parameter" :subid("84_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1405
.annotate 'line', 499
- find_lex $P1407, "$past"
+ .const 'Sub' $P1486 = "85_1280467483.70067"
+ capture_lex $P1486
+ new $P1404, 'ExceptionHandler'
+ set_addr $P1404, control_1403
+ $P1404."handle_types"(.CONTROL_RETURN)
+ push_eh $P1404
+ .lex "self", self
+ .lex "$/", param_1405
+.annotate 'line', 500
+ new $P1406, "Undef"
+ .lex "$quant", $P1406
+.annotate 'line', 501
+ new $P1407, "Undef"
+ .lex "$past", $P1407
+.annotate 'line', 500
find_lex $P1408, "$/"
- unless_null $P1408, vivify_462
+ unless_null $P1408, vivify_461
$P1408 = root_new ['parrot';'Hash']
+ vivify_461:
+ set $P1409, $P1408["quant"]
+ unless_null $P1409, vivify_462
+ new $P1409, "Undef"
vivify_462:
- set $P1409, $P1408["param_var"]
- unless_null $P1409, vivify_463
- $P1409 = root_new ['parrot';'Hash']
+ store_lex "$quant", $P1409
+ find_lex $P1410, "$past"
+.annotate 'line', 502
+ find_lex $P1412, "$/"
+ unless_null $P1412, vivify_463
+ $P1412 = root_new ['parrot';'Hash']
vivify_463:
- set $P1410, $P1409["sigil"]
- unless_null $P1410, vivify_464
- new $P1410, "Undef"
+ set $P1413, $P1412["named_param"]
+ unless_null $P1413, vivify_464
+ new $P1413, "Undef"
vivify_464:
- set $S1411, $P1410
- iseq $I1412, $S1411, "%"
- $P1407."named"($I1412)
- if_1402_end:
-.annotate 'line', 495
- goto if_1383_end
- if_1383:
-.annotate 'line', 490
- find_lex $P1386, "$/"
- unless_null $P1386, vivify_465
- $P1386 = root_new ['parrot';'Hash']
+ if $P1413, if_1411
+.annotate 'line', 509
+ find_lex $P1427, "$/"
+ unless_null $P1427, vivify_465
+ $P1427 = root_new ['parrot';'Hash']
vivify_465:
- set $P1387, $P1386["named_param"]
- unless_null $P1387, vivify_466
- new $P1387, "Undef"
+ set $P1428, $P1427["param_var"]
+ unless_null $P1428, vivify_466
+ new $P1428, "Undef"
vivify_466:
- $P1388 = $P1387."ast"()
- store_lex "$past", $P1388
-.annotate 'line', 491
- find_lex $P1390, "$quant"
- set $S1391, $P1390
- isne $I1392, $S1391, "!"
- unless $I1392, if_1389_end
-.annotate 'line', 492
- find_lex $P1393, "$past"
- find_lex $P1394, "$/"
- unless_null $P1394, vivify_467
- $P1394 = root_new ['parrot';'Hash']
+ $P1429 = $P1428."ast"()
+ store_lex "$past", $P1429
+.annotate 'line', 510
+ find_lex $P1431, "$quant"
+ set $S1432, $P1431
+ iseq $I1433, $S1432, "*"
+ if $I1433, if_1430
+.annotate 'line', 514
+ find_lex $P1442, "$quant"
+ set $S1443, $P1442
+ iseq $I1444, $S1443, "?"
+ unless $I1444, if_1441_end
+.annotate 'line', 515
+ find_lex $P1445, "$past"
+ find_lex $P1446, "$/"
+ unless_null $P1446, vivify_467
+ $P1446 = root_new ['parrot';'Hash']
vivify_467:
- set $P1395, $P1394["named_param"]
- unless_null $P1395, vivify_468
- $P1395 = root_new ['parrot';'Hash']
+ set $P1447, $P1446["param_var"]
+ unless_null $P1447, vivify_468
+ $P1447 = root_new ['parrot';'Hash']
vivify_468:
- set $P1396, $P1395["param_var"]
- unless_null $P1396, vivify_469
- $P1396 = root_new ['parrot';'Hash']
+ set $P1448, $P1447["sigil"]
+ unless_null $P1448, vivify_469
+ new $P1448, "Undef"
vivify_469:
- set $P1397, $P1396["sigil"]
- unless_null $P1397, vivify_470
- new $P1397, "Undef"
+ $P1449 = "vivitype"($P1448)
+ $P1445."viviself"($P1449)
+ if_1441_end:
+.annotate 'line', 514
+ goto if_1430_end
+ if_1430:
+.annotate 'line', 511
+ find_lex $P1434, "$past"
+ $P1434."slurpy"(1)
+.annotate 'line', 512
+ find_lex $P1435, "$past"
+ find_lex $P1436, "$/"
+ unless_null $P1436, vivify_470
+ $P1436 = root_new ['parrot';'Hash']
vivify_470:
- $P1398 = "vivitype"($P1397)
- $P1393."viviself"($P1398)
- if_1389_end:
- if_1383_end:
-.annotate 'line', 505
- find_lex $P1423, "$/"
- unless_null $P1423, vivify_471
- $P1423 = root_new ['parrot';'Hash']
+ set $P1437, $P1436["param_var"]
+ unless_null $P1437, vivify_471
+ $P1437 = root_new ['parrot';'Hash']
vivify_471:
- set $P1424, $P1423["default_value"]
- unless_null $P1424, vivify_472
- new $P1424, "Undef"
+ set $P1438, $P1437["sigil"]
+ unless_null $P1438, vivify_472
+ new $P1438, "Undef"
vivify_472:
- unless $P1424, if_1422_end
-.annotate 'line', 506
- find_lex $P1426, "$quant"
- set $S1427, $P1426
- iseq $I1428, $S1427, "*"
- unless $I1428, if_1425_end
-.annotate 'line', 507
- find_lex $P1429, "$/"
- $P1430 = $P1429."CURSOR"()
- $P1430."panic"("Can't put default on slurpy parameter")
- if_1425_end:
-.annotate 'line', 509
- find_lex $P1432, "$quant"
- set $S1433, $P1432
- iseq $I1434, $S1433, "!"
- unless $I1434, if_1431_end
-.annotate 'line', 510
- find_lex $P1435, "$/"
- $P1436 = $P1435."CURSOR"()
- $P1436."panic"("Can't put default on required parameter")
- if_1431_end:
-.annotate 'line', 512
- find_lex $P1437, "$past"
- find_lex $P1438, "$/"
- unless_null $P1438, vivify_473
- $P1438 = root_new ['parrot';'Hash']
+ set $S1439, $P1438
+ iseq $I1440, $S1439, "%"
+ $P1435."named"($I1440)
+ if_1430_end:
+.annotate 'line', 508
+ goto if_1411_end
+ if_1411:
+.annotate 'line', 503
+ find_lex $P1414, "$/"
+ unless_null $P1414, vivify_473
+ $P1414 = root_new ['parrot';'Hash']
vivify_473:
- set $P1439, $P1438["default_value"]
- unless_null $P1439, vivify_474
- $P1439 = root_new ['parrot';'ResizablePMCArray']
+ set $P1415, $P1414["named_param"]
+ unless_null $P1415, vivify_474
+ new $P1415, "Undef"
vivify_474:
- set $P1440, $P1439[0]
- unless_null $P1440, vivify_475
- $P1440 = root_new ['parrot';'Hash']
+ $P1416 = $P1415."ast"()
+ store_lex "$past", $P1416
+.annotate 'line', 504
+ find_lex $P1418, "$quant"
+ set $S1419, $P1418
+ isne $I1420, $S1419, "!"
+ unless $I1420, if_1417_end
+.annotate 'line', 505
+ find_lex $P1421, "$past"
+ find_lex $P1422, "$/"
+ unless_null $P1422, vivify_475
+ $P1422 = root_new ['parrot';'Hash']
vivify_475:
- set $P1441, $P1440["EXPR"]
- unless_null $P1441, vivify_476
- new $P1441, "Undef"
+ set $P1423, $P1422["named_param"]
+ unless_null $P1423, vivify_476
+ $P1423 = root_new ['parrot';'Hash']
vivify_476:
- $P1442 = $P1441."ast"()
- $P1437."viviself"($P1442)
- if_1422_end:
-.annotate 'line', 514
- find_lex $P1444, "$past"
- $P1445 = $P1444."viviself"()
- if $P1445, unless_1443_end
- get_global $P1446, "@BLOCK"
- unless_null $P1446, vivify_477
- $P1446 = root_new ['parrot';'ResizablePMCArray']
+ set $P1424, $P1423["param_var"]
+ unless_null $P1424, vivify_477
+ $P1424 = root_new ['parrot';'Hash']
vivify_477:
- set $P1447, $P1446[0]
- unless_null $P1447, vivify_478
- new $P1447, "Undef"
+ set $P1425, $P1424["sigil"]
+ unless_null $P1425, vivify_478
+ new $P1425, "Undef"
vivify_478:
- get_global $P1448, "@BLOCK"
- unless_null $P1448, vivify_479
- $P1448 = root_new ['parrot';'ResizablePMCArray']
+ $P1426 = "vivitype"($P1425)
+ $P1421."viviself"($P1426)
+ if_1417_end:
+ if_1411_end:
+.annotate 'line', 518
+ find_lex $P1451, "$/"
+ unless_null $P1451, vivify_479
+ $P1451 = root_new ['parrot';'Hash']
vivify_479:
- set $P1449, $P1448[0]
- unless_null $P1449, vivify_480
- new $P1449, "Undef"
+ set $P1452, $P1451["default_value"]
+ unless_null $P1452, vivify_480
+ new $P1452, "Undef"
vivify_480:
- $P1450 = $P1449."arity"()
- set $N1451, $P1450
- new $P1452, 'Float'
- set $P1452, $N1451
- add $P1453, $P1452, 1
- $P1447."arity"($P1453)
- unless_1443_end:
-.annotate 'line', 517
- find_lex $P1455, "$/"
- unless_null $P1455, vivify_481
- $P1455 = root_new ['parrot';'Hash']
+ unless $P1452, if_1450_end
+.annotate 'line', 519
+ find_lex $P1454, "$quant"
+ set $S1455, $P1454
+ iseq $I1456, $S1455, "*"
+ unless $I1456, if_1453_end
+.annotate 'line', 520
+ find_lex $P1457, "$/"
+ $P1458 = $P1457."CURSOR"()
+ $P1458."panic"("Can't put default on slurpy parameter")
+ if_1453_end:
+.annotate 'line', 522
+ find_lex $P1460, "$quant"
+ set $S1461, $P1460
+ iseq $I1462, $S1461, "!"
+ unless $I1462, if_1459_end
+.annotate 'line', 523
+ find_lex $P1463, "$/"
+ $P1464 = $P1463."CURSOR"()
+ $P1464."panic"("Can't put default on required parameter")
+ if_1459_end:
+.annotate 'line', 525
+ find_lex $P1465, "$past"
+ find_lex $P1466, "$/"
+ unless_null $P1466, vivify_481
+ $P1466 = root_new ['parrot';'Hash']
vivify_481:
- set $P1456, $P1455["typename"]
- unless_null $P1456, vivify_482
- new $P1456, "Undef"
+ set $P1467, $P1466["default_value"]
+ unless_null $P1467, vivify_482
+ $P1467 = root_new ['parrot';'ResizablePMCArray']
vivify_482:
- unless $P1456, if_1454_end
- .const 'Sub' $P1458 = "85_1275811497.55064"
- capture_lex $P1458
- $P1458()
- if_1454_end:
-.annotate 'line', 523
- find_lex $P1482, "$/"
- find_lex $P1483, "$past"
- $P1484 = $P1482."!make"($P1483)
-.annotate 'line', 486
- .return ($P1484)
- control_1375:
- .local pmc exception
- .get_results (exception)
- getattribute $P1485, exception, "payload"
- .return ($P1485)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "_block1457" :anon :subid("85_1275811497.55064") :outer("84_1275811497.55064")
-.annotate 'line', 517
- .const 'Sub' $P1470 = "86_1275811497.55064"
- capture_lex $P1470
-.annotate 'line', 518
- $P1459 = root_new ['parrot';'ResizablePMCArray']
- .lex "@multitype", $P1459
-.annotate 'line', 517
- find_lex $P1460, "@multitype"
-.annotate 'line', 519
- find_lex $P1462, "$/"
- unless_null $P1462, vivify_483
- $P1462 = root_new ['parrot';'Hash']
+ set $P1468, $P1467[0]
+ unless_null $P1468, vivify_483
+ $P1468 = root_new ['parrot';'Hash']
vivify_483:
- set $P1463, $P1462["typename"]
- unless_null $P1463, vivify_484
- $P1463 = root_new ['parrot';'ResizablePMCArray']
+ set $P1469, $P1468["EXPR"]
+ unless_null $P1469, vivify_484
+ new $P1469, "Undef"
vivify_484:
- set $P1464, $P1463[0]
- unless_null $P1464, vivify_485
- $P1464 = root_new ['parrot';'Hash']
+ $P1470 = $P1469."ast"()
+ $P1465."viviself"($P1470)
+ if_1450_end:
+.annotate 'line', 527
+ find_lex $P1472, "$past"
+ $P1473 = $P1472."viviself"()
+ if $P1473, unless_1471_end
+ get_global $P1474, "@BLOCK"
+ unless_null $P1474, vivify_485
+ $P1474 = root_new ['parrot';'ResizablePMCArray']
vivify_485:
- set $P1465, $P1464["name"]
- unless_null $P1465, vivify_486
- $P1465 = root_new ['parrot';'Hash']
+ set $P1475, $P1474[0]
+ unless_null $P1475, vivify_486
+ new $P1475, "Undef"
vivify_486:
- set $P1466, $P1465["identifier"]
- unless_null $P1466, vivify_487
- new $P1466, "Undef"
+ get_global $P1476, "@BLOCK"
+ unless_null $P1476, vivify_487
+ $P1476 = root_new ['parrot';'ResizablePMCArray']
vivify_487:
- defined $I1467, $P1466
- unless $I1467, for_undef_488
- iter $P1461, $P1466
- new $P1477, 'ExceptionHandler'
- set_addr $P1477, loop1476_handler
- $P1477."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P1477
- loop1476_test:
- unless $P1461, loop1476_done
- shift $P1468, $P1461
- loop1476_redo:
- .const 'Sub' $P1470 = "86_1275811497.55064"
- capture_lex $P1470
- $P1470($P1468)
- loop1476_next:
- goto loop1476_test
- loop1476_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1478, exception, 'type'
- eq $P1478, .CONTROL_LOOP_NEXT, loop1476_next
- eq $P1478, .CONTROL_LOOP_REDO, loop1476_redo
- loop1476_done:
- pop_eh
- for_undef_488:
-.annotate 'line', 520
- find_lex $P1479, "$past"
- find_lex $P1480, "@multitype"
- $P1481 = $P1479."multitype"($P1480)
-.annotate 'line', 517
- .return ($P1481)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "_block1469" :anon :subid("86_1275811497.55064") :outer("85_1275811497.55064")
- .param pmc param_1471
-.annotate 'line', 519
- .lex "$_", param_1471
- find_lex $P1472, "@multitype"
- find_lex $P1473, "$_"
- set $S1474, $P1473
- $P1475 = $P1472."push"($S1474)
- .return ($P1475)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "param_var" :subid("87_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1489
-.annotate 'line', 526
- new $P1488, 'ExceptionHandler'
- set_addr $P1488, control_1487
- $P1488."handle_types"(.CONTROL_RETURN)
- push_eh $P1488
- .lex "self", self
- .lex "$/", param_1489
-.annotate 'line', 527
- new $P1490, "Undef"
- .lex "$name", $P1490
-.annotate 'line', 528
- new $P1491, "Undef"
- .lex "$past", $P1491
-.annotate 'line', 527
- find_lex $P1492, "$/"
- set $S1493, $P1492
- new $P1494, 'String'
- set $P1494, $S1493
- store_lex "$name", $P1494
-.annotate 'line', 528
- get_hll_global $P1495, ["PAST"], "Var"
- find_lex $P1496, "$name"
- find_lex $P1497, "$/"
- $P1498 = $P1495."new"($P1496 :named("name"), "parameter" :named("scope"), 1 :named("isdecl"), $P1497 :named("node"))
- store_lex "$past", $P1498
+ set $P1477, $P1476[0]
+ unless_null $P1477, vivify_488
+ new $P1477, "Undef"
+ vivify_488:
+ $P1478 = $P1477."arity"()
+ set $N1479, $P1478
+ new $P1480, 'Float'
+ set $P1480, $N1479
+ add $P1481, $P1480, 1
+ $P1475."arity"($P1481)
+ unless_1471_end:
.annotate 'line', 530
- get_global $P1499, "@BLOCK"
- unless_null $P1499, vivify_489
- $P1499 = root_new ['parrot';'ResizablePMCArray']
+ find_lex $P1483, "$/"
+ unless_null $P1483, vivify_489
+ $P1483 = root_new ['parrot';'Hash']
vivify_489:
- set $P1500, $P1499[0]
- unless_null $P1500, vivify_490
- new $P1500, "Undef"
+ set $P1484, $P1483["typename"]
+ unless_null $P1484, vivify_490
+ new $P1484, "Undef"
vivify_490:
- find_lex $P1501, "$name"
- $P1500."symbol"($P1501, "lexical" :named("scope"))
-.annotate 'line', 531
- find_lex $P1502, "$/"
- find_lex $P1503, "$past"
- $P1504 = $P1502."!make"($P1503)
-.annotate 'line', 526
- .return ($P1504)
- control_1487:
+ unless $P1484, if_1482_end
+ .const 'Sub' $P1486 = "85_1280467483.70067"
+ capture_lex $P1486
+ $P1486()
+ if_1482_end:
+.annotate 'line', 536
+ find_lex $P1510, "$/"
+ find_lex $P1511, "$past"
+ $P1512 = $P1510."!make"($P1511)
+.annotate 'line', 499
+ .return ($P1512)
+ control_1403:
.local pmc exception
.get_results (exception)
- getattribute $P1505, exception, "payload"
- .return ($P1505)
+ getattribute $P1513, exception, "payload"
+ .return ($P1513)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "named_param" :subid("88_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1509
-.annotate 'line', 534
- new $P1508, 'ExceptionHandler'
- set_addr $P1508, control_1507
- $P1508."handle_types"(.CONTROL_RETURN)
- push_eh $P1508
- .lex "self", self
- .lex "$/", param_1509
-.annotate 'line', 535
- new $P1510, "Undef"
- .lex "$past", $P1510
- find_lex $P1511, "$/"
- unless_null $P1511, vivify_491
- $P1511 = root_new ['parrot';'Hash']
+.sub "_block1485" :anon :subid("85_1280467483.70067") :outer("84_1280467483.70067")
+.annotate 'line', 530
+ .const 'Sub' $P1498 = "86_1280467483.70067"
+ capture_lex $P1498
+.annotate 'line', 531
+ $P1487 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@multitype", $P1487
+.annotate 'line', 530
+ find_lex $P1488, "@multitype"
+.annotate 'line', 532
+ find_lex $P1490, "$/"
+ unless_null $P1490, vivify_491
+ $P1490 = root_new ['parrot';'Hash']
vivify_491:
- set $P1512, $P1511["param_var"]
- unless_null $P1512, vivify_492
- new $P1512, "Undef"
+ set $P1491, $P1490["typename"]
+ unless_null $P1491, vivify_492
+ $P1491 = root_new ['parrot';'ResizablePMCArray']
vivify_492:
- $P1513 = $P1512."ast"()
- store_lex "$past", $P1513
-.annotate 'line', 536
- find_lex $P1514, "$past"
- find_lex $P1515, "$/"
- unless_null $P1515, vivify_493
- $P1515 = root_new ['parrot';'Hash']
+ set $P1492, $P1491[0]
+ unless_null $P1492, vivify_493
+ $P1492 = root_new ['parrot';'Hash']
vivify_493:
- set $P1516, $P1515["param_var"]
- unless_null $P1516, vivify_494
- $P1516 = root_new ['parrot';'Hash']
+ set $P1493, $P1492["name"]
+ unless_null $P1493, vivify_494
+ $P1493 = root_new ['parrot';'Hash']
vivify_494:
- set $P1517, $P1516["name"]
- unless_null $P1517, vivify_495
- new $P1517, "Undef"
+ set $P1494, $P1493["identifier"]
+ unless_null $P1494, vivify_495
+ new $P1494, "Undef"
vivify_495:
- set $S1518, $P1517
- $P1514."named"($S1518)
-.annotate 'line', 537
- find_lex $P1519, "$/"
- find_lex $P1520, "$past"
- $P1521 = $P1519."!make"($P1520)
-.annotate 'line', 534
- .return ($P1521)
- control_1507:
- .local pmc exception
- .get_results (exception)
- getattribute $P1522, exception, "payload"
- .return ($P1522)
+ defined $I1495, $P1494
+ unless $I1495, for_undef_496
+ iter $P1489, $P1494
+ new $P1505, 'ExceptionHandler'
+ set_addr $P1505, loop1504_handler
+ $P1505."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P1505
+ loop1504_test:
+ unless $P1489, loop1504_done
+ shift $P1496, $P1489
+ loop1504_redo:
+ .const 'Sub' $P1498 = "86_1280467483.70067"
+ capture_lex $P1498
+ $P1498($P1496)
+ loop1504_next:
+ goto loop1504_test
+ loop1504_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1506, exception, 'type'
+ eq $P1506, .CONTROL_LOOP_NEXT, loop1504_next
+ eq $P1506, .CONTROL_LOOP_REDO, loop1504_redo
+ loop1504_done:
+ pop_eh
+ for_undef_496:
+.annotate 'line', 533
+ find_lex $P1507, "$past"
+ find_lex $P1508, "@multitype"
+ $P1509 = $P1507."multitype"($P1508)
+.annotate 'line', 530
+ .return ($P1509)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1497" :anon :subid("86_1280467483.70067") :outer("85_1280467483.70067")
+ .param pmc param_1499
+.annotate 'line', 532
+ .lex "$_", param_1499
+ find_lex $P1500, "@multitype"
+ find_lex $P1501, "$_"
+ set $S1502, $P1501
+ $P1503 = $P1500."push"($S1502)
+ .return ($P1503)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "regex_declarator" :subid("89_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1526
- .param pmc param_1527 :optional
- .param int has_param_1527 :opt_flag
-.annotate 'line', 540
- .const 'Sub' $P1597 = "91_1275811497.55064"
- capture_lex $P1597
- .const 'Sub' $P1569 = "90_1275811497.55064"
- capture_lex $P1569
- new $P1525, 'ExceptionHandler'
- set_addr $P1525, control_1524
- $P1525."handle_types"(.CONTROL_RETURN)
- push_eh $P1525
+.sub "param_var" :subid("87_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1517
+.annotate 'line', 539
+ new $P1516, 'ExceptionHandler'
+ set_addr $P1516, control_1515
+ $P1516."handle_types"(.CONTROL_RETURN)
+ push_eh $P1516
.lex "self", self
- .lex "$/", param_1526
- if has_param_1527, optparam_496
- new $P1528, "Undef"
- set param_1527, $P1528
- optparam_496:
- .lex "$key", param_1527
+ .lex "$/", param_1517
+.annotate 'line', 540
+ new $P1518, "Undef"
+ .lex "$name", $P1518
.annotate 'line', 541
- $P1529 = root_new ['parrot';'ResizablePMCArray']
- .lex "@MODIFIERS", $P1529
-.annotate 'line', 544
- new $P1530, "Undef"
- .lex "$name", $P1530
-.annotate 'line', 545
- new $P1531, "Undef"
- .lex "$past", $P1531
+ new $P1519, "Undef"
+ .lex "$past", $P1519
+.annotate 'line', 540
+ find_lex $P1520, "$/"
+ set $S1521, $P1520
+ new $P1522, 'String'
+ set $P1522, $S1521
+ store_lex "$name", $P1522
.annotate 'line', 541
-
- $P1532 = get_hll_global ['Regex';'P6Regex';'Actions'], '@MODIFIERS'
-
- store_lex "@MODIFIERS", $P1532
-.annotate 'line', 544
- find_lex $P1533, "$/"
- unless_null $P1533, vivify_497
- $P1533 = root_new ['parrot';'Hash']
+ get_hll_global $P1523, ["PAST"], "Var"
+ find_lex $P1524, "$name"
+ find_lex $P1525, "$/"
+ $P1526 = $P1523."new"($P1524 :named("name"), "parameter" :named("scope"), 1 :named("isdecl"), $P1525 :named("node"))
+ store_lex "$past", $P1526
+.annotate 'line', 543
+ get_global $P1527, "@BLOCK"
+ unless_null $P1527, vivify_497
+ $P1527 = root_new ['parrot';'ResizablePMCArray']
vivify_497:
- set $P1534, $P1533["deflongname"]
- unless_null $P1534, vivify_498
- new $P1534, "Undef"
+ set $P1528, $P1527[0]
+ unless_null $P1528, vivify_498
+ new $P1528, "Undef"
vivify_498:
- $P1535 = $P1534."ast"()
- set $S1536, $P1535
- new $P1537, 'String'
- set $P1537, $S1536
- store_lex "$name", $P1537
- find_lex $P1538, "$past"
-.annotate 'line', 546
- find_lex $P1540, "$/"
- unless_null $P1540, vivify_499
- $P1540 = root_new ['parrot';'Hash']
- vivify_499:
- set $P1541, $P1540["proto"]
- unless_null $P1541, vivify_500
- new $P1541, "Undef"
- vivify_500:
- if $P1541, if_1539
-.annotate 'line', 573
- find_lex $P1565, "$key"
- set $S1566, $P1565
- iseq $I1567, $S1566, "open"
- if $I1567, if_1564
-.annotate 'line', 586
- .const 'Sub' $P1597 = "91_1275811497.55064"
- capture_lex $P1597
- $P1597()
- goto if_1564_end
- if_1564:
-.annotate 'line', 573
- .const 'Sub' $P1569 = "90_1275811497.55064"
- capture_lex $P1569
- $P1569()
- if_1564_end:
- goto if_1539_end
- if_1539:
-.annotate 'line', 548
- get_hll_global $P1542, ["PAST"], "Stmts"
-.annotate 'line', 549
- get_hll_global $P1543, ["PAST"], "Block"
- find_lex $P1544, "$name"
-.annotate 'line', 550
- get_hll_global $P1545, ["PAST"], "Op"
-.annotate 'line', 551
- get_hll_global $P1546, ["PAST"], "Var"
- $P1547 = $P1546."new"("self" :named("name"), "register" :named("scope"))
- find_lex $P1548, "$name"
- $P1549 = $P1545."new"($P1547, $P1548, "!protoregex" :named("name"), "callmethod" :named("pasttype"))
-.annotate 'line', 550
- find_lex $P1550, "$/"
- $P1551 = $P1543."new"($P1549, $P1544 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1550 :named("node"))
-.annotate 'line', 560
- get_hll_global $P1552, ["PAST"], "Block"
- new $P1553, "String"
- assign $P1553, "!PREFIX__"
- find_lex $P1554, "$name"
- concat $P1555, $P1553, $P1554
-.annotate 'line', 561
- get_hll_global $P1556, ["PAST"], "Op"
-.annotate 'line', 562
- get_hll_global $P1557, ["PAST"], "Var"
- $P1558 = $P1557."new"("self" :named("name"), "register" :named("scope"))
- find_lex $P1559, "$name"
- $P1560 = $P1556."new"($P1558, $P1559, "!PREFIX__!protoregex" :named("name"), "callmethod" :named("pasttype"))
-.annotate 'line', 561
- find_lex $P1561, "$/"
- $P1562 = $P1552."new"($P1560, $P1555 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1561 :named("node"))
-.annotate 'line', 560
- $P1563 = $P1542."new"($P1551, $P1562)
-.annotate 'line', 548
- store_lex "$past", $P1563
- if_1539_end:
-.annotate 'line', 600
- find_lex $P1618, "$/"
- find_lex $P1619, "$past"
- $P1620 = $P1618."!make"($P1619)
-.annotate 'line', 540
- .return ($P1620)
- control_1524:
+ find_lex $P1529, "$name"
+ $P1528."symbol"($P1529, "lexical" :named("scope"))
+.annotate 'line', 544
+ find_lex $P1530, "$/"
+ find_lex $P1531, "$past"
+ $P1532 = $P1530."!make"($P1531)
+.annotate 'line', 539
+ .return ($P1532)
+ control_1515:
.local pmc exception
.get_results (exception)
- getattribute $P1621, exception, "payload"
- .return ($P1621)
+ getattribute $P1533, exception, "payload"
+ .return ($P1533)
.end
.namespace ["NQP";"Actions"]
-.sub "_block1596" :anon :subid("91_1275811497.55064") :outer("89_1275811497.55064")
-.annotate 'line', 587
- new $P1598, "Undef"
- .lex "$regex", $P1598
-.annotate 'line', 588
- get_hll_global $P1599, ["Regex";"P6Regex";"Actions"], "buildsub"
- find_lex $P1600, "$/"
- unless_null $P1600, vivify_501
- $P1600 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "named_param" :subid("88_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1537
+.annotate 'line', 547
+ new $P1536, 'ExceptionHandler'
+ set_addr $P1536, control_1535
+ $P1536."handle_types"(.CONTROL_RETURN)
+ push_eh $P1536
+ .lex "self", self
+ .lex "$/", param_1537
+.annotate 'line', 548
+ new $P1538, "Undef"
+ .lex "$past", $P1538
+ find_lex $P1539, "$/"
+ unless_null $P1539, vivify_499
+ $P1539 = root_new ['parrot';'Hash']
+ vivify_499:
+ set $P1540, $P1539["param_var"]
+ unless_null $P1540, vivify_500
+ new $P1540, "Undef"
+ vivify_500:
+ $P1541 = $P1540."ast"()
+ store_lex "$past", $P1541
+.annotate 'line', 549
+ find_lex $P1542, "$past"
+ find_lex $P1543, "$/"
+ unless_null $P1543, vivify_501
+ $P1543 = root_new ['parrot';'Hash']
vivify_501:
- set $P1601, $P1600["p6regex"]
- unless_null $P1601, vivify_502
- new $P1601, "Undef"
+ set $P1544, $P1543["param_var"]
+ unless_null $P1544, vivify_502
+ $P1544 = root_new ['parrot';'Hash']
vivify_502:
- $P1602 = $P1601."ast"()
- get_global $P1603, "@BLOCK"
- $P1604 = $P1603."shift"()
- $P1605 = $P1599($P1602, $P1604)
- store_lex "$regex", $P1605
-.annotate 'line', 589
- find_lex $P1606, "$regex"
- find_lex $P1607, "$name"
- $P1606."name"($P1607)
-.annotate 'line', 591
- get_hll_global $P1608, ["PAST"], "Op"
-.annotate 'line', 593
- get_hll_global $P1609, ["PAST"], "Var"
- new $P1610, "ResizablePMCArray"
- push $P1610, "Regex"
- $P1611 = $P1609."new"("Method" :named("name"), $P1610 :named("namespace"), "package" :named("scope"))
- find_lex $P1612, "$regex"
- $P1613 = $P1608."new"($P1611, $P1612, "callmethod" :named("pasttype"), "new" :named("name"))
-.annotate 'line', 591
- store_lex "$past", $P1613
-.annotate 'line', 597
- find_lex $P1614, "$regex"
- find_lex $P1615, "$past"
- unless_null $P1615, vivify_503
- $P1615 = root_new ['parrot';'Hash']
- store_lex "$past", $P1615
+ set $P1545, $P1544["name"]
+ unless_null $P1545, vivify_503
+ new $P1545, "Undef"
vivify_503:
- set $P1615["sink"], $P1614
-.annotate 'line', 598
- find_lex $P1616, "@MODIFIERS"
- $P1617 = $P1616."shift"()
-.annotate 'line', 586
- .return ($P1617)
+ set $S1546, $P1545
+ $P1542."named"($S1546)
+.annotate 'line', 550
+ find_lex $P1547, "$/"
+ find_lex $P1548, "$past"
+ $P1549 = $P1547."!make"($P1548)
+.annotate 'line', 547
+ .return ($P1549)
+ control_1535:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1550, exception, "payload"
+ .return ($P1550)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "_block1568" :anon :subid("90_1275811497.55064") :outer("89_1275811497.55064")
-.annotate 'line', 574
- $P1570 = root_new ['parrot';'Hash']
- .lex "%h", $P1570
-.annotate 'line', 573
- find_lex $P1571, "%h"
-.annotate 'line', 575
- find_lex $P1573, "$/"
- unless_null $P1573, vivify_504
- $P1573 = root_new ['parrot';'Hash']
- vivify_504:
- set $P1574, $P1573["sym"]
- unless_null $P1574, vivify_505
- new $P1574, "Undef"
+.sub "regex_declarator" :subid("89_1280467483.70067") :method :outer("11_1280467483.70067")
+ .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"
+ capture_lex $P1625
+ .const 'Sub' $P1597 = "90_1280467483.70067"
+ capture_lex $P1597
+ new $P1553, 'ExceptionHandler'
+ set_addr $P1553, control_1552
+ $P1553."handle_types"(.CONTROL_RETURN)
+ push_eh $P1553
+ .lex "self", self
+ .lex "$/", param_1554
+ if has_param_1555, optparam_504
+ new $P1556, "Undef"
+ set param_1555, $P1556
+ optparam_504:
+ .lex "$key", param_1555
+.annotate 'line', 554
+ $P1557 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@MODIFIERS", $P1557
+.annotate 'line', 557
+ new $P1558, "Undef"
+ .lex "$name", $P1558
+.annotate 'line', 558
+ new $P1559, "Undef"
+ .lex "$past", $P1559
+.annotate 'line', 554
+
+ $P1560 = get_hll_global ['Regex';'P6Regex';'Actions'], '@MODIFIERS'
+
+ store_lex "@MODIFIERS", $P1560
+.annotate 'line', 557
+ find_lex $P1561, "$/"
+ unless_null $P1561, vivify_505
+ $P1561 = root_new ['parrot';'Hash']
vivify_505:
- set $S1575, $P1574
- iseq $I1576, $S1575, "token"
- unless $I1576, if_1572_end
- new $P1577, "Integer"
- assign $P1577, 1
- find_lex $P1578, "%h"
- unless_null $P1578, vivify_506
- $P1578 = root_new ['parrot';'Hash']
- store_lex "%h", $P1578
+ set $P1562, $P1561["deflongname"]
+ unless_null $P1562, vivify_506
+ new $P1562, "Undef"
vivify_506:
- set $P1578["r"], $P1577
- if_1572_end:
-.annotate 'line', 576
- find_lex $P1580, "$/"
- unless_null $P1580, vivify_507
- $P1580 = root_new ['parrot';'Hash']
+ $P1563 = $P1562."ast"()
+ set $S1564, $P1563
+ new $P1565, 'String'
+ set $P1565, $S1564
+ store_lex "$name", $P1565
+ find_lex $P1566, "$past"
+.annotate 'line', 559
+ find_lex $P1568, "$/"
+ unless_null $P1568, vivify_507
+ $P1568 = root_new ['parrot';'Hash']
vivify_507:
- set $P1581, $P1580["sym"]
- unless_null $P1581, vivify_508
- new $P1581, "Undef"
+ set $P1569, $P1568["proto"]
+ unless_null $P1569, vivify_508
+ new $P1569, "Undef"
vivify_508:
- set $S1582, $P1581
- iseq $I1583, $S1582, "rule"
- unless $I1583, if_1579_end
- new $P1584, "Integer"
- assign $P1584, 1
- find_lex $P1585, "%h"
- unless_null $P1585, vivify_509
- $P1585 = root_new ['parrot';'Hash']
- store_lex "%h", $P1585
+ if $P1569, if_1567
+.annotate 'line', 586
+ find_lex $P1593, "$key"
+ set $S1594, $P1593
+ iseq $I1595, $S1594, "open"
+ if $I1595, if_1592
+.annotate 'line', 599
+ .const 'Sub' $P1625 = "91_1280467483.70067"
+ capture_lex $P1625
+ $P1625()
+ goto if_1592_end
+ if_1592:
+.annotate 'line', 586
+ .const 'Sub' $P1597 = "90_1280467483.70067"
+ capture_lex $P1597
+ $P1597()
+ if_1592_end:
+ goto if_1567_end
+ if_1567:
+.annotate 'line', 561
+ get_hll_global $P1570, ["PAST"], "Stmts"
+.annotate 'line', 562
+ get_hll_global $P1571, ["PAST"], "Block"
+ find_lex $P1572, "$name"
+.annotate 'line', 563
+ get_hll_global $P1573, ["PAST"], "Op"
+.annotate 'line', 564
+ get_hll_global $P1574, ["PAST"], "Var"
+ $P1575 = $P1574."new"("self" :named("name"), "register" :named("scope"))
+ find_lex $P1576, "$name"
+ $P1577 = $P1573."new"($P1575, $P1576, "!protoregex" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 563
+ find_lex $P1578, "$/"
+ $P1579 = $P1571."new"($P1577, $P1572 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1578 :named("node"))
+.annotate 'line', 573
+ get_hll_global $P1580, ["PAST"], "Block"
+ new $P1581, "String"
+ assign $P1581, "!PREFIX__"
+ find_lex $P1582, "$name"
+ concat $P1583, $P1581, $P1582
+.annotate 'line', 574
+ get_hll_global $P1584, ["PAST"], "Op"
+.annotate 'line', 575
+ get_hll_global $P1585, ["PAST"], "Var"
+ $P1586 = $P1585."new"("self" :named("name"), "register" :named("scope"))
+ find_lex $P1587, "$name"
+ $P1588 = $P1584."new"($P1586, $P1587, "!PREFIX__!protoregex" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 574
+ find_lex $P1589, "$/"
+ $P1590 = $P1580."new"($P1588, $P1583 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1589 :named("node"))
+.annotate 'line', 573
+ $P1591 = $P1570."new"($P1579, $P1590)
+.annotate 'line', 561
+ store_lex "$past", $P1591
+ if_1567_end:
+.annotate 'line', 613
+ find_lex $P1646, "$/"
+ find_lex $P1647, "$past"
+ $P1648 = $P1646."!make"($P1647)
+.annotate 'line', 553
+ .return ($P1648)
+ control_1552:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1649, exception, "payload"
+ .return ($P1649)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1624" :anon :subid("91_1280467483.70067") :outer("89_1280467483.70067")
+.annotate 'line', 600
+ new $P1626, "Undef"
+ .lex "$regex", $P1626
+.annotate 'line', 601
+ get_hll_global $P1627, ["Regex";"P6Regex";"Actions"], "buildsub"
+ find_lex $P1628, "$/"
+ unless_null $P1628, vivify_509
+ $P1628 = root_new ['parrot';'Hash']
vivify_509:
- set $P1585["r"], $P1584
- new $P1586, "Integer"
- assign $P1586, 1
- find_lex $P1587, "%h"
- unless_null $P1587, vivify_510
- $P1587 = root_new ['parrot';'Hash']
- store_lex "%h", $P1587
+ set $P1629, $P1628["p6regex"]
+ unless_null $P1629, vivify_510
+ new $P1629, "Undef"
vivify_510:
- set $P1587["s"], $P1586
- if_1579_end:
-.annotate 'line', 577
- find_lex $P1588, "@MODIFIERS"
- find_lex $P1589, "%h"
- $P1588."unshift"($P1589)
-.annotate 'line', 578
-
- $P0 = find_lex '$name'
- set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
-
-.annotate 'line', 582
- get_global $P1590, "@BLOCK"
- unless_null $P1590, vivify_511
- $P1590 = root_new ['parrot';'ResizablePMCArray']
+ $P1630 = $P1629."ast"()
+ get_global $P1631, "@BLOCK"
+ $P1632 = $P1631."shift"()
+ $P1633 = $P1627($P1630, $P1632)
+ store_lex "$regex", $P1633
+.annotate 'line', 602
+ find_lex $P1634, "$regex"
+ find_lex $P1635, "$name"
+ $P1634."name"($P1635)
+.annotate 'line', 604
+ get_hll_global $P1636, ["PAST"], "Op"
+.annotate 'line', 606
+ get_hll_global $P1637, ["PAST"], "Var"
+ new $P1638, "ResizablePMCArray"
+ push $P1638, "Regex"
+ $P1639 = $P1637."new"("Method" :named("name"), $P1638 :named("namespace"), "package" :named("scope"))
+ find_lex $P1640, "$regex"
+ $P1641 = $P1636."new"($P1639, $P1640, "callmethod" :named("pasttype"), "new" :named("name"))
+.annotate 'line', 604
+ store_lex "$past", $P1641
+.annotate 'line', 610
+ find_lex $P1642, "$regex"
+ find_lex $P1643, "$past"
+ unless_null $P1643, vivify_511
+ $P1643 = root_new ['parrot';'Hash']
+ store_lex "$past", $P1643
vivify_511:
- set $P1591, $P1590[0]
- unless_null $P1591, vivify_512
- new $P1591, "Undef"
- vivify_512:
- $P1591."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
-.annotate 'line', 583
- get_global $P1592, "@BLOCK"
- unless_null $P1592, vivify_513
- $P1592 = root_new ['parrot';'ResizablePMCArray']
- vivify_513:
- set $P1593, $P1592[0]
- unless_null $P1593, vivify_514
- new $P1593, "Undef"
- vivify_514:
- $P1593."symbol"("$/", "lexical" :named("scope"))
-.annotate 'line', 584
- new $P1594, "Exception"
- set $P1594['type'], .CONTROL_RETURN
- new $P1595, "Integer"
- assign $P1595, 0
- setattribute $P1594, 'payload', $P1595
- throw $P1594
-.annotate 'line', 573
- .return ()
+ set $P1643["sink"], $P1642
+.annotate 'line', 611
+ find_lex $P1644, "@MODIFIERS"
+ $P1645 = $P1644."shift"()
+.annotate 'line', 599
+ .return ($P1645)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "dotty" :subid("92_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1625
-.annotate 'line', 604
- new $P1624, 'ExceptionHandler'
- set_addr $P1624, control_1623
- $P1624."handle_types"(.CONTROL_RETURN)
- push_eh $P1624
- .lex "self", self
- .lex "$/", param_1625
-.annotate 'line', 605
- new $P1626, "Undef"
- .lex "$past", $P1626
- find_lex $P1629, "$/"
- unless_null $P1629, vivify_515
- $P1629 = root_new ['parrot';'Hash']
+.sub "_block1596" :anon :subid("90_1280467483.70067") :outer("89_1280467483.70067")
+.annotate 'line', 587
+ $P1598 = root_new ['parrot';'Hash']
+ .lex "%h", $P1598
+.annotate 'line', 586
+ find_lex $P1599, "%h"
+.annotate 'line', 588
+ find_lex $P1601, "$/"
+ unless_null $P1601, vivify_512
+ $P1601 = root_new ['parrot';'Hash']
+ vivify_512:
+ set $P1602, $P1601["sym"]
+ unless_null $P1602, vivify_513
+ new $P1602, "Undef"
+ vivify_513:
+ set $S1603, $P1602
+ iseq $I1604, $S1603, "token"
+ unless $I1604, if_1600_end
+ new $P1605, "Integer"
+ assign $P1605, 1
+ find_lex $P1606, "%h"
+ unless_null $P1606, vivify_514
+ $P1606 = root_new ['parrot';'Hash']
+ store_lex "%h", $P1606
+ vivify_514:
+ set $P1606["r"], $P1605
+ if_1600_end:
+.annotate 'line', 589
+ find_lex $P1608, "$/"
+ unless_null $P1608, vivify_515
+ $P1608 = root_new ['parrot';'Hash']
vivify_515:
- set $P1630, $P1629["args"]
- unless_null $P1630, vivify_516
- new $P1630, "Undef"
+ set $P1609, $P1608["sym"]
+ unless_null $P1609, vivify_516
+ new $P1609, "Undef"
vivify_516:
- if $P1630, if_1628
- get_hll_global $P1635, ["PAST"], "Op"
- find_lex $P1636, "$/"
- $P1637 = $P1635."new"($P1636 :named("node"))
- set $P1627, $P1637
- goto if_1628_end
- if_1628:
- find_lex $P1631, "$/"
- unless_null $P1631, vivify_517
- $P1631 = root_new ['parrot';'Hash']
+ set $S1610, $P1609
+ iseq $I1611, $S1610, "rule"
+ unless $I1611, if_1607_end
+ new $P1612, "Integer"
+ assign $P1612, 1
+ find_lex $P1613, "%h"
+ unless_null $P1613, vivify_517
+ $P1613 = root_new ['parrot';'Hash']
+ store_lex "%h", $P1613
vivify_517:
- set $P1632, $P1631["args"]
- unless_null $P1632, vivify_518
- $P1632 = root_new ['parrot';'ResizablePMCArray']
+ set $P1613["r"], $P1612
+ new $P1614, "Integer"
+ assign $P1614, 1
+ find_lex $P1615, "%h"
+ unless_null $P1615, vivify_518
+ $P1615 = root_new ['parrot';'Hash']
+ store_lex "%h", $P1615
vivify_518:
- set $P1633, $P1632[0]
- unless_null $P1633, vivify_519
- new $P1633, "Undef"
+ set $P1615["s"], $P1614
+ if_1607_end:
+.annotate 'line', 590
+ find_lex $P1616, "@MODIFIERS"
+ find_lex $P1617, "%h"
+ $P1616."unshift"($P1617)
+.annotate 'line', 591
+
+ $P0 = find_lex '$name'
+ set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
+
+.annotate 'line', 595
+ get_global $P1618, "@BLOCK"
+ unless_null $P1618, vivify_519
+ $P1618 = root_new ['parrot';'ResizablePMCArray']
vivify_519:
- $P1634 = $P1633."ast"()
- set $P1627, $P1634
- if_1628_end:
- store_lex "$past", $P1627
-.annotate 'line', 606
- find_lex $P1638, "$past"
- find_lex $P1641, "$/"
- unless_null $P1641, vivify_520
- $P1641 = root_new ['parrot';'Hash']
+ set $P1619, $P1618[0]
+ unless_null $P1619, vivify_520
+ new $P1619, "Undef"
vivify_520:
- set $P1642, $P1641["quote"]
- unless_null $P1642, vivify_521
- new $P1642, "Undef"
+ $P1619."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
+.annotate 'line', 596
+ get_global $P1620, "@BLOCK"
+ unless_null $P1620, vivify_521
+ $P1620 = root_new ['parrot';'ResizablePMCArray']
vivify_521:
- if $P1642, if_1640
- find_lex $P1646, "$/"
- unless_null $P1646, vivify_522
- $P1646 = root_new ['parrot';'Hash']
+ set $P1621, $P1620[0]
+ unless_null $P1621, vivify_522
+ new $P1621, "Undef"
vivify_522:
- set $P1647, $P1646["longname"]
- unless_null $P1647, vivify_523
- new $P1647, "Undef"
- vivify_523:
- set $S1648, $P1647
- new $P1639, 'String'
- set $P1639, $S1648
- goto if_1640_end
- if_1640:
- find_lex $P1643, "$/"
- unless_null $P1643, vivify_524
- $P1643 = root_new ['parrot';'Hash']
- vivify_524:
- set $P1644, $P1643["quote"]
- unless_null $P1644, vivify_525
- new $P1644, "Undef"
- vivify_525:
- $P1645 = $P1644."ast"()
- set $P1639, $P1645
- if_1640_end:
- $P1638."name"($P1639)
-.annotate 'line', 607
- find_lex $P1649, "$past"
- $P1649."pasttype"("callmethod")
-.annotate 'line', 608
- find_lex $P1650, "$/"
- find_lex $P1651, "$past"
- $P1652 = $P1650."!make"($P1651)
-.annotate 'line', 604
- .return ($P1652)
- control_1623:
- .local pmc exception
- .get_results (exception)
- getattribute $P1653, exception, "payload"
- .return ($P1653)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "term:sym<self>" :subid("93_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1657
-.annotate 'line', 613
- new $P1656, 'ExceptionHandler'
- set_addr $P1656, control_1655
- $P1656."handle_types"(.CONTROL_RETURN)
- push_eh $P1656
- .lex "self", self
- .lex "$/", param_1657
-.annotate 'line', 614
- find_lex $P1658, "$/"
- get_hll_global $P1659, ["PAST"], "Var"
- $P1660 = $P1659."new"("self" :named("name"))
- $P1661 = $P1658."!make"($P1660)
-.annotate 'line', 613
- .return ($P1661)
- control_1655:
- .local pmc exception
- .get_results (exception)
- getattribute $P1662, exception, "payload"
- .return ($P1662)
+ $P1621."symbol"("$/", "lexical" :named("scope"))
+.annotate 'line', 597
+ new $P1622, "Exception"
+ set $P1622['type'], .CONTROL_RETURN
+ new $P1623, "Integer"
+ assign $P1623, 0
+ setattribute $P1622, 'payload', $P1623
+ throw $P1622
+.annotate 'line', 586
+ .return ()
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<identifier>" :subid("94_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1666
+.sub "dotty" :subid("92_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1653
.annotate 'line', 617
- new $P1665, 'ExceptionHandler'
- set_addr $P1665, control_1664
- $P1665."handle_types"(.CONTROL_RETURN)
- push_eh $P1665
+ new $P1652, 'ExceptionHandler'
+ set_addr $P1652, control_1651
+ $P1652."handle_types"(.CONTROL_RETURN)
+ push_eh $P1652
.lex "self", self
- .lex "$/", param_1666
+ .lex "$/", param_1653
.annotate 'line', 618
- new $P1667, "Undef"
- .lex "$past", $P1667
- find_lex $P1668, "$/"
- unless_null $P1668, vivify_526
- $P1668 = root_new ['parrot';'Hash']
+ new $P1654, "Undef"
+ .lex "$past", $P1654
+ find_lex $P1657, "$/"
+ unless_null $P1657, vivify_523
+ $P1657 = root_new ['parrot';'Hash']
+ vivify_523:
+ set $P1658, $P1657["args"]
+ unless_null $P1658, vivify_524
+ new $P1658, "Undef"
+ vivify_524:
+ if $P1658, if_1656
+ get_hll_global $P1663, ["PAST"], "Op"
+ find_lex $P1664, "$/"
+ $P1665 = $P1663."new"($P1664 :named("node"))
+ set $P1655, $P1665
+ goto if_1656_end
+ if_1656:
+ find_lex $P1659, "$/"
+ unless_null $P1659, vivify_525
+ $P1659 = root_new ['parrot';'Hash']
+ vivify_525:
+ set $P1660, $P1659["args"]
+ unless_null $P1660, vivify_526
+ $P1660 = root_new ['parrot';'ResizablePMCArray']
vivify_526:
- set $P1669, $P1668["args"]
- unless_null $P1669, vivify_527
- new $P1669, "Undef"
+ set $P1661, $P1660[0]
+ unless_null $P1661, vivify_527
+ new $P1661, "Undef"
vivify_527:
- $P1670 = $P1669."ast"()
- store_lex "$past", $P1670
+ $P1662 = $P1661."ast"()
+ set $P1655, $P1662
+ if_1656_end:
+ store_lex "$past", $P1655
.annotate 'line', 619
- find_lex $P1671, "$past"
- find_lex $P1672, "$/"
- unless_null $P1672, vivify_528
- $P1672 = root_new ['parrot';'Hash']
+ find_lex $P1666, "$past"
+ find_lex $P1669, "$/"
+ unless_null $P1669, vivify_528
+ $P1669 = root_new ['parrot';'Hash']
vivify_528:
- set $P1673, $P1672["identifier"]
- unless_null $P1673, vivify_529
- new $P1673, "Undef"
+ set $P1670, $P1669["quote"]
+ unless_null $P1670, vivify_529
+ new $P1670, "Undef"
vivify_529:
- set $S1674, $P1673
- $P1671."name"($S1674)
+ if $P1670, if_1668
+ find_lex $P1674, "$/"
+ unless_null $P1674, vivify_530
+ $P1674 = root_new ['parrot';'Hash']
+ vivify_530:
+ set $P1675, $P1674["longname"]
+ unless_null $P1675, vivify_531
+ new $P1675, "Undef"
+ vivify_531:
+ set $S1676, $P1675
+ new $P1667, 'String'
+ set $P1667, $S1676
+ goto if_1668_end
+ if_1668:
+ find_lex $P1671, "$/"
+ unless_null $P1671, vivify_532
+ $P1671 = root_new ['parrot';'Hash']
+ vivify_532:
+ set $P1672, $P1671["quote"]
+ unless_null $P1672, vivify_533
+ new $P1672, "Undef"
+ vivify_533:
+ $P1673 = $P1672."ast"()
+ set $P1667, $P1673
+ if_1668_end:
+ $P1666."name"($P1667)
.annotate 'line', 620
- find_lex $P1675, "$/"
- find_lex $P1676, "$past"
- $P1677 = $P1675."!make"($P1676)
+ find_lex $P1677, "$past"
+ $P1677."pasttype"("callmethod")
+.annotate 'line', 621
+ find_lex $P1678, "$/"
+ find_lex $P1679, "$past"
+ $P1680 = $P1678."!make"($P1679)
.annotate 'line', 617
- .return ($P1677)
- control_1664:
+ .return ($P1680)
+ control_1651:
.local pmc exception
.get_results (exception)
- getattribute $P1678, exception, "payload"
- .return ($P1678)
+ getattribute $P1681, exception, "payload"
+ .return ($P1681)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<name>" :subid("95_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1682
-.annotate 'line', 623
- new $P1681, 'ExceptionHandler'
- set_addr $P1681, control_1680
- $P1681."handle_types"(.CONTROL_RETURN)
- push_eh $P1681
+.sub "term:sym<self>" :subid("93_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1685
+.annotate 'line', 626
+ new $P1684, 'ExceptionHandler'
+ set_addr $P1684, control_1683
+ $P1684."handle_types"(.CONTROL_RETURN)
+ push_eh $P1684
.lex "self", self
- .lex "$/", param_1682
-.annotate 'line', 624
- $P1683 = root_new ['parrot';'ResizablePMCArray']
- .lex "@ns", $P1683
-.annotate 'line', 625
- new $P1684, "Undef"
- .lex "$name", $P1684
+ .lex "$/", param_1685
.annotate 'line', 627
- new $P1685, "Undef"
- .lex "$var", $P1685
-.annotate 'line', 629
- new $P1686, "Undef"
- .lex "$past", $P1686
-.annotate 'line', 624
- find_lex $P1687, "$/"
- unless_null $P1687, vivify_530
- $P1687 = root_new ['parrot';'Hash']
- vivify_530:
- set $P1688, $P1687["name"]
- unless_null $P1688, vivify_531
- $P1688 = root_new ['parrot';'Hash']
- vivify_531:
- set $P1689, $P1688["identifier"]
- unless_null $P1689, vivify_532
- new $P1689, "Undef"
- vivify_532:
- clone $P1690, $P1689
- store_lex "@ns", $P1690
-.annotate 'line', 625
- find_lex $P1691, "@ns"
- $P1692 = $P1691."pop"()
- store_lex "$name", $P1692
+ find_lex $P1686, "$/"
+ get_hll_global $P1687, ["PAST"], "Var"
+ $P1688 = $P1687."new"("self" :named("name"))
+ $P1689 = $P1686."!make"($P1688)
.annotate 'line', 626
- find_lex $P1696, "@ns"
- if $P1696, if_1695
- set $P1694, $P1696
- goto if_1695_end
- if_1695:
- find_lex $P1697, "@ns"
- unless_null $P1697, vivify_533
- $P1697 = root_new ['parrot';'ResizablePMCArray']
- vivify_533:
- set $P1698, $P1697[0]
- unless_null $P1698, vivify_534
- new $P1698, "Undef"
- vivify_534:
- set $S1699, $P1698
- iseq $I1700, $S1699, "GLOBAL"
- new $P1694, 'Integer'
- set $P1694, $I1700
- if_1695_end:
- unless $P1694, if_1693_end
- find_lex $P1701, "@ns"
- $P1701."shift"()
- if_1693_end:
-.annotate 'line', 628
- get_hll_global $P1702, ["PAST"], "Var"
- find_lex $P1703, "$name"
- set $S1704, $P1703
- find_lex $P1705, "@ns"
- $P1706 = $P1702."new"($S1704 :named("name"), $P1705 :named("namespace"), "package" :named("scope"))
- store_lex "$var", $P1706
-.annotate 'line', 629
- find_lex $P1707, "$var"
- store_lex "$past", $P1707
+ .return ($P1689)
+ control_1683:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1690, exception, "payload"
+ .return ($P1690)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "term:sym<identifier>" :subid("94_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1694
.annotate 'line', 630
- find_lex $P1709, "$/"
- unless_null $P1709, vivify_535
- $P1709 = root_new ['parrot';'Hash']
+ new $P1693, 'ExceptionHandler'
+ set_addr $P1693, control_1692
+ $P1693."handle_types"(.CONTROL_RETURN)
+ push_eh $P1693
+ .lex "self", self
+ .lex "$/", param_1694
+.annotate 'line', 631
+ new $P1695, "Undef"
+ .lex "$past", $P1695
+ find_lex $P1696, "$/"
+ unless_null $P1696, vivify_534
+ $P1696 = root_new ['parrot';'Hash']
+ vivify_534:
+ set $P1697, $P1696["args"]
+ unless_null $P1697, vivify_535
+ new $P1697, "Undef"
vivify_535:
- set $P1710, $P1709["args"]
- unless_null $P1710, vivify_536
- new $P1710, "Undef"
+ $P1698 = $P1697."ast"()
+ store_lex "$past", $P1698
+.annotate 'line', 632
+ find_lex $P1699, "$past"
+ find_lex $P1700, "$/"
+ unless_null $P1700, vivify_536
+ $P1700 = root_new ['parrot';'Hash']
vivify_536:
- unless $P1710, if_1708_end
-.annotate 'line', 631
- find_lex $P1711, "$/"
- unless_null $P1711, vivify_537
- $P1711 = root_new ['parrot';'Hash']
+ set $P1701, $P1700["deflongname"]
+ unless_null $P1701, vivify_537
+ new $P1701, "Undef"
vivify_537:
- set $P1712, $P1711["args"]
- unless_null $P1712, vivify_538
- $P1712 = root_new ['parrot';'ResizablePMCArray']
- vivify_538:
- set $P1713, $P1712[0]
- unless_null $P1713, vivify_539
- new $P1713, "Undef"
- vivify_539:
- $P1714 = $P1713."ast"()
- store_lex "$past", $P1714
-.annotate 'line', 632
- find_lex $P1715, "$past"
- find_lex $P1716, "$var"
- $P1715."unshift"($P1716)
- if_1708_end:
-.annotate 'line', 634
- find_lex $P1717, "$/"
- find_lex $P1718, "$past"
- $P1719 = $P1717."!make"($P1718)
-.annotate 'line', 623
- .return ($P1719)
- control_1680:
+ set $S1702, $P1701
+ $P1699."name"($S1702)
+.annotate 'line', 633
+ find_lex $P1703, "$/"
+ find_lex $P1704, "$past"
+ $P1705 = $P1703."!make"($P1704)
+.annotate 'line', 630
+ .return ($P1705)
+ control_1692:
.local pmc exception
.get_results (exception)
- getattribute $P1720, exception, "payload"
- .return ($P1720)
+ getattribute $P1706, exception, "payload"
+ .return ($P1706)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<pir::op>" :subid("96_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1724
-.annotate 'line', 637
- new $P1723, 'ExceptionHandler'
- set_addr $P1723, control_1722
- $P1723."handle_types"(.CONTROL_RETURN)
- push_eh $P1723
+.sub "term:sym<name>" :subid("95_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1710
+.annotate 'line', 636
+ new $P1709, 'ExceptionHandler'
+ set_addr $P1709, control_1708
+ $P1709."handle_types"(.CONTROL_RETURN)
+ push_eh $P1709
.lex "self", self
- .lex "$/", param_1724
-.annotate 'line', 638
- new $P1725, "Undef"
- .lex "$past", $P1725
-.annotate 'line', 639
- new $P1726, "Undef"
- .lex "$pirop", $P1726
+ .lex "$/", param_1710
+.annotate 'line', 637
+ $P1711 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@ns", $P1711
.annotate 'line', 638
- find_lex $P1729, "$/"
- unless_null $P1729, vivify_540
- $P1729 = root_new ['parrot';'Hash']
+ new $P1712, "Undef"
+ .lex "$name", $P1712
+.annotate 'line', 640
+ new $P1713, "Undef"
+ .lex "$var", $P1713
+.annotate 'line', 642
+ new $P1714, "Undef"
+ .lex "$past", $P1714
+.annotate 'line', 637
+ find_lex $P1715, "$/"
+ unless_null $P1715, vivify_538
+ $P1715 = root_new ['parrot';'Hash']
+ vivify_538:
+ set $P1716, $P1715["name"]
+ unless_null $P1716, vivify_539
+ $P1716 = root_new ['parrot';'Hash']
+ vivify_539:
+ set $P1717, $P1716["identifier"]
+ unless_null $P1717, vivify_540
+ new $P1717, "Undef"
vivify_540:
- set $P1730, $P1729["args"]
- unless_null $P1730, vivify_541
- new $P1730, "Undef"
+ clone $P1718, $P1717
+ store_lex "@ns", $P1718
+.annotate 'line', 638
+ find_lex $P1719, "@ns"
+ $P1720 = $P1719."pop"()
+ store_lex "$name", $P1720
+.annotate 'line', 639
+ find_lex $P1724, "@ns"
+ if $P1724, if_1723
+ set $P1722, $P1724
+ goto if_1723_end
+ if_1723:
+ find_lex $P1725, "@ns"
+ unless_null $P1725, vivify_541
+ $P1725 = root_new ['parrot';'ResizablePMCArray']
vivify_541:
- if $P1730, if_1728
- get_hll_global $P1735, ["PAST"], "Op"
- find_lex $P1736, "$/"
- $P1737 = $P1735."new"($P1736 :named("node"))
- set $P1727, $P1737
- goto if_1728_end
- if_1728:
- find_lex $P1731, "$/"
- unless_null $P1731, vivify_542
- $P1731 = root_new ['parrot';'Hash']
+ set $P1726, $P1725[0]
+ unless_null $P1726, vivify_542
+ new $P1726, "Undef"
vivify_542:
- set $P1732, $P1731["args"]
- unless_null $P1732, vivify_543
- $P1732 = root_new ['parrot';'ResizablePMCArray']
+ set $S1727, $P1726
+ iseq $I1728, $S1727, "GLOBAL"
+ new $P1722, 'Integer'
+ set $P1722, $I1728
+ if_1723_end:
+ unless $P1722, if_1721_end
+ find_lex $P1729, "@ns"
+ $P1729."shift"()
+ if_1721_end:
+.annotate 'line', 641
+ get_hll_global $P1730, ["PAST"], "Var"
+ find_lex $P1731, "$name"
+ set $S1732, $P1731
+ find_lex $P1733, "@ns"
+ $P1734 = $P1730."new"($S1732 :named("name"), $P1733 :named("namespace"), "package" :named("scope"))
+ store_lex "$var", $P1734
+.annotate 'line', 642
+ find_lex $P1735, "$var"
+ store_lex "$past", $P1735
+.annotate 'line', 643
+ find_lex $P1737, "$/"
+ unless_null $P1737, vivify_543
+ $P1737 = root_new ['parrot';'Hash']
vivify_543:
- set $P1733, $P1732[0]
- unless_null $P1733, vivify_544
- new $P1733, "Undef"
+ set $P1738, $P1737["args"]
+ unless_null $P1738, vivify_544
+ new $P1738, "Undef"
vivify_544:
- $P1734 = $P1733."ast"()
- set $P1727, $P1734
- if_1728_end:
- store_lex "$past", $P1727
-.annotate 'line', 639
- find_lex $P1738, "$/"
- unless_null $P1738, vivify_545
- $P1738 = root_new ['parrot';'Hash']
+ unless $P1738, if_1736_end
+.annotate 'line', 644
+ find_lex $P1739, "$/"
+ unless_null $P1739, vivify_545
+ $P1739 = root_new ['parrot';'Hash']
vivify_545:
- set $P1739, $P1738["op"]
- unless_null $P1739, vivify_546
- new $P1739, "Undef"
+ set $P1740, $P1739["args"]
+ unless_null $P1740, vivify_546
+ $P1740 = root_new ['parrot';'ResizablePMCArray']
vivify_546:
- set $S1740, $P1739
- new $P1741, 'String'
- set $P1741, $S1740
- store_lex "$pirop", $P1741
-.annotate 'line', 640
+ set $P1741, $P1740[0]
+ unless_null $P1741, vivify_547
+ new $P1741, "Undef"
+ vivify_547:
+ $P1742 = $P1741."ast"()
+ store_lex "$past", $P1742
+.annotate 'line', 645
+ find_lex $P1743, "$past"
+ find_lex $P1744, "$var"
+ $P1743."unshift"($P1744)
+ if_1736_end:
+.annotate 'line', 647
+ find_lex $P1745, "$/"
+ find_lex $P1746, "$past"
+ $P1747 = $P1745."!make"($P1746)
+.annotate 'line', 636
+ .return ($P1747)
+ control_1708:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1748, exception, "payload"
+ .return ($P1748)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "term:sym<pir::op>" :subid("96_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1752
+.annotate 'line', 650
+ new $P1751, 'ExceptionHandler'
+ set_addr $P1751, control_1750
+ $P1751."handle_types"(.CONTROL_RETURN)
+ push_eh $P1751
+ .lex "self", self
+ .lex "$/", param_1752
+.annotate 'line', 651
+ new $P1753, "Undef"
+ .lex "$past", $P1753
+.annotate 'line', 652
+ new $P1754, "Undef"
+ .lex "$pirop", $P1754
+.annotate 'line', 651
+ find_lex $P1757, "$/"
+ unless_null $P1757, vivify_548
+ $P1757 = root_new ['parrot';'Hash']
+ vivify_548:
+ set $P1758, $P1757["args"]
+ unless_null $P1758, vivify_549
+ new $P1758, "Undef"
+ vivify_549:
+ if $P1758, if_1756
+ get_hll_global $P1763, ["PAST"], "Op"
+ find_lex $P1764, "$/"
+ $P1765 = $P1763."new"($P1764 :named("node"))
+ set $P1755, $P1765
+ goto if_1756_end
+ if_1756:
+ find_lex $P1759, "$/"
+ unless_null $P1759, vivify_550
+ $P1759 = root_new ['parrot';'Hash']
+ vivify_550:
+ set $P1760, $P1759["args"]
+ unless_null $P1760, vivify_551
+ $P1760 = root_new ['parrot';'ResizablePMCArray']
+ vivify_551:
+ set $P1761, $P1760[0]
+ unless_null $P1761, vivify_552
+ new $P1761, "Undef"
+ vivify_552:
+ $P1762 = $P1761."ast"()
+ set $P1755, $P1762
+ if_1756_end:
+ store_lex "$past", $P1755
+.annotate 'line', 652
+ find_lex $P1766, "$/"
+ unless_null $P1766, vivify_553
+ $P1766 = root_new ['parrot';'Hash']
+ vivify_553:
+ set $P1767, $P1766["op"]
+ unless_null $P1767, vivify_554
+ new $P1767, "Undef"
+ vivify_554:
+ set $S1768, $P1767
+ new $P1769, 'String'
+ set $P1769, $S1768
+ store_lex "$pirop", $P1769
+.annotate 'line', 653
$P0 = find_lex '$pirop'
$S0 = $P0
$P0 = split '__', $S0
$S0 = join ' ', $P0
- $P1742 = box $S0
+ $P1770 = box $S0
- store_lex "$pirop", $P1742
-.annotate 'line', 647
- find_lex $P1743, "$past"
- find_lex $P1744, "$pirop"
- $P1743."pirop"($P1744)
-.annotate 'line', 648
- find_lex $P1745, "$past"
- $P1745."pasttype"("pirop")
-.annotate 'line', 649
- find_lex $P1746, "$/"
- find_lex $P1747, "$past"
- $P1748 = $P1746."!make"($P1747)
-.annotate 'line', 637
- .return ($P1748)
- control_1722:
+ store_lex "$pirop", $P1770
+.annotate 'line', 660
+ find_lex $P1771, "$past"
+ find_lex $P1772, "$pirop"
+ $P1771."pirop"($P1772)
+.annotate 'line', 661
+ find_lex $P1773, "$past"
+ $P1773."pasttype"("pirop")
+.annotate 'line', 662
+ find_lex $P1774, "$/"
+ find_lex $P1775, "$past"
+ $P1776 = $P1774."!make"($P1775)
+.annotate 'line', 650
+ .return ($P1776)
+ control_1750:
.local pmc exception
.get_results (exception)
- getattribute $P1749, exception, "payload"
- .return ($P1749)
+ getattribute $P1777, exception, "payload"
+ .return ($P1777)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "args" :subid("97_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1753
-.annotate 'line', 652
- new $P1752, 'ExceptionHandler'
- set_addr $P1752, control_1751
- $P1752."handle_types"(.CONTROL_RETURN)
- push_eh $P1752
- .lex "self", self
- .lex "$/", param_1753
- find_lex $P1754, "$/"
- find_lex $P1755, "$/"
- unless_null $P1755, vivify_547
- $P1755 = root_new ['parrot';'Hash']
- vivify_547:
- set $P1756, $P1755["arglist"]
- unless_null $P1756, vivify_548
- new $P1756, "Undef"
- vivify_548:
- $P1757 = $P1756."ast"()
- $P1758 = $P1754."!make"($P1757)
- .return ($P1758)
- control_1751:
- .local pmc exception
- .get_results (exception)
- getattribute $P1759, exception, "payload"
- .return ($P1759)
+.sub "args" :subid("97_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1781
+.annotate 'line', 665
+ new $P1780, 'ExceptionHandler'
+ set_addr $P1780, control_1779
+ $P1780."handle_types"(.CONTROL_RETURN)
+ push_eh $P1780
+ .lex "self", self
+ .lex "$/", param_1781
+ find_lex $P1782, "$/"
+ find_lex $P1783, "$/"
+ unless_null $P1783, vivify_555
+ $P1783 = root_new ['parrot';'Hash']
+ vivify_555:
+ set $P1784, $P1783["arglist"]
+ unless_null $P1784, vivify_556
+ new $P1784, "Undef"
+ vivify_556:
+ $P1785 = $P1784."ast"()
+ $P1786 = $P1782."!make"($P1785)
+ .return ($P1786)
+ control_1779:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1787, exception, "payload"
+ .return ($P1787)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "arglist" :subid("98_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1763
-.annotate 'line', 654
- .const 'Sub' $P1774 = "99_1275811497.55064"
- capture_lex $P1774
- new $P1762, 'ExceptionHandler'
- set_addr $P1762, control_1761
- $P1762."handle_types"(.CONTROL_RETURN)
- push_eh $P1762
- .lex "self", self
- .lex "$/", param_1763
-.annotate 'line', 655
- new $P1764, "Undef"
- .lex "$past", $P1764
-.annotate 'line', 663
- new $P1765, "Undef"
- .lex "$i", $P1765
-.annotate 'line', 664
- new $P1766, "Undef"
- .lex "$n", $P1766
-.annotate 'line', 655
- get_hll_global $P1767, ["PAST"], "Op"
- find_lex $P1768, "$/"
- $P1769 = $P1767."new"("call" :named("pasttype"), $P1768 :named("node"))
- store_lex "$past", $P1769
-.annotate 'line', 656
- find_lex $P1771, "$/"
- unless_null $P1771, vivify_549
- $P1771 = root_new ['parrot';'Hash']
- vivify_549:
- set $P1772, $P1771["EXPR"]
- unless_null $P1772, vivify_550
- new $P1772, "Undef"
- vivify_550:
- unless $P1772, if_1770_end
- .const 'Sub' $P1774 = "99_1275811497.55064"
- capture_lex $P1774
- $P1774()
- if_1770_end:
-.annotate 'line', 663
- new $P1806, "Integer"
- assign $P1806, 0
- store_lex "$i", $P1806
-.annotate 'line', 664
- find_lex $P1807, "$past"
- $P1808 = $P1807."list"()
- set $N1809, $P1808
- new $P1810, 'Float'
- set $P1810, $N1809
- store_lex "$n", $P1810
-.annotate 'line', 665
- new $P1858, 'ExceptionHandler'
- set_addr $P1858, loop1857_handler
- $P1858."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P1858
- loop1857_test:
- find_lex $P1811, "$i"
- set $N1812, $P1811
- find_lex $P1813, "$n"
- set $N1814, $P1813
- islt $I1815, $N1812, $N1814
- unless $I1815, loop1857_done
- loop1857_redo:
-.annotate 'line', 666
- find_lex $P1817, "$i"
- set $I1818, $P1817
- find_lex $P1819, "$past"
- unless_null $P1819, vivify_554
- $P1819 = root_new ['parrot';'ResizablePMCArray']
- vivify_554:
- set $P1820, $P1819[$I1818]
- unless_null $P1820, vivify_555
- new $P1820, "Undef"
- vivify_555:
- $S1821 = $P1820."name"()
- iseq $I1822, $S1821, "&prefix:<|>"
- unless $I1822, if_1816_end
+.sub "arglist" :subid("98_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1791
.annotate 'line', 667
- find_lex $P1823, "$i"
- set $I1824, $P1823
- find_lex $P1825, "$past"
- unless_null $P1825, vivify_556
- $P1825 = root_new ['parrot';'ResizablePMCArray']
- vivify_556:
- set $P1826, $P1825[$I1824]
- unless_null $P1826, vivify_557
- $P1826 = root_new ['parrot';'ResizablePMCArray']
- vivify_557:
- set $P1827, $P1826[0]
- unless_null $P1827, vivify_558
- new $P1827, "Undef"
- vivify_558:
- find_lex $P1828, "$i"
- set $I1829, $P1828
- find_lex $P1830, "$past"
- unless_null $P1830, vivify_559
- $P1830 = root_new ['parrot';'ResizablePMCArray']
- store_lex "$past", $P1830
- vivify_559:
- set $P1830[$I1829], $P1827
+ .const 'Sub' $P1802 = "99_1280467483.70067"
+ capture_lex $P1802
+ new $P1790, 'ExceptionHandler'
+ set_addr $P1790, control_1789
+ $P1790."handle_types"(.CONTROL_RETURN)
+ push_eh $P1790
+ .lex "self", self
+ .lex "$/", param_1791
.annotate 'line', 668
- find_lex $P1831, "$i"
- set $I1832, $P1831
- find_lex $P1833, "$past"
- unless_null $P1833, vivify_560
- $P1833 = root_new ['parrot';'ResizablePMCArray']
- vivify_560:
- set $P1834, $P1833[$I1832]
- unless_null $P1834, vivify_561
- new $P1834, "Undef"
- vivify_561:
- $P1834."flat"(1)
+ new $P1792, "Undef"
+ .lex "$past", $P1792
+.annotate 'line', 676
+ new $P1793, "Undef"
+ .lex "$i", $P1793
+.annotate 'line', 677
+ new $P1794, "Undef"
+ .lex "$n", $P1794
+.annotate 'line', 668
+ get_hll_global $P1795, ["PAST"], "Op"
+ find_lex $P1796, "$/"
+ $P1797 = $P1795."new"("call" :named("pasttype"), $P1796 :named("node"))
+ store_lex "$past", $P1797
.annotate 'line', 669
- find_lex $P1838, "$i"
- set $I1839, $P1838
- find_lex $P1840, "$past"
- unless_null $P1840, vivify_562
- $P1840 = root_new ['parrot';'ResizablePMCArray']
+ find_lex $P1799, "$/"
+ unless_null $P1799, vivify_557
+ $P1799 = root_new ['parrot';'Hash']
+ vivify_557:
+ set $P1800, $P1799["EXPR"]
+ unless_null $P1800, vivify_558
+ new $P1800, "Undef"
+ vivify_558:
+ unless $P1800, if_1798_end
+ .const 'Sub' $P1802 = "99_1280467483.70067"
+ capture_lex $P1802
+ $P1802()
+ if_1798_end:
+.annotate 'line', 676
+ new $P1834, "Integer"
+ assign $P1834, 0
+ store_lex "$i", $P1834
+.annotate 'line', 677
+ find_lex $P1835, "$past"
+ $P1836 = $P1835."list"()
+ set $N1837, $P1836
+ new $P1838, 'Float'
+ set $P1838, $N1837
+ store_lex "$n", $P1838
+.annotate 'line', 678
+ new $P1886, 'ExceptionHandler'
+ set_addr $P1886, loop1885_handler
+ $P1886."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P1886
+ loop1885_test:
+ find_lex $P1839, "$i"
+ set $N1840, $P1839
+ find_lex $P1841, "$n"
+ set $N1842, $P1841
+ islt $I1843, $N1840, $N1842
+ unless $I1843, loop1885_done
+ loop1885_redo:
+.annotate 'line', 679
+ find_lex $P1845, "$i"
+ set $I1846, $P1845
+ find_lex $P1847, "$past"
+ unless_null $P1847, vivify_562
+ $P1847 = root_new ['parrot';'ResizablePMCArray']
vivify_562:
- set $P1841, $P1840[$I1839]
- unless_null $P1841, vivify_563
- new $P1841, "Undef"
+ set $P1848, $P1847[$I1846]
+ unless_null $P1848, vivify_563
+ new $P1848, "Undef"
vivify_563:
- get_hll_global $P1842, ["PAST"], "Val"
- $P1843 = $P1841."isa"($P1842)
- if $P1843, if_1837
- set $P1836, $P1843
- goto if_1837_end
- if_1837:
-.annotate 'line', 670
- find_lex $P1844, "$i"
- set $I1845, $P1844
- find_lex $P1846, "$past"
- unless_null $P1846, vivify_564
- $P1846 = root_new ['parrot';'ResizablePMCArray']
- vivify_564:
- set $P1847, $P1846[$I1845]
- unless_null $P1847, vivify_565
- new $P1847, "Undef"
- vivify_565:
- $S1848 = $P1847."name"()
- substr $S1849, $S1848, 0, 1
- iseq $I1850, $S1849, "%"
- new $P1836, 'Integer'
- set $P1836, $I1850
- if_1837_end:
- unless $P1836, if_1835_end
-.annotate 'line', 671
+ $S1849 = $P1848."name"()
+ iseq $I1850, $S1849, "&prefix:<|>"
+ unless $I1850, if_1844_end
+.annotate 'line', 680
find_lex $P1851, "$i"
set $I1852, $P1851
find_lex $P1853, "$past"
- unless_null $P1853, vivify_566
+ unless_null $P1853, vivify_564
$P1853 = root_new ['parrot';'ResizablePMCArray']
- vivify_566:
+ vivify_564:
set $P1854, $P1853[$I1852]
- unless_null $P1854, vivify_567
- new $P1854, "Undef"
+ unless_null $P1854, vivify_565
+ $P1854 = root_new ['parrot';'ResizablePMCArray']
+ vivify_565:
+ set $P1855, $P1854[0]
+ unless_null $P1855, vivify_566
+ new $P1855, "Undef"
+ vivify_566:
+ find_lex $P1856, "$i"
+ set $I1857, $P1856
+ find_lex $P1858, "$past"
+ unless_null $P1858, vivify_567
+ $P1858 = root_new ['parrot';'ResizablePMCArray']
+ store_lex "$past", $P1858
vivify_567:
- $P1854."named"(1)
- if_1835_end:
- if_1816_end:
-.annotate 'line', 666
- find_lex $P1855, "$i"
- clone $P1856, $P1855
- inc $P1855
- loop1857_next:
-.annotate 'line', 665
- goto loop1857_test
- loop1857_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1859, exception, 'type'
- eq $P1859, .CONTROL_LOOP_NEXT, loop1857_next
- eq $P1859, .CONTROL_LOOP_REDO, loop1857_redo
- loop1857_done:
- pop_eh
-.annotate 'line', 676
- find_lex $P1860, "$/"
+ set $P1858[$I1857], $P1855
+.annotate 'line', 681
+ find_lex $P1859, "$i"
+ set $I1860, $P1859
find_lex $P1861, "$past"
- $P1862 = $P1860."!make"($P1861)
-.annotate 'line', 654
- .return ($P1862)
- control_1761:
- .local pmc exception
- .get_results (exception)
- getattribute $P1863, exception, "payload"
- .return ($P1863)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "_block1773" :anon :subid("99_1275811497.55064") :outer("98_1275811497.55064")
-.annotate 'line', 656
- .const 'Sub' $P1795 = "100_1275811497.55064"
- capture_lex $P1795
-.annotate 'line', 657
- new $P1775, "Undef"
- .lex "$expr", $P1775
- find_lex $P1776, "$/"
- unless_null $P1776, vivify_551
- $P1776 = root_new ['parrot';'Hash']
- vivify_551:
- set $P1777, $P1776["EXPR"]
- unless_null $P1777, vivify_552
- new $P1777, "Undef"
- vivify_552:
- $P1778 = $P1777."ast"()
- store_lex "$expr", $P1778
-.annotate 'line', 658
- find_lex $P1783, "$expr"
- $S1784 = $P1783."name"()
- iseq $I1785, $S1784, "&infix:<,>"
- if $I1785, if_1782
- new $P1781, 'Integer'
- set $P1781, $I1785
- goto if_1782_end
- if_1782:
- find_lex $P1786, "$expr"
- $P1787 = $P1786."named"()
- isfalse $I1788, $P1787
- new $P1781, 'Integer'
- set $P1781, $I1788
- if_1782_end:
- if $P1781, if_1780
-.annotate 'line', 661
- find_lex $P1803, "$past"
- find_lex $P1804, "$expr"
- $P1805 = $P1803."push"($P1804)
- set $P1779, $P1805
-.annotate 'line', 658
- goto if_1780_end
- if_1780:
-.annotate 'line', 659
- find_lex $P1790, "$expr"
- $P1791 = $P1790."list"()
- defined $I1792, $P1791
- unless $I1792, for_undef_553
- iter $P1789, $P1791
- new $P1801, 'ExceptionHandler'
- set_addr $P1801, loop1800_handler
- $P1801."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P1801
- loop1800_test:
- unless $P1789, loop1800_done
- shift $P1793, $P1789
- loop1800_redo:
- .const 'Sub' $P1795 = "100_1275811497.55064"
- capture_lex $P1795
- $P1795($P1793)
- loop1800_next:
- goto loop1800_test
- loop1800_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1802, exception, 'type'
- eq $P1802, .CONTROL_LOOP_NEXT, loop1800_next
- eq $P1802, .CONTROL_LOOP_REDO, loop1800_redo
- loop1800_done:
- pop_eh
- for_undef_553:
-.annotate 'line', 658
- set $P1779, $P1789
- if_1780_end:
-.annotate 'line', 656
- .return ($P1779)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "_block1794" :anon :subid("100_1275811497.55064") :outer("99_1275811497.55064")
- .param pmc param_1796
-.annotate 'line', 659
- .lex "$_", param_1796
- find_lex $P1797, "$past"
- find_lex $P1798, "$_"
- $P1799 = $P1797."push"($P1798)
- .return ($P1799)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "term:sym<value>" :subid("101_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1867
-.annotate 'line', 680
- new $P1866, 'ExceptionHandler'
- set_addr $P1866, control_1865
- $P1866."handle_types"(.CONTROL_RETURN)
- push_eh $P1866
- .lex "self", self
- .lex "$/", param_1867
- find_lex $P1868, "$/"
- find_lex $P1869, "$/"
- unless_null $P1869, vivify_568
- $P1869 = root_new ['parrot';'Hash']
+ unless_null $P1861, vivify_568
+ $P1861 = root_new ['parrot';'ResizablePMCArray']
vivify_568:
- set $P1870, $P1869["value"]
- unless_null $P1870, vivify_569
- new $P1870, "Undef"
+ set $P1862, $P1861[$I1860]
+ unless_null $P1862, vivify_569
+ new $P1862, "Undef"
vivify_569:
- $P1871 = $P1870."ast"()
- $P1872 = $P1868."!make"($P1871)
- .return ($P1872)
- control_1865:
- .local pmc exception
- .get_results (exception)
- getattribute $P1873, exception, "payload"
- .return ($P1873)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "circumfix:sym<( )>" :subid("102_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1877
+ $P1862."flat"(1)
.annotate 'line', 682
- new $P1876, 'ExceptionHandler'
- set_addr $P1876, control_1875
- $P1876."handle_types"(.CONTROL_RETURN)
- push_eh $P1876
- .lex "self", self
- .lex "$/", param_1877
-.annotate 'line', 683
- find_lex $P1878, "$/"
-.annotate 'line', 684
- find_lex $P1881, "$/"
- unless_null $P1881, vivify_570
- $P1881 = root_new ['parrot';'Hash']
+ find_lex $P1866, "$i"
+ set $I1867, $P1866
+ find_lex $P1868, "$past"
+ unless_null $P1868, vivify_570
+ $P1868 = root_new ['parrot';'ResizablePMCArray']
vivify_570:
- set $P1882, $P1881["EXPR"]
- unless_null $P1882, vivify_571
- new $P1882, "Undef"
+ set $P1869, $P1868[$I1867]
+ unless_null $P1869, vivify_571
+ new $P1869, "Undef"
vivify_571:
- if $P1882, if_1880
-.annotate 'line', 685
- get_hll_global $P1887, ["PAST"], "Op"
- find_lex $P1888, "$/"
- $P1889 = $P1887."new"("list" :named("pasttype"), $P1888 :named("node"))
- set $P1879, $P1889
-.annotate 'line', 684
- goto if_1880_end
- if_1880:
- find_lex $P1883, "$/"
- unless_null $P1883, vivify_572
- $P1883 = root_new ['parrot';'Hash']
+ get_hll_global $P1870, ["PAST"], "Val"
+ $P1871 = $P1869."isa"($P1870)
+ if $P1871, if_1865
+ set $P1864, $P1871
+ goto if_1865_end
+ if_1865:
+.annotate 'line', 683
+ find_lex $P1872, "$i"
+ set $I1873, $P1872
+ find_lex $P1874, "$past"
+ unless_null $P1874, vivify_572
+ $P1874 = root_new ['parrot';'ResizablePMCArray']
vivify_572:
- set $P1884, $P1883["EXPR"]
- unless_null $P1884, vivify_573
- $P1884 = root_new ['parrot';'ResizablePMCArray']
+ set $P1875, $P1874[$I1873]
+ unless_null $P1875, vivify_573
+ new $P1875, "Undef"
vivify_573:
- set $P1885, $P1884[0]
- unless_null $P1885, vivify_574
- new $P1885, "Undef"
+ $S1876 = $P1875."name"()
+ substr $S1877, $S1876, 0, 1
+ iseq $I1878, $S1877, "%"
+ new $P1864, 'Integer'
+ set $P1864, $I1878
+ if_1865_end:
+ unless $P1864, if_1863_end
+.annotate 'line', 684
+ find_lex $P1879, "$i"
+ set $I1880, $P1879
+ find_lex $P1881, "$past"
+ unless_null $P1881, vivify_574
+ $P1881 = root_new ['parrot';'ResizablePMCArray']
vivify_574:
- $P1886 = $P1885."ast"()
- set $P1879, $P1886
- if_1880_end:
- $P1890 = $P1878."!make"($P1879)
-.annotate 'line', 682
+ set $P1882, $P1881[$I1880]
+ unless_null $P1882, vivify_575
+ new $P1882, "Undef"
+ vivify_575:
+ $P1882."named"(1)
+ if_1863_end:
+ if_1844_end:
+.annotate 'line', 679
+ find_lex $P1883, "$i"
+ clone $P1884, $P1883
+ inc $P1883
+ loop1885_next:
+.annotate 'line', 678
+ goto loop1885_test
+ loop1885_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1887, exception, 'type'
+ eq $P1887, .CONTROL_LOOP_NEXT, loop1885_next
+ eq $P1887, .CONTROL_LOOP_REDO, loop1885_redo
+ loop1885_done:
+ pop_eh
+.annotate 'line', 689
+ find_lex $P1888, "$/"
+ find_lex $P1889, "$past"
+ $P1890 = $P1888."!make"($P1889)
+.annotate 'line', 667
.return ($P1890)
- control_1875:
+ control_1789:
.local pmc exception
.get_results (exception)
getattribute $P1891, exception, "payload"
@@ -23254,608 +24211,708 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "circumfix:sym<[ ]>" :subid("103_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "_block1801" :anon :subid("99_1280467483.70067") :outer("98_1280467483.70067")
+.annotate 'line', 669
+ .const 'Sub' $P1823 = "100_1280467483.70067"
+ capture_lex $P1823
+.annotate 'line', 670
+ new $P1803, "Undef"
+ .lex "$expr", $P1803
+ find_lex $P1804, "$/"
+ unless_null $P1804, vivify_559
+ $P1804 = root_new ['parrot';'Hash']
+ vivify_559:
+ set $P1805, $P1804["EXPR"]
+ unless_null $P1805, vivify_560
+ new $P1805, "Undef"
+ vivify_560:
+ $P1806 = $P1805."ast"()
+ store_lex "$expr", $P1806
+.annotate 'line', 671
+ find_lex $P1811, "$expr"
+ $S1812 = $P1811."name"()
+ iseq $I1813, $S1812, "&infix:<,>"
+ if $I1813, if_1810
+ new $P1809, 'Integer'
+ set $P1809, $I1813
+ goto if_1810_end
+ if_1810:
+ find_lex $P1814, "$expr"
+ $P1815 = $P1814."named"()
+ isfalse $I1816, $P1815
+ new $P1809, 'Integer'
+ set $P1809, $I1816
+ if_1810_end:
+ if $P1809, if_1808
+.annotate 'line', 674
+ find_lex $P1831, "$past"
+ find_lex $P1832, "$expr"
+ $P1833 = $P1831."push"($P1832)
+ set $P1807, $P1833
+.annotate 'line', 671
+ goto if_1808_end
+ if_1808:
+.annotate 'line', 672
+ find_lex $P1818, "$expr"
+ $P1819 = $P1818."list"()
+ defined $I1820, $P1819
+ unless $I1820, for_undef_561
+ iter $P1817, $P1819
+ new $P1829, 'ExceptionHandler'
+ set_addr $P1829, loop1828_handler
+ $P1829."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P1829
+ loop1828_test:
+ unless $P1817, loop1828_done
+ shift $P1821, $P1817
+ loop1828_redo:
+ .const 'Sub' $P1823 = "100_1280467483.70067"
+ capture_lex $P1823
+ $P1823($P1821)
+ loop1828_next:
+ goto loop1828_test
+ loop1828_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1830, exception, 'type'
+ eq $P1830, .CONTROL_LOOP_NEXT, loop1828_next
+ eq $P1830, .CONTROL_LOOP_REDO, loop1828_redo
+ loop1828_done:
+ pop_eh
+ for_undef_561:
+.annotate 'line', 671
+ set $P1807, $P1817
+ if_1808_end:
+.annotate 'line', 669
+ .return ($P1807)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1822" :anon :subid("100_1280467483.70067") :outer("99_1280467483.70067")
+ .param pmc param_1824
+.annotate 'line', 672
+ .lex "$_", param_1824
+ find_lex $P1825, "$past"
+ find_lex $P1826, "$_"
+ $P1827 = $P1825."push"($P1826)
+ .return ($P1827)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "term:sym<value>" :subid("101_1280467483.70067") :method :outer("11_1280467483.70067")
.param pmc param_1895
-.annotate 'line', 688
+.annotate 'line', 693
new $P1894, 'ExceptionHandler'
set_addr $P1894, control_1893
$P1894."handle_types"(.CONTROL_RETURN)
push_eh $P1894
.lex "self", self
.lex "$/", param_1895
-.annotate 'line', 689
- new $P1896, "Undef"
- .lex "$past", $P1896
-.annotate 'line', 688
- find_lex $P1897, "$past"
-.annotate 'line', 690
- find_lex $P1899, "$/"
- unless_null $P1899, vivify_575
- $P1899 = root_new ['parrot';'Hash']
- vivify_575:
- set $P1900, $P1899["EXPR"]
- unless_null $P1900, vivify_576
- new $P1900, "Undef"
+ find_lex $P1896, "$/"
+ find_lex $P1897, "$/"
+ unless_null $P1897, vivify_576
+ $P1897 = root_new ['parrot';'Hash']
vivify_576:
- if $P1900, if_1898
-.annotate 'line', 697
- get_hll_global $P1912, ["PAST"], "Op"
- $P1913 = $P1912."new"("list" :named("pasttype"))
- store_lex "$past", $P1913
-.annotate 'line', 696
- goto if_1898_end
- if_1898:
-.annotate 'line', 691
- find_lex $P1901, "$/"
- unless_null $P1901, vivify_577
- $P1901 = root_new ['parrot';'Hash']
+ set $P1898, $P1897["value"]
+ unless_null $P1898, vivify_577
+ new $P1898, "Undef"
vivify_577:
- set $P1902, $P1901["EXPR"]
- unless_null $P1902, vivify_578
- $P1902 = root_new ['parrot';'ResizablePMCArray']
- vivify_578:
- set $P1903, $P1902[0]
- unless_null $P1903, vivify_579
- new $P1903, "Undef"
- vivify_579:
- $P1904 = $P1903."ast"()
- store_lex "$past", $P1904
-.annotate 'line', 692
- find_lex $P1906, "$past"
- $S1907 = $P1906."name"()
- isne $I1908, $S1907, "&infix:<,>"
- unless $I1908, if_1905_end
-.annotate 'line', 693
- get_hll_global $P1909, ["PAST"], "Op"
- find_lex $P1910, "$past"
- $P1911 = $P1909."new"($P1910, "list" :named("pasttype"))
- store_lex "$past", $P1911
- if_1905_end:
- if_1898_end:
-.annotate 'line', 699
- find_lex $P1914, "$past"
- $P1914."name"("&circumfix:<[ ]>")
-.annotate 'line', 700
- find_lex $P1915, "$/"
- find_lex $P1916, "$past"
- $P1917 = $P1915."!make"($P1916)
-.annotate 'line', 688
- .return ($P1917)
+ $P1899 = $P1898."ast"()
+ $P1900 = $P1896."!make"($P1899)
+ .return ($P1900)
control_1893:
.local pmc exception
.get_results (exception)
- getattribute $P1918, exception, "payload"
- .return ($P1918)
+ getattribute $P1901, exception, "payload"
+ .return ($P1901)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "circumfix:sym<ang>" :subid("104_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1922
-.annotate 'line', 703
- new $P1921, 'ExceptionHandler'
- set_addr $P1921, control_1920
- $P1921."handle_types"(.CONTROL_RETURN)
- push_eh $P1921
- .lex "self", self
- .lex "$/", param_1922
- find_lex $P1923, "$/"
- find_lex $P1924, "$/"
- unless_null $P1924, vivify_580
- $P1924 = root_new ['parrot';'Hash']
+.sub "circumfix:sym<( )>" :subid("102_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1905
+.annotate 'line', 695
+ new $P1904, 'ExceptionHandler'
+ set_addr $P1904, control_1903
+ $P1904."handle_types"(.CONTROL_RETURN)
+ push_eh $P1904
+ .lex "self", self
+ .lex "$/", param_1905
+.annotate 'line', 696
+ find_lex $P1906, "$/"
+.annotate 'line', 697
+ find_lex $P1909, "$/"
+ unless_null $P1909, vivify_578
+ $P1909 = root_new ['parrot';'Hash']
+ vivify_578:
+ set $P1910, $P1909["EXPR"]
+ unless_null $P1910, vivify_579
+ new $P1910, "Undef"
+ vivify_579:
+ if $P1910, if_1908
+.annotate 'line', 698
+ get_hll_global $P1915, ["PAST"], "Op"
+ find_lex $P1916, "$/"
+ $P1917 = $P1915."new"("list" :named("pasttype"), $P1916 :named("node"))
+ set $P1907, $P1917
+.annotate 'line', 697
+ goto if_1908_end
+ if_1908:
+ find_lex $P1911, "$/"
+ unless_null $P1911, vivify_580
+ $P1911 = root_new ['parrot';'Hash']
vivify_580:
- set $P1925, $P1924["quote_EXPR"]
- unless_null $P1925, vivify_581
- new $P1925, "Undef"
+ set $P1912, $P1911["EXPR"]
+ unless_null $P1912, vivify_581
+ $P1912 = root_new ['parrot';'ResizablePMCArray']
vivify_581:
- $P1926 = $P1925."ast"()
- $P1927 = $P1923."!make"($P1926)
- .return ($P1927)
- control_1920:
+ set $P1913, $P1912[0]
+ unless_null $P1913, vivify_582
+ new $P1913, "Undef"
+ vivify_582:
+ $P1914 = $P1913."ast"()
+ set $P1907, $P1914
+ if_1908_end:
+ $P1918 = $P1906."!make"($P1907)
+.annotate 'line', 695
+ .return ($P1918)
+ control_1903:
.local pmc exception
.get_results (exception)
- getattribute $P1928, exception, "payload"
- .return ($P1928)
+ getattribute $P1919, exception, "payload"
+ .return ($P1919)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("105_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1932
-.annotate 'line', 704
- new $P1931, 'ExceptionHandler'
- set_addr $P1931, control_1930
- $P1931."handle_types"(.CONTROL_RETURN)
- push_eh $P1931
- .lex "self", self
- .lex "$/", param_1932
- find_lex $P1933, "$/"
- find_lex $P1934, "$/"
- unless_null $P1934, vivify_582
- $P1934 = root_new ['parrot';'Hash']
- vivify_582:
- set $P1935, $P1934["quote_EXPR"]
- unless_null $P1935, vivify_583
- new $P1935, "Undef"
+.sub "circumfix:sym<[ ]>" :subid("103_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1923
+.annotate 'line', 701
+ new $P1922, 'ExceptionHandler'
+ set_addr $P1922, control_1921
+ $P1922."handle_types"(.CONTROL_RETURN)
+ push_eh $P1922
+ .lex "self", self
+ .lex "$/", param_1923
+.annotate 'line', 702
+ new $P1924, "Undef"
+ .lex "$past", $P1924
+.annotate 'line', 701
+ find_lex $P1925, "$past"
+.annotate 'line', 703
+ find_lex $P1927, "$/"
+ unless_null $P1927, vivify_583
+ $P1927 = root_new ['parrot';'Hash']
vivify_583:
- $P1936 = $P1935."ast"()
- $P1937 = $P1933."!make"($P1936)
- .return ($P1937)
- control_1930:
+ set $P1928, $P1927["EXPR"]
+ unless_null $P1928, vivify_584
+ new $P1928, "Undef"
+ vivify_584:
+ if $P1928, if_1926
+.annotate 'line', 710
+ get_hll_global $P1940, ["PAST"], "Op"
+ $P1941 = $P1940."new"("list" :named("pasttype"))
+ store_lex "$past", $P1941
+.annotate 'line', 709
+ goto if_1926_end
+ if_1926:
+.annotate 'line', 704
+ find_lex $P1929, "$/"
+ unless_null $P1929, vivify_585
+ $P1929 = root_new ['parrot';'Hash']
+ vivify_585:
+ set $P1930, $P1929["EXPR"]
+ unless_null $P1930, vivify_586
+ $P1930 = root_new ['parrot';'ResizablePMCArray']
+ vivify_586:
+ set $P1931, $P1930[0]
+ unless_null $P1931, vivify_587
+ new $P1931, "Undef"
+ vivify_587:
+ $P1932 = $P1931."ast"()
+ store_lex "$past", $P1932
+.annotate 'line', 705
+ find_lex $P1934, "$past"
+ $S1935 = $P1934."name"()
+ isne $I1936, $S1935, "&infix:<,>"
+ unless $I1936, if_1933_end
+.annotate 'line', 706
+ get_hll_global $P1937, ["PAST"], "Op"
+ find_lex $P1938, "$past"
+ $P1939 = $P1937."new"($P1938, "list" :named("pasttype"))
+ store_lex "$past", $P1939
+ if_1933_end:
+ if_1926_end:
+.annotate 'line', 712
+ find_lex $P1942, "$past"
+ $P1942."name"("&circumfix:<[ ]>")
+.annotate 'line', 713
+ find_lex $P1943, "$/"
+ find_lex $P1944, "$past"
+ $P1945 = $P1943."!make"($P1944)
+.annotate 'line', 701
+ .return ($P1945)
+ control_1921:
.local pmc exception
.get_results (exception)
- getattribute $P1938, exception, "payload"
- .return ($P1938)
+ getattribute $P1946, exception, "payload"
+ .return ($P1946)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "circumfix:sym<{ }>" :subid("106_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1942
-.annotate 'line', 706
- new $P1941, 'ExceptionHandler'
- set_addr $P1941, control_1940
- $P1941."handle_types"(.CONTROL_RETURN)
- push_eh $P1941
- .lex "self", self
- .lex "$/", param_1942
-.annotate 'line', 707
- new $P1943, "Undef"
- .lex "$past", $P1943
- find_lex $P1946, "$/"
- unless_null $P1946, vivify_584
- $P1946 = root_new ['parrot';'Hash']
- vivify_584:
- set $P1947, $P1946["pblock"]
- unless_null $P1947, vivify_585
- $P1947 = root_new ['parrot';'Hash']
- vivify_585:
- set $P1948, $P1947["blockoid"]
- unless_null $P1948, vivify_586
- $P1948 = root_new ['parrot';'Hash']
- vivify_586:
- set $P1949, $P1948["statementlist"]
- unless_null $P1949, vivify_587
- $P1949 = root_new ['parrot';'Hash']
- vivify_587:
- set $P1950, $P1949["statement"]
- unless_null $P1950, vivify_588
- new $P1950, "Undef"
+.sub "circumfix:sym<ang>" :subid("104_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1950
+.annotate 'line', 716
+ new $P1949, 'ExceptionHandler'
+ set_addr $P1949, control_1948
+ $P1949."handle_types"(.CONTROL_RETURN)
+ push_eh $P1949
+ .lex "self", self
+ .lex "$/", param_1950
+ find_lex $P1951, "$/"
+ find_lex $P1952, "$/"
+ unless_null $P1952, vivify_588
+ $P1952 = root_new ['parrot';'Hash']
vivify_588:
- set $N1951, $P1950
- isgt $I1952, $N1951, 0.0
- if $I1952, if_1945
-.annotate 'line', 709
- $P1956 = "vivitype"("%")
- set $P1944, $P1956
-.annotate 'line', 707
- goto if_1945_end
- if_1945:
-.annotate 'line', 708
- find_lex $P1953, "$/"
+ set $P1953, $P1952["quote_EXPR"]
unless_null $P1953, vivify_589
- $P1953 = root_new ['parrot';'Hash']
+ new $P1953, "Undef"
vivify_589:
- set $P1954, $P1953["pblock"]
- unless_null $P1954, vivify_590
- new $P1954, "Undef"
- vivify_590:
- $P1955 = $P1954."ast"()
- set $P1944, $P1955
- if_1945_end:
- store_lex "$past", $P1944
-.annotate 'line', 710
- new $P1957, "Integer"
- assign $P1957, 1
- find_lex $P1958, "$past"
- unless_null $P1958, vivify_591
- $P1958 = root_new ['parrot';'Hash']
- store_lex "$past", $P1958
- vivify_591:
- set $P1958["bareblock"], $P1957
-.annotate 'line', 711
- find_lex $P1959, "$/"
- find_lex $P1960, "$past"
- $P1961 = $P1959."!make"($P1960)
-.annotate 'line', 706
- .return ($P1961)
- control_1940:
+ $P1954 = $P1953."ast"()
+ $P1955 = $P1951."!make"($P1954)
+ .return ($P1955)
+ control_1948:
.local pmc exception
.get_results (exception)
- getattribute $P1962, exception, "payload"
- .return ($P1962)
+ getattribute $P1956, exception, "payload"
+ .return ($P1956)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "circumfix:sym<sigil>" :subid("107_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1966
-.annotate 'line', 714
- new $P1965, 'ExceptionHandler'
- set_addr $P1965, control_1964
- $P1965."handle_types"(.CONTROL_RETURN)
- push_eh $P1965
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("105_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1960
+.annotate 'line', 717
+ new $P1959, 'ExceptionHandler'
+ set_addr $P1959, control_1958
+ $P1959."handle_types"(.CONTROL_RETURN)
+ push_eh $P1959
.lex "self", self
- .lex "$/", param_1966
-.annotate 'line', 715
- new $P1967, "Undef"
- .lex "$name", $P1967
- find_lex $P1970, "$/"
- unless_null $P1970, vivify_592
- $P1970 = root_new ['parrot';'Hash']
- vivify_592:
- set $P1971, $P1970["sigil"]
- unless_null $P1971, vivify_593
- new $P1971, "Undef"
- vivify_593:
- set $S1972, $P1971
- iseq $I1973, $S1972, "@"
- if $I1973, if_1969
-.annotate 'line', 716
- find_lex $P1977, "$/"
- unless_null $P1977, vivify_594
- $P1977 = root_new ['parrot';'Hash']
- vivify_594:
- set $P1978, $P1977["sigil"]
- unless_null $P1978, vivify_595
- new $P1978, "Undef"
- vivify_595:
- set $S1979, $P1978
- iseq $I1980, $S1979, "%"
- if $I1980, if_1976
- new $P1982, "String"
- assign $P1982, "item"
- set $P1975, $P1982
- goto if_1976_end
- if_1976:
- new $P1981, "String"
- assign $P1981, "hash"
- set $P1975, $P1981
- if_1976_end:
- set $P1968, $P1975
-.annotate 'line', 715
- goto if_1969_end
- if_1969:
- new $P1974, "String"
- assign $P1974, "list"
- set $P1968, $P1974
- if_1969_end:
- store_lex "$name", $P1968
-.annotate 'line', 718
- find_lex $P1983, "$/"
- get_hll_global $P1984, ["PAST"], "Op"
- find_lex $P1985, "$name"
- find_lex $P1986, "$/"
- unless_null $P1986, vivify_596
- $P1986 = root_new ['parrot';'Hash']
- vivify_596:
- set $P1987, $P1986["semilist"]
- unless_null $P1987, vivify_597
- new $P1987, "Undef"
- vivify_597:
- $P1988 = $P1987."ast"()
- $P1989 = $P1984."new"($P1988, "callmethod" :named("pasttype"), $P1985 :named("name"))
- $P1990 = $P1983."!make"($P1989)
-.annotate 'line', 714
- .return ($P1990)
- control_1964:
+ .lex "$/", param_1960
+ find_lex $P1961, "$/"
+ find_lex $P1962, "$/"
+ unless_null $P1962, vivify_590
+ $P1962 = root_new ['parrot';'Hash']
+ vivify_590:
+ set $P1963, $P1962["quote_EXPR"]
+ unless_null $P1963, vivify_591
+ new $P1963, "Undef"
+ vivify_591:
+ $P1964 = $P1963."ast"()
+ $P1965 = $P1961."!make"($P1964)
+ .return ($P1965)
+ control_1958:
.local pmc exception
.get_results (exception)
- getattribute $P1991, exception, "payload"
- .return ($P1991)
+ getattribute $P1966, exception, "payload"
+ .return ($P1966)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "semilist" :subid("108_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_1995
+.sub "circumfix:sym<{ }>" :subid("106_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1970
+.annotate 'line', 719
+ new $P1969, 'ExceptionHandler'
+ set_addr $P1969, control_1968
+ $P1969."handle_types"(.CONTROL_RETURN)
+ push_eh $P1969
+ .lex "self", self
+ .lex "$/", param_1970
+.annotate 'line', 720
+ new $P1971, "Undef"
+ .lex "$past", $P1971
+ find_lex $P1974, "$/"
+ unless_null $P1974, vivify_592
+ $P1974 = root_new ['parrot';'Hash']
+ vivify_592:
+ set $P1975, $P1974["pblock"]
+ unless_null $P1975, vivify_593
+ $P1975 = root_new ['parrot';'Hash']
+ vivify_593:
+ set $P1976, $P1975["blockoid"]
+ unless_null $P1976, vivify_594
+ $P1976 = root_new ['parrot';'Hash']
+ vivify_594:
+ set $P1977, $P1976["statementlist"]
+ unless_null $P1977, vivify_595
+ $P1977 = root_new ['parrot';'Hash']
+ vivify_595:
+ set $P1978, $P1977["statement"]
+ unless_null $P1978, vivify_596
+ new $P1978, "Undef"
+ vivify_596:
+ set $N1979, $P1978
+ isgt $I1980, $N1979, 0.0
+ if $I1980, if_1973
+.annotate 'line', 722
+ $P1984 = "vivitype"("%")
+ set $P1972, $P1984
+.annotate 'line', 720
+ goto if_1973_end
+ if_1973:
.annotate 'line', 721
- new $P1994, 'ExceptionHandler'
- set_addr $P1994, control_1993
- $P1994."handle_types"(.CONTROL_RETURN)
- push_eh $P1994
- .lex "self", self
- .lex "$/", param_1995
- find_lex $P1996, "$/"
- find_lex $P1997, "$/"
- unless_null $P1997, vivify_598
- $P1997 = root_new ['parrot';'Hash']
+ find_lex $P1981, "$/"
+ unless_null $P1981, vivify_597
+ $P1981 = root_new ['parrot';'Hash']
+ vivify_597:
+ set $P1982, $P1981["pblock"]
+ unless_null $P1982, vivify_598
+ new $P1982, "Undef"
vivify_598:
- set $P1998, $P1997["statement"]
- unless_null $P1998, vivify_599
- new $P1998, "Undef"
+ $P1983 = $P1982."ast"()
+ set $P1972, $P1983
+ if_1973_end:
+ store_lex "$past", $P1972
+.annotate 'line', 723
+ new $P1985, "Integer"
+ assign $P1985, 1
+ find_lex $P1986, "$past"
+ unless_null $P1986, vivify_599
+ $P1986 = root_new ['parrot';'Hash']
+ store_lex "$past", $P1986
vivify_599:
- $P1999 = $P1998."ast"()
- $P2000 = $P1996."!make"($P1999)
- .return ($P2000)
- control_1993:
+ set $P1986["bareblock"], $P1985
+.annotate 'line', 724
+ find_lex $P1987, "$/"
+ find_lex $P1988, "$past"
+ $P1989 = $P1987."!make"($P1988)
+.annotate 'line', 719
+ .return ($P1989)
+ control_1968:
.local pmc exception
.get_results (exception)
- getattribute $P2001, exception, "payload"
- .return ($P2001)
+ getattribute $P1990, exception, "payload"
+ .return ($P1990)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "postcircumfix:sym<[ ]>" :subid("109_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2005
-.annotate 'line', 723
- new $P2004, 'ExceptionHandler'
- set_addr $P2004, control_2003
- $P2004."handle_types"(.CONTROL_RETURN)
- push_eh $P2004
- .lex "self", self
- .lex "$/", param_2005
-.annotate 'line', 724
- find_lex $P2006, "$/"
- get_hll_global $P2007, ["PAST"], "Var"
- find_lex $P2008, "$/"
- unless_null $P2008, vivify_600
- $P2008 = root_new ['parrot';'Hash']
+.sub "circumfix:sym<sigil>" :subid("107_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_1994
+.annotate 'line', 727
+ new $P1993, 'ExceptionHandler'
+ set_addr $P1993, control_1992
+ $P1993."handle_types"(.CONTROL_RETURN)
+ push_eh $P1993
+ .lex "self", self
+ .lex "$/", param_1994
+.annotate 'line', 728
+ new $P1995, "Undef"
+ .lex "$name", $P1995
+ find_lex $P1998, "$/"
+ unless_null $P1998, vivify_600
+ $P1998 = root_new ['parrot';'Hash']
vivify_600:
- set $P2009, $P2008["EXPR"]
- unless_null $P2009, vivify_601
- new $P2009, "Undef"
+ set $P1999, $P1998["sigil"]
+ unless_null $P1999, vivify_601
+ new $P1999, "Undef"
vivify_601:
- $P2010 = $P2009."ast"()
-.annotate 'line', 726
- $P2011 = "vivitype"("@")
- $P2012 = $P2007."new"($P2010, "keyed_int" :named("scope"), "Undef" :named("viviself"), $P2011 :named("vivibase"))
-.annotate 'line', 724
- $P2013 = $P2006."!make"($P2012)
-.annotate 'line', 723
- .return ($P2013)
- control_2003:
+ set $S2000, $P1999
+ iseq $I2001, $S2000, "@"
+ if $I2001, if_1997
+.annotate 'line', 729
+ find_lex $P2005, "$/"
+ unless_null $P2005, vivify_602
+ $P2005 = root_new ['parrot';'Hash']
+ vivify_602:
+ set $P2006, $P2005["sigil"]
+ unless_null $P2006, vivify_603
+ new $P2006, "Undef"
+ vivify_603:
+ set $S2007, $P2006
+ iseq $I2008, $S2007, "%"
+ if $I2008, if_2004
+ new $P2010, "String"
+ assign $P2010, "item"
+ set $P2003, $P2010
+ goto if_2004_end
+ if_2004:
+ new $P2009, "String"
+ assign $P2009, "hash"
+ set $P2003, $P2009
+ if_2004_end:
+ set $P1996, $P2003
+.annotate 'line', 728
+ goto if_1997_end
+ if_1997:
+ new $P2002, "String"
+ assign $P2002, "list"
+ set $P1996, $P2002
+ if_1997_end:
+ store_lex "$name", $P1996
+.annotate 'line', 731
+ find_lex $P2011, "$/"
+ get_hll_global $P2012, ["PAST"], "Op"
+ find_lex $P2013, "$name"
+ find_lex $P2014, "$/"
+ unless_null $P2014, vivify_604
+ $P2014 = root_new ['parrot';'Hash']
+ vivify_604:
+ set $P2015, $P2014["semilist"]
+ unless_null $P2015, vivify_605
+ new $P2015, "Undef"
+ vivify_605:
+ $P2016 = $P2015."ast"()
+ $P2017 = $P2012."new"($P2016, "callmethod" :named("pasttype"), $P2013 :named("name"))
+ $P2018 = $P2011."!make"($P2017)
+.annotate 'line', 727
+ .return ($P2018)
+ control_1992:
.local pmc exception
.get_results (exception)
- getattribute $P2014, exception, "payload"
- .return ($P2014)
+ getattribute $P2019, exception, "payload"
+ .return ($P2019)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "postcircumfix:sym<{ }>" :subid("110_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2018
-.annotate 'line', 729
- new $P2017, 'ExceptionHandler'
- set_addr $P2017, control_2016
- $P2017."handle_types"(.CONTROL_RETURN)
- push_eh $P2017
- .lex "self", self
- .lex "$/", param_2018
-.annotate 'line', 730
- find_lex $P2019, "$/"
- get_hll_global $P2020, ["PAST"], "Var"
- find_lex $P2021, "$/"
- unless_null $P2021, vivify_602
- $P2021 = root_new ['parrot';'Hash']
- vivify_602:
- set $P2022, $P2021["EXPR"]
- unless_null $P2022, vivify_603
- new $P2022, "Undef"
- vivify_603:
- $P2023 = $P2022."ast"()
-.annotate 'line', 732
- $P2024 = "vivitype"("%")
- $P2025 = $P2020."new"($P2023, "keyed" :named("scope"), "Undef" :named("viviself"), $P2024 :named("vivibase"))
-.annotate 'line', 730
- $P2026 = $P2019."!make"($P2025)
-.annotate 'line', 729
- .return ($P2026)
- control_2016:
+.sub "semilist" :subid("108_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2023
+.annotate 'line', 734
+ new $P2022, 'ExceptionHandler'
+ set_addr $P2022, control_2021
+ $P2022."handle_types"(.CONTROL_RETURN)
+ push_eh $P2022
+ .lex "self", self
+ .lex "$/", param_2023
+ find_lex $P2024, "$/"
+ find_lex $P2025, "$/"
+ unless_null $P2025, vivify_606
+ $P2025 = root_new ['parrot';'Hash']
+ vivify_606:
+ set $P2026, $P2025["statement"]
+ unless_null $P2026, vivify_607
+ new $P2026, "Undef"
+ vivify_607:
+ $P2027 = $P2026."ast"()
+ $P2028 = $P2024."!make"($P2027)
+ .return ($P2028)
+ control_2021:
.local pmc exception
.get_results (exception)
- getattribute $P2027, exception, "payload"
- .return ($P2027)
+ getattribute $P2029, exception, "payload"
+ .return ($P2029)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "postcircumfix:sym<ang>" :subid("111_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2031
-.annotate 'line', 735
- new $P2030, 'ExceptionHandler'
- set_addr $P2030, control_2029
- $P2030."handle_types"(.CONTROL_RETURN)
- push_eh $P2030
- .lex "self", self
- .lex "$/", param_2031
+.sub "postcircumfix:sym<[ ]>" :subid("109_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2033
.annotate 'line', 736
- find_lex $P2032, "$/"
- get_hll_global $P2033, ["PAST"], "Var"
+ new $P2032, 'ExceptionHandler'
+ set_addr $P2032, control_2031
+ $P2032."handle_types"(.CONTROL_RETURN)
+ push_eh $P2032
+ .lex "self", self
+ .lex "$/", param_2033
+.annotate 'line', 737
find_lex $P2034, "$/"
- unless_null $P2034, vivify_604
- $P2034 = root_new ['parrot';'Hash']
- vivify_604:
- set $P2035, $P2034["quote_EXPR"]
- unless_null $P2035, vivify_605
- new $P2035, "Undef"
- vivify_605:
- $P2036 = $P2035."ast"()
-.annotate 'line', 738
- $P2037 = "vivitype"("%")
- $P2038 = $P2033."new"($P2036, "keyed" :named("scope"), "Undef" :named("viviself"), $P2037 :named("vivibase"))
+ get_hll_global $P2035, ["PAST"], "Var"
+ find_lex $P2036, "$/"
+ unless_null $P2036, vivify_608
+ $P2036 = root_new ['parrot';'Hash']
+ vivify_608:
+ set $P2037, $P2036["EXPR"]
+ unless_null $P2037, vivify_609
+ new $P2037, "Undef"
+ vivify_609:
+ $P2038 = $P2037."ast"()
+.annotate 'line', 739
+ $P2039 = "vivitype"("@")
+ $P2040 = $P2035."new"($P2038, "keyed_int" :named("scope"), "Undef" :named("viviself"), $P2039 :named("vivibase"))
+.annotate 'line', 737
+ $P2041 = $P2034."!make"($P2040)
.annotate 'line', 736
- $P2039 = $P2032."!make"($P2038)
-.annotate 'line', 735
- .return ($P2039)
- control_2029:
+ .return ($P2041)
+ control_2031:
.local pmc exception
.get_results (exception)
- getattribute $P2040, exception, "payload"
- .return ($P2040)
+ getattribute $P2042, exception, "payload"
+ .return ($P2042)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "postcircumfix:sym<( )>" :subid("112_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2044
-.annotate 'line', 741
- new $P2043, 'ExceptionHandler'
- set_addr $P2043, control_2042
- $P2043."handle_types"(.CONTROL_RETURN)
- push_eh $P2043
- .lex "self", self
- .lex "$/", param_2044
+.sub "postcircumfix:sym<{ }>" :subid("110_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2046
.annotate 'line', 742
- find_lex $P2045, "$/"
- find_lex $P2046, "$/"
- unless_null $P2046, vivify_606
- $P2046 = root_new ['parrot';'Hash']
- vivify_606:
- set $P2047, $P2046["arglist"]
- unless_null $P2047, vivify_607
- new $P2047, "Undef"
- vivify_607:
- $P2048 = $P2047."ast"()
- $P2049 = $P2045."!make"($P2048)
-.annotate 'line', 741
- .return ($P2049)
- control_2042:
+ new $P2045, 'ExceptionHandler'
+ set_addr $P2045, control_2044
+ $P2045."handle_types"(.CONTROL_RETURN)
+ push_eh $P2045
+ .lex "self", self
+ .lex "$/", param_2046
+.annotate 'line', 743
+ find_lex $P2047, "$/"
+ get_hll_global $P2048, ["PAST"], "Var"
+ find_lex $P2049, "$/"
+ unless_null $P2049, vivify_610
+ $P2049 = root_new ['parrot';'Hash']
+ vivify_610:
+ set $P2050, $P2049["EXPR"]
+ unless_null $P2050, vivify_611
+ new $P2050, "Undef"
+ vivify_611:
+ $P2051 = $P2050."ast"()
+.annotate 'line', 745
+ $P2052 = "vivitype"("%")
+ $P2053 = $P2048."new"($P2051, "keyed" :named("scope"), "Undef" :named("viviself"), $P2052 :named("vivibase"))
+.annotate 'line', 743
+ $P2054 = $P2047."!make"($P2053)
+.annotate 'line', 742
+ .return ($P2054)
+ control_2044:
.local pmc exception
.get_results (exception)
- getattribute $P2050, exception, "payload"
- .return ($P2050)
+ getattribute $P2055, exception, "payload"
+ .return ($P2055)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "value" :subid("113_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2054
-.annotate 'line', 745
- new $P2053, 'ExceptionHandler'
- set_addr $P2053, control_2052
- $P2053."handle_types"(.CONTROL_RETURN)
- push_eh $P2053
- .lex "self", self
- .lex "$/", param_2054
-.annotate 'line', 746
- find_lex $P2055, "$/"
- find_lex $P2058, "$/"
- unless_null $P2058, vivify_608
- $P2058 = root_new ['parrot';'Hash']
- vivify_608:
- set $P2059, $P2058["quote"]
- unless_null $P2059, vivify_609
- new $P2059, "Undef"
- vivify_609:
- if $P2059, if_2057
- find_lex $P2063, "$/"
- unless_null $P2063, vivify_610
- $P2063 = root_new ['parrot';'Hash']
- vivify_610:
- set $P2064, $P2063["number"]
- unless_null $P2064, vivify_611
- new $P2064, "Undef"
- vivify_611:
- $P2065 = $P2064."ast"()
- set $P2056, $P2065
- goto if_2057_end
- if_2057:
+.sub "postcircumfix:sym<ang>" :subid("111_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2059
+.annotate 'line', 748
+ new $P2058, 'ExceptionHandler'
+ set_addr $P2058, control_2057
+ $P2058."handle_types"(.CONTROL_RETURN)
+ push_eh $P2058
+ .lex "self", self
+ .lex "$/", param_2059
+.annotate 'line', 749
find_lex $P2060, "$/"
- unless_null $P2060, vivify_612
- $P2060 = root_new ['parrot';'Hash']
+ get_hll_global $P2061, ["PAST"], "Var"
+ find_lex $P2062, "$/"
+ unless_null $P2062, vivify_612
+ $P2062 = root_new ['parrot';'Hash']
vivify_612:
- set $P2061, $P2060["quote"]
- unless_null $P2061, vivify_613
- new $P2061, "Undef"
+ set $P2063, $P2062["quote_EXPR"]
+ unless_null $P2063, vivify_613
+ new $P2063, "Undef"
vivify_613:
- $P2062 = $P2061."ast"()
- set $P2056, $P2062
- if_2057_end:
- $P2066 = $P2055."!make"($P2056)
-.annotate 'line', 745
- .return ($P2066)
- control_2052:
+ $P2064 = $P2063."ast"()
+.annotate 'line', 751
+ $P2065 = "vivitype"("%")
+ $P2066 = $P2061."new"($P2064, "keyed" :named("scope"), "Undef" :named("viviself"), $P2065 :named("vivibase"))
+.annotate 'line', 749
+ $P2067 = $P2060."!make"($P2066)
+.annotate 'line', 748
+ .return ($P2067)
+ control_2057:
.local pmc exception
.get_results (exception)
- getattribute $P2067, exception, "payload"
- .return ($P2067)
+ getattribute $P2068, exception, "payload"
+ .return ($P2068)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "number" :subid("114_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2071
-.annotate 'line', 749
- new $P2070, 'ExceptionHandler'
- set_addr $P2070, control_2069
- $P2070."handle_types"(.CONTROL_RETURN)
- push_eh $P2070
- .lex "self", self
- .lex "$/", param_2071
-.annotate 'line', 750
- new $P2072, "Undef"
- .lex "$value", $P2072
- find_lex $P2075, "$/"
- unless_null $P2075, vivify_614
- $P2075 = root_new ['parrot';'Hash']
+.sub "postcircumfix:sym<( )>" :subid("112_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2072
+.annotate 'line', 754
+ new $P2071, 'ExceptionHandler'
+ set_addr $P2071, control_2070
+ $P2071."handle_types"(.CONTROL_RETURN)
+ push_eh $P2071
+ .lex "self", self
+ .lex "$/", param_2072
+.annotate 'line', 755
+ find_lex $P2073, "$/"
+ find_lex $P2074, "$/"
+ unless_null $P2074, vivify_614
+ $P2074 = root_new ['parrot';'Hash']
vivify_614:
- set $P2076, $P2075["dec_number"]
- unless_null $P2076, vivify_615
- new $P2076, "Undef"
+ set $P2075, $P2074["arglist"]
+ unless_null $P2075, vivify_615
+ new $P2075, "Undef"
vivify_615:
- if $P2076, if_2074
- find_lex $P2080, "$/"
- unless_null $P2080, vivify_616
- $P2080 = root_new ['parrot';'Hash']
+ $P2076 = $P2075."ast"()
+ $P2077 = $P2073."!make"($P2076)
+.annotate 'line', 754
+ .return ($P2077)
+ control_2070:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2078, exception, "payload"
+ .return ($P2078)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "value" :subid("113_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2082
+.annotate 'line', 758
+ new $P2081, 'ExceptionHandler'
+ set_addr $P2081, control_2080
+ $P2081."handle_types"(.CONTROL_RETURN)
+ push_eh $P2081
+ .lex "self", self
+ .lex "$/", param_2082
+.annotate 'line', 759
+ find_lex $P2083, "$/"
+ find_lex $P2086, "$/"
+ unless_null $P2086, vivify_616
+ $P2086 = root_new ['parrot';'Hash']
vivify_616:
- set $P2081, $P2080["integer"]
- unless_null $P2081, vivify_617
- new $P2081, "Undef"
+ set $P2087, $P2086["quote"]
+ unless_null $P2087, vivify_617
+ new $P2087, "Undef"
vivify_617:
- $P2082 = $P2081."ast"()
- set $P2073, $P2082
- goto if_2074_end
- if_2074:
- find_lex $P2077, "$/"
- unless_null $P2077, vivify_618
- $P2077 = root_new ['parrot';'Hash']
+ if $P2087, if_2085
+ find_lex $P2091, "$/"
+ unless_null $P2091, vivify_618
+ $P2091 = root_new ['parrot';'Hash']
vivify_618:
- set $P2078, $P2077["dec_number"]
- unless_null $P2078, vivify_619
- new $P2078, "Undef"
+ set $P2092, $P2091["number"]
+ unless_null $P2092, vivify_619
+ new $P2092, "Undef"
vivify_619:
- $P2079 = $P2078."ast"()
- set $P2073, $P2079
- if_2074_end:
- store_lex "$value", $P2073
-.annotate 'line', 751
- find_lex $P2084, "$/"
- unless_null $P2084, vivify_620
- $P2084 = root_new ['parrot';'Hash']
+ $P2093 = $P2092."ast"()
+ set $P2084, $P2093
+ goto if_2085_end
+ if_2085:
+ find_lex $P2088, "$/"
+ unless_null $P2088, vivify_620
+ $P2088 = root_new ['parrot';'Hash']
vivify_620:
- set $P2085, $P2084["sign"]
- unless_null $P2085, vivify_621
- new $P2085, "Undef"
+ set $P2089, $P2088["quote"]
+ unless_null $P2089, vivify_621
+ new $P2089, "Undef"
vivify_621:
- set $S2086, $P2085
- iseq $I2087, $S2086, "-"
- unless $I2087, if_2083_end
- find_lex $P2088, "$value"
- neg $P2089, $P2088
- store_lex "$value", $P2089
- if_2083_end:
-.annotate 'line', 752
- find_lex $P2090, "$/"
- get_hll_global $P2091, ["PAST"], "Val"
- find_lex $P2092, "$value"
- $P2093 = $P2091."new"($P2092 :named("value"))
- $P2094 = $P2090."!make"($P2093)
-.annotate 'line', 749
+ $P2090 = $P2089."ast"()
+ set $P2084, $P2090
+ if_2085_end:
+ $P2094 = $P2083."!make"($P2084)
+.annotate 'line', 758
.return ($P2094)
- control_2069:
+ control_2080:
.local pmc exception
.get_results (exception)
getattribute $P2095, exception, "payload"
@@ -23865,953 +24922,1032 @@
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote:sym<apos>" :subid("115_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "number" :subid("114_1280467483.70067") :method :outer("11_1280467483.70067")
.param pmc param_2099
-.annotate 'line', 755
+.annotate 'line', 762
new $P2098, 'ExceptionHandler'
set_addr $P2098, control_2097
$P2098."handle_types"(.CONTROL_RETURN)
push_eh $P2098
.lex "self", self
.lex "$/", param_2099
- find_lex $P2100, "$/"
- find_lex $P2101, "$/"
- unless_null $P2101, vivify_622
- $P2101 = root_new ['parrot';'Hash']
+.annotate 'line', 763
+ new $P2100, "Undef"
+ .lex "$value", $P2100
+ find_lex $P2103, "$/"
+ unless_null $P2103, vivify_622
+ $P2103 = root_new ['parrot';'Hash']
vivify_622:
- set $P2102, $P2101["quote_EXPR"]
- unless_null $P2102, vivify_623
- new $P2102, "Undef"
+ set $P2104, $P2103["dec_number"]
+ unless_null $P2104, vivify_623
+ new $P2104, "Undef"
vivify_623:
- $P2103 = $P2102."ast"()
- $P2104 = $P2100."!make"($P2103)
- .return ($P2104)
+ if $P2104, if_2102
+ find_lex $P2108, "$/"
+ unless_null $P2108, vivify_624
+ $P2108 = root_new ['parrot';'Hash']
+ vivify_624:
+ set $P2109, $P2108["integer"]
+ unless_null $P2109, vivify_625
+ new $P2109, "Undef"
+ vivify_625:
+ $P2110 = $P2109."ast"()
+ set $P2101, $P2110
+ goto if_2102_end
+ if_2102:
+ find_lex $P2105, "$/"
+ unless_null $P2105, vivify_626
+ $P2105 = root_new ['parrot';'Hash']
+ vivify_626:
+ set $P2106, $P2105["dec_number"]
+ unless_null $P2106, vivify_627
+ new $P2106, "Undef"
+ vivify_627:
+ $P2107 = $P2106."ast"()
+ set $P2101, $P2107
+ if_2102_end:
+ store_lex "$value", $P2101
+.annotate 'line', 764
+ find_lex $P2112, "$/"
+ unless_null $P2112, vivify_628
+ $P2112 = root_new ['parrot';'Hash']
+ vivify_628:
+ set $P2113, $P2112["sign"]
+ unless_null $P2113, vivify_629
+ new $P2113, "Undef"
+ vivify_629:
+ set $S2114, $P2113
+ iseq $I2115, $S2114, "-"
+ unless $I2115, if_2111_end
+ find_lex $P2116, "$value"
+ neg $P2117, $P2116
+ store_lex "$value", $P2117
+ if_2111_end:
+.annotate 'line', 765
+ find_lex $P2118, "$/"
+ get_hll_global $P2119, ["PAST"], "Val"
+ find_lex $P2120, "$value"
+ $P2121 = $P2119."new"($P2120 :named("value"))
+ $P2122 = $P2118."!make"($P2121)
+.annotate 'line', 762
+ .return ($P2122)
control_2097:
.local pmc exception
.get_results (exception)
- getattribute $P2105, exception, "payload"
- .return ($P2105)
+ getattribute $P2123, exception, "payload"
+ .return ($P2123)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote:sym<dblq>" :subid("116_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2109
-.annotate 'line', 756
- new $P2108, 'ExceptionHandler'
- set_addr $P2108, control_2107
- $P2108."handle_types"(.CONTROL_RETURN)
- push_eh $P2108
- .lex "self", self
- .lex "$/", param_2109
- find_lex $P2110, "$/"
- find_lex $P2111, "$/"
- unless_null $P2111, vivify_624
- $P2111 = root_new ['parrot';'Hash']
- vivify_624:
- set $P2112, $P2111["quote_EXPR"]
- unless_null $P2112, vivify_625
- new $P2112, "Undef"
- vivify_625:
- $P2113 = $P2112."ast"()
- $P2114 = $P2110."!make"($P2113)
- .return ($P2114)
- control_2107:
+.sub "quote:sym<apos>" :subid("115_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2127
+.annotate 'line', 768
+ new $P2126, 'ExceptionHandler'
+ set_addr $P2126, control_2125
+ $P2126."handle_types"(.CONTROL_RETURN)
+ push_eh $P2126
+ .lex "self", self
+ .lex "$/", param_2127
+ find_lex $P2128, "$/"
+ find_lex $P2129, "$/"
+ unless_null $P2129, vivify_630
+ $P2129 = root_new ['parrot';'Hash']
+ vivify_630:
+ set $P2130, $P2129["quote_EXPR"]
+ unless_null $P2130, vivify_631
+ new $P2130, "Undef"
+ vivify_631:
+ $P2131 = $P2130."ast"()
+ $P2132 = $P2128."!make"($P2131)
+ .return ($P2132)
+ control_2125:
.local pmc exception
.get_results (exception)
- getattribute $P2115, exception, "payload"
- .return ($P2115)
+ getattribute $P2133, exception, "payload"
+ .return ($P2133)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote:sym<qq>" :subid("117_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2119
-.annotate 'line', 757
- new $P2118, 'ExceptionHandler'
- set_addr $P2118, control_2117
- $P2118."handle_types"(.CONTROL_RETURN)
- push_eh $P2118
+.sub "quote:sym<dblq>" :subid("116_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2137
+.annotate 'line', 769
+ new $P2136, 'ExceptionHandler'
+ set_addr $P2136, control_2135
+ $P2136."handle_types"(.CONTROL_RETURN)
+ push_eh $P2136
.lex "self", self
- .lex "$/", param_2119
- find_lex $P2120, "$/"
- find_lex $P2121, "$/"
- unless_null $P2121, vivify_626
- $P2121 = root_new ['parrot';'Hash']
- vivify_626:
- set $P2122, $P2121["quote_EXPR"]
- unless_null $P2122, vivify_627
- new $P2122, "Undef"
- vivify_627:
- $P2123 = $P2122."ast"()
- $P2124 = $P2120."!make"($P2123)
- .return ($P2124)
- control_2117:
+ .lex "$/", param_2137
+ find_lex $P2138, "$/"
+ find_lex $P2139, "$/"
+ unless_null $P2139, vivify_632
+ $P2139 = root_new ['parrot';'Hash']
+ vivify_632:
+ set $P2140, $P2139["quote_EXPR"]
+ unless_null $P2140, vivify_633
+ new $P2140, "Undef"
+ vivify_633:
+ $P2141 = $P2140."ast"()
+ $P2142 = $P2138."!make"($P2141)
+ .return ($P2142)
+ control_2135:
.local pmc exception
.get_results (exception)
- getattribute $P2125, exception, "payload"
- .return ($P2125)
+ getattribute $P2143, exception, "payload"
+ .return ($P2143)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote:sym<q>" :subid("118_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2129
-.annotate 'line', 758
- new $P2128, 'ExceptionHandler'
- set_addr $P2128, control_2127
- $P2128."handle_types"(.CONTROL_RETURN)
- push_eh $P2128
- .lex "self", self
- .lex "$/", param_2129
- find_lex $P2130, "$/"
- find_lex $P2131, "$/"
- unless_null $P2131, vivify_628
- $P2131 = root_new ['parrot';'Hash']
- vivify_628:
- set $P2132, $P2131["quote_EXPR"]
- unless_null $P2132, vivify_629
- new $P2132, "Undef"
- vivify_629:
- $P2133 = $P2132."ast"()
- $P2134 = $P2130."!make"($P2133)
- .return ($P2134)
- control_2127:
+.sub "quote:sym<qq>" :subid("117_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2147
+.annotate 'line', 770
+ new $P2146, 'ExceptionHandler'
+ set_addr $P2146, control_2145
+ $P2146."handle_types"(.CONTROL_RETURN)
+ push_eh $P2146
+ .lex "self", self
+ .lex "$/", param_2147
+ find_lex $P2148, "$/"
+ find_lex $P2149, "$/"
+ unless_null $P2149, vivify_634
+ $P2149 = root_new ['parrot';'Hash']
+ vivify_634:
+ set $P2150, $P2149["quote_EXPR"]
+ unless_null $P2150, vivify_635
+ new $P2150, "Undef"
+ vivify_635:
+ $P2151 = $P2150."ast"()
+ $P2152 = $P2148."!make"($P2151)
+ .return ($P2152)
+ control_2145:
.local pmc exception
.get_results (exception)
- getattribute $P2135, exception, "payload"
- .return ($P2135)
+ getattribute $P2153, exception, "payload"
+ .return ($P2153)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote:sym<Q>" :subid("119_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2139
-.annotate 'line', 759
- new $P2138, 'ExceptionHandler'
- set_addr $P2138, control_2137
- $P2138."handle_types"(.CONTROL_RETURN)
- push_eh $P2138
- .lex "self", self
- .lex "$/", param_2139
- find_lex $P2140, "$/"
- find_lex $P2141, "$/"
- unless_null $P2141, vivify_630
- $P2141 = root_new ['parrot';'Hash']
- vivify_630:
- set $P2142, $P2141["quote_EXPR"]
- unless_null $P2142, vivify_631
- new $P2142, "Undef"
- vivify_631:
- $P2143 = $P2142."ast"()
- $P2144 = $P2140."!make"($P2143)
- .return ($P2144)
- control_2137:
+.sub "quote:sym<q>" :subid("118_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2157
+.annotate 'line', 771
+ new $P2156, 'ExceptionHandler'
+ set_addr $P2156, control_2155
+ $P2156."handle_types"(.CONTROL_RETURN)
+ push_eh $P2156
+ .lex "self", self
+ .lex "$/", param_2157
+ find_lex $P2158, "$/"
+ find_lex $P2159, "$/"
+ unless_null $P2159, vivify_636
+ $P2159 = root_new ['parrot';'Hash']
+ vivify_636:
+ set $P2160, $P2159["quote_EXPR"]
+ unless_null $P2160, vivify_637
+ new $P2160, "Undef"
+ vivify_637:
+ $P2161 = $P2160."ast"()
+ $P2162 = $P2158."!make"($P2161)
+ .return ($P2162)
+ control_2155:
.local pmc exception
.get_results (exception)
- getattribute $P2145, exception, "payload"
- .return ($P2145)
+ getattribute $P2163, exception, "payload"
+ .return ($P2163)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote:sym<Q:PIR>" :subid("120_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2149
-.annotate 'line', 760
- new $P2148, 'ExceptionHandler'
- set_addr $P2148, control_2147
- $P2148."handle_types"(.CONTROL_RETURN)
- push_eh $P2148
- .lex "self", self
- .lex "$/", param_2149
-.annotate 'line', 761
- find_lex $P2150, "$/"
- get_hll_global $P2151, ["PAST"], "Op"
- find_lex $P2152, "$/"
- unless_null $P2152, vivify_632
- $P2152 = root_new ['parrot';'Hash']
- vivify_632:
- set $P2153, $P2152["quote_EXPR"]
- unless_null $P2153, vivify_633
- new $P2153, "Undef"
- vivify_633:
- $P2154 = $P2153."ast"()
- $P2155 = $P2154."value"()
- find_lex $P2156, "$/"
- $P2157 = $P2151."new"($P2155 :named("inline"), "inline" :named("pasttype"), $P2156 :named("node"))
- $P2158 = $P2150."!make"($P2157)
-.annotate 'line', 760
- .return ($P2158)
- control_2147:
- .local pmc exception
- .get_results (exception)
- getattribute $P2159, exception, "payload"
- .return ($P2159)
+.sub "quote:sym<Q>" :subid("119_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2167
+.annotate 'line', 772
+ new $P2166, 'ExceptionHandler'
+ set_addr $P2166, control_2165
+ $P2166."handle_types"(.CONTROL_RETURN)
+ push_eh $P2166
+ .lex "self", self
+ .lex "$/", param_2167
+ find_lex $P2168, "$/"
+ find_lex $P2169, "$/"
+ unless_null $P2169, vivify_638
+ $P2169 = root_new ['parrot';'Hash']
+ vivify_638:
+ set $P2170, $P2169["quote_EXPR"]
+ unless_null $P2170, vivify_639
+ new $P2170, "Undef"
+ vivify_639:
+ $P2171 = $P2170."ast"()
+ $P2172 = $P2168."!make"($P2171)
+ .return ($P2172)
+ control_2165:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2173, exception, "payload"
+ .return ($P2173)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote:sym</ />" :subid("121_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2163
- .param pmc param_2164 :optional
- .param int has_param_2164 :opt_flag
-.annotate 'line', 766
- new $P2162, 'ExceptionHandler'
- set_addr $P2162, control_2161
- $P2162."handle_types"(.CONTROL_RETURN)
- push_eh $P2162
- .lex "self", self
- .lex "$/", param_2163
- if has_param_2164, optparam_634
- new $P2165, "Undef"
- set param_2164, $P2165
- optparam_634:
- .lex "$key", param_2164
-.annotate 'line', 776
- new $P2166, "Undef"
- .lex "$regex", $P2166
-.annotate 'line', 778
- new $P2167, "Undef"
- .lex "$past", $P2167
-.annotate 'line', 767
- find_lex $P2169, "$key"
- set $S2170, $P2169
- iseq $I2171, $S2170, "open"
- unless $I2171, if_2168_end
-.annotate 'line', 768
-
- null $P0
- set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
-
-.annotate 'line', 772
- get_global $P2172, "@BLOCK"
- unless_null $P2172, vivify_635
- $P2172 = root_new ['parrot';'ResizablePMCArray']
- vivify_635:
- set $P2173, $P2172[0]
- unless_null $P2173, vivify_636
- new $P2173, "Undef"
- vivify_636:
- $P2173."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
+.sub "quote:sym<Q:PIR>" :subid("120_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2177
.annotate 'line', 773
- get_global $P2174, "@BLOCK"
- unless_null $P2174, vivify_637
- $P2174 = root_new ['parrot';'ResizablePMCArray']
- vivify_637:
- set $P2175, $P2174[0]
- unless_null $P2175, vivify_638
- new $P2175, "Undef"
- vivify_638:
- $P2175."symbol"("$/", "lexical" :named("scope"))
+ new $P2176, 'ExceptionHandler'
+ set_addr $P2176, control_2175
+ $P2176."handle_types"(.CONTROL_RETURN)
+ push_eh $P2176
+ .lex "self", self
+ .lex "$/", param_2177
.annotate 'line', 774
- new $P2176, "Exception"
- set $P2176['type'], .CONTROL_RETURN
- new $P2177, "Integer"
- assign $P2177, 0
- setattribute $P2176, 'payload', $P2177
- throw $P2176
- if_2168_end:
-.annotate 'line', 777
- get_hll_global $P2178, ["Regex";"P6Regex";"Actions"], "buildsub"
- find_lex $P2179, "$/"
- unless_null $P2179, vivify_639
- $P2179 = root_new ['parrot';'Hash']
- vivify_639:
- set $P2180, $P2179["p6regex"]
+ find_lex $P2178, "$/"
+ get_hll_global $P2179, ["PAST"], "Op"
+ find_lex $P2180, "$/"
unless_null $P2180, vivify_640
- new $P2180, "Undef"
+ $P2180 = root_new ['parrot';'Hash']
vivify_640:
- $P2181 = $P2180."ast"()
- get_global $P2182, "@BLOCK"
- $P2183 = $P2182."shift"()
- $P2184 = $P2178($P2181, $P2183)
- store_lex "$regex", $P2184
-.annotate 'line', 779
- get_hll_global $P2185, ["PAST"], "Op"
-.annotate 'line', 781
- get_hll_global $P2186, ["PAST"], "Var"
- new $P2187, "ResizablePMCArray"
- push $P2187, "Regex"
- $P2188 = $P2186."new"("Regex" :named("name"), $P2187 :named("namespace"), "package" :named("scope"))
- find_lex $P2189, "$regex"
- $P2190 = $P2185."new"($P2188, $P2189, "callmethod" :named("pasttype"), "new" :named("name"))
-.annotate 'line', 779
- store_lex "$past", $P2190
-.annotate 'line', 785
- find_lex $P2191, "$regex"
- find_lex $P2192, "$past"
- unless_null $P2192, vivify_641
- $P2192 = root_new ['parrot';'Hash']
- store_lex "$past", $P2192
+ set $P2181, $P2180["quote_EXPR"]
+ unless_null $P2181, vivify_641
+ new $P2181, "Undef"
vivify_641:
- set $P2192["sink"], $P2191
-.annotate 'line', 786
- find_lex $P2193, "$/"
- find_lex $P2194, "$past"
- $P2195 = $P2193."!make"($P2194)
-.annotate 'line', 766
- .return ($P2195)
- control_2161:
+ $P2182 = $P2181."ast"()
+ $P2183 = $P2182."value"()
+ find_lex $P2184, "$/"
+ $P2185 = $P2179."new"($P2183 :named("inline"), "inline" :named("pasttype"), $P2184 :named("node"))
+ $P2186 = $P2178."!make"($P2185)
+.annotate 'line', 773
+ .return ($P2186)
+ control_2175:
.local pmc exception
.get_results (exception)
- getattribute $P2196, exception, "payload"
- .return ($P2196)
+ getattribute $P2187, exception, "payload"
+ .return ($P2187)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<$>" :subid("122_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2200
+.sub "quote:sym</ />" :subid("121_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2191
+ .param pmc param_2192 :optional
+ .param int has_param_2192 :opt_flag
+.annotate 'line', 779
+ new $P2190, 'ExceptionHandler'
+ set_addr $P2190, control_2189
+ $P2190."handle_types"(.CONTROL_RETURN)
+ push_eh $P2190
+ .lex "self", self
+ .lex "$/", param_2191
+ if has_param_2192, optparam_642
+ new $P2193, "Undef"
+ set param_2192, $P2193
+ optparam_642:
+ .lex "$key", param_2192
.annotate 'line', 789
- new $P2199, 'ExceptionHandler'
- set_addr $P2199, control_2198
- $P2199."handle_types"(.CONTROL_RETURN)
- push_eh $P2199
- .lex "self", self
- .lex "$/", param_2200
- find_lex $P2201, "$/"
- find_lex $P2202, "$/"
- unless_null $P2202, vivify_642
- $P2202 = root_new ['parrot';'Hash']
- vivify_642:
- set $P2203, $P2202["variable"]
- unless_null $P2203, vivify_643
- new $P2203, "Undef"
- vivify_643:
- $P2204 = $P2203."ast"()
- $P2205 = $P2201."!make"($P2204)
- .return ($P2205)
- control_2198:
- .local pmc exception
- .get_results (exception)
- getattribute $P2206, exception, "payload"
- .return ($P2206)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.include "except_types.pasm"
-.sub "quote_escape:sym<{ }>" :subid("123_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2210
-.annotate 'line', 790
- new $P2209, 'ExceptionHandler'
- set_addr $P2209, control_2208
- $P2209."handle_types"(.CONTROL_RETURN)
- push_eh $P2209
- .lex "self", self
- .lex "$/", param_2210
+ new $P2194, "Undef"
+ .lex "$regex", $P2194
.annotate 'line', 791
- find_lex $P2211, "$/"
- get_hll_global $P2212, ["PAST"], "Op"
-.annotate 'line', 792
- find_lex $P2213, "$/"
- unless_null $P2213, vivify_644
- $P2213 = root_new ['parrot';'Hash']
+ new $P2195, "Undef"
+ .lex "$past", $P2195
+.annotate 'line', 780
+ find_lex $P2197, "$key"
+ set $S2198, $P2197
+ iseq $I2199, $S2198, "open"
+ unless $I2199, if_2196_end
+.annotate 'line', 781
+
+ null $P0
+ set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
+
+.annotate 'line', 785
+ get_global $P2200, "@BLOCK"
+ unless_null $P2200, vivify_643
+ $P2200 = root_new ['parrot';'ResizablePMCArray']
+ vivify_643:
+ set $P2201, $P2200[0]
+ unless_null $P2201, vivify_644
+ new $P2201, "Undef"
vivify_644:
- set $P2214, $P2213["block"]
- unless_null $P2214, vivify_645
- new $P2214, "Undef"
+ $P2201."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
+.annotate 'line', 786
+ get_global $P2202, "@BLOCK"
+ unless_null $P2202, vivify_645
+ $P2202 = root_new ['parrot';'ResizablePMCArray']
vivify_645:
- $P2215 = $P2214."ast"()
- $P2216 = "block_immediate"($P2215)
- find_lex $P2217, "$/"
- $P2218 = $P2212."new"($P2216, "set S*" :named("pirop"), $P2217 :named("node"))
-.annotate 'line', 791
- $P2219 = $P2211."!make"($P2218)
+ set $P2203, $P2202[0]
+ unless_null $P2203, vivify_646
+ new $P2203, "Undef"
+ vivify_646:
+ $P2203."symbol"("$/", "lexical" :named("scope"))
+.annotate 'line', 787
+ new $P2204, "Exception"
+ set $P2204['type'], .CONTROL_RETURN
+ new $P2205, "Integer"
+ assign $P2205, 0
+ setattribute $P2204, 'payload', $P2205
+ throw $P2204
+ if_2196_end:
.annotate 'line', 790
- .return ($P2219)
- control_2208:
+ get_hll_global $P2206, ["Regex";"P6Regex";"Actions"], "buildsub"
+ find_lex $P2207, "$/"
+ unless_null $P2207, vivify_647
+ $P2207 = root_new ['parrot';'Hash']
+ vivify_647:
+ set $P2208, $P2207["p6regex"]
+ unless_null $P2208, vivify_648
+ new $P2208, "Undef"
+ vivify_648:
+ $P2209 = $P2208."ast"()
+ get_global $P2210, "@BLOCK"
+ $P2211 = $P2210."shift"()
+ $P2212 = $P2206($P2209, $P2211)
+ store_lex "$regex", $P2212
+.annotate 'line', 792
+ get_hll_global $P2213, ["PAST"], "Op"
+.annotate 'line', 794
+ get_hll_global $P2214, ["PAST"], "Var"
+ new $P2215, "ResizablePMCArray"
+ push $P2215, "Regex"
+ $P2216 = $P2214."new"("Regex" :named("name"), $P2215 :named("namespace"), "package" :named("scope"))
+ find_lex $P2217, "$regex"
+ $P2218 = $P2213."new"($P2216, $P2217, "callmethod" :named("pasttype"), "new" :named("name"))
+.annotate 'line', 792
+ store_lex "$past", $P2218
+.annotate 'line', 798
+ find_lex $P2219, "$regex"
+ find_lex $P2220, "$past"
+ unless_null $P2220, vivify_649
+ $P2220 = root_new ['parrot';'Hash']
+ store_lex "$past", $P2220
+ vivify_649:
+ set $P2220["sink"], $P2219
+.annotate 'line', 799
+ find_lex $P2221, "$/"
+ find_lex $P2222, "$past"
+ $P2223 = $P2221."!make"($P2222)
+.annotate 'line', 779
+ .return ($P2223)
+ control_2189:
.local pmc exception
.get_results (exception)
- getattribute $P2220, exception, "payload"
- .return ($P2220)
+ getattribute $P2224, exception, "payload"
+ .return ($P2224)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "quote_escape:sym<esc>" :subid("124_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2224
-.annotate 'line', 795
- new $P2223, 'ExceptionHandler'
- set_addr $P2223, control_2222
- $P2223."handle_types"(.CONTROL_RETURN)
- push_eh $P2223
- .lex "self", self
- .lex "$/", param_2224
- find_lex $P2225, "$/"
- $P2226 = $P2225."!make"("\e")
- .return ($P2226)
- control_2222:
+.sub "quote_escape:sym<$>" :subid("122_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2228
+.annotate 'line', 802
+ new $P2227, 'ExceptionHandler'
+ set_addr $P2227, control_2226
+ $P2227."handle_types"(.CONTROL_RETURN)
+ push_eh $P2227
+ .lex "self", self
+ .lex "$/", param_2228
+ find_lex $P2229, "$/"
+ find_lex $P2230, "$/"
+ unless_null $P2230, vivify_650
+ $P2230 = root_new ['parrot';'Hash']
+ vivify_650:
+ set $P2231, $P2230["variable"]
+ unless_null $P2231, vivify_651
+ new $P2231, "Undef"
+ vivify_651:
+ $P2232 = $P2231."ast"()
+ $P2233 = $P2229."!make"($P2232)
+ .return ($P2233)
+ control_2226:
.local pmc exception
.get_results (exception)
- getattribute $P2227, exception, "payload"
- .return ($P2227)
+ getattribute $P2234, exception, "payload"
+ .return ($P2234)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "postfix:sym<.>" :subid("125_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2231
-.annotate 'line', 799
- new $P2230, 'ExceptionHandler'
- set_addr $P2230, control_2229
- $P2230."handle_types"(.CONTROL_RETURN)
- push_eh $P2230
- .lex "self", self
- .lex "$/", param_2231
- find_lex $P2232, "$/"
- find_lex $P2233, "$/"
- unless_null $P2233, vivify_646
- $P2233 = root_new ['parrot';'Hash']
- vivify_646:
- set $P2234, $P2233["dotty"]
- unless_null $P2234, vivify_647
- new $P2234, "Undef"
- vivify_647:
- $P2235 = $P2234."ast"()
- $P2236 = $P2232."!make"($P2235)
- .return ($P2236)
- control_2229:
+.sub "quote_escape:sym<{ }>" :subid("123_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2238
+.annotate 'line', 803
+ new $P2237, 'ExceptionHandler'
+ set_addr $P2237, control_2236
+ $P2237."handle_types"(.CONTROL_RETURN)
+ push_eh $P2237
+ .lex "self", self
+ .lex "$/", param_2238
+.annotate 'line', 804
+ find_lex $P2239, "$/"
+ get_hll_global $P2240, ["PAST"], "Op"
+.annotate 'line', 805
+ find_lex $P2241, "$/"
+ unless_null $P2241, vivify_652
+ $P2241 = root_new ['parrot';'Hash']
+ vivify_652:
+ set $P2242, $P2241["block"]
+ unless_null $P2242, vivify_653
+ new $P2242, "Undef"
+ vivify_653:
+ $P2243 = $P2242."ast"()
+ $P2244 = "block_immediate"($P2243)
+ find_lex $P2245, "$/"
+ $P2246 = $P2240."new"($P2244, "set S*" :named("pirop"), $P2245 :named("node"))
+.annotate 'line', 804
+ $P2247 = $P2239."!make"($P2246)
+.annotate 'line', 803
+ .return ($P2247)
+ control_2236:
.local pmc exception
.get_results (exception)
- getattribute $P2237, exception, "payload"
- .return ($P2237)
+ getattribute $P2248, exception, "payload"
+ .return ($P2248)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "postfix:sym<++>" :subid("126_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2241
-.annotate 'line', 801
- new $P2240, 'ExceptionHandler'
- set_addr $P2240, control_2239
- $P2240."handle_types"(.CONTROL_RETURN)
- push_eh $P2240
+.sub "quote_escape:sym<esc>" :subid("124_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2252
+.annotate 'line', 808
+ new $P2251, 'ExceptionHandler'
+ set_addr $P2251, control_2250
+ $P2251."handle_types"(.CONTROL_RETURN)
+ push_eh $P2251
.lex "self", self
- .lex "$/", param_2241
-.annotate 'line', 802
- find_lex $P2242, "$/"
- get_hll_global $P2243, ["PAST"], "Op"
-.annotate 'line', 803
- new $P2244, "ResizablePMCArray"
- push $P2244, " clone %r, %0"
- push $P2244, " inc %0"
- $P2245 = $P2243."new"("postfix:<++>" :named("name"), $P2244 :named("inline"), "inline" :named("pasttype"))
-.annotate 'line', 802
- $P2246 = $P2242."!make"($P2245)
-.annotate 'line', 801
- .return ($P2246)
- control_2239:
+ .lex "$/", param_2252
+ find_lex $P2253, "$/"
+ $P2254 = $P2253."!make"("\e")
+ .return ($P2254)
+ control_2250:
.local pmc exception
.get_results (exception)
- getattribute $P2247, exception, "payload"
- .return ($P2247)
+ getattribute $P2255, exception, "payload"
+ .return ($P2255)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "postfix:sym<-->" :subid("127_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2251
-.annotate 'line', 807
- new $P2250, 'ExceptionHandler'
- set_addr $P2250, control_2249
- $P2250."handle_types"(.CONTROL_RETURN)
- push_eh $P2250
+.sub "postfix:sym<.>" :subid("125_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2259
+.annotate 'line', 812
+ new $P2258, 'ExceptionHandler'
+ set_addr $P2258, control_2257
+ $P2258."handle_types"(.CONTROL_RETURN)
+ push_eh $P2258
.lex "self", self
- .lex "$/", param_2251
-.annotate 'line', 808
- find_lex $P2252, "$/"
- get_hll_global $P2253, ["PAST"], "Op"
-.annotate 'line', 809
- new $P2254, "ResizablePMCArray"
- push $P2254, " clone %r, %0"
- push $P2254, " dec %0"
- $P2255 = $P2253."new"("postfix:<-->" :named("name"), $P2254 :named("inline"), "inline" :named("pasttype"))
-.annotate 'line', 808
- $P2256 = $P2252."!make"($P2255)
-.annotate 'line', 807
- .return ($P2256)
- control_2249:
+ .lex "$/", param_2259
+ find_lex $P2260, "$/"
+ find_lex $P2261, "$/"
+ unless_null $P2261, vivify_654
+ $P2261 = root_new ['parrot';'Hash']
+ vivify_654:
+ set $P2262, $P2261["dotty"]
+ unless_null $P2262, vivify_655
+ new $P2262, "Undef"
+ vivify_655:
+ $P2263 = $P2262."ast"()
+ $P2264 = $P2260."!make"($P2263)
+ .return ($P2264)
+ control_2257:
.local pmc exception
.get_results (exception)
- getattribute $P2257, exception, "payload"
- .return ($P2257)
+ getattribute $P2265, exception, "payload"
+ .return ($P2265)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "prefix:sym<make>" :subid("128_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2261
-.annotate 'line', 813
- new $P2260, 'ExceptionHandler'
- set_addr $P2260, control_2259
- $P2260."handle_types"(.CONTROL_RETURN)
- push_eh $P2260
- .lex "self", self
- .lex "$/", param_2261
+.sub "postfix:sym<++>" :subid("126_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2269
.annotate 'line', 814
- find_lex $P2262, "$/"
- get_hll_global $P2263, ["PAST"], "Op"
+ new $P2268, 'ExceptionHandler'
+ set_addr $P2268, control_2267
+ $P2268."handle_types"(.CONTROL_RETURN)
+ push_eh $P2268
+ .lex "self", self
+ .lex "$/", param_2269
+.annotate 'line', 815
+ find_lex $P2270, "$/"
+ get_hll_global $P2271, ["PAST"], "Op"
+.annotate 'line', 816
+ new $P2272, "ResizablePMCArray"
+ push $P2272, " clone %r, %0"
+ push $P2272, " inc %0"
+ $P2273 = $P2271."new"("postfix:<++>" :named("name"), $P2272 :named("inline"), "inline" :named("pasttype"))
.annotate 'line', 815
- get_hll_global $P2264, ["PAST"], "Var"
- $P2265 = $P2264."new"("$/" :named("name"), "contextual" :named("scope"))
- find_lex $P2266, "$/"
- $P2267 = $P2263."new"($P2265, "callmethod" :named("pasttype"), "!make" :named("name"), $P2266 :named("node"))
+ $P2274 = $P2270."!make"($P2273)
.annotate 'line', 814
- $P2268 = $P2262."!make"($P2267)
-.annotate 'line', 813
- .return ($P2268)
- control_2259:
+ .return ($P2274)
+ control_2267:
.local pmc exception
.get_results (exception)
- getattribute $P2269, exception, "payload"
- .return ($P2269)
+ getattribute $P2275, exception, "payload"
+ .return ($P2275)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<next>" :subid("129_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2274
-.annotate 'line', 831
- new $P2273, 'ExceptionHandler'
- set_addr $P2273, control_2272
- $P2273."handle_types"(.CONTROL_RETURN)
- push_eh $P2273
+.sub "postfix:sym<-->" :subid("127_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2279
+.annotate 'line', 820
+ new $P2278, 'ExceptionHandler'
+ set_addr $P2278, control_2277
+ $P2278."handle_types"(.CONTROL_RETURN)
+ push_eh $P2278
.lex "self", self
- .lex "$/", param_2274
- find_lex $P2275, "$/"
- $P2276 = "control"($P2275, "CONTROL_LOOP_NEXT")
- .return ($P2276)
- control_2272:
+ .lex "$/", param_2279
+.annotate 'line', 821
+ find_lex $P2280, "$/"
+ get_hll_global $P2281, ["PAST"], "Op"
+.annotate 'line', 822
+ new $P2282, "ResizablePMCArray"
+ push $P2282, " clone %r, %0"
+ push $P2282, " dec %0"
+ $P2283 = $P2281."new"("postfix:<-->" :named("name"), $P2282 :named("inline"), "inline" :named("pasttype"))
+.annotate 'line', 821
+ $P2284 = $P2280."!make"($P2283)
+.annotate 'line', 820
+ .return ($P2284)
+ control_2277:
.local pmc exception
.get_results (exception)
- getattribute $P2277, exception, "payload"
- .return ($P2277)
+ getattribute $P2285, exception, "payload"
+ .return ($P2285)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<last>" :subid("130_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2281
-.annotate 'line', 832
- new $P2280, 'ExceptionHandler'
- set_addr $P2280, control_2279
- $P2280."handle_types"(.CONTROL_RETURN)
- push_eh $P2280
+.sub "prefix:sym<make>" :subid("128_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2289
+.annotate 'line', 826
+ new $P2288, 'ExceptionHandler'
+ set_addr $P2288, control_2287
+ $P2288."handle_types"(.CONTROL_RETURN)
+ push_eh $P2288
.lex "self", self
- .lex "$/", param_2281
- find_lex $P2282, "$/"
- $P2283 = "control"($P2282, "CONTROL_LOOP_LAST")
- .return ($P2283)
- control_2279:
+ .lex "$/", param_2289
+.annotate 'line', 827
+ find_lex $P2290, "$/"
+ get_hll_global $P2291, ["PAST"], "Op"
+.annotate 'line', 828
+ get_hll_global $P2292, ["PAST"], "Var"
+ $P2293 = $P2292."new"("$/" :named("name"), "contextual" :named("scope"))
+ find_lex $P2294, "$/"
+ $P2295 = $P2291."new"($P2293, "callmethod" :named("pasttype"), "!make" :named("name"), $P2294 :named("node"))
+.annotate 'line', 827
+ $P2296 = $P2290."!make"($P2295)
+.annotate 'line', 826
+ .return ($P2296)
+ control_2287:
.local pmc exception
.get_results (exception)
- getattribute $P2284, exception, "payload"
- .return ($P2284)
+ getattribute $P2297, exception, "payload"
+ .return ($P2297)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "term:sym<redo>" :subid("131_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2288
-.annotate 'line', 833
- new $P2287, 'ExceptionHandler'
- set_addr $P2287, control_2286
- $P2287."handle_types"(.CONTROL_RETURN)
- push_eh $P2287
+.sub "term:sym<next>" :subid("129_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2302
+.annotate 'line', 844
+ new $P2301, 'ExceptionHandler'
+ set_addr $P2301, control_2300
+ $P2301."handle_types"(.CONTROL_RETURN)
+ push_eh $P2301
.lex "self", self
- .lex "$/", param_2288
- find_lex $P2289, "$/"
- $P2290 = "control"($P2289, "CONTROL_LOOP_REDO")
- .return ($P2290)
- control_2286:
+ .lex "$/", param_2302
+ find_lex $P2303, "$/"
+ $P2304 = "control"($P2303, "CONTROL_LOOP_NEXT")
+ .return ($P2304)
+ control_2300:
.local pmc exception
.get_results (exception)
- getattribute $P2291, exception, "payload"
- .return ($P2291)
+ getattribute $P2305, exception, "payload"
+ .return ($P2305)
.end
.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "infix:sym<~~>" :subid("132_1275811497.55064") :method :outer("11_1275811497.55064")
- .param pmc param_2295
-.annotate 'line', 835
- new $P2294, 'ExceptionHandler'
- set_addr $P2294, control_2293
- $P2294."handle_types"(.CONTROL_RETURN)
- push_eh $P2294
+.sub "term:sym<last>" :subid("130_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2309
+.annotate 'line', 845
+ new $P2308, 'ExceptionHandler'
+ set_addr $P2308, control_2307
+ $P2308."handle_types"(.CONTROL_RETURN)
+ push_eh $P2308
.lex "self", self
- .lex "$/", param_2295
-.annotate 'line', 836
- find_lex $P2296, "$/"
- get_hll_global $P2297, ["PAST"], "Op"
- find_lex $P2298, "$/"
- $P2299 = $P2297."new"("callmethod" :named("pasttype"), "ACCEPTS" :named("name"), $P2298 :named("node"))
- $P2300 = $P2296."!make"($P2299)
-.annotate 'line', 835
- .return ($P2300)
- control_2293:
+ .lex "$/", param_2309
+ find_lex $P2310, "$/"
+ $P2311 = "control"($P2310, "CONTROL_LOOP_LAST")
+ .return ($P2311)
+ control_2307:
.local pmc exception
.get_results (exception)
- getattribute $P2301, exception, "payload"
- .return ($P2301)
-.end
-
-
-.namespace ["NQP";"RegexActions"]
-.sub "_block2302" :subid("133_1275811497.55064") :outer("11_1275811497.55064")
-.annotate 'line', 840
- .const 'Sub' $P2388 = "140_1275811497.55064"
- capture_lex $P2388
- .const 'Sub' $P2375 = "139_1275811497.55064"
- capture_lex $P2375
- .const 'Sub' $P2358 = "138_1275811497.55064"
- capture_lex $P2358
- .const 'Sub' $P2345 = "137_1275811497.55064"
- capture_lex $P2345
- .const 'Sub' $P2332 = "136_1275811497.55064"
- capture_lex $P2332
- .const 'Sub' $P2319 = "135_1275811497.55064"
- capture_lex $P2319
- .const 'Sub' $P2304 = "134_1275811497.55064"
- capture_lex $P2304
-.annotate 'line', 874
- .const 'Sub' $P2388 = "140_1275811497.55064"
- newclosure $P2413, $P2388
-.annotate 'line', 840
- .return ($P2413)
+ getattribute $P2312, exception, "payload"
+ .return ($P2312)
.end
-.namespace ["NQP";"RegexActions"]
+.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<:my>" :subid("134_1275811497.55064") :method :outer("133_1275811497.55064")
- .param pmc param_2307
-.annotate 'line', 842
- new $P2306, 'ExceptionHandler'
- set_addr $P2306, control_2305
- $P2306."handle_types"(.CONTROL_RETURN)
- push_eh $P2306
- .lex "self", self
- .lex "$/", param_2307
-.annotate 'line', 843
- new $P2308, "Undef"
- .lex "$past", $P2308
- find_lex $P2309, "$/"
- unless_null $P2309, vivify_648
- $P2309 = root_new ['parrot';'Hash']
- vivify_648:
- set $P2310, $P2309["statement"]
- unless_null $P2310, vivify_649
- new $P2310, "Undef"
- vivify_649:
- $P2311 = $P2310."ast"()
- store_lex "$past", $P2311
-.annotate 'line', 844
- find_lex $P2312, "$/"
- get_hll_global $P2313, ["PAST"], "Regex"
- find_lex $P2314, "$past"
- find_lex $P2315, "$/"
- $P2316 = $P2313."new"($P2314, "pastnode" :named("pasttype"), "declarative" :named("subtype"), $P2315 :named("node"))
- $P2317 = $P2312."!make"($P2316)
-.annotate 'line', 842
- .return ($P2317)
- control_2305:
+.sub "term:sym<redo>" :subid("131_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2316
+.annotate 'line', 846
+ new $P2315, 'ExceptionHandler'
+ set_addr $P2315, control_2314
+ $P2315."handle_types"(.CONTROL_RETURN)
+ push_eh $P2315
+ .lex "self", self
+ .lex "$/", param_2316
+ find_lex $P2317, "$/"
+ $P2318 = "control"($P2317, "CONTROL_LOOP_REDO")
+ .return ($P2318)
+ control_2314:
.local pmc exception
.get_results (exception)
- getattribute $P2318, exception, "payload"
- .return ($P2318)
+ getattribute $P2319, exception, "payload"
+ .return ($P2319)
.end
-.namespace ["NQP";"RegexActions"]
+.namespace ["NQP";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<{ }>" :subid("135_1275811497.55064") :method :outer("133_1275811497.55064")
- .param pmc param_2322
+.sub "infix:sym<~~>" :subid("132_1280467483.70067") :method :outer("11_1280467483.70067")
+ .param pmc param_2323
.annotate 'line', 848
- new $P2321, 'ExceptionHandler'
- set_addr $P2321, control_2320
- $P2321."handle_types"(.CONTROL_RETURN)
- push_eh $P2321
+ new $P2322, 'ExceptionHandler'
+ set_addr $P2322, control_2321
+ $P2322."handle_types"(.CONTROL_RETURN)
+ push_eh $P2322
.lex "self", self
- .lex "$/", param_2322
+ .lex "$/", param_2323
.annotate 'line', 849
- find_lex $P2323, "$/"
- get_hll_global $P2324, ["PAST"], "Regex"
- find_lex $P2325, "$/"
- unless_null $P2325, vivify_650
- $P2325 = root_new ['parrot';'Hash']
- vivify_650:
- set $P2326, $P2325["codeblock"]
- unless_null $P2326, vivify_651
- new $P2326, "Undef"
- vivify_651:
- $P2327 = $P2326."ast"()
- find_lex $P2328, "$/"
- $P2329 = $P2324."new"($P2327, "pastnode" :named("pasttype"), $P2328 :named("node"))
- $P2330 = $P2323."!make"($P2329)
+ find_lex $P2324, "$/"
+ get_hll_global $P2325, ["PAST"], "Op"
+ find_lex $P2326, "$/"
+ $P2327 = $P2325."new"("callmethod" :named("pasttype"), "ACCEPTS" :named("name"), $P2326 :named("node"))
+ $P2328 = $P2324."!make"($P2327)
.annotate 'line', 848
- .return ($P2330)
- control_2320:
+ .return ($P2328)
+ control_2321:
.local pmc exception
.get_results (exception)
- getattribute $P2331, exception, "payload"
- .return ($P2331)
+ getattribute $P2329, exception, "payload"
+ .return ($P2329)
+.end
+
+
+.namespace ["NQP";"RegexActions"]
+.sub "_block2330" :subid("133_1280467483.70067") :outer("11_1280467483.70067")
+.annotate 'line', 853
+ .const 'Sub' $P2416 = "140_1280467483.70067"
+ capture_lex $P2416
+ .const 'Sub' $P2403 = "139_1280467483.70067"
+ capture_lex $P2403
+ .const 'Sub' $P2386 = "138_1280467483.70067"
+ capture_lex $P2386
+ .const 'Sub' $P2373 = "137_1280467483.70067"
+ capture_lex $P2373
+ .const 'Sub' $P2360 = "136_1280467483.70067"
+ capture_lex $P2360
+ .const 'Sub' $P2347 = "135_1280467483.70067"
+ capture_lex $P2347
+ .const 'Sub' $P2332 = "134_1280467483.70067"
+ capture_lex $P2332
+.annotate 'line', 887
+ .const 'Sub' $P2416 = "140_1280467483.70067"
+ newclosure $P2441, $P2416
+.annotate 'line', 853
+ .return ($P2441)
.end
.namespace ["NQP";"RegexActions"]
.include "except_types.pasm"
-.sub "metachar:sym<nqpvar>" :subid("136_1275811497.55064") :method :outer("133_1275811497.55064")
+.sub "metachar:sym<:my>" :subid("134_1280467483.70067") :method :outer("133_1280467483.70067")
.param pmc param_2335
-.annotate 'line', 853
+.annotate 'line', 855
new $P2334, 'ExceptionHandler'
set_addr $P2334, control_2333
$P2334."handle_types"(.CONTROL_RETURN)
push_eh $P2334
.lex "self", self
.lex "$/", param_2335
-.annotate 'line', 854
- find_lex $P2336, "$/"
- get_hll_global $P2337, ["PAST"], "Regex"
- find_lex $P2338, "$/"
- unless_null $P2338, vivify_652
- $P2338 = root_new ['parrot';'Hash']
- vivify_652:
- set $P2339, $P2338["var"]
- unless_null $P2339, vivify_653
- new $P2339, "Undef"
- vivify_653:
- $P2340 = $P2339."ast"()
- find_lex $P2341, "$/"
- $P2342 = $P2337."new"("!INTERPOLATE", $P2340, "subrule" :named("pasttype"), "method" :named("subtype"), $P2341 :named("node"))
- $P2343 = $P2336."!make"($P2342)
-.annotate 'line', 853
- .return ($P2343)
+.annotate 'line', 856
+ new $P2336, "Undef"
+ .lex "$past", $P2336
+ find_lex $P2337, "$/"
+ unless_null $P2337, vivify_656
+ $P2337 = root_new ['parrot';'Hash']
+ vivify_656:
+ set $P2338, $P2337["statement"]
+ unless_null $P2338, vivify_657
+ new $P2338, "Undef"
+ vivify_657:
+ $P2339 = $P2338."ast"()
+ store_lex "$past", $P2339
+.annotate 'line', 857
+ find_lex $P2340, "$/"
+ get_hll_global $P2341, ["PAST"], "Regex"
+ find_lex $P2342, "$past"
+ find_lex $P2343, "$/"
+ $P2344 = $P2341."new"($P2342, "pastnode" :named("pasttype"), "declarative" :named("subtype"), $P2343 :named("node"))
+ $P2345 = $P2340."!make"($P2344)
+.annotate 'line', 855
+ .return ($P2345)
control_2333:
.local pmc exception
.get_results (exception)
- getattribute $P2344, exception, "payload"
- .return ($P2344)
+ getattribute $P2346, exception, "payload"
+ .return ($P2346)
.end
.namespace ["NQP";"RegexActions"]
.include "except_types.pasm"
-.sub "assertion:sym<{ }>" :subid("137_1275811497.55064") :method :outer("133_1275811497.55064")
- .param pmc param_2348
-.annotate 'line', 858
- new $P2347, 'ExceptionHandler'
- set_addr $P2347, control_2346
- $P2347."handle_types"(.CONTROL_RETURN)
- push_eh $P2347
- .lex "self", self
- .lex "$/", param_2348
-.annotate 'line', 859
- find_lex $P2349, "$/"
- get_hll_global $P2350, ["PAST"], "Regex"
+.sub "metachar:sym<{ }>" :subid("135_1280467483.70067") :method :outer("133_1280467483.70067")
+ .param pmc param_2350
+.annotate 'line', 861
+ new $P2349, 'ExceptionHandler'
+ set_addr $P2349, control_2348
+ $P2349."handle_types"(.CONTROL_RETURN)
+ push_eh $P2349
+ .lex "self", self
+ .lex "$/", param_2350
+.annotate 'line', 862
find_lex $P2351, "$/"
- unless_null $P2351, vivify_654
- $P2351 = root_new ['parrot';'Hash']
- vivify_654:
- set $P2352, $P2351["codeblock"]
- unless_null $P2352, vivify_655
- new $P2352, "Undef"
- vivify_655:
- $P2353 = $P2352."ast"()
- find_lex $P2354, "$/"
- $P2355 = $P2350."new"("!INTERPOLATE_REGEX", $P2353, "subrule" :named("pasttype"), "method" :named("subtype"), $P2354 :named("node"))
- $P2356 = $P2349."!make"($P2355)
-.annotate 'line', 858
- .return ($P2356)
- control_2346:
+ get_hll_global $P2352, ["PAST"], "Regex"
+ find_lex $P2353, "$/"
+ unless_null $P2353, vivify_658
+ $P2353 = root_new ['parrot';'Hash']
+ vivify_658:
+ set $P2354, $P2353["codeblock"]
+ unless_null $P2354, vivify_659
+ new $P2354, "Undef"
+ vivify_659:
+ $P2355 = $P2354."ast"()
+ find_lex $P2356, "$/"
+ $P2357 = $P2352."new"($P2355, "pastnode" :named("pasttype"), $P2356 :named("node"))
+ $P2358 = $P2351."!make"($P2357)
+.annotate 'line', 861
+ .return ($P2358)
+ control_2348:
.local pmc exception
.get_results (exception)
- getattribute $P2357, exception, "payload"
- .return ($P2357)
+ getattribute $P2359, exception, "payload"
+ .return ($P2359)
.end
.namespace ["NQP";"RegexActions"]
.include "except_types.pasm"
-.sub "assertion:sym<?{ }>" :subid("138_1275811497.55064") :method :outer("133_1275811497.55064")
- .param pmc param_2361
-.annotate 'line', 863
- new $P2360, 'ExceptionHandler'
- set_addr $P2360, control_2359
- $P2360."handle_types"(.CONTROL_RETURN)
- push_eh $P2360
- .lex "self", self
- .lex "$/", param_2361
-.annotate 'line', 864
- find_lex $P2362, "$/"
- get_hll_global $P2363, ["PAST"], "Regex"
+.sub "metachar:sym<nqpvar>" :subid("136_1280467483.70067") :method :outer("133_1280467483.70067")
+ .param pmc param_2363
+.annotate 'line', 866
+ new $P2362, 'ExceptionHandler'
+ set_addr $P2362, control_2361
+ $P2362."handle_types"(.CONTROL_RETURN)
+ push_eh $P2362
+ .lex "self", self
+ .lex "$/", param_2363
+.annotate 'line', 867
find_lex $P2364, "$/"
- unless_null $P2364, vivify_656
- $P2364 = root_new ['parrot';'Hash']
- vivify_656:
- set $P2365, $P2364["codeblock"]
- unless_null $P2365, vivify_657
- new $P2365, "Undef"
- vivify_657:
- $P2366 = $P2365."ast"()
-.annotate 'line', 865
- find_lex $P2367, "$/"
- unless_null $P2367, vivify_658
- $P2367 = root_new ['parrot';'Hash']
- vivify_658:
- set $P2368, $P2367["zw"]
- unless_null $P2368, vivify_659
- new $P2368, "Undef"
- vivify_659:
- set $S2369, $P2368
- iseq $I2370, $S2369, "!"
- find_lex $P2371, "$/"
- $P2372 = $P2363."new"($P2366, "zerowidth" :named("subtype"), $I2370 :named("negate"), "pastnode" :named("pasttype"), $P2371 :named("node"))
-.annotate 'line', 864
- $P2373 = $P2362."!make"($P2372)
-.annotate 'line', 863
- .return ($P2373)
- control_2359:
+ get_hll_global $P2365, ["PAST"], "Regex"
+ find_lex $P2366, "$/"
+ unless_null $P2366, vivify_660
+ $P2366 = root_new ['parrot';'Hash']
+ vivify_660:
+ set $P2367, $P2366["var"]
+ unless_null $P2367, vivify_661
+ new $P2367, "Undef"
+ vivify_661:
+ $P2368 = $P2367."ast"()
+ find_lex $P2369, "$/"
+ $P2370 = $P2365."new"("!INTERPOLATE", $P2368, "subrule" :named("pasttype"), "method" :named("subtype"), $P2369 :named("node"))
+ $P2371 = $P2364."!make"($P2370)
+.annotate 'line', 866
+ .return ($P2371)
+ control_2361:
.local pmc exception
.get_results (exception)
- getattribute $P2374, exception, "payload"
- .return ($P2374)
+ getattribute $P2372, exception, "payload"
+ .return ($P2372)
.end
.namespace ["NQP";"RegexActions"]
.include "except_types.pasm"
-.sub "assertion:sym<var>" :subid("139_1275811497.55064") :method :outer("133_1275811497.55064")
- .param pmc param_2378
-.annotate 'line', 869
- new $P2377, 'ExceptionHandler'
- set_addr $P2377, control_2376
- $P2377."handle_types"(.CONTROL_RETURN)
- push_eh $P2377
- .lex "self", self
- .lex "$/", param_2378
-.annotate 'line', 870
+.sub "assertion:sym<{ }>" :subid("137_1280467483.70067") :method :outer("133_1280467483.70067")
+ .param pmc param_2376
+.annotate 'line', 871
+ new $P2375, 'ExceptionHandler'
+ set_addr $P2375, control_2374
+ $P2375."handle_types"(.CONTROL_RETURN)
+ push_eh $P2375
+ .lex "self", self
+ .lex "$/", param_2376
+.annotate 'line', 872
+ find_lex $P2377, "$/"
+ get_hll_global $P2378, ["PAST"], "Regex"
find_lex $P2379, "$/"
- get_hll_global $P2380, ["PAST"], "Regex"
- find_lex $P2381, "$/"
- unless_null $P2381, vivify_660
- $P2381 = root_new ['parrot';'Hash']
- vivify_660:
- set $P2382, $P2381["var"]
- unless_null $P2382, vivify_661
- new $P2382, "Undef"
- vivify_661:
- $P2383 = $P2382."ast"()
- find_lex $P2384, "$/"
- $P2385 = $P2380."new"("!INTERPOLATE_REGEX", $P2383, "subrule" :named("pasttype"), "method" :named("subtype"), $P2384 :named("node"))
- $P2386 = $P2379."!make"($P2385)
-.annotate 'line', 869
- .return ($P2386)
- control_2376:
+ unless_null $P2379, vivify_662
+ $P2379 = root_new ['parrot';'Hash']
+ vivify_662:
+ set $P2380, $P2379["codeblock"]
+ unless_null $P2380, vivify_663
+ new $P2380, "Undef"
+ vivify_663:
+ $P2381 = $P2380."ast"()
+ find_lex $P2382, "$/"
+ $P2383 = $P2378."new"("!INTERPOLATE_REGEX", $P2381, "subrule" :named("pasttype"), "method" :named("subtype"), $P2382 :named("node"))
+ $P2384 = $P2377."!make"($P2383)
+.annotate 'line', 871
+ .return ($P2384)
+ control_2374:
.local pmc exception
.get_results (exception)
- getattribute $P2387, exception, "payload"
- .return ($P2387)
+ getattribute $P2385, exception, "payload"
+ .return ($P2385)
.end
.namespace ["NQP";"RegexActions"]
.include "except_types.pasm"
-.sub "codeblock" :subid("140_1275811497.55064") :method :outer("133_1275811497.55064")
- .param pmc param_2391
-.annotate 'line', 874
- new $P2390, 'ExceptionHandler'
- set_addr $P2390, control_2389
- $P2390."handle_types"(.CONTROL_RETURN)
- push_eh $P2390
- .lex "self", self
- .lex "$/", param_2391
-.annotate 'line', 875
- new $P2392, "Undef"
- .lex "$block", $P2392
+.sub "assertion:sym<?{ }>" :subid("138_1280467483.70067") :method :outer("133_1280467483.70067")
+ .param pmc param_2389
+.annotate 'line', 876
+ new $P2388, 'ExceptionHandler'
+ set_addr $P2388, control_2387
+ $P2388."handle_types"(.CONTROL_RETURN)
+ push_eh $P2388
+ .lex "self", self
+ .lex "$/", param_2389
.annotate 'line', 877
+ find_lex $P2390, "$/"
+ get_hll_global $P2391, ["PAST"], "Regex"
+ find_lex $P2392, "$/"
+ unless_null $P2392, vivify_664
+ $P2392 = root_new ['parrot';'Hash']
+ vivify_664:
+ set $P2393, $P2392["codeblock"]
+ unless_null $P2393, vivify_665
new $P2393, "Undef"
- .lex "$past", $P2393
-.annotate 'line', 875
- find_lex $P2394, "$/"
- unless_null $P2394, vivify_662
- $P2394 = root_new ['parrot';'Hash']
- vivify_662:
- set $P2395, $P2394["block"]
- unless_null $P2395, vivify_663
- new $P2395, "Undef"
- vivify_663:
- $P2396 = $P2395."ast"()
- store_lex "$block", $P2396
-.annotate 'line', 876
- find_lex $P2397, "$block"
- $P2397."blocktype"("immediate")
+ vivify_665:
+ $P2394 = $P2393."ast"()
.annotate 'line', 878
- get_hll_global $P2398, ["PAST"], "Stmts"
-.annotate 'line', 879
- get_hll_global $P2399, ["PAST"], "Op"
-.annotate 'line', 880
- get_hll_global $P2400, ["PAST"], "Var"
- $P2401 = $P2400."new"("$/" :named("name"))
-.annotate 'line', 881
- get_hll_global $P2402, ["PAST"], "Op"
+ find_lex $P2395, "$/"
+ unless_null $P2395, vivify_666
+ $P2395 = root_new ['parrot';'Hash']
+ vivify_666:
+ set $P2396, $P2395["zw"]
+ unless_null $P2396, vivify_667
+ new $P2396, "Undef"
+ vivify_667:
+ set $S2397, $P2396
+ iseq $I2398, $S2397, "!"
+ find_lex $P2399, "$/"
+ $P2400 = $P2391."new"($P2394, "zerowidth" :named("subtype"), $I2398 :named("negate"), "pastnode" :named("pasttype"), $P2399 :named("node"))
+.annotate 'line', 877
+ $P2401 = $P2390."!make"($P2400)
+.annotate 'line', 876
+ .return ($P2401)
+ control_2387:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2402, exception, "payload"
+ .return ($P2402)
+.end
+
+
+.namespace ["NQP";"RegexActions"]
+.include "except_types.pasm"
+.sub "assertion:sym<var>" :subid("139_1280467483.70067") :method :outer("133_1280467483.70067")
+ .param pmc param_2406
.annotate 'line', 882
- get_hll_global $P2403, ["PAST"], "Var"
- $P2404 = $P2403."new"(unicode:"$\x{a2}" :named("name"))
- $P2405 = $P2402."new"($P2404, "MATCH" :named("name"), "callmethod" :named("pasttype"))
-.annotate 'line', 881
- $P2406 = $P2399."new"($P2401, $P2405, "bind" :named("pasttype"))
-.annotate 'line', 879
- find_lex $P2407, "$block"
- $P2408 = $P2398."new"($P2406, $P2407)
-.annotate 'line', 878
- store_lex "$past", $P2408
-.annotate 'line', 890
+ new $P2405, 'ExceptionHandler'
+ set_addr $P2405, control_2404
+ $P2405."handle_types"(.CONTROL_RETURN)
+ push_eh $P2405
+ .lex "self", self
+ .lex "$/", param_2406
+.annotate 'line', 883
+ find_lex $P2407, "$/"
+ get_hll_global $P2408, ["PAST"], "Regex"
find_lex $P2409, "$/"
- find_lex $P2410, "$past"
- $P2411 = $P2409."!make"($P2410)
-.annotate 'line', 874
- .return ($P2411)
- control_2389:
+ unless_null $P2409, vivify_668
+ $P2409 = root_new ['parrot';'Hash']
+ vivify_668:
+ set $P2410, $P2409["var"]
+ unless_null $P2410, vivify_669
+ new $P2410, "Undef"
+ vivify_669:
+ $P2411 = $P2410."ast"()
+ find_lex $P2412, "$/"
+ $P2413 = $P2408."new"("!INTERPOLATE_REGEX", $P2411, "subrule" :named("pasttype"), "method" :named("subtype"), $P2412 :named("node"))
+ $P2414 = $P2407."!make"($P2413)
+.annotate 'line', 882
+ .return ($P2414)
+ control_2404:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2415, exception, "payload"
+ .return ($P2415)
+.end
+
+
+.namespace ["NQP";"RegexActions"]
+.include "except_types.pasm"
+.sub "codeblock" :subid("140_1280467483.70067") :method :outer("133_1280467483.70067")
+ .param pmc param_2419
+.annotate 'line', 887
+ new $P2418, 'ExceptionHandler'
+ set_addr $P2418, control_2417
+ $P2418."handle_types"(.CONTROL_RETURN)
+ push_eh $P2418
+ .lex "self", self
+ .lex "$/", param_2419
+.annotate 'line', 888
+ new $P2420, "Undef"
+ .lex "$block", $P2420
+.annotate 'line', 890
+ new $P2421, "Undef"
+ .lex "$past", $P2421
+.annotate 'line', 888
+ find_lex $P2422, "$/"
+ unless_null $P2422, vivify_670
+ $P2422 = root_new ['parrot';'Hash']
+ vivify_670:
+ set $P2423, $P2422["block"]
+ unless_null $P2423, vivify_671
+ new $P2423, "Undef"
+ vivify_671:
+ $P2424 = $P2423."ast"()
+ store_lex "$block", $P2424
+.annotate 'line', 889
+ find_lex $P2425, "$block"
+ $P2425."blocktype"("immediate")
+.annotate 'line', 891
+ get_hll_global $P2426, ["PAST"], "Stmts"
+.annotate 'line', 892
+ get_hll_global $P2427, ["PAST"], "Op"
+.annotate 'line', 893
+ get_hll_global $P2428, ["PAST"], "Var"
+ $P2429 = $P2428."new"("$/" :named("name"))
+.annotate 'line', 894
+ get_hll_global $P2430, ["PAST"], "Op"
+.annotate 'line', 895
+ get_hll_global $P2431, ["PAST"], "Var"
+ $P2432 = $P2431."new"(unicode:"$\x{a2}" :named("name"))
+ $P2433 = $P2430."new"($P2432, "MATCH" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 894
+ $P2434 = $P2427."new"($P2429, $P2433, "bind" :named("pasttype"))
+.annotate 'line', 892
+ find_lex $P2435, "$block"
+ $P2436 = $P2426."new"($P2434, $P2435)
+.annotate 'line', 891
+ store_lex "$past", $P2436
+.annotate 'line', 903
+ find_lex $P2437, "$/"
+ find_lex $P2438, "$past"
+ $P2439 = $P2437."!make"($P2438)
+.annotate 'line', 887
+ .return ($P2439)
+ control_2417:
.local pmc exception
.get_results (exception)
- getattribute $P2412, exception, "payload"
- .return ($P2412)
+ getattribute $P2440, exception, "payload"
+ .return ($P2440)
.end
.namespace ["NQP";"Actions"]
-.sub "_block2415" :load :anon :subid("141_1275811497.55064")
+.sub "_block2443" :load :anon :subid("141_1280467483.70067")
.annotate 'line', 3
- .const 'Sub' $P2417 = "11_1275811497.55064"
- $P2418 = $P2417()
- .return ($P2418)
+ .const 'Sub' $P2445 = "11_1280467483.70067"
+ $P2446 = $P2445()
+ .return ($P2446)
.end
.namespace []
-.sub "_block2425" :load :anon :subid("143_1275811497.55064")
+.sub "_block2453" :load :anon :subid("143_1280467483.70067")
.annotate 'line', 1
- .const 'Sub' $P2427 = "10_1275811497.55064"
- $P2428 = $P2427()
- .return ($P2428)
+ .const 'Sub' $P2455 = "10_1280467483.70067"
+ $P2456 = $P2455()
+ .return ($P2456)
.end
### .include 'src/cheats/nqp-builtins.pir'
Modified: branches/gc_massacre/ext/nqp-rx/src/stage0/P6Regex-s0.pir
==============================================================================
--- branches/gc_massacre/ext/nqp-rx/src/stage0/P6Regex-s0.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/ext/nqp-rx/src/stage0/P6Regex-s0.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -16,7 +16,7 @@
### .include 'gen/p6regex-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1275811476.7961")
+.sub "_block11" :anon :subid("10_1280467470.54449")
.annotate 'line', 0
get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13"
capture_lex $P14
@@ -30,151 +30,153 @@
.annotate 'line', 3
get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13"
capture_lex $P14
- $P588 = $P14()
+ $P572 = $P14()
.annotate 'line', 1
- .return ($P588)
- .const 'Sub' $P590 = "159_1275811476.7961"
- .return ($P590)
+ .return ($P572)
+ .const 'Sub' $P574 = "161_1280467470.54449"
+ .return ($P574)
.end
.namespace []
-.sub "" :load :init :subid("post160") :outer("10_1275811476.7961")
+.sub "" :load :init :subid("post162") :outer("10_1280467470.54449")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1275811476.7961"
+ .const 'Sub' $P12 = "10_1280467470.54449"
.local pmc block
set block, $P12
- $P593 = get_root_global ["parrot"], "P6metaclass"
- $P593."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent"))
+ $P577 = get_root_global ["parrot"], "P6metaclass"
+ $P577."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent"))
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block13" :subid("11_1275811476.7961") :outer("10_1275811476.7961")
+.sub "_block13" :subid("11_1280467470.54449") :outer("10_1280467470.54449")
.annotate 'line', 3
- .const 'Sub' $P576 = "156_1275811476.7961"
- capture_lex $P576
- .const 'Sub' $P568 = "154_1275811476.7961"
- capture_lex $P568
- .const 'Sub' $P560 = "152_1275811476.7961"
- capture_lex $P560
- .const 'Sub' $P539 = "147_1275811476.7961"
- capture_lex $P539
- .const 'Sub' $P504 = "141_1275811476.7961"
- capture_lex $P504
- .const 'Sub' $P492 = "138_1275811476.7961"
- capture_lex $P492
- .const 'Sub' $P479 = "135_1275811476.7961"
- capture_lex $P479
- .const 'Sub' $P473 = "133_1275811476.7961"
- capture_lex $P473
- .const 'Sub' $P462 = "130_1275811476.7961"
- capture_lex $P462
- .const 'Sub' $P451 = "127_1275811476.7961"
- capture_lex $P451
- .const 'Sub' $P442 = "123_1275811476.7961"
- capture_lex $P442
- .const 'Sub' $P436 = "121_1275811476.7961"
- capture_lex $P436
- .const 'Sub' $P430 = "119_1275811476.7961"
- capture_lex $P430
- .const 'Sub' $P424 = "117_1275811476.7961"
- capture_lex $P424
- .const 'Sub' $P418 = "115_1275811476.7961"
- capture_lex $P418
- .const 'Sub' $P410 = "113_1275811476.7961"
- capture_lex $P410
- .const 'Sub' $P399 = "111_1275811476.7961"
- capture_lex $P399
- .const 'Sub' $P388 = "109_1275811476.7961"
- capture_lex $P388
- .const 'Sub' $P382 = "107_1275811476.7961"
- capture_lex $P382
- .const 'Sub' $P376 = "105_1275811476.7961"
- capture_lex $P376
- .const 'Sub' $P370 = "103_1275811476.7961"
- capture_lex $P370
- .const 'Sub' $P364 = "101_1275811476.7961"
- capture_lex $P364
- .const 'Sub' $P358 = "99_1275811476.7961"
- capture_lex $P358
- .const 'Sub' $P352 = "97_1275811476.7961"
- capture_lex $P352
- .const 'Sub' $P346 = "95_1275811476.7961"
- capture_lex $P346
- .const 'Sub' $P340 = "93_1275811476.7961"
- capture_lex $P340
- .const 'Sub' $P328 = "89_1275811476.7961"
- capture_lex $P328
- .const 'Sub' $P316 = "87_1275811476.7961"
- capture_lex $P316
- .const 'Sub' $P309 = "85_1275811476.7961"
- capture_lex $P309
- .const 'Sub' $P292 = "83_1275811476.7961"
- capture_lex $P292
- .const 'Sub' $P285 = "81_1275811476.7961"
- capture_lex $P285
- .const 'Sub' $P279 = "79_1275811476.7961"
- capture_lex $P279
- .const 'Sub' $P273 = "77_1275811476.7961"
- capture_lex $P273
- .const 'Sub' $P266 = "75_1275811476.7961"
- capture_lex $P266
- .const 'Sub' $P259 = "73_1275811476.7961"
- capture_lex $P259
- .const 'Sub' $P252 = "71_1275811476.7961"
- capture_lex $P252
- .const 'Sub' $P245 = "69_1275811476.7961"
- capture_lex $P245
- .const 'Sub' $P239 = "67_1275811476.7961"
- capture_lex $P239
- .const 'Sub' $P233 = "65_1275811476.7961"
- capture_lex $P233
- .const 'Sub' $P227 = "63_1275811476.7961"
- capture_lex $P227
- .const 'Sub' $P221 = "61_1275811476.7961"
- capture_lex $P221
- .const 'Sub' $P215 = "59_1275811476.7961"
- capture_lex $P215
- .const 'Sub' $P210 = "57_1275811476.7961"
- capture_lex $P210
- .const 'Sub' $P205 = "55_1275811476.7961"
- capture_lex $P205
- .const 'Sub' $P199 = "53_1275811476.7961"
- capture_lex $P199
- .const 'Sub' $P193 = "51_1275811476.7961"
- capture_lex $P193
- .const 'Sub' $P187 = "49_1275811476.7961"
- capture_lex $P187
- .const 'Sub' $P171 = "44_1275811476.7961"
- capture_lex $P171
- .const 'Sub' $P155 = "42_1275811476.7961"
- capture_lex $P155
- .const 'Sub' $P148 = "40_1275811476.7961"
- capture_lex $P148
- .const 'Sub' $P141 = "38_1275811476.7961"
- capture_lex $P141
- .const 'Sub' $P134 = "36_1275811476.7961"
- capture_lex $P134
- .const 'Sub' $P115 = "31_1275811476.7961"
- capture_lex $P115
- .const 'Sub' $P102 = "28_1275811476.7961"
- capture_lex $P102
- .const 'Sub' $P95 = "26_1275811476.7961"
- capture_lex $P95
- .const 'Sub' $P83 = "24_1275811476.7961"
- capture_lex $P83
- .const 'Sub' $P76 = "22_1275811476.7961"
- capture_lex $P76
- .const 'Sub' $P63 = "20_1275811476.7961"
- capture_lex $P63
- .const 'Sub' $P56 = "18_1275811476.7961"
- capture_lex $P56
- .const 'Sub' $P46 = "15_1275811476.7961"
- capture_lex $P46
- .const 'Sub' $P38 = "13_1275811476.7961"
- capture_lex $P38
- .const 'Sub' $P15 = "12_1275811476.7961"
+ .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"
+ 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"
+ capture_lex $P97
+ .const 'Sub' $P87 = "26_1280467470.54449"
+ capture_lex $P87
+ .const 'Sub' $P80 = "24_1280467470.54449"
+ capture_lex $P80
+ .const 'Sub' $P68 = "22_1280467470.54449"
+ capture_lex $P68
+ .const 'Sub' $P61 = "20_1280467470.54449"
+ capture_lex $P61
+ .const 'Sub' $P54 = "18_1280467470.54449"
+ capture_lex $P54
+ .const 'Sub' $P44 = "15_1280467470.54449"
+ capture_lex $P44
+ .const 'Sub' $P37 = "13_1280467470.54449"
+ capture_lex $P37
+ .const 'Sub' $P15 = "12_1280467470.54449"
capture_lex $P15
$P0 = find_dynamic_lex "$*CTXSAVE"
if null $P0 goto ctxsave_done
@@ -182,17 +184,17 @@
unless $I0 goto ctxsave_done
$P0."ctxsave"()
ctxsave_done:
- .const 'Sub' $P576 = "156_1275811476.7961"
- capture_lex $P576
- .return ($P576)
- .const 'Sub' $P585 = "158_1275811476.7961"
- .return ($P585)
+ .const 'Sub' $P561 = "158_1280467470.54449"
+ capture_lex $P561
+ .return ($P561)
+ .const 'Sub' $P569 = "160_1280467470.54449"
+ .return ($P569)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
.include "except_types.pasm"
-.sub "obs" :subid("12_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "obs" :subid("12_1280467470.54449") :method :outer("11_1280467470.54449")
.param pmc param_18
.param pmc param_19
.param pmc param_20 :optional
@@ -205,16 +207,16 @@
.lex "self", self
.lex "$old", param_18
.lex "$new", param_19
- if has_param_20, optparam_161
+ if has_param_20, optparam_163
new $P21, "String"
assign $P21, "in Perl 6"
set param_20, $P21
- optparam_161:
+ optparam_163:
.lex "$when", param_20
.annotate 'line', 4
find_lex $P22, "self"
new $P23, "String"
- assign $P23, "Obsolete use of "
+ assign $P23, "Unsupported use of "
find_lex $P24, "$old"
set $S25, $P24
concat $P26, $P23, $S25
@@ -227,1126 +229,1266 @@
find_lex $P32, "$new"
set $S33, $P32
concat $P34, $P31, $S33
- concat $P35, $P34, " instead"
- $P36 = $P22."panic"($P35)
+ $P35 = $P22."panic"($P34)
.annotate 'line', 3
- .return ($P36)
+ .return ($P35)
control_16:
.local pmc exception
.get_results (exception)
- getattribute $P37, exception, "payload"
- .return ($P37)
+ getattribute $P36, exception, "payload"
+ .return ($P36)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "ws" :subid("13_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "ws" :subid("13_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx39_tgt
- .local int rx39_pos
- .local int rx39_off
- .local int rx39_eos
- .local int rx39_rep
- .local pmc rx39_cur
- (rx39_cur, rx39_pos, rx39_tgt) = self."!cursor_start"()
- rx39_cur."!cursor_debug"("START ", "ws")
- .lex unicode:"$\x{a2}", rx39_cur
- .local pmc match
- .lex "$/", match
- length rx39_eos, rx39_tgt
- gt rx39_pos, rx39_eos, rx39_done
- set rx39_off, 0
- lt rx39_pos, 2, rx39_start
- sub rx39_off, rx39_pos, 1
- substr rx39_tgt, rx39_tgt, rx39_off
- rx39_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan42_done
- goto rxscan42_scan
- rxscan42_loop:
- ($P10) = rx39_cur."from"()
- inc $P10
- set rx39_pos, $P10
- ge rx39_pos, rx39_eos, rxscan42_done
- rxscan42_scan:
- set_addr $I10, rxscan42_loop
- rx39_cur."!mark_push"(0, rx39_pos, $I10)
- rxscan42_done:
+ .local string rx38_tgt
+ .local int rx38_pos
+ .local int rx38_off
+ .local int rx38_eos
+ .local int rx38_rep
+ .local pmc rx38_cur
+ (rx38_cur, rx38_pos, rx38_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx38_cur
+ .local pmc match
+ .lex "$/", match
+ length rx38_eos, rx38_tgt
+ gt rx38_pos, rx38_eos, rx38_done
+ set rx38_off, 0
+ lt rx38_pos, 2, rx38_start
+ sub rx38_off, rx38_pos, 1
+ substr rx38_tgt, rx38_tgt, rx38_off
+ rx38_start:
+ eq $I10, 1, rx38_restart
+ rx38_cur."!cursor_debug"("START ", "ws")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan41_done
+ goto rxscan41_scan
+ rxscan41_loop:
+ ($P10) = rx38_cur."from"()
+ inc $P10
+ set rx38_pos, $P10
+ ge rx38_pos, rx38_eos, rxscan41_done
+ rxscan41_scan:
+ set_addr $I10, rxscan41_loop
+ rx38_cur."!mark_push"(0, rx38_pos, $I10)
+ rxscan41_done:
.annotate 'line', 8
- # rx rxquantr43 ** 0..*
- set_addr $I45, rxquantr43_done
- rx39_cur."!mark_push"(0, rx39_pos, $I45)
- rxquantr43_loop:
- alt44_0:
- set_addr $I10, alt44_1
- rx39_cur."!mark_push"(0, rx39_pos, $I10)
+ # rx rxquantr42 ** 0..*
+ set_addr $I10, rxquantr42_done
+ rx38_cur."!mark_push"(0, rx38_pos, $I10)
+ rxquantr42_loop:
+ alt43_0:
+ set_addr $I10, alt43_1
+ rx38_cur."!mark_push"(0, rx38_pos, $I10)
# rx charclass_q s r 1..-1
- sub $I10, rx39_pos, rx39_off
- find_not_cclass $I11, 32, rx39_tgt, $I10, rx39_eos
+ sub $I10, rx38_pos, rx38_off
+ find_not_cclass $I11, 32, rx38_tgt, $I10, rx38_eos
add $I12, $I10, 1
- lt $I11, $I12, rx39_fail
- add rx39_pos, rx39_off, $I11
- goto alt44_end
- alt44_1:
+ lt $I11, $I12, rx38_fail
+ add rx38_pos, rx38_off, $I11
+ goto alt43_end
+ alt43_1:
# rx literal "#"
- add $I11, rx39_pos, 1
- gt $I11, rx39_eos, rx39_fail
- sub $I11, rx39_pos, rx39_off
- substr $S10, rx39_tgt, $I11, 1
- ne $S10, "#", rx39_fail
- add rx39_pos, 1
+ 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
+ add rx38_pos, 1
# rx charclass_q N r 0..-1
- sub $I10, rx39_pos, rx39_off
- find_cclass $I11, 4096, rx39_tgt, $I10, rx39_eos
- add rx39_pos, rx39_off, $I11
- alt44_end:
- (rx39_rep) = rx39_cur."!mark_commit"($I45)
- rx39_cur."!mark_push"(rx39_rep, rx39_pos, $I45)
- goto rxquantr43_loop
- rxquantr43_done:
+ sub $I10, rx38_pos, rx38_off
+ find_cclass $I11, 4096, rx38_tgt, $I10, rx38_eos
+ add rx38_pos, rx38_off, $I11
+ alt43_end:
+ set_addr $I10, rxquantr42_done
+ (rx38_rep) = rx38_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr42_done
+ rx38_cur."!mark_push"(rx38_rep, rx38_pos, $I10)
+ goto rxquantr42_loop
+ rxquantr42_done:
# rx pass
- rx39_cur."!cursor_pass"(rx39_pos, "ws")
- rx39_cur."!cursor_debug"("PASS ", "ws", " at pos=", rx39_pos)
- .return (rx39_cur)
- rx39_fail:
+ rx38_cur."!cursor_pass"(rx38_pos, "ws")
+ rx38_cur."!cursor_debug"("PASS ", "ws", " at pos=", rx38_pos)
+ .return (rx38_cur)
+ rx38_restart:
.annotate 'line', 3
- (rx39_rep, rx39_pos, $I10, $P10) = rx39_cur."!mark_fail"(0)
- lt rx39_pos, -1, rx39_done
- eq rx39_pos, -1, rx39_fail
+ rx38_cur."!cursor_debug"("NEXT ", "ws")
+ rx38_fail:
+ (rx38_rep, rx38_pos, $I10, $P10) = rx38_cur."!mark_fail"(0)
+ lt rx38_pos, -1, rx38_done
+ eq rx38_pos, -1, rx38_fail
jump $I10
- rx39_done:
- rx39_cur."!cursor_fail"()
- rx39_cur."!cursor_debug"("FAIL ", "ws")
- .return (rx39_cur)
+ rx38_done:
+ rx38_cur."!cursor_fail"()
+ rx38_cur."!cursor_debug"("FAIL ", "ws")
+ .return (rx38_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__ws" :subid("14_1275811476.7961") :method
+.sub "!PREFIX__ws" :subid("14_1280467470.54449") :method
.annotate 'line', 3
- new $P41, "ResizablePMCArray"
- push $P41, ""
- .return ($P41)
+ new $P40, "ResizablePMCArray"
+ push $P40, ""
+ .return ($P40)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "normspace" :subid("15_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "normspace" :subid("15_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .const 'Sub' $P52 = "17_1275811476.7961"
- capture_lex $P52
- .local string rx47_tgt
- .local int rx47_pos
- .local int rx47_off
- .local int rx47_eos
- .local int rx47_rep
- .local pmc rx47_cur
- (rx47_cur, rx47_pos, rx47_tgt) = self."!cursor_start"()
- rx47_cur."!cursor_debug"("START ", "normspace")
- .lex unicode:"$\x{a2}", rx47_cur
- .local pmc match
- .lex "$/", match
- length rx47_eos, rx47_tgt
- gt rx47_pos, rx47_eos, rx47_done
- set rx47_off, 0
- lt rx47_pos, 2, rx47_start
- sub rx47_off, rx47_pos, 1
- substr rx47_tgt, rx47_tgt, rx47_off
- rx47_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan50_done
- goto rxscan50_scan
- rxscan50_loop:
- ($P10) = rx47_cur."from"()
- inc $P10
- set rx47_pos, $P10
- ge rx47_pos, rx47_eos, rxscan50_done
- rxscan50_scan:
- set_addr $I10, rxscan50_loop
- rx47_cur."!mark_push"(0, rx47_pos, $I10)
- rxscan50_done:
+ .const 'Sub' $P50 = "17_1280467470.54449"
+ capture_lex $P50
+ .local string rx45_tgt
+ .local int rx45_pos
+ .local int rx45_off
+ .local int rx45_eos
+ .local int rx45_rep
+ .local pmc rx45_cur
+ (rx45_cur, rx45_pos, rx45_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx45_cur
+ .local pmc match
+ .lex "$/", match
+ length rx45_eos, rx45_tgt
+ gt rx45_pos, rx45_eos, rx45_done
+ set rx45_off, 0
+ lt rx45_pos, 2, rx45_start
+ sub rx45_off, rx45_pos, 1
+ substr rx45_tgt, rx45_tgt, rx45_off
+ rx45_start:
+ eq $I10, 1, rx45_restart
+ rx45_cur."!cursor_debug"("START ", "normspace")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan48_done
+ goto rxscan48_scan
+ rxscan48_loop:
+ ($P10) = rx45_cur."from"()
+ inc $P10
+ set rx45_pos, $P10
+ ge rx45_pos, rx45_eos, rxscan48_done
+ rxscan48_scan:
+ set_addr $I10, rxscan48_loop
+ rx45_cur."!mark_push"(0, rx45_pos, $I10)
+ rxscan48_done:
.annotate 'line', 10
# rx subrule "before" subtype=zerowidth negate=
- rx47_cur."!cursor_pos"(rx47_pos)
- .const 'Sub' $P52 = "17_1275811476.7961"
- capture_lex $P52
- $P10 = rx47_cur."before"($P52)
- unless $P10, rx47_fail
+ rx45_cur."!cursor_pos"(rx45_pos)
+ .const 'Sub' $P50 = "17_1280467470.54449"
+ capture_lex $P50
+ $P10 = rx45_cur."before"($P50)
+ unless $P10, rx45_fail
# rx subrule "ws" subtype=method negate=
- rx47_cur."!cursor_pos"(rx47_pos)
- $P10 = rx47_cur."ws"()
- unless $P10, rx47_fail
- rx47_pos = $P10."pos"()
+ rx45_cur."!cursor_pos"(rx45_pos)
+ $P10 = rx45_cur."ws"()
+ unless $P10, rx45_fail
+ rx45_pos = $P10."pos"()
# rx pass
- rx47_cur."!cursor_pass"(rx47_pos, "normspace")
- rx47_cur."!cursor_debug"("PASS ", "normspace", " at pos=", rx47_pos)
- .return (rx47_cur)
- rx47_fail:
+ rx45_cur."!cursor_pass"(rx45_pos, "normspace")
+ rx45_cur."!cursor_debug"("PASS ", "normspace", " at pos=", rx45_pos)
+ .return (rx45_cur)
+ rx45_restart:
.annotate 'line', 3
- (rx47_rep, rx47_pos, $I10, $P10) = rx47_cur."!mark_fail"(0)
- lt rx47_pos, -1, rx47_done
- eq rx47_pos, -1, rx47_fail
+ rx45_cur."!cursor_debug"("NEXT ", "normspace")
+ rx45_fail:
+ (rx45_rep, rx45_pos, $I10, $P10) = rx45_cur."!mark_fail"(0)
+ lt rx45_pos, -1, rx45_done
+ eq rx45_pos, -1, rx45_fail
jump $I10
- rx47_done:
- rx47_cur."!cursor_fail"()
- rx47_cur."!cursor_debug"("FAIL ", "normspace")
- .return (rx47_cur)
+ rx45_done:
+ rx45_cur."!cursor_fail"()
+ rx45_cur."!cursor_debug"("FAIL ", "normspace")
+ .return (rx45_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__normspace" :subid("16_1275811476.7961") :method
+.sub "!PREFIX__normspace" :subid("16_1280467470.54449") :method
.annotate 'line', 3
- new $P49, "ResizablePMCArray"
- push $P49, ""
- .return ($P49)
+ new $P47, "ResizablePMCArray"
+ push $P47, ""
+ .return ($P47)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block51" :anon :subid("17_1275811476.7961") :method :outer("15_1275811476.7961")
+.sub "_block49" :anon :subid("17_1280467470.54449") :method :outer("15_1280467470.54449")
.annotate 'line', 10
- .local string rx53_tgt
- .local int rx53_pos
- .local int rx53_off
- .local int rx53_eos
- .local int rx53_rep
- .local pmc rx53_cur
- (rx53_cur, rx53_pos, rx53_tgt) = self."!cursor_start"()
- rx53_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx53_cur
- .local pmc match
- .lex "$/", match
- length rx53_eos, rx53_tgt
- gt rx53_pos, rx53_eos, rx53_done
- set rx53_off, 0
- lt rx53_pos, 2, rx53_start
- sub rx53_off, rx53_pos, 1
- substr rx53_tgt, rx53_tgt, rx53_off
- rx53_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan54_done
- goto rxscan54_scan
- rxscan54_loop:
- ($P10) = rx53_cur."from"()
- inc $P10
- set rx53_pos, $P10
- ge rx53_pos, rx53_eos, rxscan54_done
- rxscan54_scan:
- set_addr $I10, rxscan54_loop
- rx53_cur."!mark_push"(0, rx53_pos, $I10)
- rxscan54_done:
- alt55_0:
- set_addr $I10, alt55_1
- rx53_cur."!mark_push"(0, rx53_pos, $I10)
+ .local string rx51_tgt
+ .local int rx51_pos
+ .local int rx51_off
+ .local int rx51_eos
+ .local int rx51_rep
+ .local pmc rx51_cur
+ (rx51_cur, rx51_pos, rx51_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx51_cur
+ .local pmc match
+ .lex "$/", match
+ length rx51_eos, rx51_tgt
+ gt rx51_pos, rx51_eos, rx51_done
+ set rx51_off, 0
+ lt rx51_pos, 2, rx51_start
+ sub rx51_off, rx51_pos, 1
+ substr rx51_tgt, rx51_tgt, rx51_off
+ rx51_start:
+ eq $I10, 1, rx51_restart
+ rx51_cur."!cursor_debug"("START ", "")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan52_done
+ goto rxscan52_scan
+ rxscan52_loop:
+ ($P10) = rx51_cur."from"()
+ inc $P10
+ set rx51_pos, $P10
+ ge rx51_pos, rx51_eos, rxscan52_done
+ rxscan52_scan:
+ set_addr $I10, rxscan52_loop
+ rx51_cur."!mark_push"(0, rx51_pos, $I10)
+ rxscan52_done:
+ alt53_0:
+ set_addr $I10, alt53_1
+ rx51_cur."!mark_push"(0, rx51_pos, $I10)
# rx charclass s
- ge rx53_pos, rx53_eos, rx53_fail
- sub $I10, rx53_pos, rx53_off
- is_cclass $I11, 32, rx53_tgt, $I10
- unless $I11, rx53_fail
- inc rx53_pos
- goto alt55_end
- alt55_1:
+ ge rx51_pos, rx51_eos, rx51_fail
+ sub $I10, rx51_pos, rx51_off
+ is_cclass $I11, 32, rx51_tgt, $I10
+ unless $I11, rx51_fail
+ inc rx51_pos
+ goto alt53_end
+ alt53_1:
# rx literal "#"
- add $I11, rx53_pos, 1
- gt $I11, rx53_eos, rx53_fail
- sub $I11, rx53_pos, rx53_off
- substr $S10, rx53_tgt, $I11, 1
- ne $S10, "#", rx53_fail
- add rx53_pos, 1
- alt55_end:
- # rx pass
- rx53_cur."!cursor_pass"(rx53_pos, "")
- rx53_cur."!cursor_debug"("PASS ", "", " at pos=", rx53_pos)
- .return (rx53_cur)
- rx53_fail:
- (rx53_rep, rx53_pos, $I10, $P10) = rx53_cur."!mark_fail"(0)
- lt rx53_pos, -1, rx53_done
- eq rx53_pos, -1, rx53_fail
- jump $I10
- rx53_done:
- rx53_cur."!cursor_fail"()
- rx53_cur."!cursor_debug"("FAIL ", "")
- .return (rx53_cur)
+ 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
+ add rx51_pos, 1
+ alt53_end:
+ # rx pass
+ rx51_cur."!cursor_pass"(rx51_pos, "")
+ rx51_cur."!cursor_debug"("PASS ", "", " at pos=", rx51_pos)
+ .return (rx51_cur)
+ rx51_restart:
+ rx51_cur."!cursor_debug"("NEXT ", "")
+ rx51_fail:
+ (rx51_rep, rx51_pos, $I10, $P10) = rx51_cur."!mark_fail"(0)
+ lt rx51_pos, -1, rx51_done
+ eq rx51_pos, -1, rx51_fail
+ jump $I10
+ rx51_done:
+ rx51_cur."!cursor_fail"()
+ rx51_cur."!cursor_debug"("FAIL ", "")
+ .return (rx51_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arg" :subid("18_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
- .local string rx57_tgt
- .local int rx57_pos
- .local int rx57_off
- .local int rx57_eos
- .local int rx57_rep
- .local pmc rx57_cur
- (rx57_cur, rx57_pos, rx57_tgt) = self."!cursor_start"()
- rx57_cur."!cursor_debug"("START ", "arg")
- .lex unicode:"$\x{a2}", rx57_cur
- .local pmc match
- .lex "$/", match
- length rx57_eos, rx57_tgt
- gt rx57_pos, rx57_eos, rx57_done
- set rx57_off, 0
- lt rx57_pos, 2, rx57_start
- sub rx57_off, rx57_pos, 1
- substr rx57_tgt, rx57_tgt, rx57_off
- rx57_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan60_done
- goto rxscan60_scan
- rxscan60_loop:
- ($P10) = rx57_cur."from"()
- inc $P10
- set rx57_pos, $P10
- ge rx57_pos, rx57_eos, rxscan60_done
- rxscan60_scan:
- set_addr $I10, rxscan60_loop
- rx57_cur."!mark_push"(0, rx57_pos, $I10)
- rxscan60_done:
- alt61_0:
-.annotate 'line', 13
- set_addr $I10, alt61_1
- rx57_cur."!mark_push"(0, rx57_pos, $I10)
-.annotate 'line', 14
+.sub "identifier" :subid("18_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+ .local string rx55_tgt
+ .local int rx55_pos
+ .local int rx55_off
+ .local int rx55_eos
+ .local int rx55_rep
+ .local pmc rx55_cur
+ (rx55_cur, rx55_pos, rx55_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx55_cur
+ .local pmc match
+ .lex "$/", match
+ length rx55_eos, rx55_tgt
+ gt rx55_pos, rx55_eos, rx55_done
+ set rx55_off, 0
+ lt rx55_pos, 2, rx55_start
+ sub rx55_off, rx55_pos, 1
+ substr rx55_tgt, rx55_tgt, rx55_off
+ rx55_start:
+ eq $I10, 1, rx55_restart
+ rx55_cur."!cursor_debug"("START ", "identifier")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan59_done
+ goto rxscan59_scan
+ rxscan59_loop:
+ ($P10) = rx55_cur."from"()
+ inc $P10
+ set rx55_pos, $P10
+ ge rx55_pos, rx55_eos, rxscan59_done
+ rxscan59_scan:
+ set_addr $I10, rxscan59_loop
+ rx55_cur."!mark_push"(0, rx55_pos, $I10)
+ rxscan59_done:
+.annotate 'line', 12
+ # rx subrule "ident" subtype=method negate=
+ rx55_cur."!cursor_pos"(rx55_pos)
+ $P10 = rx55_cur."ident"()
+ unless $P10, rx55_fail
+ rx55_pos = $P10."pos"()
+ # rx rxquantr60 ** 0..*
+ set_addr $I10, rxquantr60_done
+ rx55_cur."!mark_push"(0, rx55_pos, $I10)
+ rxquantr60_loop:
+ # rx enumcharlist negate=0
+ ge rx55_pos, rx55_eos, rx55_fail
+ sub $I10, rx55_pos, rx55_off
+ substr $S10, rx55_tgt, $I10, 1
+ index $I11, "-'", $S10
+ lt $I11, 0, rx55_fail
+ inc rx55_pos
+ # rx subrule "ident" subtype=method negate=
+ rx55_cur."!cursor_pos"(rx55_pos)
+ $P10 = rx55_cur."ident"()
+ unless $P10, rx55_fail
+ rx55_pos = $P10."pos"()
+ set_addr $I10, rxquantr60_done
+ (rx55_rep) = rx55_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr60_done
+ rx55_cur."!mark_push"(rx55_rep, rx55_pos, $I10)
+ goto rxquantr60_loop
+ rxquantr60_done:
+ # rx pass
+ rx55_cur."!cursor_pass"(rx55_pos, "identifier")
+ rx55_cur."!cursor_debug"("PASS ", "identifier", " at pos=", rx55_pos)
+ .return (rx55_cur)
+ rx55_restart:
+.annotate 'line', 3
+ rx55_cur."!cursor_debug"("NEXT ", "identifier")
+ rx55_fail:
+ (rx55_rep, rx55_pos, $I10, $P10) = rx55_cur."!mark_fail"(0)
+ lt rx55_pos, -1, rx55_done
+ eq rx55_pos, -1, rx55_fail
+ jump $I10
+ rx55_done:
+ rx55_cur."!cursor_fail"()
+ rx55_cur."!cursor_debug"("FAIL ", "identifier")
+ .return (rx55_cur)
+ .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__identifier" :subid("19_1280467470.54449") :method
+.annotate 'line', 3
+ $P57 = self."!PREFIX__!subrule"("ident", "")
+ new $P58, "ResizablePMCArray"
+ push $P58, $P57
+ .return ($P58)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "arg" :subid("20_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+ .local string rx62_tgt
+ .local int rx62_pos
+ .local int rx62_off
+ .local int rx62_eos
+ .local int rx62_rep
+ .local pmc rx62_cur
+ (rx62_cur, rx62_pos, rx62_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx62_cur
+ .local pmc match
+ .lex "$/", match
+ length rx62_eos, rx62_tgt
+ gt rx62_pos, rx62_eos, rx62_done
+ set rx62_off, 0
+ lt rx62_pos, 2, rx62_start
+ sub rx62_off, rx62_pos, 1
+ substr rx62_tgt, rx62_tgt, rx62_off
+ rx62_start:
+ eq $I10, 1, rx62_restart
+ rx62_cur."!cursor_debug"("START ", "arg")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan65_done
+ goto rxscan65_scan
+ rxscan65_loop:
+ ($P10) = rx62_cur."from"()
+ inc $P10
+ set rx62_pos, $P10
+ ge rx62_pos, rx62_eos, rxscan65_done
+ rxscan65_scan:
+ set_addr $I10, rxscan65_loop
+ rx62_cur."!mark_push"(0, rx62_pos, $I10)
+ rxscan65_done:
+ alt66_0:
+.annotate 'line', 15
+ set_addr $I10, alt66_1
+ rx62_cur."!mark_push"(0, rx62_pos, $I10)
+.annotate 'line', 16
# rx enumcharlist negate=0 zerowidth
- ge rx57_pos, rx57_eos, rx57_fail
- sub $I10, rx57_pos, rx57_off
- substr $S10, rx57_tgt, $I10, 1
+ ge rx62_pos, rx62_eos, rx62_fail
+ sub $I10, rx62_pos, rx62_off
+ substr $S10, rx62_tgt, $I10, 1
index $I11, "'", $S10
- lt $I11, 0, rx57_fail
+ lt $I11, 0, rx62_fail
# rx subrule "quote_EXPR" subtype=capture negate=
- rx57_cur."!cursor_pos"(rx57_pos)
- $P10 = rx57_cur."quote_EXPR"(":q")
- unless $P10, rx57_fail
- rx57_cur."!mark_push"(0, -1, 0, $P10)
+ rx62_cur."!cursor_pos"(rx62_pos)
+ $P10 = rx62_cur."quote_EXPR"(":q")
+ unless $P10, rx62_fail
+ rx62_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx57_pos = $P10."pos"()
- goto alt61_end
- alt61_1:
- set_addr $I10, alt61_2
- rx57_cur."!mark_push"(0, rx57_pos, $I10)
-.annotate 'line', 15
+ rx62_pos = $P10."pos"()
+ goto alt66_end
+ alt66_1:
+ set_addr $I10, alt66_2
+ rx62_cur."!mark_push"(0, rx62_pos, $I10)
+.annotate 'line', 17
# rx enumcharlist negate=0 zerowidth
- ge rx57_pos, rx57_eos, rx57_fail
- sub $I10, rx57_pos, rx57_off
- substr $S10, rx57_tgt, $I10, 1
+ ge rx62_pos, rx62_eos, rx62_fail
+ sub $I10, rx62_pos, rx62_off
+ substr $S10, rx62_tgt, $I10, 1
index $I11, "\"", $S10
- lt $I11, 0, rx57_fail
+ lt $I11, 0, rx62_fail
# rx subrule "quote_EXPR" subtype=capture negate=
- rx57_cur."!cursor_pos"(rx57_pos)
- $P10 = rx57_cur."quote_EXPR"(":qq")
- unless $P10, rx57_fail
- rx57_cur."!mark_push"(0, -1, 0, $P10)
+ rx62_cur."!cursor_pos"(rx62_pos)
+ $P10 = rx62_cur."quote_EXPR"(":qq")
+ unless $P10, rx62_fail
+ rx62_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx57_pos = $P10."pos"()
- goto alt61_end
- alt61_2:
-.annotate 'line', 16
+ rx62_pos = $P10."pos"()
+ goto alt66_end
+ alt66_2:
+.annotate 'line', 18
# rx subcapture "val"
- set_addr $I10, rxcap_62_fail
- rx57_cur."!mark_push"(0, rx57_pos, $I10)
+ set_addr $I10, rxcap_67_fail
+ rx62_cur."!mark_push"(0, rx62_pos, $I10)
# rx charclass_q d r 1..-1
- sub $I10, rx57_pos, rx57_off
- find_not_cclass $I11, 8, rx57_tgt, $I10, rx57_eos
+ sub $I10, rx62_pos, rx62_off
+ find_not_cclass $I11, 8, rx62_tgt, $I10, rx62_eos
add $I12, $I10, 1
- lt $I11, $I12, rx57_fail
- add rx57_pos, rx57_off, $I11
- set_addr $I10, rxcap_62_fail
- ($I12, $I11) = rx57_cur."!mark_peek"($I10)
- rx57_cur."!cursor_pos"($I11)
- ($P10) = rx57_cur."!cursor_start"()
- $P10."!cursor_pass"(rx57_pos, "")
- rx57_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, rx62_fail
+ add rx62_pos, rx62_off, $I11
+ set_addr $I10, rxcap_67_fail
+ ($I12, $I11) = rx62_cur."!mark_peek"($I10)
+ rx62_cur."!cursor_pos"($I11)
+ ($P10) = rx62_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx62_pos, "")
+ rx62_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("val")
- goto rxcap_62_done
- rxcap_62_fail:
- goto rx57_fail
- rxcap_62_done:
- alt61_end:
-.annotate 'line', 12
+ goto rxcap_67_done
+ rxcap_67_fail:
+ goto rx62_fail
+ rxcap_67_done:
+ alt66_end:
+.annotate 'line', 14
# rx pass
- rx57_cur."!cursor_pass"(rx57_pos, "arg")
- rx57_cur."!cursor_debug"("PASS ", "arg", " at pos=", rx57_pos)
- .return (rx57_cur)
- rx57_fail:
+ rx62_cur."!cursor_pass"(rx62_pos, "arg")
+ rx62_cur."!cursor_debug"("PASS ", "arg", " at pos=", rx62_pos)
+ .return (rx62_cur)
+ rx62_restart:
.annotate 'line', 3
- (rx57_rep, rx57_pos, $I10, $P10) = rx57_cur."!mark_fail"(0)
- lt rx57_pos, -1, rx57_done
- eq rx57_pos, -1, rx57_fail
+ rx62_cur."!cursor_debug"("NEXT ", "arg")
+ rx62_fail:
+ (rx62_rep, rx62_pos, $I10, $P10) = rx62_cur."!mark_fail"(0)
+ lt rx62_pos, -1, rx62_done
+ eq rx62_pos, -1, rx62_fail
jump $I10
- rx57_done:
- rx57_cur."!cursor_fail"()
- rx57_cur."!cursor_debug"("FAIL ", "arg")
- .return (rx57_cur)
+ rx62_done:
+ rx62_cur."!cursor_fail"()
+ rx62_cur."!cursor_debug"("FAIL ", "arg")
+ .return (rx62_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arg" :subid("19_1275811476.7961") :method
+.sub "!PREFIX__arg" :subid("21_1280467470.54449") :method
.annotate 'line', 3
- new $P59, "ResizablePMCArray"
- push $P59, ""
- push $P59, "\""
- push $P59, "'"
- .return ($P59)
+ new $P64, "ResizablePMCArray"
+ push $P64, ""
+ push $P64, "\""
+ push $P64, "'"
+ .return ($P64)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arglist" :subid("20_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "arglist" :subid("22_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx64_tgt
- .local int rx64_pos
- .local int rx64_off
- .local int rx64_eos
- .local int rx64_rep
- .local pmc rx64_cur
- (rx64_cur, rx64_pos, rx64_tgt) = self."!cursor_start"()
- rx64_cur."!cursor_debug"("START ", "arglist")
- rx64_cur."!cursor_caparray"("arg")
- .lex unicode:"$\x{a2}", rx64_cur
+ .local string rx69_tgt
+ .local int rx69_pos
+ .local int rx69_off
+ .local int rx69_eos
+ .local int rx69_rep
+ .local pmc rx69_cur
+ (rx69_cur, rx69_pos, rx69_tgt, $I10) = self."!cursor_start"()
+ rx69_cur."!cursor_caparray"("arg")
+ .lex unicode:"$\x{a2}", rx69_cur
.local pmc match
.lex "$/", match
- length rx64_eos, rx64_tgt
- gt rx64_pos, rx64_eos, rx64_done
- set rx64_off, 0
- lt rx64_pos, 2, rx64_start
- sub rx64_off, rx64_pos, 1
- substr rx64_tgt, rx64_tgt, rx64_off
- rx64_start:
+ length rx69_eos, rx69_tgt
+ gt rx69_pos, rx69_eos, rx69_done
+ set rx69_off, 0
+ lt rx69_pos, 2, rx69_start
+ sub rx69_off, rx69_pos, 1
+ substr rx69_tgt, rx69_tgt, rx69_off
+ rx69_start:
+ eq $I10, 1, rx69_restart
+ rx69_cur."!cursor_debug"("START ", "arglist")
$I10 = self.'from'()
- ne $I10, -1, rxscan68_done
- goto rxscan68_scan
- rxscan68_loop:
- ($P10) = rx64_cur."from"()
+ ne $I10, -1, rxscan73_done
+ goto rxscan73_scan
+ rxscan73_loop:
+ ($P10) = rx69_cur."from"()
inc $P10
- set rx64_pos, $P10
- ge rx64_pos, rx64_eos, rxscan68_done
- rxscan68_scan:
- set_addr $I10, rxscan68_loop
- rx64_cur."!mark_push"(0, rx64_pos, $I10)
- rxscan68_done:
-.annotate 'line', 20
+ set rx69_pos, $P10
+ ge rx69_pos, rx69_eos, rxscan73_done
+ rxscan73_scan:
+ set_addr $I10, rxscan73_loop
+ rx69_cur."!mark_push"(0, rx69_pos, $I10)
+ rxscan73_done:
+.annotate 'line', 22
# rx subrule "ws" subtype=method negate=
- rx64_cur."!cursor_pos"(rx64_pos)
- $P10 = rx64_cur."ws"()
- unless $P10, rx64_fail
- rx64_pos = $P10."pos"()
+ rx69_cur."!cursor_pos"(rx69_pos)
+ $P10 = rx69_cur."ws"()
+ unless $P10, rx69_fail
+ rx69_pos = $P10."pos"()
# rx subrule "arg" subtype=capture negate=
- rx64_cur."!cursor_pos"(rx64_pos)
- $P10 = rx64_cur."arg"()
- unless $P10, rx64_fail
- rx64_cur."!mark_push"(0, -1, 0, $P10)
+ rx69_cur."!cursor_pos"(rx69_pos)
+ $P10 = rx69_cur."arg"()
+ unless $P10, rx69_fail
+ rx69_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("arg")
- rx64_pos = $P10."pos"()
+ rx69_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx64_cur."!cursor_pos"(rx64_pos)
- $P10 = rx64_cur."ws"()
- unless $P10, rx64_fail
- rx64_pos = $P10."pos"()
- # rx rxquantr71 ** 0..*
- set_addr $I74, rxquantr71_done
- rx64_cur."!mark_push"(0, rx64_pos, $I74)
- rxquantr71_loop:
+ rx69_cur."!cursor_pos"(rx69_pos)
+ $P10 = rx69_cur."ws"()
+ unless $P10, rx69_fail
+ rx69_pos = $P10."pos"()
+ # rx rxquantr76 ** 0..*
+ set_addr $I10, rxquantr76_done
+ rx69_cur."!mark_push"(0, rx69_pos, $I10)
+ rxquantr76_loop:
# rx subrule "ws" subtype=method negate=
- rx64_cur."!cursor_pos"(rx64_pos)
- $P10 = rx64_cur."ws"()
- unless $P10, rx64_fail
- rx64_pos = $P10."pos"()
+ rx69_cur."!cursor_pos"(rx69_pos)
+ $P10 = rx69_cur."ws"()
+ unless $P10, rx69_fail
+ rx69_pos = $P10."pos"()
# rx literal ","
- add $I11, rx64_pos, 1
- gt $I11, rx64_eos, rx64_fail
- sub $I11, rx64_pos, rx64_off
- substr $S10, rx64_tgt, $I11, 1
- ne $S10, ",", rx64_fail
- add rx64_pos, 1
+ add $I11, rx69_pos, 1
+ gt $I11, rx69_eos, rx69_fail
+ sub $I11, rx69_pos, rx69_off
+ substr $S10, rx69_tgt, $I11, 1
+ ne $S10, ",", rx69_fail
+ add rx69_pos, 1
# rx subrule "ws" subtype=method negate=
- rx64_cur."!cursor_pos"(rx64_pos)
- $P10 = rx64_cur."ws"()
- unless $P10, rx64_fail
- rx64_pos = $P10."pos"()
+ rx69_cur."!cursor_pos"(rx69_pos)
+ $P10 = rx69_cur."ws"()
+ unless $P10, rx69_fail
+ rx69_pos = $P10."pos"()
# rx subrule "arg" subtype=capture negate=
- rx64_cur."!cursor_pos"(rx64_pos)
- $P10 = rx64_cur."arg"()
- unless $P10, rx64_fail
- rx64_cur."!mark_push"(0, -1, 0, $P10)
+ rx69_cur."!cursor_pos"(rx69_pos)
+ $P10 = rx69_cur."arg"()
+ unless $P10, rx69_fail
+ rx69_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("arg")
- rx64_pos = $P10."pos"()
- (rx64_rep) = rx64_cur."!mark_commit"($I74)
- rx64_cur."!mark_push"(rx64_rep, rx64_pos, $I74)
- goto rxquantr71_loop
- rxquantr71_done:
+ rx69_pos = $P10."pos"()
+ set_addr $I10, rxquantr76_done
+ (rx69_rep) = rx69_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr76_done
+ rx69_cur."!mark_push"(rx69_rep, rx69_pos, $I10)
+ goto rxquantr76_loop
+ rxquantr76_done:
# rx subrule "ws" subtype=method negate=
- rx64_cur."!cursor_pos"(rx64_pos)
- $P10 = rx64_cur."ws"()
- unless $P10, rx64_fail
- rx64_pos = $P10."pos"()
+ rx69_cur."!cursor_pos"(rx69_pos)
+ $P10 = rx69_cur."ws"()
+ unless $P10, rx69_fail
+ rx69_pos = $P10."pos"()
# rx pass
- rx64_cur."!cursor_pass"(rx64_pos, "arglist")
- rx64_cur."!cursor_debug"("PASS ", "arglist", " at pos=", rx64_pos)
- .return (rx64_cur)
- rx64_fail:
+ rx69_cur."!cursor_pass"(rx69_pos, "arglist")
+ rx69_cur."!cursor_debug"("PASS ", "arglist", " at pos=", rx69_pos)
+ .return (rx69_cur)
+ rx69_restart:
.annotate 'line', 3
- (rx64_rep, rx64_pos, $I10, $P10) = rx64_cur."!mark_fail"(0)
- lt rx64_pos, -1, rx64_done
- eq rx64_pos, -1, rx64_fail
+ rx69_cur."!cursor_debug"("NEXT ", "arglist")
+ rx69_fail:
+ (rx69_rep, rx69_pos, $I10, $P10) = rx69_cur."!mark_fail"(0)
+ lt rx69_pos, -1, rx69_done
+ eq rx69_pos, -1, rx69_fail
jump $I10
- rx64_done:
- rx64_cur."!cursor_fail"()
- rx64_cur."!cursor_debug"("FAIL ", "arglist")
- .return (rx64_cur)
+ rx69_done:
+ rx69_cur."!cursor_fail"()
+ rx69_cur."!cursor_debug"("FAIL ", "arglist")
+ .return (rx69_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arglist" :subid("21_1275811476.7961") :method
+.sub "!PREFIX__arglist" :subid("23_1280467470.54449") :method
.annotate 'line', 3
- $P66 = self."!PREFIX__!subrule"("ws", "")
- new $P67, "ResizablePMCArray"
- push $P67, $P66
- .return ($P67)
+ $P71 = self."!PREFIX__!subrule"("ws", "")
+ new $P72, "ResizablePMCArray"
+ push $P72, $P71
+ .return ($P72)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "TOP" :subid("22_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "TOP" :subid("24_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx77_tgt
- .local int rx77_pos
- .local int rx77_off
- .local int rx77_eos
- .local int rx77_rep
- .local pmc rx77_cur
- (rx77_cur, rx77_pos, rx77_tgt) = self."!cursor_start"()
- rx77_cur."!cursor_debug"("START ", "TOP")
- .lex unicode:"$\x{a2}", rx77_cur
+ .local string rx81_tgt
+ .local int rx81_pos
+ .local int rx81_off
+ .local int rx81_eos
+ .local int rx81_rep
+ .local pmc rx81_cur
+ (rx81_cur, rx81_pos, rx81_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx81_cur
.local pmc match
.lex "$/", match
- length rx77_eos, rx77_tgt
- gt rx77_pos, rx77_eos, rx77_done
- set rx77_off, 0
- lt rx77_pos, 2, rx77_start
- sub rx77_off, rx77_pos, 1
- substr rx77_tgt, rx77_tgt, rx77_off
- rx77_start:
+ length rx81_eos, rx81_tgt
+ gt rx81_pos, rx81_eos, rx81_done
+ set rx81_off, 0
+ lt rx81_pos, 2, rx81_start
+ sub rx81_off, rx81_pos, 1
+ substr rx81_tgt, rx81_tgt, rx81_off
+ rx81_start:
+ eq $I10, 1, rx81_restart
+ rx81_cur."!cursor_debug"("START ", "TOP")
$I10 = self.'from'()
- ne $I10, -1, rxscan81_done
- goto rxscan81_scan
- rxscan81_loop:
- ($P10) = rx77_cur."from"()
+ ne $I10, -1, rxscan85_done
+ goto rxscan85_scan
+ rxscan85_loop:
+ ($P10) = rx81_cur."from"()
inc $P10
- set rx77_pos, $P10
- ge rx77_pos, rx77_eos, rxscan81_done
- rxscan81_scan:
- set_addr $I10, rxscan81_loop
- rx77_cur."!mark_push"(0, rx77_pos, $I10)
- rxscan81_done:
-.annotate 'line', 23
+ set rx81_pos, $P10
+ ge rx81_pos, rx81_eos, rxscan85_done
+ rxscan85_scan:
+ set_addr $I10, rxscan85_loop
+ rx81_cur."!mark_push"(0, rx81_pos, $I10)
+ rxscan85_done:
+.annotate 'line', 25
# rx subrule "nibbler" subtype=capture negate=
- rx77_cur."!cursor_pos"(rx77_pos)
- $P10 = rx77_cur."nibbler"()
- unless $P10, rx77_fail
- rx77_cur."!mark_push"(0, -1, 0, $P10)
+ rx81_cur."!cursor_pos"(rx81_pos)
+ $P10 = rx81_cur."nibbler"()
+ unless $P10, rx81_fail
+ rx81_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("nibbler")
- rx77_pos = $P10."pos"()
- alt82_0:
-.annotate 'line', 24
- set_addr $I10, alt82_1
- rx77_cur."!mark_push"(0, rx77_pos, $I10)
+ rx81_pos = $P10."pos"()
+ alt86_0:
+.annotate 'line', 26
+ set_addr $I10, alt86_1
+ rx81_cur."!mark_push"(0, rx81_pos, $I10)
# rxanchor eos
- ne rx77_pos, rx77_eos, rx77_fail
- goto alt82_end
- alt82_1:
+ ne rx81_pos, rx81_eos, rx81_fail
+ goto alt86_end
+ alt86_1:
# rx subrule "panic" subtype=method negate=
- rx77_cur."!cursor_pos"(rx77_pos)
- $P10 = rx77_cur."panic"("Confused")
- unless $P10, rx77_fail
- rx77_pos = $P10."pos"()
- alt82_end:
-.annotate 'line', 22
+ rx81_cur."!cursor_pos"(rx81_pos)
+ $P10 = rx81_cur."panic"("Confused")
+ unless $P10, rx81_fail
+ rx81_pos = $P10."pos"()
+ alt86_end:
+.annotate 'line', 24
# rx pass
- rx77_cur."!cursor_pass"(rx77_pos, "TOP")
- rx77_cur."!cursor_debug"("PASS ", "TOP", " at pos=", rx77_pos)
- .return (rx77_cur)
- rx77_fail:
+ rx81_cur."!cursor_pass"(rx81_pos, "TOP")
+ rx81_cur."!cursor_debug"("PASS ", "TOP", " at pos=", rx81_pos)
+ .return (rx81_cur)
+ rx81_restart:
.annotate 'line', 3
- (rx77_rep, rx77_pos, $I10, $P10) = rx77_cur."!mark_fail"(0)
- lt rx77_pos, -1, rx77_done
- eq rx77_pos, -1, rx77_fail
+ rx81_cur."!cursor_debug"("NEXT ", "TOP")
+ rx81_fail:
+ (rx81_rep, rx81_pos, $I10, $P10) = rx81_cur."!mark_fail"(0)
+ lt rx81_pos, -1, rx81_done
+ eq rx81_pos, -1, rx81_fail
jump $I10
- rx77_done:
- rx77_cur."!cursor_fail"()
- rx77_cur."!cursor_debug"("FAIL ", "TOP")
- .return (rx77_cur)
+ rx81_done:
+ rx81_cur."!cursor_fail"()
+ rx81_cur."!cursor_debug"("FAIL ", "TOP")
+ .return (rx81_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__TOP" :subid("23_1275811476.7961") :method
+.sub "!PREFIX__TOP" :subid("25_1280467470.54449") :method
.annotate 'line', 3
- $P79 = self."!PREFIX__!subrule"("nibbler", "")
- new $P80, "ResizablePMCArray"
- push $P80, $P79
- .return ($P80)
+ $P83 = self."!PREFIX__!subrule"("nibbler", "")
+ new $P84, "ResizablePMCArray"
+ push $P84, $P83
+ .return ($P84)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "nibbler" :subid("24_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "nibbler" :subid("26_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx84_tgt
- .local int rx84_pos
- .local int rx84_off
- .local int rx84_eos
- .local int rx84_rep
- .local pmc rx84_cur
- (rx84_cur, rx84_pos, rx84_tgt) = self."!cursor_start"()
- rx84_cur."!cursor_debug"("START ", "nibbler")
- rx84_cur."!cursor_caparray"("termish")
- .lex unicode:"$\x{a2}", rx84_cur
+ .local string rx88_tgt
+ .local int rx88_pos
+ .local int rx88_off
+ .local int rx88_eos
+ .local int rx88_rep
+ .local pmc rx88_cur
+ (rx88_cur, rx88_pos, rx88_tgt, $I10) = self."!cursor_start"()
+ rx88_cur."!cursor_caparray"("termish")
+ .lex unicode:"$\x{a2}", rx88_cur
.local pmc match
.lex "$/", match
- length rx84_eos, rx84_tgt
- gt rx84_pos, rx84_eos, rx84_done
- set rx84_off, 0
- lt rx84_pos, 2, rx84_start
- sub rx84_off, rx84_pos, 1
- substr rx84_tgt, rx84_tgt, rx84_off
- rx84_start:
+ length rx88_eos, rx88_tgt
+ gt rx88_pos, rx88_eos, rx88_done
+ set rx88_off, 0
+ lt rx88_pos, 2, rx88_start
+ sub rx88_off, rx88_pos, 1
+ substr rx88_tgt, rx88_tgt, rx88_off
+ rx88_start:
+ eq $I10, 1, rx88_restart
+ rx88_cur."!cursor_debug"("START ", "nibbler")
$I10 = self.'from'()
- ne $I10, -1, rxscan87_done
- goto rxscan87_scan
- rxscan87_loop:
- ($P10) = rx84_cur."from"()
+ ne $I10, -1, rxscan91_done
+ goto rxscan91_scan
+ rxscan91_loop:
+ ($P10) = rx88_cur."from"()
inc $P10
- set rx84_pos, $P10
- ge rx84_pos, rx84_eos, rxscan87_done
- rxscan87_scan:
- set_addr $I10, rxscan87_loop
- rx84_cur."!mark_push"(0, rx84_pos, $I10)
- rxscan87_done:
-.annotate 'line', 28
+ set rx88_pos, $P10
+ ge rx88_pos, rx88_eos, rxscan91_done
+ rxscan91_scan:
+ set_addr $I10, rxscan91_loop
+ rx88_cur."!mark_push"(0, rx88_pos, $I10)
+ rxscan91_done:
+.annotate 'line', 30
# rx reduce name="nibbler" key="open"
- rx84_cur."!cursor_pos"(rx84_pos)
- rx84_cur."!reduce"("nibbler", "open")
-.annotate 'line', 29
- # rx rxquantr88 ** 0..1
- set_addr $I90, rxquantr88_done
- rx84_cur."!mark_push"(0, rx84_pos, $I90)
- rxquantr88_loop:
+ rx88_cur."!cursor_pos"(rx88_pos)
+ rx88_cur."!reduce"("nibbler", "open")
+.annotate 'line', 31
+ # rx rxquantr92 ** 0..1
+ set_addr $I10, rxquantr92_done
+ rx88_cur."!mark_push"(0, rx88_pos, $I10)
+ rxquantr92_loop:
# rx subrule "ws" subtype=method negate=
- rx84_cur."!cursor_pos"(rx84_pos)
- $P10 = rx84_cur."ws"()
- unless $P10, rx84_fail
- rx84_pos = $P10."pos"()
- alt89_0:
- set_addr $I10, alt89_1
- rx84_cur."!mark_push"(0, rx84_pos, $I10)
+ rx88_cur."!cursor_pos"(rx88_pos)
+ $P10 = rx88_cur."ws"()
+ unless $P10, rx88_fail
+ rx88_pos = $P10."pos"()
+ alt93_0:
+ set_addr $I10, alt93_1
+ rx88_cur."!mark_push"(0, rx88_pos, $I10)
# rx literal "||"
- add $I11, rx84_pos, 2
- gt $I11, rx84_eos, rx84_fail
- sub $I11, rx84_pos, rx84_off
- substr $S10, rx84_tgt, $I11, 2
- ne $S10, "||", rx84_fail
- add rx84_pos, 2
- goto alt89_end
- alt89_1:
- set_addr $I10, alt89_2
- rx84_cur."!mark_push"(0, rx84_pos, $I10)
+ add $I11, rx88_pos, 2
+ gt $I11, rx88_eos, rx88_fail
+ sub $I11, rx88_pos, rx88_off
+ substr $S10, rx88_tgt, $I11, 2
+ ne $S10, "||", rx88_fail
+ add rx88_pos, 2
+ goto alt93_end
+ alt93_1:
+ set_addr $I10, alt93_2
+ rx88_cur."!mark_push"(0, rx88_pos, $I10)
# rx literal "|"
- add $I11, rx84_pos, 1
- gt $I11, rx84_eos, rx84_fail
- sub $I11, rx84_pos, rx84_off
- substr $S10, rx84_tgt, $I11, 1
- ne $S10, "|", rx84_fail
- add rx84_pos, 1
- goto alt89_end
- alt89_2:
- set_addr $I10, alt89_3
- rx84_cur."!mark_push"(0, rx84_pos, $I10)
+ add $I11, 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
+ add rx88_pos, 1
+ goto alt93_end
+ alt93_2:
+ set_addr $I10, alt93_3
+ rx88_cur."!mark_push"(0, rx88_pos, $I10)
# rx literal "&&"
- add $I11, rx84_pos, 2
- gt $I11, rx84_eos, rx84_fail
- sub $I11, rx84_pos, rx84_off
- substr $S10, rx84_tgt, $I11, 2
- ne $S10, "&&", rx84_fail
- add rx84_pos, 2
- goto alt89_end
- alt89_3:
+ add $I11, rx88_pos, 2
+ gt $I11, rx88_eos, rx88_fail
+ sub $I11, rx88_pos, rx88_off
+ substr $S10, rx88_tgt, $I11, 2
+ ne $S10, "&&", rx88_fail
+ add rx88_pos, 2
+ goto alt93_end
+ alt93_3:
# rx literal "&"
- add $I11, rx84_pos, 1
- gt $I11, rx84_eos, rx84_fail
- sub $I11, rx84_pos, rx84_off
- substr $S10, rx84_tgt, $I11, 1
- ne $S10, "&", rx84_fail
- add rx84_pos, 1
- alt89_end:
- (rx84_rep) = rx84_cur."!mark_commit"($I90)
- rxquantr88_done:
-.annotate 'line', 30
+ add $I11, 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
+ 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=
- rx84_cur."!cursor_pos"(rx84_pos)
- $P10 = rx84_cur."termish"()
- unless $P10, rx84_fail
- rx84_cur."!mark_push"(0, -1, 0, $P10)
+ rx88_cur."!cursor_pos"(rx88_pos)
+ $P10 = rx88_cur."termish"()
+ unless $P10, rx88_fail
+ rx88_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("termish")
- rx84_pos = $P10."pos"()
+ rx88_pos = $P10."pos"()
+.annotate 'line', 35
+ # rx rxquantr94 ** 0..*
+ set_addr $I10, rxquantr94_done
+ rx88_cur."!mark_push"(0, rx88_pos, $I10)
+ rxquantr94_loop:
+ alt95_0:
.annotate 'line', 33
- # rx rxquantr91 ** 0..*
- set_addr $I94, rxquantr91_done
- rx84_cur."!mark_push"(0, rx84_pos, $I94)
- rxquantr91_loop:
- alt92_0:
-.annotate 'line', 31
- set_addr $I10, alt92_1
- rx84_cur."!mark_push"(0, rx84_pos, $I10)
+ set_addr $I10, alt95_1
+ rx88_cur."!mark_push"(0, rx88_pos, $I10)
# rx literal "||"
- add $I11, rx84_pos, 2
- gt $I11, rx84_eos, rx84_fail
- sub $I11, rx84_pos, rx84_off
- substr $S10, rx84_tgt, $I11, 2
- ne $S10, "||", rx84_fail
- add rx84_pos, 2
- goto alt92_end
- alt92_1:
+ add $I11, rx88_pos, 2
+ gt $I11, rx88_eos, rx88_fail
+ sub $I11, rx88_pos, rx88_off
+ substr $S10, rx88_tgt, $I11, 2
+ ne $S10, "||", rx88_fail
+ add rx88_pos, 2
+ goto alt95_end
+ alt95_1:
# rx literal "|"
- add $I11, rx84_pos, 1
- gt $I11, rx84_eos, rx84_fail
- sub $I11, rx84_pos, rx84_off
- substr $S10, rx84_tgt, $I11, 1
- ne $S10, "|", rx84_fail
- add rx84_pos, 1
- alt92_end:
- alt93_0:
-.annotate 'line', 32
- set_addr $I10, alt93_1
- rx84_cur."!mark_push"(0, rx84_pos, $I10)
+ add $I11, 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
+ 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=
- rx84_cur."!cursor_pos"(rx84_pos)
- $P10 = rx84_cur."termish"()
- unless $P10, rx84_fail
- rx84_cur."!mark_push"(0, -1, 0, $P10)
+ rx88_cur."!cursor_pos"(rx88_pos)
+ $P10 = rx88_cur."termish"()
+ unless $P10, rx88_fail
+ rx88_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("termish")
- rx84_pos = $P10."pos"()
- goto alt93_end
- alt93_1:
+ rx88_pos = $P10."pos"()
+ goto alt96_end
+ alt96_1:
# rx subrule "panic" subtype=method negate=
- rx84_cur."!cursor_pos"(rx84_pos)
- $P10 = rx84_cur."panic"("Null pattern not allowed")
- unless $P10, rx84_fail
- rx84_pos = $P10."pos"()
- alt93_end:
-.annotate 'line', 33
- (rx84_rep) = rx84_cur."!mark_commit"($I94)
- rx84_cur."!mark_push"(rx84_rep, rx84_pos, $I94)
- goto rxquantr91_loop
- rxquantr91_done:
-.annotate 'line', 27
+ rx88_cur."!cursor_pos"(rx88_pos)
+ $P10 = rx88_cur."panic"("Null pattern not allowed")
+ unless $P10, rx88_fail
+ rx88_pos = $P10."pos"()
+ alt96_end:
+.annotate 'line', 35
+ set_addr $I10, rxquantr94_done
+ (rx88_rep) = rx88_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr94_done
+ rx88_cur."!mark_push"(rx88_rep, rx88_pos, $I10)
+ goto rxquantr94_loop
+ rxquantr94_done:
+.annotate 'line', 29
# rx pass
- rx84_cur."!cursor_pass"(rx84_pos, "nibbler")
- rx84_cur."!cursor_debug"("PASS ", "nibbler", " at pos=", rx84_pos)
- .return (rx84_cur)
- rx84_fail:
-.annotate 'line', 3
- (rx84_rep, rx84_pos, $I10, $P10) = rx84_cur."!mark_fail"(0)
- lt rx84_pos, -1, rx84_done
- eq rx84_pos, -1, rx84_fail
- jump $I10
- rx84_done:
- rx84_cur."!cursor_fail"()
- rx84_cur."!cursor_debug"("FAIL ", "nibbler")
- .return (rx84_cur)
+ rx88_cur."!cursor_pass"(rx88_pos, "nibbler")
+ rx88_cur."!cursor_debug"("PASS ", "nibbler", " at pos=", rx88_pos)
+ .return (rx88_cur)
+ rx88_restart:
+.annotate 'line', 3
+ rx88_cur."!cursor_debug"("NEXT ", "nibbler")
+ rx88_fail:
+ (rx88_rep, rx88_pos, $I10, $P10) = rx88_cur."!mark_fail"(0)
+ lt rx88_pos, -1, rx88_done
+ eq rx88_pos, -1, rx88_fail
+ jump $I10
+ rx88_done:
+ rx88_cur."!cursor_fail"()
+ rx88_cur."!cursor_debug"("FAIL ", "nibbler")
+ .return (rx88_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__nibbler" :subid("25_1275811476.7961") :method
-.annotate 'line', 3
- new $P86, "ResizablePMCArray"
- push $P86, ""
- .return ($P86)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "termish" :subid("26_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
- .local string rx96_tgt
- .local int rx96_pos
- .local int rx96_off
- .local int rx96_eos
- .local int rx96_rep
- .local pmc rx96_cur
- (rx96_cur, rx96_pos, rx96_tgt) = self."!cursor_start"()
- rx96_cur."!cursor_debug"("START ", "termish")
- rx96_cur."!cursor_caparray"("noun")
- .lex unicode:"$\x{a2}", rx96_cur
- .local pmc match
- .lex "$/", match
- length rx96_eos, rx96_tgt
- gt rx96_pos, rx96_eos, rx96_done
- set rx96_off, 0
- lt rx96_pos, 2, rx96_start
- sub rx96_off, rx96_pos, 1
- substr rx96_tgt, rx96_tgt, rx96_off
- rx96_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan99_done
- goto rxscan99_scan
- rxscan99_loop:
- ($P10) = rx96_cur."from"()
- inc $P10
- set rx96_pos, $P10
- ge rx96_pos, rx96_eos, rxscan99_done
- rxscan99_scan:
- set_addr $I10, rxscan99_loop
- rx96_cur."!mark_push"(0, rx96_pos, $I10)
- rxscan99_done:
-.annotate 'line', 37
- # rx rxquantr100 ** 1..*
- set_addr $I101, rxquantr100_done
- rx96_cur."!mark_push"(0, -1, $I101)
- rxquantr100_loop:
+.sub "!PREFIX__nibbler" :subid("27_1280467470.54449") :method
+.annotate 'line', 3
+ new $P90, "ResizablePMCArray"
+ push $P90, ""
+ .return ($P90)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "termish" :subid("28_1280467470.54449") :method :outer("11_1280467470.54449")
+.annotate 'line', 3
+ .local string rx98_tgt
+ .local int rx98_pos
+ .local int rx98_off
+ .local int rx98_eos
+ .local int rx98_rep
+ .local pmc rx98_cur
+ (rx98_cur, rx98_pos, rx98_tgt, $I10) = self."!cursor_start"()
+ rx98_cur."!cursor_caparray"("noun")
+ .lex unicode:"$\x{a2}", rx98_cur
+ .local pmc match
+ .lex "$/", match
+ length rx98_eos, rx98_tgt
+ gt rx98_pos, rx98_eos, rx98_done
+ set rx98_off, 0
+ lt rx98_pos, 2, rx98_start
+ sub rx98_off, rx98_pos, 1
+ 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:
+ ($P10) = rx98_cur."from"()
+ inc $P10
+ set rx98_pos, $P10
+ ge rx98_pos, rx98_eos, rxscan101_done
+ rxscan101_scan:
+ set_addr $I10, rxscan101_loop
+ rx98_cur."!mark_push"(0, rx98_pos, $I10)
+ rxscan101_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=
- rx96_cur."!cursor_pos"(rx96_pos)
- $P10 = rx96_cur."quantified_atom"()
- unless $P10, rx96_fail
- rx96_cur."!mark_push"(0, -1, 0, $P10)
+ rx98_cur."!cursor_pos"(rx98_pos)
+ $P10 = rx98_cur."quantified_atom"()
+ unless $P10, rx98_fail
+ goto rxsubrule103_pass
+ rxsubrule103_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx98_fail
+ rxsubrule103_pass:
+ set_addr $I10, rxsubrule103_back
+ rx98_cur."!mark_push"(0, rx98_pos, $I10, $P10)
$P10."!cursor_names"("noun")
- rx96_pos = $P10."pos"()
- (rx96_rep) = rx96_cur."!mark_commit"($I101)
- rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I101)
- goto rxquantr100_loop
- rxquantr100_done:
-.annotate 'line', 36
+ rx98_pos = $P10."pos"()
+ set_addr $I10, rxquantr102_done
+ (rx98_rep) = rx98_cur."!mark_commit"($I10)
+ set_addr $I10, rxquantr102_done
+ rx98_cur."!mark_push"(rx98_rep, rx98_pos, $I10)
+ goto rxquantr102_loop
+ rxquantr102_done:
+.annotate 'line', 38
# rx pass
- rx96_cur."!cursor_pass"(rx96_pos, "termish")
- rx96_cur."!cursor_debug"("PASS ", "termish", " at pos=", rx96_pos)
- .return (rx96_cur)
- rx96_fail:
+ rx98_cur."!cursor_pass"(rx98_pos, "termish")
+ rx98_cur."!cursor_debug"("PASS ", "termish", " at pos=", rx98_pos)
+ .return (rx98_cur)
+ rx98_restart:
.annotate 'line', 3
- (rx96_rep, rx96_pos, $I10, $P10) = rx96_cur."!mark_fail"(0)
- lt rx96_pos, -1, rx96_done
- eq rx96_pos, -1, rx96_fail
+ rx98_cur."!cursor_debug"("NEXT ", "termish")
+ rx98_fail:
+ (rx98_rep, rx98_pos, $I10, $P10) = rx98_cur."!mark_fail"(0)
+ lt rx98_pos, -1, rx98_done
+ eq rx98_pos, -1, rx98_fail
jump $I10
- rx96_done:
- rx96_cur."!cursor_fail"()
- rx96_cur."!cursor_debug"("FAIL ", "termish")
- .return (rx96_cur)
+ rx98_done:
+ rx98_cur."!cursor_fail"()
+ rx98_cur."!cursor_debug"("FAIL ", "termish")
+ .return (rx98_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__termish" :subid("27_1275811476.7961") :method
+.sub "!PREFIX__termish" :subid("29_1280467470.54449") :method
.annotate 'line', 3
- new $P98, "ResizablePMCArray"
- push $P98, ""
- .return ($P98)
+ new $P100, "ResizablePMCArray"
+ push $P100, ""
+ .return ($P100)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantified_atom" :subid("28_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "quantified_atom" :subid("30_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .const 'Sub' $P111 = "30_1275811476.7961"
- capture_lex $P111
- .local string rx103_tgt
- .local int rx103_pos
- .local int rx103_off
- .local int rx103_eos
- .local int rx103_rep
- .local pmc rx103_cur
- (rx103_cur, rx103_pos, rx103_tgt) = self."!cursor_start"()
- rx103_cur."!cursor_debug"("START ", "quantified_atom")
- rx103_cur."!cursor_caparray"("quantifier", "backmod")
- .lex unicode:"$\x{a2}", rx103_cur
+ .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 rx103_eos, rx103_tgt
- gt rx103_pos, rx103_eos, rx103_done
- set rx103_off, 0
- lt rx103_pos, 2, rx103_start
- sub rx103_off, rx103_pos, 1
- substr rx103_tgt, rx103_tgt, rx103_off
- rx103_start:
+ 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, rxscan107_done
- goto rxscan107_scan
- rxscan107_loop:
- ($P10) = rx103_cur."from"()
+ ne $I10, -1, rxscan109_done
+ goto rxscan109_scan
+ rxscan109_loop:
+ ($P10) = rx105_cur."from"()
inc $P10
- set rx103_pos, $P10
- ge rx103_pos, rx103_eos, rxscan107_done
- rxscan107_scan:
- set_addr $I10, rxscan107_loop
- rx103_cur."!mark_push"(0, rx103_pos, $I10)
- rxscan107_done:
-.annotate 'line', 41
+ 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=
- rx103_cur."!cursor_pos"(rx103_pos)
- $P10 = rx103_cur."atom"()
- unless $P10, rx103_fail
- rx103_cur."!mark_push"(0, -1, 0, $P10)
+ 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")
- rx103_pos = $P10."pos"()
- # rx rxquantr108 ** 0..1
- set_addr $I114, rxquantr108_done
- rx103_cur."!mark_push"(0, rx103_pos, $I114)
- rxquantr108_loop:
+ 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=
- rx103_cur."!cursor_pos"(rx103_pos)
- $P10 = rx103_cur."ws"()
- unless $P10, rx103_fail
- rx103_pos = $P10."pos"()
- alt109_0:
- set_addr $I10, alt109_1
- rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ 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=
- rx103_cur."!cursor_pos"(rx103_pos)
- $P10 = rx103_cur."quantifier"()
- unless $P10, rx103_fail
- rx103_cur."!mark_push"(0, -1, 0, $P10)
+ 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")
- rx103_pos = $P10."pos"()
- goto alt109_end
- alt109_1:
+ rx105_pos = $P10."pos"()
+ goto alt111_end
+ alt111_1:
# rx subrule "before" subtype=zerowidth negate=
- rx103_cur."!cursor_pos"(rx103_pos)
- .const 'Sub' $P111 = "30_1275811476.7961"
- capture_lex $P111
- $P10 = rx103_cur."before"($P111)
- unless $P10, rx103_fail
+ 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=
- rx103_cur."!cursor_pos"(rx103_pos)
- $P10 = rx103_cur."backmod"()
- unless $P10, rx103_fail
- rx103_cur."!mark_push"(0, -1, 0, $P10)
+ 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")
- rx103_pos = $P10."pos"()
+ rx105_pos = $P10."pos"()
# rx subrule "alpha" subtype=zerowidth negate=1
- rx103_cur."!cursor_pos"(rx103_pos)
- $P10 = rx103_cur."alpha"()
- if $P10, rx103_fail
- alt109_end:
- (rx103_rep) = rx103_cur."!mark_commit"($I114)
- rxquantr108_done:
-.annotate 'line', 40
+ 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
# rx pass
- rx103_cur."!cursor_pass"(rx103_pos, "quantified_atom")
- rx103_cur."!cursor_debug"("PASS ", "quantified_atom", " at pos=", rx103_pos)
- .return (rx103_cur)
- rx103_fail:
+ rx105_cur."!cursor_pass"(rx105_pos, "quantified_atom")
+ rx105_cur."!cursor_debug"("PASS ", "quantified_atom", " at pos=", rx105_pos)
+ .return (rx105_cur)
+ rx105_restart:
.annotate 'line', 3
- (rx103_rep, rx103_pos, $I10, $P10) = rx103_cur."!mark_fail"(0)
- lt rx103_pos, -1, rx103_done
- eq rx103_pos, -1, rx103_fail
+ 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
jump $I10
- rx103_done:
- rx103_cur."!cursor_fail"()
- rx103_cur."!cursor_debug"("FAIL ", "quantified_atom")
- .return (rx103_cur)
+ rx105_done:
+ rx105_cur."!cursor_fail"()
+ rx105_cur."!cursor_debug"("FAIL ", "quantified_atom")
+ .return (rx105_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantified_atom" :subid("29_1275811476.7961") :method
+.sub "!PREFIX__quantified_atom" :subid("31_1280467470.54449") :method
.annotate 'line', 3
- $P105 = self."!PREFIX__!subrule"("atom", "")
- new $P106, "ResizablePMCArray"
- push $P106, $P105
- .return ($P106)
+ $P107 = self."!PREFIX__!subrule"("atom", "")
+ new $P108, "ResizablePMCArray"
+ push $P108, $P107
+ .return ($P108)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block110" :anon :subid("30_1275811476.7961") :method :outer("28_1275811476.7961")
-.annotate 'line', 41
- .local string rx112_tgt
- .local int rx112_pos
- .local int rx112_off
- .local int rx112_eos
- .local int rx112_rep
- .local pmc rx112_cur
- (rx112_cur, rx112_pos, rx112_tgt) = self."!cursor_start"()
- rx112_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx112_cur
- .local pmc match
- .lex "$/", match
- length rx112_eos, rx112_tgt
- gt rx112_pos, rx112_eos, rx112_done
- set rx112_off, 0
- lt rx112_pos, 2, rx112_start
- sub rx112_off, rx112_pos, 1
- substr rx112_tgt, rx112_tgt, rx112_off
- rx112_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan113_done
- goto rxscan113_scan
- rxscan113_loop:
- ($P10) = rx112_cur."from"()
- inc $P10
- set rx112_pos, $P10
- ge rx112_pos, rx112_eos, rxscan113_done
- rxscan113_scan:
- set_addr $I10, rxscan113_loop
- rx112_cur."!mark_push"(0, rx112_pos, $I10)
- rxscan113_done:
+.sub "_block112" :anon :subid("32_1280467470.54449") :method :outer("30_1280467470.54449")
+.annotate 'line', 43
+ .local string rx114_tgt
+ .local int rx114_pos
+ .local int rx114_off
+ .local int rx114_eos
+ .local int rx114_rep
+ .local pmc rx114_cur
+ (rx114_cur, rx114_pos, rx114_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx114_cur
+ .local pmc match
+ .lex "$/", match
+ length rx114_eos, rx114_tgt
+ gt rx114_pos, rx114_eos, rx114_done
+ set rx114_off, 0
+ lt rx114_pos, 2, rx114_start
+ sub rx114_off, rx114_pos, 1
+ 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:
+ ($P10) = rx114_cur."from"()
+ inc $P10
+ set rx114_pos, $P10
+ ge rx114_pos, rx114_eos, rxscan115_done
+ rxscan115_scan:
+ set_addr $I10, rxscan115_loop
+ rx114_cur."!mark_push"(0, rx114_pos, $I10)
+ rxscan115_done:
# rx literal ":"
- add $I11, rx112_pos, 1
- gt $I11, rx112_eos, rx112_fail
- sub $I11, rx112_pos, rx112_off
- substr $S10, rx112_tgt, $I11, 1
- ne $S10, ":", rx112_fail
- add rx112_pos, 1
+ 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
# rx pass
- rx112_cur."!cursor_pass"(rx112_pos, "")
- rx112_cur."!cursor_debug"("PASS ", "", " at pos=", rx112_pos)
- .return (rx112_cur)
- rx112_fail:
- (rx112_rep, rx112_pos, $I10, $P10) = rx112_cur."!mark_fail"(0)
- lt rx112_pos, -1, rx112_done
- eq rx112_pos, -1, rx112_fail
+ rx114_cur."!cursor_pass"(rx114_pos, "")
+ rx114_cur."!cursor_debug"("PASS ", "", " at pos=", rx114_pos)
+ .return (rx114_cur)
+ rx114_restart:
+ rx114_cur."!cursor_debug"("NEXT ", "")
+ rx114_fail:
+ (rx114_rep, rx114_pos, $I10, $P10) = rx114_cur."!mark_fail"(0)
+ lt rx114_pos, -1, rx114_done
+ eq rx114_pos, -1, rx114_fail
jump $I10
- rx112_done:
- rx112_cur."!cursor_fail"()
- rx112_cur."!cursor_debug"("FAIL ", "")
- .return (rx112_cur)
+ rx114_done:
+ rx114_cur."!cursor_fail"()
+ rx114_cur."!cursor_debug"("FAIL ", "")
+ .return (rx114_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "atom" :subid("31_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "atom" :subid("33_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .const 'Sub' $P126 = "33_1275811476.7961"
+ .const 'Sub' $P126 = "35_1280467470.54449"
capture_lex $P126
- .local string rx116_tgt
- .local int rx116_pos
- .local int rx116_off
- .local int rx116_eos
- .local int rx116_rep
- .local pmc rx116_cur
- (rx116_cur, rx116_pos, rx116_tgt) = self."!cursor_start"()
- rx116_cur."!cursor_debug"("START ", "atom")
- .lex unicode:"$\x{a2}", rx116_cur
- .local pmc match
- .lex "$/", match
- length rx116_eos, rx116_tgt
- gt rx116_pos, rx116_eos, rx116_done
- set rx116_off, 0
- lt rx116_pos, 2, rx116_start
- sub rx116_off, rx116_pos, 1
- substr rx116_tgt, rx116_tgt, rx116_off
- rx116_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan120_done
- goto rxscan120_scan
- rxscan120_loop:
- ($P10) = rx116_cur."from"()
- inc $P10
- set rx116_pos, $P10
- ge rx116_pos, rx116_eos, rxscan120_done
- rxscan120_scan:
- set_addr $I10, rxscan120_loop
- rx116_cur."!mark_push"(0, rx116_pos, $I10)
- rxscan120_done:
- alt121_0:
-.annotate 'line', 46
- set_addr $I10, alt121_1
- rx116_cur."!mark_push"(0, rx116_pos, $I10)
-.annotate 'line', 47
+ .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
# rx charclass w
- ge rx116_pos, rx116_eos, rx116_fail
- sub $I10, rx116_pos, rx116_off
- is_cclass $I11, 8192, rx116_tgt, $I10
- unless $I11, rx116_fail
- inc rx116_pos
- # rx rxquantr122 ** 0..1
- set_addr $I129, rxquantr122_done
- rx116_cur."!mark_push"(0, rx116_pos, $I129)
- rxquantr122_loop:
- # rx rxquantg123 ** 1..*
- set_addr $I124, rxquantg123_done
- rxquantg123_loop:
+ 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:
# rx charclass w
- ge rx116_pos, rx116_eos, rx116_fail
- sub $I10, rx116_pos, rx116_off
- is_cclass $I11, 8192, rx116_tgt, $I10
- unless $I11, rx116_fail
- inc rx116_pos
- rx116_cur."!mark_push"(rx116_rep, rx116_pos, $I124)
- goto rxquantg123_loop
- rxquantg123_done:
+ 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:
# rx subrule "before" subtype=zerowidth negate=
- rx116_cur."!cursor_pos"(rx116_pos)
- .const 'Sub' $P126 = "33_1275811476.7961"
+ rx117_cur."!cursor_pos"(rx117_pos)
+ .const 'Sub' $P126 = "35_1280467470.54449"
capture_lex $P126
- $P10 = rx116_cur."before"($P126)
- unless $P10, rx116_fail
- (rx116_rep) = rx116_cur."!mark_commit"($I129)
- rxquantr122_done:
- goto alt121_end
- alt121_1:
-.annotate 'line', 48
+ $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
# rx subrule "metachar" subtype=capture negate=
- rx116_cur."!cursor_pos"(rx116_pos)
- $P10 = rx116_cur."metachar"()
- unless $P10, rx116_fail
- rx116_cur."!mark_push"(0, -1, 0, $P10)
+ rx117_cur."!cursor_pos"(rx117_pos)
+ $P10 = rx117_cur."metachar"()
+ unless $P10, rx117_fail
+ rx117_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("metachar")
- rx116_pos = $P10."pos"()
- alt121_end:
-.annotate 'line', 44
+ rx117_pos = $P10."pos"()
+ alt122_end:
+.annotate 'line', 46
# rx pass
- rx116_cur."!cursor_pass"(rx116_pos, "atom")
- rx116_cur."!cursor_debug"("PASS ", "atom", " at pos=", rx116_pos)
- .return (rx116_cur)
- rx116_fail:
+ rx117_cur."!cursor_pass"(rx117_pos, "atom")
+ rx117_cur."!cursor_debug"("PASS ", "atom", " at pos=", rx117_pos)
+ .return (rx117_cur)
+ rx117_restart:
.annotate 'line', 3
- (rx116_rep, rx116_pos, $I10, $P10) = rx116_cur."!mark_fail"(0)
- lt rx116_pos, -1, rx116_done
- eq rx116_pos, -1, rx116_fail
+ 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
jump $I10
- rx116_done:
- rx116_cur."!cursor_fail"()
- rx116_cur."!cursor_debug"("FAIL ", "atom")
- .return (rx116_cur)
+ rx117_done:
+ rx117_cur."!cursor_fail"()
+ rx117_cur."!cursor_debug"("FAIL ", "atom")
+ .return (rx117_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__atom" :subid("32_1275811476.7961") :method
+.sub "!PREFIX__atom" :subid("34_1280467470.54449") :method
.annotate 'line', 3
- $P118 = self."!PREFIX__!subrule"("metachar", "")
- new $P119, "ResizablePMCArray"
- push $P119, $P118
- push $P119, ""
- .return ($P119)
+ $P119 = self."!PREFIX__!subrule"("metachar", "")
+ new $P120, "ResizablePMCArray"
+ push $P120, $P119
+ push $P120, ""
+ .return ($P120)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block125" :anon :subid("33_1275811476.7961") :method :outer("31_1275811476.7961")
-.annotate 'line', 47
+.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) = self."!cursor_start"()
- rx127_cur."!cursor_debug"("START ", "")
+ (rx127_cur, rx127_pos, rx127_tgt, $I10) = self."!cursor_start"()
.lex unicode:"$\x{a2}", rx127_cur
.local pmc match
.lex "$/", match
@@ -1357,6 +1499,8 @@
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
@@ -1379,6 +1523,8 @@
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
@@ -1393,5896 +1539,6143 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier" :subid("34_1275811476.7961") :method
-.annotate 'line', 52
- $P131 = self."!protoregex"("quantifier")
- .return ($P131)
+.sub "quantifier" :subid("36_1280467470.54449") :method
+.annotate 'line', 54
+ $P130 = self."!protoregex"("quantifier")
+ .return ($P130)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier" :subid("35_1275811476.7961") :method
-.annotate 'line', 52
- $P133 = self."!PREFIX__!protoregex"("quantifier")
- .return ($P133)
+.sub "!PREFIX__quantifier" :subid("37_1280467470.54449") :method
+.annotate 'line', 54
+ $P132 = self."!PREFIX__!protoregex"("quantifier")
+ .return ($P132)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<*>" :subid("36_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "quantifier:sym<*>" :subid("38_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx135_tgt
- .local int rx135_pos
- .local int rx135_off
- .local int rx135_eos
- .local int rx135_rep
- .local pmc rx135_cur
- (rx135_cur, rx135_pos, rx135_tgt) = self."!cursor_start"()
- rx135_cur."!cursor_debug"("START ", "quantifier:sym<*>")
- .lex unicode:"$\x{a2}", rx135_cur
- .local pmc match
- .lex "$/", match
- length rx135_eos, rx135_tgt
- gt rx135_pos, rx135_eos, rx135_done
- set rx135_off, 0
- lt rx135_pos, 2, rx135_start
- sub rx135_off, rx135_pos, 1
- substr rx135_tgt, rx135_tgt, rx135_off
- rx135_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan139_done
- goto rxscan139_scan
- rxscan139_loop:
- ($P10) = rx135_cur."from"()
- inc $P10
- set rx135_pos, $P10
- ge rx135_pos, rx135_eos, rxscan139_done
- rxscan139_scan:
- set_addr $I10, rxscan139_loop
- rx135_cur."!mark_push"(0, rx135_pos, $I10)
- rxscan139_done:
-.annotate 'line', 53
+ .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
# rx subcapture "sym"
- set_addr $I10, rxcap_140_fail
- rx135_cur."!mark_push"(0, rx135_pos, $I10)
+ set_addr $I10, rxcap_139_fail
+ rx134_cur."!mark_push"(0, rx134_pos, $I10)
# rx literal "*"
- add $I11, rx135_pos, 1
- gt $I11, rx135_eos, rx135_fail
- sub $I11, rx135_pos, rx135_off
- substr $S10, rx135_tgt, $I11, 1
- ne $S10, "*", rx135_fail
- add rx135_pos, 1
- set_addr $I10, rxcap_140_fail
- ($I12, $I11) = rx135_cur."!mark_peek"($I10)
- rx135_cur."!cursor_pos"($I11)
- ($P10) = rx135_cur."!cursor_start"()
- $P10."!cursor_pass"(rx135_pos, "")
- rx135_cur."!mark_push"(0, -1, 0, $P10)
+ 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)
$P10."!cursor_names"("sym")
- goto rxcap_140_done
- rxcap_140_fail:
- goto rx135_fail
- rxcap_140_done:
+ goto rxcap_139_done
+ rxcap_139_fail:
+ goto rx134_fail
+ rxcap_139_done:
# rx subrule "backmod" subtype=capture negate=
- rx135_cur."!cursor_pos"(rx135_pos)
- $P10 = rx135_cur."backmod"()
- unless $P10, rx135_fail
- rx135_cur."!mark_push"(0, -1, 0, $P10)
+ rx134_cur."!cursor_pos"(rx134_pos)
+ $P10 = rx134_cur."backmod"()
+ unless $P10, rx134_fail
+ rx134_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("backmod")
- rx135_pos = $P10."pos"()
+ rx134_pos = $P10."pos"()
# rx pass
- rx135_cur."!cursor_pass"(rx135_pos, "quantifier:sym<*>")
- rx135_cur."!cursor_debug"("PASS ", "quantifier:sym<*>", " at pos=", rx135_pos)
- .return (rx135_cur)
- rx135_fail:
+ 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
- (rx135_rep, rx135_pos, $I10, $P10) = rx135_cur."!mark_fail"(0)
- lt rx135_pos, -1, rx135_done
- eq rx135_pos, -1, rx135_fail
+ 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
- rx135_done:
- rx135_cur."!cursor_fail"()
- rx135_cur."!cursor_debug"("FAIL ", "quantifier:sym<*>")
- .return (rx135_cur)
+ rx134_done:
+ rx134_cur."!cursor_fail"()
+ rx134_cur."!cursor_debug"("FAIL ", "quantifier:sym<*>")
+ .return (rx134_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<*>" :subid("37_1275811476.7961") :method
+.sub "!PREFIX__quantifier:sym<*>" :subid("39_1280467470.54449") :method
.annotate 'line', 3
- $P137 = self."!PREFIX__!subrule"("backmod", "*")
- new $P138, "ResizablePMCArray"
- push $P138, $P137
- .return ($P138)
+ $P136 = self."!PREFIX__!subrule"("backmod", "*")
+ new $P137, "ResizablePMCArray"
+ push $P137, $P136
+ .return ($P137)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<+>" :subid("38_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "quantifier:sym<+>" :subid("40_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx142_tgt
- .local int rx142_pos
- .local int rx142_off
- .local int rx142_eos
- .local int rx142_rep
- .local pmc rx142_cur
- (rx142_cur, rx142_pos, rx142_tgt) = self."!cursor_start"()
- rx142_cur."!cursor_debug"("START ", "quantifier:sym<+>")
- .lex unicode:"$\x{a2}", rx142_cur
+ .local 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 rx142_eos, rx142_tgt
- gt rx142_pos, rx142_eos, rx142_done
- set rx142_off, 0
- lt rx142_pos, 2, rx142_start
- sub rx142_off, rx142_pos, 1
- substr rx142_tgt, rx142_tgt, rx142_off
- rx142_start:
+ 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, rxscan146_done
- goto rxscan146_scan
- rxscan146_loop:
- ($P10) = rx142_cur."from"()
+ ne $I10, -1, rxscan145_done
+ goto rxscan145_scan
+ rxscan145_loop:
+ ($P10) = rx141_cur."from"()
inc $P10
- set rx142_pos, $P10
- ge rx142_pos, rx142_eos, rxscan146_done
- rxscan146_scan:
- set_addr $I10, rxscan146_loop
- rx142_cur."!mark_push"(0, rx142_pos, $I10)
- rxscan146_done:
-.annotate 'line', 54
+ 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
# rx subcapture "sym"
- set_addr $I10, rxcap_147_fail
- rx142_cur."!mark_push"(0, rx142_pos, $I10)
+ set_addr $I10, rxcap_146_fail
+ rx141_cur."!mark_push"(0, rx141_pos, $I10)
# rx literal "+"
- add $I11, rx142_pos, 1
- gt $I11, rx142_eos, rx142_fail
- sub $I11, rx142_pos, rx142_off
- substr $S10, rx142_tgt, $I11, 1
- ne $S10, "+", rx142_fail
- add rx142_pos, 1
- set_addr $I10, rxcap_147_fail
- ($I12, $I11) = rx142_cur."!mark_peek"($I10)
- rx142_cur."!cursor_pos"($I11)
- ($P10) = rx142_cur."!cursor_start"()
- $P10."!cursor_pass"(rx142_pos, "")
- rx142_cur."!mark_push"(0, -1, 0, $P10)
+ 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)
$P10."!cursor_names"("sym")
- goto rxcap_147_done
- rxcap_147_fail:
- goto rx142_fail
- rxcap_147_done:
+ goto rxcap_146_done
+ rxcap_146_fail:
+ goto rx141_fail
+ rxcap_146_done:
# rx subrule "backmod" subtype=capture negate=
- rx142_cur."!cursor_pos"(rx142_pos)
- $P10 = rx142_cur."backmod"()
- unless $P10, rx142_fail
- rx142_cur."!mark_push"(0, -1, 0, $P10)
+ rx141_cur."!cursor_pos"(rx141_pos)
+ $P10 = rx141_cur."backmod"()
+ unless $P10, rx141_fail
+ rx141_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("backmod")
- rx142_pos = $P10."pos"()
+ rx141_pos = $P10."pos"()
# rx pass
- rx142_cur."!cursor_pass"(rx142_pos, "quantifier:sym<+>")
- rx142_cur."!cursor_debug"("PASS ", "quantifier:sym<+>", " at pos=", rx142_pos)
- .return (rx142_cur)
- rx142_fail:
+ 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
- (rx142_rep, rx142_pos, $I10, $P10) = rx142_cur."!mark_fail"(0)
- lt rx142_pos, -1, rx142_done
- eq rx142_pos, -1, rx142_fail
+ 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
- rx142_done:
- rx142_cur."!cursor_fail"()
- rx142_cur."!cursor_debug"("FAIL ", "quantifier:sym<+>")
- .return (rx142_cur)
+ rx141_done:
+ rx141_cur."!cursor_fail"()
+ rx141_cur."!cursor_debug"("FAIL ", "quantifier:sym<+>")
+ .return (rx141_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<+>" :subid("39_1275811476.7961") :method
+.sub "!PREFIX__quantifier:sym<+>" :subid("41_1280467470.54449") :method
.annotate 'line', 3
- $P144 = self."!PREFIX__!subrule"("backmod", "+")
- new $P145, "ResizablePMCArray"
- push $P145, $P144
- .return ($P145)
+ $P143 = self."!PREFIX__!subrule"("backmod", "+")
+ new $P144, "ResizablePMCArray"
+ push $P144, $P143
+ .return ($P144)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<?>" :subid("40_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "quantifier:sym<?>" :subid("42_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx149_tgt
- .local int rx149_pos
- .local int rx149_off
- .local int rx149_eos
- .local int rx149_rep
- .local pmc rx149_cur
- (rx149_cur, rx149_pos, rx149_tgt) = self."!cursor_start"()
- rx149_cur."!cursor_debug"("START ", "quantifier:sym<?>")
- .lex unicode:"$\x{a2}", rx149_cur
+ .local string 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 rx149_eos, rx149_tgt
- gt rx149_pos, rx149_eos, rx149_done
- set rx149_off, 0
- lt rx149_pos, 2, rx149_start
- sub rx149_off, rx149_pos, 1
- substr rx149_tgt, rx149_tgt, rx149_off
- rx149_start:
+ length 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, rxscan153_done
- goto rxscan153_scan
- rxscan153_loop:
- ($P10) = rx149_cur."from"()
+ ne $I10, -1, rxscan152_done
+ goto rxscan152_scan
+ rxscan152_loop:
+ ($P10) = rx148_cur."from"()
inc $P10
- set rx149_pos, $P10
- ge rx149_pos, rx149_eos, rxscan153_done
- rxscan153_scan:
- set_addr $I10, rxscan153_loop
- rx149_cur."!mark_push"(0, rx149_pos, $I10)
- rxscan153_done:
-.annotate 'line', 55
+ set 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
# rx subcapture "sym"
- set_addr $I10, rxcap_154_fail
- rx149_cur."!mark_push"(0, rx149_pos, $I10)
+ set_addr $I10, rxcap_153_fail
+ rx148_cur."!mark_push"(0, rx148_pos, $I10)
# rx literal "?"
- add $I11, rx149_pos, 1
- gt $I11, rx149_eos, rx149_fail
- sub $I11, rx149_pos, rx149_off
- substr $S10, rx149_tgt, $I11, 1
- ne $S10, "?", rx149_fail
- add rx149_pos, 1
- set_addr $I10, rxcap_154_fail
- ($I12, $I11) = rx149_cur."!mark_peek"($I10)
- rx149_cur."!cursor_pos"($I11)
- ($P10) = rx149_cur."!cursor_start"()
- $P10."!cursor_pass"(rx149_pos, "")
- rx149_cur."!mark_push"(0, -1, 0, $P10)
+ 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)
$P10."!cursor_names"("sym")
- goto rxcap_154_done
- rxcap_154_fail:
- goto rx149_fail
- rxcap_154_done:
+ goto rxcap_153_done
+ rxcap_153_fail:
+ goto rx148_fail
+ rxcap_153_done:
# rx subrule "backmod" subtype=capture negate=
- rx149_cur."!cursor_pos"(rx149_pos)
- $P10 = rx149_cur."backmod"()
- unless $P10, rx149_fail
- rx149_cur."!mark_push"(0, -1, 0, $P10)
+ rx148_cur."!cursor_pos"(rx148_pos)
+ $P10 = rx148_cur."backmod"()
+ unless $P10, rx148_fail
+ rx148_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("backmod")
- rx149_pos = $P10."pos"()
+ rx148_pos = $P10."pos"()
# rx pass
- rx149_cur."!cursor_pass"(rx149_pos, "quantifier:sym<?>")
- rx149_cur."!cursor_debug"("PASS ", "quantifier:sym<?>", " at pos=", rx149_pos)
- .return (rx149_cur)
- rx149_fail:
+ rx148_cur."!cursor_pass"(rx148_pos, "quantifier:sym<?>")
+ rx148_cur."!cursor_debug"("PASS ", "quantifier:sym<?>", " at pos=", rx148_pos)
+ .return (rx148_cur)
+ rx148_restart:
.annotate 'line', 3
- (rx149_rep, rx149_pos, $I10, $P10) = rx149_cur."!mark_fail"(0)
- lt rx149_pos, -1, rx149_done
- eq rx149_pos, -1, rx149_fail
+ 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
jump $I10
- rx149_done:
- rx149_cur."!cursor_fail"()
- rx149_cur."!cursor_debug"("FAIL ", "quantifier:sym<?>")
- .return (rx149_cur)
+ rx148_done:
+ rx148_cur."!cursor_fail"()
+ rx148_cur."!cursor_debug"("FAIL ", "quantifier:sym<?>")
+ .return (rx148_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<?>" :subid("41_1275811476.7961") :method
+.sub "!PREFIX__quantifier:sym<?>" :subid("43_1280467470.54449") :method
.annotate 'line', 3
- $P151 = self."!PREFIX__!subrule"("backmod", "?")
- new $P152, "ResizablePMCArray"
- push $P152, $P151
- .return ($P152)
+ $P150 = self."!PREFIX__!subrule"("backmod", "?")
+ new $P151, "ResizablePMCArray"
+ push $P151, $P150
+ .return ($P151)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<**>" :subid("42_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "quantifier:sym<**>" :subid("44_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx156_tgt
- .local int rx156_pos
- .local int rx156_off
- .local int rx156_eos
- .local int rx156_rep
- .local pmc rx156_cur
- (rx156_cur, rx156_pos, rx156_tgt) = self."!cursor_start"()
- rx156_cur."!cursor_debug"("START ", "quantifier:sym<**>")
- rx156_cur."!cursor_caparray"("max", "normspace")
- .lex unicode:"$\x{a2}", rx156_cur
+ .local 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 rx156_eos, rx156_tgt
- gt rx156_pos, rx156_eos, rx156_done
- set rx156_off, 0
- lt rx156_pos, 2, rx156_start
- sub rx156_off, rx156_pos, 1
- substr rx156_tgt, rx156_tgt, rx156_off
- rx156_start:
+ 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, rxscan159_done
- goto rxscan159_scan
- rxscan159_loop:
- ($P10) = rx156_cur."from"()
+ ne $I10, -1, rxscan158_done
+ goto rxscan158_scan
+ rxscan158_loop:
+ ($P10) = rx155_cur."from"()
inc $P10
- set rx156_pos, $P10
- ge rx156_pos, rx156_eos, rxscan159_done
- rxscan159_scan:
- set_addr $I10, rxscan159_loop
- rx156_cur."!mark_push"(0, rx156_pos, $I10)
- rxscan159_done:
-.annotate 'line', 57
+ 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
# rx subcapture "sym"
- set_addr $I10, rxcap_160_fail
- rx156_cur."!mark_push"(0, rx156_pos, $I10)
+ set_addr $I10, rxcap_159_fail
+ rx155_cur."!mark_push"(0, rx155_pos, $I10)
# rx literal "**"
- add $I11, rx156_pos, 2
- gt $I11, rx156_eos, rx156_fail
- sub $I11, rx156_pos, rx156_off
- substr $S10, rx156_tgt, $I11, 2
- ne $S10, "**", rx156_fail
- add rx156_pos, 2
- set_addr $I10, rxcap_160_fail
- ($I12, $I11) = rx156_cur."!mark_peek"($I10)
- rx156_cur."!cursor_pos"($I11)
- ($P10) = rx156_cur."!cursor_start"()
- $P10."!cursor_pass"(rx156_pos, "")
- rx156_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, 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)
$P10."!cursor_names"("sym")
- goto rxcap_160_done
- rxcap_160_fail:
- goto rx156_fail
- rxcap_160_done:
- # rx rxquantr161 ** 0..1
- set_addr $I162, rxquantr161_done
- rx156_cur."!mark_push"(0, rx156_pos, $I162)
- rxquantr161_loop:
+ goto rxcap_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:
# rx subrule "normspace" subtype=capture negate=
- rx156_cur."!cursor_pos"(rx156_pos)
- $P10 = rx156_cur."normspace"()
- unless $P10, rx156_fail
- rx156_cur."!mark_push"(0, -1, 0, $P10)
+ rx155_cur."!cursor_pos"(rx155_pos)
+ $P10 = rx155_cur."normspace"()
+ unless $P10, rx155_fail
+ goto rxsubrule161_pass
+ rxsubrule161_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)
$P10."!cursor_names"("normspace")
- rx156_pos = $P10."pos"()
- (rx156_rep) = rx156_cur."!mark_commit"($I162)
- rxquantr161_done:
+ rx155_pos = $P10."pos"()
+ set_addr $I10, rxquantr160_done
+ (rx155_rep) = rx155_cur."!mark_commit"($I10)
+ rxquantr160_done:
# rx subrule "backmod" subtype=capture negate=
- rx156_cur."!cursor_pos"(rx156_pos)
- $P10 = rx156_cur."backmod"()
- unless $P10, rx156_fail
- rx156_cur."!mark_push"(0, -1, 0, $P10)
+ rx155_cur."!cursor_pos"(rx155_pos)
+ $P10 = rx155_cur."backmod"()
+ unless $P10, rx155_fail
+ rx155_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("backmod")
- rx156_pos = $P10."pos"()
- # rx rxquantr163 ** 0..1
- set_addr $I164, rxquantr163_done
- rx156_cur."!mark_push"(0, rx156_pos, $I164)
- rxquantr163_loop:
+ rx155_pos = $P10."pos"()
+ # rx rxquantr162 ** 0..1
+ set_addr $I10, rxquantr162_done
+ rx155_cur."!mark_push"(0, rx155_pos, $I10)
+ rxquantr162_loop:
# rx subrule "normspace" subtype=capture negate=
- rx156_cur."!cursor_pos"(rx156_pos)
- $P10 = rx156_cur."normspace"()
- unless $P10, rx156_fail
- rx156_cur."!mark_push"(0, -1, 0, $P10)
+ rx155_cur."!cursor_pos"(rx155_pos)
+ $P10 = rx155_cur."normspace"()
+ unless $P10, rx155_fail
+ goto rxsubrule163_pass
+ rxsubrule163_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)
$P10."!cursor_names"("normspace")
- rx156_pos = $P10."pos"()
- (rx156_rep) = rx156_cur."!mark_commit"($I164)
- rxquantr163_done:
- alt165_0:
-.annotate 'line', 58
- set_addr $I10, alt165_1
- rx156_cur."!mark_push"(0, rx156_pos, $I10)
-.annotate 'line', 59
+ 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
# rx subcapture "min"
- set_addr $I10, rxcap_166_fail
- rx156_cur."!mark_push"(0, rx156_pos, $I10)
+ set_addr $I10, rxcap_165_fail
+ rx155_cur."!mark_push"(0, rx155_pos, $I10)
# rx charclass_q d r 1..-1
- sub $I10, rx156_pos, rx156_off
- find_not_cclass $I11, 8, rx156_tgt, $I10, rx156_eos
+ sub $I10, rx155_pos, rx155_off
+ find_not_cclass $I11, 8, rx155_tgt, $I10, rx155_eos
add $I12, $I10, 1
- lt $I11, $I12, rx156_fail
- add rx156_pos, rx156_off, $I11
- set_addr $I10, rxcap_166_fail
- ($I12, $I11) = rx156_cur."!mark_peek"($I10)
- rx156_cur."!cursor_pos"($I11)
- ($P10) = rx156_cur."!cursor_start"()
- $P10."!cursor_pass"(rx156_pos, "")
- rx156_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, 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)
$P10."!cursor_names"("min")
- goto rxcap_166_done
- rxcap_166_fail:
- goto rx156_fail
- rxcap_166_done:
-.annotate 'line', 66
- # rx rxquantr167 ** 0..1
- set_addr $I170, rxquantr167_done
- rx156_cur."!mark_push"(0, rx156_pos, $I170)
- rxquantr167_loop:
-.annotate 'line', 60
+ goto rxcap_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
# rx literal ".."
- add $I11, rx156_pos, 2
- gt $I11, rx156_eos, rx156_fail
- sub $I11, rx156_pos, rx156_off
- substr $S10, rx156_tgt, $I11, 2
- ne $S10, "..", rx156_fail
- add rx156_pos, 2
-.annotate 'line', 61
+ add $I11, 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
# rx subcapture "max"
- set_addr $I10, rxcap_169_fail
- rx156_cur."!mark_push"(0, rx156_pos, $I10)
- alt168_0:
- set_addr $I10, alt168_1
- rx156_cur."!mark_push"(0, rx156_pos, $I10)
-.annotate 'line', 62
+ set_addr $I10, rxcap_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
# rx charclass_q d r 1..-1
- sub $I10, rx156_pos, rx156_off
- find_not_cclass $I11, 8, rx156_tgt, $I10, rx156_eos
+ sub $I10, rx155_pos, rx155_off
+ find_not_cclass $I11, 8, rx155_tgt, $I10, rx155_eos
add $I12, $I10, 1
- lt $I11, $I12, rx156_fail
- add rx156_pos, rx156_off, $I11
- goto alt168_end
- alt168_1:
- set_addr $I10, alt168_2
- rx156_cur."!mark_push"(0, rx156_pos, $I10)
-.annotate 'line', 63
+ lt $I11, $I12, 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
# rx literal "*"
- add $I11, rx156_pos, 1
- gt $I11, rx156_eos, rx156_fail
- sub $I11, rx156_pos, rx156_off
- substr $S10, rx156_tgt, $I11, 1
- ne $S10, "*", rx156_fail
- add rx156_pos, 1
- goto alt168_end
- alt168_2:
-.annotate 'line', 64
+ add $I11, 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
# rx subrule "panic" subtype=method negate=
- rx156_cur."!cursor_pos"(rx156_pos)
- $P10 = rx156_cur."panic"("Only integers or '*' allowed as range quantifier endpoint")
- unless $P10, rx156_fail
- rx156_pos = $P10."pos"()
- alt168_end:
-.annotate 'line', 61
- set_addr $I10, rxcap_169_fail
- ($I12, $I11) = rx156_cur."!mark_peek"($I10)
- rx156_cur."!cursor_pos"($I11)
- ($P10) = rx156_cur."!cursor_start"()
- $P10."!cursor_pass"(rx156_pos, "")
- rx156_cur."!mark_push"(0, -1, 0, $P10)
+ 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)
$P10."!cursor_names"("max")
- goto rxcap_169_done
- rxcap_169_fail:
- goto rx156_fail
- rxcap_169_done:
-.annotate 'line', 66
- (rx156_rep) = rx156_cur."!mark_commit"($I170)
- rxquantr167_done:
-.annotate 'line', 59
- goto alt165_end
- alt165_1:
-.annotate 'line', 67
+ goto rxcap_168_done
+ rxcap_168_fail:
+ goto rx155_fail
+ rxcap_168_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
# rx subrule "quantified_atom" subtype=capture negate=
- rx156_cur."!cursor_pos"(rx156_pos)
- $P10 = rx156_cur."quantified_atom"()
- unless $P10, rx156_fail
- rx156_cur."!mark_push"(0, -1, 0, $P10)
+ rx155_cur."!cursor_pos"(rx155_pos)
+ $P10 = rx155_cur."quantified_atom"()
+ unless $P10, rx155_fail
+ rx155_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quantified_atom")
- rx156_pos = $P10."pos"()
- alt165_end:
-.annotate 'line', 56
+ rx155_pos = $P10."pos"()
+ alt164_end:
+.annotate 'line', 58
# rx pass
- rx156_cur."!cursor_pass"(rx156_pos, "quantifier:sym<**>")
- rx156_cur."!cursor_debug"("PASS ", "quantifier:sym<**>", " at pos=", rx156_pos)
- .return (rx156_cur)
- rx156_fail:
+ 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
- (rx156_rep, rx156_pos, $I10, $P10) = rx156_cur."!mark_fail"(0)
- lt rx156_pos, -1, rx156_done
- eq rx156_pos, -1, rx156_fail
+ 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
- rx156_done:
- rx156_cur."!cursor_fail"()
- rx156_cur."!cursor_debug"("FAIL ", "quantifier:sym<**>")
- .return (rx156_cur)
+ rx155_done:
+ rx155_cur."!cursor_fail"()
+ rx155_cur."!cursor_debug"("FAIL ", "quantifier:sym<**>")
+ .return (rx155_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<**>" :subid("43_1275811476.7961") :method
+.sub "!PREFIX__quantifier:sym<**>" :subid("45_1280467470.54449") :method
.annotate 'line', 3
- new $P158, "ResizablePMCArray"
- push $P158, "**"
- .return ($P158)
+ new $P157, "ResizablePMCArray"
+ push $P157, "**"
+ .return ($P157)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backmod" :subid("44_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backmod" :subid("46_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .const 'Sub' $P180 = "46_1275811476.7961"
- capture_lex $P180
- .local string rx172_tgt
- .local int rx172_pos
- .local int rx172_off
- .local int rx172_eos
- .local int rx172_rep
- .local pmc rx172_cur
- (rx172_cur, rx172_pos, rx172_tgt) = self."!cursor_start"()
- rx172_cur."!cursor_debug"("START ", "backmod")
- .lex unicode:"$\x{a2}", rx172_cur
+ .const 'Sub' $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 rx172_eos, rx172_tgt
- gt rx172_pos, rx172_eos, rx172_done
- set rx172_off, 0
- lt rx172_pos, 2, rx172_start
- sub rx172_off, rx172_pos, 1
- substr rx172_tgt, rx172_tgt, rx172_off
- rx172_start:
+ length 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, rxscan175_done
- goto rxscan175_scan
- rxscan175_loop:
- ($P10) = rx172_cur."from"()
+ ne $I10, -1, rxscan173_done
+ goto rxscan173_scan
+ rxscan173_loop:
+ ($P10) = rx170_cur."from"()
inc $P10
- set rx172_pos, $P10
- ge rx172_pos, rx172_eos, rxscan175_done
- rxscan175_scan:
- set_addr $I10, rxscan175_loop
- rx172_cur."!mark_push"(0, rx172_pos, $I10)
- rxscan175_done:
-.annotate 'line', 71
- # rx rxquantr176 ** 0..1
- set_addr $I177, rxquantr176_done
- rx172_cur."!mark_push"(0, rx172_pos, $I177)
- rxquantr176_loop:
+ set 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:
# rx literal ":"
- add $I11, rx172_pos, 1
- gt $I11, rx172_eos, rx172_fail
- sub $I11, rx172_pos, rx172_off
- substr $S10, rx172_tgt, $I11, 1
- ne $S10, ":", rx172_fail
- add rx172_pos, 1
- (rx172_rep) = rx172_cur."!mark_commit"($I177)
- rxquantr176_done:
- alt178_0:
- set_addr $I10, alt178_1
- rx172_cur."!mark_push"(0, rx172_pos, $I10)
+ add $I11, 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)
# rx literal "?"
- add $I11, rx172_pos, 1
- gt $I11, rx172_eos, rx172_fail
- sub $I11, rx172_pos, rx172_off
- substr $S10, rx172_tgt, $I11, 1
- ne $S10, "?", rx172_fail
- add rx172_pos, 1
- goto alt178_end
- alt178_1:
- set_addr $I10, alt178_2
- rx172_cur."!mark_push"(0, rx172_pos, $I10)
+ add $I11, 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)
# rx literal "!"
- add $I11, rx172_pos, 1
- gt $I11, rx172_eos, rx172_fail
- sub $I11, rx172_pos, rx172_off
- substr $S10, rx172_tgt, $I11, 1
- ne $S10, "!", rx172_fail
- add rx172_pos, 1
- goto alt178_end
- alt178_2:
+ add $I11, 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:
# rx subrule "before" subtype=zerowidth negate=1
- rx172_cur."!cursor_pos"(rx172_pos)
- .const 'Sub' $P180 = "46_1275811476.7961"
- capture_lex $P180
- $P10 = rx172_cur."before"($P180)
- if $P10, rx172_fail
- alt178_end:
+ 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
- rx172_cur."!cursor_pass"(rx172_pos, "backmod")
- rx172_cur."!cursor_debug"("PASS ", "backmod", " at pos=", rx172_pos)
- .return (rx172_cur)
- rx172_fail:
+ 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
- (rx172_rep, rx172_pos, $I10, $P10) = rx172_cur."!mark_fail"(0)
- lt rx172_pos, -1, rx172_done
- eq rx172_pos, -1, rx172_fail
+ 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
- rx172_done:
- rx172_cur."!cursor_fail"()
- rx172_cur."!cursor_debug"("FAIL ", "backmod")
- .return (rx172_cur)
+ rx170_done:
+ rx170_cur."!cursor_fail"()
+ rx170_cur."!cursor_debug"("FAIL ", "backmod")
+ .return (rx170_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backmod" :subid("45_1275811476.7961") :method
+.sub "!PREFIX__backmod" :subid("47_1280467470.54449") :method
.annotate 'line', 3
- new $P174, "ResizablePMCArray"
- push $P174, ""
- .return ($P174)
+ new $P172, "ResizablePMCArray"
+ push $P172, ""
+ .return ($P172)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block179" :anon :subid("46_1275811476.7961") :method :outer("44_1275811476.7961")
-.annotate 'line', 71
- .local string rx181_tgt
- .local int rx181_pos
- .local int rx181_off
- .local int rx181_eos
- .local int rx181_rep
- .local pmc rx181_cur
- (rx181_cur, rx181_pos, rx181_tgt) = self."!cursor_start"()
- rx181_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx181_cur
- .local pmc match
- .lex "$/", match
- length rx181_eos, rx181_tgt
- gt rx181_pos, rx181_eos, rx181_done
- set rx181_off, 0
- lt rx181_pos, 2, rx181_start
- sub rx181_off, rx181_pos, 1
- substr rx181_tgt, rx181_tgt, rx181_off
- rx181_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan182_done
- goto rxscan182_scan
- rxscan182_loop:
- ($P10) = rx181_cur."from"()
- inc $P10
- set rx181_pos, $P10
- ge rx181_pos, rx181_eos, rxscan182_done
- rxscan182_scan:
- set_addr $I10, rxscan182_loop
- rx181_cur."!mark_push"(0, rx181_pos, $I10)
- rxscan182_done:
+.sub "_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:
# rx literal ":"
- add $I11, rx181_pos, 1
- gt $I11, rx181_eos, rx181_fail
- sub $I11, rx181_pos, rx181_off
- substr $S10, rx181_tgt, $I11, 1
- ne $S10, ":", rx181_fail
- add rx181_pos, 1
+ add $I11, 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
- rx181_cur."!cursor_pass"(rx181_pos, "")
- rx181_cur."!cursor_debug"("PASS ", "", " at pos=", rx181_pos)
- .return (rx181_cur)
- rx181_fail:
- (rx181_rep, rx181_pos, $I10, $P10) = rx181_cur."!mark_fail"(0)
- lt rx181_pos, -1, rx181_done
- eq rx181_pos, -1, rx181_fail
+ 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
- rx181_done:
- rx181_cur."!cursor_fail"()
- rx181_cur."!cursor_debug"("FAIL ", "")
- .return (rx181_cur)
+ rx178_done:
+ rx178_cur."!cursor_fail"()
+ rx178_cur."!cursor_debug"("FAIL ", "")
+ .return (rx178_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar" :subid("47_1275811476.7961") :method
-.annotate 'line', 73
- $P184 = self."!protoregex"("metachar")
- .return ($P184)
+.sub "metachar" :subid("49_1280467470.54449") :method
+.annotate 'line', 75
+ $P181 = self."!protoregex"("metachar")
+ .return ($P181)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar" :subid("48_1275811476.7961") :method
-.annotate 'line', 73
- $P186 = self."!PREFIX__!protoregex"("metachar")
- .return ($P186)
+.sub "!PREFIX__metachar" :subid("50_1280467470.54449") :method
+.annotate 'line', 75
+ $P183 = self."!PREFIX__!protoregex"("metachar")
+ .return ($P183)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<ws>" :subid("49_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<ws>" :subid("51_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx188_tgt
- .local int rx188_pos
- .local int rx188_off
- .local int rx188_eos
- .local int rx188_rep
- .local pmc rx188_cur
- (rx188_cur, rx188_pos, rx188_tgt) = self."!cursor_start"()
- rx188_cur."!cursor_debug"("START ", "metachar:sym<ws>")
- .lex unicode:"$\x{a2}", rx188_cur
- .local pmc match
- .lex "$/", match
- length rx188_eos, rx188_tgt
- gt rx188_pos, rx188_eos, rx188_done
- set rx188_off, 0
- lt rx188_pos, 2, rx188_start
- sub rx188_off, rx188_pos, 1
- substr rx188_tgt, rx188_tgt, rx188_off
- rx188_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan192_done
- goto rxscan192_scan
- rxscan192_loop:
- ($P10) = rx188_cur."from"()
- inc $P10
- set rx188_pos, $P10
- ge rx188_pos, rx188_eos, rxscan192_done
- rxscan192_scan:
- set_addr $I10, rxscan192_loop
- rx188_cur."!mark_push"(0, rx188_pos, $I10)
- rxscan192_done:
-.annotate 'line', 74
+ .local string 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
# rx subrule "normspace" subtype=method negate=
- rx188_cur."!cursor_pos"(rx188_pos)
- $P10 = rx188_cur."normspace"()
- unless $P10, rx188_fail
- rx188_pos = $P10."pos"()
+ rx185_cur."!cursor_pos"(rx185_pos)
+ $P10 = rx185_cur."normspace"()
+ unless $P10, rx185_fail
+ rx185_pos = $P10."pos"()
# rx pass
- rx188_cur."!cursor_pass"(rx188_pos, "metachar:sym<ws>")
- rx188_cur."!cursor_debug"("PASS ", "metachar:sym<ws>", " at pos=", rx188_pos)
- .return (rx188_cur)
- rx188_fail:
+ 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
- (rx188_rep, rx188_pos, $I10, $P10) = rx188_cur."!mark_fail"(0)
- lt rx188_pos, -1, rx188_done
- eq rx188_pos, -1, rx188_fail
+ 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
- rx188_done:
- rx188_cur."!cursor_fail"()
- rx188_cur."!cursor_debug"("FAIL ", "metachar:sym<ws>")
- .return (rx188_cur)
+ rx185_done:
+ rx185_cur."!cursor_fail"()
+ rx185_cur."!cursor_debug"("FAIL ", "metachar:sym<ws>")
+ .return (rx185_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<ws>" :subid("50_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<ws>" :subid("52_1280467470.54449") :method
.annotate 'line', 3
- $P190 = self."!PREFIX__!subrule"("normspace", "")
- new $P191, "ResizablePMCArray"
- push $P191, $P190
- .return ($P191)
+ $P187 = self."!PREFIX__!subrule"("normspace", "")
+ new $P188, "ResizablePMCArray"
+ push $P188, $P187
+ .return ($P188)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<[ ]>" :subid("51_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<[ ]>" :subid("53_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx194_tgt
- .local int rx194_pos
- .local int rx194_off
- .local int rx194_eos
- .local int rx194_rep
- .local pmc rx194_cur
- (rx194_cur, rx194_pos, rx194_tgt) = self."!cursor_start"()
- rx194_cur."!cursor_debug"("START ", "metachar:sym<[ ]>")
- .lex unicode:"$\x{a2}", rx194_cur
+ .local string 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 rx194_eos, rx194_tgt
- gt rx194_pos, rx194_eos, rx194_done
- set rx194_off, 0
- lt rx194_pos, 2, rx194_start
- sub rx194_off, rx194_pos, 1
- substr rx194_tgt, rx194_tgt, rx194_off
- rx194_start:
+ length 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, rxscan198_done
- goto rxscan198_scan
- rxscan198_loop:
- ($P10) = rx194_cur."from"()
+ ne $I10, -1, rxscan195_done
+ goto rxscan195_scan
+ rxscan195_loop:
+ ($P10) = rx191_cur."from"()
inc $P10
- set rx194_pos, $P10
- ge rx194_pos, rx194_eos, rxscan198_done
- rxscan198_scan:
- set_addr $I10, rxscan198_loop
- rx194_cur."!mark_push"(0, rx194_pos, $I10)
- rxscan198_done:
-.annotate 'line', 75
+ set 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
# rx literal "["
- add $I11, rx194_pos, 1
- gt $I11, rx194_eos, rx194_fail
- sub $I11, rx194_pos, rx194_off
- substr $S10, rx194_tgt, $I11, 1
- ne $S10, "[", rx194_fail
- add rx194_pos, 1
+ add $I11, 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 subrule "nibbler" subtype=capture negate=
- rx194_cur."!cursor_pos"(rx194_pos)
- $P10 = rx194_cur."nibbler"()
- unless $P10, rx194_fail
- rx194_cur."!mark_push"(0, -1, 0, $P10)
+ rx191_cur."!cursor_pos"(rx191_pos)
+ $P10 = rx191_cur."nibbler"()
+ unless $P10, rx191_fail
+ rx191_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("nibbler")
- rx194_pos = $P10."pos"()
+ rx191_pos = $P10."pos"()
# rx literal "]"
- add $I11, rx194_pos, 1
- gt $I11, rx194_eos, rx194_fail
- sub $I11, rx194_pos, rx194_off
- substr $S10, rx194_tgt, $I11, 1
- ne $S10, "]", rx194_fail
- add rx194_pos, 1
+ add $I11, 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
- rx194_cur."!cursor_pass"(rx194_pos, "metachar:sym<[ ]>")
- rx194_cur."!cursor_debug"("PASS ", "metachar:sym<[ ]>", " at pos=", rx194_pos)
- .return (rx194_cur)
- rx194_fail:
+ 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
- (rx194_rep, rx194_pos, $I10, $P10) = rx194_cur."!mark_fail"(0)
- lt rx194_pos, -1, rx194_done
- eq rx194_pos, -1, rx194_fail
+ 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
- rx194_done:
- rx194_cur."!cursor_fail"()
- rx194_cur."!cursor_debug"("FAIL ", "metachar:sym<[ ]>")
- .return (rx194_cur)
+ rx191_done:
+ rx191_cur."!cursor_fail"()
+ rx191_cur."!cursor_debug"("FAIL ", "metachar:sym<[ ]>")
+ .return (rx191_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<[ ]>" :subid("52_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<[ ]>" :subid("54_1280467470.54449") :method
.annotate 'line', 3
- $P196 = self."!PREFIX__!subrule"("nibbler", "[")
- new $P197, "ResizablePMCArray"
- push $P197, $P196
- .return ($P197)
+ $P193 = self."!PREFIX__!subrule"("nibbler", "[")
+ new $P194, "ResizablePMCArray"
+ push $P194, $P193
+ .return ($P194)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<( )>" :subid("53_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<( )>" :subid("55_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx200_tgt
- .local int rx200_pos
- .local int rx200_off
- .local int rx200_eos
- .local int rx200_rep
- .local pmc rx200_cur
- (rx200_cur, rx200_pos, rx200_tgt) = self."!cursor_start"()
- rx200_cur."!cursor_debug"("START ", "metachar:sym<( )>")
- .lex unicode:"$\x{a2}", rx200_cur
+ .local 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 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:
+ 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, rxscan204_done
- goto rxscan204_scan
- rxscan204_loop:
- ($P10) = rx200_cur."from"()
+ ne $I10, -1, rxscan201_done
+ goto rxscan201_scan
+ rxscan201_loop:
+ ($P10) = rx197_cur."from"()
inc $P10
- set rx200_pos, $P10
- ge rx200_pos, rx200_eos, rxscan204_done
- rxscan204_scan:
- set_addr $I10, rxscan204_loop
- rx200_cur."!mark_push"(0, rx200_pos, $I10)
- rxscan204_done:
-.annotate 'line', 76
+ 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
# rx literal "("
- add $I11, rx200_pos, 1
- gt $I11, rx200_eos, rx200_fail
- sub $I11, rx200_pos, rx200_off
- substr $S10, rx200_tgt, $I11, 1
- ne $S10, "(", rx200_fail
- add rx200_pos, 1
+ add $I11, 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 subrule "nibbler" subtype=capture negate=
- rx200_cur."!cursor_pos"(rx200_pos)
- $P10 = rx200_cur."nibbler"()
- unless $P10, rx200_fail
- rx200_cur."!mark_push"(0, -1, 0, $P10)
+ rx197_cur."!cursor_pos"(rx197_pos)
+ $P10 = rx197_cur."nibbler"()
+ unless $P10, rx197_fail
+ rx197_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("nibbler")
- rx200_pos = $P10."pos"()
+ rx197_pos = $P10."pos"()
# rx literal ")"
- add $I11, rx200_pos, 1
- gt $I11, rx200_eos, rx200_fail
- sub $I11, rx200_pos, rx200_off
- substr $S10, rx200_tgt, $I11, 1
- ne $S10, ")", rx200_fail
- add rx200_pos, 1
+ add $I11, 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
- rx200_cur."!cursor_pass"(rx200_pos, "metachar:sym<( )>")
- rx200_cur."!cursor_debug"("PASS ", "metachar:sym<( )>", " at pos=", rx200_pos)
- .return (rx200_cur)
- rx200_fail:
+ 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
- (rx200_rep, rx200_pos, $I10, $P10) = rx200_cur."!mark_fail"(0)
- lt rx200_pos, -1, rx200_done
- eq rx200_pos, -1, rx200_fail
+ 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
- rx200_done:
- rx200_cur."!cursor_fail"()
- rx200_cur."!cursor_debug"("FAIL ", "metachar:sym<( )>")
- .return (rx200_cur)
+ rx197_done:
+ rx197_cur."!cursor_fail"()
+ rx197_cur."!cursor_debug"("FAIL ", "metachar:sym<( )>")
+ .return (rx197_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<( )>" :subid("54_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<( )>" :subid("56_1280467470.54449") :method
.annotate 'line', 3
- $P202 = self."!PREFIX__!subrule"("nibbler", "(")
- new $P203, "ResizablePMCArray"
- push $P203, $P202
- .return ($P203)
+ $P199 = self."!PREFIX__!subrule"("nibbler", "(")
+ new $P200, "ResizablePMCArray"
+ push $P200, $P199
+ .return ($P200)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<'>" :subid("55_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<'>" :subid("57_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx206_tgt
- .local int rx206_pos
- .local int rx206_off
- .local int rx206_eos
- .local int rx206_rep
- .local pmc rx206_cur
- (rx206_cur, rx206_pos, rx206_tgt) = self."!cursor_start"()
- rx206_cur."!cursor_debug"("START ", "metachar:sym<'>")
- .lex unicode:"$\x{a2}", rx206_cur
+ .local string 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 rx206_eos, rx206_tgt
- gt rx206_pos, rx206_eos, rx206_done
- set rx206_off, 0
- lt rx206_pos, 2, rx206_start
- sub rx206_off, rx206_pos, 1
- substr rx206_tgt, rx206_tgt, rx206_off
- rx206_start:
+ length 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, rxscan209_done
- goto rxscan209_scan
- rxscan209_loop:
- ($P10) = rx206_cur."from"()
+ ne $I10, -1, rxscan206_done
+ goto rxscan206_scan
+ rxscan206_loop:
+ ($P10) = rx203_cur."from"()
inc $P10
- set rx206_pos, $P10
- ge rx206_pos, rx206_eos, rxscan209_done
- rxscan209_scan:
- set_addr $I10, rxscan209_loop
- rx206_cur."!mark_push"(0, rx206_pos, $I10)
- rxscan209_done:
-.annotate 'line', 77
+ set 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
# rx enumcharlist negate=0 zerowidth
- ge rx206_pos, rx206_eos, rx206_fail
- sub $I10, rx206_pos, rx206_off
- substr $S10, rx206_tgt, $I10, 1
+ ge rx203_pos, rx203_eos, rx203_fail
+ sub $I10, rx203_pos, rx203_off
+ substr $S10, rx203_tgt, $I10, 1
index $I11, "'", $S10
- lt $I11, 0, rx206_fail
+ lt $I11, 0, rx203_fail
# rx subrule "quote_EXPR" subtype=capture negate=
- rx206_cur."!cursor_pos"(rx206_pos)
- $P10 = rx206_cur."quote_EXPR"(":q")
- unless $P10, rx206_fail
- rx206_cur."!mark_push"(0, -1, 0, $P10)
+ rx203_cur."!cursor_pos"(rx203_pos)
+ $P10 = rx203_cur."quote_EXPR"(":q")
+ unless $P10, rx203_fail
+ rx203_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx206_pos = $P10."pos"()
+ rx203_pos = $P10."pos"()
# rx pass
- rx206_cur."!cursor_pass"(rx206_pos, "metachar:sym<'>")
- rx206_cur."!cursor_debug"("PASS ", "metachar:sym<'>", " at pos=", rx206_pos)
- .return (rx206_cur)
- rx206_fail:
+ 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
- (rx206_rep, rx206_pos, $I10, $P10) = rx206_cur."!mark_fail"(0)
- lt rx206_pos, -1, rx206_done
- eq rx206_pos, -1, rx206_fail
+ 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
- rx206_done:
- rx206_cur."!cursor_fail"()
- rx206_cur."!cursor_debug"("FAIL ", "metachar:sym<'>")
- .return (rx206_cur)
+ rx203_done:
+ rx203_cur."!cursor_fail"()
+ rx203_cur."!cursor_debug"("FAIL ", "metachar:sym<'>")
+ .return (rx203_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<'>" :subid("56_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<'>" :subid("58_1280467470.54449") :method
.annotate 'line', 3
- new $P208, "ResizablePMCArray"
- push $P208, "'"
- .return ($P208)
+ new $P205, "ResizablePMCArray"
+ push $P205, "'"
+ .return ($P205)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<\">" :subid("57_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<\">" :subid("59_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx211_tgt
- .local int rx211_pos
- .local int rx211_off
- .local int rx211_eos
- .local int rx211_rep
- .local pmc rx211_cur
- (rx211_cur, rx211_pos, rx211_tgt) = self."!cursor_start"()
- rx211_cur."!cursor_debug"("START ", "metachar:sym<\">")
- .lex unicode:"$\x{a2}", rx211_cur
- .local pmc match
- .lex "$/", match
- length rx211_eos, rx211_tgt
- gt rx211_pos, rx211_eos, rx211_done
- set rx211_off, 0
- lt rx211_pos, 2, rx211_start
- sub rx211_off, rx211_pos, 1
- substr rx211_tgt, rx211_tgt, rx211_off
- rx211_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan214_done
- goto rxscan214_scan
- rxscan214_loop:
- ($P10) = rx211_cur."from"()
- inc $P10
- set rx211_pos, $P10
- ge rx211_pos, rx211_eos, rxscan214_done
- rxscan214_scan:
- set_addr $I10, rxscan214_loop
- rx211_cur."!mark_push"(0, rx211_pos, $I10)
- rxscan214_done:
-.annotate 'line', 78
+ .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
# rx enumcharlist negate=0 zerowidth
- ge rx211_pos, rx211_eos, rx211_fail
- sub $I10, rx211_pos, rx211_off
- substr $S10, rx211_tgt, $I10, 1
+ ge rx208_pos, rx208_eos, rx208_fail
+ sub $I10, rx208_pos, rx208_off
+ substr $S10, rx208_tgt, $I10, 1
index $I11, "\"", $S10
- lt $I11, 0, rx211_fail
+ lt $I11, 0, rx208_fail
# rx subrule "quote_EXPR" subtype=capture negate=
- rx211_cur."!cursor_pos"(rx211_pos)
- $P10 = rx211_cur."quote_EXPR"(":qq")
- unless $P10, rx211_fail
- rx211_cur."!mark_push"(0, -1, 0, $P10)
+ rx208_cur."!cursor_pos"(rx208_pos)
+ $P10 = rx208_cur."quote_EXPR"(":qq")
+ unless $P10, rx208_fail
+ rx208_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx211_pos = $P10."pos"()
+ rx208_pos = $P10."pos"()
# rx pass
- rx211_cur."!cursor_pass"(rx211_pos, "metachar:sym<\">")
- rx211_cur."!cursor_debug"("PASS ", "metachar:sym<\">", " at pos=", rx211_pos)
- .return (rx211_cur)
- rx211_fail:
+ 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
- (rx211_rep, rx211_pos, $I10, $P10) = rx211_cur."!mark_fail"(0)
- lt rx211_pos, -1, rx211_done
- eq rx211_pos, -1, rx211_fail
+ 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
- rx211_done:
- rx211_cur."!cursor_fail"()
- rx211_cur."!cursor_debug"("FAIL ", "metachar:sym<\">")
- .return (rx211_cur)
+ rx208_done:
+ rx208_cur."!cursor_fail"()
+ rx208_cur."!cursor_debug"("FAIL ", "metachar:sym<\">")
+ .return (rx208_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<\">" :subid("58_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<\">" :subid("60_1280467470.54449") :method
.annotate 'line', 3
- new $P213, "ResizablePMCArray"
- push $P213, "\""
- .return ($P213)
+ new $P210, "ResizablePMCArray"
+ push $P210, "\""
+ .return ($P210)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<.>" :subid("59_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<.>" :subid("61_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx216_tgt
- .local int rx216_pos
- .local int rx216_off
- .local int rx216_eos
- .local int rx216_rep
- .local pmc rx216_cur
- (rx216_cur, rx216_pos, rx216_tgt) = self."!cursor_start"()
- rx216_cur."!cursor_debug"("START ", "metachar:sym<.>")
- .lex unicode:"$\x{a2}", rx216_cur
+ .local string 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 rx216_eos, rx216_tgt
- gt rx216_pos, rx216_eos, rx216_done
- set rx216_off, 0
- lt rx216_pos, 2, rx216_start
- sub rx216_off, rx216_pos, 1
- substr rx216_tgt, rx216_tgt, rx216_off
- rx216_start:
+ length 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, rxscan219_done
- goto rxscan219_scan
- rxscan219_loop:
- ($P10) = rx216_cur."from"()
+ ne $I10, -1, rxscan216_done
+ goto rxscan216_scan
+ rxscan216_loop:
+ ($P10) = rx213_cur."from"()
inc $P10
- set rx216_pos, $P10
- ge rx216_pos, rx216_eos, rxscan219_done
- rxscan219_scan:
- set_addr $I10, rxscan219_loop
- rx216_cur."!mark_push"(0, rx216_pos, $I10)
- rxscan219_done:
-.annotate 'line', 79
+ set 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
# rx subcapture "sym"
- set_addr $I10, rxcap_220_fail
- rx216_cur."!mark_push"(0, rx216_pos, $I10)
+ set_addr $I10, rxcap_217_fail
+ rx213_cur."!mark_push"(0, rx213_pos, $I10)
# rx literal "."
- add $I11, rx216_pos, 1
- gt $I11, rx216_eos, rx216_fail
- sub $I11, rx216_pos, rx216_off
- substr $S10, rx216_tgt, $I11, 1
- ne $S10, ".", rx216_fail
- add rx216_pos, 1
- set_addr $I10, rxcap_220_fail
- ($I12, $I11) = rx216_cur."!mark_peek"($I10)
- rx216_cur."!cursor_pos"($I11)
- ($P10) = rx216_cur."!cursor_start"()
- $P10."!cursor_pass"(rx216_pos, "")
- rx216_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, 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)
$P10."!cursor_names"("sym")
- goto rxcap_220_done
- rxcap_220_fail:
- goto rx216_fail
- rxcap_220_done:
+ goto rxcap_217_done
+ rxcap_217_fail:
+ goto rx213_fail
+ rxcap_217_done:
# rx pass
- rx216_cur."!cursor_pass"(rx216_pos, "metachar:sym<.>")
- rx216_cur."!cursor_debug"("PASS ", "metachar:sym<.>", " at pos=", rx216_pos)
- .return (rx216_cur)
- rx216_fail:
+ 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
- (rx216_rep, rx216_pos, $I10, $P10) = rx216_cur."!mark_fail"(0)
- lt rx216_pos, -1, rx216_done
- eq rx216_pos, -1, rx216_fail
+ 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
- rx216_done:
- rx216_cur."!cursor_fail"()
- rx216_cur."!cursor_debug"("FAIL ", "metachar:sym<.>")
- .return (rx216_cur)
+ rx213_done:
+ rx213_cur."!cursor_fail"()
+ rx213_cur."!cursor_debug"("FAIL ", "metachar:sym<.>")
+ .return (rx213_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<.>" :subid("60_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<.>" :subid("62_1280467470.54449") :method
.annotate 'line', 3
- new $P218, "ResizablePMCArray"
- push $P218, "."
- .return ($P218)
+ new $P215, "ResizablePMCArray"
+ push $P215, "."
+ .return ($P215)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^>" :subid("61_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<^>" :subid("63_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx222_tgt
- .local int rx222_pos
- .local int rx222_off
- .local int rx222_eos
- .local int rx222_rep
- .local pmc rx222_cur
- (rx222_cur, rx222_pos, rx222_tgt) = self."!cursor_start"()
- rx222_cur."!cursor_debug"("START ", "metachar:sym<^>")
- .lex unicode:"$\x{a2}", rx222_cur
+ .local string 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 rx222_eos, rx222_tgt
- gt rx222_pos, rx222_eos, rx222_done
- set rx222_off, 0
- lt rx222_pos, 2, rx222_start
- sub rx222_off, rx222_pos, 1
- substr rx222_tgt, rx222_tgt, rx222_off
- rx222_start:
+ length 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, rxscan225_done
- goto rxscan225_scan
- rxscan225_loop:
- ($P10) = rx222_cur."from"()
+ ne $I10, -1, rxscan222_done
+ goto rxscan222_scan
+ rxscan222_loop:
+ ($P10) = rx219_cur."from"()
inc $P10
- set rx222_pos, $P10
- ge rx222_pos, rx222_eos, rxscan225_done
- rxscan225_scan:
- set_addr $I10, rxscan225_loop
- rx222_cur."!mark_push"(0, rx222_pos, $I10)
- rxscan225_done:
-.annotate 'line', 80
+ set 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
# rx subcapture "sym"
- set_addr $I10, rxcap_226_fail
- rx222_cur."!mark_push"(0, rx222_pos, $I10)
+ set_addr $I10, rxcap_223_fail
+ rx219_cur."!mark_push"(0, rx219_pos, $I10)
# rx literal "^"
- add $I11, rx222_pos, 1
- gt $I11, rx222_eos, rx222_fail
- sub $I11, rx222_pos, rx222_off
- substr $S10, rx222_tgt, $I11, 1
- ne $S10, "^", rx222_fail
- add rx222_pos, 1
- set_addr $I10, rxcap_226_fail
- ($I12, $I11) = rx222_cur."!mark_peek"($I10)
- rx222_cur."!cursor_pos"($I11)
- ($P10) = rx222_cur."!cursor_start"()
- $P10."!cursor_pass"(rx222_pos, "")
- rx222_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, 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)
$P10."!cursor_names"("sym")
- goto rxcap_226_done
- rxcap_226_fail:
- goto rx222_fail
- rxcap_226_done:
+ goto rxcap_223_done
+ rxcap_223_fail:
+ goto rx219_fail
+ rxcap_223_done:
# rx pass
- rx222_cur."!cursor_pass"(rx222_pos, "metachar:sym<^>")
- rx222_cur."!cursor_debug"("PASS ", "metachar:sym<^>", " at pos=", rx222_pos)
- .return (rx222_cur)
- rx222_fail:
+ 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
- (rx222_rep, rx222_pos, $I10, $P10) = rx222_cur."!mark_fail"(0)
- lt rx222_pos, -1, rx222_done
- eq rx222_pos, -1, rx222_fail
+ 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
- rx222_done:
- rx222_cur."!cursor_fail"()
- rx222_cur."!cursor_debug"("FAIL ", "metachar:sym<^>")
- .return (rx222_cur)
+ rx219_done:
+ rx219_cur."!cursor_fail"()
+ rx219_cur."!cursor_debug"("FAIL ", "metachar:sym<^>")
+ .return (rx219_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^>" :subid("62_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<^>" :subid("64_1280467470.54449") :method
.annotate 'line', 3
- new $P224, "ResizablePMCArray"
- push $P224, "^"
- .return ($P224)
+ new $P221, "ResizablePMCArray"
+ push $P221, "^"
+ .return ($P221)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^^>" :subid("63_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<^^>" :subid("65_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx228_tgt
- .local int rx228_pos
- .local int rx228_off
- .local int rx228_eos
- .local int rx228_rep
- .local pmc rx228_cur
- (rx228_cur, rx228_pos, rx228_tgt) = self."!cursor_start"()
- rx228_cur."!cursor_debug"("START ", "metachar:sym<^^>")
- .lex unicode:"$\x{a2}", rx228_cur
+ .local string 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 rx228_eos, rx228_tgt
- gt rx228_pos, rx228_eos, rx228_done
- set rx228_off, 0
- lt rx228_pos, 2, rx228_start
- sub rx228_off, rx228_pos, 1
- substr rx228_tgt, rx228_tgt, rx228_off
- rx228_start:
+ length 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, rxscan231_done
- goto rxscan231_scan
- rxscan231_loop:
- ($P10) = rx228_cur."from"()
+ ne $I10, -1, rxscan228_done
+ goto rxscan228_scan
+ rxscan228_loop:
+ ($P10) = rx225_cur."from"()
inc $P10
- set rx228_pos, $P10
- ge rx228_pos, rx228_eos, rxscan231_done
- rxscan231_scan:
- set_addr $I10, rxscan231_loop
- rx228_cur."!mark_push"(0, rx228_pos, $I10)
- rxscan231_done:
-.annotate 'line', 81
+ set 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
# rx subcapture "sym"
- set_addr $I10, rxcap_232_fail
- rx228_cur."!mark_push"(0, rx228_pos, $I10)
+ set_addr $I10, rxcap_229_fail
+ rx225_cur."!mark_push"(0, rx225_pos, $I10)
# rx literal "^^"
- add $I11, rx228_pos, 2
- gt $I11, rx228_eos, rx228_fail
- sub $I11, rx228_pos, rx228_off
- substr $S10, rx228_tgt, $I11, 2
- ne $S10, "^^", rx228_fail
- add rx228_pos, 2
- set_addr $I10, rxcap_232_fail
- ($I12, $I11) = rx228_cur."!mark_peek"($I10)
- rx228_cur."!cursor_pos"($I11)
- ($P10) = rx228_cur."!cursor_start"()
- $P10."!cursor_pass"(rx228_pos, "")
- rx228_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, 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)
$P10."!cursor_names"("sym")
- goto rxcap_232_done
- rxcap_232_fail:
- goto rx228_fail
- rxcap_232_done:
+ goto rxcap_229_done
+ rxcap_229_fail:
+ goto rx225_fail
+ rxcap_229_done:
# rx pass
- rx228_cur."!cursor_pass"(rx228_pos, "metachar:sym<^^>")
- rx228_cur."!cursor_debug"("PASS ", "metachar:sym<^^>", " at pos=", rx228_pos)
- .return (rx228_cur)
- rx228_fail:
+ 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
- (rx228_rep, rx228_pos, $I10, $P10) = rx228_cur."!mark_fail"(0)
- lt rx228_pos, -1, rx228_done
- eq rx228_pos, -1, rx228_fail
+ 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
- rx228_done:
- rx228_cur."!cursor_fail"()
- rx228_cur."!cursor_debug"("FAIL ", "metachar:sym<^^>")
- .return (rx228_cur)
+ rx225_done:
+ rx225_cur."!cursor_fail"()
+ rx225_cur."!cursor_debug"("FAIL ", "metachar:sym<^^>")
+ .return (rx225_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^^>" :subid("64_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<^^>" :subid("66_1280467470.54449") :method
.annotate 'line', 3
- new $P230, "ResizablePMCArray"
- push $P230, "^^"
- .return ($P230)
+ new $P227, "ResizablePMCArray"
+ push $P227, "^^"
+ .return ($P227)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$>" :subid("65_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<$>" :subid("67_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx234_tgt
- .local int rx234_pos
- .local int rx234_off
- .local int rx234_eos
- .local int rx234_rep
- .local pmc rx234_cur
- (rx234_cur, rx234_pos, rx234_tgt) = self."!cursor_start"()
- rx234_cur."!cursor_debug"("START ", "metachar:sym<$>")
- .lex unicode:"$\x{a2}", rx234_cur
+ .local string 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 rx234_eos, rx234_tgt
- gt rx234_pos, rx234_eos, rx234_done
- set rx234_off, 0
- lt rx234_pos, 2, rx234_start
- sub rx234_off, rx234_pos, 1
- substr rx234_tgt, rx234_tgt, rx234_off
- rx234_start:
+ length 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, rxscan237_done
- goto rxscan237_scan
- rxscan237_loop:
- ($P10) = rx234_cur."from"()
+ ne $I10, -1, rxscan234_done
+ goto rxscan234_scan
+ rxscan234_loop:
+ ($P10) = rx231_cur."from"()
inc $P10
- set rx234_pos, $P10
- ge rx234_pos, rx234_eos, rxscan237_done
- rxscan237_scan:
- set_addr $I10, rxscan237_loop
- rx234_cur."!mark_push"(0, rx234_pos, $I10)
- rxscan237_done:
-.annotate 'line', 82
+ set 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
# rx subcapture "sym"
- set_addr $I10, rxcap_238_fail
- rx234_cur."!mark_push"(0, rx234_pos, $I10)
+ set_addr $I10, rxcap_235_fail
+ rx231_cur."!mark_push"(0, rx231_pos, $I10)
# rx literal "$"
- add $I11, rx234_pos, 1
- gt $I11, rx234_eos, rx234_fail
- sub $I11, rx234_pos, rx234_off
- substr $S10, rx234_tgt, $I11, 1
- ne $S10, "$", rx234_fail
- add rx234_pos, 1
- set_addr $I10, rxcap_238_fail
- ($I12, $I11) = rx234_cur."!mark_peek"($I10)
- rx234_cur."!cursor_pos"($I11)
- ($P10) = rx234_cur."!cursor_start"()
- $P10."!cursor_pass"(rx234_pos, "")
- rx234_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, 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)
$P10."!cursor_names"("sym")
- goto rxcap_238_done
- rxcap_238_fail:
- goto rx234_fail
- rxcap_238_done:
+ goto rxcap_235_done
+ rxcap_235_fail:
+ goto rx231_fail
+ rxcap_235_done:
# rx pass
- rx234_cur."!cursor_pass"(rx234_pos, "metachar:sym<$>")
- rx234_cur."!cursor_debug"("PASS ", "metachar:sym<$>", " at pos=", rx234_pos)
- .return (rx234_cur)
- rx234_fail:
+ 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
- (rx234_rep, rx234_pos, $I10, $P10) = rx234_cur."!mark_fail"(0)
- lt rx234_pos, -1, rx234_done
- eq rx234_pos, -1, rx234_fail
+ 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
- rx234_done:
- rx234_cur."!cursor_fail"()
- rx234_cur."!cursor_debug"("FAIL ", "metachar:sym<$>")
- .return (rx234_cur)
+ rx231_done:
+ rx231_cur."!cursor_fail"()
+ rx231_cur."!cursor_debug"("FAIL ", "metachar:sym<$>")
+ .return (rx231_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$>" :subid("66_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<$>" :subid("68_1280467470.54449") :method
.annotate 'line', 3
- new $P236, "ResizablePMCArray"
- push $P236, "$"
- .return ($P236)
+ new $P233, "ResizablePMCArray"
+ push $P233, "$"
+ .return ($P233)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$$>" :subid("67_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<$$>" :subid("69_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx240_tgt
- .local int rx240_pos
- .local int rx240_off
- .local int rx240_eos
- .local int rx240_rep
- .local pmc rx240_cur
- (rx240_cur, rx240_pos, rx240_tgt) = self."!cursor_start"()
- rx240_cur."!cursor_debug"("START ", "metachar:sym<$$>")
- .lex unicode:"$\x{a2}", rx240_cur
+ .local string 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 rx240_eos, rx240_tgt
- gt rx240_pos, rx240_eos, rx240_done
- set rx240_off, 0
- lt rx240_pos, 2, rx240_start
- sub rx240_off, rx240_pos, 1
- substr rx240_tgt, rx240_tgt, rx240_off
- rx240_start:
+ length 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, rxscan243_done
- goto rxscan243_scan
- rxscan243_loop:
- ($P10) = rx240_cur."from"()
+ ne $I10, -1, rxscan240_done
+ goto rxscan240_scan
+ rxscan240_loop:
+ ($P10) = rx237_cur."from"()
inc $P10
- set rx240_pos, $P10
- ge rx240_pos, rx240_eos, rxscan243_done
- rxscan243_scan:
- set_addr $I10, rxscan243_loop
- rx240_cur."!mark_push"(0, rx240_pos, $I10)
- rxscan243_done:
-.annotate 'line', 83
+ set 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
# rx subcapture "sym"
- set_addr $I10, rxcap_244_fail
- rx240_cur."!mark_push"(0, rx240_pos, $I10)
+ set_addr $I10, rxcap_241_fail
+ rx237_cur."!mark_push"(0, rx237_pos, $I10)
# rx literal "$$"
- add $I11, rx240_pos, 2
- gt $I11, rx240_eos, rx240_fail
- sub $I11, rx240_pos, rx240_off
- substr $S10, rx240_tgt, $I11, 2
- ne $S10, "$$", rx240_fail
- add rx240_pos, 2
- set_addr $I10, rxcap_244_fail
- ($I12, $I11) = rx240_cur."!mark_peek"($I10)
- rx240_cur."!cursor_pos"($I11)
- ($P10) = rx240_cur."!cursor_start"()
- $P10."!cursor_pass"(rx240_pos, "")
- rx240_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, 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)
$P10."!cursor_names"("sym")
- goto rxcap_244_done
- rxcap_244_fail:
- goto rx240_fail
- rxcap_244_done:
+ goto rxcap_241_done
+ rxcap_241_fail:
+ goto rx237_fail
+ rxcap_241_done:
# rx pass
- rx240_cur."!cursor_pass"(rx240_pos, "metachar:sym<$$>")
- rx240_cur."!cursor_debug"("PASS ", "metachar:sym<$$>", " at pos=", rx240_pos)
- .return (rx240_cur)
- rx240_fail:
+ rx237_cur."!cursor_pass"(rx237_pos, "metachar:sym<$$>")
+ rx237_cur."!cursor_debug"("PASS ", "metachar:sym<$$>", " at pos=", rx237_pos)
+ .return (rx237_cur)
+ rx237_restart:
.annotate 'line', 3
- (rx240_rep, rx240_pos, $I10, $P10) = rx240_cur."!mark_fail"(0)
- lt rx240_pos, -1, rx240_done
- eq rx240_pos, -1, rx240_fail
+ 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
jump $I10
- rx240_done:
- rx240_cur."!cursor_fail"()
- rx240_cur."!cursor_debug"("FAIL ", "metachar:sym<$$>")
- .return (rx240_cur)
+ rx237_done:
+ rx237_cur."!cursor_fail"()
+ rx237_cur."!cursor_debug"("FAIL ", "metachar:sym<$$>")
+ .return (rx237_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$$>" :subid("68_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<$$>" :subid("70_1280467470.54449") :method
.annotate 'line', 3
- new $P242, "ResizablePMCArray"
- push $P242, "$$"
- .return ($P242)
+ new $P239, "ResizablePMCArray"
+ push $P239, "$$"
+ .return ($P239)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<:::>" :subid("69_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<:::>" :subid("71_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx246_tgt
- .local int rx246_pos
- .local int rx246_off
- .local int rx246_eos
- .local int rx246_rep
- .local pmc rx246_cur
- (rx246_cur, rx246_pos, rx246_tgt) = self."!cursor_start"()
- rx246_cur."!cursor_debug"("START ", "metachar:sym<:::>")
- .lex unicode:"$\x{a2}", rx246_cur
+ .local string 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 rx246_eos, rx246_tgt
- gt rx246_pos, rx246_eos, rx246_done
- set rx246_off, 0
- lt rx246_pos, 2, rx246_start
- sub rx246_off, rx246_pos, 1
- substr rx246_tgt, rx246_tgt, rx246_off
- rx246_start:
+ length 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, rxscan250_done
- goto rxscan250_scan
- rxscan250_loop:
- ($P10) = rx246_cur."from"()
+ ne $I10, -1, rxscan247_done
+ goto rxscan247_scan
+ rxscan247_loop:
+ ($P10) = rx243_cur."from"()
inc $P10
- set rx246_pos, $P10
- ge rx246_pos, rx246_eos, rxscan250_done
- rxscan250_scan:
- set_addr $I10, rxscan250_loop
- rx246_cur."!mark_push"(0, rx246_pos, $I10)
- rxscan250_done:
-.annotate 'line', 84
+ set 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
# rx subcapture "sym"
- set_addr $I10, rxcap_251_fail
- rx246_cur."!mark_push"(0, rx246_pos, $I10)
+ set_addr $I10, rxcap_248_fail
+ rx243_cur."!mark_push"(0, rx243_pos, $I10)
# rx literal ":::"
- add $I11, rx246_pos, 3
- gt $I11, rx246_eos, rx246_fail
- sub $I11, rx246_pos, rx246_off
- substr $S10, rx246_tgt, $I11, 3
- ne $S10, ":::", rx246_fail
- add rx246_pos, 3
- set_addr $I10, rxcap_251_fail
- ($I12, $I11) = rx246_cur."!mark_peek"($I10)
- rx246_cur."!cursor_pos"($I11)
- ($P10) = rx246_cur."!cursor_start"()
- $P10."!cursor_pass"(rx246_pos, "")
- rx246_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, 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)
$P10."!cursor_names"("sym")
- goto rxcap_251_done
- rxcap_251_fail:
- goto rx246_fail
- rxcap_251_done:
+ goto rxcap_248_done
+ rxcap_248_fail:
+ goto rx243_fail
+ rxcap_248_done:
# rx subrule "panic" subtype=method negate=
- rx246_cur."!cursor_pos"(rx246_pos)
- $P10 = rx246_cur."panic"("::: not yet implemented")
- unless $P10, rx246_fail
- rx246_pos = $P10."pos"()
+ rx243_cur."!cursor_pos"(rx243_pos)
+ $P10 = rx243_cur."panic"("::: not yet implemented")
+ unless $P10, rx243_fail
+ rx243_pos = $P10."pos"()
# rx pass
- rx246_cur."!cursor_pass"(rx246_pos, "metachar:sym<:::>")
- rx246_cur."!cursor_debug"("PASS ", "metachar:sym<:::>", " at pos=", rx246_pos)
- .return (rx246_cur)
- rx246_fail:
+ 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
- (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0)
- lt rx246_pos, -1, rx246_done
- eq rx246_pos, -1, rx246_fail
+ 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
- rx246_done:
- rx246_cur."!cursor_fail"()
- rx246_cur."!cursor_debug"("FAIL ", "metachar:sym<:::>")
- .return (rx246_cur)
+ rx243_done:
+ rx243_cur."!cursor_fail"()
+ rx243_cur."!cursor_debug"("FAIL ", "metachar:sym<:::>")
+ .return (rx243_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<:::>" :subid("70_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<:::>" :subid("72_1280467470.54449") :method
.annotate 'line', 3
- $P248 = self."!PREFIX__!subrule"("panic", ":::")
- new $P249, "ResizablePMCArray"
- push $P249, $P248
- .return ($P249)
+ $P245 = self."!PREFIX__!subrule"("panic", ":::")
+ new $P246, "ResizablePMCArray"
+ push $P246, $P245
+ .return ($P246)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<::>" :subid("71_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<::>" :subid("73_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx253_tgt
- .local int rx253_pos
- .local int rx253_off
- .local int rx253_eos
- .local int rx253_rep
- .local pmc rx253_cur
- (rx253_cur, rx253_pos, rx253_tgt) = self."!cursor_start"()
- rx253_cur."!cursor_debug"("START ", "metachar:sym<::>")
- .lex unicode:"$\x{a2}", rx253_cur
+ .local string 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 rx253_eos, rx253_tgt
- gt rx253_pos, rx253_eos, rx253_done
- set rx253_off, 0
- lt rx253_pos, 2, rx253_start
- sub rx253_off, rx253_pos, 1
- substr rx253_tgt, rx253_tgt, rx253_off
- rx253_start:
+ length 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, rxscan257_done
- goto rxscan257_scan
- rxscan257_loop:
- ($P10) = rx253_cur."from"()
+ ne $I10, -1, rxscan254_done
+ goto rxscan254_scan
+ rxscan254_loop:
+ ($P10) = rx250_cur."from"()
inc $P10
- set rx253_pos, $P10
- ge rx253_pos, rx253_eos, rxscan257_done
- rxscan257_scan:
- set_addr $I10, rxscan257_loop
- rx253_cur."!mark_push"(0, rx253_pos, $I10)
- rxscan257_done:
-.annotate 'line', 85
+ set 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
# rx subcapture "sym"
- set_addr $I10, rxcap_258_fail
- rx253_cur."!mark_push"(0, rx253_pos, $I10)
+ set_addr $I10, rxcap_255_fail
+ rx250_cur."!mark_push"(0, rx250_pos, $I10)
# rx literal "::"
- add $I11, rx253_pos, 2
- gt $I11, rx253_eos, rx253_fail
- sub $I11, rx253_pos, rx253_off
- substr $S10, rx253_tgt, $I11, 2
- ne $S10, "::", rx253_fail
- add rx253_pos, 2
- set_addr $I10, rxcap_258_fail
- ($I12, $I11) = rx253_cur."!mark_peek"($I10)
- rx253_cur."!cursor_pos"($I11)
- ($P10) = rx253_cur."!cursor_start"()
- $P10."!cursor_pass"(rx253_pos, "")
- rx253_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, 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)
$P10."!cursor_names"("sym")
- goto rxcap_258_done
- rxcap_258_fail:
- goto rx253_fail
- rxcap_258_done:
+ goto rxcap_255_done
+ rxcap_255_fail:
+ goto rx250_fail
+ rxcap_255_done:
# rx subrule "panic" subtype=method negate=
- rx253_cur."!cursor_pos"(rx253_pos)
- $P10 = rx253_cur."panic"(":: not yet implemented")
- unless $P10, rx253_fail
- rx253_pos = $P10."pos"()
+ rx250_cur."!cursor_pos"(rx250_pos)
+ $P10 = rx250_cur."panic"(":: not yet implemented")
+ unless $P10, rx250_fail
+ rx250_pos = $P10."pos"()
# rx pass
- rx253_cur."!cursor_pass"(rx253_pos, "metachar:sym<::>")
- rx253_cur."!cursor_debug"("PASS ", "metachar:sym<::>", " at pos=", rx253_pos)
- .return (rx253_cur)
- rx253_fail:
+ 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
- (rx253_rep, rx253_pos, $I10, $P10) = rx253_cur."!mark_fail"(0)
- lt rx253_pos, -1, rx253_done
- eq rx253_pos, -1, rx253_fail
+ 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
- rx253_done:
- rx253_cur."!cursor_fail"()
- rx253_cur."!cursor_debug"("FAIL ", "metachar:sym<::>")
- .return (rx253_cur)
+ rx250_done:
+ rx250_cur."!cursor_fail"()
+ rx250_cur."!cursor_debug"("FAIL ", "metachar:sym<::>")
+ .return (rx250_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<::>" :subid("72_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<::>" :subid("74_1280467470.54449") :method
.annotate 'line', 3
- $P255 = self."!PREFIX__!subrule"("panic", "::")
- new $P256, "ResizablePMCArray"
- push $P256, $P255
- .return ($P256)
+ $P252 = self."!PREFIX__!subrule"("panic", "::")
+ new $P253, "ResizablePMCArray"
+ push $P253, $P252
+ .return ($P253)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<lwb>" :subid("73_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<lwb>" :subid("75_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx260_tgt
- .local int rx260_pos
- .local int rx260_off
- .local int rx260_eos
- .local int rx260_rep
- .local pmc rx260_cur
- (rx260_cur, rx260_pos, rx260_tgt) = self."!cursor_start"()
- rx260_cur."!cursor_debug"("START ", "metachar:sym<lwb>")
- .lex unicode:"$\x{a2}", rx260_cur
+ .local string 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 rx260_eos, rx260_tgt
- gt rx260_pos, rx260_eos, rx260_done
- set rx260_off, 0
- lt rx260_pos, 2, rx260_start
- sub rx260_off, rx260_pos, 1
- substr rx260_tgt, rx260_tgt, rx260_off
- rx260_start:
+ length 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, rxscan263_done
- goto rxscan263_scan
- rxscan263_loop:
- ($P10) = rx260_cur."from"()
+ ne $I10, -1, rxscan260_done
+ goto rxscan260_scan
+ rxscan260_loop:
+ ($P10) = rx257_cur."from"()
inc $P10
- set rx260_pos, $P10
- ge rx260_pos, rx260_eos, rxscan263_done
- rxscan263_scan:
- set_addr $I10, rxscan263_loop
- rx260_cur."!mark_push"(0, rx260_pos, $I10)
- rxscan263_done:
-.annotate 'line', 86
+ set 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
# rx subcapture "sym"
- set_addr $I10, rxcap_265_fail
- rx260_cur."!mark_push"(0, rx260_pos, $I10)
- alt264_0:
- set_addr $I10, alt264_1
- rx260_cur."!mark_push"(0, rx260_pos, $I10)
+ set_addr $I10, rxcap_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)
# rx literal "<<"
- add $I11, rx260_pos, 2
- gt $I11, rx260_eos, rx260_fail
- sub $I11, rx260_pos, rx260_off
- substr $S10, rx260_tgt, $I11, 2
- ne $S10, "<<", rx260_fail
- add rx260_pos, 2
- goto alt264_end
- alt264_1:
+ add $I11, 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:
# rx literal unicode:"\x{ab}"
- add $I11, rx260_pos, 1
- gt $I11, rx260_eos, rx260_fail
- sub $I11, rx260_pos, rx260_off
- substr $S10, rx260_tgt, $I11, 1
- ne $S10, unicode:"\x{ab}", rx260_fail
- add rx260_pos, 1
- alt264_end:
- set_addr $I10, rxcap_265_fail
- ($I12, $I11) = rx260_cur."!mark_peek"($I10)
- rx260_cur."!cursor_pos"($I11)
- ($P10) = rx260_cur."!cursor_start"()
- $P10."!cursor_pass"(rx260_pos, "")
- rx260_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, 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)
$P10."!cursor_names"("sym")
- goto rxcap_265_done
- rxcap_265_fail:
- goto rx260_fail
- rxcap_265_done:
+ goto rxcap_262_done
+ rxcap_262_fail:
+ goto rx257_fail
+ rxcap_262_done:
# rx pass
- rx260_cur."!cursor_pass"(rx260_pos, "metachar:sym<lwb>")
- rx260_cur."!cursor_debug"("PASS ", "metachar:sym<lwb>", " at pos=", rx260_pos)
- .return (rx260_cur)
- rx260_fail:
+ 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
- (rx260_rep, rx260_pos, $I10, $P10) = rx260_cur."!mark_fail"(0)
- lt rx260_pos, -1, rx260_done
- eq rx260_pos, -1, rx260_fail
+ 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
- rx260_done:
- rx260_cur."!cursor_fail"()
- rx260_cur."!cursor_debug"("FAIL ", "metachar:sym<lwb>")
- .return (rx260_cur)
+ rx257_done:
+ rx257_cur."!cursor_fail"()
+ rx257_cur."!cursor_debug"("FAIL ", "metachar:sym<lwb>")
+ .return (rx257_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<lwb>" :subid("74_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<lwb>" :subid("76_1280467470.54449") :method
.annotate 'line', 3
- new $P262, "ResizablePMCArray"
- push $P262, unicode:"\x{ab}"
- push $P262, "<<"
- .return ($P262)
+ new $P259, "ResizablePMCArray"
+ push $P259, unicode:"\x{ab}"
+ push $P259, "<<"
+ .return ($P259)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<rwb>" :subid("75_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<rwb>" :subid("77_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx267_tgt
- .local int rx267_pos
- .local int rx267_off
- .local int rx267_eos
- .local int rx267_rep
- .local pmc rx267_cur
- (rx267_cur, rx267_pos, rx267_tgt) = self."!cursor_start"()
- rx267_cur."!cursor_debug"("START ", "metachar:sym<rwb>")
- .lex unicode:"$\x{a2}", rx267_cur
+ .local string 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 rx267_eos, rx267_tgt
- gt rx267_pos, rx267_eos, rx267_done
- set rx267_off, 0
- lt rx267_pos, 2, rx267_start
- sub rx267_off, rx267_pos, 1
- substr rx267_tgt, rx267_tgt, rx267_off
- rx267_start:
+ length 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, rxscan270_done
- goto rxscan270_scan
- rxscan270_loop:
- ($P10) = rx267_cur."from"()
+ ne $I10, -1, rxscan267_done
+ goto rxscan267_scan
+ rxscan267_loop:
+ ($P10) = rx264_cur."from"()
inc $P10
- set rx267_pos, $P10
- ge rx267_pos, rx267_eos, rxscan270_done
- rxscan270_scan:
- set_addr $I10, rxscan270_loop
- rx267_cur."!mark_push"(0, rx267_pos, $I10)
- rxscan270_done:
-.annotate 'line', 87
+ set 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
# rx subcapture "sym"
- set_addr $I10, rxcap_272_fail
- rx267_cur."!mark_push"(0, rx267_pos, $I10)
- alt271_0:
- set_addr $I10, alt271_1
- rx267_cur."!mark_push"(0, rx267_pos, $I10)
+ set_addr $I10, rxcap_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)
# rx literal ">>"
- add $I11, rx267_pos, 2
- gt $I11, rx267_eos, rx267_fail
- sub $I11, rx267_pos, rx267_off
- substr $S10, rx267_tgt, $I11, 2
- ne $S10, ">>", rx267_fail
- add rx267_pos, 2
- goto alt271_end
- alt271_1:
+ add $I11, 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:
# rx literal unicode:"\x{bb}"
- add $I11, rx267_pos, 1
- gt $I11, rx267_eos, rx267_fail
- sub $I11, rx267_pos, rx267_off
- substr $S10, rx267_tgt, $I11, 1
- ne $S10, unicode:"\x{bb}", rx267_fail
- add rx267_pos, 1
- alt271_end:
- set_addr $I10, rxcap_272_fail
- ($I12, $I11) = rx267_cur."!mark_peek"($I10)
- rx267_cur."!cursor_pos"($I11)
- ($P10) = rx267_cur."!cursor_start"()
- $P10."!cursor_pass"(rx267_pos, "")
- rx267_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, 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)
$P10."!cursor_names"("sym")
- goto rxcap_272_done
- rxcap_272_fail:
- goto rx267_fail
- rxcap_272_done:
+ goto rxcap_269_done
+ rxcap_269_fail:
+ goto rx264_fail
+ rxcap_269_done:
# rx pass
- rx267_cur."!cursor_pass"(rx267_pos, "metachar:sym<rwb>")
- rx267_cur."!cursor_debug"("PASS ", "metachar:sym<rwb>", " at pos=", rx267_pos)
- .return (rx267_cur)
- rx267_fail:
+ 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
- (rx267_rep, rx267_pos, $I10, $P10) = rx267_cur."!mark_fail"(0)
- lt rx267_pos, -1, rx267_done
- eq rx267_pos, -1, rx267_fail
+ 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
- rx267_done:
- rx267_cur."!cursor_fail"()
- rx267_cur."!cursor_debug"("FAIL ", "metachar:sym<rwb>")
- .return (rx267_cur)
+ rx264_done:
+ rx264_cur."!cursor_fail"()
+ rx264_cur."!cursor_debug"("FAIL ", "metachar:sym<rwb>")
+ .return (rx264_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<rwb>" :subid("76_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<rwb>" :subid("78_1280467470.54449") :method
.annotate 'line', 3
- new $P269, "ResizablePMCArray"
- push $P269, unicode:"\x{bb}"
- push $P269, ">>"
- .return ($P269)
+ new $P266, "ResizablePMCArray"
+ push $P266, unicode:"\x{bb}"
+ push $P266, ">>"
+ .return ($P266)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<bs>" :subid("77_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<bs>" :subid("79_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx274_tgt
- .local int rx274_pos
- .local int rx274_off
- .local int rx274_eos
- .local int rx274_rep
- .local pmc rx274_cur
- (rx274_cur, rx274_pos, rx274_tgt) = self."!cursor_start"()
- rx274_cur."!cursor_debug"("START ", "metachar:sym<bs>")
- .lex unicode:"$\x{a2}", rx274_cur
- .local pmc match
- .lex "$/", match
- length rx274_eos, rx274_tgt
- gt rx274_pos, rx274_eos, rx274_done
- set rx274_off, 0
- lt rx274_pos, 2, rx274_start
- sub rx274_off, rx274_pos, 1
- substr rx274_tgt, rx274_tgt, rx274_off
- rx274_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan278_done
- goto rxscan278_scan
- rxscan278_loop:
- ($P10) = rx274_cur."from"()
- inc $P10
- set rx274_pos, $P10
- ge rx274_pos, rx274_eos, rxscan278_done
- rxscan278_scan:
- set_addr $I10, rxscan278_loop
- rx274_cur."!mark_push"(0, rx274_pos, $I10)
- rxscan278_done:
-.annotate 'line', 88
+ .local string 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
# rx literal "\\"
- add $I11, rx274_pos, 1
- gt $I11, rx274_eos, rx274_fail
- sub $I11, rx274_pos, rx274_off
- substr $S10, rx274_tgt, $I11, 1
- ne $S10, "\\", rx274_fail
- add rx274_pos, 1
+ add $I11, 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
# rx subrule "backslash" subtype=capture negate=
- rx274_cur."!cursor_pos"(rx274_pos)
- $P10 = rx274_cur."backslash"()
- unless $P10, rx274_fail
- rx274_cur."!mark_push"(0, -1, 0, $P10)
+ rx271_cur."!cursor_pos"(rx271_pos)
+ $P10 = rx271_cur."backslash"()
+ unless $P10, rx271_fail
+ rx271_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("backslash")
- rx274_pos = $P10."pos"()
+ rx271_pos = $P10."pos"()
# rx pass
- rx274_cur."!cursor_pass"(rx274_pos, "metachar:sym<bs>")
- rx274_cur."!cursor_debug"("PASS ", "metachar:sym<bs>", " at pos=", rx274_pos)
- .return (rx274_cur)
- rx274_fail:
+ 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
- (rx274_rep, rx274_pos, $I10, $P10) = rx274_cur."!mark_fail"(0)
- lt rx274_pos, -1, rx274_done
- eq rx274_pos, -1, rx274_fail
+ 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
- rx274_done:
- rx274_cur."!cursor_fail"()
- rx274_cur."!cursor_debug"("FAIL ", "metachar:sym<bs>")
- .return (rx274_cur)
+ rx271_done:
+ rx271_cur."!cursor_fail"()
+ rx271_cur."!cursor_debug"("FAIL ", "metachar:sym<bs>")
+ .return (rx271_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<bs>" :subid("78_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<bs>" :subid("80_1280467470.54449") :method
.annotate 'line', 3
- $P276 = self."!PREFIX__!subrule"("backslash", "\\")
- new $P277, "ResizablePMCArray"
- push $P277, $P276
- .return ($P277)
+ $P273 = self."!PREFIX__!subrule"("backslash", "\\")
+ new $P274, "ResizablePMCArray"
+ push $P274, $P273
+ .return ($P274)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<mod>" :subid("79_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<mod>" :subid("81_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx280_tgt
- .local int rx280_pos
- .local int rx280_off
- .local int rx280_eos
- .local int rx280_rep
- .local pmc rx280_cur
- (rx280_cur, rx280_pos, rx280_tgt) = self."!cursor_start"()
- rx280_cur."!cursor_debug"("START ", "metachar:sym<mod>")
- .lex unicode:"$\x{a2}", rx280_cur
+ .local 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 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:
+ 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, rxscan284_done
- goto rxscan284_scan
- rxscan284_loop:
- ($P10) = rx280_cur."from"()
+ ne $I10, -1, rxscan281_done
+ goto rxscan281_scan
+ rxscan281_loop:
+ ($P10) = rx277_cur."from"()
inc $P10
- set rx280_pos, $P10
- ge rx280_pos, rx280_eos, rxscan284_done
- rxscan284_scan:
- set_addr $I10, rxscan284_loop
- rx280_cur."!mark_push"(0, rx280_pos, $I10)
- rxscan284_done:
-.annotate 'line', 89
+ 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
# rx subrule "mod_internal" subtype=capture negate=
- rx280_cur."!cursor_pos"(rx280_pos)
- $P10 = rx280_cur."mod_internal"()
- unless $P10, rx280_fail
- rx280_cur."!mark_push"(0, -1, 0, $P10)
+ rx277_cur."!cursor_pos"(rx277_pos)
+ $P10 = rx277_cur."mod_internal"()
+ unless $P10, rx277_fail
+ rx277_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("mod_internal")
- rx280_pos = $P10."pos"()
+ rx277_pos = $P10."pos"()
# rx pass
- rx280_cur."!cursor_pass"(rx280_pos, "metachar:sym<mod>")
- rx280_cur."!cursor_debug"("PASS ", "metachar:sym<mod>", " at pos=", rx280_pos)
- .return (rx280_cur)
- rx280_fail:
+ 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
- (rx280_rep, rx280_pos, $I10, $P10) = rx280_cur."!mark_fail"(0)
- lt rx280_pos, -1, rx280_done
- eq rx280_pos, -1, rx280_fail
+ 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
- rx280_done:
- rx280_cur."!cursor_fail"()
- rx280_cur."!cursor_debug"("FAIL ", "metachar:sym<mod>")
- .return (rx280_cur)
+ rx277_done:
+ rx277_cur."!cursor_fail"()
+ rx277_cur."!cursor_debug"("FAIL ", "metachar:sym<mod>")
+ .return (rx277_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<mod>" :subid("80_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<mod>" :subid("82_1280467470.54449") :method
.annotate 'line', 3
- $P282 = self."!PREFIX__!subrule"("mod_internal", "")
- new $P283, "ResizablePMCArray"
- push $P283, $P282
- .return ($P283)
+ $P279 = self."!PREFIX__!subrule"("mod_internal", "")
+ new $P280, "ResizablePMCArray"
+ push $P280, $P279
+ .return ($P280)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<~>" :subid("81_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<~>" :subid("83_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx286_tgt
- .local int rx286_pos
- .local int rx286_off
- .local int rx286_eos
- .local int rx286_rep
- .local pmc rx286_cur
- (rx286_cur, rx286_pos, rx286_tgt) = self."!cursor_start"()
- rx286_cur."!cursor_debug"("START ", "metachar:sym<~>")
- .lex unicode:"$\x{a2}", rx286_cur
+ .local string 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 rx286_eos, rx286_tgt
- gt rx286_pos, rx286_eos, rx286_done
- set rx286_off, 0
- lt rx286_pos, 2, rx286_start
- sub rx286_off, rx286_pos, 1
- substr rx286_tgt, rx286_tgt, rx286_off
- rx286_start:
+ length 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, rxscan290_done
- goto rxscan290_scan
- rxscan290_loop:
- ($P10) = rx286_cur."from"()
+ ne $I10, -1, rxscan287_done
+ goto rxscan287_scan
+ rxscan287_loop:
+ ($P10) = rx283_cur."from"()
inc $P10
- set rx286_pos, $P10
- ge rx286_pos, rx286_eos, rxscan290_done
- rxscan290_scan:
- set_addr $I10, rxscan290_loop
- rx286_cur."!mark_push"(0, rx286_pos, $I10)
- rxscan290_done:
-.annotate 'line', 93
+ set 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
# rx subcapture "sym"
- set_addr $I10, rxcap_291_fail
- rx286_cur."!mark_push"(0, rx286_pos, $I10)
+ set_addr $I10, rxcap_288_fail
+ rx283_cur."!mark_push"(0, rx283_pos, $I10)
# rx literal "~"
- add $I11, rx286_pos, 1
- gt $I11, rx286_eos, rx286_fail
- sub $I11, rx286_pos, rx286_off
- substr $S10, rx286_tgt, $I11, 1
- ne $S10, "~", rx286_fail
- add rx286_pos, 1
- set_addr $I10, rxcap_291_fail
- ($I12, $I11) = rx286_cur."!mark_peek"($I10)
- rx286_cur."!cursor_pos"($I11)
- ($P10) = rx286_cur."!cursor_start"()
- $P10."!cursor_pass"(rx286_pos, "")
- rx286_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, 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)
$P10."!cursor_names"("sym")
- goto rxcap_291_done
- rxcap_291_fail:
- goto rx286_fail
- rxcap_291_done:
-.annotate 'line', 94
+ goto rxcap_288_done
+ rxcap_288_fail:
+ goto rx283_fail
+ rxcap_288_done:
+.annotate 'line', 96
# rx subrule "ws" subtype=method negate=
- rx286_cur."!cursor_pos"(rx286_pos)
- $P10 = rx286_cur."ws"()
- unless $P10, rx286_fail
- rx286_pos = $P10."pos"()
+ rx283_cur."!cursor_pos"(rx283_pos)
+ $P10 = rx283_cur."ws"()
+ unless $P10, rx283_fail
+ rx283_pos = $P10."pos"()
# rx subrule "quantified_atom" subtype=capture negate=
- rx286_cur."!cursor_pos"(rx286_pos)
- $P10 = rx286_cur."quantified_atom"()
- unless $P10, rx286_fail
- rx286_cur."!mark_push"(0, -1, 0, $P10)
+ rx283_cur."!cursor_pos"(rx283_pos)
+ $P10 = rx283_cur."quantified_atom"()
+ unless $P10, rx283_fail
+ rx283_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("GOAL")
- rx286_pos = $P10."pos"()
-.annotate 'line', 95
+ rx283_pos = $P10."pos"()
+.annotate 'line', 97
# rx subrule "ws" subtype=method negate=
- rx286_cur."!cursor_pos"(rx286_pos)
- $P10 = rx286_cur."ws"()
- unless $P10, rx286_fail
- rx286_pos = $P10."pos"()
+ rx283_cur."!cursor_pos"(rx283_pos)
+ $P10 = rx283_cur."ws"()
+ unless $P10, rx283_fail
+ rx283_pos = $P10."pos"()
# rx subrule "quantified_atom" subtype=capture negate=
- rx286_cur."!cursor_pos"(rx286_pos)
- $P10 = rx286_cur."quantified_atom"()
- unless $P10, rx286_fail
- rx286_cur."!mark_push"(0, -1, 0, $P10)
+ rx283_cur."!cursor_pos"(rx283_pos)
+ $P10 = rx283_cur."quantified_atom"()
+ unless $P10, rx283_fail
+ rx283_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx286_pos = $P10."pos"()
-.annotate 'line', 92
+ rx283_pos = $P10."pos"()
+.annotate 'line', 94
# rx pass
- rx286_cur."!cursor_pass"(rx286_pos, "metachar:sym<~>")
- rx286_cur."!cursor_debug"("PASS ", "metachar:sym<~>", " at pos=", rx286_pos)
- .return (rx286_cur)
- rx286_fail:
+ 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
- (rx286_rep, rx286_pos, $I10, $P10) = rx286_cur."!mark_fail"(0)
- lt rx286_pos, -1, rx286_done
- eq rx286_pos, -1, rx286_fail
+ 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
- rx286_done:
- rx286_cur."!cursor_fail"()
- rx286_cur."!cursor_debug"("FAIL ", "metachar:sym<~>")
- .return (rx286_cur)
+ rx283_done:
+ rx283_cur."!cursor_fail"()
+ rx283_cur."!cursor_debug"("FAIL ", "metachar:sym<~>")
+ .return (rx283_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<~>" :subid("82_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<~>" :subid("84_1280467470.54449") :method
.annotate 'line', 3
- $P288 = self."!PREFIX__!subrule"("ws", "~")
- new $P289, "ResizablePMCArray"
- push $P289, $P288
- .return ($P289)
+ $P285 = self."!PREFIX__!subrule"("ws", "~")
+ new $P286, "ResizablePMCArray"
+ push $P286, $P285
+ .return ($P286)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<{*}>" :subid("83_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<{*}>" :subid("85_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx293_tgt
- .local int rx293_pos
- .local int rx293_off
- .local int rx293_eos
- .local int rx293_rep
- .local pmc rx293_cur
- (rx293_cur, rx293_pos, rx293_tgt) = self."!cursor_start"()
- rx293_cur."!cursor_debug"("START ", "metachar:sym<{*}>")
- rx293_cur."!cursor_caparray"("key")
- .lex unicode:"$\x{a2}", rx293_cur
+ .local string 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 rx293_eos, rx293_tgt
- gt rx293_pos, rx293_eos, rx293_done
- set rx293_off, 0
- lt rx293_pos, 2, rx293_start
- sub rx293_off, rx293_pos, 1
- substr rx293_tgt, rx293_tgt, rx293_off
- rx293_start:
+ length 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, rxscan296_done
- goto rxscan296_scan
- rxscan296_loop:
- ($P10) = rx293_cur."from"()
+ ne $I10, -1, rxscan293_done
+ goto rxscan293_scan
+ rxscan293_loop:
+ ($P10) = rx290_cur."from"()
inc $P10
- set rx293_pos, $P10
- ge rx293_pos, rx293_eos, rxscan296_done
- rxscan296_scan:
- set_addr $I10, rxscan296_loop
- rx293_cur."!mark_push"(0, rx293_pos, $I10)
- rxscan296_done:
-.annotate 'line', 99
+ set 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
# rx subcapture "sym"
- set_addr $I10, rxcap_297_fail
- rx293_cur."!mark_push"(0, rx293_pos, $I10)
+ set_addr $I10, rxcap_294_fail
+ rx290_cur."!mark_push"(0, rx290_pos, $I10)
# rx literal "{*}"
- add $I11, rx293_pos, 3
- gt $I11, rx293_eos, rx293_fail
- sub $I11, rx293_pos, rx293_off
- substr $S10, rx293_tgt, $I11, 3
- ne $S10, "{*}", rx293_fail
- add rx293_pos, 3
- set_addr $I10, rxcap_297_fail
- ($I12, $I11) = rx293_cur."!mark_peek"($I10)
- rx293_cur."!cursor_pos"($I11)
- ($P10) = rx293_cur."!cursor_start"()
- $P10."!cursor_pass"(rx293_pos, "")
- rx293_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, 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)
$P10."!cursor_names"("sym")
- goto rxcap_297_done
- rxcap_297_fail:
- goto rx293_fail
- rxcap_297_done:
-.annotate 'line', 100
- # rx rxquantr298 ** 0..1
- set_addr $I308, rxquantr298_done
- rx293_cur."!mark_push"(0, rx293_pos, $I308)
- rxquantr298_loop:
- # rx rxquantr299 ** 0..*
- set_addr $I300, rxquantr299_done
- rx293_cur."!mark_push"(0, rx293_pos, $I300)
- rxquantr299_loop:
+ goto rxcap_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 rx293_pos, rx293_eos, rx293_fail
- sub $I10, rx293_pos, rx293_off
- substr $S10, rx293_tgt, $I10, 1
+ ge rx290_pos, rx290_eos, rx290_fail
+ sub $I10, rx290_pos, rx290_off
+ substr $S10, rx290_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx293_fail
- inc rx293_pos
- (rx293_rep) = rx293_cur."!mark_commit"($I300)
- rx293_cur."!mark_push"(rx293_rep, rx293_pos, $I300)
- goto rxquantr299_loop
- rxquantr299_done:
+ lt $I11, 0, 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:
# rx literal "#= "
- add $I11, rx293_pos, 3
- gt $I11, rx293_eos, rx293_fail
- sub $I11, rx293_pos, rx293_off
- substr $S10, rx293_tgt, $I11, 3
- ne $S10, "#= ", rx293_fail
- add rx293_pos, 3
- # rx rxquantr301 ** 0..*
- set_addr $I302, rxquantr301_done
- rx293_cur."!mark_push"(0, rx293_pos, $I302)
- rxquantr301_loop:
+ add $I11, 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 rx293_pos, rx293_eos, rx293_fail
- sub $I10, rx293_pos, rx293_off
- substr $S10, rx293_tgt, $I10, 1
+ ge rx290_pos, rx290_eos, rx290_fail
+ sub $I10, rx290_pos, rx290_off
+ substr $S10, rx290_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx293_fail
- inc rx293_pos
- (rx293_rep) = rx293_cur."!mark_commit"($I302)
- rx293_cur."!mark_push"(rx293_rep, rx293_pos, $I302)
- goto rxquantr301_loop
- rxquantr301_done:
+ lt $I11, 0, 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:
# rx subcapture "key"
- set_addr $I10, rxcap_307_fail
- rx293_cur."!mark_push"(0, rx293_pos, $I10)
+ set_addr $I10, rxcap_300_fail
+ rx290_cur."!mark_push"(0, rx290_pos, $I10)
# rx charclass_q S r 1..-1
- sub $I10, rx293_pos, rx293_off
- find_cclass $I11, 32, rx293_tgt, $I10, rx293_eos
+ sub $I10, rx290_pos, rx290_off
+ find_cclass $I11, 32, rx290_tgt, $I10, rx290_eos
add $I12, $I10, 1
- lt $I11, $I12, rx293_fail
- add rx293_pos, rx293_off, $I11
- # rx rxquantr303 ** 0..*
- set_addr $I306, rxquantr303_done
- rx293_cur."!mark_push"(0, rx293_pos, $I306)
- rxquantr303_loop:
- # rx rxquantr304 ** 1..*
- set_addr $I305, rxquantr304_done
- rx293_cur."!mark_push"(0, -1, $I305)
- rxquantr304_loop:
+ lt $I11, $I12, 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 rx293_pos, rx293_eos, rx293_fail
- sub $I10, rx293_pos, rx293_off
- substr $S10, rx293_tgt, $I10, 1
+ ge rx290_pos, rx290_eos, rx290_fail
+ sub $I10, rx290_pos, rx290_off
+ substr $S10, rx290_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx293_fail
- inc rx293_pos
- (rx293_rep) = rx293_cur."!mark_commit"($I305)
- rx293_cur."!mark_push"(rx293_rep, rx293_pos, $I305)
- goto rxquantr304_loop
- rxquantr304_done:
+ lt $I11, 0, 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:
# rx charclass_q S r 1..-1
- sub $I10, rx293_pos, rx293_off
- find_cclass $I11, 32, rx293_tgt, $I10, rx293_eos
+ sub $I10, rx290_pos, rx290_off
+ find_cclass $I11, 32, rx290_tgt, $I10, rx290_eos
add $I12, $I10, 1
- lt $I11, $I12, rx293_fail
- add rx293_pos, rx293_off, $I11
- (rx293_rep) = rx293_cur."!mark_commit"($I306)
- rx293_cur."!mark_push"(rx293_rep, rx293_pos, $I306)
- goto rxquantr303_loop
- rxquantr303_done:
- set_addr $I10, rxcap_307_fail
- ($I12, $I11) = rx293_cur."!mark_peek"($I10)
- rx293_cur."!cursor_pos"($I11)
- ($P10) = rx293_cur."!cursor_start"()
- $P10."!cursor_pass"(rx293_pos, "")
- rx293_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("key")
- goto rxcap_307_done
- rxcap_307_fail:
- goto rx293_fail
- rxcap_307_done:
- (rx293_rep) = rx293_cur."!mark_commit"($I308)
+ 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:
-.annotate 'line', 98
+ 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)
+ $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
- rx293_cur."!cursor_pass"(rx293_pos, "metachar:sym<{*}>")
- rx293_cur."!cursor_debug"("PASS ", "metachar:sym<{*}>", " at pos=", rx293_pos)
- .return (rx293_cur)
- rx293_fail:
+ 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
- (rx293_rep, rx293_pos, $I10, $P10) = rx293_cur."!mark_fail"(0)
- lt rx293_pos, -1, rx293_done
- eq rx293_pos, -1, rx293_fail
+ 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
- rx293_done:
- rx293_cur."!cursor_fail"()
- rx293_cur."!cursor_debug"("FAIL ", "metachar:sym<{*}>")
- .return (rx293_cur)
+ rx290_done:
+ rx290_cur."!cursor_fail"()
+ rx290_cur."!cursor_debug"("FAIL ", "metachar:sym<{*}>")
+ .return (rx290_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<{*}>" :subid("84_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<{*}>" :subid("86_1280467470.54449") :method
.annotate 'line', 3
- new $P295, "ResizablePMCArray"
- push $P295, "{*}"
- .return ($P295)
+ new $P292, "ResizablePMCArray"
+ push $P292, "{*}"
+ .return ($P292)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<assert>" :subid("85_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<assert>" :subid("87_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx310_tgt
- .local int rx310_pos
- .local int rx310_off
- .local int rx310_eos
- .local int rx310_rep
- .local pmc rx310_cur
- (rx310_cur, rx310_pos, rx310_tgt) = self."!cursor_start"()
- rx310_cur."!cursor_debug"("START ", "metachar:sym<assert>")
- .lex unicode:"$\x{a2}", rx310_cur
- .local pmc match
- .lex "$/", match
- length rx310_eos, rx310_tgt
- gt rx310_pos, rx310_eos, rx310_done
- set rx310_off, 0
- lt rx310_pos, 2, rx310_start
- sub rx310_off, rx310_pos, 1
- substr rx310_tgt, rx310_tgt, rx310_off
- rx310_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan314_done
- goto rxscan314_scan
- rxscan314_loop:
- ($P10) = rx310_cur."from"()
- inc $P10
- set rx310_pos, $P10
- ge rx310_pos, rx310_eos, rxscan314_done
- rxscan314_scan:
- set_addr $I10, rxscan314_loop
- rx310_cur."!mark_push"(0, rx310_pos, $I10)
- rxscan314_done:
-.annotate 'line', 103
+ .local string 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
# rx literal "<"
- add $I11, rx310_pos, 1
- gt $I11, rx310_eos, rx310_fail
- sub $I11, rx310_pos, rx310_off
- substr $S10, rx310_tgt, $I11, 1
- ne $S10, "<", rx310_fail
- add rx310_pos, 1
+ add $I11, 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
# rx subrule "assertion" subtype=capture negate=
- rx310_cur."!cursor_pos"(rx310_pos)
- $P10 = rx310_cur."assertion"()
- unless $P10, rx310_fail
- rx310_cur."!mark_push"(0, -1, 0, $P10)
+ rx302_cur."!cursor_pos"(rx302_pos)
+ $P10 = rx302_cur."assertion"()
+ unless $P10, rx302_fail
+ rx302_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("assertion")
- rx310_pos = $P10."pos"()
- alt315_0:
-.annotate 'line', 104
- set_addr $I10, alt315_1
- rx310_cur."!mark_push"(0, rx310_pos, $I10)
+ rx302_pos = $P10."pos"()
+ alt307_0:
+.annotate 'line', 106
+ set_addr $I10, alt307_1
+ rx302_cur."!mark_push"(0, rx302_pos, $I10)
# rx literal ">"
- add $I11, rx310_pos, 1
- gt $I11, rx310_eos, rx310_fail
- sub $I11, rx310_pos, rx310_off
- substr $S10, rx310_tgt, $I11, 1
- ne $S10, ">", rx310_fail
- add rx310_pos, 1
- goto alt315_end
- alt315_1:
+ add $I11, 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:
# rx subrule "panic" subtype=method negate=
- rx310_cur."!cursor_pos"(rx310_pos)
- $P10 = rx310_cur."panic"("regex assertion not terminated by angle bracket")
- unless $P10, rx310_fail
- rx310_pos = $P10."pos"()
- alt315_end:
-.annotate 'line', 102
+ 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
# rx pass
- rx310_cur."!cursor_pass"(rx310_pos, "metachar:sym<assert>")
- rx310_cur."!cursor_debug"("PASS ", "metachar:sym<assert>", " at pos=", rx310_pos)
- .return (rx310_cur)
- rx310_fail:
+ 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
- (rx310_rep, rx310_pos, $I10, $P10) = rx310_cur."!mark_fail"(0)
- lt rx310_pos, -1, rx310_done
- eq rx310_pos, -1, rx310_fail
+ 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
- rx310_done:
- rx310_cur."!cursor_fail"()
- rx310_cur."!cursor_debug"("FAIL ", "metachar:sym<assert>")
- .return (rx310_cur)
+ rx302_done:
+ rx302_cur."!cursor_fail"()
+ rx302_cur."!cursor_debug"("FAIL ", "metachar:sym<assert>")
+ .return (rx302_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<assert>" :subid("86_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<assert>" :subid("88_1280467470.54449") :method
.annotate 'line', 3
- $P312 = self."!PREFIX__!subrule"("assertion", "<")
- new $P313, "ResizablePMCArray"
- push $P313, $P312
- .return ($P313)
+ $P304 = self."!PREFIX__!subrule"("assertion", "<")
+ new $P305, "ResizablePMCArray"
+ push $P305, $P304
+ .return ($P305)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<var>" :subid("87_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<var>" :subid("89_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx317_tgt
- .local int rx317_pos
- .local int rx317_off
- .local int rx317_eos
- .local int rx317_rep
- .local pmc rx317_cur
- (rx317_cur, rx317_pos, rx317_tgt) = self."!cursor_start"()
- rx317_cur."!cursor_debug"("START ", "metachar:sym<var>")
- rx317_cur."!cursor_caparray"("quantified_atom")
- .lex unicode:"$\x{a2}", rx317_cur
+ .local string 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 rx317_eos, rx317_tgt
- gt rx317_pos, rx317_eos, rx317_done
- set rx317_off, 0
- lt rx317_pos, 2, rx317_start
- sub rx317_off, rx317_pos, 1
- substr rx317_tgt, rx317_tgt, rx317_off
- rx317_start:
+ length 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, rxscan320_done
- goto rxscan320_scan
- rxscan320_loop:
- ($P10) = rx317_cur."from"()
+ ne $I10, -1, rxscan312_done
+ goto rxscan312_scan
+ rxscan312_loop:
+ ($P10) = rx309_cur."from"()
inc $P10
- set rx317_pos, $P10
- ge rx317_pos, rx317_eos, rxscan320_done
- rxscan320_scan:
- set_addr $I10, rxscan320_loop
- rx317_cur."!mark_push"(0, rx317_pos, $I10)
- rxscan320_done:
- alt321_0:
-.annotate 'line', 108
- set_addr $I10, alt321_1
- rx317_cur."!mark_push"(0, rx317_pos, $I10)
-.annotate 'line', 109
+ set 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
# rx literal "$<"
- add $I11, rx317_pos, 2
- gt $I11, rx317_eos, rx317_fail
- sub $I11, rx317_pos, rx317_off
- substr $S10, rx317_tgt, $I11, 2
- ne $S10, "$<", rx317_fail
- add rx317_pos, 2
+ add $I11, 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
# rx subcapture "name"
- set_addr $I10, rxcap_324_fail
- rx317_cur."!mark_push"(0, rx317_pos, $I10)
- # rx rxquantr322 ** 1..*
- set_addr $I323, rxquantr322_done
- rx317_cur."!mark_push"(0, -1, $I323)
- rxquantr322_loop:
+ set_addr $I10, rxcap_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 rx317_pos, rx317_eos, rx317_fail
- sub $I10, rx317_pos, rx317_off
- substr $S10, rx317_tgt, $I10, 1
+ ge rx309_pos, rx309_eos, rx309_fail
+ sub $I10, rx309_pos, rx309_off
+ substr $S10, rx309_tgt, $I10, 1
index $I11, ">", $S10
- ge $I11, 0, rx317_fail
- inc rx317_pos
- (rx317_rep) = rx317_cur."!mark_commit"($I323)
- rx317_cur."!mark_push"(rx317_rep, rx317_pos, $I323)
- goto rxquantr322_loop
- rxquantr322_done:
- set_addr $I10, rxcap_324_fail
- ($I12, $I11) = rx317_cur."!mark_peek"($I10)
- rx317_cur."!cursor_pos"($I11)
- ($P10) = rx317_cur."!cursor_start"()
- $P10."!cursor_pass"(rx317_pos, "")
- rx317_cur."!mark_push"(0, -1, 0, $P10)
+ ge $I11, 0, 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)
$P10."!cursor_names"("name")
- goto rxcap_324_done
- rxcap_324_fail:
- goto rx317_fail
- rxcap_324_done:
+ goto rxcap_315_done
+ rxcap_315_fail:
+ goto rx309_fail
+ rxcap_315_done:
# rx literal ">"
- add $I11, rx317_pos, 1
- gt $I11, rx317_eos, rx317_fail
- sub $I11, rx317_pos, rx317_off
- substr $S10, rx317_tgt, $I11, 1
- ne $S10, ">", rx317_fail
- add rx317_pos, 1
- goto alt321_end
- alt321_1:
-.annotate 'line', 110
+ add $I11, 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
# rx literal "$"
- add $I11, rx317_pos, 1
- gt $I11, rx317_eos, rx317_fail
- sub $I11, rx317_pos, rx317_off
- substr $S10, rx317_tgt, $I11, 1
- ne $S10, "$", rx317_fail
- add rx317_pos, 1
+ add $I11, 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
# rx subcapture "pos"
- set_addr $I10, rxcap_325_fail
- rx317_cur."!mark_push"(0, rx317_pos, $I10)
+ set_addr $I10, rxcap_316_fail
+ rx309_cur."!mark_push"(0, rx309_pos, $I10)
# rx charclass_q d r 1..-1
- sub $I10, rx317_pos, rx317_off
- find_not_cclass $I11, 8, rx317_tgt, $I10, rx317_eos
+ sub $I10, rx309_pos, rx309_off
+ find_not_cclass $I11, 8, rx309_tgt, $I10, rx309_eos
add $I12, $I10, 1
- lt $I11, $I12, rx317_fail
- add rx317_pos, rx317_off, $I11
- set_addr $I10, rxcap_325_fail
- ($I12, $I11) = rx317_cur."!mark_peek"($I10)
- rx317_cur."!cursor_pos"($I11)
- ($P10) = rx317_cur."!cursor_start"()
- $P10."!cursor_pass"(rx317_pos, "")
- rx317_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, 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)
$P10."!cursor_names"("pos")
- goto rxcap_325_done
- rxcap_325_fail:
- goto rx317_fail
- rxcap_325_done:
- alt321_end:
-.annotate 'line', 113
- # rx rxquantr326 ** 0..1
- set_addr $I327, rxquantr326_done
- rx317_cur."!mark_push"(0, rx317_pos, $I327)
- rxquantr326_loop:
+ goto rxcap_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:
# rx subrule "ws" subtype=method negate=
- rx317_cur."!cursor_pos"(rx317_pos)
- $P10 = rx317_cur."ws"()
- unless $P10, rx317_fail
- rx317_pos = $P10."pos"()
+ rx309_cur."!cursor_pos"(rx309_pos)
+ $P10 = rx309_cur."ws"()
+ unless $P10, rx309_fail
+ rx309_pos = $P10."pos"()
# rx literal "="
- add $I11, rx317_pos, 1
- gt $I11, rx317_eos, rx317_fail
- sub $I11, rx317_pos, rx317_off
- substr $S10, rx317_tgt, $I11, 1
- ne $S10, "=", rx317_fail
- add rx317_pos, 1
+ add $I11, 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
# rx subrule "ws" subtype=method negate=
- rx317_cur."!cursor_pos"(rx317_pos)
- $P10 = rx317_cur."ws"()
- unless $P10, rx317_fail
- rx317_pos = $P10."pos"()
+ rx309_cur."!cursor_pos"(rx309_pos)
+ $P10 = rx309_cur."ws"()
+ unless $P10, rx309_fail
+ rx309_pos = $P10."pos"()
# rx subrule "quantified_atom" subtype=capture negate=
- rx317_cur."!cursor_pos"(rx317_pos)
- $P10 = rx317_cur."quantified_atom"()
- unless $P10, rx317_fail
- rx317_cur."!mark_push"(0, -1, 0, $P10)
+ rx309_cur."!cursor_pos"(rx309_pos)
+ $P10 = rx309_cur."quantified_atom"()
+ unless $P10, rx309_fail
+ rx309_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quantified_atom")
- rx317_pos = $P10."pos"()
- (rx317_rep) = rx317_cur."!mark_commit"($I327)
- rxquantr326_done:
-.annotate 'line', 107
+ rx309_pos = $P10."pos"()
+ set_addr $I10, rxquantr317_done
+ (rx309_rep) = rx309_cur."!mark_commit"($I10)
+ rxquantr317_done:
+.annotate 'line', 109
# rx pass
- rx317_cur."!cursor_pass"(rx317_pos, "metachar:sym<var>")
- rx317_cur."!cursor_debug"("PASS ", "metachar:sym<var>", " at pos=", rx317_pos)
- .return (rx317_cur)
- rx317_fail:
+ 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
- (rx317_rep, rx317_pos, $I10, $P10) = rx317_cur."!mark_fail"(0)
- lt rx317_pos, -1, rx317_done
- eq rx317_pos, -1, rx317_fail
+ 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
- rx317_done:
- rx317_cur."!cursor_fail"()
- rx317_cur."!cursor_debug"("FAIL ", "metachar:sym<var>")
- .return (rx317_cur)
+ rx309_done:
+ rx309_cur."!cursor_fail"()
+ rx309_cur."!cursor_debug"("FAIL ", "metachar:sym<var>")
+ .return (rx309_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<var>" :subid("88_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<var>" :subid("90_1280467470.54449") :method
.annotate 'line', 3
- new $P319, "ResizablePMCArray"
- push $P319, "$"
- push $P319, "$<"
- .return ($P319)
+ new $P311, "ResizablePMCArray"
+ push $P311, "$"
+ push $P311, "$<"
+ .return ($P311)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<PIR>" :subid("89_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<PIR>" :subid("91_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx329_tgt
- .local int rx329_pos
- .local int rx329_off
- .local int rx329_eos
- .local int rx329_rep
- .local pmc rx329_cur
- (rx329_cur, rx329_pos, rx329_tgt) = self."!cursor_start"()
- rx329_cur."!cursor_debug"("START ", "metachar:sym<PIR>")
- .lex unicode:"$\x{a2}", rx329_cur
+ .local string 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 rx329_eos, rx329_tgt
- gt rx329_pos, rx329_eos, rx329_done
- set rx329_off, 0
- lt rx329_pos, 2, rx329_start
- sub rx329_off, rx329_pos, 1
- substr rx329_tgt, rx329_tgt, rx329_off
- rx329_start:
+ length 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, rxscan332_done
- goto rxscan332_scan
- rxscan332_loop:
- ($P10) = rx329_cur."from"()
+ ne $I10, -1, rxscan322_done
+ goto rxscan322_scan
+ rxscan322_loop:
+ ($P10) = rx319_cur."from"()
inc $P10
- set rx329_pos, $P10
- ge rx329_pos, rx329_eos, rxscan332_done
- rxscan332_scan:
- set_addr $I10, rxscan332_loop
- rx329_cur."!mark_push"(0, rx329_pos, $I10)
- rxscan332_done:
-.annotate 'line', 117
+ set 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
# rx literal ":PIR{{"
- add $I11, rx329_pos, 6
- gt $I11, rx329_eos, rx329_fail
- sub $I11, rx329_pos, rx329_off
- substr $S10, rx329_tgt, $I11, 6
- ne $S10, ":PIR{{", rx329_fail
- add rx329_pos, 6
+ add $I11, 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
# rx subcapture "pir"
- set_addr $I10, rxcap_335_fail
- rx329_cur."!mark_push"(0, rx329_pos, $I10)
- # rx rxquantf333 ** 0..*
- set_addr $I10, rxquantf333_loop
- rx329_cur."!mark_push"(0, rx329_pos, $I10)
- goto rxquantf333_done
- rxquantf333_loop:
+ set_addr $I10, rxcap_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:
# rx charclass .
- ge rx329_pos, rx329_eos, rx329_fail
- inc rx329_pos
- set_addr $I10, rxquantf333_loop
- rx329_cur."!mark_push"($I334, rx329_pos, $I10)
- rxquantf333_done:
- set_addr $I10, rxcap_335_fail
- ($I12, $I11) = rx329_cur."!mark_peek"($I10)
- rx329_cur."!cursor_pos"($I11)
- ($P10) = rx329_cur."!cursor_start"()
- $P10."!cursor_pass"(rx329_pos, "")
- rx329_cur."!mark_push"(0, -1, 0, $P10)
+ ge 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)
$P10."!cursor_names"("pir")
- goto rxcap_335_done
- rxcap_335_fail:
- goto rx329_fail
- rxcap_335_done:
+ goto rxcap_325_done
+ rxcap_325_fail:
+ goto rx319_fail
+ rxcap_325_done:
# rx literal "}}"
- add $I11, rx329_pos, 2
- gt $I11, rx329_eos, rx329_fail
- sub $I11, rx329_pos, rx329_off
- substr $S10, rx329_tgt, $I11, 2
- ne $S10, "}}", rx329_fail
- add rx329_pos, 2
-.annotate 'line', 116
+ add $I11, 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
# rx pass
- rx329_cur."!cursor_pass"(rx329_pos, "metachar:sym<PIR>")
- rx329_cur."!cursor_debug"("PASS ", "metachar:sym<PIR>", " at pos=", rx329_pos)
- .return (rx329_cur)
- rx329_fail:
+ 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:
.annotate 'line', 3
- (rx329_rep, rx329_pos, $I10, $P10) = rx329_cur."!mark_fail"(0)
- lt rx329_pos, -1, rx329_done
- eq rx329_pos, -1, rx329_fail
+ 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
jump $I10
- rx329_done:
- rx329_cur."!cursor_fail"()
- rx329_cur."!cursor_debug"("FAIL ", "metachar:sym<PIR>")
- .return (rx329_cur)
+ rx319_done:
+ rx319_cur."!cursor_fail"()
+ rx319_cur."!cursor_debug"("FAIL ", "metachar:sym<PIR>")
+ .return (rx319_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<PIR>" :subid("90_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<PIR>" :subid("92_1280467470.54449") :method
.annotate 'line', 3
- new $P331, "ResizablePMCArray"
- push $P331, ":PIR{{"
- .return ($P331)
+ new $P321, "ResizablePMCArray"
+ push $P321, ":PIR{{"
+ .return ($P321)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash" :subid("91_1275811476.7961") :method
-.annotate 'line', 120
- $P337 = self."!protoregex"("backslash")
- .return ($P337)
+.sub "backslash" :subid("93_1280467470.54449") :method
+.annotate 'line', 122
+ $P327 = self."!protoregex"("backslash")
+ .return ($P327)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash" :subid("92_1275811476.7961") :method
-.annotate 'line', 120
- $P339 = self."!PREFIX__!protoregex"("backslash")
- .return ($P339)
+.sub "!PREFIX__backslash" :subid("94_1280467470.54449") :method
+.annotate 'line', 122
+ $P329 = self."!PREFIX__!protoregex"("backslash")
+ .return ($P329)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<w>" :subid("93_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<w>" :subid("95_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx341_tgt
- .local int rx341_pos
- .local int rx341_off
- .local int rx341_eos
- .local int rx341_rep
- .local pmc rx341_cur
- (rx341_cur, rx341_pos, rx341_tgt) = self."!cursor_start"()
- rx341_cur."!cursor_debug"("START ", "backslash:sym<w>")
- .lex unicode:"$\x{a2}", rx341_cur
- .local pmc match
- .lex "$/", match
- length rx341_eos, rx341_tgt
- gt rx341_pos, rx341_eos, rx341_done
- set rx341_off, 0
- lt rx341_pos, 2, rx341_start
- sub rx341_off, rx341_pos, 1
- substr rx341_tgt, rx341_tgt, rx341_off
- rx341_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan344_done
- goto rxscan344_scan
- rxscan344_loop:
- ($P10) = rx341_cur."from"()
- inc $P10
- set rx341_pos, $P10
- ge rx341_pos, rx341_eos, rxscan344_done
- rxscan344_scan:
- set_addr $I10, rxscan344_loop
- rx341_cur."!mark_push"(0, rx341_pos, $I10)
- rxscan344_done:
-.annotate 'line', 121
+ .local string 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
# rx subcapture "sym"
- set_addr $I10, rxcap_345_fail
- rx341_cur."!mark_push"(0, rx341_pos, $I10)
+ set_addr $I10, rxcap_335_fail
+ rx331_cur."!mark_push"(0, rx331_pos, $I10)
# rx enumcharlist negate=0
- ge rx341_pos, rx341_eos, rx341_fail
- sub $I10, rx341_pos, rx341_off
- substr $S10, rx341_tgt, $I10, 1
+ ge rx331_pos, rx331_eos, rx331_fail
+ sub $I10, rx331_pos, rx331_off
+ substr $S10, rx331_tgt, $I10, 1
index $I11, "dswnDSWN", $S10
- lt $I11, 0, rx341_fail
- inc rx341_pos
- set_addr $I10, rxcap_345_fail
- ($I12, $I11) = rx341_cur."!mark_peek"($I10)
- rx341_cur."!cursor_pos"($I11)
- ($P10) = rx341_cur."!cursor_start"()
- $P10."!cursor_pass"(rx341_pos, "")
- rx341_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, 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)
$P10."!cursor_names"("sym")
- goto rxcap_345_done
- rxcap_345_fail:
- goto rx341_fail
- rxcap_345_done:
+ goto rxcap_335_done
+ rxcap_335_fail:
+ goto rx331_fail
+ rxcap_335_done:
# rx pass
- rx341_cur."!cursor_pass"(rx341_pos, "backslash:sym<w>")
- rx341_cur."!cursor_debug"("PASS ", "backslash:sym<w>", " at pos=", rx341_pos)
- .return (rx341_cur)
- rx341_fail:
-.annotate 'line', 3
- (rx341_rep, rx341_pos, $I10, $P10) = rx341_cur."!mark_fail"(0)
- lt rx341_pos, -1, rx341_done
- eq rx341_pos, -1, rx341_fail
- jump $I10
- rx341_done:
- rx341_cur."!cursor_fail"()
- rx341_cur."!cursor_debug"("FAIL ", "backslash:sym<w>")
- .return (rx341_cur)
+ 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)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<w>" :subid("94_1275811476.7961") :method
+.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
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_341_fail
+ rx337_cur."!mark_push"(0, rx337_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
+ 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)
+ $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
- new $P343, "ResizablePMCArray"
- push $P343, "N"
- push $P343, "W"
- push $P343, "S"
- push $P343, "D"
- push $P343, "n"
- push $P343, "w"
- push $P343, "s"
- push $P343, "d"
- .return ($P343)
+ 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)
+ .return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<b>" :subid("95_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "!PREFIX__backslash:sym<b>" :subid("98_1280467470.54449") :method
.annotate 'line', 3
- .local string rx347_tgt
- .local int rx347_pos
- .local int rx347_off
- .local int rx347_eos
- .local int rx347_rep
- .local pmc rx347_cur
- (rx347_cur, rx347_pos, rx347_tgt) = self."!cursor_start"()
- rx347_cur."!cursor_debug"("START ", "backslash:sym<b>")
- .lex unicode:"$\x{a2}", rx347_cur
- .local pmc match
- .lex "$/", match
- length rx347_eos, rx347_tgt
- gt rx347_pos, rx347_eos, rx347_done
- set rx347_off, 0
- lt rx347_pos, 2, rx347_start
- sub rx347_off, rx347_pos, 1
- substr rx347_tgt, rx347_tgt, rx347_off
- rx347_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan350_done
- goto rxscan350_scan
- rxscan350_loop:
- ($P10) = rx347_cur."from"()
- inc $P10
- set rx347_pos, $P10
- ge rx347_pos, rx347_eos, rxscan350_done
- rxscan350_scan:
- set_addr $I10, rxscan350_loop
- rx347_cur."!mark_push"(0, rx347_pos, $I10)
- rxscan350_done:
-.annotate 'line', 122
+ 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
# rx subcapture "sym"
- set_addr $I10, rxcap_351_fail
- rx347_cur."!mark_push"(0, rx347_pos, $I10)
+ set_addr $I10, rxcap_347_fail
+ rx343_cur."!mark_push"(0, rx343_pos, $I10)
# rx enumcharlist negate=0
- ge rx347_pos, rx347_eos, rx347_fail
- sub $I10, rx347_pos, rx347_off
- substr $S10, rx347_tgt, $I10, 1
- index $I11, "bB", $S10
- lt $I11, 0, rx347_fail
- inc rx347_pos
- set_addr $I10, rxcap_351_fail
- ($I12, $I11) = rx347_cur."!mark_peek"($I10)
- rx347_cur."!cursor_pos"($I11)
- ($P10) = rx347_cur."!cursor_start"()
- $P10."!cursor_pass"(rx347_pos, "")
- rx347_cur."!mark_push"(0, -1, 0, $P10)
+ ge rx343_pos, rx343_eos, rx343_fail
+ sub $I10, rx343_pos, rx343_off
+ substr $S10, rx343_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)
$P10."!cursor_names"("sym")
- goto rxcap_351_done
- rxcap_351_fail:
- goto rx347_fail
- rxcap_351_done:
+ goto rxcap_347_done
+ rxcap_347_fail:
+ goto rx343_fail
+ rxcap_347_done:
# rx pass
- rx347_cur."!cursor_pass"(rx347_pos, "backslash:sym<b>")
- rx347_cur."!cursor_debug"("PASS ", "backslash:sym<b>", " at pos=", rx347_pos)
- .return (rx347_cur)
- rx347_fail:
+ 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
- (rx347_rep, rx347_pos, $I10, $P10) = rx347_cur."!mark_fail"(0)
- lt rx347_pos, -1, rx347_done
- eq rx347_pos, -1, rx347_fail
+ 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
- rx347_done:
- rx347_cur."!cursor_fail"()
- rx347_cur."!cursor_debug"("FAIL ", "backslash:sym<b>")
- .return (rx347_cur)
+ rx343_done:
+ rx343_cur."!cursor_fail"()
+ rx343_cur."!cursor_debug"("FAIL ", "backslash:sym<e>")
+ .return (rx343_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<b>" :subid("96_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<e>" :subid("100_1280467470.54449") :method
.annotate 'line', 3
- new $P349, "ResizablePMCArray"
- push $P349, "B"
- push $P349, "b"
- .return ($P349)
+ new $P345, "ResizablePMCArray"
+ push $P345, "E"
+ push $P345, "e"
+ .return ($P345)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<e>" :subid("97_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<f>" :subid("101_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx353_tgt
- .local int rx353_pos
- .local int rx353_off
- .local int rx353_eos
- .local int rx353_rep
- .local pmc rx353_cur
- (rx353_cur, rx353_pos, rx353_tgt) = self."!cursor_start"()
- rx353_cur."!cursor_debug"("START ", "backslash:sym<e>")
- .lex unicode:"$\x{a2}", rx353_cur
+ .local 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 rx353_eos, rx353_tgt
- gt rx353_pos, rx353_eos, rx353_done
- set rx353_off, 0
- lt rx353_pos, 2, rx353_start
- sub rx353_off, rx353_pos, 1
- substr rx353_tgt, rx353_tgt, rx353_off
- rx353_start:
+ 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, rxscan356_done
- goto rxscan356_scan
- rxscan356_loop:
- ($P10) = rx353_cur."from"()
+ ne $I10, -1, rxscan352_done
+ goto rxscan352_scan
+ rxscan352_loop:
+ ($P10) = rx349_cur."from"()
inc $P10
- set rx353_pos, $P10
- ge rx353_pos, rx353_eos, rxscan356_done
- rxscan356_scan:
- set_addr $I10, rxscan356_loop
- rx353_cur."!mark_push"(0, rx353_pos, $I10)
- rxscan356_done:
-.annotate 'line', 123
+ 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
# rx subcapture "sym"
- set_addr $I10, rxcap_357_fail
- rx353_cur."!mark_push"(0, rx353_pos, $I10)
+ set_addr $I10, rxcap_353_fail
+ rx349_cur."!mark_push"(0, rx349_pos, $I10)
# rx enumcharlist negate=0
- ge rx353_pos, rx353_eos, rx353_fail
- sub $I10, rx353_pos, rx353_off
- substr $S10, rx353_tgt, $I10, 1
- index $I11, "eE", $S10
- lt $I11, 0, rx353_fail
- inc rx353_pos
- set_addr $I10, rxcap_357_fail
- ($I12, $I11) = rx353_cur."!mark_peek"($I10)
- rx353_cur."!cursor_pos"($I11)
- ($P10) = rx353_cur."!cursor_start"()
- $P10."!cursor_pass"(rx353_pos, "")
- rx353_cur."!mark_push"(0, -1, 0, $P10)
+ ge rx349_pos, rx349_eos, rx349_fail
+ sub $I10, rx349_pos, rx349_off
+ substr $S10, rx349_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)
$P10."!cursor_names"("sym")
- goto rxcap_357_done
- rxcap_357_fail:
- goto rx353_fail
- rxcap_357_done:
+ goto rxcap_353_done
+ rxcap_353_fail:
+ goto rx349_fail
+ rxcap_353_done:
# rx pass
- rx353_cur."!cursor_pass"(rx353_pos, "backslash:sym<e>")
- rx353_cur."!cursor_debug"("PASS ", "backslash:sym<e>", " at pos=", rx353_pos)
- .return (rx353_cur)
- rx353_fail:
+ 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
- (rx353_rep, rx353_pos, $I10, $P10) = rx353_cur."!mark_fail"(0)
- lt rx353_pos, -1, rx353_done
- eq rx353_pos, -1, rx353_fail
+ 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
- rx353_done:
- rx353_cur."!cursor_fail"()
- rx353_cur."!cursor_debug"("FAIL ", "backslash:sym<e>")
- .return (rx353_cur)
+ rx349_done:
+ rx349_cur."!cursor_fail"()
+ rx349_cur."!cursor_debug"("FAIL ", "backslash:sym<f>")
+ .return (rx349_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<e>" :subid("98_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<f>" :subid("102_1280467470.54449") :method
.annotate 'line', 3
- new $P355, "ResizablePMCArray"
- push $P355, "E"
- push $P355, "e"
- .return ($P355)
+ new $P351, "ResizablePMCArray"
+ push $P351, "F"
+ push $P351, "f"
+ .return ($P351)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<f>" :subid("99_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<h>" :subid("103_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx359_tgt
- .local int rx359_pos
- .local int rx359_off
- .local int rx359_eos
- .local int rx359_rep
- .local pmc rx359_cur
- (rx359_cur, rx359_pos, rx359_tgt) = self."!cursor_start"()
- rx359_cur."!cursor_debug"("START ", "backslash:sym<f>")
- .lex unicode:"$\x{a2}", rx359_cur
+ .local string 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 rx359_eos, rx359_tgt
- gt rx359_pos, rx359_eos, rx359_done
- set rx359_off, 0
- lt rx359_pos, 2, rx359_start
- sub rx359_off, rx359_pos, 1
- substr rx359_tgt, rx359_tgt, rx359_off
- rx359_start:
+ length 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, rxscan362_done
- goto rxscan362_scan
- rxscan362_loop:
- ($P10) = rx359_cur."from"()
+ ne $I10, -1, rxscan358_done
+ goto rxscan358_scan
+ rxscan358_loop:
+ ($P10) = rx355_cur."from"()
inc $P10
- set rx359_pos, $P10
- ge rx359_pos, rx359_eos, rxscan362_done
- rxscan362_scan:
- set_addr $I10, rxscan362_loop
- rx359_cur."!mark_push"(0, rx359_pos, $I10)
- rxscan362_done:
-.annotate 'line', 124
+ set 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
# rx subcapture "sym"
- set_addr $I10, rxcap_363_fail
- rx359_cur."!mark_push"(0, rx359_pos, $I10)
+ set_addr $I10, rxcap_359_fail
+ rx355_cur."!mark_push"(0, rx355_pos, $I10)
# rx enumcharlist negate=0
- ge rx359_pos, rx359_eos, rx359_fail
- sub $I10, rx359_pos, rx359_off
- substr $S10, rx359_tgt, $I10, 1
- index $I11, "fF", $S10
- lt $I11, 0, rx359_fail
- inc rx359_pos
- set_addr $I10, rxcap_363_fail
- ($I12, $I11) = rx359_cur."!mark_peek"($I10)
- rx359_cur."!cursor_pos"($I11)
- ($P10) = rx359_cur."!cursor_start"()
- $P10."!cursor_pass"(rx359_pos, "")
- rx359_cur."!mark_push"(0, -1, 0, $P10)
+ ge rx355_pos, rx355_eos, rx355_fail
+ sub $I10, rx355_pos, rx355_off
+ substr $S10, rx355_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)
$P10."!cursor_names"("sym")
- goto rxcap_363_done
- rxcap_363_fail:
- goto rx359_fail
- rxcap_363_done:
+ goto rxcap_359_done
+ rxcap_359_fail:
+ goto rx355_fail
+ rxcap_359_done:
# rx pass
- rx359_cur."!cursor_pass"(rx359_pos, "backslash:sym<f>")
- rx359_cur."!cursor_debug"("PASS ", "backslash:sym<f>", " at pos=", rx359_pos)
- .return (rx359_cur)
- rx359_fail:
+ 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
- (rx359_rep, rx359_pos, $I10, $P10) = rx359_cur."!mark_fail"(0)
- lt rx359_pos, -1, rx359_done
- eq rx359_pos, -1, rx359_fail
+ 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
- rx359_done:
- rx359_cur."!cursor_fail"()
- rx359_cur."!cursor_debug"("FAIL ", "backslash:sym<f>")
- .return (rx359_cur)
+ rx355_done:
+ rx355_cur."!cursor_fail"()
+ rx355_cur."!cursor_debug"("FAIL ", "backslash:sym<h>")
+ .return (rx355_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<f>" :subid("100_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<h>" :subid("104_1280467470.54449") :method
.annotate 'line', 3
- new $P361, "ResizablePMCArray"
- push $P361, "F"
- push $P361, "f"
- .return ($P361)
+ new $P357, "ResizablePMCArray"
+ push $P357, "H"
+ push $P357, "h"
+ .return ($P357)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<h>" :subid("101_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<r>" :subid("105_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx365_tgt
- .local int rx365_pos
- .local int rx365_off
- .local int rx365_eos
- .local int rx365_rep
- .local pmc rx365_cur
- (rx365_cur, rx365_pos, rx365_tgt) = self."!cursor_start"()
- rx365_cur."!cursor_debug"("START ", "backslash:sym<h>")
- .lex unicode:"$\x{a2}", rx365_cur
- .local pmc match
- .lex "$/", match
- length rx365_eos, rx365_tgt
- gt rx365_pos, rx365_eos, rx365_done
- set rx365_off, 0
- lt rx365_pos, 2, rx365_start
- sub rx365_off, rx365_pos, 1
- substr rx365_tgt, rx365_tgt, rx365_off
- rx365_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan368_done
- goto rxscan368_scan
- rxscan368_loop:
- ($P10) = rx365_cur."from"()
- inc $P10
- set rx365_pos, $P10
- ge rx365_pos, rx365_eos, rxscan368_done
- rxscan368_scan:
- set_addr $I10, rxscan368_loop
- rx365_cur."!mark_push"(0, rx365_pos, $I10)
- rxscan368_done:
-.annotate 'line', 125
+ .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
# rx subcapture "sym"
- set_addr $I10, rxcap_369_fail
- rx365_cur."!mark_push"(0, rx365_pos, $I10)
+ set_addr $I10, rxcap_365_fail
+ rx361_cur."!mark_push"(0, rx361_pos, $I10)
# rx enumcharlist negate=0
- ge rx365_pos, rx365_eos, rx365_fail
- sub $I10, rx365_pos, rx365_off
- substr $S10, rx365_tgt, $I10, 1
- index $I11, "hH", $S10
- lt $I11, 0, rx365_fail
- inc rx365_pos
- set_addr $I10, rxcap_369_fail
- ($I12, $I11) = rx365_cur."!mark_peek"($I10)
- rx365_cur."!cursor_pos"($I11)
- ($P10) = rx365_cur."!cursor_start"()
- $P10."!cursor_pass"(rx365_pos, "")
- rx365_cur."!mark_push"(0, -1, 0, $P10)
+ ge rx361_pos, rx361_eos, rx361_fail
+ sub $I10, rx361_pos, rx361_off
+ substr $S10, rx361_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)
$P10."!cursor_names"("sym")
- goto rxcap_369_done
- rxcap_369_fail:
- goto rx365_fail
- rxcap_369_done:
+ goto rxcap_365_done
+ rxcap_365_fail:
+ goto rx361_fail
+ rxcap_365_done:
# rx pass
- rx365_cur."!cursor_pass"(rx365_pos, "backslash:sym<h>")
- rx365_cur."!cursor_debug"("PASS ", "backslash:sym<h>", " at pos=", rx365_pos)
- .return (rx365_cur)
- rx365_fail:
+ 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
- (rx365_rep, rx365_pos, $I10, $P10) = rx365_cur."!mark_fail"(0)
- lt rx365_pos, -1, rx365_done
- eq rx365_pos, -1, rx365_fail
+ 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
- rx365_done:
- rx365_cur."!cursor_fail"()
- rx365_cur."!cursor_debug"("FAIL ", "backslash:sym<h>")
- .return (rx365_cur)
+ rx361_done:
+ rx361_cur."!cursor_fail"()
+ rx361_cur."!cursor_debug"("FAIL ", "backslash:sym<r>")
+ .return (rx361_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<h>" :subid("102_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<r>" :subid("106_1280467470.54449") :method
.annotate 'line', 3
- new $P367, "ResizablePMCArray"
- push $P367, "H"
- push $P367, "h"
- .return ($P367)
+ new $P363, "ResizablePMCArray"
+ push $P363, "R"
+ push $P363, "r"
+ .return ($P363)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<r>" :subid("103_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<t>" :subid("107_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx371_tgt
- .local int rx371_pos
- .local int rx371_off
- .local int rx371_eos
- .local int rx371_rep
- .local pmc rx371_cur
- (rx371_cur, rx371_pos, rx371_tgt) = self."!cursor_start"()
- rx371_cur."!cursor_debug"("START ", "backslash:sym<r>")
- .lex unicode:"$\x{a2}", rx371_cur
+ .local 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 rx371_eos, rx371_tgt
- gt rx371_pos, rx371_eos, rx371_done
- set rx371_off, 0
- lt rx371_pos, 2, rx371_start
- sub rx371_off, rx371_pos, 1
- substr rx371_tgt, rx371_tgt, rx371_off
- rx371_start:
+ 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, rxscan374_done
- goto rxscan374_scan
- rxscan374_loop:
- ($P10) = rx371_cur."from"()
+ ne $I10, -1, rxscan370_done
+ goto rxscan370_scan
+ rxscan370_loop:
+ ($P10) = rx367_cur."from"()
inc $P10
- set rx371_pos, $P10
- ge rx371_pos, rx371_eos, rxscan374_done
- rxscan374_scan:
- set_addr $I10, rxscan374_loop
- rx371_cur."!mark_push"(0, rx371_pos, $I10)
- rxscan374_done:
-.annotate 'line', 126
+ 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
# rx subcapture "sym"
- set_addr $I10, rxcap_375_fail
- rx371_cur."!mark_push"(0, rx371_pos, $I10)
+ set_addr $I10, rxcap_371_fail
+ rx367_cur."!mark_push"(0, rx367_pos, $I10)
# rx enumcharlist negate=0
- ge rx371_pos, rx371_eos, rx371_fail
- sub $I10, rx371_pos, rx371_off
- substr $S10, rx371_tgt, $I10, 1
- index $I11, "rR", $S10
- lt $I11, 0, rx371_fail
- inc rx371_pos
- set_addr $I10, rxcap_375_fail
- ($I12, $I11) = rx371_cur."!mark_peek"($I10)
- rx371_cur."!cursor_pos"($I11)
- ($P10) = rx371_cur."!cursor_start"()
- $P10."!cursor_pass"(rx371_pos, "")
- rx371_cur."!mark_push"(0, -1, 0, $P10)
+ ge rx367_pos, rx367_eos, rx367_fail
+ sub $I10, rx367_pos, rx367_off
+ substr $S10, rx367_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)
$P10."!cursor_names"("sym")
- goto rxcap_375_done
- rxcap_375_fail:
- goto rx371_fail
- rxcap_375_done:
+ goto rxcap_371_done
+ rxcap_371_fail:
+ goto rx367_fail
+ rxcap_371_done:
# rx pass
- rx371_cur."!cursor_pass"(rx371_pos, "backslash:sym<r>")
- rx371_cur."!cursor_debug"("PASS ", "backslash:sym<r>", " at pos=", rx371_pos)
- .return (rx371_cur)
- rx371_fail:
+ 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
- (rx371_rep, rx371_pos, $I10, $P10) = rx371_cur."!mark_fail"(0)
- lt rx371_pos, -1, rx371_done
- eq rx371_pos, -1, rx371_fail
+ 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
- rx371_done:
- rx371_cur."!cursor_fail"()
- rx371_cur."!cursor_debug"("FAIL ", "backslash:sym<r>")
- .return (rx371_cur)
+ rx367_done:
+ rx367_cur."!cursor_fail"()
+ rx367_cur."!cursor_debug"("FAIL ", "backslash:sym<t>")
+ .return (rx367_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<r>" :subid("104_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<t>" :subid("108_1280467470.54449") :method
.annotate 'line', 3
- new $P373, "ResizablePMCArray"
- push $P373, "R"
- push $P373, "r"
- .return ($P373)
+ new $P369, "ResizablePMCArray"
+ push $P369, "T"
+ push $P369, "t"
+ .return ($P369)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<t>" :subid("105_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<v>" :subid("109_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx377_tgt
- .local int rx377_pos
- .local int rx377_off
- .local int rx377_eos
- .local int rx377_rep
- .local pmc rx377_cur
- (rx377_cur, rx377_pos, rx377_tgt) = self."!cursor_start"()
- rx377_cur."!cursor_debug"("START ", "backslash:sym<t>")
- .lex unicode:"$\x{a2}", rx377_cur
+ .local string 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 rx377_eos, rx377_tgt
- gt rx377_pos, rx377_eos, rx377_done
- set rx377_off, 0
- lt rx377_pos, 2, rx377_start
- sub rx377_off, rx377_pos, 1
- substr rx377_tgt, rx377_tgt, rx377_off
- rx377_start:
+ length 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, rxscan380_done
- goto rxscan380_scan
- rxscan380_loop:
- ($P10) = rx377_cur."from"()
+ ne $I10, -1, rxscan376_done
+ goto rxscan376_scan
+ rxscan376_loop:
+ ($P10) = rx373_cur."from"()
inc $P10
- set rx377_pos, $P10
- ge rx377_pos, rx377_eos, rxscan380_done
- rxscan380_scan:
- set_addr $I10, rxscan380_loop
- rx377_cur."!mark_push"(0, rx377_pos, $I10)
- rxscan380_done:
-.annotate 'line', 127
+ set 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
# rx subcapture "sym"
- set_addr $I10, rxcap_381_fail
- rx377_cur."!mark_push"(0, rx377_pos, $I10)
+ set_addr $I10, rxcap_377_fail
+ rx373_cur."!mark_push"(0, rx373_pos, $I10)
# rx enumcharlist negate=0
- ge rx377_pos, rx377_eos, rx377_fail
- sub $I10, rx377_pos, rx377_off
- substr $S10, rx377_tgt, $I10, 1
- index $I11, "tT", $S10
- lt $I11, 0, rx377_fail
- inc rx377_pos
- set_addr $I10, rxcap_381_fail
- ($I12, $I11) = rx377_cur."!mark_peek"($I10)
- rx377_cur."!cursor_pos"($I11)
- ($P10) = rx377_cur."!cursor_start"()
- $P10."!cursor_pass"(rx377_pos, "")
- rx377_cur."!mark_push"(0, -1, 0, $P10)
+ ge rx373_pos, rx373_eos, rx373_fail
+ sub $I10, rx373_pos, rx373_off
+ substr $S10, rx373_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)
$P10."!cursor_names"("sym")
- goto rxcap_381_done
- rxcap_381_fail:
- goto rx377_fail
- rxcap_381_done:
+ goto rxcap_377_done
+ rxcap_377_fail:
+ goto rx373_fail
+ rxcap_377_done:
# rx pass
- rx377_cur."!cursor_pass"(rx377_pos, "backslash:sym<t>")
- rx377_cur."!cursor_debug"("PASS ", "backslash:sym<t>", " at pos=", rx377_pos)
- .return (rx377_cur)
- rx377_fail:
+ 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
- (rx377_rep, rx377_pos, $I10, $P10) = rx377_cur."!mark_fail"(0)
- lt rx377_pos, -1, rx377_done
- eq rx377_pos, -1, rx377_fail
+ 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
- rx377_done:
- rx377_cur."!cursor_fail"()
- rx377_cur."!cursor_debug"("FAIL ", "backslash:sym<t>")
- .return (rx377_cur)
+ rx373_done:
+ rx373_cur."!cursor_fail"()
+ rx373_cur."!cursor_debug"("FAIL ", "backslash:sym<v>")
+ .return (rx373_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<t>" :subid("106_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<v>" :subid("110_1280467470.54449") :method
.annotate 'line', 3
- new $P379, "ResizablePMCArray"
- push $P379, "T"
- push $P379, "t"
- .return ($P379)
+ new $P375, "ResizablePMCArray"
+ push $P375, "V"
+ push $P375, "v"
+ .return ($P375)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<v>" :subid("107_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<o>" :subid("111_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx383_tgt
- .local int rx383_pos
- .local int rx383_off
- .local int rx383_eos
- .local int rx383_rep
- .local pmc rx383_cur
- (rx383_cur, rx383_pos, rx383_tgt) = self."!cursor_start"()
- rx383_cur."!cursor_debug"("START ", "backslash:sym<v>")
- .lex unicode:"$\x{a2}", rx383_cur
- .local pmc match
- .lex "$/", match
- length rx383_eos, rx383_tgt
- gt rx383_pos, rx383_eos, rx383_done
- set rx383_off, 0
- lt rx383_pos, 2, rx383_start
- sub rx383_off, rx383_pos, 1
- substr rx383_tgt, rx383_tgt, rx383_off
- rx383_start:
+ .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) = rx383_cur."from"()
+ ($P10) = rx379_cur."from"()
inc $P10
- set rx383_pos, $P10
- ge rx383_pos, rx383_eos, rxscan386_done
+ set rx379_pos, $P10
+ ge rx379_pos, rx379_eos, rxscan386_done
rxscan386_scan:
set_addr $I10, rxscan386_loop
- rx383_cur."!mark_push"(0, rx383_pos, $I10)
+ rx379_cur."!mark_push"(0, rx379_pos, $I10)
rxscan386_done:
-.annotate 'line', 128
+.annotate 'line', 131
# rx subcapture "sym"
set_addr $I10, rxcap_387_fail
- rx383_cur."!mark_push"(0, rx383_pos, $I10)
+ rx379_cur."!mark_push"(0, rx379_pos, $I10)
# rx enumcharlist negate=0
- ge rx383_pos, rx383_eos, rx383_fail
- sub $I10, rx383_pos, rx383_off
- substr $S10, rx383_tgt, $I10, 1
- index $I11, "vV", $S10
- lt $I11, 0, rx383_fail
- inc rx383_pos
+ ge rx379_pos, rx379_eos, rx379_fail
+ sub $I10, rx379_pos, rx379_off
+ substr $S10, rx379_tgt, $I10, 1
+ index $I11, "oO", $S10
+ lt $I11, 0, rx379_fail
+ inc rx379_pos
set_addr $I10, rxcap_387_fail
- ($I12, $I11) = rx383_cur."!mark_peek"($I10)
- rx383_cur."!cursor_pos"($I11)
- ($P10) = rx383_cur."!cursor_start"()
- $P10."!cursor_pass"(rx383_pos, "")
- rx383_cur."!mark_push"(0, -1, 0, $P10)
+ ($I12, $I11) = rx379_cur."!mark_peek"($I10)
+ rx379_cur."!cursor_pos"($I11)
+ ($P10) = rx379_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx379_pos, "")
+ rx379_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
goto rxcap_387_done
rxcap_387_fail:
- goto rx383_fail
+ goto rx379_fail
rxcap_387_done:
+ alt388_0:
+ set_addr $I10, alt388_1
+ rx379_cur."!mark_push"(0, rx379_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)
+ $P10."!cursor_names"("octint")
+ rx379_pos = $P10."pos"()
+ goto alt388_end
+ alt388_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
+ # 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)
+ $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
- rx383_cur."!cursor_pass"(rx383_pos, "backslash:sym<v>")
- rx383_cur."!cursor_debug"("PASS ", "backslash:sym<v>", " at pos=", rx383_pos)
- .return (rx383_cur)
- rx383_fail:
+ 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
- (rx383_rep, rx383_pos, $I10, $P10) = rx383_cur."!mark_fail"(0)
- lt rx383_pos, -1, rx383_done
- eq rx383_pos, -1, rx383_fail
+ 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
- rx383_done:
- rx383_cur."!cursor_fail"()
- rx383_cur."!cursor_debug"("FAIL ", "backslash:sym<v>")
- .return (rx383_cur)
+ 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<v>" :subid("108_1275811476.7961") :method
+.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, "V"
- push $P385, "v"
+ push $P385, $P381
+ push $P385, $P382
+ push $P385, $P383
+ push $P385, $P384
.return ($P385)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<o>" :subid("109_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<x>" :subid("113_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx389_tgt
- .local int rx389_pos
- .local int rx389_off
- .local int rx389_eos
- .local int rx389_rep
- .local pmc rx389_cur
- (rx389_cur, rx389_pos, rx389_tgt) = self."!cursor_start"()
- rx389_cur."!cursor_debug"("START ", "backslash:sym<o>")
- .lex unicode:"$\x{a2}", rx389_cur
- .local pmc match
- .lex "$/", match
- length rx389_eos, rx389_tgt
- gt rx389_pos, rx389_eos, rx389_done
- set rx389_off, 0
- lt rx389_pos, 2, rx389_start
- sub rx389_off, rx389_pos, 1
- substr rx389_tgt, rx389_tgt, rx389_off
- rx389_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan396_done
- goto rxscan396_scan
- rxscan396_loop:
- ($P10) = rx389_cur."from"()
- inc $P10
- set rx389_pos, $P10
- ge rx389_pos, rx389_eos, rxscan396_done
- rxscan396_scan:
- set_addr $I10, rxscan396_loop
- rx389_cur."!mark_push"(0, rx389_pos, $I10)
- rxscan396_done:
-.annotate 'line', 129
- # rx subcapture "sym"
- set_addr $I10, rxcap_397_fail
- rx389_cur."!mark_push"(0, rx389_pos, $I10)
- # rx enumcharlist negate=0
- ge rx389_pos, rx389_eos, rx389_fail
- sub $I10, rx389_pos, rx389_off
- substr $S10, rx389_tgt, $I10, 1
- index $I11, "oO", $S10
- lt $I11, 0, rx389_fail
- inc rx389_pos
- set_addr $I10, rxcap_397_fail
- ($I12, $I11) = rx389_cur."!mark_peek"($I10)
- rx389_cur."!cursor_pos"($I11)
- ($P10) = rx389_cur."!cursor_start"()
- $P10."!cursor_pass"(rx389_pos, "")
- rx389_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_397_done
- rxcap_397_fail:
- goto rx389_fail
- rxcap_397_done:
- alt398_0:
- set_addr $I10, alt398_1
- rx389_cur."!mark_push"(0, rx389_pos, $I10)
- # rx subrule "octint" subtype=capture negate=
- rx389_cur."!cursor_pos"(rx389_pos)
- $P10 = rx389_cur."octint"()
- unless $P10, rx389_fail
- rx389_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("octint")
- rx389_pos = $P10."pos"()
- goto alt398_end
- alt398_1:
- # rx literal "["
- add $I11, rx389_pos, 1
- gt $I11, rx389_eos, rx389_fail
- sub $I11, rx389_pos, rx389_off
- substr $S10, rx389_tgt, $I11, 1
- ne $S10, "[", rx389_fail
- add rx389_pos, 1
- # rx subrule "octints" subtype=capture negate=
- rx389_cur."!cursor_pos"(rx389_pos)
- $P10 = rx389_cur."octints"()
- unless $P10, rx389_fail
- rx389_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("octints")
- rx389_pos = $P10."pos"()
- # rx literal "]"
- add $I11, rx389_pos, 1
- gt $I11, rx389_eos, rx389_fail
- sub $I11, rx389_pos, rx389_off
- substr $S10, rx389_tgt, $I11, 1
- ne $S10, "]", rx389_fail
- add rx389_pos, 1
- alt398_end:
- # rx pass
- rx389_cur."!cursor_pass"(rx389_pos, "backslash:sym<o>")
- rx389_cur."!cursor_debug"("PASS ", "backslash:sym<o>", " at pos=", rx389_pos)
- .return (rx389_cur)
- rx389_fail:
-.annotate 'line', 3
- (rx389_rep, rx389_pos, $I10, $P10) = rx389_cur."!mark_fail"(0)
- lt rx389_pos, -1, rx389_done
- eq rx389_pos, -1, rx389_fail
- jump $I10
- rx389_done:
- rx389_cur."!cursor_fail"()
- rx389_cur."!cursor_debug"("FAIL ", "backslash:sym<o>")
- .return (rx389_cur)
- .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<o>" :subid("110_1275811476.7961") :method
-.annotate 'line', 3
- $P391 = self."!PREFIX__!subrule"("octints", "O[")
- $P392 = self."!PREFIX__!subrule"("octint", "O")
- $P393 = self."!PREFIX__!subrule"("octints", "o[")
- $P394 = self."!PREFIX__!subrule"("octint", "o")
- new $P395, "ResizablePMCArray"
- push $P395, $P391
- push $P395, $P392
- push $P395, $P393
- push $P395, $P394
- .return ($P395)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<x>" :subid("111_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
- .local string rx400_tgt
- .local int rx400_pos
- .local int rx400_off
- .local int rx400_eos
- .local int rx400_rep
- .local pmc rx400_cur
- (rx400_cur, rx400_pos, rx400_tgt) = self."!cursor_start"()
- rx400_cur."!cursor_debug"("START ", "backslash:sym<x>")
- .lex unicode:"$\x{a2}", rx400_cur
- .local pmc match
- .lex "$/", match
- length rx400_eos, rx400_tgt
- gt rx400_pos, rx400_eos, rx400_done
- set rx400_off, 0
- lt rx400_pos, 2, rx400_start
- sub rx400_off, rx400_pos, 1
- substr rx400_tgt, rx400_tgt, rx400_off
- rx400_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan407_done
- goto rxscan407_scan
- rxscan407_loop:
- ($P10) = rx400_cur."from"()
- inc $P10
- set rx400_pos, $P10
- ge rx400_pos, rx400_eos, rxscan407_done
- rxscan407_scan:
- set_addr $I10, rxscan407_loop
- rx400_cur."!mark_push"(0, rx400_pos, $I10)
- rxscan407_done:
-.annotate 'line', 130
+ .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_408_fail
- rx400_cur."!mark_push"(0, rx400_pos, $I10)
+ set_addr $I10, rxcap_398_fail
+ rx390_cur."!mark_push"(0, rx390_pos, $I10)
# rx enumcharlist negate=0
- ge rx400_pos, rx400_eos, rx400_fail
- sub $I10, rx400_pos, rx400_off
- substr $S10, rx400_tgt, $I10, 1
+ ge 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, rx400_fail
- inc rx400_pos
- set_addr $I10, rxcap_408_fail
- ($I12, $I11) = rx400_cur."!mark_peek"($I10)
- rx400_cur."!cursor_pos"($I11)
- ($P10) = rx400_cur."!cursor_start"()
- $P10."!cursor_pass"(rx400_pos, "")
- rx400_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, 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_408_done
- rxcap_408_fail:
- goto rx400_fail
- rxcap_408_done:
- alt409_0:
- set_addr $I10, alt409_1
- rx400_cur."!mark_push"(0, rx400_pos, $I10)
+ goto rxcap_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=
- rx400_cur."!cursor_pos"(rx400_pos)
- $P10 = rx400_cur."hexint"()
- unless $P10, rx400_fail
- rx400_cur."!mark_push"(0, -1, 0, $P10)
+ 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")
- rx400_pos = $P10."pos"()
- goto alt409_end
- alt409_1:
+ rx390_pos = $P10."pos"()
+ goto alt399_end
+ alt399_1:
# rx literal "["
- add $I11, rx400_pos, 1
- gt $I11, rx400_eos, rx400_fail
- sub $I11, rx400_pos, rx400_off
- substr $S10, rx400_tgt, $I11, 1
- ne $S10, "[", rx400_fail
- add rx400_pos, 1
+ add $I11, 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=
- rx400_cur."!cursor_pos"(rx400_pos)
- $P10 = rx400_cur."hexints"()
- unless $P10, rx400_fail
- rx400_cur."!mark_push"(0, -1, 0, $P10)
+ 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")
- rx400_pos = $P10."pos"()
+ rx390_pos = $P10."pos"()
# rx literal "]"
- add $I11, rx400_pos, 1
- gt $I11, rx400_eos, rx400_fail
- sub $I11, rx400_pos, rx400_off
- substr $S10, rx400_tgt, $I11, 1
- ne $S10, "]", rx400_fail
- add rx400_pos, 1
- alt409_end:
- # rx pass
- rx400_cur."!cursor_pass"(rx400_pos, "backslash:sym<x>")
- rx400_cur."!cursor_debug"("PASS ", "backslash:sym<x>", " at pos=", rx400_pos)
- .return (rx400_cur)
- rx400_fail:
-.annotate 'line', 3
- (rx400_rep, rx400_pos, $I10, $P10) = rx400_cur."!mark_fail"(0)
- lt rx400_pos, -1, rx400_done
- eq rx400_pos, -1, rx400_fail
- jump $I10
- rx400_done:
- rx400_cur."!cursor_fail"()
- rx400_cur."!cursor_debug"("FAIL ", "backslash:sym<x>")
- .return (rx400_cur)
+ 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)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<x>" :subid("112_1275811476.7961") :method
-.annotate 'line', 3
- $P402 = self."!PREFIX__!subrule"("hexints", "X[")
- $P403 = self."!PREFIX__!subrule"("hexint", "X")
- $P404 = self."!PREFIX__!subrule"("hexints", "x[")
- $P405 = self."!PREFIX__!subrule"("hexint", "x")
- new $P406, "ResizablePMCArray"
- push $P406, $P402
- push $P406, $P403
- push $P406, $P404
- push $P406, $P405
- .return ($P406)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<c>" :subid("113_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
- .local string rx411_tgt
- .local int rx411_pos
- .local int rx411_off
- .local int rx411_eos
- .local int rx411_rep
- .local pmc rx411_cur
- (rx411_cur, rx411_pos, rx411_tgt) = self."!cursor_start"()
- rx411_cur."!cursor_debug"("START ", "backslash:sym<c>")
- .lex unicode:"$\x{a2}", rx411_cur
- .local pmc match
- .lex "$/", match
- length rx411_eos, rx411_tgt
- gt rx411_pos, rx411_eos, rx411_done
- set rx411_off, 0
- lt rx411_pos, 2, rx411_start
- sub rx411_off, rx411_pos, 1
- substr rx411_tgt, rx411_tgt, rx411_off
- rx411_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan416_done
- goto rxscan416_scan
- rxscan416_loop:
- ($P10) = rx411_cur."from"()
- inc $P10
- set rx411_pos, $P10
- ge rx411_pos, rx411_eos, rxscan416_done
- rxscan416_scan:
- set_addr $I10, rxscan416_loop
- rx411_cur."!mark_push"(0, rx411_pos, $I10)
- rxscan416_done:
-.annotate 'line', 131
+.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>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan406_done
+ goto rxscan406_scan
+ rxscan406_loop:
+ ($P10) = rx401_cur."from"()
+ inc $P10
+ set rx401_pos, $P10
+ ge rx401_pos, rx401_eos, rxscan406_done
+ rxscan406_scan:
+ set_addr $I10, rxscan406_loop
+ rx401_cur."!mark_push"(0, rx401_pos, $I10)
+ rxscan406_done:
+.annotate 'line', 133
# rx subcapture "sym"
- set_addr $I10, rxcap_417_fail
- rx411_cur."!mark_push"(0, rx411_pos, $I10)
+ set_addr $I10, rxcap_407_fail
+ rx401_cur."!mark_push"(0, rx401_pos, $I10)
# rx enumcharlist negate=0
- ge rx411_pos, rx411_eos, rx411_fail
- sub $I10, rx411_pos, rx411_off
- substr $S10, rx411_tgt, $I10, 1
+ 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, rx411_fail
- inc rx411_pos
- set_addr $I10, rxcap_417_fail
- ($I12, $I11) = rx411_cur."!mark_peek"($I10)
- rx411_cur."!cursor_pos"($I11)
- ($P10) = rx411_cur."!cursor_start"()
- $P10."!cursor_pass"(rx411_pos, "")
- rx411_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx401_fail
+ inc rx401_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)
$P10."!cursor_names"("sym")
- goto rxcap_417_done
- rxcap_417_fail:
- goto rx411_fail
- rxcap_417_done:
+ goto rxcap_407_done
+ rxcap_407_fail:
+ goto rx401_fail
+ rxcap_407_done:
# rx subrule "charspec" subtype=capture negate=
- rx411_cur."!cursor_pos"(rx411_pos)
- $P10 = rx411_cur."charspec"()
- unless $P10, rx411_fail
- rx411_cur."!mark_push"(0, -1, 0, $P10)
+ 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")
- rx411_pos = $P10."pos"()
+ rx401_pos = $P10."pos"()
# rx pass
- rx411_cur."!cursor_pass"(rx411_pos, "backslash:sym<c>")
- rx411_cur."!cursor_debug"("PASS ", "backslash:sym<c>", " at pos=", rx411_pos)
- .return (rx411_cur)
- rx411_fail:
+ 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
- (rx411_rep, rx411_pos, $I10, $P10) = rx411_cur."!mark_fail"(0)
- lt rx411_pos, -1, rx411_done
- eq rx411_pos, -1, rx411_fail
+ 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
- rx411_done:
- rx411_cur."!cursor_fail"()
- rx411_cur."!cursor_debug"("FAIL ", "backslash:sym<c>")
- .return (rx411_cur)
+ rx401_done:
+ rx401_cur."!cursor_fail"()
+ rx401_cur."!cursor_debug"("FAIL ", "backslash:sym<c>")
+ .return (rx401_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<c>" :subid("114_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<c>" :subid("116_1280467470.54449") :method
.annotate 'line', 3
- $P413 = self."!PREFIX__!subrule"("charspec", "C")
- $P414 = self."!PREFIX__!subrule"("charspec", "c")
- new $P415, "ResizablePMCArray"
- push $P415, $P413
- push $P415, $P414
- .return ($P415)
+ $P403 = self."!PREFIX__!subrule"("charspec", "C")
+ $P404 = self."!PREFIX__!subrule"("charspec", "c")
+ new $P405, "ResizablePMCArray"
+ push $P405, $P403
+ push $P405, $P404
+ .return ($P405)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<A>" :subid("115_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<A>" :subid("117_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx419_tgt
- .local int rx419_pos
- .local int rx419_off
- .local int rx419_eos
- .local int rx419_rep
- .local pmc rx419_cur
- (rx419_cur, rx419_pos, rx419_tgt) = self."!cursor_start"()
- rx419_cur."!cursor_debug"("START ", "backslash:sym<A>")
- .lex unicode:"$\x{a2}", rx419_cur
+ .local 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 rx419_eos, rx419_tgt
- gt rx419_pos, rx419_eos, rx419_done
- set rx419_off, 0
- lt rx419_pos, 2, rx419_start
- sub rx419_off, rx419_pos, 1
- substr rx419_tgt, rx419_tgt, rx419_off
- rx419_start:
+ 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, rxscan423_done
- goto rxscan423_scan
- rxscan423_loop:
- ($P10) = rx419_cur."from"()
+ ne $I10, -1, rxscan413_done
+ goto rxscan413_scan
+ rxscan413_loop:
+ ($P10) = rx409_cur."from"()
inc $P10
- set rx419_pos, $P10
- ge rx419_pos, rx419_eos, rxscan423_done
- rxscan423_scan:
- set_addr $I10, rxscan423_loop
- rx419_cur."!mark_push"(0, rx419_pos, $I10)
- rxscan423_done:
-.annotate 'line', 132
+ 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, rx419_pos, 1
- gt $I11, rx419_eos, rx419_fail
- sub $I11, rx419_pos, rx419_off
- substr $S10, rx419_tgt, $I11, 1
- ne $S10, "A", rx419_fail
- add rx419_pos, 1
+ 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=
- rx419_cur."!cursor_pos"(rx419_pos)
- $P10 = rx419_cur."obs"("\\A as beginning-of-string matcher", "^")
- unless $P10, rx419_fail
- rx419_pos = $P10."pos"()
+ rx409_cur."!cursor_pos"(rx409_pos)
+ $P10 = rx409_cur."obs"("\\A as beginning-of-string matcher", "^")
+ unless $P10, rx409_fail
+ rx409_pos = $P10."pos"()
# rx pass
- rx419_cur."!cursor_pass"(rx419_pos, "backslash:sym<A>")
- rx419_cur."!cursor_debug"("PASS ", "backslash:sym<A>", " at pos=", rx419_pos)
- .return (rx419_cur)
- rx419_fail:
+ 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
- (rx419_rep, rx419_pos, $I10, $P10) = rx419_cur."!mark_fail"(0)
- lt rx419_pos, -1, rx419_done
- eq rx419_pos, -1, rx419_fail
+ 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
- rx419_done:
- rx419_cur."!cursor_fail"()
- rx419_cur."!cursor_debug"("FAIL ", "backslash:sym<A>")
- .return (rx419_cur)
+ rx409_done:
+ rx409_cur."!cursor_fail"()
+ rx409_cur."!cursor_debug"("FAIL ", "backslash:sym<A>")
+ .return (rx409_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<A>" :subid("116_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<A>" :subid("118_1280467470.54449") :method
.annotate 'line', 3
- $P421 = self."!PREFIX__!subrule"("obs", "A")
- new $P422, "ResizablePMCArray"
- push $P422, $P421
- .return ($P422)
+ $P411 = self."!PREFIX__!subrule"("obs", "A")
+ new $P412, "ResizablePMCArray"
+ push $P412, $P411
+ .return ($P412)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<z>" :subid("117_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<z>" :subid("119_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx425_tgt
- .local int rx425_pos
- .local int rx425_off
- .local int rx425_eos
- .local int rx425_rep
- .local pmc rx425_cur
- (rx425_cur, rx425_pos, rx425_tgt) = self."!cursor_start"()
- rx425_cur."!cursor_debug"("START ", "backslash:sym<z>")
- .lex unicode:"$\x{a2}", rx425_cur
+ .local 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 rx425_eos, rx425_tgt
- gt rx425_pos, rx425_eos, rx425_done
- set rx425_off, 0
- lt rx425_pos, 2, rx425_start
- sub rx425_off, rx425_pos, 1
- substr rx425_tgt, rx425_tgt, rx425_off
- rx425_start:
+ 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, rxscan429_done
- goto rxscan429_scan
- rxscan429_loop:
- ($P10) = rx425_cur."from"()
+ ne $I10, -1, rxscan419_done
+ goto rxscan419_scan
+ rxscan419_loop:
+ ($P10) = rx415_cur."from"()
inc $P10
- set rx425_pos, $P10
- ge rx425_pos, rx425_eos, rxscan429_done
- rxscan429_scan:
- set_addr $I10, rxscan429_loop
- rx425_cur."!mark_push"(0, rx425_pos, $I10)
- rxscan429_done:
-.annotate 'line', 133
+ 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
# rx literal "z"
- add $I11, rx425_pos, 1
- gt $I11, rx425_eos, rx425_fail
- sub $I11, rx425_pos, rx425_off
- substr $S10, rx425_tgt, $I11, 1
- ne $S10, "z", rx425_fail
- add rx425_pos, 1
+ 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
# rx subrule "obs" subtype=method negate=
- rx425_cur."!cursor_pos"(rx425_pos)
- $P10 = rx425_cur."obs"("\\z as end-of-string matcher", "$")
- unless $P10, rx425_fail
- rx425_pos = $P10."pos"()
+ 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
- rx425_cur."!cursor_pass"(rx425_pos, "backslash:sym<z>")
- rx425_cur."!cursor_debug"("PASS ", "backslash:sym<z>", " at pos=", rx425_pos)
- .return (rx425_cur)
- rx425_fail:
+ 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
- (rx425_rep, rx425_pos, $I10, $P10) = rx425_cur."!mark_fail"(0)
- lt rx425_pos, -1, rx425_done
- eq rx425_pos, -1, rx425_fail
+ 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
- rx425_done:
- rx425_cur."!cursor_fail"()
- rx425_cur."!cursor_debug"("FAIL ", "backslash:sym<z>")
- .return (rx425_cur)
+ rx415_done:
+ rx415_cur."!cursor_fail"()
+ rx415_cur."!cursor_debug"("FAIL ", "backslash:sym<z>")
+ .return (rx415_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<z>" :subid("118_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<z>" :subid("120_1280467470.54449") :method
.annotate 'line', 3
- $P427 = self."!PREFIX__!subrule"("obs", "z")
- new $P428, "ResizablePMCArray"
- push $P428, $P427
- .return ($P428)
+ $P417 = self."!PREFIX__!subrule"("obs", "z")
+ new $P418, "ResizablePMCArray"
+ push $P418, $P417
+ .return ($P418)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Z>" :subid("119_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<Z>" :subid("121_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx431_tgt
- .local int rx431_pos
- .local int rx431_off
- .local int rx431_eos
- .local int rx431_rep
- .local pmc rx431_cur
- (rx431_cur, rx431_pos, rx431_tgt) = self."!cursor_start"()
- rx431_cur."!cursor_debug"("START ", "backslash:sym<Z>")
- .lex unicode:"$\x{a2}", rx431_cur
+ .local string 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 rx431_eos, rx431_tgt
- gt rx431_pos, rx431_eos, rx431_done
- set rx431_off, 0
- lt rx431_pos, 2, rx431_start
- sub rx431_off, rx431_pos, 1
- substr rx431_tgt, rx431_tgt, rx431_off
- rx431_start:
+ length 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, rxscan435_done
- goto rxscan435_scan
- rxscan435_loop:
- ($P10) = rx431_cur."from"()
+ ne $I10, -1, rxscan425_done
+ goto rxscan425_scan
+ rxscan425_loop:
+ ($P10) = rx421_cur."from"()
inc $P10
- set rx431_pos, $P10
- ge rx431_pos, rx431_eos, rxscan435_done
- rxscan435_scan:
- set_addr $I10, rxscan435_loop
- rx431_cur."!mark_push"(0, rx431_pos, $I10)
- rxscan435_done:
-.annotate 'line', 134
+ 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
# rx literal "Z"
- add $I11, rx431_pos, 1
- gt $I11, rx431_eos, rx431_fail
- sub $I11, rx431_pos, rx431_off
- substr $S10, rx431_tgt, $I11, 1
- ne $S10, "Z", rx431_fail
- add rx431_pos, 1
+ 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
# rx subrule "obs" subtype=method negate=
- rx431_cur."!cursor_pos"(rx431_pos)
- $P10 = rx431_cur."obs"("\\Z as end-of-string matcher", "\\n?$")
- unless $P10, rx431_fail
- rx431_pos = $P10."pos"()
+ 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
- rx431_cur."!cursor_pass"(rx431_pos, "backslash:sym<Z>")
- rx431_cur."!cursor_debug"("PASS ", "backslash:sym<Z>", " at pos=", rx431_pos)
- .return (rx431_cur)
- rx431_fail:
+ 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
- (rx431_rep, rx431_pos, $I10, $P10) = rx431_cur."!mark_fail"(0)
- lt rx431_pos, -1, rx431_done
- eq rx431_pos, -1, rx431_fail
+ 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
- rx431_done:
- rx431_cur."!cursor_fail"()
- rx431_cur."!cursor_debug"("FAIL ", "backslash:sym<Z>")
- .return (rx431_cur)
+ rx421_done:
+ rx421_cur."!cursor_fail"()
+ rx421_cur."!cursor_debug"("FAIL ", "backslash:sym<Z>")
+ .return (rx421_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Z>" :subid("120_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<Z>" :subid("122_1280467470.54449") :method
.annotate 'line', 3
- $P433 = self."!PREFIX__!subrule"("obs", "Z")
- new $P434, "ResizablePMCArray"
- push $P434, $P433
- .return ($P434)
+ $P423 = self."!PREFIX__!subrule"("obs", "Z")
+ new $P424, "ResizablePMCArray"
+ push $P424, $P423
+ .return ($P424)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Q>" :subid("121_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<Q>" :subid("123_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx437_tgt
- .local int rx437_pos
- .local int rx437_off
- .local int rx437_eos
- .local int rx437_rep
- .local pmc rx437_cur
- (rx437_cur, rx437_pos, rx437_tgt) = self."!cursor_start"()
- rx437_cur."!cursor_debug"("START ", "backslash:sym<Q>")
- .lex unicode:"$\x{a2}", rx437_cur
+ .local string 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 rx437_eos, rx437_tgt
- gt rx437_pos, rx437_eos, rx437_done
- set rx437_off, 0
- lt rx437_pos, 2, rx437_start
- sub rx437_off, rx437_pos, 1
- substr rx437_tgt, rx437_tgt, rx437_off
- rx437_start:
+ length 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, rxscan441_done
- goto rxscan441_scan
- rxscan441_loop:
- ($P10) = rx437_cur."from"()
+ ne $I10, -1, rxscan431_done
+ goto rxscan431_scan
+ rxscan431_loop:
+ ($P10) = rx427_cur."from"()
inc $P10
- set rx437_pos, $P10
- ge rx437_pos, rx437_eos, rxscan441_done
- rxscan441_scan:
- set_addr $I10, rxscan441_loop
- rx437_cur."!mark_push"(0, rx437_pos, $I10)
- rxscan441_done:
-.annotate 'line', 135
+ 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
# rx literal "Q"
- add $I11, rx437_pos, 1
- gt $I11, rx437_eos, rx437_fail
- sub $I11, rx437_pos, rx437_off
- substr $S10, rx437_tgt, $I11, 1
- ne $S10, "Q", rx437_fail
- add rx437_pos, 1
+ 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
# rx subrule "obs" subtype=method negate=
- rx437_cur."!cursor_pos"(rx437_pos)
- $P10 = rx437_cur."obs"("\\Q as quotemeta", "quotes or literal variable match")
- unless $P10, rx437_fail
- rx437_pos = $P10."pos"()
+ 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
- rx437_cur."!cursor_pass"(rx437_pos, "backslash:sym<Q>")
- rx437_cur."!cursor_debug"("PASS ", "backslash:sym<Q>", " at pos=", rx437_pos)
- .return (rx437_cur)
- rx437_fail:
+ 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
- (rx437_rep, rx437_pos, $I10, $P10) = rx437_cur."!mark_fail"(0)
- lt rx437_pos, -1, rx437_done
- eq rx437_pos, -1, rx437_fail
+ 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
- rx437_done:
- rx437_cur."!cursor_fail"()
- rx437_cur."!cursor_debug"("FAIL ", "backslash:sym<Q>")
- .return (rx437_cur)
+ 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("122_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<Q>" :subid("124_1280467470.54449") :method
.annotate 'line', 3
- $P439 = self."!PREFIX__!subrule"("obs", "Q")
- new $P440, "ResizablePMCArray"
- push $P440, $P439
- .return ($P440)
+ $P429 = self."!PREFIX__!subrule"("obs", "Q")
+ new $P430, "ResizablePMCArray"
+ push $P430, $P429
+ .return ($P430)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<misc>" :subid("123_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<misc>" :subid("125_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx443_tgt
- .local int rx443_pos
- .local int rx443_off
- .local int rx443_eos
- .local int rx443_rep
- .local pmc rx443_cur
- (rx443_cur, rx443_pos, rx443_tgt) = self."!cursor_start"()
- rx443_cur."!cursor_debug"("START ", "backslash:sym<misc>")
- .lex unicode:"$\x{a2}", rx443_cur
- .local pmc match
- .lex "$/", match
- length rx443_eos, rx443_tgt
- gt rx443_pos, rx443_eos, rx443_done
- set rx443_off, 0
- lt rx443_pos, 2, rx443_start
- sub rx443_off, rx443_pos, 1
- substr rx443_tgt, rx443_tgt, rx443_off
- rx443_start:
+ .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, rxscan446_done
- goto rxscan446_scan
- rxscan446_loop:
- ($P10) = rx443_cur."from"()
+ ne $I10, -1, rxscan436_done
+ goto rxscan436_scan
+ rxscan436_loop:
+ ($P10) = rx433_cur."from"()
inc $P10
- set rx443_pos, $P10
- ge rx443_pos, rx443_eos, rxscan446_done
- rxscan446_scan:
- set_addr $I10, rxscan446_loop
- rx443_cur."!mark_push"(0, rx443_pos, $I10)
- rxscan446_done:
-.annotate 'line', 136
+ 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 rx443_pos, rx443_eos, rx443_fail
- sub $I10, rx443_pos, rx443_off
- is_cclass $I11, 8192, rx443_tgt, $I10
- if $I11, rx443_fail
- inc rx443_pos
+ 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
# rx pass
- rx443_cur."!cursor_pass"(rx443_pos, "backslash:sym<misc>")
- rx443_cur."!cursor_debug"("PASS ", "backslash:sym<misc>", " at pos=", rx443_pos)
- .return (rx443_cur)
- rx443_fail:
+ 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:
.annotate 'line', 3
- (rx443_rep, rx443_pos, $I10, $P10) = rx443_cur."!mark_fail"(0)
- lt rx443_pos, -1, rx443_done
- eq rx443_pos, -1, rx443_fail
+ 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
jump $I10
- rx443_done:
- rx443_cur."!cursor_fail"()
- rx443_cur."!cursor_debug"("FAIL ", "backslash:sym<misc>")
- .return (rx443_cur)
+ rx433_done:
+ rx433_cur."!cursor_fail"()
+ rx433_cur."!cursor_debug"("FAIL ", "backslash:sym<misc>")
+ .return (rx433_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<misc>" :subid("124_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<misc>" :subid("126_1280467470.54449") :method
.annotate 'line', 3
- new $P445, "ResizablePMCArray"
- push $P445, ""
- .return ($P445)
+ new $P435, "ResizablePMCArray"
+ push $P435, ""
+ .return ($P435)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion" :subid("125_1275811476.7961") :method
-.annotate 'line', 138
- $P448 = self."!protoregex"("assertion")
- .return ($P448)
+.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("126_1275811476.7961") :method
-.annotate 'line', 138
- $P450 = self."!PREFIX__!protoregex"("assertion")
- .return ($P450)
+.sub "!PREFIX__assertion" :subid("128_1280467470.54449") :method
+.annotate 'line', 140
+ $P440 = self."!PREFIX__!protoregex"("assertion")
+ .return ($P440)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<?>" :subid("127_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "assertion:sym<?>" :subid("129_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .const 'Sub' $P459 = "129_1275811476.7961"
- capture_lex $P459
- .local string rx452_tgt
- .local int rx452_pos
- .local int rx452_off
- .local int rx452_eos
- .local int rx452_rep
- .local pmc rx452_cur
- (rx452_cur, rx452_pos, rx452_tgt) = self."!cursor_start"()
- rx452_cur."!cursor_debug"("START ", "assertion:sym<?>")
- .lex unicode:"$\x{a2}", rx452_cur
- .local pmc match
- .lex "$/", match
- length rx452_eos, rx452_tgt
- gt rx452_pos, rx452_eos, rx452_done
- set rx452_off, 0
- lt rx452_pos, 2, rx452_start
- sub rx452_off, rx452_pos, 1
- substr rx452_tgt, rx452_tgt, rx452_off
- rx452_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan456_done
- goto rxscan456_scan
- rxscan456_loop:
- ($P10) = rx452_cur."from"()
- inc $P10
- set rx452_pos, $P10
- ge rx452_pos, rx452_eos, rxscan456_done
- rxscan456_scan:
- set_addr $I10, rxscan456_loop
- rx452_cur."!mark_push"(0, rx452_pos, $I10)
- rxscan456_done:
-.annotate 'line', 140
+ .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
+ (rx442_cur, rx442_pos, rx442_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx442_cur
+ .local pmc match
+ .lex "$/", match
+ length rx442_eos, rx442_tgt
+ gt rx442_pos, rx442_eos, rx442_done
+ set rx442_off, 0
+ lt rx442_pos, 2, rx442_start
+ sub rx442_off, rx442_pos, 1
+ substr rx442_tgt, rx442_tgt, rx442_off
+ rx442_start:
+ eq $I10, 1, rx442_restart
+ rx442_cur."!cursor_debug"("START ", "assertion:sym<?>")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan446_done
+ goto rxscan446_scan
+ rxscan446_loop:
+ ($P10) = rx442_cur."from"()
+ inc $P10
+ set rx442_pos, $P10
+ ge rx442_pos, rx442_eos, rxscan446_done
+ rxscan446_scan:
+ set_addr $I10, rxscan446_loop
+ rx442_cur."!mark_push"(0, rx442_pos, $I10)
+ rxscan446_done:
+.annotate 'line', 142
# rx literal "?"
- add $I11, rx452_pos, 1
- gt $I11, rx452_eos, rx452_fail
- sub $I11, rx452_pos, rx452_off
- substr $S10, rx452_tgt, $I11, 1
- ne $S10, "?", rx452_fail
- add rx452_pos, 1
- alt457_0:
- set_addr $I10, alt457_1
- rx452_cur."!mark_push"(0, rx452_pos, $I10)
+ 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
+ rx442_cur."!mark_push"(0, rx442_pos, $I10)
# rx subrule "before" subtype=zerowidth negate=
- rx452_cur."!cursor_pos"(rx452_pos)
- .const 'Sub' $P459 = "129_1275811476.7961"
- capture_lex $P459
- $P10 = rx452_cur."before"($P459)
- unless $P10, rx452_fail
- goto alt457_end
- alt457_1:
+ 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=
- rx452_cur."!cursor_pos"(rx452_pos)
- $P10 = rx452_cur."assertion"()
- unless $P10, rx452_fail
- rx452_cur."!mark_push"(0, -1, 0, $P10)
+ 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")
- rx452_pos = $P10."pos"()
- alt457_end:
+ rx442_pos = $P10."pos"()
+ alt447_end:
# rx pass
- rx452_cur."!cursor_pass"(rx452_pos, "assertion:sym<?>")
- rx452_cur."!cursor_debug"("PASS ", "assertion:sym<?>", " at pos=", rx452_pos)
- .return (rx452_cur)
- rx452_fail:
+ rx442_cur."!cursor_pass"(rx442_pos, "assertion:sym<?>")
+ rx442_cur."!cursor_debug"("PASS ", "assertion:sym<?>", " at pos=", rx442_pos)
+ .return (rx442_cur)
+ rx442_restart:
.annotate 'line', 3
- (rx452_rep, rx452_pos, $I10, $P10) = rx452_cur."!mark_fail"(0)
- lt rx452_pos, -1, rx452_done
- eq rx452_pos, -1, rx452_fail
+ rx442_cur."!cursor_debug"("NEXT ", "assertion:sym<?>")
+ rx442_fail:
+ (rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0)
+ lt rx442_pos, -1, rx442_done
+ eq rx442_pos, -1, rx442_fail
jump $I10
- rx452_done:
- rx452_cur."!cursor_fail"()
- rx452_cur."!cursor_debug"("FAIL ", "assertion:sym<?>")
- .return (rx452_cur)
+ rx442_done:
+ rx442_cur."!cursor_fail"()
+ rx442_cur."!cursor_debug"("FAIL ", "assertion:sym<?>")
+ .return (rx442_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<?>" :subid("128_1275811476.7961") :method
+.sub "!PREFIX__assertion:sym<?>" :subid("130_1280467470.54449") :method
.annotate 'line', 3
- $P454 = self."!PREFIX__!subrule"("assertion", "?")
- new $P455, "ResizablePMCArray"
- push $P455, $P454
- push $P455, "?"
- .return ($P455)
+ $P444 = self."!PREFIX__!subrule"("assertion", "?")
+ new $P445, "ResizablePMCArray"
+ push $P445, $P444
+ push $P445, "?"
+ .return ($P445)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block458" :anon :subid("129_1275811476.7961") :method :outer("127_1275811476.7961")
-.annotate 'line', 140
- .local string rx460_tgt
- .local int rx460_pos
- .local int rx460_off
- .local int rx460_eos
- .local int rx460_rep
- .local pmc rx460_cur
- (rx460_cur, rx460_pos, rx460_tgt) = self."!cursor_start"()
- rx460_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx460_cur
- .local pmc match
- .lex "$/", match
- length rx460_eos, rx460_tgt
- gt rx460_pos, rx460_eos, rx460_done
- set rx460_off, 0
- lt rx460_pos, 2, rx460_start
- sub rx460_off, rx460_pos, 1
- substr rx460_tgt, rx460_tgt, rx460_off
- rx460_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan461_done
- goto rxscan461_scan
- rxscan461_loop:
- ($P10) = rx460_cur."from"()
- inc $P10
- set rx460_pos, $P10
- ge rx460_pos, rx460_eos, rxscan461_done
- rxscan461_scan:
- set_addr $I10, rxscan461_loop
- rx460_cur."!mark_push"(0, rx460_pos, $I10)
- rxscan461_done:
+.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, rx460_pos, 1
- gt $I11, rx460_eos, rx460_fail
- sub $I11, rx460_pos, rx460_off
- substr $S10, rx460_tgt, $I11, 1
- ne $S10, ">", rx460_fail
- add rx460_pos, 1
- # rx pass
- rx460_cur."!cursor_pass"(rx460_pos, "")
- rx460_cur."!cursor_debug"("PASS ", "", " at pos=", rx460_pos)
- .return (rx460_cur)
- rx460_fail:
- (rx460_rep, rx460_pos, $I10, $P10) = rx460_cur."!mark_fail"(0)
- lt rx460_pos, -1, rx460_done
- eq rx460_pos, -1, rx460_fail
- jump $I10
- rx460_done:
- rx460_cur."!cursor_fail"()
- rx460_cur."!cursor_debug"("FAIL ", "")
- .return (rx460_cur)
+ 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 ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<!>" :subid("130_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
- .const 'Sub' $P470 = "132_1275811476.7961"
- capture_lex $P470
- .local string rx463_tgt
- .local int rx463_pos
- .local int rx463_off
- .local int rx463_eos
- .local int rx463_rep
- .local pmc rx463_cur
- (rx463_cur, rx463_pos, rx463_tgt) = self."!cursor_start"()
- rx463_cur."!cursor_debug"("START ", "assertion:sym<!>")
- .lex unicode:"$\x{a2}", rx463_cur
- .local pmc match
- .lex "$/", match
- length rx463_eos, rx463_tgt
- gt rx463_pos, rx463_eos, rx463_done
- set rx463_off, 0
- lt rx463_pos, 2, rx463_start
- sub rx463_off, rx463_pos, 1
- substr rx463_tgt, rx463_tgt, rx463_off
- rx463_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan467_done
- goto rxscan467_scan
- rxscan467_loop:
- ($P10) = rx463_cur."from"()
- inc $P10
- set rx463_pos, $P10
- ge rx463_pos, rx463_eos, rxscan467_done
- rxscan467_scan:
- set_addr $I10, rxscan467_loop
- rx463_cur."!mark_push"(0, rx463_pos, $I10)
- rxscan467_done:
-.annotate 'line', 141
+.sub "assertion:sym<!>" :subid("132_1280467470.54449") :method :outer("11_1280467470.54449")
+.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, rx463_pos, 1
- gt $I11, rx463_eos, rx463_fail
- sub $I11, rx463_pos, rx463_off
- substr $S10, rx463_tgt, $I11, 1
- ne $S10, "!", rx463_fail
- add rx463_pos, 1
- alt468_0:
- set_addr $I10, alt468_1
- rx463_cur."!mark_push"(0, rx463_pos, $I10)
+ 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)
# rx subrule "before" subtype=zerowidth negate=
- rx463_cur."!cursor_pos"(rx463_pos)
- .const 'Sub' $P470 = "132_1275811476.7961"
- capture_lex $P470
- $P10 = rx463_cur."before"($P470)
- unless $P10, rx463_fail
- goto alt468_end
- alt468_1:
+ 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:
# rx subrule "assertion" subtype=capture negate=
- rx463_cur."!cursor_pos"(rx463_pos)
- $P10 = rx463_cur."assertion"()
- unless $P10, rx463_fail
- rx463_cur."!mark_push"(0, -1, 0, $P10)
+ rx453_cur."!cursor_pos"(rx453_pos)
+ $P10 = rx453_cur."assertion"()
+ unless $P10, rx453_fail
+ rx453_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("assertion")
- rx463_pos = $P10."pos"()
- alt468_end:
+ rx453_pos = $P10."pos"()
+ alt458_end:
# rx pass
- rx463_cur."!cursor_pass"(rx463_pos, "assertion:sym<!>")
- rx463_cur."!cursor_debug"("PASS ", "assertion:sym<!>", " at pos=", rx463_pos)
- .return (rx463_cur)
- rx463_fail:
+ rx453_cur."!cursor_pass"(rx453_pos, "assertion:sym<!>")
+ rx453_cur."!cursor_debug"("PASS ", "assertion:sym<!>", " at pos=", rx453_pos)
+ .return (rx453_cur)
+ rx453_restart:
.annotate 'line', 3
- (rx463_rep, rx463_pos, $I10, $P10) = rx463_cur."!mark_fail"(0)
- lt rx463_pos, -1, rx463_done
- eq rx463_pos, -1, rx463_fail
+ 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
jump $I10
- rx463_done:
- rx463_cur."!cursor_fail"()
- rx463_cur."!cursor_debug"("FAIL ", "assertion:sym<!>")
- .return (rx463_cur)
+ rx453_done:
+ rx453_cur."!cursor_fail"()
+ rx453_cur."!cursor_debug"("FAIL ", "assertion:sym<!>")
+ .return (rx453_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<!>" :subid("131_1275811476.7961") :method
+.sub "!PREFIX__assertion:sym<!>" :subid("133_1280467470.54449") :method
.annotate 'line', 3
- $P465 = self."!PREFIX__!subrule"("assertion", "!")
- new $P466, "ResizablePMCArray"
- push $P466, $P465
- push $P466, "!"
- .return ($P466)
+ $P455 = self."!PREFIX__!subrule"("assertion", "!")
+ new $P456, "ResizablePMCArray"
+ push $P456, $P455
+ push $P456, "!"
+ .return ($P456)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block469" :anon :subid("132_1275811476.7961") :method :outer("130_1275811476.7961")
-.annotate 'line', 141
- .local string rx471_tgt
- .local int rx471_pos
- .local int rx471_off
- .local int rx471_eos
- .local int rx471_rep
- .local pmc rx471_cur
- (rx471_cur, rx471_pos, rx471_tgt) = self."!cursor_start"()
- rx471_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx471_cur
- .local pmc match
- .lex "$/", match
- length rx471_eos, rx471_tgt
- gt rx471_pos, rx471_eos, rx471_done
- set rx471_off, 0
- lt rx471_pos, 2, rx471_start
- sub rx471_off, rx471_pos, 1
- substr rx471_tgt, rx471_tgt, rx471_off
- rx471_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan472_done
- goto rxscan472_scan
- rxscan472_loop:
- ($P10) = rx471_cur."from"()
- inc $P10
- set rx471_pos, $P10
- ge rx471_pos, rx471_eos, rxscan472_done
- rxscan472_scan:
- set_addr $I10, rxscan472_loop
- rx471_cur."!mark_push"(0, rx471_pos, $I10)
- rxscan472_done:
+.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:
# rx literal ">"
- add $I11, rx471_pos, 1
- gt $I11, rx471_eos, rx471_fail
- sub $I11, rx471_pos, rx471_off
- substr $S10, rx471_tgt, $I11, 1
- ne $S10, ">", rx471_fail
- add rx471_pos, 1
- # rx pass
- rx471_cur."!cursor_pass"(rx471_pos, "")
- rx471_cur."!cursor_debug"("PASS ", "", " at pos=", rx471_pos)
- .return (rx471_cur)
- rx471_fail:
- (rx471_rep, rx471_pos, $I10, $P10) = rx471_cur."!mark_fail"(0)
- lt rx471_pos, -1, rx471_done
- eq rx471_pos, -1, rx471_fail
- jump $I10
- rx471_done:
- rx471_cur."!cursor_fail"()
- rx471_cur."!cursor_debug"("FAIL ", "")
- .return (rx471_cur)
+ 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)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<method>" :subid("133_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
- .local string rx474_tgt
- .local int rx474_pos
- .local int rx474_off
- .local int rx474_eos
- .local int rx474_rep
- .local pmc rx474_cur
- (rx474_cur, rx474_pos, rx474_tgt) = self."!cursor_start"()
- rx474_cur."!cursor_debug"("START ", "assertion:sym<method>")
- .lex unicode:"$\x{a2}", rx474_cur
- .local pmc match
- .lex "$/", match
- length rx474_eos, rx474_tgt
- gt rx474_pos, rx474_eos, rx474_done
- set rx474_off, 0
- lt rx474_pos, 2, rx474_start
- sub rx474_off, rx474_pos, 1
- substr rx474_tgt, rx474_tgt, rx474_off
- rx474_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan478_done
- goto rxscan478_scan
- rxscan478_loop:
- ($P10) = rx474_cur."from"()
- inc $P10
- set rx474_pos, $P10
- ge rx474_pos, rx474_eos, rxscan478_done
- rxscan478_scan:
- set_addr $I10, rxscan478_loop
- rx474_cur."!mark_push"(0, rx474_pos, $I10)
- rxscan478_done:
-.annotate 'line', 144
+.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, rx474_pos, 1
- gt $I11, rx474_eos, rx474_fail
- sub $I11, rx474_pos, rx474_off
- substr $S10, rx474_tgt, $I11, 1
- ne $S10, ".", rx474_fail
- add rx474_pos, 1
+ add $I11, 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
# rx subrule "assertion" subtype=capture negate=
- rx474_cur."!cursor_pos"(rx474_pos)
- $P10 = rx474_cur."assertion"()
- unless $P10, rx474_fail
- rx474_cur."!mark_push"(0, -1, 0, $P10)
+ rx464_cur."!cursor_pos"(rx464_pos)
+ $P10 = rx464_cur."assertion"()
+ unless $P10, rx464_fail
+ rx464_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("assertion")
- rx474_pos = $P10."pos"()
-.annotate 'line', 143
+ rx464_pos = $P10."pos"()
+.annotate 'line', 145
# rx pass
- rx474_cur."!cursor_pass"(rx474_pos, "assertion:sym<method>")
- rx474_cur."!cursor_debug"("PASS ", "assertion:sym<method>", " at pos=", rx474_pos)
- .return (rx474_cur)
- rx474_fail:
+ 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:
.annotate 'line', 3
- (rx474_rep, rx474_pos, $I10, $P10) = rx474_cur."!mark_fail"(0)
- lt rx474_pos, -1, rx474_done
- eq rx474_pos, -1, rx474_fail
+ 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
jump $I10
- rx474_done:
- rx474_cur."!cursor_fail"()
- rx474_cur."!cursor_debug"("FAIL ", "assertion:sym<method>")
- .return (rx474_cur)
+ rx464_done:
+ rx464_cur."!cursor_fail"()
+ rx464_cur."!cursor_debug"("FAIL ", "assertion:sym<method>")
+ .return (rx464_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<method>" :subid("134_1275811476.7961") :method
+.sub "!PREFIX__assertion:sym<method>" :subid("136_1280467470.54449") :method
.annotate 'line', 3
- $P476 = self."!PREFIX__!subrule"("assertion", ".")
- new $P477, "ResizablePMCArray"
- push $P477, $P476
- .return ($P477)
+ $P466 = self."!PREFIX__!subrule"("assertion", ".")
+ new $P467, "ResizablePMCArray"
+ push $P467, $P466
+ .return ($P467)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<name>" :subid("135_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "assertion:sym<name>" :subid("137_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .const 'Sub' $P488 = "137_1275811476.7961"
- capture_lex $P488
- .local string rx480_tgt
- .local int rx480_pos
- .local int rx480_off
- .local int rx480_eos
- .local int rx480_rep
- .local pmc rx480_cur
- (rx480_cur, rx480_pos, rx480_tgt) = self."!cursor_start"()
- rx480_cur."!cursor_debug"("START ", "assertion:sym<name>")
- rx480_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
- .lex unicode:"$\x{a2}", rx480_cur
+ .const 'Sub' $P478 = "139_1280467470.54449"
+ capture_lex $P478
+ .local string rx470_tgt
+ .local int rx470_pos
+ .local int rx470_off
+ .local int rx470_eos
+ .local int rx470_rep
+ .local pmc rx470_cur
+ (rx470_cur, rx470_pos, rx470_tgt, $I10) = self."!cursor_start"()
+ rx470_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+ .lex unicode:"$\x{a2}", rx470_cur
.local pmc match
.lex "$/", match
- length rx480_eos, rx480_tgt
- gt rx480_pos, rx480_eos, rx480_done
- set rx480_off, 0
- lt rx480_pos, 2, rx480_start
- sub rx480_off, rx480_pos, 1
- substr rx480_tgt, rx480_tgt, rx480_off
- rx480_start:
+ length rx470_eos, rx470_tgt
+ gt rx470_pos, rx470_eos, rx470_done
+ set rx470_off, 0
+ lt rx470_pos, 2, rx470_start
+ sub rx470_off, rx470_pos, 1
+ substr rx470_tgt, rx470_tgt, rx470_off
+ rx470_start:
+ eq $I10, 1, rx470_restart
+ rx470_cur."!cursor_debug"("START ", "assertion:sym<name>")
$I10 = self.'from'()
- ne $I10, -1, rxscan483_done
- goto rxscan483_scan
- rxscan483_loop:
- ($P10) = rx480_cur."from"()
+ ne $I10, -1, rxscan474_done
+ goto rxscan474_scan
+ rxscan474_loop:
+ ($P10) = rx470_cur."from"()
inc $P10
- set rx480_pos, $P10
- ge rx480_pos, rx480_eos, rxscan483_done
- rxscan483_scan:
- set_addr $I10, rxscan483_loop
- rx480_cur."!mark_push"(0, rx480_pos, $I10)
- rxscan483_done:
-.annotate 'line', 148
- # rx subcapture "longname"
- set_addr $I10, rxcap_484_fail
- rx480_cur."!mark_push"(0, rx480_pos, $I10)
- # rx charclass_q w r 1..-1
- sub $I10, rx480_pos, rx480_off
- find_not_cclass $I11, 8192, rx480_tgt, $I10, rx480_eos
- add $I12, $I10, 1
- lt $I11, $I12, rx480_fail
- add rx480_pos, rx480_off, $I11
- set_addr $I10, rxcap_484_fail
- ($I12, $I11) = rx480_cur."!mark_peek"($I10)
- rx480_cur."!cursor_pos"($I11)
- ($P10) = rx480_cur."!cursor_start"()
- $P10."!cursor_pass"(rx480_pos, "")
- rx480_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("longname")
- goto rxcap_484_done
- rxcap_484_fail:
- goto rx480_fail
- rxcap_484_done:
-.annotate 'line', 155
- # rx rxquantr485 ** 0..1
- set_addr $I491, rxquantr485_done
- rx480_cur."!mark_push"(0, rx480_pos, $I491)
- rxquantr485_loop:
- alt486_0:
-.annotate 'line', 149
- set_addr $I10, alt486_1
- rx480_cur."!mark_push"(0, rx480_pos, $I10)
+ set rx470_pos, $P10
+ ge rx470_pos, rx470_eos, rxscan474_done
+ rxscan474_scan:
+ set_addr $I10, rxscan474_loop
+ rx470_cur."!mark_push"(0, rx470_pos, $I10)
+ rxscan474_done:
.annotate 'line', 150
- # rx subrule "before" subtype=zerowidth negate=
- rx480_cur."!cursor_pos"(rx480_pos)
- .const 'Sub' $P488 = "137_1275811476.7961"
- capture_lex $P488
- $P10 = rx480_cur."before"($P488)
- unless $P10, rx480_fail
- goto alt486_end
- alt486_1:
- set_addr $I10, alt486_2
- rx480_cur."!mark_push"(0, rx480_pos, $I10)
+ # rx subrule "identifier" subtype=capture negate=
+ 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, rx480_pos, 1
- gt $I11, rx480_eos, rx480_fail
- sub $I11, rx480_pos, rx480_off
- substr $S10, rx480_tgt, $I11, 1
- ne $S10, "=", rx480_fail
- add rx480_pos, 1
+ add $I11, 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=
- rx480_cur."!cursor_pos"(rx480_pos)
- $P10 = rx480_cur."assertion"()
- unless $P10, rx480_fail
- rx480_cur."!mark_push"(0, -1, 0, $P10)
+ 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")
- rx480_pos = $P10."pos"()
- goto alt486_end
- alt486_2:
- set_addr $I10, alt486_3
- rx480_cur."!mark_push"(0, rx480_pos, $I10)
-.annotate 'line', 152
+ 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, rx480_pos, 1
- gt $I11, rx480_eos, rx480_fail
- sub $I11, rx480_pos, rx480_off
- substr $S10, rx480_tgt, $I11, 1
- ne $S10, ":", rx480_fail
- add rx480_pos, 1
+ add $I11, 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=
- rx480_cur."!cursor_pos"(rx480_pos)
- $P10 = rx480_cur."arglist"()
- unless $P10, rx480_fail
- rx480_cur."!mark_push"(0, -1, 0, $P10)
+ 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")
- rx480_pos = $P10."pos"()
- goto alt486_end
- alt486_3:
- set_addr $I10, alt486_4
- rx480_cur."!mark_push"(0, rx480_pos, $I10)
-.annotate 'line', 153
+ 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, rx480_pos, 1
- gt $I11, rx480_eos, rx480_fail
- sub $I11, rx480_pos, rx480_off
- substr $S10, rx480_tgt, $I11, 1
- ne $S10, "(", rx480_fail
- add rx480_pos, 1
+ add $I11, 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=
- rx480_cur."!cursor_pos"(rx480_pos)
- $P10 = rx480_cur."arglist"()
- unless $P10, rx480_fail
- rx480_cur."!mark_push"(0, -1, 0, $P10)
+ 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")
- rx480_pos = $P10."pos"()
+ rx470_pos = $P10."pos"()
# rx literal ")"
- add $I11, rx480_pos, 1
- gt $I11, rx480_eos, rx480_fail
- sub $I11, rx480_pos, rx480_off
- substr $S10, rx480_tgt, $I11, 1
- ne $S10, ")", rx480_fail
- add rx480_pos, 1
- goto alt486_end
- alt486_4:
-.annotate 'line', 154
+ add $I11, 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
+ goto alt476_end
+ alt476_4:
+.annotate 'line', 156
# rx subrule "normspace" subtype=method negate=
- rx480_cur."!cursor_pos"(rx480_pos)
- $P10 = rx480_cur."normspace"()
- unless $P10, rx480_fail
- rx480_pos = $P10."pos"()
+ rx470_cur."!cursor_pos"(rx470_pos)
+ $P10 = rx470_cur."normspace"()
+ unless $P10, rx470_fail
+ rx470_pos = $P10."pos"()
# rx subrule "nibbler" subtype=capture negate=
- rx480_cur."!cursor_pos"(rx480_pos)
- $P10 = rx480_cur."nibbler"()
- unless $P10, rx480_fail
- rx480_cur."!mark_push"(0, -1, 0, $P10)
+ 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")
- rx480_pos = $P10."pos"()
- alt486_end:
-.annotate 'line', 155
- (rx480_rep) = rx480_cur."!mark_commit"($I491)
- rxquantr485_done:
-.annotate 'line', 147
+ 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
- rx480_cur."!cursor_pass"(rx480_pos, "assertion:sym<name>")
- rx480_cur."!cursor_debug"("PASS ", "assertion:sym<name>", " at pos=", rx480_pos)
- .return (rx480_cur)
- rx480_fail:
+ rx470_cur."!cursor_pass"(rx470_pos, "assertion:sym<name>")
+ rx470_cur."!cursor_debug"("PASS ", "assertion:sym<name>", " at pos=", rx470_pos)
+ .return (rx470_cur)
+ rx470_restart:
.annotate 'line', 3
- (rx480_rep, rx480_pos, $I10, $P10) = rx480_cur."!mark_fail"(0)
- lt rx480_pos, -1, rx480_done
- eq rx480_pos, -1, rx480_fail
+ rx470_cur."!cursor_debug"("NEXT ", "assertion:sym<name>")
+ rx470_fail:
+ (rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0)
+ lt rx470_pos, -1, rx470_done
+ eq rx470_pos, -1, rx470_fail
jump $I10
- rx480_done:
- rx480_cur."!cursor_fail"()
- rx480_cur."!cursor_debug"("FAIL ", "assertion:sym<name>")
- .return (rx480_cur)
+ rx470_done:
+ rx470_cur."!cursor_fail"()
+ rx470_cur."!cursor_debug"("FAIL ", "assertion:sym<name>")
+ .return (rx470_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<name>" :subid("136_1275811476.7961") :method
+.sub "!PREFIX__assertion:sym<name>" :subid("138_1280467470.54449") :method
.annotate 'line', 3
- new $P482, "ResizablePMCArray"
- push $P482, ""
- .return ($P482)
+ $P472 = self."!PREFIX__!subrule"("identifier", "")
+ new $P473, "ResizablePMCArray"
+ push $P473, $P472
+ .return ($P473)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block487" :anon :subid("137_1275811476.7961") :method :outer("135_1275811476.7961")
-.annotate 'line', 150
- .local string rx489_tgt
- .local int rx489_pos
- .local int rx489_off
- .local int rx489_eos
- .local int rx489_rep
- .local pmc rx489_cur
- (rx489_cur, rx489_pos, rx489_tgt) = self."!cursor_start"()
- rx489_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx489_cur
- .local pmc match
- .lex "$/", match
- length rx489_eos, rx489_tgt
- gt rx489_pos, rx489_eos, rx489_done
- set rx489_off, 0
- lt rx489_pos, 2, rx489_start
- sub rx489_off, rx489_pos, 1
- substr rx489_tgt, rx489_tgt, rx489_off
- rx489_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan490_done
- goto rxscan490_scan
- rxscan490_loop:
- ($P10) = rx489_cur."from"()
- inc $P10
- set rx489_pos, $P10
- ge rx489_pos, rx489_eos, rxscan490_done
- rxscan490_scan:
- set_addr $I10, rxscan490_loop
- rx489_cur."!mark_push"(0, rx489_pos, $I10)
- rxscan490_done:
+.sub "_block477" :anon :subid("139_1280467470.54449") :method :outer("137_1280467470.54449")
+.annotate 'line', 152
+ .local string rx479_tgt
+ .local int rx479_pos
+ .local int rx479_off
+ .local int rx479_eos
+ .local int rx479_rep
+ .local pmc rx479_cur
+ (rx479_cur, rx479_pos, rx479_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx479_cur
+ .local pmc match
+ .lex "$/", match
+ length rx479_eos, rx479_tgt
+ gt rx479_pos, rx479_eos, rx479_done
+ set rx479_off, 0
+ lt rx479_pos, 2, rx479_start
+ sub rx479_off, rx479_pos, 1
+ substr rx479_tgt, rx479_tgt, rx479_off
+ rx479_start:
+ eq $I10, 1, rx479_restart
+ rx479_cur."!cursor_debug"("START ", "")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan480_done
+ goto rxscan480_scan
+ rxscan480_loop:
+ ($P10) = rx479_cur."from"()
+ inc $P10
+ set rx479_pos, $P10
+ ge rx479_pos, rx479_eos, rxscan480_done
+ rxscan480_scan:
+ set_addr $I10, rxscan480_loop
+ rx479_cur."!mark_push"(0, rx479_pos, $I10)
+ rxscan480_done:
# rx literal ">"
- add $I11, rx489_pos, 1
- gt $I11, rx489_eos, rx489_fail
- sub $I11, rx489_pos, rx489_off
- substr $S10, rx489_tgt, $I11, 1
- ne $S10, ">", rx489_fail
- add rx489_pos, 1
- # rx pass
- rx489_cur."!cursor_pass"(rx489_pos, "")
- rx489_cur."!cursor_debug"("PASS ", "", " at pos=", rx489_pos)
- .return (rx489_cur)
- rx489_fail:
- (rx489_rep, rx489_pos, $I10, $P10) = rx489_cur."!mark_fail"(0)
- lt rx489_pos, -1, rx489_done
- eq rx489_pos, -1, rx489_fail
- jump $I10
- rx489_done:
- rx489_cur."!cursor_fail"()
- rx489_cur."!cursor_debug"("FAIL ", "")
- .return (rx489_cur)
+ add $I11, rx479_pos, 1
+ gt $I11, rx479_eos, rx479_fail
+ sub $I11, rx479_pos, rx479_off
+ substr $S10, rx479_tgt, $I11, 1
+ ne $S10, ">", rx479_fail
+ add rx479_pos, 1
+ # rx pass
+ rx479_cur."!cursor_pass"(rx479_pos, "")
+ rx479_cur."!cursor_debug"("PASS ", "", " at pos=", rx479_pos)
+ .return (rx479_cur)
+ rx479_restart:
+ rx479_cur."!cursor_debug"("NEXT ", "")
+ rx479_fail:
+ (rx479_rep, rx479_pos, $I10, $P10) = rx479_cur."!mark_fail"(0)
+ lt rx479_pos, -1, rx479_done
+ eq rx479_pos, -1, rx479_fail
+ jump $I10
+ rx479_done:
+ rx479_cur."!cursor_fail"()
+ rx479_cur."!cursor_debug"("FAIL ", "")
+ .return (rx479_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<[>" :subid("138_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
- .const 'Sub' $P498 = "140_1275811476.7961"
- capture_lex $P498
- .local string rx493_tgt
- .local int rx493_pos
- .local int rx493_off
- .local int rx493_eos
- .local int rx493_rep
- .local pmc rx493_cur
- (rx493_cur, rx493_pos, rx493_tgt) = self."!cursor_start"()
- rx493_cur."!cursor_debug"("START ", "assertion:sym<[>")
- rx493_cur."!cursor_caparray"("cclass_elem")
- .lex unicode:"$\x{a2}", rx493_cur
- .local pmc match
- .lex "$/", match
- length rx493_eos, rx493_tgt
- gt rx493_pos, rx493_eos, rx493_done
- set rx493_off, 0
- lt rx493_pos, 2, rx493_start
- sub rx493_off, rx493_pos, 1
- substr rx493_tgt, rx493_tgt, rx493_off
- rx493_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan496_done
- goto rxscan496_scan
- rxscan496_loop:
- ($P10) = rx493_cur."from"()
- inc $P10
- set rx493_pos, $P10
- ge rx493_pos, rx493_eos, rxscan496_done
- rxscan496_scan:
- set_addr $I10, rxscan496_loop
- rx493_cur."!mark_push"(0, rx493_pos, $I10)
- rxscan496_done:
-.annotate 'line', 158
+.sub "assertion:sym<[>" :subid("140_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=
- rx493_cur."!cursor_pos"(rx493_pos)
- .const 'Sub' $P498 = "140_1275811476.7961"
- capture_lex $P498
- $P10 = rx493_cur."before"($P498)
- unless $P10, rx493_fail
- # rx rxquantr502 ** 1..*
- set_addr $I503, rxquantr502_done
- rx493_cur."!mark_push"(0, -1, $I503)
- rxquantr502_loop:
+ 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=
- rx493_cur."!cursor_pos"(rx493_pos)
- $P10 = rx493_cur."cclass_elem"()
- unless $P10, rx493_fail
- rx493_cur."!mark_push"(0, -1, 0, $P10)
+ 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")
- rx493_pos = $P10."pos"()
- (rx493_rep) = rx493_cur."!mark_commit"($I503)
- rx493_cur."!mark_push"(rx493_rep, rx493_pos, $I503)
- goto rxquantr502_loop
- rxquantr502_done:
+ 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
- rx493_cur."!cursor_pass"(rx493_pos, "assertion:sym<[>")
- rx493_cur."!cursor_debug"("PASS ", "assertion:sym<[>", " at pos=", rx493_pos)
- .return (rx493_cur)
- rx493_fail:
+ 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
- (rx493_rep, rx493_pos, $I10, $P10) = rx493_cur."!mark_fail"(0)
- lt rx493_pos, -1, rx493_done
- eq rx493_pos, -1, rx493_fail
+ 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
- rx493_done:
- rx493_cur."!cursor_fail"()
- rx493_cur."!cursor_debug"("FAIL ", "assertion:sym<[>")
- .return (rx493_cur)
+ 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("139_1275811476.7961") :method
+.sub "!PREFIX__assertion:sym<[>" :subid("141_1280467470.54449") :method
.annotate 'line', 3
- new $P495, "ResizablePMCArray"
- push $P495, ""
- .return ($P495)
+ new $P484, "ResizablePMCArray"
+ push $P484, ""
+ .return ($P484)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block497" :anon :subid("140_1275811476.7961") :method :outer("138_1275811476.7961")
-.annotate 'line', 158
- .local string rx499_tgt
- .local int rx499_pos
- .local int rx499_off
- .local int rx499_eos
- .local int rx499_rep
- .local pmc rx499_cur
- (rx499_cur, rx499_pos, rx499_tgt) = self."!cursor_start"()
- rx499_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx499_cur
- .local pmc match
- .lex "$/", match
- length rx499_eos, rx499_tgt
- gt rx499_pos, rx499_eos, rx499_done
- set rx499_off, 0
- lt rx499_pos, 2, rx499_start
- sub rx499_off, rx499_pos, 1
- substr rx499_tgt, rx499_tgt, rx499_off
- rx499_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan500_done
- goto rxscan500_scan
- rxscan500_loop:
- ($P10) = rx499_cur."from"()
- inc $P10
- set rx499_pos, $P10
- ge rx499_pos, rx499_eos, rxscan500_done
- rxscan500_scan:
- set_addr $I10, rxscan500_loop
- rx499_cur."!mark_push"(0, rx499_pos, $I10)
- rxscan500_done:
- alt501_0:
- set_addr $I10, alt501_1
- rx499_cur."!mark_push"(0, rx499_pos, $I10)
+.sub "_block486" :anon :subid("142_1280467470.54449") :method :outer("140_1280467470.54449")
+.annotate 'line', 160
+ .local string rx488_tgt
+ .local int rx488_pos
+ .local int rx488_off
+ .local int rx488_eos
+ .local int rx488_rep
+ .local pmc rx488_cur
+ (rx488_cur, rx488_pos, rx488_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx488_cur
+ .local pmc match
+ .lex "$/", match
+ length rx488_eos, rx488_tgt
+ gt rx488_pos, rx488_eos, rx488_done
+ set rx488_off, 0
+ lt rx488_pos, 2, rx488_start
+ sub rx488_off, rx488_pos, 1
+ substr rx488_tgt, rx488_tgt, rx488_off
+ rx488_start:
+ eq $I10, 1, rx488_restart
+ rx488_cur."!cursor_debug"("START ", "")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan489_done
+ goto rxscan489_scan
+ rxscan489_loop:
+ ($P10) = rx488_cur."from"()
+ inc $P10
+ set rx488_pos, $P10
+ ge rx488_pos, rx488_eos, rxscan489_done
+ rxscan489_scan:
+ 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, rx499_pos, 1
- gt $I11, rx499_eos, rx499_fail
- sub $I11, rx499_pos, rx499_off
- substr $S10, rx499_tgt, $I11, 1
- ne $S10, "[", rx499_fail
- add rx499_pos, 1
- goto alt501_end
- alt501_1:
- set_addr $I10, alt501_2
- rx499_cur."!mark_push"(0, rx499_pos, $I10)
+ 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, rx499_pos, 1
- gt $I11, rx499_eos, rx499_fail
- sub $I11, rx499_pos, rx499_off
- substr $S10, rx499_tgt, $I11, 1
- ne $S10, "+", rx499_fail
- add rx499_pos, 1
- goto alt501_end
- alt501_2:
+ 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 "-"
- add $I11, rx499_pos, 1
- gt $I11, rx499_eos, rx499_fail
- sub $I11, rx499_pos, rx499_off
- substr $S10, rx499_tgt, $I11, 1
- ne $S10, "-", rx499_fail
- add rx499_pos, 1
- alt501_end:
- # rx pass
- rx499_cur."!cursor_pass"(rx499_pos, "")
- rx499_cur."!cursor_debug"("PASS ", "", " at pos=", rx499_pos)
- .return (rx499_cur)
- rx499_fail:
- (rx499_rep, rx499_pos, $I10, $P10) = rx499_cur."!mark_fail"(0)
- lt rx499_pos, -1, rx499_done
- eq rx499_pos, -1, rx499_fail
- jump $I10
- rx499_done:
- rx499_cur."!cursor_fail"()
- rx499_cur."!cursor_debug"("FAIL ", "")
- .return (rx499_cur)
+ 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
+ alt490_end:
+ # rx pass
+ rx488_cur."!cursor_pass"(rx488_pos, "")
+ rx488_cur."!cursor_debug"("PASS ", "", " at pos=", rx488_pos)
+ .return (rx488_cur)
+ rx488_restart:
+ rx488_cur."!cursor_debug"("NEXT ", "")
+ rx488_fail:
+ (rx488_rep, rx488_pos, $I10, $P10) = rx488_cur."!mark_fail"(0)
+ lt rx488_pos, -1, rx488_done
+ eq rx488_pos, -1, rx488_fail
+ jump $I10
+ rx488_done:
+ rx488_cur."!cursor_fail"()
+ rx488_cur."!cursor_debug"("FAIL ", "")
+ .return (rx488_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "cclass_elem" :subid("141_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
- .const 'Sub' $P516 = "143_1275811476.7961"
- capture_lex $P516
- .local string rx505_tgt
- .local int rx505_pos
- .local int rx505_off
- .local int rx505_eos
- .local int rx505_rep
- .local pmc rx505_cur
- (rx505_cur, rx505_pos, rx505_tgt) = self."!cursor_start"()
- rx505_cur."!cursor_debug"("START ", "cclass_elem")
- rx505_cur."!cursor_caparray"("charspec")
- .lex unicode:"$\x{a2}", rx505_cur
- .local pmc match
- .lex "$/", match
- length rx505_eos, rx505_tgt
- gt rx505_pos, rx505_eos, rx505_done
- set rx505_off, 0
- lt rx505_pos, 2, rx505_start
- sub rx505_off, rx505_pos, 1
- substr rx505_tgt, rx505_tgt, rx505_off
- rx505_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan508_done
- goto rxscan508_scan
- rxscan508_loop:
- ($P10) = rx505_cur."from"()
- inc $P10
- set rx505_pos, $P10
- ge rx505_pos, rx505_eos, rxscan508_done
- rxscan508_scan:
- set_addr $I10, rxscan508_loop
- rx505_cur."!mark_push"(0, rx505_pos, $I10)
- rxscan508_done:
-.annotate 'line', 161
+.sub "cclass_elem" :subid("143_1280467470.54449") :method :outer("11_1280467470.54449")
+.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_510_fail
- rx505_cur."!mark_push"(0, rx505_pos, $I10)
- alt509_0:
- set_addr $I10, alt509_1
- rx505_cur."!mark_push"(0, rx505_pos, $I10)
+ 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, rx505_pos, 1
- gt $I11, rx505_eos, rx505_fail
- sub $I11, rx505_pos, rx505_off
- substr $S10, rx505_tgt, $I11, 1
- ne $S10, "+", rx505_fail
- add rx505_pos, 1
- goto alt509_end
- alt509_1:
- set_addr $I10, alt509_2
- rx505_cur."!mark_push"(0, rx505_pos, $I10)
+ 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, rx505_pos, 1
- gt $I11, rx505_eos, rx505_fail
- sub $I11, rx505_pos, rx505_off
- substr $S10, rx505_tgt, $I11, 1
- ne $S10, "-", rx505_fail
- add rx505_pos, 1
- goto alt509_end
- alt509_2:
- alt509_end:
- set_addr $I10, rxcap_510_fail
- ($I12, $I11) = rx505_cur."!mark_peek"($I10)
- rx505_cur."!cursor_pos"($I11)
- ($P10) = rx505_cur."!cursor_start"()
- $P10."!cursor_pass"(rx505_pos, "")
- rx505_cur."!mark_push"(0, -1, 0, $P10)
+ 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_510_done
- rxcap_510_fail:
- goto rx505_fail
- rxcap_510_done:
-.annotate 'line', 162
- # rx rxquantr511 ** 0..1
- set_addr $I512, rxquantr511_done
- rx505_cur."!mark_push"(0, rx505_pos, $I512)
- rxquantr511_loop:
- # rx subrule "normspace" subtype=method negate=
- rx505_cur."!cursor_pos"(rx505_pos)
- $P10 = rx505_cur."normspace"()
- unless $P10, rx505_fail
- rx505_pos = $P10."pos"()
- (rx505_rep) = rx505_cur."!mark_commit"($I512)
- rxquantr511_done:
- alt513_0:
-.annotate 'line', 163
- set_addr $I10, alt513_1
- rx505_cur."!mark_push"(0, rx505_pos, $I10)
+ goto rxcap_499_done
+ rxcap_499_fail:
+ goto rx494_fail
+ rxcap_499_done:
.annotate 'line', 164
+ # rx rxquantr500 ** 0..1
+ set_addr $I10, rxquantr500_done
+ rx494_cur."!mark_push"(0, rx494_pos, $I10)
+ rxquantr500_loop:
+ # rx subrule "normspace" subtype=method negate=
+ rx494_cur."!cursor_pos"(rx494_pos)
+ $P10 = rx494_cur."normspace"()
+ unless $P10, rx494_fail
+ goto rxsubrule501_pass
+ rxsubrule501_back:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx494_fail
+ rxsubrule501_pass:
+ set_addr $I10, rxsubrule501_back
+ rx494_cur."!mark_push"(0, rx494_pos, $I10, $P10)
+ rx494_pos = $P10."pos"()
+ set_addr $I10, rxquantr500_done
+ (rx494_rep) = rx494_cur."!mark_commit"($I10)
+ rxquantr500_done:
+ alt502_0:
+.annotate 'line', 165
+ set_addr $I10, alt502_1
+ rx494_cur."!mark_push"(0, rx494_pos, $I10)
+.annotate 'line', 166
# rx literal "["
- add $I11, rx505_pos, 1
- gt $I11, rx505_eos, rx505_fail
- sub $I11, rx505_pos, rx505_off
- substr $S10, rx505_tgt, $I11, 1
- ne $S10, "[", rx505_fail
- add rx505_pos, 1
-.annotate 'line', 167
- # rx rxquantr514 ** 0..*
- set_addr $I535, rxquantr514_done
- rx505_cur."!mark_push"(0, rx505_pos, $I535)
- rxquantr514_loop:
-.annotate 'line', 164
- # rx subrule $P516 subtype=capture negate=
- rx505_cur."!cursor_pos"(rx505_pos)
- .const 'Sub' $P516 = "143_1275811476.7961"
- capture_lex $P516
- $P10 = rx505_cur.$P516()
- unless $P10, rx505_fail
- rx505_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, 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:
+ $P10 = $P10."!cursor_next"()
+ unless $P10, rx494_fail
+ rxsubrule523_pass:
+ set_addr $I10, rxsubrule523_back
+ rx494_cur."!mark_push"(0, rx494_pos, $I10, $P10)
$P10."!cursor_names"("charspec")
- rx505_pos = $P10."pos"()
-.annotate 'line', 167
- (rx505_rep) = rx505_cur."!mark_commit"($I535)
- rx505_cur."!mark_push"(rx505_rep, rx505_pos, $I535)
- goto rxquantr514_loop
- rxquantr514_done:
-.annotate 'line', 168
+ 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
# rx charclass_q s r 0..-1
- sub $I10, rx505_pos, rx505_off
- find_not_cclass $I11, 32, rx505_tgt, $I10, rx505_eos
- add rx505_pos, rx505_off, $I11
+ sub $I10, rx494_pos, rx494_off
+ find_not_cclass $I11, 32, rx494_tgt, $I10, rx494_eos
+ add rx494_pos, rx494_off, $I11
# rx literal "]"
- add $I11, rx505_pos, 1
- gt $I11, rx505_eos, rx505_fail
- sub $I11, rx505_pos, rx505_off
- substr $S10, rx505_tgt, $I11, 1
- ne $S10, "]", rx505_fail
- add rx505_pos, 1
-.annotate 'line', 164
- goto alt513_end
- alt513_1:
-.annotate 'line', 169
+ add $I11, 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
# rx subcapture "name"
- set_addr $I10, rxcap_536_fail
- rx505_cur."!mark_push"(0, rx505_pos, $I10)
+ set_addr $I10, rxcap_524_fail
+ rx494_cur."!mark_push"(0, rx494_pos, $I10)
# rx charclass_q w r 1..-1
- sub $I10, rx505_pos, rx505_off
- find_not_cclass $I11, 8192, rx505_tgt, $I10, rx505_eos
+ sub $I10, rx494_pos, rx494_off
+ find_not_cclass $I11, 8192, rx494_tgt, $I10, rx494_eos
add $I12, $I10, 1
- lt $I11, $I12, rx505_fail
- add rx505_pos, rx505_off, $I11
- set_addr $I10, rxcap_536_fail
- ($I12, $I11) = rx505_cur."!mark_peek"($I10)
- rx505_cur."!cursor_pos"($I11)
- ($P10) = rx505_cur."!cursor_start"()
- $P10."!cursor_pass"(rx505_pos, "")
- rx505_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, 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)
$P10."!cursor_names"("name")
- goto rxcap_536_done
- rxcap_536_fail:
- goto rx505_fail
- rxcap_536_done:
- alt513_end:
-.annotate 'line', 171
- # rx rxquantr537 ** 0..1
- set_addr $I538, rxquantr537_done
- rx505_cur."!mark_push"(0, rx505_pos, $I538)
- rxquantr537_loop:
+ goto rxcap_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:
# rx subrule "normspace" subtype=method negate=
- rx505_cur."!cursor_pos"(rx505_pos)
- $P10 = rx505_cur."normspace"()
- unless $P10, rx505_fail
- rx505_pos = $P10."pos"()
- (rx505_rep) = rx505_cur."!mark_commit"($I538)
- rxquantr537_done:
-.annotate 'line', 160
+ rx494_cur."!cursor_pos"(rx494_pos)
+ $P10 = rx494_cur."normspace"()
+ unless $P10, rx494_fail
+ goto rxsubrule526_pass
+ rxsubrule526_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
# rx pass
- rx505_cur."!cursor_pass"(rx505_pos, "cclass_elem")
- rx505_cur."!cursor_debug"("PASS ", "cclass_elem", " at pos=", rx505_pos)
- .return (rx505_cur)
- rx505_fail:
+ rx494_cur."!cursor_pass"(rx494_pos, "cclass_elem")
+ rx494_cur."!cursor_debug"("PASS ", "cclass_elem", " at pos=", rx494_pos)
+ .return (rx494_cur)
+ rx494_restart:
.annotate 'line', 3
- (rx505_rep, rx505_pos, $I10, $P10) = rx505_cur."!mark_fail"(0)
- lt rx505_pos, -1, rx505_done
- eq rx505_pos, -1, rx505_fail
+ 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
jump $I10
- rx505_done:
- rx505_cur."!cursor_fail"()
- rx505_cur."!cursor_debug"("FAIL ", "cclass_elem")
- .return (rx505_cur)
+ rx494_done:
+ rx494_cur."!cursor_fail"()
+ rx494_cur."!cursor_debug"("FAIL ", "cclass_elem")
+ .return (rx494_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__cclass_elem" :subid("142_1275811476.7961") :method
+.sub "!PREFIX__cclass_elem" :subid("144_1280467470.54449") :method
.annotate 'line', 3
- new $P507, "ResizablePMCArray"
- push $P507, ""
- push $P507, "-"
- push $P507, "+"
- .return ($P507)
+ new $P496, "ResizablePMCArray"
+ push $P496, ""
+ push $P496, "-"
+ push $P496, "+"
+ .return ($P496)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block515" :anon :subid("143_1275811476.7961") :method :outer("141_1275811476.7961")
-.annotate 'line', 164
- .const 'Sub' $P531 = "146_1275811476.7961"
- capture_lex $P531
- .const 'Sub' $P526 = "145_1275811476.7961"
- capture_lex $P526
- .const 'Sub' $P522 = "144_1275811476.7961"
- capture_lex $P522
- .local string rx517_tgt
- .local int rx517_pos
- .local int rx517_off
- .local int rx517_eos
- .local int rx517_rep
- .local pmc rx517_cur
- (rx517_cur, rx517_pos, rx517_tgt) = self."!cursor_start"()
- rx517_cur."!cursor_debug"("START ", "")
- rx517_cur."!cursor_caparray"("1")
- .lex unicode:"$\x{a2}", rx517_cur
- .local pmc match
- .lex "$/", match
- length rx517_eos, rx517_tgt
- gt rx517_pos, rx517_eos, rx517_done
- set rx517_off, 0
- lt rx517_pos, 2, rx517_start
- sub rx517_off, rx517_pos, 1
- substr rx517_tgt, rx517_tgt, rx517_off
- rx517_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan518_done
- goto rxscan518_scan
- rxscan518_loop:
- ($P10) = rx517_cur."from"()
- inc $P10
- set rx517_pos, $P10
- ge rx517_pos, rx517_eos, rxscan518_done
- rxscan518_scan:
- set_addr $I10, rxscan518_loop
- rx517_cur."!mark_push"(0, rx517_pos, $I10)
- rxscan518_done:
- alt519_0:
- set_addr $I10, alt519_1
- rx517_cur."!mark_push"(0, rx517_pos, $I10)
-.annotate 'line', 165
+.sub "_block504" :anon :subid("145_1280467470.54449") :method :outer("143_1280467470.54449")
+.annotate 'line', 166
+ .const 'Sub' $P520 = "148_1280467470.54449"
+ 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
# rx charclass_q s r 0..-1
- sub $I10, rx517_pos, rx517_off
- find_not_cclass $I11, 32, rx517_tgt, $I10, rx517_eos
- add rx517_pos, rx517_off, $I11
+ sub $I10, rx506_pos, rx506_off
+ find_not_cclass $I11, 32, rx506_tgt, $I10, rx506_eos
+ add rx506_pos, rx506_off, $I11
# rx literal "-"
- add $I11, rx517_pos, 1
- gt $I11, rx517_eos, rx517_fail
- sub $I11, rx517_pos, rx517_off
- substr $S10, rx517_tgt, $I11, 1
- ne $S10, "-", rx517_fail
- add rx517_pos, 1
+ add $I11, 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 "obs" subtype=method negate=
- rx517_cur."!cursor_pos"(rx517_pos)
- $P10 = rx517_cur."obs"("hyphen in enumerated character class", "..")
- unless $P10, rx517_fail
- rx517_pos = $P10."pos"()
- goto alt519_end
- alt519_1:
-.annotate 'line', 166
+ 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
# rx charclass_q s r 0..-1
- sub $I10, rx517_pos, rx517_off
- find_not_cclass $I11, 32, rx517_tgt, $I10, rx517_eos
- add rx517_pos, rx517_off, $I11
- alt520_0:
- set_addr $I10, alt520_1
- rx517_cur."!mark_push"(0, rx517_pos, $I10)
+ sub $I10, 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)
# rx literal "\\"
- add $I11, rx517_pos, 1
- gt $I11, rx517_eos, rx517_fail
- sub $I11, rx517_pos, rx517_off
- substr $S10, rx517_tgt, $I11, 1
- ne $S10, "\\", rx517_fail
- add rx517_pos, 1
- # rx subrule $P522 subtype=capture negate=
- rx517_cur."!cursor_pos"(rx517_pos)
- .const 'Sub' $P522 = "144_1275811476.7961"
- capture_lex $P522
- $P10 = rx517_cur.$P522()
- unless $P10, rx517_fail
- rx517_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, 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)
$P10."!cursor_names"(0)
- rx517_pos = $P10."pos"()
- goto alt520_end
- alt520_1:
- # rx subrule $P526 subtype=capture negate=
- rx517_cur."!cursor_pos"(rx517_pos)
- .const 'Sub' $P526 = "145_1275811476.7961"
- capture_lex $P526
- $P10 = rx517_cur.$P526()
- unless $P10, rx517_fail
- rx517_cur."!mark_push"(0, -1, 0, $P10)
+ 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)
$P10."!cursor_names"(0)
- rx517_pos = $P10."pos"()
- alt520_end:
- # rx rxquantr529 ** 0..1
- set_addr $I534, rxquantr529_done
- rx517_cur."!mark_push"(0, rx517_pos, $I534)
- rxquantr529_loop:
+ 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:
# rx charclass_q s r 0..-1
- sub $I10, rx517_pos, rx517_off
- find_not_cclass $I11, 32, rx517_tgt, $I10, rx517_eos
- add rx517_pos, rx517_off, $I11
+ sub $I10, rx506_pos, rx506_off
+ find_not_cclass $I11, 32, rx506_tgt, $I10, rx506_eos
+ add rx506_pos, rx506_off, $I11
# rx literal ".."
- add $I11, rx517_pos, 2
- gt $I11, rx517_eos, rx517_fail
- sub $I11, rx517_pos, rx517_off
- substr $S10, rx517_tgt, $I11, 2
- ne $S10, "..", rx517_fail
- add rx517_pos, 2
+ add $I11, 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
# rx charclass_q s r 0..-1
- sub $I10, rx517_pos, rx517_off
- find_not_cclass $I11, 32, rx517_tgt, $I10, rx517_eos
- add rx517_pos, rx517_off, $I11
- # rx subrule $P531 subtype=capture negate=
- rx517_cur."!cursor_pos"(rx517_pos)
- .const 'Sub' $P531 = "146_1275811476.7961"
- capture_lex $P531
- $P10 = rx517_cur.$P531()
- unless $P10, rx517_fail
- rx517_cur."!mark_push"(0, -1, 0, $P10)
+ sub $I10, 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)
$P10."!cursor_names"("1")
- rx517_pos = $P10."pos"()
- (rx517_rep) = rx517_cur."!mark_commit"($I534)
- rxquantr529_done:
- alt519_end:
-.annotate 'line', 164
+ 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
- rx517_cur."!cursor_pass"(rx517_pos, "")
- rx517_cur."!cursor_debug"("PASS ", "", " at pos=", rx517_pos)
- .return (rx517_cur)
- rx517_fail:
- (rx517_rep, rx517_pos, $I10, $P10) = rx517_cur."!mark_fail"(0)
- lt rx517_pos, -1, rx517_done
- eq rx517_pos, -1, rx517_fail
+ 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
- rx517_done:
- rx517_cur."!cursor_fail"()
- rx517_cur."!cursor_debug"("FAIL ", "")
- .return (rx517_cur)
+ rx506_done:
+ rx506_cur."!cursor_fail"()
+ rx506_cur."!cursor_debug"("FAIL ", "")
+ .return (rx506_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block521" :anon :subid("144_1275811476.7961") :method :outer("143_1275811476.7961")
-.annotate 'line', 166
- .local string rx523_tgt
- .local int rx523_pos
- .local int rx523_off
- .local int rx523_eos
- .local int rx523_rep
- .local pmc rx523_cur
- (rx523_cur, rx523_pos, rx523_tgt) = self."!cursor_start"()
- rx523_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx523_cur
- .local pmc match
- .lex "$/", match
- length rx523_eos, rx523_tgt
- gt rx523_pos, rx523_eos, rx523_done
- set rx523_off, 0
- lt rx523_pos, 2, rx523_start
- sub rx523_off, rx523_pos, 1
- substr rx523_tgt, rx523_tgt, rx523_off
- rx523_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan524_done
- goto rxscan524_scan
- rxscan524_loop:
- ($P10) = rx523_cur."from"()
- inc $P10
- set rx523_pos, $P10
- ge rx523_pos, rx523_eos, rxscan524_done
- rxscan524_scan:
- set_addr $I10, rxscan524_loop
- rx523_cur."!mark_push"(0, rx523_pos, $I10)
- rxscan524_done:
+.sub "_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 rx523_pos, rx523_eos, rx523_fail
- inc rx523_pos
+ ge rx512_pos, rx512_eos, rx512_fail
+ inc rx512_pos
# rx pass
- rx523_cur."!cursor_pass"(rx523_pos, "")
- rx523_cur."!cursor_debug"("PASS ", "", " at pos=", rx523_pos)
- .return (rx523_cur)
- rx523_fail:
- (rx523_rep, rx523_pos, $I10, $P10) = rx523_cur."!mark_fail"(0)
- lt rx523_pos, -1, rx523_done
- eq rx523_pos, -1, rx523_fail
+ 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
- rx523_done:
- rx523_cur."!cursor_fail"()
- rx523_cur."!cursor_debug"("FAIL ", "")
- .return (rx523_cur)
+ rx512_done:
+ rx512_cur."!cursor_fail"()
+ rx512_cur."!cursor_debug"("FAIL ", "")
+ .return (rx512_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block525" :anon :subid("145_1275811476.7961") :method :outer("143_1275811476.7961")
-.annotate 'line', 166
- .local string rx527_tgt
- .local int rx527_pos
- .local int rx527_off
- .local int rx527_eos
- .local int rx527_rep
- .local pmc rx527_cur
- (rx527_cur, rx527_pos, rx527_tgt) = self."!cursor_start"()
- rx527_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx527_cur
- .local pmc match
- .lex "$/", match
- length rx527_eos, rx527_tgt
- gt rx527_pos, rx527_eos, rx527_done
- set rx527_off, 0
- lt rx527_pos, 2, rx527_start
- sub rx527_off, rx527_pos, 1
- substr rx527_tgt, rx527_tgt, rx527_off
- rx527_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan528_done
- goto rxscan528_scan
- rxscan528_loop:
- ($P10) = rx527_cur."from"()
- inc $P10
- set rx527_pos, $P10
- ge rx527_pos, rx527_eos, rxscan528_done
- rxscan528_scan:
- set_addr $I10, rxscan528_loop
- rx527_cur."!mark_push"(0, rx527_pos, $I10)
- rxscan528_done:
+.sub "_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 rx527_pos, rx527_eos, rx527_fail
- sub $I10, rx527_pos, rx527_off
- substr $S10, rx527_tgt, $I10, 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, rx527_fail
- inc rx527_pos
+ ge $I11, 0, rx516_fail
+ inc rx516_pos
# rx pass
- rx527_cur."!cursor_pass"(rx527_pos, "")
- rx527_cur."!cursor_debug"("PASS ", "", " at pos=", rx527_pos)
- .return (rx527_cur)
- rx527_fail:
- (rx527_rep, rx527_pos, $I10, $P10) = rx527_cur."!mark_fail"(0)
- lt rx527_pos, -1, rx527_done
- eq rx527_pos, -1, rx527_fail
+ 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
- rx527_done:
- rx527_cur."!cursor_fail"()
- rx527_cur."!cursor_debug"("FAIL ", "")
- .return (rx527_cur)
+ rx516_done:
+ rx516_cur."!cursor_fail"()
+ rx516_cur."!cursor_debug"("FAIL ", "")
+ .return (rx516_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block530" :anon :subid("146_1275811476.7961") :method :outer("143_1275811476.7961")
-.annotate 'line', 166
- .local string rx532_tgt
- .local int rx532_pos
- .local int rx532_off
- .local int rx532_eos
- .local int rx532_rep
- .local pmc rx532_cur
- (rx532_cur, rx532_pos, rx532_tgt) = self."!cursor_start"()
- rx532_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx532_cur
- .local pmc match
- .lex "$/", match
- length rx532_eos, rx532_tgt
- gt rx532_pos, rx532_eos, rx532_done
- set rx532_off, 0
- lt rx532_pos, 2, rx532_start
- sub rx532_off, rx532_pos, 1
- substr rx532_tgt, rx532_tgt, rx532_off
- rx532_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan533_done
- goto rxscan533_scan
- rxscan533_loop:
- ($P10) = rx532_cur."from"()
- inc $P10
- set rx532_pos, $P10
- ge rx532_pos, rx532_eos, rxscan533_done
- rxscan533_scan:
- set_addr $I10, rxscan533_loop
- rx532_cur."!mark_push"(0, rx532_pos, $I10)
- rxscan533_done:
+.sub "_block519" :anon :subid("148_1280467470.54449") :method :outer("145_1280467470.54449")
+.annotate 'line', 168
+ .local string rx521_tgt
+ .local int rx521_pos
+ .local int rx521_off
+ .local int rx521_eos
+ .local int rx521_rep
+ .local pmc rx521_cur
+ (rx521_cur, rx521_pos, rx521_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx521_cur
+ .local pmc match
+ .lex "$/", match
+ length rx521_eos, rx521_tgt
+ gt rx521_pos, rx521_eos, rx521_done
+ set rx521_off, 0
+ lt rx521_pos, 2, rx521_start
+ sub rx521_off, rx521_pos, 1
+ substr rx521_tgt, rx521_tgt, rx521_off
+ rx521_start:
+ eq $I10, 1, rx521_restart
+ rx521_cur."!cursor_debug"("START ", "")
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan522_done
+ goto rxscan522_scan
+ rxscan522_loop:
+ ($P10) = rx521_cur."from"()
+ inc $P10
+ set rx521_pos, $P10
+ ge rx521_pos, rx521_eos, rxscan522_done
+ rxscan522_scan:
+ set_addr $I10, rxscan522_loop
+ rx521_cur."!mark_push"(0, rx521_pos, $I10)
+ rxscan522_done:
# rx charclass .
- ge rx532_pos, rx532_eos, rx532_fail
- inc rx532_pos
+ ge rx521_pos, rx521_eos, rx521_fail
+ inc rx521_pos
# rx pass
- rx532_cur."!cursor_pass"(rx532_pos, "")
- rx532_cur."!cursor_debug"("PASS ", "", " at pos=", rx532_pos)
- .return (rx532_cur)
- rx532_fail:
- (rx532_rep, rx532_pos, $I10, $P10) = rx532_cur."!mark_fail"(0)
- lt rx532_pos, -1, rx532_done
- eq rx532_pos, -1, rx532_fail
- jump $I10
- rx532_done:
- rx532_cur."!cursor_fail"()
- rx532_cur."!cursor_debug"("FAIL ", "")
- .return (rx532_cur)
+ rx521_cur."!cursor_pass"(rx521_pos, "")
+ rx521_cur."!cursor_debug"("PASS ", "", " at pos=", rx521_pos)
+ .return (rx521_cur)
+ rx521_restart:
+ rx521_cur."!cursor_debug"("NEXT ", "")
+ rx521_fail:
+ (rx521_rep, rx521_pos, $I10, $P10) = rx521_cur."!mark_fail"(0)
+ lt rx521_pos, -1, rx521_done
+ eq rx521_pos, -1, rx521_fail
+ jump $I10
+ rx521_done:
+ rx521_cur."!cursor_fail"()
+ rx521_cur."!cursor_debug"("FAIL ", "")
+ .return (rx521_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_internal" :subid("147_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
- .const 'Sub' $P548 = "149_1275811476.7961"
- capture_lex $P548
- .local string rx540_tgt
- .local int rx540_pos
- .local int rx540_off
- .local int rx540_eos
- .local int rx540_rep
- .local pmc rx540_cur
- (rx540_cur, rx540_pos, rx540_tgt) = self."!cursor_start"()
- rx540_cur."!cursor_debug"("START ", "mod_internal")
- rx540_cur."!cursor_caparray"("n")
- .lex unicode:"$\x{a2}", rx540_cur
- .local pmc match
- .lex "$/", match
- length rx540_eos, rx540_tgt
- gt rx540_pos, rx540_eos, rx540_done
- set rx540_off, 0
- lt rx540_pos, 2, rx540_start
- sub rx540_off, rx540_pos, 1
- substr rx540_tgt, rx540_tgt, rx540_off
- rx540_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan544_done
- goto rxscan544_scan
- rxscan544_loop:
- ($P10) = rx540_cur."from"()
- inc $P10
- set rx540_pos, $P10
- ge rx540_pos, rx540_eos, rxscan544_done
- rxscan544_scan:
- set_addr $I10, rxscan544_loop
- rx540_cur."!mark_push"(0, rx540_pos, $I10)
- rxscan544_done:
- alt545_0:
-.annotate 'line', 175
- set_addr $I10, alt545_1
- rx540_cur."!mark_push"(0, rx540_pos, $I10)
-.annotate 'line', 176
+.sub "mod_internal" :subid("149_1280467470.54449") :method :outer("11_1280467470.54449")
+.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, rx540_pos, 1
- gt $I11, rx540_eos, rx540_fail
- sub $I11, rx540_pos, rx540_off
- substr $S10, rx540_tgt, $I11, 1
- ne $S10, ":", rx540_fail
- add rx540_pos, 1
- # rx rxquantr546 ** 1..1
- set_addr $I552, rxquantr546_done
- rx540_cur."!mark_push"(0, -1, $I552)
- rxquantr546_loop:
- # rx subrule $P548 subtype=capture negate=
- rx540_cur."!cursor_pos"(rx540_pos)
- .const 'Sub' $P548 = "149_1275811476.7961"
- capture_lex $P548
- $P10 = rx540_cur.$P548()
- unless $P10, rx540_fail
- rx540_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, 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")
- rx540_pos = $P10."pos"()
- (rx540_rep) = rx540_cur."!mark_commit"($I552)
- rxquantr546_done:
+ 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=
- rx540_cur."!cursor_pos"(rx540_pos)
- $P10 = rx540_cur."mod_ident"()
- unless $P10, rx540_fail
- rx540_cur."!mark_push"(0, -1, 0, $P10)
+ 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")
- rx540_pos = $P10."pos"()
+ rx528_pos = $P10."pos"()
# rxanchor rwb
- le rx540_pos, 0, rx540_fail
- sub $I10, rx540_pos, rx540_off
- is_cclass $I11, 8192, rx540_tgt, $I10
- if $I11, rx540_fail
+ le 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, rx540_tgt, $I10
- unless $I11, rx540_fail
- goto alt545_end
- alt545_1:
-.annotate 'line', 177
+ is_cclass $I11, 8192, rx528_tgt, $I10
+ unless $I11, rx528_fail
+ goto alt533_end
+ alt533_1:
+.annotate 'line', 179
# rx literal ":"
- add $I11, rx540_pos, 1
- gt $I11, rx540_eos, rx540_fail
- sub $I11, rx540_pos, rx540_off
- substr $S10, rx540_tgt, $I11, 1
- ne $S10, ":", rx540_fail
- add rx540_pos, 1
+ add $I11, 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=
- rx540_cur."!cursor_pos"(rx540_pos)
- $P10 = rx540_cur."mod_ident"()
- unless $P10, rx540_fail
- rx540_cur."!mark_push"(0, -1, 0, $P10)
+ 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")
- rx540_pos = $P10."pos"()
- # rx rxquantr553 ** 0..1
- set_addr $I555, rxquantr553_done
- rx540_cur."!mark_push"(0, rx540_pos, $I555)
- rxquantr553_loop:
+ 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, rx540_pos, 1
- gt $I11, rx540_eos, rx540_fail
- sub $I11, rx540_pos, rx540_off
- substr $S10, rx540_tgt, $I11, 1
- ne $S10, "(", rx540_fail
- add rx540_pos, 1
+ add $I11, 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_554_fail
- rx540_cur."!mark_push"(0, rx540_pos, $I10)
+ set_addr $I10, rxcap_542_fail
+ rx528_cur."!mark_push"(0, rx528_pos, $I10)
# rx charclass_q d r 1..-1
- sub $I10, rx540_pos, rx540_off
- find_not_cclass $I11, 8, rx540_tgt, $I10, rx540_eos
+ sub $I10, rx528_pos, rx528_off
+ find_not_cclass $I11, 8, rx528_tgt, $I10, rx528_eos
add $I12, $I10, 1
- lt $I11, $I12, rx540_fail
- add rx540_pos, rx540_off, $I11
- set_addr $I10, rxcap_554_fail
- ($I12, $I11) = rx540_cur."!mark_peek"($I10)
- rx540_cur."!cursor_pos"($I11)
- ($P10) = rx540_cur."!cursor_start"()
- $P10."!cursor_pass"(rx540_pos, "")
- rx540_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, 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_554_done
- rxcap_554_fail:
- goto rx540_fail
- rxcap_554_done:
+ goto rxcap_542_done
+ rxcap_542_fail:
+ goto rx528_fail
+ rxcap_542_done:
# rx literal ")"
- add $I11, rx540_pos, 1
- gt $I11, rx540_eos, rx540_fail
- sub $I11, rx540_pos, rx540_off
- substr $S10, rx540_tgt, $I11, 1
- ne $S10, ")", rx540_fail
- add rx540_pos, 1
- (rx540_rep) = rx540_cur."!mark_commit"($I555)
- rxquantr553_done:
- alt545_end:
-.annotate 'line', 174
+ add $I11, 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
- rx540_cur."!cursor_pass"(rx540_pos, "mod_internal")
- rx540_cur."!cursor_debug"("PASS ", "mod_internal", " at pos=", rx540_pos)
- .return (rx540_cur)
- rx540_fail:
-.annotate 'line', 3
- (rx540_rep, rx540_pos, $I10, $P10) = rx540_cur."!mark_fail"(0)
- lt rx540_pos, -1, rx540_done
- eq rx540_pos, -1, rx540_fail
- jump $I10
- rx540_done:
- rx540_cur."!cursor_fail"()
- rx540_cur."!cursor_debug"("FAIL ", "mod_internal")
- .return (rx540_cur)
+ 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("148_1275811476.7961") :method
-.annotate 'line', 3
- $P542 = self."!PREFIX__!subrule"("mod_ident", ":")
- new $P543, "ResizablePMCArray"
- push $P543, $P542
- push $P543, ":"
- .return ($P543)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block547" :anon :subid("149_1275811476.7961") :method :outer("147_1275811476.7961")
-.annotate 'line', 176
- .local string rx549_tgt
- .local int rx549_pos
- .local int rx549_off
- .local int rx549_eos
- .local int rx549_rep
- .local pmc rx549_cur
- (rx549_cur, rx549_pos, rx549_tgt) = self."!cursor_start"()
- rx549_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx549_cur
- .local pmc match
- .lex "$/", match
- length rx549_eos, rx549_tgt
- gt rx549_pos, rx549_eos, rx549_done
- set rx549_off, 0
- lt rx549_pos, 2, rx549_start
- sub rx549_off, rx549_pos, 1
- substr rx549_tgt, rx549_tgt, rx549_off
- rx549_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan550_done
- goto rxscan550_scan
- rxscan550_loop:
- ($P10) = rx549_cur."from"()
- inc $P10
- set rx549_pos, $P10
- ge rx549_pos, rx549_eos, rxscan550_done
- rxscan550_scan:
- set_addr $I10, rxscan550_loop
- rx549_cur."!mark_push"(0, rx549_pos, $I10)
- rxscan550_done:
- alt551_0:
- set_addr $I10, alt551_1
- rx549_cur."!mark_push"(0, rx549_pos, $I10)
+.sub "!PREFIX__mod_internal" :subid("150_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
+ .local string rx537_tgt
+ .local int rx537_pos
+ .local int rx537_off
+ .local int rx537_eos
+ .local int rx537_rep
+ .local pmc rx537_cur
+ (rx537_cur, rx537_pos, rx537_tgt, $I10) = self."!cursor_start"()
+ .lex unicode:"$\x{a2}", rx537_cur
+ .local pmc match
+ .lex "$/", match
+ length rx537_eos, rx537_tgt
+ gt rx537_pos, rx537_eos, rx537_done
+ set rx537_off, 0
+ lt rx537_pos, 2, rx537_start
+ sub rx537_off, rx537_pos, 1
+ 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:
+ ($P10) = rx537_cur."from"()
+ inc $P10
+ set rx537_pos, $P10
+ ge rx537_pos, rx537_eos, rxscan538_done
+ rxscan538_scan:
+ set_addr $I10, rxscan538_loop
+ rx537_cur."!mark_push"(0, rx537_pos, $I10)
+ rxscan538_done:
+ alt539_0:
+ set_addr $I10, alt539_1
+ rx537_cur."!mark_push"(0, rx537_pos, $I10)
# rx literal "!"
- add $I11, rx549_pos, 1
- gt $I11, rx549_eos, rx549_fail
- sub $I11, rx549_pos, rx549_off
- substr $S10, rx549_tgt, $I11, 1
- ne $S10, "!", rx549_fail
- add rx549_pos, 1
- goto alt551_end
- alt551_1:
+ add $I11, 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
+ add rx537_pos, 1
+ goto alt539_end
+ alt539_1:
# rx charclass_q d r 1..-1
- sub $I10, rx549_pos, rx549_off
- find_not_cclass $I11, 8, rx549_tgt, $I10, rx549_eos
+ sub $I10, rx537_pos, rx537_off
+ find_not_cclass $I11, 8, rx537_tgt, $I10, rx537_eos
add $I12, $I10, 1
- lt $I11, $I12, rx549_fail
- add rx549_pos, rx549_off, $I11
- alt551_end:
+ lt $I11, $I12, rx537_fail
+ add rx537_pos, rx537_off, $I11
+ alt539_end:
# rx pass
- rx549_cur."!cursor_pass"(rx549_pos, "")
- rx549_cur."!cursor_debug"("PASS ", "", " at pos=", rx549_pos)
- .return (rx549_cur)
- rx549_fail:
- (rx549_rep, rx549_pos, $I10, $P10) = rx549_cur."!mark_fail"(0)
- lt rx549_pos, -1, rx549_done
- eq rx549_pos, -1, rx549_fail
+ rx537_cur."!cursor_pass"(rx537_pos, "")
+ rx537_cur."!cursor_debug"("PASS ", "", " at pos=", rx537_pos)
+ .return (rx537_cur)
+ rx537_restart:
+ rx537_cur."!cursor_debug"("NEXT ", "")
+ rx537_fail:
+ (rx537_rep, rx537_pos, $I10, $P10) = rx537_cur."!mark_fail"(0)
+ lt rx537_pos, -1, rx537_done
+ eq rx537_pos, -1, rx537_fail
jump $I10
- rx549_done:
- rx549_cur."!cursor_fail"()
- rx549_cur."!cursor_debug"("FAIL ", "")
- .return (rx549_cur)
+ rx537_done:
+ rx537_cur."!cursor_fail"()
+ rx537_cur."!cursor_debug"("FAIL ", "")
+ .return (rx537_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident" :subid("150_1275811476.7961") :method
-.annotate 'line', 181
- $P557 = self."!protoregex"("mod_ident")
- .return ($P557)
+.sub "mod_ident" :subid("152_1280467470.54449") :method
+.annotate 'line', 183
+ $P544 = self."!protoregex"("mod_ident")
+ .return ($P544)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident" :subid("151_1275811476.7961") :method
-.annotate 'line', 181
- $P559 = self."!PREFIX__!protoregex"("mod_ident")
- .return ($P559)
+.sub "!PREFIX__mod_ident" :subid("153_1280467470.54449") :method
+.annotate 'line', 183
+ $P546 = self."!PREFIX__!protoregex"("mod_ident")
+ .return ($P546)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ignorecase>" :subid("152_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "mod_ident:sym<ignorecase>" :subid("154_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx561_tgt
- .local int rx561_pos
- .local int rx561_off
- .local int rx561_eos
- .local int rx561_rep
- .local pmc rx561_cur
- (rx561_cur, rx561_pos, rx561_tgt) = self."!cursor_start"()
- rx561_cur."!cursor_debug"("START ", "mod_ident:sym<ignorecase>")
- .lex unicode:"$\x{a2}", rx561_cur
- .local pmc match
- .lex "$/", match
- length rx561_eos, rx561_tgt
- gt rx561_pos, rx561_eos, rx561_done
- set rx561_off, 0
- lt rx561_pos, 2, rx561_start
- sub rx561_off, rx561_pos, 1
- substr rx561_tgt, rx561_tgt, rx561_off
- rx561_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan564_done
- goto rxscan564_scan
- rxscan564_loop:
- ($P10) = rx561_cur."from"()
- inc $P10
- set rx561_pos, $P10
- ge rx561_pos, rx561_eos, rxscan564_done
- rxscan564_scan:
- set_addr $I10, rxscan564_loop
- rx561_cur."!mark_push"(0, rx561_pos, $I10)
- rxscan564_done:
-.annotate 'line', 182
+ .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
# rx subcapture "sym"
- set_addr $I10, rxcap_565_fail
- rx561_cur."!mark_push"(0, rx561_pos, $I10)
+ set_addr $I10, rxcap_552_fail
+ rx548_cur."!mark_push"(0, rx548_pos, $I10)
# rx literal "i"
- add $I11, rx561_pos, 1
- gt $I11, rx561_eos, rx561_fail
- sub $I11, rx561_pos, rx561_off
- substr $S10, rx561_tgt, $I11, 1
- ne $S10, "i", rx561_fail
- add rx561_pos, 1
- set_addr $I10, rxcap_565_fail
- ($I12, $I11) = rx561_cur."!mark_peek"($I10)
- rx561_cur."!cursor_pos"($I11)
- ($P10) = rx561_cur."!cursor_start"()
- $P10."!cursor_pass"(rx561_pos, "")
- rx561_cur."!mark_push"(0, -1, 0, $P10)
+ 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)
$P10."!cursor_names"("sym")
- goto rxcap_565_done
- rxcap_565_fail:
- goto rx561_fail
- rxcap_565_done:
- # rx rxquantr566 ** 0..1
- set_addr $I567, rxquantr566_done
- rx561_cur."!mark_push"(0, rx561_pos, $I567)
- rxquantr566_loop:
+ 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:
# rx literal "gnorecase"
- add $I11, rx561_pos, 9
- gt $I11, rx561_eos, rx561_fail
- sub $I11, rx561_pos, rx561_off
- substr $S10, rx561_tgt, $I11, 9
- ne $S10, "gnorecase", rx561_fail
- add rx561_pos, 9
- (rx561_rep) = rx561_cur."!mark_commit"($I567)
- rxquantr566_done:
+ 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
- rx561_cur."!cursor_pass"(rx561_pos, "mod_ident:sym<ignorecase>")
- rx561_cur."!cursor_debug"("PASS ", "mod_ident:sym<ignorecase>", " at pos=", rx561_pos)
- .return (rx561_cur)
- rx561_fail:
+ 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
- (rx561_rep, rx561_pos, $I10, $P10) = rx561_cur."!mark_fail"(0)
- lt rx561_pos, -1, rx561_done
- eq rx561_pos, -1, rx561_fail
+ 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
- rx561_done:
- rx561_cur."!cursor_fail"()
- rx561_cur."!cursor_debug"("FAIL ", "mod_ident:sym<ignorecase>")
- .return (rx561_cur)
+ rx548_done:
+ rx548_cur."!cursor_fail"()
+ rx548_cur."!cursor_debug"("FAIL ", "mod_ident:sym<ignorecase>")
+ .return (rx548_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ignorecase>" :subid("153_1275811476.7961") :method
+.sub "!PREFIX__mod_ident:sym<ignorecase>" :subid("155_1280467470.54449") :method
.annotate 'line', 3
- new $P563, "ResizablePMCArray"
- push $P563, "i"
- .return ($P563)
+ new $P550, "ResizablePMCArray"
+ push $P550, "i"
+ .return ($P550)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ratchet>" :subid("154_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "mod_ident:sym<ratchet>" :subid("156_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx569_tgt
- .local int rx569_pos
- .local int rx569_off
- .local int rx569_eos
- .local int rx569_rep
- .local pmc rx569_cur
- (rx569_cur, rx569_pos, rx569_tgt) = self."!cursor_start"()
- rx569_cur."!cursor_debug"("START ", "mod_ident:sym<ratchet>")
- .lex unicode:"$\x{a2}", rx569_cur
+ .local 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 rx569_eos, rx569_tgt
- gt rx569_pos, rx569_eos, rx569_done
- set rx569_off, 0
- lt rx569_pos, 2, rx569_start
- sub rx569_off, rx569_pos, 1
- substr rx569_tgt, rx569_tgt, rx569_off
- rx569_start:
+ 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, rxscan572_done
- goto rxscan572_scan
- rxscan572_loop:
- ($P10) = rx569_cur."from"()
+ ne $I10, -1, rxscan558_done
+ goto rxscan558_scan
+ rxscan558_loop:
+ ($P10) = rx555_cur."from"()
inc $P10
- set rx569_pos, $P10
- ge rx569_pos, rx569_eos, rxscan572_done
- rxscan572_scan:
- set_addr $I10, rxscan572_loop
- rx569_cur."!mark_push"(0, rx569_pos, $I10)
- rxscan572_done:
-.annotate 'line', 183
+ 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
# rx subcapture "sym"
- set_addr $I10, rxcap_573_fail
- rx569_cur."!mark_push"(0, rx569_pos, $I10)
+ set_addr $I10, rxcap_559_fail
+ rx555_cur."!mark_push"(0, rx555_pos, $I10)
# rx literal "r"
- add $I11, rx569_pos, 1
- gt $I11, rx569_eos, rx569_fail
- sub $I11, rx569_pos, rx569_off
- substr $S10, rx569_tgt, $I11, 1
- ne $S10, "r", rx569_fail
- add rx569_pos, 1
- set_addr $I10, rxcap_573_fail
- ($I12, $I11) = rx569_cur."!mark_peek"($I10)
- rx569_cur."!cursor_pos"($I11)
- ($P10) = rx569_cur."!cursor_start"()
- $P10."!cursor_pass"(rx569_pos, "")
- rx569_cur."!mark_push"(0, -1, 0, $P10)
+ 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)
$P10."!cursor_names"("sym")
- goto rxcap_573_done
- rxcap_573_fail:
- goto rx569_fail
- rxcap_573_done:
- # rx rxquantr574 ** 0..1
- set_addr $I575, rxquantr574_done
- rx569_cur."!mark_push"(0, rx569_pos, $I575)
- rxquantr574_loop:
+ 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:
# rx literal "atchet"
- add $I11, rx569_pos, 6
- gt $I11, rx569_eos, rx569_fail
- sub $I11, rx569_pos, rx569_off
- substr $S10, rx569_tgt, $I11, 6
- ne $S10, "atchet", rx569_fail
- add rx569_pos, 6
- (rx569_rep) = rx569_cur."!mark_commit"($I575)
- rxquantr574_done:
+ 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
- rx569_cur."!cursor_pass"(rx569_pos, "mod_ident:sym<ratchet>")
- rx569_cur."!cursor_debug"("PASS ", "mod_ident:sym<ratchet>", " at pos=", rx569_pos)
- .return (rx569_cur)
- rx569_fail:
+ 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
- (rx569_rep, rx569_pos, $I10, $P10) = rx569_cur."!mark_fail"(0)
- lt rx569_pos, -1, rx569_done
- eq rx569_pos, -1, rx569_fail
+ 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
- rx569_done:
- rx569_cur."!cursor_fail"()
- rx569_cur."!cursor_debug"("FAIL ", "mod_ident:sym<ratchet>")
- .return (rx569_cur)
+ rx555_done:
+ rx555_cur."!cursor_fail"()
+ rx555_cur."!cursor_debug"("FAIL ", "mod_ident:sym<ratchet>")
+ .return (rx555_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ratchet>" :subid("155_1275811476.7961") :method
+.sub "!PREFIX__mod_ident:sym<ratchet>" :subid("157_1280467470.54449") :method
.annotate 'line', 3
- new $P571, "ResizablePMCArray"
- push $P571, "r"
- .return ($P571)
+ new $P557, "ResizablePMCArray"
+ push $P557, "r"
+ .return ($P557)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<sigspace>" :subid("156_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "mod_ident:sym<sigspace>" :subid("158_1280467470.54449") :method :outer("11_1280467470.54449")
.annotate 'line', 3
- .local string rx577_tgt
- .local int rx577_pos
- .local int rx577_off
- .local int rx577_eos
- .local int rx577_rep
- .local pmc rx577_cur
- (rx577_cur, rx577_pos, rx577_tgt) = self."!cursor_start"()
- rx577_cur."!cursor_debug"("START ", "mod_ident:sym<sigspace>")
- .lex unicode:"$\x{a2}", rx577_cur
- .local pmc match
- .lex "$/", match
- length rx577_eos, rx577_tgt
- gt rx577_pos, rx577_eos, rx577_done
- set rx577_off, 0
- lt rx577_pos, 2, rx577_start
- sub rx577_off, rx577_pos, 1
- substr rx577_tgt, rx577_tgt, rx577_off
- rx577_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan580_done
- goto rxscan580_scan
- rxscan580_loop:
- ($P10) = rx577_cur."from"()
- inc $P10
- set rx577_pos, $P10
- ge rx577_pos, rx577_eos, rxscan580_done
- rxscan580_scan:
- set_addr $I10, rxscan580_loop
- rx577_cur."!mark_push"(0, rx577_pos, $I10)
- rxscan580_done:
-.annotate 'line', 184
+ .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
# rx subcapture "sym"
- set_addr $I10, rxcap_581_fail
- rx577_cur."!mark_push"(0, rx577_pos, $I10)
+ set_addr $I10, rxcap_566_fail
+ rx562_cur."!mark_push"(0, rx562_pos, $I10)
# rx literal "s"
- add $I11, rx577_pos, 1
- gt $I11, rx577_eos, rx577_fail
- sub $I11, rx577_pos, rx577_off
- substr $S10, rx577_tgt, $I11, 1
- ne $S10, "s", rx577_fail
- add rx577_pos, 1
- set_addr $I10, rxcap_581_fail
- ($I12, $I11) = rx577_cur."!mark_peek"($I10)
- rx577_cur."!cursor_pos"($I11)
- ($P10) = rx577_cur."!cursor_start"()
- $P10."!cursor_pass"(rx577_pos, "")
- rx577_cur."!mark_push"(0, -1, 0, $P10)
+ 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)
$P10."!cursor_names"("sym")
- goto rxcap_581_done
- rxcap_581_fail:
- goto rx577_fail
- rxcap_581_done:
- # rx rxquantr582 ** 0..1
- set_addr $I583, rxquantr582_done
- rx577_cur."!mark_push"(0, rx577_pos, $I583)
- rxquantr582_loop:
+ 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:
# rx literal "igspace"
- add $I11, rx577_pos, 7
- gt $I11, rx577_eos, rx577_fail
- sub $I11, rx577_pos, rx577_off
- substr $S10, rx577_tgt, $I11, 7
- ne $S10, "igspace", rx577_fail
- add rx577_pos, 7
- (rx577_rep) = rx577_cur."!mark_commit"($I583)
- rxquantr582_done:
+ 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:
# rx pass
- rx577_cur."!cursor_pass"(rx577_pos, "mod_ident:sym<sigspace>")
- rx577_cur."!cursor_debug"("PASS ", "mod_ident:sym<sigspace>", " at pos=", rx577_pos)
- .return (rx577_cur)
- rx577_fail:
+ 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:
.annotate 'line', 3
- (rx577_rep, rx577_pos, $I10, $P10) = rx577_cur."!mark_fail"(0)
- lt rx577_pos, -1, rx577_done
- eq rx577_pos, -1, rx577_fail
+ 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
jump $I10
- rx577_done:
- rx577_cur."!cursor_fail"()
- rx577_cur."!cursor_debug"("FAIL ", "mod_ident:sym<sigspace>")
- .return (rx577_cur)
+ rx562_done:
+ rx562_cur."!cursor_fail"()
+ rx562_cur."!cursor_debug"("FAIL ", "mod_ident:sym<sigspace>")
+ .return (rx562_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<sigspace>" :subid("157_1275811476.7961") :method
+.sub "!PREFIX__mod_ident:sym<sigspace>" :subid("159_1280467470.54449") :method
.annotate 'line', 3
- new $P579, "ResizablePMCArray"
- push $P579, "s"
- .return ($P579)
+ new $P564, "ResizablePMCArray"
+ push $P564, "s"
+ .return ($P564)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block584" :load :anon :subid("158_1275811476.7961")
+.sub "_block568" :load :anon :subid("160_1280467470.54449")
.annotate 'line', 3
- .const 'Sub' $P586 = "11_1275811476.7961"
- $P587 = $P586()
- .return ($P587)
+ .const 'Sub' $P570 = "11_1280467470.54449"
+ $P571 = $P570()
+ .return ($P571)
.end
.namespace []
-.sub "_block589" :load :anon :subid("159_1275811476.7961")
+.sub "_block573" :load :anon :subid("161_1280467470.54449")
.annotate 'line', 1
- .const 'Sub' $P591 = "10_1275811476.7961"
- $P592 = $P591()
- .return ($P592)
+ .const 'Sub' $P575 = "10_1280467470.54449"
+ $P576 = $P575()
+ .return ($P576)
.end
### .include 'gen/p6regex-actions.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1275811482.3686")
+.sub "_block11" :anon :subid("10_1280467473.99327")
.annotate 'line', 0
get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13"
capture_lex $P14
@@ -7296,157 +7689,155 @@
.annotate 'line', 4
get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13"
capture_lex $P14
- $P1599 = $P14()
+ $P1634 = $P14()
.annotate 'line', 1
- .return ($P1599)
- .const 'Sub' $P1601 = "91_1275811482.3686"
- .return ($P1601)
+ .return ($P1634)
+ .const 'Sub' $P1636 = "92_1280467473.99327"
+ .return ($P1636)
.end
.namespace []
-.sub "" :load :init :subid("post92") :outer("10_1275811482.3686")
+.sub "" :load :init :subid("post93") :outer("10_1280467473.99327")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1275811482.3686"
+ .const 'Sub' $P12 = "10_1280467473.99327"
.local pmc block
set block, $P12
- $P1604 = get_root_global ["parrot"], "P6metaclass"
- $P1604."new_class"("Regex::P6Regex::Actions", "HLL::Actions" :named("parent"))
+ $P1639 = get_root_global ["parrot"], "P6metaclass"
+ $P1639."new_class"("Regex::P6Regex::Actions", "HLL::Actions" :named("parent"))
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block13" :subid("11_1275811482.3686") :outer("10_1275811482.3686")
+.sub "_block13" :subid("11_1280467473.99327") :outer("10_1280467473.99327")
.annotate 'line', 4
- .const 'Sub' $P1561 = "89_1275811482.3686"
- capture_lex $P1561
- .const 'Sub' $P1492 = "85_1275811482.3686"
- capture_lex $P1492
- .const 'Sub' $P1424 = "83_1275811482.3686"
- capture_lex $P1424
- .const 'Sub' $P1351 = "80_1275811482.3686"
- capture_lex $P1351
- .const 'Sub' $P1337 = "79_1275811482.3686"
- capture_lex $P1337
- .const 'Sub' $P1313 = "78_1275811482.3686"
- capture_lex $P1313
- .const 'Sub' $P1295 = "77_1275811482.3686"
- capture_lex $P1295
- .const 'Sub' $P1281 = "76_1275811482.3686"
- capture_lex $P1281
- .const 'Sub' $P1268 = "75_1275811482.3686"
- capture_lex $P1268
- .const 'Sub' $P1237 = "74_1275811482.3686"
- capture_lex $P1237
- .const 'Sub' $P1206 = "73_1275811482.3686"
- capture_lex $P1206
- .const 'Sub' $P1190 = "72_1275811482.3686"
- capture_lex $P1190
- .const 'Sub' $P1174 = "71_1275811482.3686"
- capture_lex $P1174
- .const 'Sub' $P1158 = "70_1275811482.3686"
- capture_lex $P1158
- .const 'Sub' $P1142 = "69_1275811482.3686"
- capture_lex $P1142
- .const 'Sub' $P1126 = "68_1275811482.3686"
- capture_lex $P1126
- .const 'Sub' $P1110 = "67_1275811482.3686"
- capture_lex $P1110
- .const 'Sub' $P1094 = "66_1275811482.3686"
- capture_lex $P1094
- .const 'Sub' $P1070 = "65_1275811482.3686"
- capture_lex $P1070
- .const 'Sub' $P1055 = "64_1275811482.3686"
- capture_lex $P1055
- .const 'Sub' $P999 = "63_1275811482.3686"
- capture_lex $P999
- .const 'Sub' $P978 = "62_1275811482.3686"
- capture_lex $P978
- .const 'Sub' $P956 = "61_1275811482.3686"
- capture_lex $P956
- .const 'Sub' $P946 = "60_1275811482.3686"
- capture_lex $P946
- .const 'Sub' $P936 = "59_1275811482.3686"
- capture_lex $P936
- .const 'Sub' $P926 = "58_1275811482.3686"
- capture_lex $P926
- .const 'Sub' $P914 = "57_1275811482.3686"
- capture_lex $P914
- .const 'Sub' $P902 = "56_1275811482.3686"
- capture_lex $P902
- .const 'Sub' $P890 = "55_1275811482.3686"
- capture_lex $P890
- .const 'Sub' $P878 = "54_1275811482.3686"
- capture_lex $P878
- .const 'Sub' $P866 = "53_1275811482.3686"
- capture_lex $P866
- .const 'Sub' $P854 = "52_1275811482.3686"
- capture_lex $P854
- .const 'Sub' $P842 = "51_1275811482.3686"
- capture_lex $P842
- .const 'Sub' $P830 = "50_1275811482.3686"
- capture_lex $P830
- .const 'Sub' $P807 = "49_1275811482.3686"
- capture_lex $P807
- .const 'Sub' $P784 = "48_1275811482.3686"
- capture_lex $P784
- .const 'Sub' $P766 = "47_1275811482.3686"
- capture_lex $P766
- .const 'Sub' $P756 = "46_1275811482.3686"
- capture_lex $P756
- .const 'Sub' $P738 = "45_1275811482.3686"
- capture_lex $P738
- .const 'Sub' $P665 = "43_1275811482.3686"
- capture_lex $P665
- .const 'Sub' $P648 = "42_1275811482.3686"
- capture_lex $P648
- .const 'Sub' $P633 = "41_1275811482.3686"
- capture_lex $P633
- .const 'Sub' $P618 = "40_1275811482.3686"
- capture_lex $P618
- .const 'Sub' $P592 = "39_1275811482.3686"
- capture_lex $P592
- .const 'Sub' $P541 = "37_1275811482.3686"
- capture_lex $P541
- .const 'Sub' $P473 = "35_1275811482.3686"
- capture_lex $P473
- .const 'Sub' $P418 = "32_1275811482.3686"
- capture_lex $P418
- .const 'Sub' $P403 = "31_1275811482.3686"
- capture_lex $P403
- .const 'Sub' $P377 = "29_1275811482.3686"
- capture_lex $P377
- .const 'Sub' $P360 = "28_1275811482.3686"
- capture_lex $P360
- .const 'Sub' $P338 = "27_1275811482.3686"
- capture_lex $P338
- .const 'Sub' $P305 = "26_1275811482.3686"
- capture_lex $P305
- .const 'Sub' $P50 = "13_1275811482.3686"
- capture_lex $P50
- .const 'Sub' $P16 = "12_1275811482.3686"
+ .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"
+ capture_lex $P460
+ .const 'Sub' $P404 = "31_1280467473.99327"
+ capture_lex $P404
+ .const 'Sub' $P389 = "30_1280467473.99327"
+ capture_lex $P389
+ .const 'Sub' $P363 = "28_1280467473.99327"
+ capture_lex $P363
+ .const 'Sub' $P346 = "27_1280467473.99327"
+ capture_lex $P346
+ .const 'Sub' $P312 = "26_1280467473.99327"
+ capture_lex $P312
+ .const 'Sub' $P57 = "13_1280467473.99327"
+ capture_lex $P57
+ .const 'Sub' $P16 = "12_1280467473.99327"
capture_lex $P16
get_global $P15, "@MODIFIERS"
- unless_null $P15, vivify_94
+ unless_null $P15, vivify_95
$P15 = root_new ['parrot';'ResizablePMCArray']
set_global "@MODIFIERS", $P15
- vivify_94:
-.annotate 'line', 494
- .const 'Sub' $P16 = "12_1275811482.3686"
- newclosure $P49, $P16
- .lex "buildsub", $P49
-.annotate 'line', 511
- .const 'Sub' $P50 = "13_1275811482.3686"
- newclosure $P304, $P50
- .lex "capnames", $P304
-.annotate 'line', 577
- .const 'Sub' $P305 = "26_1275811482.3686"
- newclosure $P337, $P305
- .lex "backmod", $P337
-.annotate 'line', 584
- .const 'Sub' $P338 = "27_1275811482.3686"
- newclosure $P358, $P338
- .lex "subrule_alias", $P358
+ vivify_95:
+.annotate 'line', 492
+ .const 'Sub' $P16 = "12_1280467473.99327"
+ newclosure $P56, $P16
+ .lex "buildsub", $P56
+.annotate 'line', 510
+ .const 'Sub' $P57 = "13_1280467473.99327"
+ newclosure $P311, $P57
+ .lex "capnames", $P311
+.annotate 'line', 576
+ .const 'Sub' $P312 = "26_1280467473.99327"
+ newclosure $P344, $P312
+ .lex "backmod", $P344
.annotate 'line', 4
$P0 = find_dynamic_lex "$*CTXSAVE"
if null $P0 goto ctxsave_done
@@ -7454,4090 +7845,4104 @@
unless $I0 goto ctxsave_done
$P0."ctxsave"()
ctxsave_done:
- get_global $P359, "@MODIFIERS"
-.annotate 'line', 487
- find_lex $P1590, "buildsub"
- find_lex $P1591, "capnames"
- find_lex $P1592, "backmod"
- find_lex $P1593, "subrule_alias"
+ 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', 4
- .return ($P1593)
- .const 'Sub' $P1595 = "90_1275811482.3686"
- .return ($P1595)
+ .return ($P1628)
+ .const 'Sub' $P1630 = "91_1280467473.99327"
+ .return ($P1630)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "" :load :init :subid("post93") :outer("11_1275811482.3686")
+.sub "" :load :init :subid("post94") :outer("11_1280467473.99327")
.annotate 'line', 4
get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13"
.local pmc block
set block, $P14
.annotate 'line', 7
- $P1598 = new ['ResizablePMCArray']
+ $P1633 = new ['ResizablePMCArray']
$P0 = new ['Hash']
- push $P1598, $P0
+ push $P1633, $P0
- set_global "@MODIFIERS", $P1598
+ set_global "@MODIFIERS", $P1633
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "buildsub" :subid("12_1275811482.3686") :outer("11_1275811482.3686")
+.sub "buildsub" :subid("12_1280467473.99327") :outer("11_1280467473.99327")
.param pmc param_19
.param pmc param_20 :optional
.param int has_param_20 :opt_flag
-.annotate 'line', 494
+.annotate 'line', 492
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_95
+ if has_param_20, optparam_96
get_hll_global $P21, ["PAST"], "Block"
$P22 = $P21."new"()
set param_20, $P22
- optparam_95:
+ optparam_96:
.lex "$block", param_20
-.annotate 'line', 495
+.annotate 'line', 493
$P23 = root_new ['parrot';'Hash']
.lex "%capnames", $P23
find_lex $P24, "$rpast"
$P25 = "capnames"($P24, 0)
store_lex "%capnames", $P25
-.annotate 'line', 496
+.annotate 'line', 494
new $P26, "Integer"
assign $P26, 0
find_lex $P27, "%capnames"
- unless_null $P27, vivify_96
+ unless_null $P27, vivify_97
$P27 = root_new ['parrot';'Hash']
store_lex "%capnames", $P27
- vivify_96:
+ vivify_97:
set $P27[""], $P26
-.annotate 'line', 497
+.annotate 'line', 495
get_hll_global $P28, ["PAST"], "Regex"
-.annotate 'line', 498
+.annotate 'line', 496
get_hll_global $P29, ["PAST"], "Regex"
$P30 = $P29."new"("scan" :named("pasttype"))
find_lex $P31, "$rpast"
-.annotate 'line', 500
+.annotate 'line', 498
get_hll_global $P32, ["PAST"], "Regex"
- $P33 = $P32."new"("pass" :named("pasttype"))
- find_lex $P34, "%capnames"
- $P35 = $P28."new"($P30, $P31, $P33, "concat" :named("pasttype"), $P34 :named("capnames"))
-.annotate 'line', 497
- store_lex "$rpast", $P35
+.annotate 'line', 499
+ get_global $P35, "@MODIFIERS"
+ unless_null $P35, vivify_98
+ $P35 = root_new ['parrot';'ResizablePMCArray']
+ vivify_98:
+ set $P36, $P35[0]
+ unless_null $P36, vivify_99
+ $P36 = root_new ['parrot';'Hash']
+ vivify_99:
+ set $P37, $P36["r"]
+ unless_null $P37, vivify_100
+ new $P37, "Undef"
+ vivify_100:
+ if $P37, if_34
+ new $P39, "String"
+ assign $P39, "g"
+ set $P33, $P39
+ goto if_34_end
+ if_34:
+ new $P38, "String"
+ assign $P38, "r"
+ set $P33, $P38
+ if_34_end:
+ $P40 = $P32."new"("pass" :named("pasttype"), $P33 :named("backtrack"))
+.annotate 'line', 498
+ find_lex $P41, "%capnames"
+ $P42 = $P28."new"($P30, $P31, $P40, "concat" :named("pasttype"), $P41 :named("capnames"))
+.annotate 'line', 495
+ store_lex "$rpast", $P42
+.annotate 'line', 503
+ 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
- find_lex $P37, "$block"
- $P38 = $P37."symbol"(unicode:"$\x{a2}")
- if $P38, unless_36_end
- find_lex $P39, "$block"
- $P39."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
- unless_36_end:
+ 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
- find_lex $P41, "$block"
- $P42 = $P41."symbol"("$/")
- if $P42, unless_40_end
- find_lex $P43, "$block"
- $P43."symbol"("$/", "lexical" :named("scope"))
- unless_40_end:
+ find_lex $P51, "$block"
+ find_lex $P52, "$rpast"
+ $P51."push"($P52)
.annotate 'line', 506
- find_lex $P44, "$block"
- find_lex $P45, "$rpast"
- $P44."push"($P45)
-.annotate 'line', 507
- find_lex $P46, "$block"
- $P46."blocktype"("method")
- find_lex $P47, "$block"
-.annotate 'line', 494
- .return ($P47)
+ find_lex $P53, "$block"
+ $P53."blocktype"("method")
+ find_lex $P54, "$block"
+.annotate 'line', 492
+ .return ($P54)
control_17:
.local pmc exception
.get_results (exception)
- getattribute $P48, exception, "payload"
- .return ($P48)
+ getattribute $P55, exception, "payload"
+ .return ($P55)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "capnames" :subid("13_1275811482.3686") :outer("11_1275811482.3686")
- .param pmc param_53
- .param pmc param_54
+.sub "capnames" :subid("13_1280467473.99327") :outer("11_1280467473.99327")
+ .param pmc param_60
+ .param pmc param_61
+.annotate 'line', 510
+ .const 'Sub' $P286 = "24_1280467473.99327"
+ capture_lex $P286
+ .const 'Sub' $P223 = "21_1280467473.99327"
+ capture_lex $P223
+ .const 'Sub' $P181 = "19_1280467473.99327"
+ capture_lex $P181
+ .const 'Sub' $P139 = "17_1280467473.99327"
+ capture_lex $P139
+ .const 'Sub' $P72 = "14_1280467473.99327"
+ capture_lex $P72
+ new $P59, 'ExceptionHandler'
+ set_addr $P59, control_58
+ $P59."handle_types"(.CONTROL_RETURN)
+ push_eh $P59
+ .lex "$ast", param_60
+ .lex "$count", param_61
.annotate 'line', 511
- .const 'Sub' $P279 = "24_1275811482.3686"
- capture_lex $P279
- .const 'Sub' $P216 = "21_1275811482.3686"
- capture_lex $P216
- .const 'Sub' $P174 = "19_1275811482.3686"
- capture_lex $P174
- .const 'Sub' $P132 = "17_1275811482.3686"
- capture_lex $P132
- .const 'Sub' $P65 = "14_1275811482.3686"
- capture_lex $P65
- new $P52, 'ExceptionHandler'
- set_addr $P52, control_51
- $P52."handle_types"(.CONTROL_RETURN)
- push_eh $P52
- .lex "$ast", param_53
- .lex "$count", param_54
+ $P62 = root_new ['parrot';'Hash']
+ .lex "%capnames", $P62
.annotate 'line', 512
- $P55 = root_new ['parrot';'Hash']
- .lex "%capnames", $P55
-.annotate 'line', 513
- new $P56, "Undef"
- .lex "$pasttype", $P56
-.annotate 'line', 511
- find_lex $P57, "%capnames"
+ new $P63, "Undef"
+ .lex "$pasttype", $P63
+.annotate 'line', 510
+ find_lex $P64, "%capnames"
+.annotate 'line', 512
+ find_lex $P65, "$ast"
+ $P66 = $P65."pasttype"()
+ store_lex "$pasttype", $P66
.annotate 'line', 513
- find_lex $P58, "$ast"
- $P59 = $P58."pasttype"()
- store_lex "$pasttype", $P59
-.annotate 'line', 514
- find_lex $P61, "$pasttype"
- set $S62, $P61
- iseq $I63, $S62, "alt"
- if $I63, if_60
+ find_lex $P68, "$pasttype"
+ set $S69, $P68
+ iseq $I70, $S69, "alt"
+ if $I70, if_67
+.annotate 'line', 526
+ find_lex $P130, "$pasttype"
+ set $S131, $P130
+ iseq $I132, $S131, "concat"
+ if $I132, if_129
+.annotate 'line', 535
+ find_lex $P174, "$pasttype"
+ set $S175, $P174
+ iseq $I176, $S175, "subrule"
+ if $I176, if_173
+ new $P172, 'Integer'
+ set $P172, $I176
+ goto if_173_end
+ if_173:
+ find_lex $P177, "$ast"
+ $S178 = $P177."subtype"()
+ iseq $I179, $S178, "capture"
+ new $P172, 'Integer'
+ set $P172, $I179
+ if_173_end:
+ if $P172, if_171
+.annotate 'line', 548
+ find_lex $P219, "$pasttype"
+ set $S220, $P219
+ iseq $I221, $S220, "subcapture"
+ if $I221, if_218
+.annotate 'line', 565
+ find_lex $P282, "$pasttype"
+ set $S283, $P282
+ iseq $I284, $S283, "quant"
+ unless $I284, if_281_end
+ .const 'Sub' $P286 = "24_1280467473.99327"
+ capture_lex $P286
+ $P286()
+ if_281_end:
+ goto if_218_end
+ if_218:
+.annotate 'line', 548
+ .const 'Sub' $P223 = "21_1280467473.99327"
+ capture_lex $P223
+ $P223()
+ if_218_end:
+ goto if_171_end
+ if_171:
+.annotate 'line', 535
+ .const 'Sub' $P181 = "19_1280467473.99327"
+ capture_lex $P181
+ $P181()
+ if_171_end:
+ goto if_129_end
+ if_129:
.annotate 'line', 527
- find_lex $P123, "$pasttype"
- set $S124, $P123
- iseq $I125, $S124, "concat"
- if $I125, if_122
-.annotate 'line', 536
- find_lex $P167, "$pasttype"
- set $S168, $P167
- iseq $I169, $S168, "subrule"
- if $I169, if_166
- new $P165, 'Integer'
- set $P165, $I169
- goto if_166_end
- if_166:
- find_lex $P170, "$ast"
- $S171 = $P170."subtype"()
- iseq $I172, $S171, "capture"
- new $P165, 'Integer'
- set $P165, $I172
- if_166_end:
- if $P165, if_164
-.annotate 'line', 549
- find_lex $P212, "$pasttype"
- set $S213, $P212
- iseq $I214, $S213, "subcapture"
- if $I214, if_211
-.annotate 'line', 566
- find_lex $P275, "$pasttype"
- set $S276, $P275
- iseq $I277, $S276, "quant"
- unless $I277, if_274_end
- .const 'Sub' $P279 = "24_1275811482.3686"
- capture_lex $P279
- $P279()
- if_274_end:
- goto if_211_end
- if_211:
-.annotate 'line', 549
- .const 'Sub' $P216 = "21_1275811482.3686"
- capture_lex $P216
- $P216()
- if_211_end:
- goto if_164_end
- if_164:
-.annotate 'line', 536
- .const 'Sub' $P174 = "19_1275811482.3686"
- capture_lex $P174
- $P174()
- if_164_end:
- goto if_122_end
- if_122:
-.annotate 'line', 528
- find_lex $P127, "$ast"
- $P128 = $P127."list"()
- defined $I129, $P128
- unless $I129, for_undef_117
- iter $P126, $P128
- new $P162, 'ExceptionHandler'
- set_addr $P162, loop161_handler
- $P162."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P162
- loop161_test:
- unless $P126, loop161_done
- shift $P130, $P126
- loop161_redo:
- .const 'Sub' $P132 = "17_1275811482.3686"
- capture_lex $P132
- $P132($P130)
- loop161_next:
- goto loop161_test
- loop161_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P163, exception, 'type'
- eq $P163, .CONTROL_LOOP_NEXT, loop161_next
- eq $P163, .CONTROL_LOOP_REDO, loop161_redo
- loop161_done:
+ find_lex $P134, "$ast"
+ $P135 = $P134."list"()
+ defined $I136, $P135
+ unless $I136, for_undef_121
+ iter $P133, $P135
+ new $P169, 'ExceptionHandler'
+ set_addr $P169, loop168_handler
+ $P169."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P169
+ loop168_test:
+ unless $P133, loop168_done
+ shift $P137, $P133
+ loop168_redo:
+ .const 'Sub' $P139 = "17_1280467473.99327"
+ capture_lex $P139
+ $P139($P137)
+ loop168_next:
+ goto loop168_test
+ loop168_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P170, exception, 'type'
+ eq $P170, .CONTROL_LOOP_NEXT, loop168_next
+ eq $P170, .CONTROL_LOOP_REDO, loop168_redo
+ loop168_done:
pop_eh
- for_undef_117:
- if_122_end:
-.annotate 'line', 527
- goto if_60_end
- if_60:
-.annotate 'line', 514
- .const 'Sub' $P65 = "14_1275811482.3686"
- capture_lex $P65
- $P65()
- if_60_end:
-.annotate 'line', 573
- find_lex $P300, "$count"
- find_lex $P301, "%capnames"
- unless_null $P301, vivify_137
- $P301 = root_new ['parrot';'Hash']
- store_lex "%capnames", $P301
- vivify_137:
- set $P301[""], $P300
- find_lex $P302, "%capnames"
-.annotate 'line', 511
- .return ($P302)
- control_51:
+ for_undef_121:
+ if_129_end:
+.annotate 'line', 526
+ goto if_67_end
+ if_67:
+.annotate 'line', 513
+ .const 'Sub' $P72 = "14_1280467473.99327"
+ capture_lex $P72
+ $P72()
+ if_67_end:
+.annotate 'line', 572
+ find_lex $P307, "$count"
+ find_lex $P308, "%capnames"
+ unless_null $P308, vivify_141
+ $P308 = root_new ['parrot';'Hash']
+ store_lex "%capnames", $P308
+ vivify_141:
+ set $P308[""], $P307
+ find_lex $P309, "%capnames"
+.annotate 'line', 510
+ .return ($P309)
+ control_58:
.local pmc exception
.get_results (exception)
- getattribute $P303, exception, "payload"
- .return ($P303)
+ getattribute $P310, exception, "payload"
+ .return ($P310)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "_block278" :anon :subid("24_1275811482.3686") :outer("13_1275811482.3686")
+.sub "_block285" :anon :subid("24_1280467473.99327") :outer("13_1280467473.99327")
+.annotate 'line', 565
+ .const 'Sub' $P297 = "25_1280467473.99327"
+ capture_lex $P297
.annotate 'line', 566
- .const 'Sub' $P290 = "25_1275811482.3686"
- capture_lex $P290
-.annotate 'line', 567
- $P280 = root_new ['parrot';'Hash']
- .lex "%astcap", $P280
- find_lex $P281, "$ast"
- unless_null $P281, vivify_97
- $P281 = root_new ['parrot';'ResizablePMCArray']
- vivify_97:
- set $P282, $P281[0]
- unless_null $P282, vivify_98
- new $P282, "Undef"
- vivify_98:
- find_lex $P283, "$count"
- $P284 = "capnames"($P282, $P283)
- store_lex "%astcap", $P284
-.annotate 'line', 568
- find_lex $P286, "%astcap"
- defined $I287, $P286
- unless $I287, for_undef_99
- iter $P285, $P286
- new $P296, 'ExceptionHandler'
- set_addr $P296, loop295_handler
- $P296."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P296
- loop295_test:
- unless $P285, loop295_done
- shift $P288, $P285
- loop295_redo:
- .const 'Sub' $P290 = "25_1275811482.3686"
- capture_lex $P290
- $P290($P288)
- loop295_next:
- goto loop295_test
- loop295_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P297, exception, 'type'
- eq $P297, .CONTROL_LOOP_NEXT, loop295_next
- eq $P297, .CONTROL_LOOP_REDO, loop295_redo
- loop295_done:
- pop_eh
- for_undef_99:
-.annotate 'line', 571
- find_lex $P298, "%astcap"
- unless_null $P298, vivify_101
- $P298 = root_new ['parrot';'Hash']
+ $P287 = root_new ['parrot';'Hash']
+ .lex "%astcap", $P287
+ find_lex $P288, "$ast"
+ unless_null $P288, vivify_101
+ $P288 = root_new ['parrot';'ResizablePMCArray']
vivify_101:
- set $P299, $P298[""]
- unless_null $P299, vivify_102
- new $P299, "Undef"
+ set $P289, $P288[0]
+ unless_null $P289, vivify_102
+ new $P289, "Undef"
vivify_102:
- store_lex "$count", $P299
-.annotate 'line', 566
- .return ($P299)
+ find_lex $P290, "$count"
+ $P291 = "capnames"($P289, $P290)
+ store_lex "%astcap", $P291
+.annotate 'line', 567
+ find_lex $P293, "%astcap"
+ defined $I294, $P293
+ unless $I294, for_undef_103
+ iter $P292, $P293
+ new $P303, 'ExceptionHandler'
+ set_addr $P303, loop302_handler
+ $P303."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P303
+ loop302_test:
+ unless $P292, loop302_done
+ shift $P295, $P292
+ loop302_redo:
+ .const 'Sub' $P297 = "25_1280467473.99327"
+ capture_lex $P297
+ $P297($P295)
+ loop302_next:
+ goto loop302_test
+ loop302_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P304, exception, 'type'
+ eq $P304, .CONTROL_LOOP_NEXT, loop302_next
+ eq $P304, .CONTROL_LOOP_REDO, loop302_redo
+ loop302_done:
+ pop_eh
+ for_undef_103:
+.annotate 'line', 570
+ find_lex $P305, "%astcap"
+ unless_null $P305, vivify_105
+ $P305 = root_new ['parrot';'Hash']
+ vivify_105:
+ set $P306, $P305[""]
+ unless_null $P306, vivify_106
+ new $P306, "Undef"
+ vivify_106:
+ store_lex "$count", $P306
+.annotate 'line', 565
+ .return ($P306)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block289" :anon :subid("25_1275811482.3686") :outer("24_1275811482.3686")
- .param pmc param_291
-.annotate 'line', 568
- .lex "$_", param_291
-.annotate 'line', 569
- new $P292, "Integer"
- assign $P292, 2
- find_lex $P293, "$_"
- find_lex $P294, "%capnames"
- unless_null $P294, vivify_100
- $P294 = root_new ['parrot';'Hash']
- store_lex "%capnames", $P294
- vivify_100:
- set $P294[$P293], $P292
+.sub "_block296" :anon :subid("25_1280467473.99327") :outer("24_1280467473.99327")
+ .param pmc param_298
+.annotate 'line', 567
+ .lex "$_", param_298
.annotate 'line', 568
- .return ($P292)
+ new $P299, "Integer"
+ assign $P299, 2
+ find_lex $P300, "$_"
+ find_lex $P301, "%capnames"
+ unless_null $P301, vivify_104
+ $P301 = root_new ['parrot';'Hash']
+ store_lex "%capnames", $P301
+ vivify_104:
+ set $P301[$P300], $P299
+.annotate 'line', 567
+ .return ($P299)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "_block215" :anon :subid("21_1275811482.3686") :outer("13_1275811482.3686")
+.sub "_block222" :anon :subid("21_1280467473.99327") :outer("13_1280467473.99327")
+.annotate 'line', 548
+ .const 'Sub' $P263 = "23_1280467473.99327"
+ capture_lex $P263
+ .const 'Sub' $P235 = "22_1280467473.99327"
+ capture_lex $P235
.annotate 'line', 549
- .const 'Sub' $P256 = "23_1275811482.3686"
- capture_lex $P256
- .const 'Sub' $P228 = "22_1275811482.3686"
- capture_lex $P228
+ new $P224, "Undef"
+ .lex "$name", $P224
.annotate 'line', 550
- new $P217, "Undef"
- .lex "$name", $P217
-.annotate 'line', 551
- $P218 = root_new ['parrot';'ResizablePMCArray']
- .lex "@names", $P218
-.annotate 'line', 560
- $P219 = root_new ['parrot';'Hash']
- .lex "%x", $P219
+ $P225 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@names", $P225
+.annotate 'line', 559
+ $P226 = root_new ['parrot';'Hash']
+ .lex "%x", $P226
+.annotate 'line', 549
+ find_lex $P227, "$ast"
+ $P228 = $P227."name"()
+ store_lex "$name", $P228
.annotate 'line', 550
- find_lex $P220, "$ast"
- $P221 = $P220."name"()
- store_lex "$name", $P221
-.annotate 'line', 551
$P0 = find_lex '$name'
$S0 = $P0
- $P222 = split '=', $S0
+ $P229 = split '=', $S0
- store_lex "@names", $P222
-.annotate 'line', 556
- find_lex $P224, "@names"
- defined $I225, $P224
- unless $I225, for_undef_103
- iter $P223, $P224
- new $P245, 'ExceptionHandler'
- set_addr $P245, loop244_handler
- $P245."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P245
- loop244_test:
- unless $P223, loop244_done
- shift $P226, $P223
- loop244_redo:
- .const 'Sub' $P228 = "22_1275811482.3686"
- capture_lex $P228
- $P228($P226)
- loop244_next:
- goto loop244_test
- loop244_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P246, exception, 'type'
- eq $P246, .CONTROL_LOOP_NEXT, loop244_next
- eq $P246, .CONTROL_LOOP_REDO, loop244_redo
- loop244_done:
+ store_lex "@names", $P229
+.annotate 'line', 555
+ find_lex $P231, "@names"
+ defined $I232, $P231
+ unless $I232, for_undef_107
+ iter $P230, $P231
+ new $P252, 'ExceptionHandler'
+ set_addr $P252, loop251_handler
+ $P252."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P252
+ loop251_test:
+ unless $P230, loop251_done
+ shift $P233, $P230
+ loop251_redo:
+ .const 'Sub' $P235 = "22_1280467473.99327"
+ capture_lex $P235
+ $P235($P233)
+ loop251_next:
+ goto loop251_test
+ loop251_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P253, exception, 'type'
+ eq $P253, .CONTROL_LOOP_NEXT, loop251_next
+ eq $P253, .CONTROL_LOOP_REDO, loop251_redo
+ loop251_done:
pop_eh
- for_undef_103:
+ for_undef_107:
+.annotate 'line', 559
+ find_lex $P254, "$ast"
+ unless_null $P254, vivify_109
+ $P254 = root_new ['parrot';'ResizablePMCArray']
+ vivify_109:
+ set $P255, $P254[0]
+ unless_null $P255, vivify_110
+ new $P255, "Undef"
+ vivify_110:
+ find_lex $P256, "$count"
+ $P257 = "capnames"($P255, $P256)
+ store_lex "%x", $P257
.annotate 'line', 560
- find_lex $P247, "$ast"
- unless_null $P247, vivify_105
- $P247 = root_new ['parrot';'ResizablePMCArray']
- vivify_105:
- set $P248, $P247[0]
- unless_null $P248, vivify_106
- new $P248, "Undef"
- vivify_106:
- find_lex $P249, "$count"
- $P250 = "capnames"($P248, $P249)
- store_lex "%x", $P250
-.annotate 'line', 561
- find_lex $P252, "%x"
- defined $I253, $P252
- unless $I253, for_undef_107
- iter $P251, $P252
- new $P270, 'ExceptionHandler'
- set_addr $P270, loop269_handler
- $P270."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P270
- loop269_test:
- unless $P251, loop269_done
- shift $P254, $P251
- loop269_redo:
- .const 'Sub' $P256 = "23_1275811482.3686"
- capture_lex $P256
- $P256($P254)
- loop269_next:
- goto loop269_test
- loop269_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P271, exception, 'type'
- eq $P271, .CONTROL_LOOP_NEXT, loop269_next
- eq $P271, .CONTROL_LOOP_REDO, loop269_redo
- loop269_done:
+ find_lex $P259, "%x"
+ defined $I260, $P259
+ unless $I260, for_undef_111
+ iter $P258, $P259
+ new $P277, 'ExceptionHandler'
+ set_addr $P277, loop276_handler
+ $P277."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P277
+ loop276_test:
+ unless $P258, loop276_done
+ shift $P261, $P258
+ loop276_redo:
+ .const 'Sub' $P263 = "23_1280467473.99327"
+ capture_lex $P263
+ $P263($P261)
+ loop276_next:
+ goto loop276_test
+ loop276_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P278, exception, 'type'
+ eq $P278, .CONTROL_LOOP_NEXT, loop276_next
+ eq $P278, .CONTROL_LOOP_REDO, loop276_redo
+ loop276_done:
pop_eh
- for_undef_107:
-.annotate 'line', 564
- find_lex $P272, "%x"
- unless_null $P272, vivify_113
- $P272 = root_new ['parrot';'Hash']
- vivify_113:
- set $P273, $P272[""]
- unless_null $P273, vivify_114
- new $P273, "Undef"
- vivify_114:
- store_lex "$count", $P273
-.annotate 'line', 549
- .return ($P273)
+ for_undef_111:
+.annotate 'line', 563
+ find_lex $P279, "%x"
+ unless_null $P279, vivify_117
+ $P279 = root_new ['parrot';'Hash']
+ vivify_117:
+ set $P280, $P279[""]
+ unless_null $P280, vivify_118
+ new $P280, "Undef"
+ vivify_118:
+ store_lex "$count", $P280
+.annotate 'line', 548
+ .return ($P280)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block227" :anon :subid("22_1275811482.3686") :outer("21_1275811482.3686")
- .param pmc param_229
+.sub "_block234" :anon :subid("22_1280467473.99327") :outer("21_1280467473.99327")
+ .param pmc param_236
+.annotate 'line', 555
+ .lex "$_", param_236
.annotate 'line', 556
- .lex "$_", param_229
+ find_lex $P240, "$_"
+ set $S241, $P240
+ iseq $I242, $S241, "0"
+ unless $I242, unless_239
+ new $P238, 'Integer'
+ set $P238, $I242
+ goto unless_239_end
+ unless_239:
+ find_lex $P243, "$_"
+ set $N244, $P243
+ isgt $I245, $N244, 0.0
+ new $P238, 'Integer'
+ set $P238, $I245
+ unless_239_end:
+ unless $P238, if_237_end
+ find_lex $P246, "$_"
+ add $P247, $P246, 1
+ store_lex "$count", $P247
+ if_237_end:
.annotate 'line', 557
- find_lex $P233, "$_"
- set $S234, $P233
- iseq $I235, $S234, "0"
- unless $I235, unless_232
- new $P231, 'Integer'
- set $P231, $I235
- goto unless_232_end
- unless_232:
- find_lex $P236, "$_"
- set $N237, $P236
- isgt $I238, $N237, 0.0
- new $P231, 'Integer'
- set $P231, $I238
- unless_232_end:
- unless $P231, if_230_end
- find_lex $P239, "$_"
- add $P240, $P239, 1
- store_lex "$count", $P240
- if_230_end:
-.annotate 'line', 558
- new $P241, "Integer"
- assign $P241, 1
- find_lex $P242, "$_"
- find_lex $P243, "%capnames"
- unless_null $P243, vivify_104
- $P243 = root_new ['parrot';'Hash']
- store_lex "%capnames", $P243
- vivify_104:
- set $P243[$P242], $P241
-.annotate 'line', 556
- .return ($P241)
+ new $P248, "Integer"
+ assign $P248, 1
+ find_lex $P249, "$_"
+ find_lex $P250, "%capnames"
+ unless_null $P250, vivify_108
+ $P250 = root_new ['parrot';'Hash']
+ store_lex "%capnames", $P250
+ vivify_108:
+ set $P250[$P249], $P248
+.annotate 'line', 555
+ .return ($P248)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block255" :anon :subid("23_1275811482.3686") :outer("21_1275811482.3686")
- .param pmc param_257
+.sub "_block262" :anon :subid("23_1280467473.99327") :outer("21_1280467473.99327")
+ .param pmc param_264
+.annotate 'line', 560
+ .lex "$_", param_264
.annotate 'line', 561
- .lex "$_", param_257
-.annotate 'line', 562
- find_lex $P258, "$_"
- find_lex $P259, "%capnames"
- unless_null $P259, vivify_108
- $P259 = root_new ['parrot';'Hash']
- vivify_108:
- set $P260, $P259[$P258]
- unless_null $P260, vivify_109
- new $P260, "Undef"
- vivify_109:
- set $N261, $P260
- new $P262, 'Float'
- set $P262, $N261
- find_lex $P263, "$_"
- find_lex $P264, "%x"
- unless_null $P264, vivify_110
- $P264 = root_new ['parrot';'Hash']
- vivify_110:
- set $P265, $P264[$P263]
- unless_null $P265, vivify_111
- new $P265, "Undef"
- vivify_111:
- add $P266, $P262, $P265
- find_lex $P267, "$_"
- find_lex $P268, "%capnames"
- unless_null $P268, vivify_112
- $P268 = root_new ['parrot';'Hash']
- store_lex "%capnames", $P268
+ find_lex $P265, "$_"
+ find_lex $P266, "%capnames"
+ unless_null $P266, vivify_112
+ $P266 = root_new ['parrot';'Hash']
vivify_112:
- set $P268[$P267], $P266
-.annotate 'line', 561
- .return ($P266)
+ set $P267, $P266[$P265]
+ unless_null $P267, vivify_113
+ new $P267, "Undef"
+ vivify_113:
+ set $N268, $P267
+ new $P269, 'Float'
+ set $P269, $N268
+ find_lex $P270, "$_"
+ find_lex $P271, "%x"
+ unless_null $P271, vivify_114
+ $P271 = root_new ['parrot';'Hash']
+ vivify_114:
+ set $P272, $P271[$P270]
+ unless_null $P272, vivify_115
+ new $P272, "Undef"
+ vivify_115:
+ add $P273, $P269, $P272
+ find_lex $P274, "$_"
+ find_lex $P275, "%capnames"
+ unless_null $P275, vivify_116
+ $P275 = root_new ['parrot';'Hash']
+ store_lex "%capnames", $P275
+ vivify_116:
+ set $P275[$P274], $P273
+.annotate 'line', 560
+ .return ($P273)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "_block173" :anon :subid("19_1275811482.3686") :outer("13_1275811482.3686")
+.sub "_block180" :anon :subid("19_1280467473.99327") :outer("13_1280467473.99327")
+.annotate 'line', 535
+ .const 'Sub' $P199 = "20_1280467473.99327"
+ capture_lex $P199
.annotate 'line', 536
- .const 'Sub' $P192 = "20_1275811482.3686"
- capture_lex $P192
-.annotate 'line', 537
- new $P175, "Undef"
- .lex "$name", $P175
-.annotate 'line', 539
- $P176 = root_new ['parrot';'ResizablePMCArray']
- .lex "@names", $P176
-.annotate 'line', 537
- find_lex $P177, "$ast"
- $P178 = $P177."name"()
- store_lex "$name", $P178
+ new $P182, "Undef"
+ .lex "$name", $P182
.annotate 'line', 538
- find_lex $P180, "$name"
- set $S181, $P180
- iseq $I182, $S181, ""
- unless $I182, if_179_end
- find_lex $P183, "$count"
- store_lex "$name", $P183
+ $P183 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@names", $P183
+.annotate 'line', 536
find_lex $P184, "$ast"
- find_lex $P185, "$name"
- $P184."name"($P185)
- if_179_end:
-.annotate 'line', 539
+ $P185 = $P184."name"()
+ store_lex "$name", $P185
+.annotate 'line', 537
+ find_lex $P187, "$name"
+ set $S188, $P187
+ iseq $I189, $S188, ""
+ unless $I189, if_186_end
+ find_lex $P190, "$count"
+ store_lex "$name", $P190
+ find_lex $P191, "$ast"
+ find_lex $P192, "$name"
+ $P191."name"($P192)
+ if_186_end:
+.annotate 'line', 538
$P0 = find_lex '$name'
$S0 = $P0
- $P186 = split '=', $S0
+ $P193 = split '=', $S0
- store_lex "@names", $P186
-.annotate 'line', 544
- find_lex $P188, "@names"
- defined $I189, $P188
- unless $I189, for_undef_115
- iter $P187, $P188
- new $P209, 'ExceptionHandler'
- set_addr $P209, loop208_handler
- $P209."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P209
- loop208_test:
- unless $P187, loop208_done
- shift $P190, $P187
- loop208_redo:
- .const 'Sub' $P192 = "20_1275811482.3686"
- capture_lex $P192
- $P192($P190)
- loop208_next:
- goto loop208_test
- loop208_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P210, exception, 'type'
- eq $P210, .CONTROL_LOOP_NEXT, loop208_next
- eq $P210, .CONTROL_LOOP_REDO, loop208_redo
- loop208_done:
+ store_lex "@names", $P193
+.annotate 'line', 543
+ find_lex $P195, "@names"
+ defined $I196, $P195
+ unless $I196, for_undef_119
+ iter $P194, $P195
+ new $P216, 'ExceptionHandler'
+ set_addr $P216, loop215_handler
+ $P216."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P216
+ loop215_test:
+ unless $P194, loop215_done
+ shift $P197, $P194
+ loop215_redo:
+ .const 'Sub' $P199 = "20_1280467473.99327"
+ capture_lex $P199
+ $P199($P197)
+ loop215_next:
+ goto loop215_test
+ loop215_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P217, exception, 'type'
+ eq $P217, .CONTROL_LOOP_NEXT, loop215_next
+ eq $P217, .CONTROL_LOOP_REDO, loop215_redo
+ loop215_done:
pop_eh
- for_undef_115:
-.annotate 'line', 536
- .return ($P187)
+ for_undef_119:
+.annotate 'line', 535
+ .return ($P194)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block191" :anon :subid("20_1275811482.3686") :outer("19_1275811482.3686")
- .param pmc param_193
+.sub "_block198" :anon :subid("20_1280467473.99327") :outer("19_1280467473.99327")
+ .param pmc param_200
+.annotate 'line', 543
+ .lex "$_", param_200
.annotate 'line', 544
- .lex "$_", param_193
+ find_lex $P204, "$_"
+ set $S205, $P204
+ iseq $I206, $S205, "0"
+ unless $I206, unless_203
+ new $P202, 'Integer'
+ set $P202, $I206
+ goto unless_203_end
+ unless_203:
+ find_lex $P207, "$_"
+ set $N208, $P207
+ isgt $I209, $N208, 0.0
+ new $P202, 'Integer'
+ set $P202, $I209
+ unless_203_end:
+ unless $P202, if_201_end
+ find_lex $P210, "$_"
+ add $P211, $P210, 1
+ store_lex "$count", $P211
+ if_201_end:
.annotate 'line', 545
- find_lex $P197, "$_"
- set $S198, $P197
- iseq $I199, $S198, "0"
- unless $I199, unless_196
- new $P195, 'Integer'
- set $P195, $I199
- goto unless_196_end
- unless_196:
- find_lex $P200, "$_"
- set $N201, $P200
- isgt $I202, $N201, 0.0
- new $P195, 'Integer'
- set $P195, $I202
- unless_196_end:
- unless $P195, if_194_end
- find_lex $P203, "$_"
- add $P204, $P203, 1
- store_lex "$count", $P204
- if_194_end:
-.annotate 'line', 546
- new $P205, "Integer"
- assign $P205, 1
- find_lex $P206, "$_"
- find_lex $P207, "%capnames"
- unless_null $P207, vivify_116
- $P207 = root_new ['parrot';'Hash']
- store_lex "%capnames", $P207
- vivify_116:
- set $P207[$P206], $P205
-.annotate 'line', 544
- .return ($P205)
+ new $P212, "Integer"
+ assign $P212, 1
+ find_lex $P213, "$_"
+ find_lex $P214, "%capnames"
+ unless_null $P214, vivify_120
+ $P214 = root_new ['parrot';'Hash']
+ store_lex "%capnames", $P214
+ vivify_120:
+ set $P214[$P213], $P212
+.annotate 'line', 543
+ .return ($P212)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "_block131" :anon :subid("17_1275811482.3686") :outer("13_1275811482.3686")
- .param pmc param_134
+.sub "_block138" :anon :subid("17_1280467473.99327") :outer("13_1280467473.99327")
+ .param pmc param_141
+.annotate 'line', 527
+ .const 'Sub' $P150 = "18_1280467473.99327"
+ capture_lex $P150
.annotate 'line', 528
- .const 'Sub' $P143 = "18_1275811482.3686"
- capture_lex $P143
+ $P140 = root_new ['parrot';'Hash']
+ .lex "%x", $P140
+ .lex "$_", param_141
+ find_lex $P142, "$_"
+ find_lex $P143, "$count"
+ $P144 = "capnames"($P142, $P143)
+ store_lex "%x", $P144
.annotate 'line', 529
- $P133 = root_new ['parrot';'Hash']
- .lex "%x", $P133
- .lex "$_", param_134
- find_lex $P135, "$_"
- find_lex $P136, "$count"
- $P137 = "capnames"($P135, $P136)
- store_lex "%x", $P137
-.annotate 'line', 530
- find_lex $P139, "%x"
- defined $I140, $P139
- unless $I140, for_undef_118
- iter $P138, $P139
- new $P157, 'ExceptionHandler'
- set_addr $P157, loop156_handler
- $P157."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P157
- loop156_test:
- unless $P138, loop156_done
- shift $P141, $P138
- loop156_redo:
- .const 'Sub' $P143 = "18_1275811482.3686"
- capture_lex $P143
- $P143($P141)
- loop156_next:
- goto loop156_test
- loop156_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P158, exception, 'type'
- eq $P158, .CONTROL_LOOP_NEXT, loop156_next
- eq $P158, .CONTROL_LOOP_REDO, loop156_redo
- loop156_done:
+ find_lex $P146, "%x"
+ defined $I147, $P146
+ unless $I147, for_undef_122
+ iter $P145, $P146
+ new $P164, 'ExceptionHandler'
+ set_addr $P164, loop163_handler
+ $P164."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P164
+ loop163_test:
+ unless $P145, loop163_done
+ shift $P148, $P145
+ loop163_redo:
+ .const 'Sub' $P150 = "18_1280467473.99327"
+ capture_lex $P150
+ $P150($P148)
+ loop163_next:
+ goto loop163_test
+ loop163_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P165, exception, 'type'
+ eq $P165, .CONTROL_LOOP_NEXT, loop163_next
+ eq $P165, .CONTROL_LOOP_REDO, loop163_redo
+ loop163_done:
pop_eh
- for_undef_118:
-.annotate 'line', 533
- find_lex $P159, "%x"
- unless_null $P159, vivify_124
- $P159 = root_new ['parrot';'Hash']
- vivify_124:
- set $P160, $P159[""]
- unless_null $P160, vivify_125
- new $P160, "Undef"
- vivify_125:
- store_lex "$count", $P160
-.annotate 'line', 528
- .return ($P160)
+ for_undef_122:
+.annotate 'line', 532
+ find_lex $P166, "%x"
+ unless_null $P166, vivify_128
+ $P166 = root_new ['parrot';'Hash']
+ vivify_128:
+ set $P167, $P166[""]
+ unless_null $P167, vivify_129
+ new $P167, "Undef"
+ vivify_129:
+ store_lex "$count", $P167
+.annotate 'line', 527
+ .return ($P167)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block142" :anon :subid("18_1275811482.3686") :outer("17_1275811482.3686")
- .param pmc param_144
+.sub "_block149" :anon :subid("18_1280467473.99327") :outer("17_1280467473.99327")
+ .param pmc param_151
+.annotate 'line', 529
+ .lex "$_", param_151
.annotate 'line', 530
- .lex "$_", param_144
-.annotate 'line', 531
- find_lex $P145, "$_"
- find_lex $P146, "%capnames"
- unless_null $P146, vivify_119
- $P146 = root_new ['parrot';'Hash']
- vivify_119:
- set $P147, $P146[$P145]
- unless_null $P147, vivify_120
- new $P147, "Undef"
- vivify_120:
- set $N148, $P147
- new $P149, 'Float'
- set $P149, $N148
- find_lex $P150, "$_"
- find_lex $P151, "%x"
- unless_null $P151, vivify_121
- $P151 = root_new ['parrot';'Hash']
- vivify_121:
- set $P152, $P151[$P150]
- unless_null $P152, vivify_122
- new $P152, "Undef"
- vivify_122:
- add $P153, $P149, $P152
- find_lex $P154, "$_"
- find_lex $P155, "%capnames"
- unless_null $P155, vivify_123
- $P155 = root_new ['parrot';'Hash']
- store_lex "%capnames", $P155
+ find_lex $P152, "$_"
+ find_lex $P153, "%capnames"
+ unless_null $P153, vivify_123
+ $P153 = root_new ['parrot';'Hash']
vivify_123:
- set $P155[$P154], $P153
-.annotate 'line', 530
- .return ($P153)
+ set $P154, $P153[$P152]
+ unless_null $P154, vivify_124
+ new $P154, "Undef"
+ vivify_124:
+ set $N155, $P154
+ new $P156, 'Float'
+ set $P156, $N155
+ find_lex $P157, "$_"
+ find_lex $P158, "%x"
+ unless_null $P158, vivify_125
+ $P158 = root_new ['parrot';'Hash']
+ vivify_125:
+ set $P159, $P158[$P157]
+ unless_null $P159, vivify_126
+ new $P159, "Undef"
+ vivify_126:
+ add $P160, $P156, $P159
+ find_lex $P161, "$_"
+ find_lex $P162, "%capnames"
+ unless_null $P162, vivify_127
+ $P162 = root_new ['parrot';'Hash']
+ store_lex "%capnames", $P162
+ vivify_127:
+ set $P162[$P161], $P160
+.annotate 'line', 529
+ .return ($P160)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "_block64" :anon :subid("14_1275811482.3686") :outer("13_1275811482.3686")
+.sub "_block71" :anon :subid("14_1280467473.99327") :outer("13_1280467473.99327")
+.annotate 'line', 513
+ .const 'Sub' $P81 = "15_1280467473.99327"
+ capture_lex $P81
.annotate 'line', 514
- .const 'Sub' $P74 = "15_1275811482.3686"
- capture_lex $P74
+ new $P73, "Undef"
+ .lex "$max", $P73
+ find_lex $P74, "$count"
+ store_lex "$max", $P74
.annotate 'line', 515
- new $P66, "Undef"
- .lex "$max", $P66
- find_lex $P67, "$count"
- store_lex "$max", $P67
-.annotate 'line', 516
- find_lex $P69, "$ast"
- $P70 = $P69."list"()
- defined $I71, $P70
- unless $I71, for_undef_126
- iter $P68, $P70
- new $P119, 'ExceptionHandler'
- set_addr $P119, loop118_handler
- $P119."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P119
- loop118_test:
- unless $P68, loop118_done
- shift $P72, $P68
- loop118_redo:
- .const 'Sub' $P74 = "15_1275811482.3686"
- capture_lex $P74
- $P74($P72)
- loop118_next:
- goto loop118_test
- loop118_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P120, exception, 'type'
- eq $P120, .CONTROL_LOOP_NEXT, loop118_next
- eq $P120, .CONTROL_LOOP_REDO, loop118_redo
- loop118_done:
+ find_lex $P76, "$ast"
+ $P77 = $P76."list"()
+ defined $I78, $P77
+ unless $I78, for_undef_130
+ iter $P75, $P77
+ new $P126, 'ExceptionHandler'
+ set_addr $P126, loop125_handler
+ $P126."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P126
+ loop125_test:
+ unless $P75, loop125_done
+ shift $P79, $P75
+ loop125_redo:
+ .const 'Sub' $P81 = "15_1280467473.99327"
+ capture_lex $P81
+ $P81($P79)
+ loop125_next:
+ goto loop125_test
+ loop125_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P127, exception, 'type'
+ eq $P127, .CONTROL_LOOP_NEXT, loop125_next
+ eq $P127, .CONTROL_LOOP_REDO, loop125_redo
+ loop125_done:
pop_eh
- for_undef_126:
-.annotate 'line', 525
- find_lex $P121, "$max"
- store_lex "$count", $P121
-.annotate 'line', 514
- .return ($P121)
+ for_undef_130:
+.annotate 'line', 524
+ find_lex $P128, "$max"
+ store_lex "$count", $P128
+.annotate 'line', 513
+ .return ($P128)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "_block73" :anon :subid("15_1275811482.3686") :outer("14_1275811482.3686")
- .param pmc param_76
+.sub "_block80" :anon :subid("15_1280467473.99327") :outer("14_1280467473.99327")
+ .param pmc param_83
+.annotate 'line', 515
+ .const 'Sub' $P92 = "16_1280467473.99327"
+ capture_lex $P92
.annotate 'line', 516
- .const 'Sub' $P85 = "16_1275811482.3686"
- capture_lex $P85
+ $P82 = root_new ['parrot';'Hash']
+ .lex "%x", $P82
+ .lex "$_", param_83
+ find_lex $P84, "$_"
+ find_lex $P85, "$count"
+ $P86 = "capnames"($P84, $P85)
+ store_lex "%x", $P86
.annotate 'line', 517
- $P75 = root_new ['parrot';'Hash']
- .lex "%x", $P75
- .lex "$_", param_76
- find_lex $P77, "$_"
- find_lex $P78, "$count"
- $P79 = "capnames"($P77, $P78)
- store_lex "%x", $P79
-.annotate 'line', 518
- find_lex $P81, "%x"
- defined $I82, $P81
- unless $I82, for_undef_127
- iter $P80, $P81
- new $P106, 'ExceptionHandler'
- set_addr $P106, loop105_handler
- $P106."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P106
- loop105_test:
- unless $P80, loop105_done
- shift $P83, $P80
- loop105_redo:
- .const 'Sub' $P85 = "16_1275811482.3686"
- capture_lex $P85
- $P85($P83)
- loop105_next:
- goto loop105_test
- loop105_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P107, exception, 'type'
- eq $P107, .CONTROL_LOOP_NEXT, loop105_next
- eq $P107, .CONTROL_LOOP_REDO, loop105_redo
- loop105_done:
+ find_lex $P88, "%x"
+ defined $I89, $P88
+ unless $I89, for_undef_131
+ iter $P87, $P88
+ new $P113, 'ExceptionHandler'
+ set_addr $P113, loop112_handler
+ $P113."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P113
+ loop112_test:
+ unless $P87, loop112_done
+ shift $P90, $P87
+ loop112_redo:
+ .const 'Sub' $P92 = "16_1280467473.99327"
+ capture_lex $P92
+ $P92($P90)
+ loop112_next:
+ goto loop112_test
+ loop112_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P114, exception, 'type'
+ eq $P114, .CONTROL_LOOP_NEXT, loop112_next
+ eq $P114, .CONTROL_LOOP_REDO, loop112_redo
+ loop112_done:
pop_eh
- for_undef_127:
-.annotate 'line', 523
- find_lex $P110, "%x"
- unless_null $P110, vivify_133
- $P110 = root_new ['parrot';'Hash']
- vivify_133:
- set $P111, $P110[""]
- unless_null $P111, vivify_134
- new $P111, "Undef"
- vivify_134:
- set $N112, $P111
- find_lex $P113, "$max"
- set $N114, $P113
- isgt $I115, $N112, $N114
- if $I115, if_109
- new $P108, 'Integer'
- set $P108, $I115
- goto if_109_end
- if_109:
- find_lex $P116, "%x"
- unless_null $P116, vivify_135
- $P116 = root_new ['parrot';'Hash']
- vivify_135:
- set $P117, $P116[""]
- unless_null $P117, vivify_136
- new $P117, "Undef"
- vivify_136:
- store_lex "$max", $P117
- set $P108, $P117
- if_109_end:
-.annotate 'line', 516
- .return ($P108)
+ for_undef_131:
+.annotate 'line', 522
+ find_lex $P117, "%x"
+ unless_null $P117, vivify_137
+ $P117 = root_new ['parrot';'Hash']
+ vivify_137:
+ set $P118, $P117[""]
+ unless_null $P118, vivify_138
+ new $P118, "Undef"
+ vivify_138:
+ set $N119, $P118
+ find_lex $P120, "$max"
+ set $N121, $P120
+ isgt $I122, $N119, $N121
+ if $I122, if_116
+ new $P115, 'Integer'
+ set $P115, $I122
+ goto if_116_end
+ if_116:
+ find_lex $P123, "%x"
+ unless_null $P123, vivify_139
+ $P123 = root_new ['parrot';'Hash']
+ vivify_139:
+ set $P124, $P123[""]
+ unless_null $P124, vivify_140
+ new $P124, "Undef"
+ vivify_140:
+ store_lex "$max", $P124
+ set $P115, $P124
+ if_116_end:
+.annotate 'line', 515
+ .return ($P115)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block84" :anon :subid("16_1275811482.3686") :outer("15_1275811482.3686")
- .param pmc param_86
+.sub "_block91" :anon :subid("16_1280467473.99327") :outer("15_1280467473.99327")
+ .param pmc param_93
+.annotate 'line', 517
+ .lex "$_", param_93
.annotate 'line', 518
- .lex "$_", param_86
-.annotate 'line', 519
- find_lex $P91, "$_"
- find_lex $P92, "%capnames"
- unless_null $P92, vivify_128
- $P92 = root_new ['parrot';'Hash']
- vivify_128:
- set $P93, $P92[$P91]
- unless_null $P93, vivify_129
- new $P93, "Undef"
- vivify_129:
- set $N94, $P93
- islt $I95, $N94, 2.0
- if $I95, if_90
- new $P89, 'Integer'
- set $P89, $I95
- goto if_90_end
- if_90:
- find_lex $P96, "$_"
- find_lex $P97, "%x"
- unless_null $P97, vivify_130
- $P97 = root_new ['parrot';'Hash']
- vivify_130:
- set $P98, $P97[$P96]
- unless_null $P98, vivify_131
- new $P98, "Undef"
- vivify_131:
- set $N99, $P98
- iseq $I100, $N99, 1.0
- new $P89, 'Integer'
- set $P89, $I100
- if_90_end:
- if $P89, if_88
- new $P102, "Integer"
- assign $P102, 2
- set $P87, $P102
- goto if_88_end
- if_88:
- new $P101, "Integer"
- assign $P101, 1
- set $P87, $P101
- if_88_end:
-.annotate 'line', 520
+ find_lex $P98, "$_"
+ find_lex $P99, "%capnames"
+ unless_null $P99, vivify_132
+ $P99 = root_new ['parrot';'Hash']
+ vivify_132:
+ set $P100, $P99[$P98]
+ unless_null $P100, vivify_133
+ new $P100, "Undef"
+ vivify_133:
+ set $N101, $P100
+ islt $I102, $N101, 2.0
+ if $I102, if_97
+ new $P96, 'Integer'
+ set $P96, $I102
+ goto if_97_end
+ if_97:
find_lex $P103, "$_"
- find_lex $P104, "%capnames"
- unless_null $P104, vivify_132
+ find_lex $P104, "%x"
+ unless_null $P104, vivify_134
$P104 = root_new ['parrot';'Hash']
- store_lex "%capnames", $P104
- vivify_132:
- set $P104[$P103], $P87
-.annotate 'line', 518
- .return ($P87)
+ vivify_134:
+ set $P105, $P104[$P103]
+ unless_null $P105, vivify_135
+ new $P105, "Undef"
+ vivify_135:
+ set $N106, $P105
+ iseq $I107, $N106, 1.0
+ new $P96, 'Integer'
+ set $P96, $I107
+ if_97_end:
+ if $P96, if_95
+ new $P109, "Integer"
+ assign $P109, 2
+ set $P94, $P109
+ goto if_95_end
+ if_95:
+ new $P108, "Integer"
+ assign $P108, 1
+ set $P94, $P108
+ if_95_end:
+.annotate 'line', 519
+ find_lex $P110, "$_"
+ find_lex $P111, "%capnames"
+ unless_null $P111, vivify_136
+ $P111 = root_new ['parrot';'Hash']
+ store_lex "%capnames", $P111
+ vivify_136:
+ set $P111[$P110], $P94
+.annotate 'line', 517
+ .return ($P94)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backmod" :subid("26_1275811482.3686") :outer("11_1275811482.3686")
- .param pmc param_308
- .param pmc param_309
+.sub "backmod" :subid("26_1280467473.99327") :outer("11_1280467473.99327")
+ .param pmc param_315
+ .param pmc param_316
+.annotate 'line', 576
+ 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
- new $P307, 'ExceptionHandler'
- set_addr $P307, control_306
- $P307."handle_types"(.CONTROL_RETURN)
- push_eh $P307
- .lex "$ast", param_308
- .lex "$backmod", param_309
-.annotate 'line', 578
- find_lex $P311, "$backmod"
- set $S312, $P311
- iseq $I313, $S312, ":"
- if $I313, if_310
-.annotate 'line', 579
find_lex $P318, "$backmod"
set $S319, $P318
- iseq $I320, $S319, ":?"
- unless $I320, unless_317
- new $P316, 'Integer'
- set $P316, $I320
- goto unless_317_end
- unless_317:
- find_lex $P321, "$backmod"
- set $S322, $P321
- iseq $I323, $S322, "?"
- new $P316, 'Integer'
- set $P316, $I323
- unless_317_end:
- if $P316, if_315
-.annotate 'line', 580
+ iseq $I320, $S319, ":"
+ if $I320, if_317
+.annotate 'line', 578
+ find_lex $P325, "$backmod"
+ set $S326, $P325
+ iseq $I327, $S326, ":?"
+ unless $I327, unless_324
+ new $P323, 'Integer'
+ set $P323, $I327
+ goto unless_324_end
+ unless_324:
find_lex $P328, "$backmod"
set $S329, $P328
- iseq $I330, $S329, ":!"
- unless $I330, unless_327
- new $P326, 'Integer'
- set $P326, $I330
- goto unless_327_end
- unless_327:
- find_lex $P331, "$backmod"
- set $S332, $P331
- iseq $I333, $S332, "!"
- new $P326, 'Integer'
- set $P326, $I333
- unless_327_end:
- unless $P326, if_325_end
- find_lex $P334, "$ast"
- $P334."backtrack"("g")
- if_325_end:
- goto if_315_end
- if_315:
+ iseq $I330, $S329, "?"
+ new $P323, 'Integer'
+ set $P323, $I330
+ unless_324_end:
+ if $P323, if_322
.annotate 'line', 579
- find_lex $P324, "$ast"
- $P324."backtrack"("f")
- if_315_end:
- goto if_310_end
- if_310:
+ find_lex $P335, "$backmod"
+ set $S336, $P335
+ iseq $I337, $S336, ":!"
+ unless $I337, unless_334
+ new $P333, 'Integer'
+ set $P333, $I337
+ goto unless_334_end
+ unless_334:
+ find_lex $P338, "$backmod"
+ set $S339, $P338
+ iseq $I340, $S339, "!"
+ new $P333, 'Integer'
+ set $P333, $I340
+ unless_334_end:
+ unless $P333, if_332_end
+ find_lex $P341, "$ast"
+ $P341."backtrack"("g")
+ if_332_end:
+ goto if_322_end
+ if_322:
.annotate 'line', 578
- find_lex $P314, "$ast"
- $P314."backtrack"("r")
- if_310_end:
- find_lex $P335, "$ast"
+ find_lex $P331, "$ast"
+ $P331."backtrack"("f")
+ if_322_end:
+ goto if_317_end
+ if_317:
.annotate 'line', 577
- .return ($P335)
- control_306:
- .local pmc exception
- .get_results (exception)
- getattribute $P336, exception, "payload"
- .return ($P336)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.include "except_types.pasm"
-.sub "subrule_alias" :subid("27_1275811482.3686") :outer("11_1275811482.3686")
- .param pmc param_341
- .param pmc param_342
-.annotate 'line', 584
- new $P340, 'ExceptionHandler'
- set_addr $P340, control_339
- $P340."handle_types"(.CONTROL_RETURN)
- push_eh $P340
- .lex "$past", param_341
- .lex "$name", param_342
-.annotate 'line', 585
- find_lex $P344, "$past"
- $S345 = $P344."name"()
- isgt $I346, $S345, ""
- if $I346, if_343
-.annotate 'line', 586
- find_lex $P353, "$past"
- find_lex $P354, "$name"
- $P353."name"($P354)
- goto if_343_end
- if_343:
-.annotate 'line', 585
- find_lex $P347, "$past"
- find_lex $P348, "$name"
- concat $P349, $P348, "="
- find_lex $P350, "$past"
- $S351 = $P350."name"()
- concat $P352, $P349, $S351
- $P347."name"($P352)
- if_343_end:
-.annotate 'line', 587
- find_lex $P355, "$past"
- $P356 = $P355."subtype"("capture")
-.annotate 'line', 584
- .return ($P356)
- control_339:
+ find_lex $P321, "$ast"
+ $P321."backtrack"("r")
+ if_317_end:
+ find_lex $P342, "$ast"
+.annotate 'line', 576
+ .return ($P342)
+ control_313:
.local pmc exception
.get_results (exception)
- getattribute $P357, exception, "payload"
- .return ($P357)
+ getattribute $P343, exception, "payload"
+ .return ($P343)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "arg" :subid("28_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_363
+.sub "arg" :subid("27_1280467473.99327") :method :outer("11_1280467473.99327")
+ .param pmc param_349
.annotate 'line', 14
- new $P362, 'ExceptionHandler'
- set_addr $P362, control_361
- $P362."handle_types"(.CONTROL_RETURN)
- push_eh $P362
+ new $P348, 'ExceptionHandler'
+ set_addr $P348, control_347
+ $P348."handle_types"(.CONTROL_RETURN)
+ push_eh $P348
.lex "self", self
- .lex "$/", param_363
+ .lex "$/", param_349
.annotate 'line', 15
- find_lex $P364, "$/"
- find_lex $P367, "$/"
- unless_null $P367, vivify_138
- $P367 = root_new ['parrot';'Hash']
- vivify_138:
- set $P368, $P367["quote_EXPR"]
- unless_null $P368, vivify_139
- new $P368, "Undef"
- vivify_139:
- if $P368, if_366
- find_lex $P372, "$/"
- unless_null $P372, vivify_140
- $P372 = root_new ['parrot';'Hash']
- vivify_140:
- set $P373, $P372["val"]
- unless_null $P373, vivify_141
- new $P373, "Undef"
- vivify_141:
- set $N374, $P373
- new $P365, 'Float'
- set $P365, $N374
- goto if_366_end
- if_366:
- find_lex $P369, "$/"
- unless_null $P369, vivify_142
- $P369 = root_new ['parrot';'Hash']
+ find_lex $P350, "$/"
+ find_lex $P353, "$/"
+ unless_null $P353, vivify_142
+ $P353 = root_new ['parrot';'Hash']
vivify_142:
- set $P370, $P369["quote_EXPR"]
- unless_null $P370, vivify_143
- new $P370, "Undef"
+ set $P354, $P353["quote_EXPR"]
+ unless_null $P354, vivify_143
+ new $P354, "Undef"
vivify_143:
- $P371 = $P370."ast"()
- set $P365, $P371
- if_366_end:
- $P375 = $P364."!make"($P365)
+ if $P354, if_352
+ find_lex $P358, "$/"
+ unless_null $P358, vivify_144
+ $P358 = root_new ['parrot';'Hash']
+ vivify_144:
+ set $P359, $P358["val"]
+ unless_null $P359, vivify_145
+ new $P359, "Undef"
+ vivify_145:
+ set $N360, $P359
+ new $P351, 'Float'
+ set $P351, $N360
+ goto if_352_end
+ if_352:
+ find_lex $P355, "$/"
+ unless_null $P355, vivify_146
+ $P355 = root_new ['parrot';'Hash']
+ vivify_146:
+ set $P356, $P355["quote_EXPR"]
+ unless_null $P356, vivify_147
+ new $P356, "Undef"
+ vivify_147:
+ $P357 = $P356."ast"()
+ set $P351, $P357
+ if_352_end:
+ $P361 = $P350."!make"($P351)
.annotate 'line', 14
- .return ($P375)
- control_361:
+ .return ($P361)
+ control_347:
.local pmc exception
.get_results (exception)
- getattribute $P376, exception, "payload"
- .return ($P376)
+ getattribute $P362, exception, "payload"
+ .return ($P362)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "arglist" :subid("29_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_380
+.sub "arglist" :subid("28_1280467473.99327") :method :outer("11_1280467473.99327")
+ .param pmc param_366
.annotate 'line', 18
- .const 'Sub' $P390 = "30_1275811482.3686"
- capture_lex $P390
- new $P379, 'ExceptionHandler'
- set_addr $P379, control_378
- $P379."handle_types"(.CONTROL_RETURN)
- push_eh $P379
+ .const 'Sub' $P376 = "29_1280467473.99327"
+ capture_lex $P376
+ new $P365, 'ExceptionHandler'
+ set_addr $P365, control_364
+ $P365."handle_types"(.CONTROL_RETURN)
+ push_eh $P365
.lex "self", self
- .lex "$/", param_380
+ .lex "$/", param_366
.annotate 'line', 19
- new $P381, "Undef"
- .lex "$past", $P381
- get_hll_global $P382, ["PAST"], "Op"
- $P383 = $P382."new"("list" :named("pasttype"))
- store_lex "$past", $P383
+ new $P367, "Undef"
+ .lex "$past", $P367
+ get_hll_global $P368, ["PAST"], "Op"
+ $P369 = $P368."new"("list" :named("pasttype"))
+ store_lex "$past", $P369
.annotate 'line', 20
- find_lex $P385, "$/"
- unless_null $P385, vivify_144
- $P385 = root_new ['parrot';'Hash']
- vivify_144:
- set $P386, $P385["arg"]
- unless_null $P386, vivify_145
- new $P386, "Undef"
- vivify_145:
- defined $I387, $P386
- unless $I387, for_undef_146
- iter $P384, $P386
- new $P397, 'ExceptionHandler'
- set_addr $P397, loop396_handler
- $P397."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P397
- loop396_test:
- unless $P384, loop396_done
- shift $P388, $P384
- loop396_redo:
- .const 'Sub' $P390 = "30_1275811482.3686"
- capture_lex $P390
- $P390($P388)
- loop396_next:
- goto loop396_test
- loop396_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P398, exception, 'type'
- eq $P398, .CONTROL_LOOP_NEXT, loop396_next
- eq $P398, .CONTROL_LOOP_REDO, loop396_redo
- loop396_done:
+ find_lex $P371, "$/"
+ unless_null $P371, vivify_148
+ $P371 = root_new ['parrot';'Hash']
+ vivify_148:
+ set $P372, $P371["arg"]
+ unless_null $P372, vivify_149
+ new $P372, "Undef"
+ vivify_149:
+ defined $I373, $P372
+ unless $I373, for_undef_150
+ iter $P370, $P372
+ new $P383, 'ExceptionHandler'
+ set_addr $P383, loop382_handler
+ $P383."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P383
+ loop382_test:
+ unless $P370, loop382_done
+ shift $P374, $P370
+ loop382_redo:
+ .const 'Sub' $P376 = "29_1280467473.99327"
+ capture_lex $P376
+ $P376($P374)
+ loop382_next:
+ goto loop382_test
+ loop382_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P384, exception, 'type'
+ eq $P384, .CONTROL_LOOP_NEXT, loop382_next
+ eq $P384, .CONTROL_LOOP_REDO, loop382_redo
+ loop382_done:
pop_eh
- for_undef_146:
+ for_undef_150:
.annotate 'line', 21
- find_lex $P399, "$/"
- find_lex $P400, "$past"
- $P401 = $P399."!make"($P400)
+ find_lex $P385, "$/"
+ find_lex $P386, "$past"
+ $P387 = $P385."!make"($P386)
.annotate 'line', 18
- .return ($P401)
- control_378:
+ .return ($P387)
+ control_364:
.local pmc exception
.get_results (exception)
- getattribute $P402, exception, "payload"
- .return ($P402)
+ getattribute $P388, exception, "payload"
+ .return ($P388)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block389" :anon :subid("30_1275811482.3686") :outer("29_1275811482.3686")
- .param pmc param_391
+.sub "_block375" :anon :subid("29_1280467473.99327") :outer("28_1280467473.99327")
+ .param pmc param_377
.annotate 'line', 20
- .lex "$_", param_391
- find_lex $P392, "$past"
- find_lex $P393, "$_"
- $P394 = $P393."ast"()
- $P395 = $P392."push"($P394)
- .return ($P395)
+ .lex "$_", param_377
+ find_lex $P378, "$past"
+ find_lex $P379, "$_"
+ $P380 = $P379."ast"()
+ $P381 = $P378."push"($P380)
+ .return ($P381)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "TOP" :subid("31_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_406
+.sub "TOP" :subid("30_1280467473.99327") :method :outer("11_1280467473.99327")
+ .param pmc param_392
.annotate 'line', 24
- new $P405, 'ExceptionHandler'
- set_addr $P405, control_404
- $P405."handle_types"(.CONTROL_RETURN)
- push_eh $P405
+ new $P391, 'ExceptionHandler'
+ set_addr $P391, control_390
+ $P391."handle_types"(.CONTROL_RETURN)
+ push_eh $P391
.lex "self", self
- .lex "$/", param_406
+ .lex "$/", param_392
.annotate 'line', 25
- new $P407, "Undef"
- .lex "$past", $P407
- find_lex $P408, "$/"
- unless_null $P408, vivify_147
- $P408 = root_new ['parrot';'Hash']
- vivify_147:
- set $P409, $P408["nibbler"]
- unless_null $P409, vivify_148
- new $P409, "Undef"
- vivify_148:
- $P410 = $P409."ast"()
- $P411 = "buildsub"($P410)
- store_lex "$past", $P411
+ new $P393, "Undef"
+ .lex "$past", $P393
+ find_lex $P394, "$/"
+ unless_null $P394, vivify_151
+ $P394 = root_new ['parrot';'Hash']
+ vivify_151:
+ set $P395, $P394["nibbler"]
+ unless_null $P395, vivify_152
+ new $P395, "Undef"
+ vivify_152:
+ $P396 = $P395."ast"()
+ $P397 = "buildsub"($P396)
+ store_lex "$past", $P397
.annotate 'line', 26
- find_lex $P412, "$past"
- find_lex $P413, "$/"
- $P412."node"($P413)
+ find_lex $P398, "$past"
+ find_lex $P399, "$/"
+ $P398."node"($P399)
.annotate 'line', 27
- find_lex $P414, "$/"
- find_lex $P415, "$past"
- $P416 = $P414."!make"($P415)
+ find_lex $P400, "$/"
+ find_lex $P401, "$past"
+ $P402 = $P400."!make"($P401)
.annotate 'line', 24
- .return ($P416)
- control_404:
+ .return ($P402)
+ control_390:
.local pmc exception
.get_results (exception)
- getattribute $P417, exception, "payload"
- .return ($P417)
+ getattribute $P403, exception, "payload"
+ .return ($P403)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "nibbler" :subid("32_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_421
- .param pmc param_422 :optional
- .param int has_param_422 :opt_flag
+.sub "nibbler" :subid("31_1280467473.99327") :method :outer("11_1280467473.99327")
+ .param pmc param_407
+ .param pmc param_408 :optional
+ .param int has_param_408 :opt_flag
.annotate 'line', 30
- .const 'Sub' $P456 = "34_1275811482.3686"
- capture_lex $P456
- .const 'Sub' $P430 = "33_1275811482.3686"
- capture_lex $P430
- new $P420, 'ExceptionHandler'
- set_addr $P420, control_419
- $P420."handle_types"(.CONTROL_RETURN)
- push_eh $P420
- .lex "self", self
- .lex "$/", param_421
- if has_param_422, optparam_149
- new $P423, "Undef"
- set param_422, $P423
- optparam_149:
- .lex "$key", param_422
-.annotate 'line', 42
- new $P424, "Undef"
- .lex "$past", $P424
+ .const 'Sub' $P443 = "33_1280467473.99327"
+ capture_lex $P443
+ .const 'Sub' $P416 = "32_1280467473.99327"
+ capture_lex $P416
+ new $P406, 'ExceptionHandler'
+ set_addr $P406, control_405
+ $P406."handle_types"(.CONTROL_RETURN)
+ push_eh $P406
+ .lex "self", self
+ .lex "$/", param_407
+ if has_param_408, optparam_153
+ new $P409, "Undef"
+ set param_408, $P409
+ optparam_153:
+ .lex "$key", param_408
+.annotate 'line', 39
+ new $P410, "Undef"
+ .lex "$past", $P410
.annotate 'line', 31
- find_lex $P426, "$key"
- set $S427, $P426
- iseq $I428, $S427, "open"
- unless $I428, if_425_end
- .const 'Sub' $P430 = "33_1275811482.3686"
- capture_lex $P430
- $P430()
- if_425_end:
-.annotate 'line', 41
- get_global $P440, "@MODIFIERS"
- $P440."shift"()
- find_lex $P441, "$past"
-.annotate 'line', 43
- find_lex $P443, "$/"
- unless_null $P443, vivify_152
- $P443 = root_new ['parrot';'Hash']
- vivify_152:
- set $P444, $P443["termish"]
- unless_null $P444, vivify_153
- new $P444, "Undef"
- vivify_153:
- set $N445, $P444
- isgt $I446, $N445, 1.0
- if $I446, if_442
-.annotate 'line', 50
- find_lex $P465, "$/"
- unless_null $P465, vivify_154
- $P465 = root_new ['parrot';'Hash']
- vivify_154:
- set $P466, $P465["termish"]
- unless_null $P466, vivify_155
- $P466 = root_new ['parrot';'ResizablePMCArray']
- vivify_155:
- set $P467, $P466[0]
- unless_null $P467, vivify_156
- new $P467, "Undef"
+ find_lex $P412, "$key"
+ set $S413, $P412
+ iseq $I414, $S413, "open"
+ unless $I414, if_411_end
+ .const 'Sub' $P416 = "32_1280467473.99327"
+ capture_lex $P416
+ $P416()
+ if_411_end:
+.annotate 'line', 38
+ get_global $P427, "@MODIFIERS"
+ $P427."shift"()
+ find_lex $P428, "$past"
+.annotate 'line', 40
+ find_lex $P430, "$/"
+ unless_null $P430, vivify_156
+ $P430 = root_new ['parrot';'Hash']
vivify_156:
- $P468 = $P467."ast"()
- store_lex "$past", $P468
-.annotate 'line', 49
- goto if_442_end
- if_442:
-.annotate 'line', 44
- get_hll_global $P447, ["PAST"], "Regex"
- find_lex $P448, "$/"
- $P449 = $P447."new"("alt" :named("pasttype"), $P448 :named("node"))
- store_lex "$past", $P449
-.annotate 'line', 45
- find_lex $P451, "$/"
- unless_null $P451, vivify_157
- $P451 = root_new ['parrot';'Hash']
+ set $P431, $P430["termish"]
+ unless_null $P431, vivify_157
+ new $P431, "Undef"
vivify_157:
- set $P452, $P451["termish"]
+ set $N432, $P431
+ isgt $I433, $N432, 1.0
+ if $I433, if_429
+.annotate 'line', 47
+ find_lex $P452, "$/"
unless_null $P452, vivify_158
- new $P452, "Undef"
+ $P452 = root_new ['parrot';'Hash']
vivify_158:
- defined $I453, $P452
- unless $I453, for_undef_159
- iter $P450, $P452
- new $P463, 'ExceptionHandler'
- set_addr $P463, loop462_handler
- $P463."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P463
- loop462_test:
- unless $P450, loop462_done
- shift $P454, $P450
- loop462_redo:
- .const 'Sub' $P456 = "34_1275811482.3686"
- capture_lex $P456
- $P456($P454)
- loop462_next:
- goto loop462_test
- loop462_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P464, exception, 'type'
- eq $P464, .CONTROL_LOOP_NEXT, loop462_next
- eq $P464, .CONTROL_LOOP_REDO, loop462_redo
- loop462_done:
+ set $P453, $P452["termish"]
+ unless_null $P453, vivify_159
+ $P453 = root_new ['parrot';'ResizablePMCArray']
+ vivify_159:
+ set $P454, $P453[0]
+ unless_null $P454, vivify_160
+ new $P454, "Undef"
+ vivify_160:
+ $P455 = $P454."ast"()
+ store_lex "$past", $P455
+.annotate 'line', 46
+ goto if_429_end
+ if_429:
+.annotate 'line', 41
+ get_hll_global $P434, ["PAST"], "Regex"
+ find_lex $P435, "$/"
+ $P436 = $P434."new"("alt" :named("pasttype"), $P435 :named("node"))
+ store_lex "$past", $P436
+.annotate 'line', 42
+ find_lex $P438, "$/"
+ unless_null $P438, vivify_161
+ $P438 = root_new ['parrot';'Hash']
+ vivify_161:
+ set $P439, $P438["termish"]
+ unless_null $P439, vivify_162
+ new $P439, "Undef"
+ vivify_162:
+ defined $I440, $P439
+ unless $I440, for_undef_163
+ iter $P437, $P439
+ new $P450, 'ExceptionHandler'
+ set_addr $P450, loop449_handler
+ $P450."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P450
+ loop449_test:
+ unless $P437, loop449_done
+ shift $P441, $P437
+ loop449_redo:
+ .const 'Sub' $P443 = "33_1280467473.99327"
+ capture_lex $P443
+ $P443($P441)
+ loop449_next:
+ goto loop449_test
+ loop449_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P451, exception, 'type'
+ eq $P451, .CONTROL_LOOP_NEXT, loop449_next
+ eq $P451, .CONTROL_LOOP_REDO, loop449_redo
+ loop449_done:
pop_eh
- for_undef_159:
- if_442_end:
-.annotate 'line', 52
- find_lex $P469, "$/"
- find_lex $P470, "$past"
- $P471 = $P469."!make"($P470)
+ for_undef_163:
+ if_429_end:
+.annotate 'line', 49
+ find_lex $P456, "$/"
+ find_lex $P457, "$past"
+ $P458 = $P456."!make"($P457)
.annotate 'line', 30
- .return ($P471)
- control_419:
+ .return ($P458)
+ control_405:
.local pmc exception
.get_results (exception)
- getattribute $P472, exception, "payload"
- .return ($P472)
+ getattribute $P459, exception, "payload"
+ .return ($P459)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "_block429" :anon :subid("33_1275811482.3686") :outer("32_1275811482.3686")
+.sub "_block415" :anon :subid("32_1280467473.99327") :outer("31_1280467473.99327")
.annotate 'line', 32
- $P431 = root_new ['parrot';'Hash']
- .lex "%old", $P431
+ $P417 = root_new ['parrot';'Hash']
+ .lex "%old", $P417
.annotate 'line', 33
- $P432 = root_new ['parrot';'Hash']
- .lex "%new", $P432
+ $P418 = root_new ['parrot';'Hash']
+ .lex "%new", $P418
.annotate 'line', 32
- get_global $P433, "@MODIFIERS"
- unless_null $P433, vivify_150
- $P433 = root_new ['parrot';'ResizablePMCArray']
- vivify_150:
- set $P434, $P433[0]
- unless_null $P434, vivify_151
- new $P434, "Undef"
- vivify_151:
- store_lex "%old", $P434
+ get_global $P419, "@MODIFIERS"
+ unless_null $P419, vivify_154
+ $P419 = root_new ['parrot';'ResizablePMCArray']
+ vivify_154:
+ set $P420, $P419[0]
+ unless_null $P420, vivify_155
+ new $P420, "Undef"
+ vivify_155:
+ store_lex "%old", $P420
.annotate 'line', 33
-
- $P0 = find_lex '%old'
- $P435 = clone $P0
-
- store_lex "%new", $P435
-.annotate 'line', 37
- get_global $P436, "@MODIFIERS"
- find_lex $P437, "%new"
- $P436."unshift"($P437)
-.annotate 'line', 38
- new $P438, "Exception"
- set $P438['type'], .CONTROL_RETURN
- new $P439, "Integer"
- assign $P439, 1
- setattribute $P438, 'payload', $P439
- throw $P438
+ find_lex $P421, "%old"
+ clone $P422, $P421
+ store_lex "%new", $P422
+.annotate 'line', 34
+ get_global $P423, "@MODIFIERS"
+ find_lex $P424, "%new"
+ $P423."unshift"($P424)
+.annotate 'line', 35
+ new $P425, "Exception"
+ set $P425['type'], .CONTROL_RETURN
+ new $P426, "Integer"
+ assign $P426, 1
+ setattribute $P425, 'payload', $P426
+ throw $P425
.annotate 'line', 31
.return ()
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block455" :anon :subid("34_1275811482.3686") :outer("32_1275811482.3686")
- .param pmc param_457
-.annotate 'line', 45
- .lex "$_", param_457
-.annotate 'line', 46
- find_lex $P458, "$past"
- find_lex $P459, "$_"
- $P460 = $P459."ast"()
- $P461 = $P458."push"($P460)
-.annotate 'line', 45
- .return ($P461)
+.sub "_block442" :anon :subid("33_1280467473.99327") :outer("31_1280467473.99327")
+ .param pmc param_444
+.annotate 'line', 42
+ .lex "$_", param_444
+.annotate 'line', 43
+ find_lex $P445, "$past"
+ find_lex $P446, "$_"
+ $P447 = $P446."ast"()
+ $P448 = $P445."push"($P447)
+.annotate 'line', 42
+ .return ($P448)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "termish" :subid("35_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_476
-.annotate 'line', 55
- .const 'Sub' $P489 = "36_1275811482.3686"
- capture_lex $P489
- new $P475, 'ExceptionHandler'
- set_addr $P475, control_474
- $P475."handle_types"(.CONTROL_RETURN)
- push_eh $P475
+.sub "termish" :subid("34_1280467473.99327") :method :outer("11_1280467473.99327")
+ .param pmc param_463
+.annotate 'line', 52
+ .const 'Sub' $P476 = "35_1280467473.99327"
+ capture_lex $P476
+ new $P462, 'ExceptionHandler'
+ set_addr $P462, control_461
+ $P462."handle_types"(.CONTROL_RETURN)
+ push_eh $P462
.lex "self", self
- .lex "$/", param_476
-.annotate 'line', 56
- new $P477, "Undef"
- .lex "$past", $P477
-.annotate 'line', 57
- new $P478, "Undef"
- .lex "$lastlit", $P478
-.annotate 'line', 56
- get_hll_global $P479, ["PAST"], "Regex"
- find_lex $P480, "$/"
- $P481 = $P479."new"("concat" :named("pasttype"), $P480 :named("node"))
- store_lex "$past", $P481
-.annotate 'line', 57
- new $P482, "Integer"
- assign $P482, 0
- store_lex "$lastlit", $P482
-.annotate 'line', 58
- find_lex $P484, "$/"
- unless_null $P484, vivify_160
- $P484 = root_new ['parrot';'Hash']
- vivify_160:
- set $P485, $P484["noun"]
- unless_null $P485, vivify_161
- new $P485, "Undef"
- vivify_161:
- defined $I486, $P485
- unless $I486, for_undef_162
- iter $P483, $P485
- new $P535, 'ExceptionHandler'
- set_addr $P535, loop534_handler
- $P535."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P535
- loop534_test:
- unless $P483, loop534_done
- shift $P487, $P483
- loop534_redo:
- .const 'Sub' $P489 = "36_1275811482.3686"
- capture_lex $P489
- $P489($P487)
- loop534_next:
- goto loop534_test
- loop534_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P536, exception, 'type'
- eq $P536, .CONTROL_LOOP_NEXT, loop534_next
- eq $P536, .CONTROL_LOOP_REDO, loop534_redo
- loop534_done:
- pop_eh
- for_undef_162:
-.annotate 'line', 73
- find_lex $P537, "$/"
- find_lex $P538, "$past"
- $P539 = $P537."!make"($P538)
+ .lex "$/", param_463
+.annotate 'line', 53
+ new $P464, "Undef"
+ .lex "$past", $P464
+.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
.annotate 'line', 55
- .return ($P539)
- control_474:
+ 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:
+ pop_eh
+ for_undef_166:
+.annotate 'line', 70
+ find_lex $P524, "$/"
+ find_lex $P525, "$past"
+ $P526 = $P524."!make"($P525)
+.annotate 'line', 52
+ .return ($P526)
+ control_461:
.local pmc exception
.get_results (exception)
- getattribute $P540, exception, "payload"
- .return ($P540)
+ getattribute $P527, exception, "payload"
+ .return ($P527)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block488" :anon :subid("36_1275811482.3686") :outer("35_1275811482.3686")
- .param pmc param_491
+.sub "_block475" :anon :subid("35_1280467473.99327") :outer("34_1280467473.99327")
+ .param pmc param_478
+.annotate 'line', 56
+ new $P477, "Undef"
+ .lex "$ast", $P477
+ .lex "$_", param_478
+ find_lex $P479, "$_"
+ $P480 = $P479."ast"()
+ store_lex "$ast", $P480
+.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
- new $P490, "Undef"
- .lex "$ast", $P490
- .lex "$_", param_491
- find_lex $P492, "$_"
- $P493 = $P492."ast"()
- store_lex "$ast", $P493
-.annotate 'line', 60
- find_lex $P496, "$ast"
- if $P496, if_495
- set $P494, $P496
- goto if_495_end
- if_495:
-.annotate 'line', 61
- find_lex $P503, "$lastlit"
- if $P503, if_502
- set $P501, $P503
- goto if_502_end
- if_502:
- find_lex $P504, "$ast"
- $S505 = $P504."pasttype"()
- iseq $I506, $S505, "literal"
- new $P501, 'Integer'
- set $P501, $I506
- if_502_end:
- if $P501, if_500
- set $P499, $P501
- goto if_500_end
- if_500:
-.annotate 'line', 62
- get_hll_global $P507, ["PAST"], "Node"
- find_lex $P508, "$ast"
- unless_null $P508, vivify_163
- $P508 = root_new ['parrot';'ResizablePMCArray']
- vivify_163:
- set $P509, $P508[0]
- unless_null $P509, vivify_164
- new $P509, "Undef"
- vivify_164:
- $P510 = $P507."ACCEPTS"($P509)
- isfalse $I511, $P510
- new $P499, 'Integer'
- set $P499, $I511
- if_500_end:
- if $P499, if_498
-.annotate 'line', 66
- find_lex $P518, "$past"
- find_lex $P519, "$ast"
- $P518."push"($P519)
-.annotate 'line', 67
- find_lex $P524, "$ast"
- $S525 = $P524."pasttype"()
- iseq $I526, $S525, "literal"
- if $I526, if_523
- new $P522, 'Integer'
- set $P522, $I526
- goto if_523_end
- if_523:
-.annotate 'line', 68
- get_hll_global $P527, ["PAST"], "Node"
- find_lex $P528, "$ast"
- unless_null $P528, vivify_165
- $P528 = root_new ['parrot';'ResizablePMCArray']
- vivify_165:
- set $P529, $P528[0]
- unless_null $P529, vivify_166
- new $P529, "Undef"
- vivify_166:
- $P530 = $P527."ACCEPTS"($P529)
- isfalse $I531, $P530
- new $P522, 'Integer'
- set $P522, $I531
- if_523_end:
- if $P522, if_521
- new $P533, "Integer"
- assign $P533, 0
- set $P520, $P533
- goto if_521_end
- if_521:
- find_lex $P532, "$ast"
- set $P520, $P532
- if_521_end:
-.annotate 'line', 69
- store_lex "$lastlit", $P520
-.annotate 'line', 65
- set $P497, $P520
-.annotate 'line', 62
- goto if_498_end
- if_498:
-.annotate 'line', 63
- find_lex $P512, "$lastlit"
- unless_null $P512, vivify_167
- $P512 = root_new ['parrot';'ResizablePMCArray']
+ get_hll_global $P494, ["PAST"], "Node"
+ find_lex $P495, "$ast"
+ unless_null $P495, vivify_167
+ $P495 = root_new ['parrot';'ResizablePMCArray']
vivify_167:
- set $P513, $P512[0]
- unless_null $P513, vivify_168
- new $P513, "Undef"
+ set $P496, $P495[0]
+ unless_null $P496, vivify_168
+ new $P496, "Undef"
vivify_168:
- find_lex $P514, "$ast"
- unless_null $P514, vivify_169
- $P514 = root_new ['parrot';'ResizablePMCArray']
+ $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 $P515, $P514[0]
- unless_null $P515, vivify_170
- new $P515, "Undef"
+ set $P516, $P515[0]
+ unless_null $P516, vivify_170
+ new $P516, "Undef"
vivify_170:
- concat $P516, $P513, $P515
- find_lex $P517, "$lastlit"
- unless_null $P517, vivify_171
- $P517 = root_new ['parrot';'ResizablePMCArray']
- store_lex "$lastlit", $P517
- vivify_171:
- set $P517[0], $P516
+ $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:
+.annotate 'line', 66
+ store_lex "$lastlit", $P507
.annotate 'line', 62
- set $P497, $P516
- if_498_end:
+ set $P484, $P507
+.annotate 'line', 59
+ goto if_485_end
+ if_485:
.annotate 'line', 60
- set $P494, $P497
- if_495_end:
-.annotate 'line', 58
- .return ($P494)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.include "except_types.pasm"
-.sub "quantified_atom" :subid("37_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_544
-.annotate 'line', 76
- .const 'Sub' $P553 = "38_1275811482.3686"
- capture_lex $P553
- new $P543, 'ExceptionHandler'
- set_addr $P543, control_542
- $P543."handle_types"(.CONTROL_RETURN)
- push_eh $P543
- .lex "self", self
- .lex "$/", param_544
-.annotate 'line', 77
- new $P545, "Undef"
- .lex "$past", $P545
- find_lex $P546, "$/"
- unless_null $P546, vivify_172
- $P546 = root_new ['parrot';'Hash']
+ 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:
- set $P547, $P546["atom"]
- unless_null $P547, vivify_173
- new $P547, "Undef"
+ find_lex $P501, "$ast"
+ unless_null $P501, vivify_173
+ $P501 = root_new ['parrot';'ResizablePMCArray']
vivify_173:
- $P548 = $P547."ast"()
- store_lex "$past", $P548
-.annotate 'line', 78
- find_lex $P550, "$/"
- unless_null $P550, vivify_174
- $P550 = root_new ['parrot';'Hash']
+ set $P502, $P501[0]
+ unless_null $P502, vivify_174
+ new $P502, "Undef"
vivify_174:
- set $P551, $P550["quantifier"]
- unless_null $P551, vivify_175
- new $P551, "Undef"
+ concat $P503, $P500, $P502
+ find_lex $P504, "$lastlit"
+ unless_null $P504, vivify_175
+ $P504 = root_new ['parrot';'ResizablePMCArray']
+ store_lex "$lastlit", $P504
vivify_175:
- if $P551, if_549
-.annotate 'line', 84
- find_lex $P568, "$/"
- unless_null $P568, vivify_176
- $P568 = root_new ['parrot';'Hash']
+ 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)
+.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
+.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 $P569, $P568["backmod"]
- unless_null $P569, vivify_177
- $P569 = root_new ['parrot';'ResizablePMCArray']
+ set $P534, $P533["atom"]
+ unless_null $P534, vivify_177
+ new $P534, "Undef"
vivify_177:
- set $P570, $P569[0]
- unless_null $P570, vivify_178
- new $P570, "Undef"
+ $P535 = $P534."ast"()
+ store_lex "$past", $P535
+.annotate 'line', 75
+ find_lex $P537, "$/"
+ unless_null $P537, vivify_178
+ $P537 = root_new ['parrot';'Hash']
vivify_178:
- unless $P570, if_567_end
- find_lex $P571, "$past"
- find_lex $P572, "$/"
- unless_null $P572, vivify_179
- $P572 = root_new ['parrot';'Hash']
+ set $P538, $P537["quantifier"]
+ unless_null $P538, vivify_179
+ new $P538, "Undef"
vivify_179:
- set $P573, $P572["backmod"]
- unless_null $P573, vivify_180
- $P573 = root_new ['parrot';'ResizablePMCArray']
+ if $P538, if_536
+.annotate 'line', 81
+ find_lex $P555, "$/"
+ unless_null $P555, vivify_180
+ $P555 = root_new ['parrot';'Hash']
vivify_180:
- set $P574, $P573[0]
- unless_null $P574, vivify_181
- new $P574, "Undef"
+ set $P556, $P555["backmod"]
+ unless_null $P556, vivify_181
+ $P556 = root_new ['parrot';'ResizablePMCArray']
vivify_181:
- "backmod"($P571, $P574)
- if_567_end:
- goto if_549_end
- if_549:
-.annotate 'line', 78
- .const 'Sub' $P553 = "38_1275811482.3686"
- capture_lex $P553
- $P553()
- if_549_end:
-.annotate 'line', 85
- find_lex $P580, "$past"
- if $P580, if_579
- set $P578, $P580
- goto if_579_end
- if_579:
- find_lex $P581, "$past"
- $P582 = $P581."backtrack"()
- isfalse $I583, $P582
- new $P578, 'Integer'
- set $P578, $I583
- if_579_end:
- if $P578, if_577
- set $P576, $P578
- goto if_577_end
- if_577:
- get_global $P584, "@MODIFIERS"
- unless_null $P584, vivify_185
- $P584 = root_new ['parrot';'ResizablePMCArray']
+ set $P557, $P556[0]
+ unless_null $P557, vivify_182
+ new $P557, "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']
+ vivify_183:
+ set $P560, $P559["backmod"]
+ unless_null $P560, vivify_184
+ $P560 = root_new ['parrot';'ResizablePMCArray']
+ vivify_184:
+ set $P561, $P560[0]
+ unless_null $P561, vivify_185
+ new $P561, "Undef"
vivify_185:
- set $P585, $P584[0]
- unless_null $P585, vivify_186
- $P585 = root_new ['parrot';'Hash']
- vivify_186:
- set $P586, $P585["r"]
- unless_null $P586, vivify_187
- new $P586, "Undef"
- vivify_187:
- set $P576, $P586
- if_577_end:
- unless $P576, if_575_end
-.annotate 'line', 86
- find_lex $P587, "$past"
- $P587."backtrack"("r")
- if_575_end:
-.annotate 'line', 88
- find_lex $P588, "$/"
- find_lex $P589, "$past"
- $P590 = $P588."!make"($P589)
-.annotate 'line', 76
- .return ($P590)
- control_542:
+ "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)
+.annotate 'line', 73
+ .return ($P577)
+ control_529:
.local pmc exception
.get_results (exception)
- getattribute $P591, exception, "payload"
- .return ($P591)
+ getattribute $P578, exception, "payload"
+ .return ($P578)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block552" :anon :subid("38_1275811482.3686") :outer("37_1275811482.3686")
-.annotate 'line', 80
- new $P554, "Undef"
- .lex "$qast", $P554
-.annotate 'line', 79
- find_lex $P556, "$past"
- isfalse $I557, $P556
- unless $I557, if_555_end
- find_lex $P558, "$/"
- $P559 = $P558."CURSOR"()
- $P559."panic"("Quantifier follows nothing")
- if_555_end:
-.annotate 'line', 80
- find_lex $P560, "$/"
- unless_null $P560, vivify_182
- $P560 = root_new ['parrot';'Hash']
- vivify_182:
- set $P561, $P560["quantifier"]
- unless_null $P561, vivify_183
- $P561 = root_new ['parrot';'ResizablePMCArray']
- vivify_183:
- set $P562, $P561[0]
- unless_null $P562, vivify_184
- new $P562, "Undef"
- vivify_184:
- $P563 = $P562."ast"()
- store_lex "$qast", $P563
-.annotate 'line', 81
- find_lex $P564, "$qast"
- find_lex $P565, "$past"
- $P564."unshift"($P565)
-.annotate 'line', 82
- find_lex $P566, "$qast"
- store_lex "$past", $P566
+.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
- .return ($P566)
+ 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)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "atom" :subid("39_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_595
-.annotate 'line', 91
- new $P594, 'ExceptionHandler'
- set_addr $P594, control_593
- $P594."handle_types"(.CONTROL_RETURN)
- push_eh $P594
+.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
.lex "self", self
- .lex "$/", param_595
-.annotate 'line', 92
- new $P596, "Undef"
- .lex "$past", $P596
-.annotate 'line', 91
- find_lex $P597, "$past"
-.annotate 'line', 93
- find_lex $P599, "$/"
- unless_null $P599, vivify_188
- $P599 = root_new ['parrot';'Hash']
- vivify_188:
- set $P600, $P599["metachar"]
- unless_null $P600, vivify_189
- new $P600, "Undef"
- vivify_189:
- if $P600, if_598
-.annotate 'line', 95
- get_hll_global $P604, ["PAST"], "Regex"
- find_lex $P605, "$/"
- set $S606, $P605
- find_lex $P607, "$/"
- $P608 = $P604."new"($S606, "literal" :named("pasttype"), $P607 :named("node"))
- store_lex "$past", $P608
-.annotate 'line', 96
- get_global $P610, "@MODIFIERS"
- unless_null $P610, vivify_190
- $P610 = root_new ['parrot';'ResizablePMCArray']
- vivify_190:
- set $P611, $P610[0]
- unless_null $P611, vivify_191
- $P611 = root_new ['parrot';'Hash']
- vivify_191:
- set $P612, $P611["i"]
- unless_null $P612, vivify_192
- new $P612, "Undef"
+ .lex "$/", param_582
+.annotate 'line', 89
+ new $P583, "Undef"
+ .lex "$past", $P583
+.annotate 'line', 88
+ find_lex $P584, "$past"
+.annotate 'line', 90
+ find_lex $P586, "$/"
+ unless_null $P586, vivify_192
+ $P586 = root_new ['parrot';'Hash']
vivify_192:
- unless $P612, if_609_end
- find_lex $P613, "$past"
- $P613."subtype"("ignorecase")
- if_609_end:
-.annotate 'line', 94
- goto if_598_end
- if_598:
-.annotate 'line', 93
- find_lex $P601, "$/"
- unless_null $P601, vivify_193
- $P601 = root_new ['parrot';'Hash']
+ set $P587, $P586["metachar"]
+ unless_null $P587, vivify_193
+ new $P587, "Undef"
vivify_193:
- set $P602, $P601["metachar"]
- unless_null $P602, vivify_194
- new $P602, "Undef"
+ 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"
+ unless_null $P597, vivify_194
+ $P597 = root_new ['parrot';'ResizablePMCArray']
vivify_194:
- $P603 = $P602."ast"()
- store_lex "$past", $P603
- if_598_end:
-.annotate 'line', 98
- find_lex $P614, "$/"
- find_lex $P615, "$past"
- $P616 = $P614."!make"($P615)
+ set $P598, $P597[0]
+ unless_null $P598, vivify_195
+ $P598 = root_new ['parrot';'Hash']
+ 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
- .return ($P616)
- control_593:
+ 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:
.local pmc exception
.get_results (exception)
- getattribute $P617, exception, "payload"
- .return ($P617)
+ getattribute $P604, exception, "payload"
+ .return ($P604)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "quantifier:sym<*>" :subid("40_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_621
-.annotate 'line', 101
- new $P620, 'ExceptionHandler'
- set_addr $P620, control_619
- $P620."handle_types"(.CONTROL_RETURN)
- push_eh $P620
+.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_621
-.annotate 'line', 102
- new $P622, "Undef"
- .lex "$past", $P622
- get_hll_global $P623, ["PAST"], "Regex"
- find_lex $P624, "$/"
- $P625 = $P623."new"("quant" :named("pasttype"), $P624 :named("node"))
- store_lex "$past", $P625
-.annotate 'line', 103
- find_lex $P626, "$/"
- find_lex $P627, "$past"
- find_lex $P628, "$/"
- unless_null $P628, vivify_195
- $P628 = root_new ['parrot';'Hash']
- vivify_195:
- set $P629, $P628["backmod"]
- unless_null $P629, vivify_196
- new $P629, "Undef"
- vivify_196:
- $P630 = "backmod"($P627, $P629)
- $P631 = $P626."!make"($P630)
-.annotate 'line', 101
- .return ($P631)
- control_619:
+ .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 $P632, exception, "payload"
- .return ($P632)
+ getattribute $P619, exception, "payload"
+ .return ($P619)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "quantifier:sym<+>" :subid("41_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_636
-.annotate 'line', 106
- new $P635, 'ExceptionHandler'
- set_addr $P635, control_634
- $P635."handle_types"(.CONTROL_RETURN)
- push_eh $P635
- .lex "self", self
- .lex "$/", param_636
-.annotate 'line', 107
- new $P637, "Undef"
- .lex "$past", $P637
- get_hll_global $P638, ["PAST"], "Regex"
- find_lex $P639, "$/"
- $P640 = $P638."new"("quant" :named("pasttype"), 1 :named("min"), $P639 :named("node"))
- store_lex "$past", $P640
-.annotate 'line', 108
- find_lex $P641, "$/"
- find_lex $P642, "$past"
- find_lex $P643, "$/"
- unless_null $P643, vivify_197
- $P643 = root_new ['parrot';'Hash']
- vivify_197:
- set $P644, $P643["backmod"]
- unless_null $P644, vivify_198
- new $P644, "Undef"
- vivify_198:
- $P645 = "backmod"($P642, $P644)
- $P646 = $P641."!make"($P645)
-.annotate 'line', 106
- .return ($P646)
- control_634:
+.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
+ .lex "self", self
+ .lex "$/", param_623
+.annotate 'line', 104
+ 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
+.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:
.local pmc exception
.get_results (exception)
- getattribute $P647, exception, "payload"
- .return ($P647)
+ getattribute $P634, exception, "payload"
+ .return ($P634)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "quantifier:sym<?>" :subid("42_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_651
-.annotate 'line', 111
- new $P650, 'ExceptionHandler'
- set_addr $P650, control_649
- $P650."handle_types"(.CONTROL_RETURN)
- push_eh $P650
+.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
.lex "self", self
- .lex "$/", param_651
-.annotate 'line', 112
- new $P652, "Undef"
- .lex "$past", $P652
- get_hll_global $P653, ["PAST"], "Regex"
- find_lex $P654, "$/"
- $P655 = $P653."new"("quant" :named("pasttype"), 0 :named("min"), 1 :named("max"), $P654 :named("node"))
- store_lex "$past", $P655
-.annotate 'line', 113
- find_lex $P656, "$/"
- find_lex $P657, "$past"
- find_lex $P658, "$/"
- unless_null $P658, vivify_199
- $P658 = root_new ['parrot';'Hash']
- vivify_199:
- set $P659, $P658["backmod"]
- unless_null $P659, vivify_200
- new $P659, "Undef"
- vivify_200:
- $P660 = "backmod"($P657, $P659)
- $P656."!make"($P660)
-.annotate 'line', 114
- find_lex $P661, "$/"
- find_lex $P662, "$past"
- $P663 = $P661."!make"($P662)
+ .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
+ new $P646, "Undef"
+ vivify_204:
+ $P647 = "backmod"($P644, $P646)
+ $P643."!make"($P647)
.annotate 'line', 111
- .return ($P663)
- control_649:
+ find_lex $P648, "$/"
+ find_lex $P649, "$past"
+ $P650 = $P648."!make"($P649)
+.annotate 'line', 108
+ .return ($P650)
+ control_636:
.local pmc exception
.get_results (exception)
- getattribute $P664, exception, "payload"
- .return ($P664)
+ getattribute $P651, exception, "payload"
+ .return ($P651)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "quantifier:sym<**>" :subid("43_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_668
-.annotate 'line', 117
- .const 'Sub' $P683 = "44_1275811482.3686"
- capture_lex $P683
- new $P667, 'ExceptionHandler'
- set_addr $P667, control_666
- $P667."handle_types"(.CONTROL_RETURN)
- push_eh $P667
- .lex "self", self
- .lex "$/", param_668
-.annotate 'line', 118
- new $P669, "Undef"
- .lex "$past", $P669
-.annotate 'line', 119
- new $P670, "Undef"
- .lex "$ws", $P670
-.annotate 'line', 117
- find_lex $P671, "$past"
-.annotate 'line', 119
- find_lex $P674, "$/"
- unless_null $P674, vivify_201
- $P674 = root_new ['parrot';'Hash']
- vivify_201:
- set $P675, $P674["normspace"]
- unless_null $P675, vivify_202
- new $P675, "Undef"
- vivify_202:
- if $P675, if_673
- set $P672, $P675
- goto if_673_end
- if_673:
- get_global $P676, "@MODIFIERS"
- unless_null $P676, vivify_203
- $P676 = root_new ['parrot';'ResizablePMCArray']
- vivify_203:
- set $P677, $P676[0]
- unless_null $P677, vivify_204
- $P677 = root_new ['parrot';'Hash']
- vivify_204:
- set $P678, $P677["s"]
- unless_null $P678, vivify_205
- new $P678, "Undef"
+.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 $P672, $P678
- if_673_end:
- store_lex "$ws", $P672
-.annotate 'line', 120
- find_lex $P680, "$/"
- unless_null $P680, vivify_206
- $P680 = root_new ['parrot';'Hash']
+ set $P662, $P661["normspace"]
+ unless_null $P662, vivify_206
+ new $P662, "Undef"
vivify_206:
- set $P681, $P680["quantified_atom"]
- unless_null $P681, vivify_207
- new $P681, "Undef"
+ 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:
- if $P681, if_679
-.annotate 'line', 136
- get_hll_global $P701, ["PAST"], "Regex"
- find_lex $P702, "$/"
- unless_null $P702, vivify_208
- $P702 = root_new ['parrot';'Hash']
+ set $P664, $P663[0]
+ unless_null $P664, vivify_208
+ $P664 = root_new ['parrot';'Hash']
vivify_208:
- set $P703, $P702["min"]
- unless_null $P703, vivify_209
- new $P703, "Undef"
+ set $P665, $P664["s"]
+ unless_null $P665, vivify_209
+ new $P665, "Undef"
vivify_209:
- set $N704, $P703
- find_lex $P705, "$/"
- $P706 = $P701."new"("quant" :named("pasttype"), $N704 :named("min"), $P705 :named("node"))
- store_lex "$past", $P706
-.annotate 'line', 137
- find_lex $P708, "$/"
- unless_null $P708, vivify_210
- $P708 = root_new ['parrot';'Hash']
+ set $P659, $P665
+ if_660_end:
+ store_lex "$ws", $P659
+.annotate 'line', 117
+ find_lex $P667, "$/"
+ unless_null $P667, vivify_210
+ $P667 = root_new ['parrot';'Hash']
vivify_210:
- set $P709, $P708["max"]
- unless_null $P709, vivify_211
- new $P709, "Undef"
+ set $P668, $P667["quantified_atom"]
+ unless_null $P668, vivify_211
+ new $P668, "Undef"
vivify_211:
- isfalse $I710, $P709
- if $I710, if_707
-.annotate 'line', 138
- find_lex $P716, "$/"
- unless_null $P716, vivify_212
- $P716 = root_new ['parrot';'Hash']
+ 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']
vivify_212:
- set $P717, $P716["max"]
- unless_null $P717, vivify_213
- $P717 = root_new ['parrot';'ResizablePMCArray']
+ set $P690, $P689["min"]
+ unless_null $P690, vivify_213
+ new $P690, "Undef"
vivify_213:
- set $P718, $P717[0]
- unless_null $P718, vivify_214
- new $P718, "Undef"
+ 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 $S719, $P718
- isne $I720, $S719, "*"
- unless $I720, if_715_end
- find_lex $P721, "$past"
- find_lex $P722, "$/"
- unless_null $P722, vivify_215
- $P722 = root_new ['parrot';'Hash']
+ set $P696, $P695["max"]
+ unless_null $P696, vivify_215
+ new $P696, "Undef"
vivify_215:
- set $P723, $P722["max"]
- unless_null $P723, vivify_216
- $P723 = root_new ['parrot';'ResizablePMCArray']
+ 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 $P724, $P723[0]
- unless_null $P724, vivify_217
- new $P724, "Undef"
+ set $P704, $P703["max"]
+ unless_null $P704, vivify_217
+ $P704 = root_new ['parrot';'ResizablePMCArray']
vivify_217:
- set $N725, $P724
- $P721."max"($N725)
- if_715_end:
- goto if_707_end
- if_707:
-.annotate 'line', 137
- find_lex $P711, "$past"
- find_lex $P712, "$/"
- unless_null $P712, vivify_218
- $P712 = root_new ['parrot';'Hash']
+ set $P705, $P704[0]
+ unless_null $P705, vivify_218
+ new $P705, "Undef"
vivify_218:
- set $P713, $P712["min"]
- unless_null $P713, vivify_219
- new $P713, "Undef"
+ 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 $N714, $P713
- $P711."max"($N714)
- if_707_end:
-.annotate 'line', 139
- find_lex $P727, "$ws"
- unless $P727, if_726_end
- find_lex $P728, "$past"
- get_hll_global $P729, ["PAST"], "Regex"
- $P730 = $P729."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
- $P728."sep"($P730)
- if_726_end:
-.annotate 'line', 135
- goto if_679_end
- if_679:
-.annotate 'line', 120
- .const 'Sub' $P683 = "44_1275811482.3686"
- capture_lex $P683
- $P683()
- if_679_end:
-.annotate 'line', 143
- find_lex $P731, "$/"
- find_lex $P732, "$past"
- find_lex $P733, "$/"
- unless_null $P733, vivify_222
- $P733 = root_new ['parrot';'Hash']
+ 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 $P734, $P733["backmod"]
- unless_null $P734, vivify_223
- new $P734, "Undef"
+ set $P700, $P699["min"]
+ unless_null $P700, vivify_223
+ new $P700, "Undef"
vivify_223:
- $P735 = "backmod"($P732, $P734)
- $P736 = $P731."!make"($P735)
+ 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:
.annotate 'line', 117
- .return ($P736)
- control_666:
+ .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:
.local pmc exception
.get_results (exception)
- getattribute $P737, exception, "payload"
- .return ($P737)
+ getattribute $P724, exception, "payload"
+ .return ($P724)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block682" :anon :subid("44_1275811482.3686") :outer("43_1275811482.3686")
-.annotate 'line', 121
- new $P684, "Undef"
- .lex "$ast", $P684
- find_lex $P685, "$/"
- unless_null $P685, vivify_220
- $P685 = root_new ['parrot';'Hash']
- vivify_220:
- set $P686, $P685["quantified_atom"]
- unless_null $P686, vivify_221
- new $P686, "Undef"
- vivify_221:
- $P687 = $P686."ast"()
- store_lex "$ast", $P687
+.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"
.annotate 'line', 122
- find_lex $P689, "$ws"
- unless $P689, if_688_end
-.annotate 'line', 123
- get_hll_global $P690, ["PAST"], "Regex"
+ 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 $P691, ["PAST"], "Regex"
- $P692 = $P691."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
- find_lex $P693, "$ast"
-.annotate 'line', 128
- get_hll_global $P694, ["PAST"], "Regex"
- $P695 = $P694."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
- $P696 = $P690."new"($P692, $P693, $P695, "concat" :named("pasttype"))
-.annotate 'line', 123
- store_lex "$ast", $P696
- if_688_end:
-.annotate 'line', 132
- get_hll_global $P697, ["PAST"], "Regex"
- find_lex $P698, "$ast"
- find_lex $P699, "$/"
- $P700 = $P697."new"("quant" :named("pasttype"), 1 :named("min"), $P698 :named("sep"), $P699 :named("node"))
- store_lex "$past", $P700
+ 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
- .return ($P700)
+ 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
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<ws>" :subid("45_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_741
-.annotate 'line', 146
- new $P740, 'ExceptionHandler'
- set_addr $P740, control_739
- $P740."handle_types"(.CONTROL_RETURN)
- push_eh $P740
- .lex "self", self
- .lex "$/", param_741
-.annotate 'line', 147
- new $P742, "Undef"
- .lex "$past", $P742
+.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
+ .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']
+ vivify_228:
+ set $P733, $P732[0]
+ unless_null $P733, vivify_229
+ $P733 = root_new ['parrot';'Hash']
+ vivify_229:
+ set $P734, $P733["s"]
+ unless_null $P734, vivify_230
+ new $P734, "Undef"
+ vivify_230:
+ if $P734, if_731
+ new $P738, "Integer"
+ assign $P738, 0
+ set $P730, $P738
+ goto if_731_end
+ if_731:
+ get_hll_global $P735, ["PAST"], "Regex"
+ find_lex $P736, "$/"
+ $P737 = $P735."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"), $P736 :named("node"))
+ set $P730, $P737
+ if_731_end:
+ store_lex "$past", $P730
.annotate 'line', 148
- get_global $P745, "@MODIFIERS"
- unless_null $P745, vivify_224
- $P745 = root_new ['parrot';'ResizablePMCArray']
- vivify_224:
- set $P746, $P745[0]
- unless_null $P746, vivify_225
- $P746 = root_new ['parrot';'Hash']
- vivify_225:
- set $P747, $P746["s"]
- unless_null $P747, vivify_226
- new $P747, "Undef"
- vivify_226:
- if $P747, if_744
- new $P751, "Integer"
- assign $P751, 0
- set $P743, $P751
- goto if_744_end
- if_744:
- get_hll_global $P748, ["PAST"], "Regex"
- find_lex $P749, "$/"
- $P750 = $P748."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"), $P749 :named("node"))
- set $P743, $P750
- if_744_end:
- store_lex "$past", $P743
-.annotate 'line', 151
- find_lex $P752, "$/"
- find_lex $P753, "$past"
- $P754 = $P752."!make"($P753)
-.annotate 'line', 146
- .return ($P754)
- control_739:
+ find_lex $P739, "$/"
+ find_lex $P740, "$past"
+ $P741 = $P739."!make"($P740)
+.annotate 'line', 143
+ .return ($P741)
+ control_726:
.local pmc exception
.get_results (exception)
- getattribute $P755, exception, "payload"
- .return ($P755)
+ getattribute $P742, exception, "payload"
+ .return ($P742)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<[ ]>" :subid("46_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_759
-.annotate 'line', 155
- new $P758, 'ExceptionHandler'
- set_addr $P758, control_757
- $P758."handle_types"(.CONTROL_RETURN)
- push_eh $P758
+.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_759
-.annotate 'line', 156
- find_lex $P760, "$/"
- find_lex $P761, "$/"
- unless_null $P761, vivify_227
- $P761 = root_new ['parrot';'Hash']
- vivify_227:
- set $P762, $P761["nibbler"]
- unless_null $P762, vivify_228
- new $P762, "Undef"
- vivify_228:
- $P763 = $P762."ast"()
- $P764 = $P760."!make"($P763)
-.annotate 'line', 155
- .return ($P764)
- control_757:
+ .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 $P765, exception, "payload"
- .return ($P765)
+ getattribute $P752, exception, "payload"
+ .return ($P752)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<( )>" :subid("47_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_769
-.annotate 'line', 159
- new $P768, 'ExceptionHandler'
- set_addr $P768, control_767
- $P768."handle_types"(.CONTROL_RETURN)
- push_eh $P768
- .lex "self", self
- .lex "$/", param_769
-.annotate 'line', 160
- new $P770, "Undef"
- .lex "$subpast", $P770
-.annotate 'line', 161
- new $P771, "Undef"
- .lex "$past", $P771
+.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
+.annotate 'line', 157
+ new $P757, "Undef"
+ .lex "$subpast", $P757
+.annotate 'line', 158
+ new $P758, "Undef"
+ .lex "$past", $P758
+.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 $P772, "$/"
- unless_null $P772, vivify_229
- $P772 = root_new ['parrot';'Hash']
- vivify_229:
- set $P773, $P772["nibbler"]
- unless_null $P773, vivify_230
- new $P773, "Undef"
- vivify_230:
- $P774 = $P773."ast"()
- $P775 = "buildsub"($P774)
- store_lex "$subpast", $P775
-.annotate 'line', 161
- get_hll_global $P776, ["PAST"], "Regex"
- find_lex $P777, "$subpast"
- find_lex $P778, "$/"
- $P779 = $P776."new"($P777, "subrule" :named("pasttype"), "capture" :named("subtype"), $P778 :named("node"))
- store_lex "$past", $P779
-.annotate 'line', 163
- find_lex $P780, "$/"
- find_lex $P781, "$past"
- $P782 = $P780."!make"($P781)
-.annotate 'line', 159
- .return ($P782)
- control_767:
+ find_lex $P767, "$/"
+ find_lex $P768, "$past"
+ $P769 = $P767."!make"($P768)
+.annotate 'line', 156
+ .return ($P769)
+ control_754:
.local pmc exception
.get_results (exception)
- getattribute $P783, exception, "payload"
- .return ($P783)
+ getattribute $P770, exception, "payload"
+ .return ($P770)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<'>" :subid("48_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_787
-.annotate 'line', 166
- new $P786, 'ExceptionHandler'
- set_addr $P786, control_785
- $P786."handle_types"(.CONTROL_RETURN)
- push_eh $P786
+.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_787
-.annotate 'line', 167
- new $P788, "Undef"
- .lex "$quote", $P788
-.annotate 'line', 169
- new $P789, "Undef"
- .lex "$past", $P789
+ .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:
+.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
.annotate 'line', 167
- find_lex $P790, "$/"
- unless_null $P790, vivify_231
- $P790 = root_new ['parrot';'Hash']
- vivify_231:
- set $P791, $P790["quote_EXPR"]
- unless_null $P791, vivify_232
- new $P791, "Undef"
- vivify_232:
- $P792 = $P791."ast"()
- store_lex "$quote", $P792
+ 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
- get_hll_global $P794, ["PAST"], "Val"
- find_lex $P795, "$quote"
- $P796 = $P794."ACCEPTS"($P795)
- unless $P796, if_793_end
- find_lex $P797, "$quote"
- $P798 = $P797."value"()
- store_lex "$quote", $P798
- if_793_end:
-.annotate 'line', 169
- get_hll_global $P799, ["PAST"], "Regex"
- find_lex $P800, "$quote"
- find_lex $P801, "$/"
- $P802 = $P799."new"($P800, "literal" :named("pasttype"), $P801 :named("node"))
- store_lex "$past", $P802
-.annotate 'line', 170
- find_lex $P803, "$/"
- find_lex $P804, "$past"
- $P805 = $P803."!make"($P804)
-.annotate 'line', 166
- .return ($P805)
- control_785:
+ find_lex $P795, "$/"
+ find_lex $P796, "$past"
+ $P797 = $P795."!make"($P796)
+.annotate 'line', 163
+ .return ($P797)
+ control_772:
.local pmc exception
.get_results (exception)
- getattribute $P806, exception, "payload"
- .return ($P806)
+ getattribute $P798, exception, "payload"
+ .return ($P798)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<\">" :subid("49_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_810
-.annotate 'line', 173
- new $P809, 'ExceptionHandler'
- set_addr $P809, control_808
- $P809."handle_types"(.CONTROL_RETURN)
- push_eh $P809
- .lex "self", self
- .lex "$/", param_810
+.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
+ .lex "self", self
+ .lex "$/", param_802
+.annotate 'line', 172
+ new $P803, "Undef"
+ .lex "$quote", $P803
.annotate 'line', 174
- new $P811, "Undef"
- .lex "$quote", $P811
-.annotate 'line', 176
- new $P812, "Undef"
- .lex "$past", $P812
+ new $P804, "Undef"
+ .lex "$past", $P804
+.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
- find_lex $P813, "$/"
- unless_null $P813, vivify_233
- $P813 = root_new ['parrot';'Hash']
- vivify_233:
- set $P814, $P813["quote_EXPR"]
- unless_null $P814, vivify_234
- new $P814, "Undef"
- vivify_234:
- $P815 = $P814."ast"()
- store_lex "$quote", $P815
+ 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_hll_global $P817, ["PAST"], "Val"
- find_lex $P818, "$quote"
- $P819 = $P817."ACCEPTS"($P818)
- unless $P819, if_816_end
- find_lex $P820, "$quote"
- $P821 = $P820."value"()
- store_lex "$quote", $P821
- if_816_end:
+ 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']
+ vivify_243:
+ set $P821, $P820["i"]
+ unless_null $P821, vivify_244
+ new $P821, "Undef"
+ vivify_244:
+ unless $P821, if_818_end
+ find_lex $P822, "$past"
+ $P822."subtype"("ignorecase")
+ if_818_end:
.annotate 'line', 176
- get_hll_global $P822, ["PAST"], "Regex"
- find_lex $P823, "$quote"
- find_lex $P824, "$/"
- $P825 = $P822."new"($P823, "literal" :named("pasttype"), $P824 :named("node"))
- store_lex "$past", $P825
-.annotate 'line', 177
- find_lex $P826, "$/"
- find_lex $P827, "$past"
- $P828 = $P826."!make"($P827)
-.annotate 'line', 173
- .return ($P828)
- control_808:
+ find_lex $P823, "$/"
+ find_lex $P824, "$past"
+ $P825 = $P823."!make"($P824)
+.annotate 'line', 171
+ .return ($P825)
+ control_800:
.local pmc exception
.get_results (exception)
- getattribute $P829, exception, "payload"
- .return ($P829)
+ getattribute $P826, exception, "payload"
+ .return ($P826)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<.>" :subid("50_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_833
-.annotate 'line', 180
- new $P832, 'ExceptionHandler'
- set_addr $P832, control_831
- $P832."handle_types"(.CONTROL_RETURN)
- push_eh $P832
+.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
.lex "self", self
- .lex "$/", param_833
-.annotate 'line', 181
- new $P834, "Undef"
- .lex "$past", $P834
- get_hll_global $P835, ["PAST"], "Regex"
- find_lex $P836, "$/"
- $P837 = $P835."new"("charclass" :named("pasttype"), "." :named("subtype"), $P836 :named("node"))
- store_lex "$past", $P837
-.annotate 'line', 182
- find_lex $P838, "$/"
- find_lex $P839, "$past"
- $P840 = $P838."!make"($P839)
+ .lex "$/", param_830
.annotate 'line', 180
- .return ($P840)
- control_831:
+ 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)
+.annotate 'line', 179
+ .return ($P837)
+ control_828:
.local pmc exception
.get_results (exception)
- getattribute $P841, exception, "payload"
- .return ($P841)
+ getattribute $P838, exception, "payload"
+ .return ($P838)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<^>" :subid("51_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_845
-.annotate 'line', 185
- new $P844, 'ExceptionHandler'
- set_addr $P844, control_843
- $P844."handle_types"(.CONTROL_RETURN)
- push_eh $P844
+.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_845
-.annotate 'line', 186
- new $P846, "Undef"
- .lex "$past", $P846
- get_hll_global $P847, ["PAST"], "Regex"
- find_lex $P848, "$/"
- $P849 = $P847."new"("anchor" :named("pasttype"), "bos" :named("subtype"), $P848 :named("node"))
- store_lex "$past", $P849
-.annotate 'line', 187
- find_lex $P850, "$/"
- find_lex $P851, "$past"
- $P852 = $P850."!make"($P851)
+ .lex "$/", param_842
.annotate 'line', 185
- .return ($P852)
- control_843:
+ 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
+.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 $P853, exception, "payload"
- .return ($P853)
+ getattribute $P850, exception, "payload"
+ .return ($P850)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<^^>" :subid("52_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_857
-.annotate 'line', 190
- new $P856, 'ExceptionHandler'
- set_addr $P856, control_855
- $P856."handle_types"(.CONTROL_RETURN)
- push_eh $P856
+.sub "metachar:sym<^^>" :subid("51_1280467473.99327") :method :outer("11_1280467473.99327")
+ .param pmc param_854
+.annotate 'line', 189
+ new $P853, 'ExceptionHandler'
+ set_addr $P853, control_852
+ $P853."handle_types"(.CONTROL_RETURN)
+ push_eh $P853
.lex "self", self
- .lex "$/", param_857
-.annotate 'line', 191
- new $P858, "Undef"
- .lex "$past", $P858
- get_hll_global $P859, ["PAST"], "Regex"
- find_lex $P860, "$/"
- $P861 = $P859."new"("anchor" :named("pasttype"), "bol" :named("subtype"), $P860 :named("node"))
- store_lex "$past", $P861
-.annotate 'line', 192
- find_lex $P862, "$/"
- find_lex $P863, "$past"
- $P864 = $P862."!make"($P863)
+ .lex "$/", param_854
.annotate 'line', 190
- .return ($P864)
- control_855:
+ 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:
.local pmc exception
.get_results (exception)
- getattribute $P865, exception, "payload"
- .return ($P865)
+ getattribute $P862, exception, "payload"
+ .return ($P862)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<$>" :subid("53_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_869
-.annotate 'line', 195
- new $P868, 'ExceptionHandler'
- set_addr $P868, control_867
- $P868."handle_types"(.CONTROL_RETURN)
- push_eh $P868
+.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
.lex "self", self
- .lex "$/", param_869
-.annotate 'line', 196
- new $P870, "Undef"
- .lex "$past", $P870
- get_hll_global $P871, ["PAST"], "Regex"
- find_lex $P872, "$/"
- $P873 = $P871."new"("anchor" :named("pasttype"), "eos" :named("subtype"), $P872 :named("node"))
- store_lex "$past", $P873
-.annotate 'line', 197
- find_lex $P874, "$/"
- find_lex $P875, "$past"
- $P876 = $P874."!make"($P875)
+ .lex "$/", param_866
.annotate 'line', 195
- .return ($P876)
- control_867:
+ 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)
+.annotate 'line', 194
+ .return ($P873)
+ control_864:
.local pmc exception
.get_results (exception)
- getattribute $P877, exception, "payload"
- .return ($P877)
+ getattribute $P874, exception, "payload"
+ .return ($P874)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<$$>" :subid("54_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_881
-.annotate 'line', 200
- new $P880, 'ExceptionHandler'
- set_addr $P880, control_879
- $P880."handle_types"(.CONTROL_RETURN)
- push_eh $P880
+.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
.lex "self", self
- .lex "$/", param_881
-.annotate 'line', 201
- new $P882, "Undef"
- .lex "$past", $P882
- get_hll_global $P883, ["PAST"], "Regex"
- find_lex $P884, "$/"
- $P885 = $P883."new"("anchor" :named("pasttype"), "eol" :named("subtype"), $P884 :named("node"))
- store_lex "$past", $P885
-.annotate 'line', 202
- find_lex $P886, "$/"
- find_lex $P887, "$past"
- $P888 = $P886."!make"($P887)
+ .lex "$/", param_878
.annotate 'line', 200
- .return ($P888)
- control_879:
+ 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)
+.annotate 'line', 199
+ .return ($P885)
+ control_876:
.local pmc exception
.get_results (exception)
- getattribute $P889, exception, "payload"
- .return ($P889)
+ getattribute $P886, exception, "payload"
+ .return ($P886)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<:::>" :subid("55_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_893
-.annotate 'line', 205
- new $P892, 'ExceptionHandler'
- set_addr $P892, control_891
- $P892."handle_types"(.CONTROL_RETURN)
- push_eh $P892
+.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
.lex "self", self
- .lex "$/", param_893
-.annotate 'line', 206
- new $P894, "Undef"
- .lex "$past", $P894
- get_hll_global $P895, ["PAST"], "Regex"
- find_lex $P896, "$/"
- $P897 = $P895."new"("cut" :named("pasttype"), $P896 :named("node"))
- store_lex "$past", $P897
-.annotate 'line', 207
- find_lex $P898, "$/"
- find_lex $P899, "$past"
- $P900 = $P898."!make"($P899)
+ .lex "$/", param_890
.annotate 'line', 205
- .return ($P900)
- control_891:
+ 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)
+.annotate 'line', 204
+ .return ($P897)
+ control_888:
.local pmc exception
.get_results (exception)
- getattribute $P901, exception, "payload"
- .return ($P901)
+ getattribute $P898, exception, "payload"
+ .return ($P898)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<lwb>" :subid("56_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_905
-.annotate 'line', 210
- new $P904, 'ExceptionHandler'
- set_addr $P904, control_903
- $P904."handle_types"(.CONTROL_RETURN)
- push_eh $P904
+.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
.lex "self", self
- .lex "$/", param_905
-.annotate 'line', 211
- new $P906, "Undef"
- .lex "$past", $P906
- get_hll_global $P907, ["PAST"], "Regex"
- find_lex $P908, "$/"
- $P909 = $P907."new"("anchor" :named("pasttype"), "lwb" :named("subtype"), $P908 :named("node"))
- store_lex "$past", $P909
-.annotate 'line', 212
- find_lex $P910, "$/"
- find_lex $P911, "$past"
- $P912 = $P910."!make"($P911)
+ .lex "$/", param_902
.annotate 'line', 210
- .return ($P912)
- control_903:
+ 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)
+.annotate 'line', 209
+ .return ($P909)
+ control_900:
.local pmc exception
.get_results (exception)
- getattribute $P913, exception, "payload"
- .return ($P913)
+ getattribute $P910, exception, "payload"
+ .return ($P910)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<rwb>" :subid("57_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_917
-.annotate 'line', 215
- new $P916, 'ExceptionHandler'
- set_addr $P916, control_915
- $P916."handle_types"(.CONTROL_RETURN)
- push_eh $P916
+.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
.lex "self", self
- .lex "$/", param_917
-.annotate 'line', 216
- new $P918, "Undef"
- .lex "$past", $P918
- get_hll_global $P919, ["PAST"], "Regex"
- find_lex $P920, "$/"
- $P921 = $P919."new"("anchor" :named("pasttype"), "rwb" :named("subtype"), $P920 :named("node"))
- store_lex "$past", $P921
-.annotate 'line', 217
- find_lex $P922, "$/"
- find_lex $P923, "$past"
- $P924 = $P922."!make"($P923)
+ .lex "$/", param_914
.annotate 'line', 215
- .return ($P924)
- control_915:
+ 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)
+.annotate 'line', 214
+ .return ($P921)
+ control_912:
.local pmc exception
.get_results (exception)
- getattribute $P925, exception, "payload"
- .return ($P925)
+ getattribute $P922, exception, "payload"
+ .return ($P922)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<bs>" :subid("58_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_929
-.annotate 'line', 220
- new $P928, 'ExceptionHandler'
- set_addr $P928, control_927
- $P928."handle_types"(.CONTROL_RETURN)
- push_eh $P928
- .lex "self", self
- .lex "$/", param_929
-.annotate 'line', 221
- find_lex $P930, "$/"
- find_lex $P931, "$/"
- unless_null $P931, vivify_235
- $P931 = root_new ['parrot';'Hash']
- vivify_235:
- set $P932, $P931["backslash"]
- unless_null $P932, vivify_236
- new $P932, "Undef"
- vivify_236:
- $P933 = $P932."ast"()
- $P934 = $P930."!make"($P933)
+.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
+ .lex "self", self
+ .lex "$/", param_926
.annotate 'line', 220
- .return ($P934)
- control_927:
+ 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)
+.annotate 'line', 219
+ .return ($P931)
+ control_924:
.local pmc exception
.get_results (exception)
- getattribute $P935, exception, "payload"
- .return ($P935)
+ getattribute $P932, exception, "payload"
+ .return ($P932)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<mod>" :subid("59_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_939
-.annotate 'line', 224
- new $P938, 'ExceptionHandler'
- set_addr $P938, control_937
- $P938."handle_types"(.CONTROL_RETURN)
- push_eh $P938
- .lex "self", self
- .lex "$/", param_939
-.annotate 'line', 225
- find_lex $P940, "$/"
- find_lex $P941, "$/"
- unless_null $P941, vivify_237
- $P941 = root_new ['parrot';'Hash']
- vivify_237:
- set $P942, $P941["mod_internal"]
- unless_null $P942, vivify_238
- new $P942, "Undef"
- vivify_238:
- $P943 = $P942."ast"()
- $P944 = $P940."!make"($P943)
+.sub "metachar:sym<mod>" :subid("58_1280467473.99327") :method :outer("11_1280467473.99327")
+ .param pmc param_936
+.annotate 'line', 223
+ new $P935, 'ExceptionHandler'
+ set_addr $P935, control_934
+ $P935."handle_types"(.CONTROL_RETURN)
+ push_eh $P935
+ .lex "self", self
+ .lex "$/", param_936
.annotate 'line', 224
- .return ($P944)
- control_937:
+ 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)
+.annotate 'line', 223
+ .return ($P941)
+ control_934:
.local pmc exception
.get_results (exception)
- getattribute $P945, exception, "payload"
- .return ($P945)
+ getattribute $P942, exception, "payload"
+ .return ($P942)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<assert>" :subid("60_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_949
-.annotate 'line', 228
- new $P948, 'ExceptionHandler'
- set_addr $P948, control_947
- $P948."handle_types"(.CONTROL_RETURN)
- push_eh $P948
- .lex "self", self
- .lex "$/", param_949
-.annotate 'line', 229
- find_lex $P950, "$/"
- find_lex $P951, "$/"
- unless_null $P951, vivify_239
- $P951 = root_new ['parrot';'Hash']
- vivify_239:
- set $P952, $P951["assertion"]
- unless_null $P952, vivify_240
- new $P952, "Undef"
- vivify_240:
- $P953 = $P952."ast"()
- $P954 = $P950."!make"($P953)
+.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
.annotate 'line', 228
- .return ($P954)
- control_947:
+ 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:
.local pmc exception
.get_results (exception)
- getattribute $P955, exception, "payload"
- .return ($P955)
+ getattribute $P952, exception, "payload"
+ .return ($P952)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<~>" :subid("61_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_959
-.annotate 'line', 232
- new $P958, 'ExceptionHandler'
- set_addr $P958, control_957
- $P958."handle_types"(.CONTROL_RETURN)
- push_eh $P958
+.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_959
+ .lex "$/", param_956
+.annotate 'line', 232
+ find_lex $P957, "$/"
+ get_hll_global $P958, ["PAST"], "Regex"
.annotate 'line', 233
- find_lex $P960, "$/"
- get_hll_global $P961, ["PAST"], "Regex"
+ 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"()
.annotate 'line', 234
- find_lex $P962, "$/"
- unless_null $P962, vivify_241
- $P962 = root_new ['parrot';'Hash']
- vivify_241:
- set $P963, $P962["EXPR"]
- unless_null $P963, vivify_242
- new $P963, "Undef"
- vivify_242:
- $P964 = $P963."ast"()
+ get_hll_global $P962, ["PAST"], "Regex"
.annotate 'line', 235
- get_hll_global $P965, ["PAST"], "Regex"
+ 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
- find_lex $P966, "$/"
- unless_null $P966, vivify_243
- $P966 = root_new ['parrot';'Hash']
- vivify_243:
- set $P967, $P966["GOAL"]
- unless_null $P967, vivify_244
- new $P967, "Undef"
- vivify_244:
- $P968 = $P967."ast"()
-.annotate 'line', 237
- get_hll_global $P969, ["PAST"], "Regex"
- find_lex $P970, "$/"
- unless_null $P970, vivify_245
- $P970 = root_new ['parrot';'Hash']
- vivify_245:
- set $P971, $P970["GOAL"]
- unless_null $P971, vivify_246
- new $P971, "Undef"
- vivify_246:
- set $S972, $P971
- $P973 = $P969."new"("FAILGOAL", $S972, "subrule" :named("pasttype"), "method" :named("subtype"))
- $P974 = $P965."new"($P968, $P973, "alt" :named("pasttype"))
-.annotate 'line', 235
- $P975 = $P961."new"($P964, $P974, "concat" :named("pasttype"))
-.annotate 'line', 233
- $P976 = $P960."!make"($P975)
+ get_hll_global $P966, ["PAST"], "Regex"
+ find_lex $P967, "$/"
+ unless_null $P967, vivify_255
+ $P967 = root_new ['parrot';'Hash']
+ vivify_255:
+ set $P968, $P967["GOAL"]
+ unless_null $P968, vivify_256
+ new $P968, "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
- .return ($P976)
- control_957:
+ $P973 = $P957."!make"($P972)
+.annotate 'line', 231
+ .return ($P973)
+ control_954:
.local pmc exception
.get_results (exception)
- getattribute $P977, exception, "payload"
- .return ($P977)
+ getattribute $P974, exception, "payload"
+ .return ($P974)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<{*}>" :subid("62_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_981
-.annotate 'line', 245
- new $P980, 'ExceptionHandler'
- set_addr $P980, control_979
- $P980."handle_types"(.CONTROL_RETURN)
- push_eh $P980
+.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
.lex "self", self
- .lex "$/", param_981
+ .lex "$/", param_978
+.annotate 'line', 245
+ new $P979, "Undef"
+ .lex "$past", $P979
.annotate 'line', 246
- new $P982, "Undef"
- .lex "$past", $P982
-.annotate 'line', 247
+ find_lex $P982, "$/"
+ unless_null $P982, vivify_257
+ $P982 = root_new ['parrot';'Hash']
+ vivify_257:
+ set $P983, $P982["key"]
+ unless_null $P983, vivify_258
+ new $P983, "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"
find_lex $P985, "$/"
- unless_null $P985, vivify_247
+ unless_null $P985, vivify_259
$P985 = root_new ['parrot';'Hash']
- vivify_247:
+ vivify_259:
set $P986, $P985["key"]
- unless_null $P986, vivify_248
- new $P986, "Undef"
- vivify_248:
- if $P986, if_984
- new $P994, "Integer"
- assign $P994, 0
- set $P983, $P994
- goto if_984_end
- if_984:
- get_hll_global $P987, ["PAST"], "Regex"
- find_lex $P988, "$/"
- unless_null $P988, vivify_249
- $P988 = root_new ['parrot';'Hash']
- vivify_249:
- set $P989, $P988["key"]
- unless_null $P989, vivify_250
- $P989 = root_new ['parrot';'ResizablePMCArray']
- vivify_250:
- set $P990, $P989[0]
- unless_null $P990, vivify_251
- new $P990, "Undef"
- vivify_251:
- set $S991, $P990
+ unless_null $P986, vivify_260
+ $P986 = root_new ['parrot';'ResizablePMCArray']
+ 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, "$/"
- $P993 = $P987."new"($S991, "reduce" :named("pasttype"), $P992 :named("node"))
- set $P983, $P993
- if_984_end:
- store_lex "$past", $P983
-.annotate 'line', 249
- find_lex $P995, "$/"
- find_lex $P996, "$past"
- $P997 = $P995."!make"($P996)
-.annotate 'line', 245
- .return ($P997)
- control_979:
+ find_lex $P993, "$past"
+ $P994 = $P992."!make"($P993)
+.annotate 'line', 244
+ .return ($P994)
+ control_976:
.local pmc exception
.get_results (exception)
- getattribute $P998, exception, "payload"
- .return ($P998)
+ getattribute $P995, exception, "payload"
+ .return ($P995)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<var>" :subid("63_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1002
-.annotate 'line', 252
- new $P1001, 'ExceptionHandler'
- set_addr $P1001, control_1000
- $P1001."handle_types"(.CONTROL_RETURN)
- push_eh $P1001
+.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
.lex "self", self
- .lex "$/", param_1002
-.annotate 'line', 253
- new $P1003, "Undef"
- .lex "$past", $P1003
-.annotate 'line', 254
- new $P1004, "Undef"
- .lex "$name", $P1004
+ .lex "$/", param_999
.annotate 'line', 252
- find_lex $P1005, "$past"
-.annotate 'line', 254
- find_lex $P1008, "$/"
- unless_null $P1008, vivify_252
- $P1008 = root_new ['parrot';'Hash']
- vivify_252:
- set $P1009, $P1008["pos"]
- unless_null $P1009, vivify_253
- new $P1009, "Undef"
- vivify_253:
- if $P1009, if_1007
- find_lex $P1013, "$/"
- unless_null $P1013, vivify_254
- $P1013 = root_new ['parrot';'Hash']
- vivify_254:
- set $P1014, $P1013["name"]
- unless_null $P1014, vivify_255
- new $P1014, "Undef"
- vivify_255:
- set $S1015, $P1014
- new $P1006, 'String'
- set $P1006, $S1015
- goto if_1007_end
- if_1007:
+ 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']
+ vivify_262:
+ set $P1006, $P1005["pos"]
+ unless_null $P1006, vivify_263
+ new $P1006, "Undef"
+ vivify_263:
+ if $P1006, if_1004
find_lex $P1010, "$/"
- unless_null $P1010, vivify_256
+ unless_null $P1010, vivify_264
$P1010 = root_new ['parrot';'Hash']
- vivify_256:
- set $P1011, $P1010["pos"]
- unless_null $P1011, vivify_257
+ vivify_264:
+ set $P1011, $P1010["name"]
+ unless_null $P1011, vivify_265
new $P1011, "Undef"
- vivify_257:
- set $N1012, $P1011
- new $P1006, 'Float'
- set $P1006, $N1012
- if_1007_end:
- store_lex "$name", $P1006
+ 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']
+ 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 $P1017, "$/"
- unless_null $P1017, vivify_258
- $P1017 = root_new ['parrot';'Hash']
- vivify_258:
- set $P1018, $P1017["quantified_atom"]
- unless_null $P1018, vivify_259
+ 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_259:
- if $P1018, if_1016
-.annotate 'line', 266
- get_hll_global $P1047, ["PAST"], "Regex"
- find_lex $P1048, "$name"
- find_lex $P1049, "$/"
- $P1050 = $P1047."new"("!BACKREF", $P1048, "subrule" :named("pasttype"), "method" :named("subtype"), $P1049 :named("node"))
- store_lex "$past", $P1050
-.annotate 'line', 265
- goto if_1016_end
- if_1016:
+ vivify_272:
+ $P1019 = $P1018."ast"()
+ store_lex "$past", $P1019
.annotate 'line', 256
- find_lex $P1019, "$/"
- unless_null $P1019, vivify_260
- $P1019 = root_new ['parrot';'Hash']
- vivify_260:
- set $P1020, $P1019["quantified_atom"]
- unless_null $P1020, vivify_261
- $P1020 = root_new ['parrot';'ResizablePMCArray']
- vivify_261:
- set $P1021, $P1020[0]
- unless_null $P1021, vivify_262
- new $P1021, "Undef"
- vivify_262:
- $P1022 = $P1021."ast"()
- store_lex "$past", $P1022
-.annotate 'line', 257
+ 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"
- $S1027 = $P1026."pasttype"()
- iseq $I1028, $S1027, "quant"
- if $I1028, if_1025
- new $P1024, 'Integer'
- set $P1024, $I1028
- goto if_1025_end
- if_1025:
- find_lex $P1029, "$past"
- unless_null $P1029, vivify_263
- $P1029 = root_new ['parrot';'ResizablePMCArray']
- vivify_263:
- set $P1030, $P1029[0]
- unless_null $P1030, vivify_264
- new $P1030, "Undef"
- vivify_264:
- $S1031 = $P1030."pasttype"()
- iseq $I1032, $S1031, "subrule"
- new $P1024, 'Integer'
- set $P1024, $I1032
- if_1025_end:
- if $P1024, if_1023
-.annotate 'line', 260
- find_lex $P1037, "$past"
- $S1038 = $P1037."pasttype"()
- iseq $I1039, $S1038, "subrule"
- if $I1039, if_1036
-.annotate 'line', 262
- get_hll_global $P1042, ["PAST"], "Regex"
- find_lex $P1043, "$past"
- find_lex $P1044, "$name"
- find_lex $P1045, "$/"
- $P1046 = $P1042."new"($P1043, $P1044 :named("name"), "subcapture" :named("pasttype"), $P1045 :named("node"))
- store_lex "$past", $P1046
+ 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
- goto if_1036_end
- if_1036:
+ 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
- find_lex $P1040, "$past"
- find_lex $P1041, "$name"
- "subrule_alias"($P1040, $P1041)
- if_1036_end:
- goto if_1023_end
- if_1023:
-.annotate 'line', 258
- find_lex $P1033, "$past"
- unless_null $P1033, vivify_265
- $P1033 = root_new ['parrot';'ResizablePMCArray']
- vivify_265:
- set $P1034, $P1033[0]
- unless_null $P1034, vivify_266
- new $P1034, "Undef"
- vivify_266:
- find_lex $P1035, "$name"
- "subrule_alias"($P1034, $P1035)
- if_1023_end:
- if_1016_end:
-.annotate 'line', 269
- find_lex $P1051, "$/"
- find_lex $P1052, "$past"
- $P1053 = $P1051."!make"($P1052)
-.annotate 'line', 252
- .return ($P1053)
- control_1000:
+ 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:
.local pmc exception
.get_results (exception)
- getattribute $P1054, exception, "payload"
- .return ($P1054)
+ getattribute $P1053, exception, "payload"
+ .return ($P1053)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "metachar:sym<PIR>" :subid("64_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1058
-.annotate 'line', 272
- new $P1057, 'ExceptionHandler'
- set_addr $P1057, control_1056
- $P1057."handle_types"(.CONTROL_RETURN)
- push_eh $P1057
+.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_1058
-.annotate 'line', 273
- find_lex $P1059, "$/"
- get_hll_global $P1060, ["PAST"], "Regex"
-.annotate 'line', 274
- get_hll_global $P1061, ["PAST"], "Op"
- find_lex $P1062, "$/"
- unless_null $P1062, vivify_267
- $P1062 = root_new ['parrot';'Hash']
- vivify_267:
- set $P1063, $P1062["pir"]
- unless_null $P1063, vivify_268
- new $P1063, "Undef"
- vivify_268:
- set $S1064, $P1063
- $P1065 = $P1061."new"($S1064 :named("inline"), "inline" :named("pasttype"))
- find_lex $P1066, "$/"
- $P1067 = $P1060."new"($P1065, "pastnode" :named("pasttype"), $P1066 :named("node"))
+ .lex "$/", param_1057
+.annotate 'line', 272
+ find_lex $P1058, "$/"
+ get_hll_global $P1059, ["PAST"], "Regex"
.annotate 'line', 273
- $P1068 = $P1059."!make"($P1067)
+ 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
- .return ($P1068)
- control_1056:
+ $P1067 = $P1058."!make"($P1066)
+.annotate 'line', 271
+ .return ($P1067)
+ control_1055:
.local pmc exception
.get_results (exception)
- getattribute $P1069, exception, "payload"
- .return ($P1069)
+ getattribute $P1068, exception, "payload"
+ .return ($P1068)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<w>" :subid("65_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1073
-.annotate 'line', 280
- new $P1072, 'ExceptionHandler'
- set_addr $P1072, control_1071
- $P1072."handle_types"(.CONTROL_RETURN)
- push_eh $P1072
+.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_1073
+ .lex "$/", param_1072
+.annotate 'line', 280
+ new $P1073, "Undef"
+ .lex "$subtype", $P1073
.annotate 'line', 281
new $P1074, "Undef"
- .lex "$subtype", $P1074
-.annotate 'line', 282
- new $P1075, "Undef"
- .lex "$past", $P1075
+ .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"
+ 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']
+ vivify_281:
+ set $P1083, $P1082["sym"]
+ unless_null $P1083, vivify_282
+ new $P1083, "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
- find_lex $P1078, "$/"
- unless_null $P1078, vivify_269
- $P1078 = root_new ['parrot';'Hash']
- vivify_269:
- set $P1079, $P1078["sym"]
- unless_null $P1079, vivify_270
- new $P1079, "Undef"
- vivify_270:
- set $S1080, $P1079
- iseq $I1081, $S1080, "n"
- if $I1081, if_1077
- find_lex $P1083, "$/"
- unless_null $P1083, vivify_271
- $P1083 = root_new ['parrot';'Hash']
- vivify_271:
- set $P1084, $P1083["sym"]
- unless_null $P1084, vivify_272
- new $P1084, "Undef"
- vivify_272:
- set $S1085, $P1084
- new $P1076, 'String'
- set $P1076, $S1085
- goto if_1077_end
- if_1077:
- new $P1082, "String"
- assign $P1082, "nl"
- set $P1076, $P1082
- if_1077_end:
- store_lex "$subtype", $P1076
+ 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
.annotate 'line', 282
- get_hll_global $P1086, ["PAST"], "Regex"
- find_lex $P1087, "$subtype"
- find_lex $P1088, "$/"
- $P1089 = $P1086."new"("charclass" :named("pasttype"), $P1087 :named("subtype"), $P1088 :named("node"))
- store_lex "$past", $P1089
-.annotate 'line', 283
- find_lex $P1090, "$/"
- find_lex $P1091, "$past"
- $P1092 = $P1090."!make"($P1091)
-.annotate 'line', 280
- .return ($P1092)
- control_1071:
+ find_lex $P1089, "$/"
+ find_lex $P1090, "$past"
+ $P1091 = $P1089."!make"($P1090)
+.annotate 'line', 279
+ .return ($P1091)
+ control_1070:
.local pmc exception
.get_results (exception)
- getattribute $P1093, exception, "payload"
- .return ($P1093)
+ getattribute $P1092, exception, "payload"
+ .return ($P1092)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<b>" :subid("66_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1097
-.annotate 'line', 286
- new $P1096, 'ExceptionHandler'
- set_addr $P1096, control_1095
- $P1096."handle_types"(.CONTROL_RETURN)
- push_eh $P1096
+.sub "backslash:sym<b>" :subid("65_1280467473.99327") :method :outer("11_1280467473.99327")
+ .param pmc param_1096
+.annotate 'line', 285
+ new $P1095, 'ExceptionHandler'
+ set_addr $P1095, control_1094
+ $P1095."handle_types"(.CONTROL_RETURN)
+ push_eh $P1095
.lex "self", self
- .lex "$/", param_1097
-.annotate 'line', 287
- new $P1098, "Undef"
- .lex "$past", $P1098
- get_hll_global $P1099, ["PAST"], "Regex"
-.annotate 'line', 288
- find_lex $P1100, "$/"
- unless_null $P1100, vivify_273
- $P1100 = root_new ['parrot';'Hash']
- vivify_273:
- set $P1101, $P1100["sym"]
- unless_null $P1101, vivify_274
- new $P1101, "Undef"
- vivify_274:
- set $S1102, $P1101
- iseq $I1103, $S1102, "B"
- find_lex $P1104, "$/"
- $P1105 = $P1099."new"("\b", "enumcharlist" :named("pasttype"), $I1103 :named("negate"), $P1104 :named("node"))
+ .lex "$/", param_1096
+.annotate 'line', 286
+ new $P1097, "Undef"
+ .lex "$past", $P1097
+ get_hll_global $P1098, ["PAST"], "Regex"
.annotate 'line', 287
- store_lex "$past", $P1105
-.annotate 'line', 289
- find_lex $P1106, "$/"
- find_lex $P1107, "$past"
- $P1108 = $P1106."!make"($P1107)
+ 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"))
.annotate 'line', 286
- .return ($P1108)
- control_1095:
+ store_lex "$past", $P1104
+.annotate 'line', 288
+ find_lex $P1105, "$/"
+ find_lex $P1106, "$past"
+ $P1107 = $P1105."!make"($P1106)
+.annotate 'line', 285
+ .return ($P1107)
+ control_1094:
.local pmc exception
.get_results (exception)
- getattribute $P1109, exception, "payload"
- .return ($P1109)
+ getattribute $P1108, exception, "payload"
+ .return ($P1108)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<e>" :subid("67_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1113
-.annotate 'line', 292
- new $P1112, 'ExceptionHandler'
- set_addr $P1112, control_1111
- $P1112."handle_types"(.CONTROL_RETURN)
- push_eh $P1112
+.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_1113
-.annotate 'line', 293
- new $P1114, "Undef"
- .lex "$past", $P1114
- get_hll_global $P1115, ["PAST"], "Regex"
-.annotate 'line', 294
- find_lex $P1116, "$/"
- unless_null $P1116, vivify_275
- $P1116 = root_new ['parrot';'Hash']
- vivify_275:
- set $P1117, $P1116["sym"]
- unless_null $P1117, vivify_276
- new $P1117, "Undef"
- vivify_276:
- set $S1118, $P1117
- iseq $I1119, $S1118, "E"
- find_lex $P1120, "$/"
- $P1121 = $P1115."new"("\e", "enumcharlist" :named("pasttype"), $I1119 :named("negate"), $P1120 :named("node"))
+ .lex "$/", param_1112
+.annotate 'line', 292
+ new $P1113, "Undef"
+ .lex "$past", $P1113
+ get_hll_global $P1114, ["PAST"], "Regex"
.annotate 'line', 293
- store_lex "$past", $P1121
-.annotate 'line', 295
- find_lex $P1122, "$/"
- find_lex $P1123, "$past"
- $P1124 = $P1122."!make"($P1123)
+ 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
- .return ($P1124)
- control_1111:
+ store_lex "$past", $P1120
+.annotate 'line', 294
+ find_lex $P1121, "$/"
+ find_lex $P1122, "$past"
+ $P1123 = $P1121."!make"($P1122)
+.annotate 'line', 291
+ .return ($P1123)
+ control_1110:
.local pmc exception
.get_results (exception)
- getattribute $P1125, exception, "payload"
- .return ($P1125)
+ getattribute $P1124, exception, "payload"
+ .return ($P1124)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<f>" :subid("68_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1129
-.annotate 'line', 298
- new $P1128, 'ExceptionHandler'
- set_addr $P1128, control_1127
- $P1128."handle_types"(.CONTROL_RETURN)
- push_eh $P1128
+.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_1129
-.annotate 'line', 299
- new $P1130, "Undef"
- .lex "$past", $P1130
- get_hll_global $P1131, ["PAST"], "Regex"
-.annotate 'line', 300
- find_lex $P1132, "$/"
- unless_null $P1132, vivify_277
- $P1132 = root_new ['parrot';'Hash']
- vivify_277:
- set $P1133, $P1132["sym"]
- unless_null $P1133, vivify_278
- new $P1133, "Undef"
- vivify_278:
- set $S1134, $P1133
- iseq $I1135, $S1134, "F"
- find_lex $P1136, "$/"
- $P1137 = $P1131."new"("\f", "enumcharlist" :named("pasttype"), $I1135 :named("negate"), $P1136 :named("node"))
+ .lex "$/", param_1128
+.annotate 'line', 298
+ new $P1129, "Undef"
+ .lex "$past", $P1129
+ get_hll_global $P1130, ["PAST"], "Regex"
.annotate 'line', 299
- store_lex "$past", $P1137
-.annotate 'line', 301
- find_lex $P1138, "$/"
- find_lex $P1139, "$past"
- $P1140 = $P1138."!make"($P1139)
+ 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
- .return ($P1140)
- control_1127:
+ store_lex "$past", $P1136
+.annotate 'line', 300
+ find_lex $P1137, "$/"
+ find_lex $P1138, "$past"
+ $P1139 = $P1137."!make"($P1138)
+.annotate 'line', 297
+ .return ($P1139)
+ control_1126:
.local pmc exception
.get_results (exception)
- getattribute $P1141, exception, "payload"
- .return ($P1141)
+ getattribute $P1140, exception, "payload"
+ .return ($P1140)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<h>" :subid("69_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1145
-.annotate 'line', 304
- new $P1144, 'ExceptionHandler'
- set_addr $P1144, control_1143
- $P1144."handle_types"(.CONTROL_RETURN)
- push_eh $P1144
+.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_1145
-.annotate 'line', 305
- new $P1146, "Undef"
- .lex "$past", $P1146
- get_hll_global $P1147, ["PAST"], "Regex"
-.annotate 'line', 306
- find_lex $P1148, "$/"
- unless_null $P1148, vivify_279
- $P1148 = root_new ['parrot';'Hash']
- vivify_279:
- set $P1149, $P1148["sym"]
- unless_null $P1149, vivify_280
- new $P1149, "Undef"
- vivify_280:
- set $S1150, $P1149
- iseq $I1151, $S1150, "H"
- find_lex $P1152, "$/"
- $P1153 = $P1147."new"(unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", "enumcharlist" :named("pasttype"), $I1151 :named("negate"), $P1152 :named("node"))
+ .lex "$/", param_1144
+.annotate 'line', 304
+ new $P1145, "Undef"
+ .lex "$past", $P1145
+ get_hll_global $P1146, ["PAST"], "Regex"
.annotate 'line', 305
- store_lex "$past", $P1153
-.annotate 'line', 307
- find_lex $P1154, "$/"
- find_lex $P1155, "$past"
- $P1156 = $P1154."!make"($P1155)
+ 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
- .return ($P1156)
- control_1143:
+ store_lex "$past", $P1152
+.annotate 'line', 306
+ find_lex $P1153, "$/"
+ find_lex $P1154, "$past"
+ $P1155 = $P1153."!make"($P1154)
+.annotate 'line', 303
+ .return ($P1155)
+ control_1142:
.local pmc exception
.get_results (exception)
- getattribute $P1157, exception, "payload"
- .return ($P1157)
+ getattribute $P1156, exception, "payload"
+ .return ($P1156)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<r>" :subid("70_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1161
-.annotate 'line', 310
- new $P1160, 'ExceptionHandler'
- set_addr $P1160, control_1159
- $P1160."handle_types"(.CONTROL_RETURN)
- push_eh $P1160
+.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_1161
-.annotate 'line', 311
- new $P1162, "Undef"
- .lex "$past", $P1162
- get_hll_global $P1163, ["PAST"], "Regex"
-.annotate 'line', 312
- find_lex $P1164, "$/"
- unless_null $P1164, vivify_281
- $P1164 = root_new ['parrot';'Hash']
- vivify_281:
- set $P1165, $P1164["sym"]
- unless_null $P1165, vivify_282
- new $P1165, "Undef"
- vivify_282:
- set $S1166, $P1165
- iseq $I1167, $S1166, "R"
- find_lex $P1168, "$/"
- $P1169 = $P1163."new"("\r", "enumcharlist" :named("pasttype"), $I1167 :named("negate"), $P1168 :named("node"))
+ .lex "$/", param_1160
+.annotate 'line', 310
+ new $P1161, "Undef"
+ .lex "$past", $P1161
+ get_hll_global $P1162, ["PAST"], "Regex"
.annotate 'line', 311
- store_lex "$past", $P1169
-.annotate 'line', 313
- find_lex $P1170, "$/"
- find_lex $P1171, "$past"
- $P1172 = $P1170."!make"($P1171)
+ 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
- .return ($P1172)
- control_1159:
+ store_lex "$past", $P1168
+.annotate 'line', 312
+ find_lex $P1169, "$/"
+ find_lex $P1170, "$past"
+ $P1171 = $P1169."!make"($P1170)
+.annotate 'line', 309
+ .return ($P1171)
+ control_1158:
.local pmc exception
.get_results (exception)
- getattribute $P1173, exception, "payload"
- .return ($P1173)
+ getattribute $P1172, exception, "payload"
+ .return ($P1172)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<t>" :subid("71_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1177
-.annotate 'line', 316
- new $P1176, 'ExceptionHandler'
- set_addr $P1176, control_1175
- $P1176."handle_types"(.CONTROL_RETURN)
- push_eh $P1176
+.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_1177
-.annotate 'line', 317
- new $P1178, "Undef"
- .lex "$past", $P1178
- get_hll_global $P1179, ["PAST"], "Regex"
-.annotate 'line', 318
- find_lex $P1180, "$/"
- unless_null $P1180, vivify_283
- $P1180 = root_new ['parrot';'Hash']
- vivify_283:
- set $P1181, $P1180["sym"]
- unless_null $P1181, vivify_284
- new $P1181, "Undef"
- vivify_284:
- set $S1182, $P1181
- iseq $I1183, $S1182, "T"
- find_lex $P1184, "$/"
- $P1185 = $P1179."new"("\t", "enumcharlist" :named("pasttype"), $I1183 :named("negate"), $P1184 :named("node"))
+ .lex "$/", param_1176
+.annotate 'line', 316
+ new $P1177, "Undef"
+ .lex "$past", $P1177
+ get_hll_global $P1178, ["PAST"], "Regex"
.annotate 'line', 317
- store_lex "$past", $P1185
-.annotate 'line', 319
- find_lex $P1186, "$/"
- find_lex $P1187, "$past"
- $P1188 = $P1186."!make"($P1187)
+ 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
- .return ($P1188)
- control_1175:
+ store_lex "$past", $P1184
+.annotate 'line', 318
+ find_lex $P1185, "$/"
+ find_lex $P1186, "$past"
+ $P1187 = $P1185."!make"($P1186)
+.annotate 'line', 315
+ .return ($P1187)
+ control_1174:
.local pmc exception
.get_results (exception)
- getattribute $P1189, exception, "payload"
- .return ($P1189)
+ getattribute $P1188, exception, "payload"
+ .return ($P1188)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<v>" :subid("72_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1193
+.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
+ .lex "self", self
+ .lex "$/", param_1192
.annotate 'line', 322
- new $P1192, 'ExceptionHandler'
- set_addr $P1192, control_1191
- $P1192."handle_types"(.CONTROL_RETURN)
- push_eh $P1192
- .lex "self", self
- .lex "$/", param_1193
-.annotate 'line', 323
- new $P1194, "Undef"
- .lex "$past", $P1194
- get_hll_global $P1195, ["PAST"], "Regex"
-.annotate 'line', 325
- find_lex $P1196, "$/"
- unless_null $P1196, vivify_285
- $P1196 = root_new ['parrot';'Hash']
- vivify_285:
- set $P1197, $P1196["sym"]
- unless_null $P1197, vivify_286
- new $P1197, "Undef"
- vivify_286:
- set $S1198, $P1197
- iseq $I1199, $S1198, "V"
- find_lex $P1200, "$/"
- $P1201 = $P1195."new"(unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", "enumcharlist" :named("pasttype"), $I1199 :named("negate"), $P1200 :named("node"))
-.annotate 'line', 323
- store_lex "$past", $P1201
-.annotate 'line', 326
- find_lex $P1202, "$/"
- find_lex $P1203, "$past"
- $P1204 = $P1202."!make"($P1203)
+ new $P1193, "Undef"
+ .lex "$past", $P1193
+ get_hll_global $P1194, ["PAST"], "Regex"
+.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
- .return ($P1204)
- control_1191:
+ store_lex "$past", $P1200
+.annotate 'line', 325
+ find_lex $P1201, "$/"
+ find_lex $P1202, "$past"
+ $P1203 = $P1201."!make"($P1202)
+.annotate 'line', 321
+ .return ($P1203)
+ control_1190:
.local pmc exception
.get_results (exception)
- getattribute $P1205, exception, "payload"
- .return ($P1205)
+ getattribute $P1204, exception, "payload"
+ .return ($P1204)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<o>" :subid("73_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1209
-.annotate 'line', 329
- new $P1208, 'ExceptionHandler'
- set_addr $P1208, control_1207
- $P1208."handle_types"(.CONTROL_RETURN)
- push_eh $P1208
+.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_1209
+ .lex "$/", param_1208
+.annotate 'line', 329
+ new $P1209, "Undef"
+ .lex "$octlit", $P1209
.annotate 'line', 330
- new $P1210, "Undef"
- .lex "$octlit", $P1210
-.annotate 'line', 331
- get_hll_global $P1211, ["HLL";"Actions"], "ints_to_string"
- find_lex $P1214, "$/"
- unless_null $P1214, vivify_287
- $P1214 = root_new ['parrot';'Hash']
- vivify_287:
- set $P1215, $P1214["octint"]
- unless_null $P1215, vivify_288
- new $P1215, "Undef"
- vivify_288:
- unless $P1215, unless_1213
- set $P1212, $P1215
- goto unless_1213_end
- unless_1213:
- find_lex $P1216, "$/"
- unless_null $P1216, vivify_289
+ 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_289:
- set $P1217, $P1216["octints"]
- unless_null $P1217, vivify_290
- $P1217 = root_new ['parrot';'Hash']
- vivify_290:
- set $P1218, $P1217["octint"]
- unless_null $P1218, vivify_291
- new $P1218, "Undef"
- vivify_291:
- set $P1212, $P1218
- unless_1213_end:
- $P1219 = $P1211($P1212)
- store_lex "$octlit", $P1219
-.annotate 'line', 332
- find_lex $P1220, "$/"
- find_lex $P1223, "$/"
- unless_null $P1223, vivify_292
- $P1223 = root_new ['parrot';'Hash']
- vivify_292:
- set $P1224, $P1223["sym"]
- unless_null $P1224, vivify_293
- new $P1224, "Undef"
- vivify_293:
- set $S1225, $P1224
- iseq $I1226, $S1225, "O"
- if $I1226, if_1222
-.annotate 'line', 335
- get_hll_global $P1231, ["PAST"], "Regex"
- find_lex $P1232, "$octlit"
- find_lex $P1233, "$/"
- $P1234 = $P1231."new"($P1232, "literal" :named("pasttype"), $P1233 :named("node"))
- set $P1221, $P1234
+ 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
+.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"
+ 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:
.annotate 'line', 332
- goto if_1222_end
- if_1222:
-.annotate 'line', 333
- get_hll_global $P1227, ["PAST"], "Regex"
- find_lex $P1228, "$octlit"
- find_lex $P1229, "$/"
- $P1230 = $P1227."new"($P1228, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1229 :named("node"))
- set $P1221, $P1230
- if_1222_end:
- $P1235 = $P1220."!make"($P1221)
-.annotate 'line', 329
- .return ($P1235)
- control_1207:
+ 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:
.local pmc exception
.get_results (exception)
- getattribute $P1236, exception, "payload"
- .return ($P1236)
+ getattribute $P1235, exception, "payload"
+ .return ($P1235)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<x>" :subid("74_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1240
-.annotate 'line', 338
- new $P1239, 'ExceptionHandler'
- set_addr $P1239, control_1238
- $P1239."handle_types"(.CONTROL_RETURN)
- push_eh $P1239
+.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
.lex "self", self
- .lex "$/", param_1240
+ .lex "$/", param_1239
+.annotate 'line', 338
+ new $P1240, "Undef"
+ .lex "$hexlit", $P1240
.annotate 'line', 339
- new $P1241, "Undef"
- .lex "$hexlit", $P1241
-.annotate 'line', 340
- get_hll_global $P1242, ["HLL";"Actions"], "ints_to_string"
- find_lex $P1245, "$/"
- unless_null $P1245, vivify_294
- $P1245 = root_new ['parrot';'Hash']
- vivify_294:
- set $P1246, $P1245["hexint"]
- unless_null $P1246, vivify_295
- new $P1246, "Undef"
- vivify_295:
- unless $P1246, unless_1244
- set $P1243, $P1246
- goto unless_1244_end
- unless_1244:
- find_lex $P1247, "$/"
- unless_null $P1247, vivify_296
+ 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"
+ 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']
+ vivify_306:
+ set $P1247, $P1246["hexints"]
+ unless_null $P1247, vivify_307
$P1247 = root_new ['parrot';'Hash']
- vivify_296:
- set $P1248, $P1247["hexints"]
- unless_null $P1248, vivify_297
- $P1248 = root_new ['parrot';'Hash']
- vivify_297:
- set $P1249, $P1248["hexint"]
- unless_null $P1249, vivify_298
- new $P1249, "Undef"
- vivify_298:
- set $P1243, $P1249
- unless_1244_end:
- $P1250 = $P1242($P1243)
- store_lex "$hexlit", $P1250
-.annotate 'line', 341
- find_lex $P1251, "$/"
- find_lex $P1254, "$/"
- unless_null $P1254, vivify_299
- $P1254 = root_new ['parrot';'Hash']
- vivify_299:
- set $P1255, $P1254["sym"]
- unless_null $P1255, vivify_300
- new $P1255, "Undef"
- vivify_300:
- set $S1256, $P1255
- iseq $I1257, $S1256, "X"
- if $I1257, if_1253
-.annotate 'line', 344
- get_hll_global $P1262, ["PAST"], "Regex"
- find_lex $P1263, "$hexlit"
- find_lex $P1264, "$/"
- $P1265 = $P1262."new"($P1263, "literal" :named("pasttype"), $P1264 :named("node"))
- set $P1252, $P1265
+ 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
- goto if_1253_end
- if_1253:
-.annotate 'line', 342
- get_hll_global $P1258, ["PAST"], "Regex"
- find_lex $P1259, "$hexlit"
- find_lex $P1260, "$/"
- $P1261 = $P1258."new"($P1259, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1260 :named("node"))
- set $P1252, $P1261
- if_1253_end:
- $P1266 = $P1251."!make"($P1252)
-.annotate 'line', 338
- .return ($P1266)
- control_1238:
+ 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:
.local pmc exception
.get_results (exception)
- getattribute $P1267, exception, "payload"
- .return ($P1267)
+ getattribute $P1266, exception, "payload"
+ .return ($P1266)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<c>" :subid("75_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1271
-.annotate 'line', 347
- new $P1270, 'ExceptionHandler'
- set_addr $P1270, control_1269
- $P1270."handle_types"(.CONTROL_RETURN)
- push_eh $P1270
- .lex "self", self
- .lex "$/", param_1271
-.annotate 'line', 348
- find_lex $P1272, "$/"
- get_hll_global $P1273, ["PAST"], "Regex"
- find_lex $P1274, "$/"
- unless_null $P1274, vivify_301
- $P1274 = root_new ['parrot';'Hash']
- vivify_301:
- set $P1275, $P1274["charspec"]
- unless_null $P1275, vivify_302
- new $P1275, "Undef"
- vivify_302:
- $P1276 = $P1275."ast"()
- find_lex $P1277, "$/"
- $P1278 = $P1273."new"($P1276, "literal" :named("pasttype"), $P1277 :named("node"))
- $P1279 = $P1272."!make"($P1278)
+.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
- .return ($P1279)
- control_1269:
+ find_lex $P1271, "$/"
+ get_hll_global $P1272, ["PAST"], "Regex"
+ find_lex $P1273, "$/"
+ unless_null $P1273, vivify_311
+ $P1273 = root_new ['parrot';'Hash']
+ vivify_311:
+ set $P1274, $P1273["charspec"]
+ unless_null $P1274, vivify_312
+ new $P1274, "Undef"
+ vivify_312:
+ $P1275 = $P1274."ast"()
+ find_lex $P1276, "$/"
+ $P1277 = $P1272."new"($P1275, "literal" :named("pasttype"), $P1276 :named("node"))
+ $P1278 = $P1271."!make"($P1277)
+.annotate 'line', 346
+ .return ($P1278)
+ control_1268:
.local pmc exception
.get_results (exception)
- getattribute $P1280, exception, "payload"
- .return ($P1280)
+ getattribute $P1279, exception, "payload"
+ .return ($P1279)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "backslash:sym<misc>" :subid("76_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1284
-.annotate 'line', 351
- new $P1283, 'ExceptionHandler'
- set_addr $P1283, control_1282
- $P1283."handle_types"(.CONTROL_RETURN)
- push_eh $P1283
+.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_1284
-.annotate 'line', 352
- new $P1285, "Undef"
- .lex "$past", $P1285
- get_hll_global $P1286, ["PAST"], "Regex"
- find_lex $P1287, "$/"
- set $S1288, $P1287
- find_lex $P1289, "$/"
- $P1290 = $P1286."new"($S1288, "literal" :named("pasttype"), $P1289 :named("node"))
- store_lex "$past", $P1290
-.annotate 'line', 353
- find_lex $P1291, "$/"
- find_lex $P1292, "$past"
- $P1293 = $P1291."!make"($P1292)
+ .lex "$/", param_1283
.annotate 'line', 351
- .return ($P1293)
- control_1282:
+ 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
+.annotate 'line', 352
+ find_lex $P1290, "$/"
+ find_lex $P1291, "$past"
+ $P1292 = $P1290."!make"($P1291)
+.annotate 'line', 350
+ .return ($P1292)
+ control_1281:
.local pmc exception
.get_results (exception)
- getattribute $P1294, exception, "payload"
- .return ($P1294)
+ getattribute $P1293, exception, "payload"
+ .return ($P1293)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "assertion:sym<?>" :subid("77_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1298
-.annotate 'line', 357
- new $P1297, 'ExceptionHandler'
- set_addr $P1297, control_1296
- $P1297."handle_types"(.CONTROL_RETURN)
- push_eh $P1297
+.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_1298
-.annotate 'line', 358
- new $P1299, "Undef"
- .lex "$past", $P1299
+ .lex "$/", param_1297
.annotate 'line', 357
- find_lex $P1300, "$past"
+ 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 $P1302, "$/"
- unless_null $P1302, vivify_303
- $P1302 = root_new ['parrot';'Hash']
- vivify_303:
- set $P1303, $P1302["assertion"]
- unless_null $P1303, vivify_304
- new $P1303, "Undef"
- vivify_304:
- if $P1303, if_1301
-.annotate 'line', 363
- new $P1308, "Integer"
- assign $P1308, 0
- store_lex "$past", $P1308
- goto if_1301_end
- if_1301:
+ 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
.annotate 'line', 360
- find_lex $P1304, "$/"
- unless_null $P1304, vivify_305
- $P1304 = root_new ['parrot';'Hash']
- vivify_305:
- set $P1305, $P1304["assertion"]
- unless_null $P1305, vivify_306
- new $P1305, "Undef"
- vivify_306:
- $P1306 = $P1305."ast"()
- store_lex "$past", $P1306
-.annotate 'line', 361
- find_lex $P1307, "$past"
- $P1307."subtype"("zerowidth")
- if_1301_end:
-.annotate 'line', 364
- find_lex $P1309, "$/"
- find_lex $P1310, "$past"
- $P1311 = $P1309."!make"($P1310)
-.annotate 'line', 357
- .return ($P1311)
- control_1296:
+ find_lex $P1306, "$past"
+ $P1306."subtype"("zerowidth")
+ if_1300_end:
+.annotate 'line', 363
+ find_lex $P1308, "$/"
+ find_lex $P1309, "$past"
+ $P1310 = $P1308."!make"($P1309)
+.annotate 'line', 356
+ .return ($P1310)
+ control_1295:
.local pmc exception
.get_results (exception)
- getattribute $P1312, exception, "payload"
- .return ($P1312)
+ getattribute $P1311, exception, "payload"
+ .return ($P1311)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "assertion:sym<!>" :subid("78_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1316
-.annotate 'line', 367
- new $P1315, 'ExceptionHandler'
- set_addr $P1315, control_1314
- $P1315."handle_types"(.CONTROL_RETURN)
- push_eh $P1315
+.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_1316
-.annotate 'line', 368
- new $P1317, "Undef"
- .lex "$past", $P1317
+ .lex "$/", param_1315
.annotate 'line', 367
- find_lex $P1318, "$past"
-.annotate 'line', 369
- find_lex $P1320, "$/"
- unless_null $P1320, vivify_307
- $P1320 = root_new ['parrot';'Hash']
- vivify_307:
- set $P1321, $P1320["assertion"]
- unless_null $P1321, vivify_308
- new $P1321, "Undef"
- vivify_308:
- if $P1321, if_1319
-.annotate 'line', 375
- get_hll_global $P1330, ["PAST"], "Regex"
- find_lex $P1331, "$/"
- $P1332 = $P1330."new"("anchor" :named("pasttype"), "fail" :named("subtype"), $P1331 :named("node"))
- store_lex "$past", $P1332
+ new $P1316, "Undef"
+ .lex "$past", $P1316
+.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
- goto if_1319_end
- if_1319:
+ 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 $P1322, "$/"
- unless_null $P1322, vivify_309
- $P1322 = root_new ['parrot';'Hash']
- vivify_309:
- set $P1323, $P1322["assertion"]
- unless_null $P1323, vivify_310
- new $P1323, "Undef"
- vivify_310:
- $P1324 = $P1323."ast"()
- store_lex "$past", $P1324
-.annotate 'line', 371
+ find_lex $P1324, "$past"
find_lex $P1325, "$past"
- find_lex $P1326, "$past"
- $P1327 = $P1326."negate"()
- isfalse $I1328, $P1327
- $P1325."negate"($I1328)
-.annotate 'line', 372
- find_lex $P1329, "$past"
- $P1329."subtype"("zerowidth")
- if_1319_end:
-.annotate 'line', 377
- find_lex $P1333, "$/"
- find_lex $P1334, "$past"
- $P1335 = $P1333."!make"($P1334)
-.annotate 'line', 367
- .return ($P1335)
- control_1314:
+ $P1326 = $P1325."negate"()
+ isfalse $I1327, $P1326
+ $P1324."negate"($I1327)
+.annotate 'line', 371
+ 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:
.local pmc exception
.get_results (exception)
- getattribute $P1336, exception, "payload"
- .return ($P1336)
+ getattribute $P1335, exception, "payload"
+ .return ($P1335)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "assertion:sym<method>" :subid("79_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1340
-.annotate 'line', 380
- new $P1339, 'ExceptionHandler'
- set_addr $P1339, control_1338
- $P1339."handle_types"(.CONTROL_RETURN)
- push_eh $P1339
+.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
.lex "self", self
- .lex "$/", param_1340
+ .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
- new $P1341, "Undef"
- .lex "$past", $P1341
- find_lex $P1342, "$/"
- unless_null $P1342, vivify_311
- $P1342 = root_new ['parrot';'Hash']
- vivify_311:
- set $P1343, $P1342["assertion"]
- unless_null $P1343, vivify_312
- new $P1343, "Undef"
- vivify_312:
- $P1344 = $P1343."ast"()
- store_lex "$past", $P1344
+ find_lex $P1344, "$past"
+ $P1344."subtype"("method")
.annotate 'line', 382
find_lex $P1345, "$past"
- $P1345."subtype"("method")
+ $P1345."name"("")
.annotate 'line', 383
- find_lex $P1346, "$past"
- $P1346."name"("")
-.annotate 'line', 384
- find_lex $P1347, "$/"
- find_lex $P1348, "$past"
- $P1349 = $P1347."!make"($P1348)
-.annotate 'line', 380
- .return ($P1349)
- control_1338:
+ find_lex $P1346, "$/"
+ find_lex $P1347, "$past"
+ $P1348 = $P1346."!make"($P1347)
+.annotate 'line', 379
+ .return ($P1348)
+ control_1337:
.local pmc exception
.get_results (exception)
- getattribute $P1350, exception, "payload"
- .return ($P1350)
+ getattribute $P1349, exception, "payload"
+ .return ($P1349)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "assertion:sym<name>" :subid("80_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1354
-.annotate 'line', 387
- .const 'Sub' $P1412 = "82_1275811482.3686"
- capture_lex $P1412
- .const 'Sub' $P1376 = "81_1275811482.3686"
+.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 $P1353, 'ExceptionHandler'
- set_addr $P1353, control_1352
- $P1353."handle_types"(.CONTROL_RETURN)
- push_eh $P1353
+ new $P1352, 'ExceptionHandler'
+ set_addr $P1352, control_1351
+ $P1352."handle_types"(.CONTROL_RETURN)
+ push_eh $P1352
.lex "self", self
- .lex "$/", param_1354
+ .lex "$/", param_1353
+.annotate 'line', 387
+ new $P1354, "Undef"
+ .lex "$name", $P1354
.annotate 'line', 388
new $P1355, "Undef"
- .lex "$name", $P1355
+ .lex "$past", $P1355
+.annotate 'line', 387
+ find_lex $P1356, "$/"
+ unless_null $P1356, vivify_323
+ $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
- new $P1356, "Undef"
- .lex "$past", $P1356
-.annotate 'line', 388
- find_lex $P1357, "$/"
- unless_null $P1357, vivify_313
- $P1357 = root_new ['parrot';'Hash']
- vivify_313:
- set $P1358, $P1357["longname"]
- unless_null $P1358, vivify_314
- new $P1358, "Undef"
- vivify_314:
- set $S1359, $P1358
- new $P1360, 'String'
- set $P1360, $S1359
- store_lex "$name", $P1360
- find_lex $P1361, "$past"
-.annotate 'line', 390
- find_lex $P1363, "$/"
- unless_null $P1363, vivify_315
- $P1363 = root_new ['parrot';'Hash']
- vivify_315:
- set $P1364, $P1363["assertion"]
- unless_null $P1364, vivify_316
- new $P1364, "Undef"
- vivify_316:
- if $P1364, if_1362
-.annotate 'line', 394
+ 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
- get_hll_global $P1386, ["PAST"], "Regex"
- find_lex $P1387, "$name"
- find_lex $P1388, "$name"
- find_lex $P1389, "$/"
- $P1390 = $P1386."new"($P1387, $P1388 :named("name"), "subrule" :named("pasttype"), "capture" :named("subtype"), $P1389 :named("node"))
- store_lex "$past", $P1390
-.annotate 'line', 412
- find_lex $P1392, "$/"
- unless_null $P1392, vivify_317
- $P1392 = root_new ['parrot';'Hash']
- vivify_317:
- set $P1393, $P1392["nibbler"]
- unless_null $P1393, vivify_318
- new $P1393, "Undef"
- vivify_318:
- if $P1393, if_1391
-.annotate 'line', 415
- find_lex $P1401, "$/"
- unless_null $P1401, vivify_319
- $P1401 = root_new ['parrot';'Hash']
- vivify_319:
- set $P1402, $P1401["arglist"]
- unless_null $P1402, vivify_320
- new $P1402, "Undef"
- vivify_320:
- unless $P1402, if_1400_end
-.annotate 'line', 416
- find_lex $P1404, "$/"
- unless_null $P1404, vivify_321
- $P1404 = root_new ['parrot';'Hash']
- vivify_321:
- set $P1405, $P1404["arglist"]
- unless_null $P1405, vivify_322
- $P1405 = root_new ['parrot';'ResizablePMCArray']
- vivify_322:
- set $P1406, $P1405[0]
- unless_null $P1406, vivify_323
- new $P1406, "Undef"
- vivify_323:
- $P1407 = $P1406."ast"()
- $P1408 = $P1407."list"()
- defined $I1409, $P1408
- unless $I1409, for_undef_324
- iter $P1403, $P1408
- new $P1418, 'ExceptionHandler'
- set_addr $P1418, loop1417_handler
- $P1418."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P1418
- loop1417_test:
- unless $P1403, loop1417_done
- shift $P1410, $P1403
- loop1417_redo:
- .const 'Sub' $P1412 = "82_1275811482.3686"
- capture_lex $P1412
- $P1412($P1410)
- loop1417_next:
- goto loop1417_test
- loop1417_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1419, exception, 'type'
- eq $P1419, .CONTROL_LOOP_NEXT, loop1417_next
- eq $P1419, .CONTROL_LOOP_REDO, loop1417_redo
- loop1417_done:
+ 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"
+ vivify_328:
+ if $P1391, if_1389
+.annotate 'line', 413
+ find_lex $P1399, "$/"
+ unless_null $P1399, vivify_329
+ $P1399 = root_new ['parrot';'Hash']
+ vivify_329:
+ set $P1400, $P1399["arglist"]
+ unless_null $P1400, vivify_330
+ new $P1400, "Undef"
+ vivify_330:
+ unless $P1400, if_1398_end
+.annotate 'line', 414
+ find_lex $P1402, "$/"
+ unless_null $P1402, vivify_331
+ $P1402 = root_new ['parrot';'Hash']
+ vivify_331:
+ set $P1403, $P1402["arglist"]
+ unless_null $P1403, vivify_332
+ $P1403 = root_new ['parrot';'ResizablePMCArray']
+ 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_324:
- if_1400_end:
-.annotate 'line', 415
- goto if_1391_end
- if_1391:
+ for_undef_334:
+ if_1398_end:
.annotate 'line', 413
- find_lex $P1394, "$past"
- find_lex $P1395, "$/"
- unless_null $P1395, vivify_325
- $P1395 = root_new ['parrot';'Hash']
- vivify_325:
- set $P1396, $P1395["nibbler"]
- unless_null $P1396, vivify_326
- $P1396 = root_new ['parrot';'ResizablePMCArray']
- vivify_326:
- set $P1397, $P1396[0]
- unless_null $P1397, vivify_327
- new $P1397, "Undef"
- vivify_327:
- $P1398 = $P1397."ast"()
- $P1399 = "buildsub"($P1398)
- $P1394."push"($P1399)
- if_1391_end:
-.annotate 'line', 409
+ goto if_1389_end
+ if_1389:
+.annotate 'line', 411
+ find_lex $P1392, "$past"
+ find_lex $P1393, "$/"
+ unless_null $P1393, vivify_335
+ $P1393 = root_new ['parrot';'Hash']
+ vivify_335:
+ set $P1394, $P1393["nibbler"]
+ unless_null $P1394, vivify_336
+ $P1394 = root_new ['parrot';'ResizablePMCArray']
+ vivify_336:
+ set $P1395, $P1394[0]
+ unless_null $P1395, vivify_337
+ new $P1395, "Undef"
+ 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', 394
- .const 'Sub' $P1376 = "81_1275811482.3686"
+.annotate 'line', 393
+ .const 'Sub' $P1376 = "80_1280467473.99327"
capture_lex $P1376
$P1376()
if_1371_end:
- goto if_1362_end
- if_1362:
+ goto if_1361_end
+ if_1361:
+.annotate 'line', 390
+ find_lex $P1364, "$/"
+ unless_null $P1364, vivify_338
+ $P1364 = root_new ['parrot';'Hash']
+ vivify_338:
+ set $P1365, $P1364["assertion"]
+ unless_null $P1365, vivify_339
+ $P1365 = root_new ['parrot';'ResizablePMCArray']
+ vivify_339:
+ set $P1366, $P1365[0]
+ unless_null $P1366, vivify_340
+ new $P1366, "Undef"
+ vivify_340:
+ $P1367 = $P1366."ast"()
+ store_lex "$past", $P1367
.annotate 'line', 391
- find_lex $P1365, "$/"
- unless_null $P1365, vivify_328
- $P1365 = root_new ['parrot';'Hash']
- vivify_328:
- set $P1366, $P1365["assertion"]
- unless_null $P1366, vivify_329
- $P1366 = root_new ['parrot';'ResizablePMCArray']
- vivify_329:
- set $P1367, $P1366[0]
- unless_null $P1367, vivify_330
- new $P1367, "Undef"
- vivify_330:
- $P1368 = $P1367."ast"()
- store_lex "$past", $P1368
-.annotate 'line', 392
+ find_lex $P1368, "self"
find_lex $P1369, "$past"
find_lex $P1370, "$name"
- "subrule_alias"($P1369, $P1370)
- if_1362_end:
-.annotate 'line', 419
- find_lex $P1420, "$/"
- find_lex $P1421, "$past"
- $P1422 = $P1420."!make"($P1421)
-.annotate 'line', 387
- .return ($P1422)
- control_1352:
+ $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:
.local pmc exception
.get_results (exception)
- getattribute $P1423, exception, "payload"
- .return ($P1423)
+ getattribute $P1421, exception, "payload"
+ .return ($P1421)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1411" :anon :subid("82_1275811482.3686") :outer("80_1275811482.3686")
- .param pmc param_1413
-.annotate 'line', 416
- .lex "$_", param_1413
- find_lex $P1414, "$past"
- find_lex $P1415, "$_"
- $P1416 = $P1414."push"($P1415)
- .return ($P1416)
+.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)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1375" :anon :subid("81_1275811482.3686") :outer("80_1275811482.3686")
-.annotate 'line', 395
+.sub "_block1375" :anon :subid("80_1280467473.99327") :outer("79_1280467473.99327")
+.annotate 'line', 394
new $P1377, "Undef"
.lex "$regexsym", $P1377
@@ -11550,387 +11955,387 @@
$P1378 = box $S0
store_lex "$regexsym", $P1378
-.annotate 'line', 404
+.annotate 'line', 403
get_hll_global $P1379, ["PAST"], "Regex"
-.annotate 'line', 405
+.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', 404
+.annotate 'line', 403
store_lex "$past", $P1385
-.annotate 'line', 394
+.annotate 'line', 393
.return ($P1385)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "assertion:sym<[>" :subid("83_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1427
+.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
- .const 'Sub' $P1462 = "84_1275811482.3686"
- capture_lex $P1462
- new $P1426, 'ExceptionHandler'
- set_addr $P1426, control_1425
- $P1426."handle_types"(.CONTROL_RETURN)
- push_eh $P1426
- .lex "self", self
- .lex "$/", param_1427
-.annotate 'line', 423
+ new $P1427, "Undef"
+ .lex "$past", $P1427
+.annotate 'line', 431
new $P1428, "Undef"
- .lex "$clist", $P1428
-.annotate 'line', 424
+ .lex "$i", $P1428
+.annotate 'line', 432
new $P1429, "Undef"
- .lex "$past", $P1429
-.annotate 'line', 433
- new $P1430, "Undef"
- .lex "$i", $P1430
-.annotate 'line', 434
+ .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"
- .lex "$n", $P1431
-.annotate 'line', 423
- find_lex $P1432, "$/"
- unless_null $P1432, vivify_331
- $P1432 = root_new ['parrot';'Hash']
- vivify_331:
- set $P1433, $P1432["cclass_elem"]
- unless_null $P1433, vivify_332
+ 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_332:
- store_lex "$clist", $P1433
+ 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 $P1434, "$clist"
- unless_null $P1434, vivify_333
- $P1434 = root_new ['parrot';'ResizablePMCArray']
- vivify_333:
- set $P1435, $P1434[0]
- unless_null $P1435, vivify_334
- new $P1435, "Undef"
- vivify_334:
- $P1436 = $P1435."ast"()
- store_lex "$past", $P1436
+ find_lex $P1443, "$past"
+ $P1443."subtype"("zerowidth")
.annotate 'line', 425
- find_lex $P1440, "$past"
- $P1441 = $P1440."negate"()
- if $P1441, if_1439
- set $P1438, $P1441
- goto if_1439_end
- if_1439:
- find_lex $P1442, "$past"
- $S1443 = $P1442."pasttype"()
- iseq $I1444, $S1443, "subrule"
- new $P1438, 'Integer'
- set $P1438, $I1444
- if_1439_end:
- unless $P1438, if_1437_end
-.annotate 'line', 426
+ get_hll_global $P1444, ["PAST"], "Regex"
find_lex $P1445, "$past"
- $P1445."subtype"("zerowidth")
.annotate 'line', 427
get_hll_global $P1446, ["PAST"], "Regex"
- find_lex $P1447, "$past"
-.annotate 'line', 429
- get_hll_global $P1448, ["PAST"], "Regex"
- $P1449 = $P1448."new"("charclass" :named("pasttype"), "." :named("subtype"))
- find_lex $P1450, "$/"
- $P1451 = $P1446."new"($P1447, $P1449, $P1450 :named("node"))
-.annotate 'line', 427
- store_lex "$past", $P1451
- if_1437_end:
+ $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 $P1452, "Integer"
- assign $P1452, 1
- store_lex "$i", $P1452
-.annotate 'line', 434
- find_lex $P1453, "$clist"
- set $N1454, $P1453
- new $P1455, 'Float'
- set $P1455, $N1454
- store_lex "$n", $P1455
-.annotate 'line', 435
- new $P1486, 'ExceptionHandler'
- set_addr $P1486, loop1485_handler
- $P1486."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P1486
- loop1485_test:
- find_lex $P1456, "$i"
+ 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
- find_lex $P1458, "$n"
- set $N1459, $P1458
- islt $I1460, $N1457, $N1459
- unless $I1460, loop1485_done
- loop1485_redo:
- .const 'Sub' $P1462 = "84_1275811482.3686"
- capture_lex $P1462
- $P1462()
- loop1485_next:
- goto loop1485_test
- loop1485_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1487, exception, 'type'
- eq $P1487, .CONTROL_LOOP_NEXT, loop1485_next
- eq $P1487, .CONTROL_LOOP_REDO, loop1485_redo
- loop1485_done:
+ 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', 446
- find_lex $P1488, "$/"
- find_lex $P1489, "$past"
- $P1490 = $P1488."!make"($P1489)
-.annotate 'line', 422
- .return ($P1490)
- control_1425:
+.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 $P1491, exception, "payload"
- .return ($P1491)
+ getattribute $P1489, exception, "payload"
+ .return ($P1489)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1461" :anon :subid("84_1275811482.3686") :outer("83_1275811482.3686")
+.sub "_block1459" :anon :subid("83_1280467473.99327") :outer("82_1280467473.99327")
+.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
+ new $P1465, "Undef"
+ vivify_346:
+ $P1466 = $P1465."ast"()
+ store_lex "$ast", $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:
.annotate 'line', 436
- new $P1463, "Undef"
- .lex "$ast", $P1463
- find_lex $P1464, "$i"
- set $I1465, $P1464
- find_lex $P1466, "$clist"
- unless_null $P1466, vivify_335
- $P1466 = root_new ['parrot';'ResizablePMCArray']
- vivify_335:
- set $P1467, $P1466[$I1465]
- unless_null $P1467, vivify_336
- new $P1467, "Undef"
- vivify_336:
- $P1468 = $P1467."ast"()
- store_lex "$ast", $P1468
-.annotate 'line', 437
find_lex $P1470, "$ast"
- $P1471 = $P1470."negate"()
- if $P1471, if_1469
-.annotate 'line', 442
- get_hll_global $P1478, ["PAST"], "Regex"
- find_lex $P1479, "$past"
- find_lex $P1480, "$ast"
- find_lex $P1481, "$/"
- $P1482 = $P1478."new"($P1479, $P1480, "alt" :named("pasttype"), $P1481 :named("node"))
- store_lex "$past", $P1482
-.annotate 'line', 441
- goto if_1469_end
- if_1469:
-.annotate 'line', 438
+ $P1470."subtype"("zerowidth")
+.annotate 'line', 437
+ get_hll_global $P1471, ["PAST"], "Regex"
find_lex $P1472, "$ast"
- $P1472."subtype"("zerowidth")
-.annotate 'line', 439
- get_hll_global $P1473, ["PAST"], "Regex"
- find_lex $P1474, "$ast"
- find_lex $P1475, "$past"
- find_lex $P1476, "$/"
- $P1477 = $P1473."new"($P1474, $P1475, "concat" :named("pasttype"), $P1476 :named("node"))
- store_lex "$past", $P1477
- if_1469_end:
-.annotate 'line', 444
- find_lex $P1483, "$i"
- add $P1484, $P1483, 1
- store_lex "$i", $P1484
-.annotate 'line', 435
- .return ($P1484)
+ 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("85_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1495
-.annotate 'line', 449
- .const 'Sub' $P1520 = "87_1275811482.3686"
- capture_lex $P1520
- .const 'Sub' $P1504 = "86_1275811482.3686"
- capture_lex $P1504
- new $P1494, 'ExceptionHandler'
- set_addr $P1494, control_1493
- $P1494."handle_types"(.CONTROL_RETURN)
- push_eh $P1494
+.sub "cclass_elem" :subid("84_1280467473.99327") :method :outer("11_1280467473.99327")
+ .param pmc param_1493
+.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_1495
-.annotate 'line', 450
- new $P1496, "Undef"
- .lex "$str", $P1496
-.annotate 'line', 451
- new $P1497, "Undef"
- .lex "$past", $P1497
+ .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
- new $P1498, "String"
- assign $P1498, ""
- store_lex "$str", $P1498
- find_lex $P1499, "$past"
-.annotate 'line', 452
- find_lex $P1501, "$/"
- unless_null $P1501, vivify_337
- $P1501 = root_new ['parrot';'Hash']
- vivify_337:
- set $P1502, $P1501["name"]
- unless_null $P1502, vivify_338
- new $P1502, "Undef"
- vivify_338:
- if $P1502, if_1500
-.annotate 'line', 456
- find_lex $P1515, "$/"
- unless_null $P1515, vivify_339
- $P1515 = root_new ['parrot';'Hash']
- vivify_339:
- set $P1516, $P1515["charspec"]
- unless_null $P1516, vivify_340
- new $P1516, "Undef"
- vivify_340:
- defined $I1517, $P1516
- unless $I1517, for_undef_341
- iter $P1514, $P1516
- new $P1546, 'ExceptionHandler'
- set_addr $P1546, loop1545_handler
- $P1546."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
- push_eh $P1546
- loop1545_test:
- unless $P1514, loop1545_done
- shift $P1518, $P1514
- loop1545_redo:
- .const 'Sub' $P1520 = "87_1275811482.3686"
- capture_lex $P1520
- $P1520($P1518)
- loop1545_next:
- goto loop1545_test
- loop1545_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1547, exception, 'type'
- eq $P1547, .CONTROL_LOOP_NEXT, loop1545_next
- eq $P1547, .CONTROL_LOOP_REDO, loop1545_redo
- loop1545_done:
+ 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:
pop_eh
- for_undef_341:
+ 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
- get_hll_global $P1548, ["PAST"], "Regex"
- find_lex $P1549, "$str"
- find_lex $P1550, "$/"
- $P1551 = $P1548."new"($P1549, "enumcharlist" :named("pasttype"), $P1550 :named("node"))
- store_lex "$past", $P1551
-.annotate 'line', 455
- goto if_1500_end
- if_1500:
-.annotate 'line', 452
- .const 'Sub' $P1504 = "86_1275811482.3686"
- capture_lex $P1504
- $P1504()
- if_1500_end:
-.annotate 'line', 483
- find_lex $P1552, "$past"
- find_lex $P1553, "$/"
- unless_null $P1553, vivify_353
- $P1553 = root_new ['parrot';'Hash']
- vivify_353:
- set $P1554, $P1553["sign"]
- unless_null $P1554, vivify_354
- new $P1554, "Undef"
- vivify_354:
- set $S1555, $P1554
- iseq $I1556, $S1555, "-"
- $P1552."negate"($I1556)
-.annotate 'line', 484
- find_lex $P1557, "$/"
- find_lex $P1558, "$past"
- $P1559 = $P1557."!make"($P1558)
-.annotate 'line', 449
- .return ($P1559)
- control_1493:
+ 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:
.local pmc exception
.get_results (exception)
- getattribute $P1560, exception, "payload"
- .return ($P1560)
+ getattribute $P1558, exception, "payload"
+ .return ($P1558)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1519" :anon :subid("87_1275811482.3686") :outer("85_1275811482.3686")
- .param pmc param_1521
-.annotate 'line', 456
- .const 'Sub' $P1527 = "88_1275811482.3686"
- capture_lex $P1527
- .lex "$_", param_1521
-.annotate 'line', 457
- find_lex $P1524, "$_"
- unless_null $P1524, vivify_342
- $P1524 = root_new ['parrot';'ResizablePMCArray']
- vivify_342:
- set $P1525, $P1524[1]
- unless_null $P1525, vivify_343
- new $P1525, "Undef"
- vivify_343:
- if $P1525, if_1523
-.annotate 'line', 479
- find_lex $P1541, "$str"
- find_lex $P1542, "$_"
- unless_null $P1542, vivify_344
- $P1542 = root_new ['parrot';'ResizablePMCArray']
- vivify_344:
- set $P1543, $P1542[0]
- unless_null $P1543, vivify_345
- new $P1543, "Undef"
- vivify_345:
- concat $P1544, $P1541, $P1543
- store_lex "$str", $P1544
- set $P1522, $P1544
-.annotate 'line', 457
- goto if_1523_end
- if_1523:
- .const 'Sub' $P1527 = "88_1275811482.3686"
- capture_lex $P1527
- $P1540 = $P1527()
- set $P1522, $P1540
- if_1523_end:
-.annotate 'line', 456
- .return ($P1522)
+.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"
+ 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:
+.annotate 'line', 454
+ .return ($P1520)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1526" :anon :subid("88_1275811482.3686") :outer("87_1275811482.3686")
+.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 "$a", $P1528
-.annotate 'line', 459
- new $P1529, "Undef"
- .lex "$b", $P1529
-.annotate 'line', 460
+ .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"
- .lex "$c", $P1530
-.annotate 'line', 458
+ vivify_357:
+ store_lex "$a", $P1530
+.annotate 'line', 457
find_lex $P1531, "$_"
- unless_null $P1531, vivify_346
+ unless_null $P1531, vivify_358
$P1531 = root_new ['parrot';'ResizablePMCArray']
- vivify_346:
- set $P1532, $P1531[0]
- unless_null $P1532, vivify_347
- new $P1532, "Undef"
- vivify_347:
- store_lex "$a", $P1532
-.annotate 'line', 459
- find_lex $P1533, "$_"
- unless_null $P1533, vivify_348
- $P1533 = root_new ['parrot';'ResizablePMCArray']
- vivify_348:
- set $P1534, $P1533[1]
- unless_null $P1534, vivify_349
- $P1534 = root_new ['parrot';'ResizablePMCArray']
- vivify_349:
- set $P1535, $P1534[0]
- unless_null $P1535, vivify_350
- new $P1535, "Undef"
- vivify_350:
- store_lex "$b", $P1535
-.annotate 'line', 460
+ vivify_358:
+ set $P1532, $P1531[1]
+ unless_null $P1532, vivify_359
+ $P1532 = root_new ['parrot';'ResizablePMCArray']
+ vivify_359:
+ set $P1533, $P1532[0]
+ unless_null $P1533, vivify_360
+ new $P1533, "Undef"
+ vivify_360:
+ store_lex "$b", $P1533
+.annotate 'line', 458
$P0 = find_lex '$a'
$S0 = $P0
@@ -11946,161 +12351,255 @@
inc $I0
goto cclass_loop
cclass_done:
- $P1536 = box $S2
+ $P1534 = box $S2
- store_lex "$c", $P1536
-.annotate 'line', 477
- find_lex $P1537, "$str"
- find_lex $P1538, "$c"
- concat $P1539, $P1537, $P1538
- store_lex "$str", $P1539
-.annotate 'line', 457
- .return ($P1539)
+ 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)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1503" :anon :subid("86_1275811482.3686") :outer("85_1275811482.3686")
-.annotate 'line', 453
+.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"
- .lex "$name", $P1505
- find_lex $P1506, "$/"
- unless_null $P1506, vivify_351
- $P1506 = root_new ['parrot';'Hash']
- vivify_351:
- set $P1507, $P1506["name"]
- unless_null $P1507, vivify_352
- new $P1507, "Undef"
- vivify_352:
- set $S1508, $P1507
- new $P1509, 'String'
- set $P1509, $S1508
- store_lex "$name", $P1509
-.annotate 'line', 454
- get_hll_global $P1510, ["PAST"], "Regex"
- find_lex $P1511, "$name"
- find_lex $P1512, "$/"
- $P1513 = $P1510."new"($P1511, "subrule" :named("pasttype"), "method" :named("subtype"), $P1512 :named("node"))
- store_lex "$past", $P1513
+ vivify_362:
+ set $S1506, $P1505
+ new $P1507, 'String'
+ set $P1507, $S1506
+ store_lex "$name", $P1507
.annotate 'line', 452
- .return ($P1513)
+ 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)
.end
.namespace ["Regex";"P6Regex";"Actions"]
.include "except_types.pasm"
-.sub "mod_internal" :subid("89_1275811482.3686") :method :outer("11_1275811482.3686")
- .param pmc param_1564
-.annotate 'line', 487
- new $P1563, 'ExceptionHandler'
- set_addr $P1563, control_1562
- $P1563."handle_types"(.CONTROL_RETURN)
- push_eh $P1563
+.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_1564
-.annotate 'line', 488
- $P1565 = root_new ['parrot';'Hash']
- .lex "%mods", $P1565
-.annotate 'line', 489
- new $P1566, "Undef"
- .lex "$n", $P1566
-.annotate 'line', 488
- get_global $P1567, "@MODIFIERS"
- unless_null $P1567, vivify_355
- $P1567 = root_new ['parrot';'ResizablePMCArray']
- vivify_355:
- set $P1568, $P1567[0]
- unless_null $P1568, vivify_356
- new $P1568, "Undef"
- vivify_356:
- store_lex "%mods", $P1568
-.annotate 'line', 489
- find_lex $P1571, "$/"
- unless_null $P1571, vivify_357
- $P1571 = root_new ['parrot';'Hash']
- vivify_357:
- set $P1572, $P1571["n"]
- unless_null $P1572, vivify_358
- $P1572 = root_new ['parrot';'ResizablePMCArray']
- vivify_358:
- set $P1573, $P1572[0]
- unless_null $P1573, vivify_359
- new $P1573, "Undef"
- vivify_359:
- set $S1574, $P1573
- isgt $I1575, $S1574, ""
- if $I1575, if_1570
- new $P1580, "Integer"
- assign $P1580, 1
- set $P1569, $P1580
- goto if_1570_end
- if_1570:
- find_lex $P1576, "$/"
- unless_null $P1576, vivify_360
- $P1576 = root_new ['parrot';'Hash']
- vivify_360:
- set $P1577, $P1576["n"]
- unless_null $P1577, vivify_361
- $P1577 = root_new ['parrot';'ResizablePMCArray']
- vivify_361:
- set $P1578, $P1577[0]
- unless_null $P1578, vivify_362
- new $P1578, "Undef"
- vivify_362:
- set $N1579, $P1578
- new $P1569, 'Float'
- set $P1569, $N1579
- if_1570_end:
- store_lex "$n", $P1569
-.annotate 'line', 490
- find_lex $P1581, "$n"
- find_lex $P1582, "$/"
- unless_null $P1582, vivify_363
- $P1582 = root_new ['parrot';'Hash']
- vivify_363:
- set $P1583, $P1582["mod_ident"]
- unless_null $P1583, vivify_364
- $P1583 = root_new ['parrot';'Hash']
- vivify_364:
- set $P1584, $P1583["sym"]
- unless_null $P1584, vivify_365
- new $P1584, "Undef"
+ .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 $S1585, $P1584
- find_lex $P1586, "%mods"
- unless_null $P1586, vivify_366
- $P1586 = root_new ['parrot';'Hash']
- store_lex "%mods", $P1586
+ set $P1566, $P1565[0]
+ unless_null $P1566, vivify_366
+ new $P1566, "Undef"
vivify_366:
- set $P1586[$S1585], $P1581
-.annotate 'line', 491
- find_lex $P1587, "$/"
- $P1588 = $P1587."!make"(0)
+ store_lex "%mods", $P1566
.annotate 'line', 487
- .return ($P1588)
- control_1562:
+ 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"
+ vivify_375:
+ set $S1583, $P1582
+ find_lex $P1584, "%mods"
+ unless_null $P1584, vivify_376
+ $P1584 = root_new ['parrot';'Hash']
+ store_lex "%mods", $P1584
+ vivify_376:
+ set $P1584[$S1583], $P1579
+.annotate 'line', 489
+ find_lex $P1585, "$/"
+ $P1586 = $P1585."!make"(0)
+.annotate 'line', 485
+ .return ($P1586)
+ control_1560:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1587, exception, "payload"
+ .return ($P1587)
+.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)
+.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:
.local pmc exception
.get_results (exception)
- getattribute $P1589, exception, "payload"
- .return ($P1589)
+ getattribute $P1627, exception, "payload"
+ .return ($P1627)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1594" :load :anon :subid("90_1275811482.3686")
+.sub "_block1629" :load :anon :subid("91_1280467473.99327")
.annotate 'line', 4
- .const 'Sub' $P1596 = "11_1275811482.3686"
- $P1597 = $P1596()
- .return ($P1597)
+ .const 'Sub' $P1631 = "11_1280467473.99327"
+ $P1632 = $P1631()
+ .return ($P1632)
.end
.namespace []
-.sub "_block1600" :load :anon :subid("91_1275811482.3686")
+.sub "_block1635" :load :anon :subid("92_1280467473.99327")
.annotate 'line', 1
- .const 'Sub' $P1602 = "10_1275811482.3686"
- $P1603 = $P1602()
- .return ($P1603)
+ .const 'Sub' $P1637 = "10_1280467473.99327"
+ $P1638 = $P1637()
+ .return ($P1638)
.end
# .include 'src/cheats/p6regex-grammar.pir'
Modified: branches/gc_massacre/ext/nqp-rx/src/stage0/Regex-s0.pir
==============================================================================
--- branches/gc_massacre/ext/nqp-rx/src/stage0/Regex-s0.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/ext/nqp-rx/src/stage0/Regex-s0.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -42,7 +42,7 @@
load_bytecode 'P6object.pbc'
.local pmc p6meta
p6meta = new 'P6metaclass'
- $P0 = p6meta.'new_class'('Regex::Cursor', 'attr'=>'$!target $!from $!pos $!match $!names $!debug @!bstack @!cstack @!caparray')
+ $P0 = p6meta.'new_class'('Regex::Cursor', 'attr'=>'$!target $!from $!pos $!match $!names $!debug @!bstack @!cstack @!caparray &!regex')
$P0 = box 0
set_global '$!generation', $P0
$P0 = new ['Boolean']
@@ -135,6 +135,7 @@
caparray_int:
$I0 = subname
match[$I0] = arr
+ goto caparray_loop
caparray_done:
# If it's not a successful match, or if there are
@@ -232,6 +233,20 @@
.end
+=item next()
+
+Return the next match from a successful Cursor.
+
+=cut
+
+.sub 'next' :method
+ .local pmc cur, match
+ cur = self.'!cursor_next'()
+ match = cur.'MATCH'()
+ .return (match)
+.end
+
+
=item pos()
Return the cursor's current position.
@@ -319,6 +334,10 @@
parrotclass = getattribute $P0, 'parrotclass'
cur = new parrotclass
+ .local pmc regex
+ regex = getattribute self, '&!regex'
+ unless null regex goto cursor_restart
+
.local pmc from, target, debug
from = getattribute self, '$!pos'
@@ -330,7 +349,30 @@
debug = getattribute self, '$!debug'
setattribute cur, '$!debug', debug
- .return (cur, from, target)
+ .return (cur, from, target, 0)
+
+ cursor_restart:
+ .local pmc pos, cstack, bstack
+ from = getattribute self, '$!from'
+ target = getattribute self, '$!target'
+ debug = getattribute self, '$!debug'
+ cstack = getattribute self, '@!cstack'
+ bstack = getattribute self, '@!bstack'
+ pos = box CURSOR_FAIL
+
+ setattribute cur, '$!from', from
+ setattribute cur, '$!pos', pos
+ setattribute cur, '$!target', target
+ setattribute cur, '$!debug', debug
+ if null cstack goto cstack_done
+ cstack = clone cstack
+ setattribute cur, '@!cstack', cstack
+ cstack_done:
+ if null bstack goto bstack_done
+ bstack = clone bstack
+ setattribute cur, '@!bstack', bstack
+ bstack_done:
+ .return (cur, from, target, 1)
.end
@@ -376,6 +418,38 @@
.end
+=item !cursor_backtrack()
+
+Configure this cursor for backtracking via C<!cursor_next>.
+
+=cut
+
+.sub '!cursor_backtrack' :method
+ $P0 = getinterp
+ $P1 = $P0['sub';1]
+ setattribute self, '&!regex', $P1
+.end
+
+
+=item !cursor_next()
+
+Continue a regex match from where the current cursor left off.
+
+=cut
+
+.sub '!cursor_next' :method
+ .local pmc regex, cur
+ regex = getattribute self, '&!regex'
+ if null regex goto fail
+ cur = self.regex()
+ .return (cur)
+ fail:
+ cur = self.'!cursor_start'()
+ cur.'!cursor_fail'()
+ .return (cur)
+.end
+
+
=item !cursor_caparray(caparray :slurpy)
Set the list of subcaptures that produce arrays to C<caparray>.
@@ -1180,7 +1254,7 @@
rx = shift rx_it
rxaddr = get_addr rx
$P0 = mcalled[rxaddr]
- unless null $P0 goto token_next
+ unless null $P0 goto cand_loop
result = self.rx()
mcalled[rxaddr] = mcalled
if result goto done
@@ -2434,13 +2508,15 @@
goto iter_loop
iter_done:
- .local pmc startlabel, donelabel, faillabel
+ .local pmc startlabel, donelabel, faillabel, restartlabel
$S0 = concat prefix, 'start'
startlabel = self.'post_new'('Label', 'result'=>$S0)
$S0 = concat prefix, 'done'
donelabel = self.'post_new'('Label', 'result'=>$S0)
$S0 = concat prefix, 'fail'
faillabel = self.'post_new'('Label', 'result'=>$S0)
+ $S0 = concat prefix, 'restart'
+ restartlabel = self.'post_new'('Label', 'result'=>$S0)
reghash['fail'] = faillabel
# If capnames is available, it's a hash where each key is the
@@ -2490,9 +2566,8 @@
concat $S0, pos
concat $S0, ', '
concat $S0, tgt
- concat $S0, ')'
+ concat $S0, ', $I10)'
ops.'push_pirop'('callmethod', '"!cursor_start"', 'self', 'result'=>$S0)
- self.'!cursorop'(ops, '!cursor_debug', 0, '"START "', regexname_esc)
unless caparray goto caparray_skip
self.'!cursorop'(ops, '!cursor_caparray', 0, caparray :flat)
caparray_skip:
@@ -2518,9 +2593,13 @@
ops.'push_pirop'('sub', off, pos, 1, 'result'=>off)
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)
$P0 = self.'post_regex'(node)
ops.'push'($P0)
+ ops.'push'(restartlabel)
+ 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)
@@ -2906,8 +2985,10 @@
.param string backtrack
.param int min
.param int max
+ .param pmc sep
if backtrack != 'r' goto pessimistic
+ if sep goto pessimistic
.local string subtype
.local int cclass, negate
@@ -3160,6 +3241,13 @@
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)
+
+ .local string backtrack
+ backtrack = node.'backtrack'()
+ if backtrack == 'r' goto backtrack_done
+ self.'!cursorop'(ops, '!cursor_backtrack', 0)
+ backtrack_done:
+
ops.'push_pirop'('return', cur)
.return (ops)
.end
@@ -3205,7 +3293,9 @@
backtrack = 'g'
have_backtrack:
+ .local pmc sep
.local int min, max
+ sep = node.'sep'()
min = node.'min'()
$P0 = node.'max'()
max = $P0
@@ -3223,7 +3313,7 @@
$S0 = concat $S0, '_q'
$I0 = can self, $S0
unless $I0 goto optimize_done
- $P0 = self.$S0(cpast, backtrack, min, max)
+ $P0 = self.$S0(cpast, backtrack, min, max, sep)
if null $P0 goto optimize_done
.return ($P0)
optimize_done:
@@ -3231,8 +3321,8 @@
.local pmc cur, pos, rep, fail
(cur, pos, rep, fail) = self.'!rxregs'('cur pos rep fail')
- .local string qname
- .local pmc ops, q1label, q2label, btreg, cpost
+ .local string qname, btreg
+ .local pmc ops, q1label, q2label, cpost
$S0 = concat 'rxquant', backtrack
qname = self.'unique'($S0)
ops = self.'post_new'('Ops', 'node'=>node)
@@ -3263,8 +3353,7 @@
if backtrack == 'f' goto frugal
greedy:
- btreg = self.'uniquereg'('I')
- ops.'push_pirop'('set_addr', btreg, q2label)
+ btreg = '$I10'
.local int needmark
.local string peekcut
needmark = needrep
@@ -3275,14 +3364,17 @@
greedy_1:
if min == 0 goto greedy_2
unless needmark goto greedy_loop
+ ops.'push_pirop'('set_addr', btreg, q2label)
self.'!cursorop'(ops, '!mark_push', 0, 0, CURSOR_FAIL, btreg)
goto greedy_loop
greedy_2:
+ ops.'push_pirop'('set_addr', btreg, q2label)
self.'!cursorop'(ops, '!mark_push', 0, 0, pos, btreg)
greedy_loop:
ops.'push'(q1label)
ops.'push'(cpost)
unless needmark goto greedy_3
+ ops.'push_pirop'('set_addr', btreg, q2label)
self.'!cursorop'(ops, peekcut, 1, rep, btreg)
unless needrep goto greedy_3
ops.'push_pirop'('inc', rep)
@@ -3291,6 +3383,7 @@
ops.'push_pirop'('ge', rep, max, q2label)
greedy_4:
unless max != 1 goto greedy_5
+ ops.'push_pirop'('set_addr', btreg, q2label)
self.'!cursorop'(ops, '!mark_push', 0, rep, pos, btreg)
if null seppost goto greedy_4a
ops.'push'(seppost)
@@ -3328,6 +3421,8 @@
frugal_2a:
unless needrep goto frugal_3
ops.'push_pirop'('set', ireg, rep)
+ unless max > 1 goto frugal_3
+ ops.'push_pirop'('ge', rep, max, fail)
frugal_3:
ops.'push'(cpost)
unless needrep goto frugal_4
@@ -3336,12 +3431,10 @@
unless min > 1 goto frugal_5
ops.'push_pirop'('lt', rep, min, q1label)
frugal_5:
- unless max > 1 goto frugal_6
- ops.'push_pirop'('ge', rep, max, q2label)
frugal_6:
unless max != 1 goto frugal_7
ops.'push_pirop'('set_addr', '$I10', q1label)
- self.'!cursorop'(ops, '!mark_push', 0, ireg, pos, '$I10')
+ self.'!cursorop'(ops, '!mark_push', 0, rep, pos, '$I10')
frugal_7:
ops.'push'(q2label)
.return (ops)
@@ -3460,8 +3553,9 @@
negate = node.'negate'()
testop = self.'??!!'(negate, 'if', 'unless')
- .local pmc subtype
+ .local pmc subtype, backtrack
subtype = node.'subtype'()
+ backtrack = node.'backtrack'()
ops.'push_pirop'('inline', subpost, subtype, negate, 'inline'=>" # rx subrule %0 subtype=%1 negate=%2")
@@ -3470,8 +3564,27 @@
ops.'push_pirop'('callmethod', subpost, cur, posargs :flat, namedargs :flat, 'result'=>'$P10')
ops.'push_pirop'(testop, '$P10', fail)
if subtype == 'zerowidth' goto done
+ if backtrack != 'r' goto subrule_backtrack
if subtype == 'method' goto subrule_pos
self.'!cursorop'(ops, '!mark_push', 0, 0, CURSOR_FAIL, 0, '$P10')
+ goto subrule_named
+ subrule_backtrack:
+ .local string rxname
+ .local pmc backlabel, passlabel
+ rxname = self.'unique'('rxsubrule')
+ $S0 = concat rxname, '_back'
+ backlabel = self.'post_new'('Label', 'result'=>$S0)
+ $S0 = concat rxname, '_pass'
+ passlabel = self.'post_new'('Label', 'result'=>$S0)
+ ops.'push_pirop'('goto', passlabel)
+ ops.'push'(backlabel)
+ ops.'push_pirop'('callmethod', '"!cursor_next"', '$P10', 'result'=>'$P10')
+ ops.'push_pirop'(testop, '$P10', fail)
+ ops.'push'(passlabel)
+ ops.'push_pirop'('set_addr', '$I10', backlabel)
+ self.'!cursorop'(ops, '!mark_push', 0, 0, pos, '$I10', '$P10')
+ if subtype == 'method' goto subrule_pos
+ subrule_named:
ops.'push'(name)
ops.'push_pirop'('callmethod', '"!cursor_names"', '$P10', name)
subrule_pos:
Modified: branches/gc_massacre/ext/nqp-rx/src/stage0/nqp-setting.nqp
==============================================================================
--- branches/gc_massacre/ext/nqp-rx/src/stage0/nqp-setting.nqp Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/ext/nqp-rx/src/stage0/nqp-setting.nqp Tue Aug 3 22:27:14 2010 (r48298)
@@ -17,6 +17,22 @@
module ResizablePMCArray {
+ =begin item delete
+ Remove item at C<$pos>
+ =end item
+
+ method delete($pos) {
+ pir::delete__vQi(self, $pos);
+ }
+
+ =begin item exists
+ Return true if item exists at C<$pos>
+ =end item
+
+ method exists($pos) {
+ pir::exists__IQi(self, $pos);
+ }
+
=begin item join
Return all elements joined by $sep.
=end item
@@ -210,11 +226,11 @@
=begin item slurp
Returns the contents of C<$filename> as a single string.
-=end
+=end item
our sub slurp ($filename) {
- my $handle := FileHandle.new();
- $handle.open($file, 'r');
+ my $handle := pir::new__Ps('FileHandle');
+ $handle.open($filename, 'r');
my $contents := $handle.readall;
$handle.close();
$contents;
@@ -226,7 +242,7 @@
=end item
our sub spew($filename, $contents) {
- my $handle := FileHandle.new();
+ my $handle := pir::new__Ps('FileHandle');
$handle.open($filename, 'w');
$handle.print($contents);
$handle.close();
Modified: branches/gc_massacre/include/parrot/call.h
==============================================================================
--- branches/gc_massacre/include/parrot/call.h Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/include/parrot/call.h Tue Aug 3 22:27:14 2010 (r48298)
@@ -87,18 +87,6 @@
__attribute__nonnull__(2)
__attribute__nonnull__(3);
-PARROT_EXPORT
-void Parrot_PCCINVOKE(PARROT_INTERP,
- ARGIN(PMC* pmc),
- ARGMOD(STRING *method_name),
- ARGIN(const char *signature),
- ...)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- __attribute__nonnull__(4)
- FUNC_MODIFIES(*method_name);
-
#define ASSERT_ARGS_Parrot_pcc_do_run_ops __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(sub_obj))
@@ -118,11 +106,6 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(sub_obj) \
, PARROT_ASSERT_ARG(sig))
-#define ASSERT_ARGS_Parrot_PCCINVOKE __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(pmc) \
- , PARROT_ASSERT_ARG(method_name) \
- , PARROT_ASSERT_ARG(signature))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: src/call/pcc.c */
@@ -324,7 +307,7 @@
|| *(pc) == PARROT_OP_get_results_pc \
|| *(pc) == PARROT_OP_get_params_pc \
|| *(pc) == PARROT_OP_set_returns_pc) { \
- PMC * const sig = (seg)->const_table->constants[(pc)[1]]->u.key; \
+ PMC * const sig = (seg)->const_table->constants[(pc)[1]].u.key; \
(n) += VTABLE_elements((interp), sig); \
} \
} while (0)
Modified: branches/gc_massacre/include/parrot/context.h
==============================================================================
--- branches/gc_massacre/include/parrot/context.h Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/include/parrot/context.h Tue Aug 3 22:27:14 2010 (r48298)
@@ -78,402 +78,340 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
PARROT_EXPORT
-UINTVAL Parrot_pcc_dec_recursion_depth_func(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
+UINTVAL Parrot_pcc_dec_recursion_depth_func(SHIM_INTERP, ARGIN(PMC *ctx))
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_pcc_errors_off_func(PARROT_INTERP,
- ARGIN(PMC *ctx),
- UINTVAL flags)
- __attribute__nonnull__(1)
+void Parrot_pcc_errors_off_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_pcc_errors_on_func(PARROT_INTERP,
- ARGIN(PMC *ctx),
- UINTVAL flags)
- __attribute__nonnull__(1)
+void Parrot_pcc_errors_on_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
__attribute__nonnull__(2);
PARROT_EXPORT
-UINTVAL Parrot_pcc_errors_test_func(PARROT_INTERP,
+PARROT_PURE_FUNCTION
+UINTVAL Parrot_pcc_errors_test_func(SHIM_INTERP,
ARGIN(PMC *ctx),
UINTVAL flags)
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_get_caller_ctx_func(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
+PMC* Parrot_pcc_get_caller_ctx_func(SHIM_INTERP, ARGIN(PMC *ctx))
__attribute__nonnull__(2);
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
-struct PackFile_Constant ** Parrot_pcc_get_constants_func(PARROT_INTERP,
+PARROT_PURE_FUNCTION
+struct PackFile_Constant * Parrot_pcc_get_constants_func(SHIM_INTERP,
ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
PARROT_CAN_RETURN_NULL
-Parrot_Context* Parrot_pcc_get_context_struct_func(PARROT_INTERP,
- ARGIN_NULLOK(PMC *ctx))
- __attribute__nonnull__(1);
+PARROT_PURE_FUNCTION
+Parrot_Context* Parrot_pcc_get_context_struct_func(SHIM_INTERP,
+ ARGIN_NULLOK(PMC *ctx));
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_get_continuation_func(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
+PMC* Parrot_pcc_get_continuation_func(SHIM_INTERP, ARGIN(PMC *ctx))
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_get_handlers_func(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
+PMC* Parrot_pcc_get_handlers_func(SHIM_INTERP, ARGIN(PMC *ctx))
__attribute__nonnull__(2);
PARROT_EXPORT
-INTVAL Parrot_pcc_get_HLL_func(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
+PARROT_PURE_FUNCTION
+INTVAL Parrot_pcc_get_HLL_func(SHIM_INTERP, ARGIN(PMC *ctx))
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
-INTVAL Parrot_pcc_get_int_constant_func(PARROT_INTERP,
+INTVAL Parrot_pcc_get_int_constant_func(SHIM_INTERP,
ARGIN(PMC *ctx),
INTVAL idx)
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CANNOT_RETURN_NULL
-PMC* Parrot_pcc_get_lex_pad_func(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
+PMC* Parrot_pcc_get_lex_pad_func(SHIM_INTERP, ARGIN(PMC *ctx))
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_get_namespace_func(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
+PMC* Parrot_pcc_get_namespace_func(SHIM_INTERP, ARGIN(PMC *ctx))
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
-FLOATVAL Parrot_pcc_get_num_constant_func(PARROT_INTERP,
+FLOATVAL Parrot_pcc_get_num_constant_func(SHIM_INTERP,
ARGIN(PMC *ctx),
INTVAL idx)
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_get_object_func(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
+PMC* Parrot_pcc_get_object_func(SHIM_INTERP, ARGIN(PMC *ctx))
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_get_outer_ctx_func(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
+PMC* Parrot_pcc_get_outer_ctx_func(SHIM_INTERP, ARGIN(PMC *ctx))
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
-opcode_t* Parrot_pcc_get_pc_func(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
+opcode_t* Parrot_pcc_get_pc_func(SHIM_INTERP, ARGIN(PMC *ctx))
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_get_pmc_constant_func(PARROT_INTERP,
+PMC* Parrot_pcc_get_pmc_constant_func(SHIM_INTERP,
ARGIN(PMC *ctx),
INTVAL idx)
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
-UINTVAL Parrot_pcc_get_recursion_depth_func(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
+PARROT_PURE_FUNCTION
+UINTVAL Parrot_pcc_get_recursion_depth_func(SHIM_INTERP, ARGIN(PMC *ctx))
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_get_signature_func(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
+PMC* Parrot_pcc_get_signature_func(SHIM_INTERP, ARGIN(PMC *ctx))
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
-STRING* Parrot_pcc_get_string_constant_func(PARROT_INTERP,
+STRING* Parrot_pcc_get_string_constant_func(SHIM_INTERP,
ARGIN(PMC *ctx),
INTVAL idx)
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
-UINTVAL Parrot_pcc_inc_recursion_depth_func(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
+UINTVAL Parrot_pcc_inc_recursion_depth_func(SHIM_INTERP, ARGIN(PMC *ctx))
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_pcc_set_caller_ctx_func(PARROT_INTERP,
+void Parrot_pcc_set_caller_ctx_func(SHIM_INTERP,
ARGIN(PMC *ctx),
ARGIN(PMC *caller_ctx))
- __attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3);
PARROT_EXPORT
PARROT_CAN_RETURN_NULL
-void Parrot_pcc_set_constants_func(PARROT_INTERP,
+void Parrot_pcc_set_constants_func(SHIM_INTERP,
ARGIN(PMC *ctx),
- ARGIN_NULLOK(struct PackFile_Constant **constants))
- __attribute__nonnull__(1)
+ ARGIN_NULLOK(struct PackFile_Constant *constants))
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_pcc_set_continuation_func(PARROT_INTERP,
+void Parrot_pcc_set_continuation_func(SHIM_INTERP,
ARGIN(PMC *ctx),
ARGIN_NULLOK(PMC *_continuation))
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_pcc_set_handlers_func(PARROT_INTERP,
+void Parrot_pcc_set_handlers_func(SHIM_INTERP,
ARGIN(PMC *ctx),
ARGIN(PMC *handlers))
- __attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3);
PARROT_EXPORT
-void Parrot_pcc_set_HLL_func(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL hll)
- __attribute__nonnull__(1)
+void Parrot_pcc_set_HLL_func(SHIM_INTERP, ARGIN(PMC *ctx), INTVAL hll)
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_pcc_set_lex_pad_func(PARROT_INTERP,
+void Parrot_pcc_set_lex_pad_func(SHIM_INTERP,
ARGIN(PMC *ctx),
ARGIN(PMC *lex_pad))
- __attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3);
PARROT_EXPORT
-void Parrot_pcc_set_namespace_func(PARROT_INTERP,
+void Parrot_pcc_set_namespace_func(SHIM_INTERP,
ARGIN(PMC *ctx),
ARGIN_NULLOK(PMC *_namespace))
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_pcc_set_object_func(PARROT_INTERP,
+void Parrot_pcc_set_object_func(SHIM_INTERP,
ARGIN(PMC *ctx),
ARGIN_NULLOK(PMC *object))
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_pcc_set_outer_ctx_func(PARROT_INTERP,
+void Parrot_pcc_set_outer_ctx_func(SHIM_INTERP,
ARGIN(PMC *ctx),
ARGIN(PMC *outer_ctx))
- __attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3);
PARROT_EXPORT
-void Parrot_pcc_set_pc_func(PARROT_INTERP,
+void Parrot_pcc_set_pc_func(SHIM_INTERP,
ARGIN(PMC *ctx),
ARGIN_NULLOK(opcode_t *pc))
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_pcc_set_signature_func(PARROT_INTERP,
+void Parrot_pcc_set_signature_func(SHIM_INTERP,
ARGIN(PMC *ctx),
ARGIN_NULLOK(PMC *sig_object))
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_pcc_trace_flags_off_func(PARROT_INTERP,
+void Parrot_pcc_trace_flags_off_func(SHIM_INTERP,
ARGIN(PMC *ctx),
UINTVAL flags)
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_pcc_trace_flags_on_func(PARROT_INTERP,
+void Parrot_pcc_trace_flags_on_func(SHIM_INTERP,
ARGIN(PMC *ctx),
UINTVAL flags)
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
-UINTVAL Parrot_pcc_trace_flags_test_func(PARROT_INTERP,
+PARROT_PURE_FUNCTION
+UINTVAL Parrot_pcc_trace_flags_test_func(SHIM_INTERP,
ARGIN(PMC *ctx),
UINTVAL flags)
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_pcc_warnings_off_func(PARROT_INTERP,
+void Parrot_pcc_warnings_off_func(SHIM_INTERP,
ARGIN(PMC *ctx),
UINTVAL flags)
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
-UINTVAL Parrot_pcc_warnings_on_func(PARROT_INTERP,
+UINTVAL Parrot_pcc_warnings_on_func(SHIM_INTERP,
ARGIN(PMC *ctx),
UINTVAL flags)
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
-UINTVAL Parrot_pcc_warnings_test_func(PARROT_INTERP,
+PARROT_PURE_FUNCTION
+UINTVAL Parrot_pcc_warnings_test_func(SHIM_INTERP,
ARGIN(PMC *ctx),
UINTVAL flags)
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
#define ASSERT_ARGS_Parrot_pcc_dec_recursion_depth_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_errors_off_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_errors_on_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_errors_test_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_caller_ctx_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_constants_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_context_struct_func \
- __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_Parrot_pcc_get_continuation_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_handlers_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_HLL_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_int_constant_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_lex_pad_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_namespace_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_num_constant_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_object_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_outer_ctx_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_pc_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_pmc_constant_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_recursion_depth_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_signature_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_string_constant_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_inc_recursion_depth_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_set_caller_ctx_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx) \
+ PARROT_ASSERT_ARG(ctx) \
, PARROT_ASSERT_ARG(caller_ctx))
#define ASSERT_ARGS_Parrot_pcc_set_constants_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_set_continuation_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_set_handlers_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx) \
+ PARROT_ASSERT_ARG(ctx) \
, PARROT_ASSERT_ARG(handlers))
#define ASSERT_ARGS_Parrot_pcc_set_HLL_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_set_lex_pad_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx) \
+ PARROT_ASSERT_ARG(ctx) \
, PARROT_ASSERT_ARG(lex_pad))
#define ASSERT_ARGS_Parrot_pcc_set_namespace_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_set_object_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_set_outer_ctx_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx) \
+ PARROT_ASSERT_ARG(ctx) \
, PARROT_ASSERT_ARG(outer_ctx))
#define ASSERT_ARGS_Parrot_pcc_set_pc_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_set_signature_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_trace_flags_off_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_trace_flags_on_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_trace_flags_test_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_warnings_off_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_warnings_on_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_warnings_test_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
+ PARROT_ASSERT_ARG(ctx))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: src/call/context_accessors.c */
@@ -514,10 +452,10 @@
# define Parrot_pcc_get_signature(i, c) (CONTEXT_STRUCT(c)->current_sig)
# define Parrot_pcc_set_signature(i, c, value) (CONTEXT_STRUCT(c)->current_sig = (value))
-# define Parrot_pcc_get_int_constant(i, c, idx) (CONTEXT_STRUCT(c)->constants[(idx)]->u.integer)
-# define Parrot_pcc_get_num_constant(i, c, idx) (CONTEXT_STRUCT(c)->constants[(idx)]->u.number)
-# define Parrot_pcc_get_string_constant(i, c, idx) (CONTEXT_STRUCT(c)->constants[(idx)]->u.string)
-# define Parrot_pcc_get_pmc_constant(i, c, idx) (CONTEXT_STRUCT(c)->constants[(idx)]->u.key)
+# define Parrot_pcc_get_int_constant(i, c, idx) (CONTEXT_STRUCT(c)->constants[(idx)].u.integer)
+# define Parrot_pcc_get_num_constant(i, c, idx) (CONTEXT_STRUCT(c)->constants[(idx)].u.number)
+# define Parrot_pcc_get_string_constant(i, c, idx) (CONTEXT_STRUCT(c)->constants[(idx)].u.string)
+# define Parrot_pcc_get_pmc_constant(i, c, idx) (CONTEXT_STRUCT(c)->constants[(idx)].u.key)
# define Parrot_pcc_get_recursion_depth(i, c) (CONTEXT_STRUCT(c)->recursion_depth)
# define Parrot_pcc_dec_recursion_depth(i, c) (--CONTEXT_STRUCT(c)->recursion_depth)
Modified: branches/gc_massacre/include/parrot/dynext.h
==============================================================================
--- branches/gc_massacre/include/parrot/dynext.h Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/include/parrot/dynext.h Tue Aug 3 22:27:14 2010 (r48298)
@@ -32,6 +32,13 @@
FUNC_MODIFIES(*s);
PARROT_EXPORT
+PARROT_CAN_RETURN_NULL
+void * Parrot_dlsym_str(PARROT_INTERP,
+ ARGIN_NULLOK(void *handle),
+ ARGIN_NULLOK(STRING *symbol))
+ __attribute__nonnull__(1);
+
+PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
PMC * Parrot_init_lib(PARROT_INTERP,
NULLOK(dynext_load_func load_func),
@@ -50,6 +57,8 @@
PARROT_ASSERT_ARG(d) \
, PARROT_ASSERT_ARG(s) \
, PARROT_ASSERT_ARG(lib_pmc))
+#define ASSERT_ARGS_Parrot_dlsym_str __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_init_lib __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_load_lib __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/gc_massacre/include/parrot/extend.h
==============================================================================
--- branches/gc_massacre/include/parrot/extend.h Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/include/parrot/extend.h Tue Aug 3 22:27:14 2010 (r48298)
@@ -28,7 +28,6 @@
#if defined(PARROT_IN_CORE)
#define Parrot_Language Parrot_Int
-#define Parrot_VTABLE VTABLE *
/* Macro to save off the original stack pointer for GC scanning. If
the stacktop was NULL, then set it to the address of the cached
@@ -74,8 +73,10 @@
__attribute__nonnull__(3);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
-Parrot_Language Parrot_find_language(SHIM_INTERP, SHIM(char *language));
+Parrot_Language Parrot_find_language(SHIM_INTERP,
+ SHIM(const char *language));
PARROT_EXPORT
int Parrot_fprintf(PARROT_INTERP,
@@ -90,22 +91,27 @@
void Parrot_free_cstring(ARGFREE(char *string));
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_Int Parrot_get_intreg(PARROT_INTERP, Parrot_Int regnum)
__attribute__nonnull__(1);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_Float Parrot_get_numreg(PARROT_INTERP, Parrot_Int regnum)
__attribute__nonnull__(1);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_PMC Parrot_get_pmcreg(PARROT_INTERP, Parrot_Int regnum)
__attribute__nonnull__(1);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_PMC Parrot_get_root_namespace(PARROT_INTERP)
__attribute__nonnull__(1);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_String Parrot_get_strreg(PARROT_INTERP, Parrot_Int regnum)
__attribute__nonnull__(1);
@@ -128,6 +134,7 @@
__attribute__nonnull__(1);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_PMC Parrot_PMC_null(void);
PARROT_EXPORT
Deleted: branches/gc_massacre/include/parrot/global.h
==============================================================================
--- branches/gc_massacre/include/parrot/global.h Tue Aug 3 22:27:14 2010 (r48297)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,204 +0,0 @@
-/* global.h
- * Copyright (C) 2004, Parrot Foundation.
- * SVN Info
- * $Id$
- * Overview:
- * Contains accessor functions for globals
- * Data Structure and Algorithms:
- * History:
- * Notes:
- * References:
- */
-
-#ifndef PARROT_GLOBAL_H_GUARD
-#define PARROT_GLOBAL_H_GUARD
-
-/* HEADERIZER BEGIN: src/global.c */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_find_global_cur(PARROT_INTERP,
- ARGIN_NULLOK(STRING *globalname))
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_find_global_n(PARROT_INTERP,
- ARGIN_NULLOK(PMC *ns),
- ARGIN_NULLOK(STRING *globalname))
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-PMC * Parrot_find_global_op(PARROT_INTERP,
- ARGIN(PMC *ns),
- ARGIN_NULLOK(STRING *globalname),
- ARGIN_NULLOK(void *next))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_find_global_s(PARROT_INTERP,
- ARGIN_NULLOK(STRING *str_key),
- ARGIN_NULLOK(STRING *globalname))
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_find_name_op(PARROT_INTERP,
- ARGIN(STRING *name),
- SHIM(void *next))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_get_global(PARROT_INTERP,
- ARGIN_NULLOK(PMC *ns),
- ARGIN_NULLOK(STRING *globalname))
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_get_namespace_keyed(PARROT_INTERP,
- ARGIN(PMC *base_ns),
- ARGIN(PMC *pmc_key))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_get_namespace_keyed_str(PARROT_INTERP,
- ARGIN(PMC *base_ns),
- ARGIN_NULLOK(STRING *str_key))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_make_namespace_autobase(PARROT_INTERP, ARGIN_NULLOK(PMC *key))
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_make_namespace_keyed(PARROT_INTERP,
- ARGIN(PMC *base_ns),
- ARGIN(PMC *pmc_key))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_make_namespace_keyed_str(PARROT_INTERP,
- ARGIN(PMC *base_ns),
- ARGIN(STRING *str_key))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_ns_get_name(PARROT_INTERP, ARGIN(PMC *_namespace))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-void Parrot_set_global(PARROT_INTERP,
- ARGIN_NULLOK(PMC *ns),
- ARGIN_NULLOK(STRING *globalname),
- ARGIN_NULLOK(PMC *val))
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-void Parrot_store_global_n(PARROT_INTERP,
- ARGIN_NULLOK(PMC *ns),
- ARGIN_NULLOK(STRING *globalname),
- ARGIN_NULLOK(PMC *val))
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-void Parrot_store_global_s(PARROT_INTERP,
- ARGIN_NULLOK(STRING *str_key),
- ARGIN_NULLOK(STRING *globalname),
- ARGIN_NULLOK(PMC *val))
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-void Parrot_store_sub_in_namespace(PARROT_INTERP, ARGIN(PMC *sub_pmc))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-#define ASSERT_ARGS_Parrot_find_global_cur __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_find_global_n __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_find_global_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ns))
-#define ASSERT_ARGS_Parrot_find_global_s __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_find_name_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(name))
-#define ASSERT_ARGS_Parrot_get_global __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_get_namespace_keyed __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(base_ns) \
- , PARROT_ASSERT_ARG(pmc_key))
-#define ASSERT_ARGS_Parrot_get_namespace_keyed_str \
- __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(base_ns))
-#define ASSERT_ARGS_Parrot_make_namespace_autobase \
- __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_make_namespace_keyed __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(base_ns) \
- , PARROT_ASSERT_ARG(pmc_key))
-#define ASSERT_ARGS_Parrot_make_namespace_keyed_str \
- __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(base_ns) \
- , PARROT_ASSERT_ARG(str_key))
-#define ASSERT_ARGS_Parrot_ns_get_name __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(_namespace))
-#define ASSERT_ARGS_Parrot_set_global __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_store_global_n __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_store_global_s __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_store_sub_in_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(sub_pmc))
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* HEADERIZER END: src/global.c */
-
-#endif /* PARROT_GLOBAL_H_GUARD */
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
-
Modified: branches/gc_massacre/include/parrot/hash.h
==============================================================================
--- branches/gc_massacre/include/parrot/hash.h Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/include/parrot/hash.h Tue Aug 3 22:27:14 2010 (r48298)
@@ -9,10 +9,6 @@
#ifndef PARROT_HASH_H_GUARD
#define PARROT_HASH_H_GUARD
-/* Prototypes */
-
-/* Hash is really a hashtable, but 'hash' is standard perl nomenclature. */
-
typedef enum {
enum_hash_undef,
enum_hash_int = enum_type_INTVAL,
@@ -22,14 +18,6 @@
enum_hash_ptr = enum_type_ptr
} HashEntryType;
-/*
- * hash_entry is currently unused in the hash structure
-
-typedef struct _hash_entry {
- HashEntryType type;
- UnionVal val;
-} HashEntry;
-*/
/* A BucketIndex is an index into the pool of available buckets. */
typedef UINTVAL BucketIndex;
@@ -59,18 +47,38 @@
} HashBucket;
struct _hash {
- HashBucket *bs; /* store of buckets */
- HashBucket **bi; /* list of Bucket pointers */
- HashBucket *free_list; /* empty buckets */
- UINTVAL entries; /* Number of values stored in hashtable */
- UINTVAL mask; /* alloced - 1 */
- PMC *container; /* e.g. the PerlHash PMC */
- Hash_key_type key_type; /* cstring, ascii-string, utf8-string */
- PARROT_DATA_TYPE entry_type;/* type of value */
- size_t seed; /* randomizes the hash_key generation
- updated for each new hash */
- hash_comp_fn compare; /* compare two keys, 0 = equal */
- hash_hash_key_fn hash_val; /* generate a hash value for key */
+ /* Large slab store of buckets */
+ HashBucket *buckets;
+
+ /* List of Bucket pointers */
+ HashBucket **bucket_indices;
+
+ /* Store for empty buckets */
+ HashBucket *free_list;
+
+ /* Number of values stored in hashtable */
+ UINTVAL entries;
+
+ /* alloced - 1 */
+ UINTVAL mask;
+
+ /* The owner PMC */
+ PMC *container;
+
+ /* The type of key object this hash uses */
+ Hash_key_type key_type;
+
+ /* Type of value */
+ PARROT_DATA_TYPE entry_type;
+
+ /* Random seed value for seeding hash algorithms */
+ size_t seed;
+
+ /* Comparison function pointer. Returns 0 if elements are equal */
+ hash_comp_fn compare;
+
+ /* Function pointer to generate a hash value for the object */
+ hash_hash_key_fn hash_val;
};
typedef void (*value_free)(ARGFREE(void *));
@@ -365,6 +373,15 @@
__attribute__nonnull__(4)
__attribute__nonnull__(5);
+void parrot_hash_clone_prunable(PARROT_INTERP,
+ ARGIN(const Hash *hash),
+ ARGOUT(Hash *dest),
+ int deep)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*dest);
+
PARROT_WARN_UNUSED_RESULT
PARROT_PURE_FUNCTION
int PMC_compare(PARROT_INTERP, ARGIN(PMC *a), ARGIN(PMC *b))
@@ -505,6 +522,10 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(compare) \
, PARROT_ASSERT_ARG(keyhash))
+#define ASSERT_ARGS_parrot_hash_clone_prunable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(hash) \
+ , PARROT_ASSERT_ARG(dest))
#define ASSERT_ARGS_PMC_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(a) \
Modified: branches/gc_massacre/include/parrot/interpreter.h
==============================================================================
--- branches/gc_massacre/include/parrot/interpreter.h Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/include/parrot/interpreter.h Tue Aug 3 22:27:14 2010 (r48298)
@@ -24,7 +24,7 @@
PARROT_IS_THREAD = 0x1000, /* interpreter is a thread */
PARROT_THR_COPY_INTERP = 0x2000, /* thread start copies interp state */
- PARROT_THR_THREAD_POOL = 0x4000, /* type3 threads */
+ PARROT_THR_THREAD_POOL = 0x4000 /* type3 threads */
} Parrot_Interp_flag;
/* &end_gen */
Modified: branches/gc_massacre/include/parrot/key.h
==============================================================================
--- branches/gc_massacre/include/parrot/key.h Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/include/parrot/key.h Tue Aug 3 22:27:14 2010 (r48298)
@@ -88,13 +88,6 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
-PMC * key_new_pmc(PARROT_INTERP, ARGIN(PMC *value))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
PMC * key_new_string(PARROT_INTERP, ARGIN(STRING *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -132,13 +125,6 @@
FUNC_MODIFIES(*key);
PARROT_EXPORT
-void key_set_pmc(PARROT_INTERP, ARGMOD(PMC *key), ARGIN(PMC *value))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*key);
-
-PARROT_EXPORT
void key_set_register(PARROT_INTERP,
ARGMOD(PMC *key),
INTVAL value,
@@ -161,17 +147,18 @@
__attribute__nonnull__(1);
PARROT_EXPORT
-PARROT_PURE_FUNCTION
-PARROT_WARN_UNUSED_RESULT
-INTVAL key_type(SHIM_INTERP, ARGIN(const PMC *key))
- __attribute__nonnull__(2);
-
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
STRING * key_string(PARROT_INTERP, ARGIN(PMC *key))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
+PARROT_EXPORT
+PARROT_PURE_FUNCTION
+PARROT_WARN_UNUSED_RESULT
+INTVAL key_type(SHIM_INTERP, ARGIN(const PMC *key))
+ __attribute__nonnull__(2);
+
#define ASSERT_ARGS_key_append __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(key1) \
@@ -190,9 +177,6 @@
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_key_new_number __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_key_new_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(value))
#define ASSERT_ARGS_key_new_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(value))
@@ -211,10 +195,6 @@
#define ASSERT_ARGS_key_set_number __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(key))
-#define ASSERT_ARGS_key_set_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(key) \
- , PARROT_ASSERT_ARG(value))
#define ASSERT_ARGS_key_set_register __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(key))
@@ -224,11 +204,11 @@
, PARROT_ASSERT_ARG(value))
#define ASSERT_ARGS_key_set_to_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_key_type __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(key))
#define ASSERT_ARGS_key_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(key))
+#define ASSERT_ARGS_key_type __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(key))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: src/key.c */
Copied and modified: branches/gc_massacre/include/parrot/namespace.h (from r47995, branches/gc_massacre/include/parrot/global.h)
==============================================================================
--- branches/gc_massacre/include/parrot/global.h Mon Jul 5 01:11:51 2010 (r47995, copy source)
+++ branches/gc_massacre/include/parrot/namespace.h Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,5 +1,5 @@
-/* global.h
- * Copyright (C) 2004, Parrot Foundation.
+/* namespace.h
+ * Copyright (C) 2004-2010, Parrot Foundation.
* SVN Info
* $Id$
* Overview:
@@ -13,28 +13,28 @@
#ifndef PARROT_GLOBAL_H_GUARD
#define PARROT_GLOBAL_H_GUARD
-/* HEADERIZER BEGIN: src/global.c */
+/* HEADERIZER BEGIN: src/namespace.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
-PMC * Parrot_find_global_cur(PARROT_INTERP,
+PMC * Parrot_find_global_s(PARROT_INTERP,
+ ARGIN_NULLOK(STRING *str_key),
ARGIN_NULLOK(STRING *globalname))
__attribute__nonnull__(1);
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
-PMC * Parrot_find_global_n(PARROT_INTERP,
- ARGIN_NULLOK(PMC *ns),
+PMC * Parrot_ns_find_current_namespace_global(PARROT_INTERP,
ARGIN_NULLOK(STRING *globalname))
__attribute__nonnull__(1);
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-PMC * Parrot_find_global_op(PARROT_INTERP,
+PMC * Parrot_ns_find_global_from_op(PARROT_INTERP,
ARGIN(PMC *ns),
ARGIN_NULLOK(STRING *globalname),
ARGIN_NULLOK(void *next))
@@ -44,15 +44,7 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
-PMC * Parrot_find_global_s(PARROT_INTERP,
- ARGIN_NULLOK(STRING *str_key),
- ARGIN_NULLOK(STRING *globalname))
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_find_name_op(PARROT_INTERP,
+PMC * Parrot_ns_find_named_item(PARROT_INTERP,
ARGIN(STRING *name),
SHIM(void *next))
__attribute__nonnull__(1)
@@ -61,7 +53,7 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
-PMC * Parrot_get_global(PARROT_INTERP,
+PMC * Parrot_ns_find_namespace_global(PARROT_INTERP,
ARGIN_NULLOK(PMC *ns),
ARGIN_NULLOK(STRING *globalname))
__attribute__nonnull__(1);
@@ -69,7 +61,22 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
-PMC * Parrot_get_namespace_keyed(PARROT_INTERP,
+PMC * Parrot_ns_get_global(PARROT_INTERP,
+ ARGIN_NULLOK(PMC *ns),
+ ARGIN_NULLOK(STRING *globalname))
+ __attribute__nonnull__(1);
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC * Parrot_ns_get_name(PARROT_INTERP, ARGIN(PMC *_namespace))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC * Parrot_ns_get_namespace_keyed(PARROT_INTERP,
ARGIN(PMC *base_ns),
ARGIN(PMC *pmc_key))
__attribute__nonnull__(1)
@@ -79,7 +86,7 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
-PMC * Parrot_get_namespace_keyed_str(PARROT_INTERP,
+PMC * Parrot_ns_get_namespace_keyed_str(PARROT_INTERP,
ARGIN(PMC *base_ns),
ARGIN_NULLOK(STRING *str_key))
__attribute__nonnull__(1)
@@ -88,13 +95,14 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
-PMC * Parrot_make_namespace_autobase(PARROT_INTERP, ARGIN_NULLOK(PMC *key))
+PMC * Parrot_ns_make_namespace_autobase(PARROT_INTERP,
+ ARGIN_NULLOK(PMC *key))
__attribute__nonnull__(1);
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
-PMC * Parrot_make_namespace_keyed(PARROT_INTERP,
+PMC * Parrot_ns_make_namespace_keyed(PARROT_INTERP,
ARGIN(PMC *base_ns),
ARGIN(PMC *pmc_key))
__attribute__nonnull__(1)
@@ -104,7 +112,7 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
-PMC * Parrot_make_namespace_keyed_str(PARROT_INTERP,
+PMC * Parrot_ns_make_namespace_keyed_str(PARROT_INTERP,
ARGIN(PMC *base_ns),
ARGIN(STRING *str_key))
__attribute__nonnull__(1)
@@ -112,86 +120,82 @@
__attribute__nonnull__(3);
PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_ns_get_name(PARROT_INTERP, ARGIN(PMC *_namespace))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-void Parrot_set_global(PARROT_INTERP,
+void Parrot_ns_set_global(PARROT_INTERP,
ARGIN_NULLOK(PMC *ns),
ARGIN_NULLOK(STRING *globalname),
ARGIN_NULLOK(PMC *val))
__attribute__nonnull__(1);
PARROT_EXPORT
-void Parrot_store_global_n(PARROT_INTERP,
+void Parrot_ns_store_global(PARROT_INTERP,
ARGIN_NULLOK(PMC *ns),
ARGIN_NULLOK(STRING *globalname),
ARGIN_NULLOK(PMC *val))
__attribute__nonnull__(1);
PARROT_EXPORT
+void Parrot_ns_store_sub(PARROT_INTERP, ARGIN(PMC *sub_pmc))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
void Parrot_store_global_s(PARROT_INTERP,
ARGIN_NULLOK(STRING *str_key),
ARGIN_NULLOK(STRING *globalname),
ARGIN_NULLOK(PMC *val))
__attribute__nonnull__(1);
-PARROT_EXPORT
-void Parrot_store_sub_in_namespace(PARROT_INTERP, ARGIN(PMC *sub_pmc))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-#define ASSERT_ARGS_Parrot_find_global_cur __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_find_global_s __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_find_global_n __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_ns_find_current_namespace_global \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_find_global_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_ns_find_global_from_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(ns))
-#define ASSERT_ARGS_Parrot_find_global_s __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_find_name_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_ns_find_named_item __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(name))
-#define ASSERT_ARGS_Parrot_get_global __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_ns_find_namespace_global \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_get_namespace_keyed __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_ns_get_global __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_ns_get_name __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(_namespace))
+#define ASSERT_ARGS_Parrot_ns_get_namespace_keyed __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(base_ns) \
, PARROT_ASSERT_ARG(pmc_key))
-#define ASSERT_ARGS_Parrot_get_namespace_keyed_str \
+#define ASSERT_ARGS_Parrot_ns_get_namespace_keyed_str \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(base_ns))
-#define ASSERT_ARGS_Parrot_make_namespace_autobase \
+#define ASSERT_ARGS_Parrot_ns_make_namespace_autobase \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_make_namespace_keyed __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_ns_make_namespace_keyed \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(base_ns) \
, PARROT_ASSERT_ARG(pmc_key))
-#define ASSERT_ARGS_Parrot_make_namespace_keyed_str \
+#define ASSERT_ARGS_Parrot_ns_make_namespace_keyed_str \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(base_ns) \
, PARROT_ASSERT_ARG(str_key))
-#define ASSERT_ARGS_Parrot_ns_get_name __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(_namespace))
-#define ASSERT_ARGS_Parrot_set_global __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_ns_set_global __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_store_global_n __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_ns_store_global __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_store_global_s __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_store_sub_in_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_ns_store_sub __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(sub_pmc))
+#define ASSERT_ARGS_Parrot_store_global_s __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* HEADERIZER END: src/global.c */
+/* HEADERIZER END: src/namespace.c */
#endif /* PARROT_GLOBAL_H_GUARD */
Modified: branches/gc_massacre/include/parrot/oplib.h
==============================================================================
--- branches/gc_massacre/include/parrot/oplib.h Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/include/parrot/oplib.h Tue Aug 3 22:27:14 2010 (r48298)
@@ -50,7 +50,7 @@
CORE_OPS_check_events, /* explicit event check */
CORE_OPS_check_events__, /* inserted into op dispatch when an event
got scheduled */
- CORE_OPS_wrapper__, /* inserted by dynop_register for new ops */
+ CORE_OPS_wrapper__ /* inserted by dynop_register for new ops */
/* 2 more reserved */
} special_core_ops_enum;
Modified: branches/gc_massacre/include/parrot/oplib/core_ops.h
==============================================================================
--- branches/gc_massacre/include/parrot/oplib/core_ops.h Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/include/parrot/oplib/core_ops.h Tue Aug 3 22:27:14 2010 (r48298)
@@ -20,7 +20,7 @@
#include "parrot/oplib.h"
#include "parrot/runcore_api.h"
- op_lib_t *Parrot_DynOp_core_2_4_0(PARROT_INTERP, long init);
+ op_lib_t *Parrot_DynOp_core_2_6_0(PARROT_INTERP, long init);
opcode_t * Parrot_end(opcode_t *, PARROT_INTERP);
opcode_t * Parrot_noop(opcode_t *, PARROT_INTERP);
Modified: branches/gc_massacre/include/parrot/packfile.h
==============================================================================
--- branches/gc_massacre/include/parrot/packfile.h Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/include/parrot/packfile.h Tue Aug 3 22:27:14 2010 (r48298)
@@ -91,6 +91,42 @@
#endif
/*
+** Enumerated constants
+** Changes here require update PBC_COMPAT
+** The prefered way to eliminate a value is just to stop using it without
+** renumbering others, that helps to keep backward compatibility.
+*/
+
+/* Packfile segment types */
+
+/* &gen_from_enum(packfile_segments.pasm) */
+
+typedef enum {
+ PF_DIR_SEG = 0,
+ PF_UNKNOWN_SEG = 1,
+ PF_FIXUP_SEG = 2,
+ PF_CONST_SEG = 3,
+ PF_BYTEC_SEG = 4,
+ PF_DEBUG_SEG = 5,
+ PF_ANNOTATIONS_SEG = 6,
+
+ PF_MAX_SEG = 7
+} pack_file_types;
+
+/* &end_gen */
+
+#define PF_DIR_FORMAT 1
+
+/* Fixup types */
+
+typedef enum {
+ enum_fixup_none = 0,
+ enum_fixup_sub = 1,
+ enum_fixup_MAXUSEDVALUE = enum_fixup_sub
+} enum_fixup_t;
+
+
+/*
** Structure Definitions:
*/
@@ -174,24 +210,6 @@
PackFile_Segment_dump_func_t dump;
} PackFile_funcs;
-/* &gen_from_enum(packfile_segments.pasm) */
-
-typedef enum {
- PF_DIR_SEG = 0,
- PF_UNKNOWN_SEG = 1,
- PF_FIXUP_SEG = 2,
- PF_CONST_SEG = 3,
- PF_BYTEC_SEG = 4,
- PF_DEBUG_SEG = 5,
- PF_ANNOTATIONS_SEG = 6,
-
- PF_MAX_SEG = 7
-} pack_file_types;
-
-/* &end_gen */
-
-#define PF_DIR_FORMAT 1
-
typedef struct PackFile_Segment {
struct PackFile * pf;
struct PackFile_Directory * dir;
@@ -220,11 +238,6 @@
opcode_t offset; /* location of the item */
} PackFile_FixupEntry;
-typedef enum {
- enum_fixup_none,
- enum_fixup_sub
-} enum_fixup_t;
-
typedef struct PackFile_FixupTable {
PackFile_Segment base;
opcode_t fixup_count;
@@ -248,7 +261,7 @@
typedef struct PackFile_ConstTable {
PackFile_Segment base;
opcode_t const_count;
- PackFile_Constant **constants;
+ PackFile_Constant *constants;
PackFile_ByteCode *code; /* where this segment belongs to */
PMC *string_hash; /* Hash for lookup strings and numbers */
@@ -501,18 +514,6 @@
__attribute__nonnull__(1);
PARROT_EXPORT
-void PackFile_Constant_destroy(PARROT_INTERP,
- ARGMOD_NULLOK(PackFile_Constant *self))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*self);
-
-PARROT_EXPORT
-PARROT_MALLOC
-PARROT_CANNOT_RETURN_NULL
-PackFile_Constant * PackFile_Constant_new(PARROT_INTERP)
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
size_t PackFile_Constant_pack_size(PARROT_INTERP,
ARGIN(const PackFile_Constant *self),
@@ -867,10 +868,6 @@
, PARROT_ASSERT_ARG(self))
#define ASSERT_ARGS_PackFile_Annotations_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_PackFile_Constant_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_PackFile_Constant_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_PackFile_Constant_pack_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self) \
@@ -1051,9 +1048,8 @@
__attribute__nonnull__(3);
PARROT_WARN_UNUSED_RESULT
-INTVAL PF_fetch_integer(
- ARGIN_NULLOK(PackFile *pf),
- ARGIN(const opcode_t **stream))
+INTVAL PF_fetch_integer(ARGIN(PackFile *pf), ARGIN(const opcode_t **stream))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_WARN_UNUSED_RESULT
@@ -1141,7 +1137,8 @@
, PARROT_ASSERT_ARG(pf) \
, PARROT_ASSERT_ARG(cursor))
#define ASSERT_ARGS_PF_fetch_integer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(stream))
+ PARROT_ASSERT_ARG(pf) \
+ , PARROT_ASSERT_ARG(stream))
#define ASSERT_ARGS_PF_fetch_number __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(stream))
#define ASSERT_ARGS_PF_fetch_opcode __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/gc_massacre/include/parrot/parrot.h
==============================================================================
--- branches/gc_massacre/include/parrot/parrot.h Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/include/parrot/parrot.h Tue Aug 3 22:27:14 2010 (r48298)
@@ -284,7 +284,7 @@
#include "parrot/vtables.h"
#include "parrot/multidispatch.h"
#include "parrot/library.h"
-#include "parrot/global.h"
+#include "parrot/namespace.h"
#include "parrot/stat.h"
#include "parrot/hll.h"
#include "parrot/pbcversion.h"
Modified: branches/gc_massacre/include/parrot/pmc_freeze.h
==============================================================================
--- branches/gc_massacre/include/parrot/pmc_freeze.h Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/include/parrot/pmc_freeze.h Tue Aug 3 22:27:14 2010 (r48298)
@@ -155,7 +155,7 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-PMC* Parrot_thaw(PARROT_INTERP, ARGIN(STRING *image))
+PMC * Parrot_thaw(PARROT_INTERP, ARGIN(STRING *image))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
Modified: branches/gc_massacre/include/parrot/runcore_api.h
==============================================================================
--- branches/gc_massacre/include/parrot/runcore_api.h Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/include/parrot/runcore_api.h Tue Aug 3 22:27:14 2010 (r48298)
@@ -78,13 +78,14 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-void Parrot_runcore_destroy(PARROT_INTERP)
+PARROT_EXPORT
+void Parrot_setup_event_func_ptrs(PARROT_INTERP)
__attribute__nonnull__(1);
-void Parrot_runcore_init(PARROT_INTERP)
+void Parrot_runcore_destroy(PARROT_INTERP)
__attribute__nonnull__(1);
-void Parrot_setup_event_func_ptrs(PARROT_INTERP)
+void Parrot_runcore_init(PARROT_INTERP)
__attribute__nonnull__(1);
void prepare_for_run(PARROT_INTERP)
@@ -106,12 +107,12 @@
#define ASSERT_ARGS_Parrot_runcore_switch __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_Parrot_setup_event_func_ptrs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_runcore_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_runcore_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_setup_event_func_ptrs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_prepare_for_run __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_runops_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/gc_massacre/include/parrot/warnings.h
==============================================================================
--- branches/gc_massacre/include/parrot/warnings.h Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/include/parrot/warnings.h Tue Aug 3 22:27:14 2010 (r48298)
@@ -61,12 +61,20 @@
__attribute__nonnull__(3);
PARROT_EXPORT
+void Parrot_warn_deprecated(PARROT_INTERP, ARGIN(const char *message))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
void print_pbc_location(PARROT_INTERP)
__attribute__nonnull__(1);
#define ASSERT_ARGS_Parrot_warn __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(message))
+#define ASSERT_ARGS_Parrot_warn_deprecated __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(message))
#define ASSERT_ARGS_print_pbc_location __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
Modified: branches/gc_massacre/lib/Parrot/Configure/Options/Conf/File.pm
==============================================================================
--- branches/gc_massacre/lib/Parrot/Configure/Options/Conf/File.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/lib/Parrot/Configure/Options/Conf/File.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -73,7 +73,7 @@
else {
die "Configuration file $data->{file} did not parse correctly: $!";
}
- return ($data, $steps_list_ref);;
+ return ($data, $steps_list_ref);
}
sub _get_substitutions {
@@ -124,7 +124,7 @@
}
sub _set_steps {
- my ($data, $steps, $optsref) = @_;;
+ my ($data, $steps, $optsref) = @_;
my @steplines = split /\n/, $steps;
my @steps_list = ();
LINE: foreach my $line (@steplines) {
Modified: branches/gc_massacre/lib/Parrot/Docs/HTMLPage.pm
==============================================================================
--- branches/gc_massacre/lib/Parrot/Docs/HTMLPage.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/lib/Parrot/Docs/HTMLPage.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -94,7 +94,7 @@
</div> <!-- "mainbody" -->
<div id="divider"></div>
<div id="footer">
- Copyright © 2002-2009, Parrot Foundation.
+ Copyright © 2002-2010, Parrot Foundation.
FOOTER
$footer .= "\n<br>Parrot version $version" if $version;
Modified: branches/gc_massacre/lib/Parrot/Docs/Section/Parrot.pm
==============================================================================
--- branches/gc_massacre/lib/Parrot/Docs/Section/Parrot.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/lib/Parrot/Docs/Section/Parrot.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -31,17 +31,10 @@
use Parrot::Distribution;
use Parrot::Docs::Section::Developer;
-#use Parrot::Docs::Section::Examples;
use Parrot::Docs::Section::PMCs;
-#use Parrot::Docs::Section::C;
use Parrot::Docs::Section::Ops;
-#use Parrot::Docs::Section::IMCC;
-#use Parrot::Docs::Section::Perl;
-#use Parrot::Docs::Section::Libs;
use Parrot::Docs::Section::Tools;
use Parrot::Docs::Section::Compilers;
-#use Parrot::Docs::Section::Config;
-#use Parrot::Docs::Section::Tests;
use Parrot::Docs::Section::PDDs;
use Parrot::Docs::Section::PCT_Tutorial;
@@ -74,7 +67,6 @@
'',
$self->new_item( 'Running Parrot', 'docs/running.pod'),
$self->new_item( 'Testing Parrot', 'docs/tests.pod'),
-# Parrot::Docs::Section::Examples->new,
$self->new_item( 'Developer FAQ', 'docs/gettingstarted.pod'),
$self->new_item( 'Submitting Bug Reports & Patches', 'docs/submissions.pod' ),
),
@@ -122,13 +114,6 @@
$self->new_item( 'Chapter 4 Grammar Engine', 'docs/book/pct/ch04_pge.pod'),
$self->new_item( 'Chapter 5 Grammar Actions', 'docs/book/pct/ch05_nqp.pod'),
),
-
-# Parrot::Docs::Section::C->new,
-# Parrot::Docs::Section::IMCC->new,
-# Parrot::Docs::Section::Perl->new,
-# Parrot::Docs::Section::Libs->new,
-# Parrot::Docs::Section::Tests->new,
-# Parrot::Docs::Section::Config->new,
);
}
@@ -167,38 +152,6 @@
=back
-=head1 SEE ALSO
-
-=over 4
-
-=item C<Parrot::Docs::Section::Info>
-
-=item C<Parrot::Docs::Section::Docs>
-
-=item C<Parrot::Docs::Section::Examples>
-
-=item C<Parrot::Docs::Section::PMCs>
-
-=item C<Parrot::Docs::Section::C>
-
-=item C<Parrot::Docs::Section::Ops>
-
-=item C<Parrot::Docs::Section::IMCC>
-
-=item C<Parrot::Docs::Section::Perl>
-
-=item C<Parrot::Docs::Section::Libs>
-
-=item C<Parrot::Docs::Section::Tools>
-
-=item C<Parrot::Docs::Section::Compilers>
-
-=item C<Parrot::Docs::Section::Config>
-
-=item C<Parrot::Docs::Section::Tests>
-
-=back
-
=cut
1;
Modified: branches/gc_massacre/lib/Parrot/Harness/DefaultTests.pm
==============================================================================
--- branches/gc_massacre/lib/Parrot/Harness/DefaultTests.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/lib/Parrot/Harness/DefaultTests.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -64,6 +64,7 @@
t/op/*.t
t/pmc/*.t
t/oo/*.t
+ t/pir/*.t
t/native_pbc/*.t
);
Modified: branches/gc_massacre/lib/Parrot/Install.pm
==============================================================================
--- branches/gc_massacre/lib/Parrot/Install.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/lib/Parrot/Install.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -226,6 +226,23 @@
else {
next unless -e $src;
next if $^O eq 'cygwin' and -e "$src.exe"; # stat works, copy not
+ eval {
+ if (-l $src) { # a link should be created
+ # check if the system supports symbolic linking
+ use Config;
+ if ($Config{d_symlink} && $Config{d_readlink}) {
+ # copy as symbolic link
+ symlink(readlink($src), $dest);
+ # by success take next file, else the file will be
+ # copied with the command after the eval block of
+ # this loop
+ if (-e $dest) {
+ print "$dest\n";
+ next;
+ }
+ }
+ }
+ };
copy( $src, $dest ) or die "Error: couldn't copy $src to $dest: $!\n";
print "$dest\n";
}
Modified: branches/gc_massacre/lib/Parrot/Manifest.pm
==============================================================================
--- branches/gc_massacre/lib/Parrot/Manifest.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/lib/Parrot/Manifest.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -275,10 +275,11 @@
src/vtable.tbl [devel]src
tools/build/ops2c.pl [devel]
tools/build/pmc2c.pl [devel]
- tools/dev/mk_language_shell.pl [devel]
tools/dev/create_language.pl [devel]
- tools/dev/pbc_to_exe.pir [devel]
tools/dev/gen_makefile.pl [devel]
+ tools/dev/mk_language_shell.pl [devel]
+ tools/dev/pbc_to_exe.pir [devel]
+ tools/dev/pprof2cg.pl [devel]
tools/dev/reconfigure.pl [devel]
);
Modified: branches/gc_massacre/lib/Parrot/Pmc2c/PMC/Object.pm
==============================================================================
--- branches/gc_massacre/lib/Parrot/Pmc2c/PMC/Object.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/lib/Parrot/Pmc2c/PMC/Object.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -70,7 +70,7 @@
EOC
$method_body_text .= " $pcc_result_decl\n" if $pcc_result_decl ne '';
$method_body_text .= <<"EOC";
- Parrot_pcc_invoke_sub_from_c_args(interp, meth, "Pi$pcc_sig", _self$pcc_args);
+ Parrot_ext_call(interp, meth, "Pi$pcc_sig", _self$pcc_args);
$pcc_return_stmt
}
EOC
Modified: branches/gc_massacre/lib/Parrot/Pmc2c/PMCEmitter.pm
==============================================================================
--- branches/gc_massacre/lib/Parrot/Pmc2c/PMCEmitter.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/lib/Parrot/Pmc2c/PMCEmitter.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -139,8 +139,8 @@
}
$h->emit("${export}VTABLE* Parrot_${name}_get_vtable(PARROT_INTERP);\n");
$h->emit("${export}VTABLE* Parrot_${name}_ro_get_vtable(PARROT_INTERP);\n");
- $h->emit("${export}PMC* Parrot_${name}_get_mro(PARROT_INTERP, PMC* mro);\n");
- $h->emit("${export}Hash* Parrot_${name}_get_isa(PARROT_INTERP, Hash* isa);\n");
+ $h->emit("${export}PMC* Parrot_${name}_get_mro(PARROT_INTERP, ARGIN_NULLOK(PMC* mro));\n");
+ $h->emit("${export}Hash* Parrot_${name}_get_isa(PARROT_INTERP, ARGIN_NULLOK(Hash* isa));\n");
$self->gen_attributes;
@@ -506,8 +506,6 @@
my $multi_list_size = @multi_list;
my $multi_list = join( "\n", @multi_list);
- my @isa = grep { $_ ne 'default' } @{ $self->parents };
-
my $provides = join( " ", keys( %{ $self->{flags}{provides} } ) );
my $class_init_code = "";
@@ -586,17 +584,9 @@
EOC
}
- if (@isa) {
- unshift @isa, $classname;
- $cout .= <<"EOC";
+ $cout .= <<"EOC";
vt->isa_hash = Parrot_${classname}_get_isa(interp, NULL);
EOC
- }
- else {
- $cout .= <<"EOC";
- vt->isa_hash = NULL;
-EOC
- }
for my $k ( keys %extra_vt ) {
my $k_flags = $self->$k->vtable_flags;
@@ -832,7 +822,7 @@
$export
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
-PMC* Parrot_${classname}_get_mro(PARROT_INTERP, PMC* mro) {
+PMC* Parrot_${classname}_get_mro(PARROT_INTERP, ARGIN_NULLOK(PMC* mro)) {
if (PMC_IS_NULL(mro)) {
mro = Parrot_pmc_new(interp, enum_class_ResizableStringArray);
}
@@ -873,11 +863,20 @@
$export
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
-Hash* Parrot_${classname}_get_isa(PARROT_INTERP, Hash* isa) {
+Hash* Parrot_${classname}_get_isa(PARROT_INTERP, ARGIN_NULLOK(Hash* isa)) {
+EOC
+
+ if ($get_isa ne '') {
+ $cout .= $get_isa;
+ }
+ else {
+ $cout .= <<"EOC";
if (isa == NULL) {
isa = parrot_new_hash(interp);
}
-$get_isa
+EOC
+ }
+ $cout .= <<"EOC";
parrot_hash_put(interp, isa, (void *)(CONST_STRING_GEN(interp, "$classname")), PMCNULL);
return isa;
}
Modified: branches/gc_massacre/lib/Parrot/Test.pm
==============================================================================
--- branches/gc_massacre/lib/Parrot/Test.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/lib/Parrot/Test.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -280,6 +280,7 @@
use File::Spec;
use File::Basename;
use Memoize ();
+use IO::File ();
use lib qw( lib );
use Parrot::BuildUtil ();
Modified: branches/gc_massacre/lib/Parrot/Test/Util/Runloop.pm
==============================================================================
--- branches/gc_massacre/lib/Parrot/Test/Util/Runloop.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/lib/Parrot/Test/Util/Runloop.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -19,18 +19,19 @@
=head1 DESCRIPTION
This module provides a basic runloop for test scripts which perform the same
-test, over and over, on lots of files. It is intended to consolidate some code
-to handle loops, skips etc, replicated many times in the t/distro/ and
-t/codingstd/ test directories.
+test, over and over, on lots of files. It is intended to consolidate some
+code to handle loops, skips etc, replicated many times in the F<t/distro/> and
+F<t/codingstd/> test directories.
You can specify a callback routine to get called back once per line (with the
-per_line attribute), or once per file (with the per_file attribute). The
-per_line callback gets passed the line as a text string. The per_file callback
-gets passed the whole file as a text string. If the callback function returns
-positive, the test passed, otherwise the test failed. Failures are tallied,
-and later reported to the test harness once, as a single test. On failure,
-some informational diagnostics are also generated, showing the user which
-file(s) and which line(s) (if applicable) had the failure.
+C<per_line> attribute), or once per file (with the C<per_file> attribute).
+The C<per_line> callback gets passed the line as a text string. The
+C<per_file> callback gets passed the whole file as a text string. If the
+callback function returns positive, the test passed, otherwise the test
+failed. Failures are tallied, and later reported to the test harness once, as
+a single test. On failure, some informational diagnostics are also generated,
+showing the user which file(s) and which line(s) (if applicable) had the
+failure.
=head1 AUTHOR
Modified: branches/gc_massacre/lib/Pod/Simple/Search.pm
==============================================================================
--- branches/gc_massacre/lib/Pod/Simple/Search.pm Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/lib/Pod/Simple/Search.pm Tue Aug 3 22:27:14 2010 (r48298)
@@ -353,7 +353,7 @@
}
pop @$modname_bits;
return;
- };;
+ };
local $_;
$recursor->($startdir, '');
Modified: branches/gc_massacre/ports/cygwin/README
==============================================================================
--- branches/gc_massacre/ports/cygwin/README Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/ports/cygwin/README Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,7 +1,7 @@
parrot
----------------------------------
Parrot is a virtual machine designed to efficiently compile and
-execute bytecode for interpreted languages. Parrot is a target for Perl 6
+execute bytecode for interpreted languages. Parrot is a target for Perl 6
and a lot of other languages.
Runtime requirements:
@@ -11,7 +11,7 @@
w32api pcre libpq5 openssl
Build requirements:
- readline libncurses-devel libicu-devel libgmp-devel libgdbm-devel perl
+ readline libncurses-devel libicu-devel libgmp-devel libgdbm-devel perl
make gcc
Optional build requirements:
@@ -40,7 +40,7 @@
/usr/src/parrot-devel-<VER>-<REL>.tar.bz2
/usr/src/parrot-docs-<VER>-<REL>.tar.bz2
-Or use 'cygport parrot-<VER>-<REL>.cygport prep' to get a patched
+Or use 'cygport parrot-<VER>-<REL>.cygport prep' to get a patched
source directory.
-------------------------------------------------------------------------------
@@ -657,7 +657,6 @@
/usr/include/parrot/1.0.0/parrot/extend.h
/usr/include/parrot/1.0.0/parrot/extend_vtable.h
/usr/include/parrot/1.0.0/parrot/feature.h
- /usr/include/parrot/1.0.0/parrot/global.h
/usr/include/parrot/1.0.0/parrot/global_setup.h
/usr/include/parrot/1.0.0/parrot/has_header.h
/usr/include/parrot/1.0.0/parrot/hash.h
@@ -676,6 +675,7 @@
/usr/include/parrot/1.0.0/parrot/memory.h
/usr/include/parrot/1.0.0/parrot/misc.h
/usr/include/parrot/1.0.0/parrot/mmd.h
+ /usr/include/parrot/1.0.0/parrot/namespace.h
/usr/include/parrot/1.0.0/parrot/nci.h
/usr/include/parrot/1.0.0/parrot/oo.h
/usr/include/parrot/1.0.0/parrot/oo_private.h
@@ -1877,7 +1877,7 @@
----- version parrot-1.0.0-1 -----
* cygwin 1.7, gcc-4.3 only
* renamed libparrot-devel to parrot-devel
-* removed libparrot1
+* removed libparrot1
* new parrot-docs for make html
* library.c patch to allow library/*.pbc
* removed pbc_info
@@ -1910,21 +1910,21 @@
----- version parrot-0.7.0-1 -----
* removed /usr/runtime and its preremove and postinstall scripts
-* added parrot_exists_check to .cygport. Already installed parrot
+* added parrot_exists_check to .cygport. Already installed parrot
still not supported, despite my #39742 patch
* other minor .cygport improvements: export PATH in seperate lines to fix check
-* new patches:
+* new patches:
[perl #39742] [BUG] installed conflict
[perl #58034] [TODO] config_args
[perl #56996] [TODO] FHS runtime paths
-* enhanced patch:
+* enhanced patch:
[perl #56554] [TODO] make install -C languages
* upstream fixed patches:
[perl #56544] [PATCH] install_files.pl
[perl #56998] [TODO] rename cygwin dll to cygparrot$MAJOR_$MINOR_$PATCH.dll
[perl #57006] [PATCH] add cygwin opengl config quirks
[perl #57296] [TODO] make install -C languages
-* fixed pipp, perl6, pheme, tcl installables. added pcbc's to library
+* fixed pipp, perl6, pheme, tcl installables. added pcbc's to library
----- version parrot-0.6.4-2 -----
* fixed invalid parrot languages and perl6 paths referencing the build_dir
@@ -1933,7 +1933,7 @@
* added myconfig parrotbug VERSION to /usr/lib/parrot
* moved language dll's to parrot-languages
* added more sublanguage exe's: bfc, bfco
-* added usr/lib/parrot/include/config.fpmc usr/lib/parrot/include/interpinfo.pasm
+* added usr/lib/parrot/include/config.fpmc usr/lib/parrot/include/interpinfo.pasm
to parrot
----- version parrot-0.6.4-1 -----
@@ -1951,11 +1951,11 @@
[perl #57114] [PATCH] urm RealBin issue
----- version parrot-0.6.3-1 -----
-* first port, with the help from #parrot, fedora spec,
+* first port, with the help from #parrot, fedora spec,
gentoo ebuild and freebsd ports.
* the php implementation plumhead is still named plumhead.
will be renamed to pipp from the next release 0.6.4 on.
Cygwin port maintained by: Reini Urban <rurban at x-ray.at>
-Please address all questions to the Cygwin mailing list
+Please address all questions to the Cygwin mailing list
at <cygwin at cygwin.com>
Modified: branches/gc_massacre/ports/debian/changelog
==============================================================================
--- branches/gc_massacre/ports/debian/changelog Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/ports/debian/changelog Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,3 +1,17 @@
+parrot (2.6.0-1) unstable; urgency=low
+ * New upstream release
+ * debian/parrot-devel.install.in:
+ - Applied patch from Matt Kraai to install new NQP supporting
+ libraries and install new Opcode generation tool ops2c and
+ supporting library opsc.pbc.
+ * debian/patches:
+ - Added 04_fix_opsc_man.patch, added README for new ops2c
+ binary.
+ * debian/rules:
+ - Generate manpage from the ops2c README file.
+
+ -- Allison Randal <allison at parrot.org> Sat, 31 Jul 2010 18:32:07 +0100
+
parrot (2.3.0-1) unstable; urgency=low
* New upstream release
* debian/patches:
Modified: branches/gc_massacre/ports/debian/control
==============================================================================
--- branches/gc_massacre/ports/debian/control Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/ports/debian/control Tue Aug 3 22:27:14 2010 (r48298)
@@ -3,8 +3,8 @@
Priority: optional
Maintainer: Debian Parrot Maintainers <pkg-parrot-devel at lists.alioth.debian.org>
Uploaders: Allison Randal <allison at parrot.org>, Nuno Carvalho <mestre.smash at gmail.com>, Patrick Michaud <pmichaud at pobox.com>
-Build-Depends: debhelper (>= 5.0.0), perl, perl-doc, libgdbm-dev, libreadline-dev, quilt
-Standards-Version: 3.8.4
+Build-Depends: debhelper (>= 5.0.0), perl, perl-doc, libreadline-dev, quilt
+Standards-Version: 3.9.1
Package: parrot
Architecture: any
@@ -26,7 +26,7 @@
to get up and running in the average use case, and is sufficient to run most
language implementations.
-Package: libparrot2.0.0
+Package: libparrot2.6.0
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -37,7 +37,7 @@
Package: libparrot-dev
Architecture: any
Section: libdevel
-Depends: ${misc:Depends}, libparrot2.0.0 (= ${binary:Version}), parrot
+Depends: ${misc:Depends}, libparrot2.6.0 (= ${binary:Version}), parrot
Description: Parrot shared library development files
This package contains header files and a static library, needed to develop
applications which embed Parrot.
Modified: branches/gc_massacre/ports/debian/control.in
==============================================================================
--- branches/gc_massacre/ports/debian/control.in Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/ports/debian/control.in Tue Aug 3 22:27:14 2010 (r48298)
@@ -4,7 +4,7 @@
Maintainer: Debian Parrot Maintainers <pkg-parrot-devel at lists.alioth.debian.org>
Uploaders: Allison Randal <allison at parrot.org>, Nuno Carvalho <mestre.smash at gmail.com>, Patrick Michaud <pmichaud at pobox.com>
Build-Depends: debhelper (>= 5.0.0), perl, perl-doc, libreadline-dev, quilt
-Standards-Version: 3.8.4
+Standards-Version: 3.9.1
Package: parrot
Architecture: any
Modified: branches/gc_massacre/ports/debian/parrot-devel.install.in
==============================================================================
--- branches/gc_massacre/ports/debian/parrot-devel.install.in Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/ports/debian/parrot-devel.install.in Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,3 +1,4 @@
+usr/bin/ops2c
usr/bin/parrot_debugger
usr/bin/pbc_disassemble
usr/bin/pbc_dump
@@ -6,7 +7,6 @@
usr/bin/parrot_config
usr/bin/parrot-nqp
usr/lib/parrot/@VERSION@/tools/*
-usr/lib/parrot/@VERSION@/languages/nqp/*
usr/lib/parrot/@VERSION@/languages/pct/*
usr/lib/parrot/@VERSION@/library/HLL.pbc
usr/lib/parrot/@VERSION@/library/Regex.pbc
@@ -18,6 +18,8 @@
usr/lib/parrot/@VERSION@/library/Parrot/Exception.pbc
usr/lib/parrot/@VERSION@/library/config.pir
usr/lib/parrot/@VERSION@/library/config.pbc
+usr/lib/parrot/@VERSION@/library/nqp-setting.pbc
+usr/lib/parrot/@VERSION@/library/opsc.pbc
usr/lib/parrot/@VERSION@/languages/pge/*
usr/lib/parrot/@VERSION@/library/PGE.pbc
usr/lib/parrot/@VERSION@/library/PGE/*
Added: branches/gc_massacre/ports/debian/patches/04_fix_opsc_man.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gc_massacre/ports/debian/patches/04_fix_opsc_man.patch Tue Aug 3 22:27:14 2010 (r48298)
@@ -0,0 +1,50 @@
+--- parrot-2.6.0.orig/compilers/opsc/README.pod (revision 0)
++++ parrot-2.6.0/compilers/opsc/README.pod (revision 0)
+@@ -0,0 +1,47 @@
++# Copyright (C) 2010, Parrot Foundation.
++# $Id: $
++
++=head1 NAME
++
++opsc - An opcode compiler for Parrot
++
++=head1 DESCRIPTION
++
++Ops-to-C is a compiler to generate opcode definition files in C from
++Parrot's opcode definition language.
++
++=head1 SYNOPSIS
++
++ opsc [-options] <file>
++
++=head1 OPTIONS
++
++=over 4
++
++=item -c, --core
++
++Generate C code for core ops (for use only in building the Parrot VM)
++
++=item -d, --dynamic
++
++Generate C code for dynamic ops in a single file.
++
++=item -q, --quiet
++
++Only report error messages, other messages are silent.
++
++=item -h, --help
++
++Print usage information.
++
++=item -n, --no-lines
++
++Do not print #line directives in generated C code.
++
++=item -g, --debug
++
++Perform all processing but do not write to any files.
++
++=back
++
++=cut
Modified: branches/gc_massacre/ports/debian/patches/series
==============================================================================
--- branches/gc_massacre/ports/debian/patches/series Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/ports/debian/patches/series Tue Aug 3 22:27:14 2010 (r48298)
@@ -1 +1,2 @@
03_fix_nqp_man.patch
+04_fix_opsc_man.patch
Modified: branches/gc_massacre/ports/debian/rules
==============================================================================
--- branches/gc_massacre/ports/debian/rules Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/ports/debian/rules Tue Aug 3 22:27:14 2010 (r48298)
@@ -49,6 +49,7 @@
pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" src/pbc_merge.c debian/pbc_merge.1
pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" tools/dev/pbc_to_exe.pir debian/pbc_to_exe.1
pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" ext/nqp-rx/parrot-nqp.pod debian/parrot-nqp.1
+ pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" compilers/opsc/README.pod debian/ops2c.1
touch build-stamp
clean: debian-control-stamp unpatch
@@ -93,7 +94,7 @@
dh_testroot -a
dh_installchangelogs -a ChangeLog
dh_installman -pparrot-minimal debian/parrot.1
- dh_installman -pparrot-devel debian/parrot_debugger.1 debian/pbc_disassemble.1 debian/pbc_dump.1 debian/pbc_merge.1 debian/parrot_config.1 debian/pbc_to_exe.1 debian/parrot-nqp.1
+ dh_installman -pparrot-devel debian/parrot_debugger.1 debian/pbc_disassemble.1 debian/pbc_dump.1 debian/pbc_merge.1 debian/parrot_config.1 debian/pbc_to_exe.1 debian/parrot-nqp.1 debian/ops2c.1
dh_installdocs -a
dh_strip -a
dh_compress -a
Deleted: branches/gc_massacre/ports/fedora/2.3.0/parrot.desk.in.tar.gz
==============================================================================
Binary file. No diff available.
Deleted: branches/gc_massacre/ports/fedora/2.3.0/parrot.patch
==============================================================================
--- branches/gc_massacre/ports/fedora/2.3.0/parrot.patch Tue Aug 3 22:27:14 2010 (r48297)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,19 +0,0 @@
---- lib/Parrot/Install.pm 2009-06-01 09:29:57.000000000 +0200
-+++ lib/Parrot/Install.pm 2009-06-03 08:41:22.000000000 +0200
-@@ -220,6 +220,16 @@
- else {
- next unless -e $src;
- next if $^O eq 'cygwin' and -e "$src.exe"; # stat works, copy not
-+ if (-l $src) {
-+ # check if the system supports symbolic linking
-+ use Config;
-+ if ($Config{d_symlink} && $Config{d_readlink}) {
-+ # copy as symbolic link
-+ symlink(readlink($src), $dest);
-+ print "$dest\n";
-+ next;
-+ }
-+ }
- copy( $src, $dest ) or die "Error: couldn't copy $src to $dest: $!\n";
- print "$dest\n";
- }
Deleted: branches/gc_massacre/ports/fedora/2.3.0/parrot.spec
==============================================================================
--- branches/gc_massacre/ports/fedora/2.3.0/parrot.spec Tue Aug 3 22:27:14 2010 (r48297)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,379 +0,0 @@
-Name: parrot
-Version: 2.3.0
-Release: 1%{?dist}
-Summary: a virtual machine
-License: Artistic 2.0
-Group: Development/Libraries
-URL: http://www.parrot.org/
-
-Source0: ftp://ftp.parrot.org/pub/parrot/releases/stable/%{version}/parrot-%{version}.tar.gz
-Source1: %{name}.desk.in.tar.gz
-
-Patch0: parrot.patch
-#
-# see for upstream: https://trac.parrot.org/parrot/ticket/509
-# patched file: lib/Parrot/Install.pm
-# is to have the symlink: libparrot.so -> libparrot.so.%{version}
-# Without this %{_libdir}/libparrot.so would not be a symbolic link to
-# %{_libdir}/libparrot.so.%{version}
-
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRequires: readline-devel
-BuildRequires: ncurses-devel
-BuildRequires: gmp-devel
-BuildRequires: gdbm-devel
-BuildRequires: libicu-devel
-BuildRequires: perl(Test::Harness)
-BuildRequires: perl(Test::Simple)
-BuildRequires: ctags
-BuildRequires: openssl-devel
-BuildRequires: flex
-BuildRequires: bison
-# Needed to generate the Parrot PDF book
-BuildRequires: perl(Pod::PseudoPod::LaTeX), texlive-latex
-# Needed to desktop-file-install usage
-BuildRequires: desktop-file-utils
-
-
-%package docs
-Summary: Parrot Virtual Machine documentation
-Group: Documentation
-Requires: perl(strict)
-Requires: perl(warnings)
-# Provides the executable in the desktop file (xdg-open)
-Requires: xdg-utils
-BuildArch: noarch
-
-#--
-
-%package devel
-Summary: Parrot Virtual Machine development headers and libraries
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
-Requires: pkgconfig
-
-#--
-
-%package tools
-Summary: Parrot Virtual Machine development for languages
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
-Requires: perl(Pod::Simple)
-Requires: perl(File::Which) >= 0.05
-Requires: perl(Parrot::OpLib::core)
-# It is necessary to have installed the package "perl-Perl-Critic" to install
-# the parrot-tools
-Provides: perl(Parrot::Pmc2c::MethodEmitter) = %{version}
-Provides: perl(Parrot::Pmc2c::PCCMETHOD_BITS) = %{version}
-Provides: perl(Parrot::Pmc2c::PMCEmitter) = %{version}
-Provides: perl(Parrot::OpLib::core) = %{version}
-
-
-%description
-Parrot is a virtual machine designed to efficiently compile and execute
-bytecode for dynamic languages. Parrot is the target for Rakudo Perl 6,
-as well as variety of other languages.
-
-#--
-
-%description docs
-Documentation in text-, POD- and HTML-format (docs/html-subdirectory) and also
-examples about the Parrot Virtual Machine.
-
-#--
-
-%description devel
-Parrot Virtual Machine development headers and libraries.
-
-#--
-
-%description tools
-Parrot Virtual Machine development files for building languages.
-
-
-%prep
-%setup -q
-%patch0 -p0
-
-
-cat << \EOF > %{name}-prov
-#!/bin/sh
-%{__perl_provides} $* | %{__sed} -e '/perl(A)/d' -e '/perl(B)/d' \
- -e '/perl(DB)/d' -e '/perl(Parrot::OpLib::core)/d'
-EOF
-
-%global __perl_provides %{_builddir}/%{name}-%{version}/%{name}-prov
-chmod +x %{__perl_provides}
-
-
-%build
-%ifarch %{ix86} x86_64
- RPM_OPT_FLAGS="$RPM_OPT_FLAGS -maccumulate-outgoing-args"
-%else
-# The PowerPC-architecture do not build with the '-maccumulate-outgoing-args'
-# option.
- RPM_OPT_FLAGS="$RPM_OPT_FLAGS"
-%endif
-
-# there are problems in this version with the optimize="-O2" option on ppc64
-%ifarch ppc64
- RPM_OPT_FLAGS=`echo "$RPM_OPT_FLAGS" | %{__perl} -pi -e 's/-O2//'`
-%endif
-
-%{__perl} Configure.pl \
- --prefix=%{_usr} \
- --libdir=%{_libdir} \
- --sysconfdir=%{_sysconfdir} \
- --infodir=%{_datadir}/info \
- --mandir=%{_mandir} \
- --cc="%{__cc}" \
- --cxx=%{__cxx} \
- --optimize="$RPM_OPT_FLAGS" \
- --parrot_is_shared \
- --disable-rpath \
- --pkgconfigdir=pkgconfig \
- --lex=%{_bindir}/flex
-
-# The LD_LIBRARY_PATH hack is needed for "miniparrot"
-# to find his parrot-library in "blib/lib"
-export LD_LIBRARY_PATH=$( pwd )/blib/lib
-
-# pbc_to_exe would not build if %{_smp_mflags} would used
-make
-make html pdf
-
-
-%install
-rm -rf $RPM_BUILD_ROOT
-
-# The LD_LIBRARY_PATH hack is needed for the command "pbc_to_exe parrot-nqp.pbc"
-# to find his parrot-library in "blib/lib"
-export LD_LIBRARY_PATH=$( pwd )/blib/lib
-
-make install DESTDIR=$RPM_BUILD_ROOT
-
-# Creating man-pages
-%{__install} -d $RPM_BUILD_ROOT%{_mandir}/man1
-for var in 'parrot docs/running.pod' 'parrot_debugger src/parrot_debugger.c' \
- 'pbc_disassemble src/pbc_disassemble.c' 'pbc_dump src/pbc_dump.c' \
- 'pbc_merge src/pbc_merge.c' 'pbc_to_exe tools/dev/pbc_to_exe.pir' \
- 'parrot_config tools/build/parrot_config_c.pl' \
- 'parrot-nqp compilers/nqp/README.pod'
-do
- MAN_NAME=`echo $var | %{__perl} -na -e 'print $F[0]'`
- MAN_SOURCE=`echo $var | %{__perl} -na -e 'print $F[1]'`
- pod2man --section=1 --name=$MAN_NAME $MAN_SOURCE | %{__gzip} -c > $RPM_BUILD_ROOT%{_mandir}/man1/${MAN_NAME}.1.gz
-done
-
-# Drop the docs so rpm can pick them up itself.
-rm -rf $RPM_BUILD_ROOT%{_defaultdocdir}/%{name}
-
-# Force permissions on doc directories.
-find docs examples -type d -exec chmod 755 {} \;
-find docs examples -type f -exec chmod 644 {} \;
-
-
-%define RPM_PAR_LIB_DIR $RPM_BUILD_ROOT%{_libdir}/%{name}/%{version}/
-
-
-# Force permissions on shared versioned libs so they get stripped.
-# The parrot-install-script don't set the permissions right
-# With changed permissions the dependencies will be found
-find %{RPM_PAR_LIB_DIR}dynext -type f -name '*.so' -exec chmod 755 {} \;
-
-# Remove module that should be install instead (perl(File::Which))
-rm -rf %{RPM_PAR_LIB_DIR}tools/lib/File
-
-
-# Added to reduce output errors when using rpmlint
-
-# Force permission on perl-scripts in the "tools" subdirctory
-find %{RPM_PAR_LIB_DIR}tools -type f -name "*.pl" -exec chmod 755 {} \; \
- -exec %{__sed} -i -e '1 s&#! perl&#!/usr/bin/perl&' {} \;
-# Set path to parrot binary and Force permission
-find %{RPM_PAR_LIB_DIR}tools/dev -type f -name "pbc_to_exe.pir" \
- -exec %{__sed} -i -e '1 s&#! parrot&#!/usr/bin/parrot&' {} \; \
- -exec chmod 755 {} \;
-
-# Remove doc-files with zero-length
-find docs/html -type f -size 0 -exec rm -f {} \;
-find docs -wholename 'docs/doc-prep' -type f -size 0 -exec rm -f {} \;
-
-# Set path for installed programs in docs package
-find examples/json -type f -name "*.pir" \
- -exec %{__sed} -i -e '1 s&#!../../parrot&#!/usr/bin/parrot&' {} \;
-find examples -type f -path 'examples/*/*/setup.pir' \
- -exec %{__sed} -i -e '1 s&#! ../../../parrot&#!/usr/bin/parrot&' {} \;
-find examples -type f \( -name '*.pl' -o \
- -wholename 'examples/pir/befunge/t/basic.t' -o \
- -path 'examples/languages/*/harness' \) \
- -exec %{__sed} -i -e '1 s&#! perl&#!/usr/bin/perl&' {} \;
-find examples -type f -name "*.py" \
- -exec %{__sed} -i -e '1 s&#! python&#!/usr/bin/python&' {} \;
-find examples -type f -name "*.rb" \
- -exec %{__sed} -i -e '1 s&#! ruby&#!/usr/bin/ruby&' {} \;
-
-find examples -type f \( -name "*.pir" -o \
- -wholename 'examples/shootout/random.pasm' \) \
- -exec %{__sed} -i -e '1 s&#!./parrot&#!/usr/bin/parrot&' {} \;
-
-find examples -wholename 'examples/languages/abc/t/01-tests.t' \
- -exec %{__sed} -i -e '1 s&#!perl&#!/usr/bin/perl&' {} \;
-find examples -wholename 'examples/shootout/revcomp.pir' \
- -exec %{__sed} -i -e '1 s&#!parrot&#!/usr/bin/parrot&' {} \;
-
-find examples -wholename 'examples/languages/abc/t/harness' \
- -exec %{__perl} -pi -e 's/\r$//' {} \;
-
-#install desktop file
-%{__mkdir} ${RPM_BUILD_ROOT}%{_datadir}/applications/
-%{__tar} xzf %{SOURCE1} parrot_html.desk.in --to-stdout | %{__sed} "s|@DOCDIR@|%{_docdir}/%{name}-docs-%{version}|g" > ${RPM_BUILD_ROOT}%{_datadir}/applications/parrot_html.desktop
-%{__tar} xzf %{SOURCE1} parrot_pdf.desk.in --to-stdout | %{__sed} "s|@DOCDIR@|%{_docdir}/%{name}-docs-%{version}|g" > ${RPM_BUILD_ROOT}%{_datadir}/applications/parrot_pdf.desktop
-
-desktop-file-install --delete-original --add-category="Documentation" \
- --dir=${RPM_BUILD_ROOT}%{_datadir}/applications \
- ${RPM_BUILD_ROOT}%{_datadir}/applications/parrot_html.desktop
-desktop-file-install --delete-original --add-category="Documentation" \
- --dir=${RPM_BUILD_ROOT}%{_datadir}/applications \
- ${RPM_BUILD_ROOT}%{_datadir}/applications/parrot_pdf.desktop
-
-
-%check
-# 'make fulltest' is done by default; it take a lot of time
-export LD_LIBRARY_PATH=$( pwd )/blib/lib
-FULL='full'
-%{?_without_fulltest: FULL=''}
-%{?!_without_tests: make ${FULL}test}
-
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
-%files
-%defattr(-,root,root,-)
-%doc ChangeLog CREDITS NEWS PBC_COMPAT PLATFORMS README
-%doc RESPONSIBLE_PARTIES TODO LICENSE
-%{_bindir}/parrot
-%{_libdir}/parrot/
-%exclude %{_libdir}/parrot/%{version}/tools
-%exclude %{_libdir}/parrot/%{version}/VERSION
-%{_libdir}/libparrot.so.*
-%{_mandir}/man1/parrot.1.gz
-
-%files docs
-%defattr(-,root,root,-)
-%doc docs examples
-%{_datadir}/applications/parrot_html.desktop
-%{_datadir}/applications/parrot_pdf.desktop
-
-%files devel
-%defattr(-,root,root,-)
-%{_bindir}/parrot_config
-%{_bindir}/parrot_debugger
-%{_bindir}/parrot_nci_thunk_gen
-%{_bindir}/parrot-nqp
-%{_bindir}/pbc_disassemble
-%{_bindir}/pbc_merge
-%{_bindir}/pbc_to_exe
-%{_bindir}/pbc_dump
-%{_bindir}/tapir
-%{_includedir}/parrot
-%{_libdir}/libparrot.so
-%exclude %{_libdir}/libparrot.a
-%{_libdir}/pkgconfig/*
-%{_mandir}/man1/parrot_config.1.gz
-%{_mandir}/man1/parrot_debugger.1.gz
-%{_mandir}/man1/pbc_disassemble.1.gz
-%{_mandir}/man1/pbc_merge.1.gz
-%{_mandir}/man1/pbc_to_exe.1.gz
-%{_mandir}/man1/pbc_dump.1.gz
-%{_mandir}/man1/parrot-nqp.1.gz
-
-%files tools
-%defattr(-,root,root,-)
-# Files for building languages
-%{_libdir}/parrot/%{version}/tools/*
-%{_libdir}/parrot/%{version}/VERSION
-%{_usr}/src/parrot/*
-
-
-%changelog
-* Tue Apr 20 2010 Gerd Pokorra <gp at zimt.uni-siegen.de> 2.3.0-1
-- updated to 2.3.0
-- add desktop files to access the documentation for reading
-- add the tapir binary
-
-* Tue Mar 16 2010 Gerd Pokorra <gp at zimt.uni-siegen.de> 2.2.0-1
-- add the parrot_nci_thunk_gen binary
-
-* Wed Jan 20 2010 Gerd Pokorra <gp at zimt.uni-siegen.de> 2.0.0-1
-- new upstream version
-- add the parrot-nqp binary, with generating of the man-page
-
-* Fri Aug 21 2009 Gerd Pokorra <gp at zimt.uni-siegen.de> 1.5.0-1
-- add man pages
-
-* Sat Aug 1 2009 Gerd Pokorra <gp at zimt.uni-siegen.de> 1.4.0-9
-- include the necessary module Parrot::OpLib::core
-- change the place of header files to /usr/include/parrot/<version>
-- install the files /usr/src/parrot/*
-- add the new disable-rpath configure option
-
-* Wed Mar 25 2009 Gerd Pokorra <gp at zimt.uni-siegen.de> 1.0.0-6
-- add a list of changes from Lubomir Rintel
-- add filtering Provides
-- change requires for docs-subpackage
-- enable test suite
-- change the group of the subpackage "-docs" to Documentation
-- put the main-documentation from the docs-package to the main package
-- LICENSE file added
-- add Provides-lines
-- add patch for the file "tools/dev/install_files.pl"
-- add commands to reduce output of errors when using rpmlint
-- define RPM_PAR_LIB_DIR added
-- add subpackage "tools"
-- exclude tools directory from main-package
-- added make html
-
-* Sun Mar 22 2009 Fabien Georget <fabien.georget at gmail.com> 1.0.0-4
-- add tools
-
-* Sun Mar 22 2009 David Fetter <david at fetter.org> 1.0.0-3
-- Removed wrong prefix from pkgconfig per Christoph Wickert
-- Changed i386 to ix86 per Christoph Wickert
-
-* Tue Mar 17 2009 Allison Randal <allison at parrot.org> 1.0.0
-- updated to 1.0.0
-
-* Tue Jan 23 2009 Reini Urban <rurban at x-ray.at> 0.9.0
-- added parrot_utils to devel
-
-* Tue Dec 16 2008 Whiteknight <wknight8111 at gmail.com> 0.8.2
-- updated to 0.8.2
-
-* Wed Feb 20 2008 Patrick Michaud <pmichaud at pobox.com> 0.5.3
-- Update to 0.5.3.
-
-* Sat Mar 10 2007 Steven Pritchard <steve at kspei.com> 0.4.9-1
-- Update to 0.4.9.
-- BuildRequires ncurses-devel.
-- For some reason now I need to force -lm too.
-- Remove some files/directories that shouldn't be included.
-- Override lib_dir and make various substitutions to try to fix multilib.
-- Remove rpath use from Makefile.
-- Fix a pod error in src/ops/experimental.ops.
-- Enable "make test" since t/doc/pod.t won't fail now.
-- Force permissions on shared libraries so rpmbuild strips them.
-- Fix URL, description, summary, etc.
-- Add post/postun.
-- Move parrot-config to the devel sub-package.
-- Force permissions on the doc directories.
-- Add -lcurses to get readline detection to work.
-- Add BuildRequires libicu-devel.
-
-* Tue Mar 18 2003 Steve Fink <sfink at foxglove.localdomain> 0.0.11
-- first .spec file created
Copied and modified: branches/gc_massacre/ports/fedora/2.6.0/parrot.desk.in.tar.gz (from r47995, branches/gc_massacre/ports/fedora/2.3.0/parrot.desk.in.tar.gz)
==============================================================================
Binary file (source and/or target). No diff available.
Copied and modified: branches/gc_massacre/ports/fedora/2.6.0/parrot.spec (from r47995, branches/gc_massacre/ports/fedora/2.3.0/parrot.spec)
==============================================================================
--- branches/gc_massacre/ports/fedora/2.3.0/parrot.spec Mon Jul 5 01:11:51 2010 (r47995, copy source)
+++ branches/gc_massacre/ports/fedora/2.6.0/parrot.spec Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,6 +1,6 @@
Name: parrot
-Version: 2.3.0
-Release: 1%{?dist}
+Version: 2.6.0
+Release: 2%{?dist}
Summary: a virtual machine
License: Artistic 2.0
Group: Development/Libraries
@@ -9,14 +9,6 @@
Source0: ftp://ftp.parrot.org/pub/parrot/releases/stable/%{version}/parrot-%{version}.tar.gz
Source1: %{name}.desk.in.tar.gz
-Patch0: parrot.patch
-#
-# see for upstream: https://trac.parrot.org/parrot/ticket/509
-# patched file: lib/Parrot/Install.pm
-# is to have the symlink: libparrot.so -> libparrot.so.%{version}
-# Without this %{_libdir}/libparrot.so would not be a symbolic link to
-# %{_libdir}/libparrot.so.%{version}
-
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: readline-devel
BuildRequires: ncurses-devel
@@ -50,7 +42,7 @@
Summary: Parrot Virtual Machine development headers and libraries
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
-Requires: pkgconfig
+Requires: pkgconfig, vim-common
#--
@@ -93,7 +85,6 @@
%prep
%setup -q
-%patch0 -p0
cat << \EOF > %{name}-prov
@@ -115,8 +106,9 @@
RPM_OPT_FLAGS="$RPM_OPT_FLAGS"
%endif
-# there are problems in this version with the optimize="-O2" option on ppc64
-%ifarch ppc64
+# there are problems in this version with the optimize="-O2" option building on
+# ppc64 and ppc with nqp-rx
+%ifarch ppc64 ppc
RPM_OPT_FLAGS=`echo "$RPM_OPT_FLAGS" | %{__perl} -pi -e 's/-O2//'`
%endif
@@ -152,6 +144,14 @@
make install DESTDIR=$RPM_BUILD_ROOT
+# Generate several files for syntax-highlighting and automatic indenting.
+# First they are installed in BUILD-directory with make and after that
+# they needed to be copied to the RPM_BUILD_ROOT.
+( cd editor;
+ make vim-install VIM_DIR=.%{_datadir}/vim/vimfiles \
+ SKELETON=%{_datadir}/vim/vimfiles;
+ cp -r ./usr $RPM_BUILD_ROOT )
+
# Creating man-pages
%{__install} -d $RPM_BUILD_ROOT%{_mandir}/man1
for var in 'parrot docs/running.pod' 'parrot_debugger src/parrot_debugger.c' \
@@ -200,10 +200,10 @@
find docs -wholename 'docs/doc-prep' -type f -size 0 -exec rm -f {} \;
# Set path for installed programs in docs package
-find examples/json -type f -name "*.pir" \
- -exec %{__sed} -i -e '1 s&#!../../parrot&#!/usr/bin/parrot&' {} \;
-find examples -type f -path 'examples/*/*/setup.pir' \
- -exec %{__sed} -i -e '1 s&#! ../../../parrot&#!/usr/bin/parrot&' {} \;
+find examples -type f \( -name "*.pir" -o \
+ -wholename 'examples/shootout/random.pasm' \) \
+ -exec %{__sed} -i -e '1 s&#!.*\(parrot\)&#!/usr/bin/\1&' {} \;
+
find examples -type f \( -name '*.pl' -o \
-wholename 'examples/pir/befunge/t/basic.t' -o \
-path 'examples/languages/*/harness' \) \
@@ -213,14 +213,8 @@
find examples -type f -name "*.rb" \
-exec %{__sed} -i -e '1 s&#! ruby&#!/usr/bin/ruby&' {} \;
-find examples -type f \( -name "*.pir" -o \
- -wholename 'examples/shootout/random.pasm' \) \
- -exec %{__sed} -i -e '1 s&#!./parrot&#!/usr/bin/parrot&' {} \;
-
find examples -wholename 'examples/languages/abc/t/01-tests.t' \
-exec %{__sed} -i -e '1 s&#!perl&#!/usr/bin/perl&' {} \;
-find examples -wholename 'examples/shootout/revcomp.pir' \
- -exec %{__sed} -i -e '1 s&#!parrot&#!/usr/bin/parrot&' {} \;
find examples -wholename 'examples/languages/abc/t/harness' \
-exec %{__perl} -pi -e 's/\r$//' {} \;
@@ -243,7 +237,7 @@
export LD_LIBRARY_PATH=$( pwd )/blib/lib
FULL='full'
%{?_without_fulltest: FULL=''}
-%{?!_without_tests: make ${FULL}test}
+%{?!_without_tests: make ${FULL}test; rm -f docs/doc-prep}
%clean
@@ -266,7 +260,7 @@
%files docs
%defattr(-,root,root,-)
-%doc docs examples
+%doc docs examples LICENSE
%{_datadir}/applications/parrot_html.desktop
%{_datadir}/applications/parrot_pdf.desktop
@@ -276,11 +270,12 @@
%{_bindir}/parrot_debugger
%{_bindir}/parrot_nci_thunk_gen
%{_bindir}/parrot-nqp
+%{_bindir}/parrot-prove
%{_bindir}/pbc_disassemble
%{_bindir}/pbc_merge
%{_bindir}/pbc_to_exe
%{_bindir}/pbc_dump
-%{_bindir}/tapir
+%{_bindir}/ops2c
%{_includedir}/parrot
%{_libdir}/libparrot.so
%exclude %{_libdir}/libparrot.a
@@ -292,6 +287,10 @@
%{_mandir}/man1/pbc_to_exe.1.gz
%{_mandir}/man1/pbc_dump.1.gz
%{_mandir}/man1/parrot-nqp.1.gz
+%{_datadir}/vim/vimfiles/skeleton.pir
+%{_datadir}/vim/vimfiles/plugin/parrot.vim
+%{_datadir}/vim/vimfiles/syntax/*
+%{_datadir}/vim/vimfiles/indent/pir.vim
%files tools
%defattr(-,root,root,-)
@@ -302,12 +301,19 @@
%changelog
+* Wed Jul 21 2010 Gerd Pokorra <gp at zimt.uni-siegen.de> 2.6.0-2
+- updated to 2.6.0
+- add vim files for syntax-highlighting and automatic indenting
+- so requires "vim-common" is added
+- add LICENSE file to docs-subpackage
+
+* Fri Jun 18 2010 Gerd Pokorra <gp at zimt.uni-siegen.de> 2.5.0-1
+- updated to 2.5.0
+- add the ops2c binary
+- add the parrot-prove binary
+
* Tue Apr 20 2010 Gerd Pokorra <gp at zimt.uni-siegen.de> 2.3.0-1
-- updated to 2.3.0
- add desktop files to access the documentation for reading
-- add the tapir binary
-
-* Tue Mar 16 2010 Gerd Pokorra <gp at zimt.uni-siegen.de> 2.2.0-1
- add the parrot_nci_thunk_gen binary
* Wed Jan 20 2010 Gerd Pokorra <gp at zimt.uni-siegen.de> 2.0.0-1
@@ -344,7 +350,6 @@
* Sun Mar 22 2009 David Fetter <david at fetter.org> 1.0.0-3
- Removed wrong prefix from pkgconfig per Christoph Wickert
-- Changed i386 to ix86 per Christoph Wickert
* Tue Mar 17 2009 Allison Randal <allison at parrot.org> 1.0.0
- updated to 1.0.0
@@ -359,7 +364,6 @@
- Update to 0.5.3.
* Sat Mar 10 2007 Steven Pritchard <steve at kspei.com> 0.4.9-1
-- Update to 0.4.9.
- BuildRequires ncurses-devel.
- For some reason now I need to force -lm too.
- Remove some files/directories that shouldn't be included.
@@ -374,6 +378,3 @@
- Force permissions on the doc directories.
- Add -lcurses to get readline detection to work.
- Add BuildRequires libicu-devel.
-
-* Tue Mar 18 2003 Steve Fink <sfink at foxglove.localdomain> 0.0.11
-- first .spec file created
Deleted: branches/gc_massacre/ports/suse/2.2.0/parrot.diff
==============================================================================
--- branches/gc_massacre/ports/suse/2.2.0/parrot.diff Tue Aug 3 22:27:14 2010 (r48297)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,47 +0,0 @@
---- ./src/packfile.c.orig 2010-03-16 05:15:34.000000000 +0000
-+++ ./src/packfile.c 2010-03-17 13:44:10.000000000 +0000
-@@ -4442,8 +4442,7 @@ PackFile_Annotations_add_group(PARROT_IN
-
- /* Allocate extra space for the group in the groups array. */
- if (self->groups)
-- self->groups =
-- self->groups = mem_gc_realloc_n_typed_zeroed(interp, self->groups,
-+ self->groups = mem_gc_realloc_n_typed_zeroed(interp, self->groups,
- 1 + self->num_groups, self->num_groups, PackFile_Annotations_Group *);
- else
- self->groups = mem_gc_allocate_n_typed(interp,
---- ./src/pmc.c.orig 2010-03-16 05:15:34.000000000 +0000
-+++ ./src/pmc.c 2010-03-17 13:32:50.000000000 +0000
-@@ -584,7 +584,7 @@ Parrot_pmc_new_init_int(PARROT_INTERP, I
- if (!PMC_IS_NULL(classobj) && PObj_is_class_TEST(classobj)) {
- PMC *initial = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
- VTABLE_set_integer_native(interp, initial, init);
-- VTABLE_instantiate(interp, classobj, initial);
-+ return VTABLE_instantiate(interp, classobj, initial);
- }
- else {
- PMC * const pmc = get_new_pmc_header(interp, base_type, 0);
---- ./tools/dev/pbc_to_exe.pir.orig 2010-03-17 14:04:34.000000000 +0000
-+++ ./tools/dev/pbc_to_exe.pir 2010-03-17 14:05:34.000000000 +0000
-@@ -510,10 +510,11 @@ END_OF_FUNCTION
- .param int install :optional
-
- $P0 = '_config'()
-- .local string cc, ccflags, cc_o_out, osname, build_dir, slash
-+ .local string cc, ccflags, optimize, cc_o_out, osname, build_dir, slash
- .local string installed, includepath, versiondir
- cc = $P0['cc']
- ccflags = $P0['ccflags']
-+ optimize = $P0['optimize']
- cc_o_out = $P0['cc_o_out']
- osname = $P0['osname']
- build_dir = $P0['build_dir']
-@@ -547,6 +548,8 @@ END_OF_FUNCTION
- compile .= pathquote
- compile .= ' '
- compile .= ccflags
-+ compile .= ' '
-+ compile .= optimize
- compile .= ' -c '
- compile .= cfile
-
Deleted: branches/gc_massacre/ports/suse/2.2.0/parrot.spec
==============================================================================
--- branches/gc_massacre/ports/suse/2.2.0/parrot.spec Tue Aug 3 22:27:14 2010 (r48297)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,226 +0,0 @@
-#
-# spec file for package parrot (Version 2.2.0)
-#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
-#
-# All modifications and additions to the file contributed by third parties
-# remain the property of their copyright owners, unless otherwise agreed
-# upon. The license for this file, and modifications and additions to the
-# file, is the same license as for the pristine package itself (unless the
-# license for the pristine package is not an Open Source License, in which
-# case the license is the MIT License). An "Open Source License" is a
-# license that conforms to the Open Source Definition (Version 1.9)
-# published by the Open Source Initiative.
-
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
-#
-
-
-
-Name: parrot
-Version: 2.2.0
-Release: 1.10
-%define pversion 2_2_0
-Summary: Parrot Virtual Machine
-License: Artistic 2.0
-Group: Development/Libraries
-Url: http://www.parrot.org/
-Source0: parrot-%{version}.tar.bz2
-Patch0: parrot.diff
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: readline-devel
-BuildRequires: ncurses-devel
-BuildRequires: gmp-devel
-BuildRequires: gdbm-devel
-BuildRequires: libicu-devel
-%if ! 0%{?suse_version}
-BuildRequires: perl-Test-Harness
-%endif
-
-%package docs
-Summary: Parrot Virtual Machine documentation
-License: Artistic 2.0
-Group: Development/Libraries
-%if ! 0%{?suse_version}
-BuildRequires: /usr/bin/perldoc
-%endif
-
-%package -n libparrot%pversion
-
-
-Summary: Parrot Virtual Machine Library
-License: Artistic 2.0
-Group: Development/Libraries
-
-%package devel
-Summary: Parrot Virtual Machine development headers and libraries
-License: Artistic 2.0
-Group: Development/Libraries
-Requires: %{name} = %{version}
-Requires: readline-devel
-Requires: ncurses-devel
-Requires: gmp-devel
-Requires: gdbm-devel
-Requires: libicu-devel
-%if ! 0%{?suse_version}
-Requires: %{_libdir}/pkgconfig
-%endif
-
-%description
-Parrot is a virtual machine designed to efficiently compile and execute
-bytecode for dynamic languages. Parrot is the target for Rakudo Perl 6,
-as well as variety of other languages.
-
-%description -n libparrot%pversion
-Parrot is a virtual machine designed to efficiently compile and execute
-bytecode for dynamic languages. Parrot is the target for Rakudo Perl 6,
-as well as variety of other languages.
-
-%description docs
-Documentation in text-, POD- and HTML-format (docs/html-subdirectory) and also
-examples about the Parrot Virtual Machine
-
-%description devel
-Parrot Virtual Machine development headers and libraries.
-
-%prep
-%setup -q
-%patch0
-%{__perl} -pi -e 's,"lib/,"%{_lib}/, if (/CONST_STRING\(interp,/)' \
- src/library.c
-%{__perl} -pi -e "s,'/usr/lib','%{_libdir}',;s,runtime/lib/,runtime/%{_lib}/," \
- tools/dev/install_files.pl
-%{__perl} -pi -e "s,'/usr/lib','%{_libdir}',;s,runtime/lib/,runtime/%{_lib}/," \
- tools/dev/install_dev_files.pl
-
-%build
-if test "%{_vendor}" = "suse"
-then
- LIBS='-lncurses -lm -lrt'
-else
- LIBS='-lcurses -lm -lrt'
-fi
-OPTIMIZE="$RPM_OPT_FLAGS -fno-strict-aliasing"
-OPTIMIZE="$RPM_OPT_FLAGS"
-%ifarch %ix86 %x86_64
-OPTIMIZE="$OPTIMIZE -maccumulate-outgoing-args"
-%endif
-%ifarch ppc ia64
-OPTIMIZE="-O0"
-%endif
-%{__perl} Configure.pl \
- --prefix=%{_usr} \
- --libdir=%{_libdir} \
- --sysconfdir=%{_sysconfdir} \
- --infodir=%{_datadir}/info \
- --mandir=%{_mandir} \
- --cc="%{__cc}" \
- --cxx=%{__cxx} \
- --optimize="$OPTIMIZE" \
- --parrot_is_shared \
- --disable-rpath \
- --lex=/usr/bin/flex \
- --yacc=/usr/bin/yacc \
- --libs="$LIBS"
-export LD_LIBRARY_PATH=$( pwd )/blib/lib
-make
-make parrot_utils
-make installable
-make html
-
-%install
-rm -rf $RPM_BUILD_ROOT
-mkdir $RPM_BUILD_ROOT
-export LD_LIBRARY_PATH=$( pwd )/blib/lib
-make install-dev DESTDIR=$RPM_BUILD_ROOT
-PARROT_LIB=%{_libdir}`./parrot_config versiondir`
-PARROT_INC=%{_includedir}`./parrot_config versiondir`
-wd=`pwd`
-for i in $RPM_BUILD_ROOT$PARROT_LIB/tools/build/* ; do
- perl -pi -e "s@$wd/include@$PARROT_INC at g" $i
- perl -pi -e "s@$wd/src/pmc@$PARROT_INC/pmc at g" $i
- perl -pi -e "s@(-Wl,)?-L$wd/blib/lib@@" $i
- perl -pi -e "s@$wd@$PARROT_LIB at g" $i
-done
-perl -pi -e 's@^(use lib ..FindBin::Bin/\.\./)\.\."@$1lib"@' $RPM_BUILD_ROOT$PARROT_LIB/tools/build/dynpmc.pl
-# Drop the docs so rpm can pick them up itself.
-rm -rf $RPM_BUILD_ROOT%{_usr}/share/doc/parrot # necessary for SuSE
-#rm -rf $RPM_BUILD_ROOT/%{_docdir}/parrot # for Solaris?
-# Force permissions on doc directories.
-find docs examples -type d -exec chmod 755 {} \;
-find docs examples -type f -exec chmod 644 {} \;
-# Force permissions on shared libs so they get stripped.
-find $RPM_BUILD_ROOT%{_libdir} -type f \( -name '*.so' -o -name '*.so.*' \) \
- -exec chmod 755 {} \;
-# make libparrot.so a symlink
-(cd $RPM_BUILD_ROOT%{_libdir} ; ln -fs libparrot.so.* libparrot.so)
-
-%check
-export LD_LIBRARY_PATH=$( pwd )/blib/lib
-# make test < /dev/null
-# %{?_with_fulltest:make fulltest < /dev/null}
-# make test || :
-# %{?_with_fulltest:make fulltest || :}
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%post -n libparrot%pversion -p /sbin/ldconfig
-
-%postun -n libparrot%pversion -p /sbin/ldconfig
-
-%files
-%defattr(-,root,root,-)
-%exclude %{_bindir}/parrot_config
-%exclude %{_bindir}/parrot_debugger
-%exclude %{_bindir}/pbc_*
-%{_bindir}/*
-
-%files -n libparrot%pversion
-%defattr(-,root,root,-)
-%dir %{_libdir}/parrot
-%dir %{_libdir}/parrot/*
-%{_libdir}/parrot/*/[^st]*
-%{_libdir}/libparrot.so.*
-
-%files docs
-%defattr(-,root,root,-)
-%doc ChangeLog CREDITS NEWS PBC_COMPAT PLATFORMS README
-%doc RESPONSIBLE_PARTIES TODO
-%doc docs examples
-
-%files devel
-%defattr(-,root,root,-)
-%{_bindir}/parrot_config
-%{_bindir}/parrot_debugger
-%{_bindir}/pbc_disassemble
-%{_bindir}/pbc_merge
-%{_bindir}/pbc_to_exe
-%{_bindir}/pbc_dump
-%{_includedir}/parrot
-%{_libdir}/libparrot.so
-%{_libdir}/libparrot.a
-%{_libdir}/pkgconfig/*
-%{_libdir}/parrot/*/[st]*
-%{_usrsrc}/parrot
-
-%changelog
-* Wed Mar 17 2010 mls at suse.de
-- update to parrot-2.2.0
- * Most internal allocations now use the GC
- * RNG non-randomness fixes
- * Elimination of much dead code
-* Fri Feb 19 2010 mls at suse.de
-- update to parrot-2.1.1
-* Fri Oct 23 2009 mls at suse.de
-- update to October version
-* Mon Sep 21 2009 mls at suse.de
-- update to September version
-* Thu Aug 27 2009 mls at suse.de
-- update to August version
-* Fri Jun 26 2009 mls at suse.de
-- update to June version
-* Thu Apr 23 2009 mls at suse.de
-- update to April version
-* Fri Apr 3 2009 mls at suse.de
-- initial revision
Added: branches/gc_massacre/ports/suse/2.5.0/parrot.diff
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gc_massacre/ports/suse/2.5.0/parrot.diff Tue Aug 3 22:27:14 2010 (r48298)
@@ -0,0 +1,35 @@
+--- ./tools/dev/pbc_to_exe.pir.orig 2010-04-19 06:37:28.000000000 +0000
++++ ./tools/dev/pbc_to_exe.pir 2010-04-20 14:25:40.000000000 +0000
+@@ -510,10 +510,11 @@ END_OF_FUNCTION
+ .param int install :optional
+
+ $P0 = '_config'()
+- .local string cc, ccflags, cc_o_out, osname, build_dir, slash
++ .local string cc, ccflags, optimize, cc_o_out, osname, build_dir, slash
+ .local string installed, includepath, versiondir
+ cc = $P0['cc']
+ ccflags = $P0['ccflags']
++ optimize = $P0['optimize']
+ cc_o_out = $P0['cc_o_out']
+ osname = $P0['osname']
+ build_dir = $P0['build_dir']
+@@ -547,6 +548,8 @@ END_OF_FUNCTION
+ compile .= pathquote
+ compile .= ' '
+ compile .= ccflags
++ compile .= ' '
++ compile .= optimize
+ compile .= ' -c '
+ compile .= cfile
+
+--- ./src/gc/system.c.orig 2010-04-20 14:36:05.000000000 +0000
++++ ./src/gc/system.c 2010-04-20 14:38:24.000000000 +0000
+@@ -197,7 +197,7 @@ trace_system_areas(PARROT_INTERP, ARGIN(
+
+ # endif /* __hpux */
+
+- trace_mem_block(interp, base,
++ trace_mem_block(interp, mem_pools, base,
+ (size_t)current_regstore_top);
+
+ #else /* !__ia64__ */
Copied and modified: branches/gc_massacre/ports/suse/2.5.0/parrot.spec (from r47995, branches/gc_massacre/ports/suse/2.2.0/parrot.spec)
==============================================================================
--- branches/gc_massacre/ports/suse/2.2.0/parrot.spec Mon Jul 5 01:11:51 2010 (r47995, copy source)
+++ branches/gc_massacre/ports/suse/2.5.0/parrot.spec Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,5 +1,5 @@
#
-# spec file for package parrot (Version 2.2.0)
+# spec file for package parrot (Version 2.5.0)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -18,9 +18,9 @@
Name: parrot
-Version: 2.2.0
-Release: 1.10
-%define pversion 2_2_0
+Version: 2.5.0
+Release: 14.3
+%define pversion 2_5_0
Summary: Parrot Virtual Machine
License: Artistic 2.0
Group: Development/Libraries
@@ -205,6 +205,29 @@
%{_usrsrc}/parrot
%changelog
+* Fri Jun 18 2010 mls at suse.de
+- update to parrot-2.5.0
+ * Added ByteBuffer PMC to allow direct byte manipulation
+ * Modified some PMC vtable functions to reduce complexity, simplifying coverage.
+ * Modified PAST to generate symbolic PASM constants in PIR output.
+ * General STRING API cleanups
+ * Fixed up 'exit' opcode, added CONTROL_EXIT exception type.
+ * Added proper support for multisubs and multimethods in nqp-rx
+* Thu May 20 2010 mls at suse.de
+- update to parrot-2.4.0
+ * STRINGs are now immutable.
+ * use STRINGNULL instead of NULL when working with strings
+ * Fixed storage of methods in the NameSpace PMC
+ * Added :nsentry flag to force method to be stored in the NameSpace
+ * Added StringBuilder and PackfileDebug PMCs
+ * Added experimental opcodes find_codepoint and unroll
+* Thu Apr 22 2010 mls at suse.de
+- update to parrot-2.3.0
+ * dlopen improved, loadlib opcode added
+ * Calling conventions are now much more consistent, and follows natural
+ semantics of handling arguments and return values
+ * Datatype STRINGNULL for a single Null STRING added
+- work around i586 compiler bug
* Wed Mar 17 2010 mls at suse.de
- update to parrot-2.2.0
* Most internal allocations now use the GC
Modified: branches/gc_massacre/runtime/parrot/library/LWP/UserAgent.pir
==============================================================================
--- branches/gc_massacre/runtime/parrot/library/LWP/UserAgent.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/runtime/parrot/library/LWP/UserAgent.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -17,7 +17,6 @@
=cut
.namespace ['LWP';'UserAgent']
-.loadlib 'io_ops'
.sub '' :init :load :anon
load_bytecode 'URI.pbc'
@@ -287,17 +286,19 @@
.sub 'progress' :method
.param string status
.param pmc msg
+ .local pmc stderr
+ stderr = getstderr
$P0 = getattribute self, 'show_progress'
if null $P0 goto L1
unless $P0 goto L1
unless status == 'begin' goto L2
- printerr "** "
+ print stderr, "** "
$P0 = getattribute msg, 'method'
- printerr $P0
- printerr " "
+ print stderr, $P0
+ print stderr, " "
$P0 = getattribute msg, 'uri'
- printerr $P0
- printerr " ==> "
+ print stderr, $P0
+ print stderr, " ==> "
$N1 = time
$P0 = box $N1
setattribute self, 'progress_start', $P0
@@ -316,15 +317,15 @@
setattribute self, 'progress_lastp', $P0
setattribute self, 'progress_ani', $P0
$S0 = msg.'status_line'()
- printerr $S0
+ print stderr, $S0
$N0 =$N2 - $N1
$I0 = $N0
unless $I0 goto L4
- printerr " ("
- printerr $I0
- printerr "s)"
+ print stderr, " ("
+ print stderr, $I0
+ print stderr, "s)"
L4:
- printerr "\n"
+ print stderr, "\n"
goto L1
L3:
unless status == 'tick' goto L5
@@ -333,8 +334,8 @@
$P0 %= 4
$P1 = split '', '-\|/'
$S0 = $P1[$P0]
- printerr $S0
- printerr "\b"
+ print stderr, $S0
+ print stderr, "\b"
goto L1
L5:
$N0 = status
@@ -347,8 +348,8 @@
$S0 = $P0
if $S0 == $S1 goto L1
set $P0, $S1
- printerr $S1
- printerr "\b\b\b\b"
+ print stderr, $S1
+ print stderr, "\b\b\b\b"
L1:
.end
Modified: branches/gc_massacre/runtime/parrot/library/P6object.pir
==============================================================================
--- branches/gc_massacre/runtime/parrot/library/P6object.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/runtime/parrot/library/P6object.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -86,6 +86,12 @@
$P2.'register'($P0)
$P3 = $P2.'register'($P1)
setattribute $P3, 'protoobject', $P3
+
+ $P0 = new ['Boolean']
+ set_hll_global ['P6protoobject'], 'False', $P0
+ $P0 = new ['Boolean']
+ assign $P0, 1
+ set_hll_global ['P6protoobject'], 'True', $P0
.end
@@ -111,7 +117,8 @@
.sub 'WHAT' :method :nsentry
.local pmc how, what
how = self.'HOW'()
- .tailcall how.'WHAT'()
+ what = getattribute how, 'protoobject'
+ .return (what)
.end
@@ -162,25 +169,13 @@
=over
-=item WHAT()
-
-Return the protoobject for this metaclass.
-
-=cut
-
-.namespace ['P6metaclass']
-
-.sub 'WHAT' :method :nsentry
- $P0 = getattribute self, 'protoobject'
- .return ($P0)
-.end
-
=item isa(x)
Return a true value if the invocant 'isa' C<x>.
=cut
+.namespace ['P6metaclass']
.sub 'isa' :method :multi(_,_, _)
.param pmc obj
.param pmc x
@@ -805,31 +800,30 @@
# Perl6Object (legacy) and Mu accept anything.
$S0 = parrotclass
- if $S0 == 'Perl6Object' goto accept_anyway
- if $S0 == 'Mu' goto accept_anyway
+ if $S0 == 'Perl6Object' goto accept
+ if $S0 == 'Mu' goto accept
# Otherwise, just try a normal check.
$I0 = can topic, 'HOW'
- unless $I0 goto end
+ unless $I0 goto reject
topicwhat = topic.'WHAT'()
$I0 = isa topicwhat, parrotclass
- if $I0 goto end
+ if $I0 goto accept
$I0 = does topic, parrotclass
- if $I0 goto end
+ if $I0 goto accept
# If this fails, and we want Any, and it's something form outside
# of the Perl 6 world, we'd best just accept it.
- unless $S0 == 'Any' goto end
+ unless $S0 == 'Any' goto reject
$I0 = isa topicwhat, 'Mu'
- unless $I0 goto accept_anyway
- $I0 = 0
- goto end
-
- accept_anyway:
- $I0 = 1
+ unless $I0 goto accept
+ reject:
+ $P0 = get_global 'False'
+ .return ($P0)
- end:
- .return ($I0)
+ accept:
+ $P0 = get_global 'True'
+ .return ($P0)
.end
Modified: branches/gc_massacre/runtime/parrot/library/Pg.pir
==============================================================================
--- branches/gc_massacre/runtime/parrot/library/Pg.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/runtime/parrot/library/Pg.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -8,7 +8,7 @@
=head1 SYNOPSIS
.local pmc pg, con, res
- pg = get_class 'Pg'
+ pg = new 'Pg'
con = pg.'connectdb'('dbname = db')
res = con.'exec'('SELECT * from tab')
n = res.'ntuples'()
@@ -40,6 +40,7 @@
## TODO generate includes from libpq-fe.h
## .include 'postgres.pasm'
+.HLL 'parrot'
.const int CONNECTION_OK = 0
.sub __load :load
@@ -61,7 +62,7 @@
=item con = Pg::connectdb('var=val var=val ...')
-A class method that returns a new connection object.
+A method that returns a new connection object.
=back
Modified: branches/gc_massacre/runtime/parrot/library/SDL.pir
==============================================================================
--- branches/gc_massacre/runtime/parrot/library/SDL.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/runtime/parrot/library/SDL.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -91,7 +91,6 @@
.local pmc env
env = new 'Env'
.local string sdlpath
- say'Hu'
sdlpath = env['SDLLIBPATH']
if sdlpath == '' goto default_locations
say sdlpath
Added: branches/gc_massacre/runtime/parrot/library/URI/Escape.pir
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gc_massacre/runtime/parrot/library/URI/Escape.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -0,0 +1,155 @@
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+URI/Escape - percent-encoding conversions
+
+=head1 DESCRIPTION
+
+Based on CPAN URL::Escape module.
+
+Sub names in the CPAN module are not used, reserved for eventual
+implementation more compatible.
+
+http://en.wikipedia.org/wiki/Percent_encoding
+
+=cut
+
+.namespace [ 'URI' ; 'Escape' ]
+
+.const string URIcomponentunchange = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.~"
+.const string URIunchange = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.~!*\'();:@&=+$,/?#[]"
+
+.const string hexdigits = '0123456789ABCDEF'
+
+=head1 Subs
+
+=over 4
+
+=item percent_encode_except
+
+$S0 = 'percent_encode_except'(source, except)
+
+Return the percent encoding of the source string preserving the characters
+present in the except string.
+
+=cut
+
+.sub percent_encode_except
+ .param string s
+ .param string except
+
+ .local int asciicharset, utf8enc, scharset, senc
+ asciicharset = find_charset 'ascii'
+ scharset = charset s
+ if scharset == asciicharset goto encodeit
+
+ utf8enc = find_encoding 'utf8'
+ senc = encoding s
+ if utf8enc == senc goto encodeit
+ s = trans_encoding s, utf8enc
+
+ encodeit:
+ .local pmc buf, result, it
+ .local string c
+ .local int code
+ buf = root_new ['parrot';'ByteBuffer']
+ buf = s
+ result = root_new ['parrot';'ByteBuffer']
+ it = iter buf
+ nextbuf:
+ unless it goto endbuf
+ code = shift it
+ c = chr code
+ $I0 = index except, c
+ if $I0 == -1 goto isreserved
+ push result, code
+ goto nextbuf
+ isreserved:
+ push result, 0x25
+ $I0 = code / 16
+ c = substr hexdigits, $I0, 1
+ $I0 = ord c
+ push result, $I0
+ $I0 = code % 16
+ c = substr hexdigits, $I0, 1
+ $I0 = ord c
+ push result, $I0
+ goto nextbuf
+ endbuf:
+ s = result.'get_string_as'(ascii:"")
+ done:
+ .return(s)
+.end
+
+=item percent_encode
+
+$S0 = 'percent_encode'(source)
+
+Return the percent encoding of the source string preserving the URI unreserved
+characters. Intended for usage with full URIs.
+
+=cut
+
+.sub percent_encode
+ .param string s
+ .tailcall 'percent_encode_except'(s, URIunchange)
+.end
+
+=item percent_encode_component
+
+$S0 = 'percent_encode_component'(source)
+
+Return the percent encoding of the source string prserving the URI unreserved
+and URI reserved characters. Intended for usage with URIs components, such as
+form data in HTTP GET requests.
+
+=cut
+
+.sub percent_encode_component
+ .param string s
+ .tailcall 'percent_encode_except'(s, URIcomponentunchange)
+.end
+
+=item main
+
+A main function for testing purposes.
+
+Prints the percent_encode and percent_encode_component of the command line
+args provided.
+
+=cut
+
+.sub main :anon :main
+ .param pmc args :optional
+ .local pmc it
+ .local string arg, encoded
+ it = iter args
+ unless it goto end
+ arg = shift it
+ next:
+ unless it goto end
+ arg = shift it
+ encoded = 'percent_encode'(arg)
+ print "'"
+ print arg
+ print "' -> '"
+ print encoded
+ print "' , '"
+ encoded = 'percent_encode_component'(arg)
+ print encoded
+ print "'\n"
+ goto next
+ end:
+.end
+
+=back
+
+=cut
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/gc_massacre/runtime/parrot/library/distutils.pir
==============================================================================
--- branches/gc_massacre/runtime/parrot/library/distutils.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/runtime/parrot/library/distutils.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -193,7 +193,11 @@
L<http://bitbucket.org/riffraff/shakespeare-parrot/src/tip/setup.pir>
-L<http://gitorious.org/kakapo/kakapo/blobs/master/setup.nqp>
+L<http://github.com/bacek/pir/blob/master/setup.pir>
+
+L<http://github.com/kthakore/parrotSDL/blob/master/setup.pir>
+
+L<http://github.com/ekiru/tree-optimization/blob/master/setup.nqp>
=cut
Modified: branches/gc_massacre/src/call/args.c
==============================================================================
--- branches/gc_massacre/src/call/args.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/call/args.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -583,15 +583,6 @@
/* Regular arguments just set the value */
switch (type) {
- case 'I':
- VTABLE_push_integer(interp, call_object, va_arg(*args, INTVAL));
- break;
- case 'N':
- VTABLE_push_float(interp, call_object, va_arg(*args, FLOATVAL));
- break;
- case 'S':
- VTABLE_push_string(interp, call_object, va_arg(*args, STRING *));
- break;
case 'P':
{
const INTVAL type_lookahead = sig[i+1];
@@ -617,6 +608,15 @@
: clone_key_arg(interp, pmc_arg));
break;
}
+ case 'S':
+ VTABLE_push_string(interp, call_object, va_arg(*args, STRING *));
+ break;
+ case 'I':
+ VTABLE_push_integer(interp, call_object, va_arg(*args, INTVAL));
+ break;
+ case 'N':
+ VTABLE_push_float(interp, call_object, va_arg(*args, FLOATVAL));
+ break;
case '-':
return call_object;
break;
@@ -750,16 +750,14 @@
INTVAL param_index = 0;
INTVAL arg_index = 0;
INTVAL named_count = 0;
- INTVAL err_check = 0;
INTVAL param_count;
INTVAL positional_args;
+ /* Check if we should be throwing errors. This is configured separately
+ * for parameters and return values. */
+ const INTVAL err_check = PARROT_ERRORS_test(interp, direction);
GETATTR_FixedIntegerArray_size(interp, raw_sig, param_count);
- /* Check if we should be throwing errors. This is configured separately
- * for parameters and return values. */
- if (PARROT_ERRORS_test(interp, direction))
- err_check = 1;
/* A null call object is fine if there are no arguments and no returns. */
if (PMC_IS_NULL(call_object)) {
@@ -777,19 +775,16 @@
callee side only. Does not add :call_sig arg support on the caller side.
This is not the final form of the algorithm, but should provide the
tools that HLL designers need in the interim. */
- if (param_count == 1) {
- const INTVAL first_flag = raw_params[0];
-
- if (first_flag & PARROT_ARG_CALL_SIG) {
- *accessor->pmc(interp, arg_info, 0) = call_object;
- return;
+ if (param_count > 2 || param_count == 0)
+ /* help branch predictors */;
+ else {
+ const INTVAL second_flag = raw_params[param_count - 1];
+ if (second_flag & PARROT_ARG_CALL_SIG) {
+ *accessor->pmc(interp, arg_info, param_count - 1) = call_object;
+ if (param_count == 1)
+ return;
}
}
- else if (param_count == 2) {
- const INTVAL second_flag = raw_params[1];
- if (second_flag & PARROT_ARG_CALL_SIG)
- *accessor->pmc(interp, arg_info, 1) = call_object;
- }
/* First iterate over positional args and positional parameters. */
GETATTR_CallContext_num_positionals(interp, call_object, positional_args);
@@ -882,6 +877,14 @@
/* Go ahead and fill the parameter with a positional argument. */
switch (PARROT_ARG_TYPE_MASK_MASK(param_flags)) {
+ case PARROT_ARG_PMC:
+ *accessor->pmc(interp, arg_info, param_index) =
+ VTABLE_get_pmc_keyed_int(interp, call_object, arg_index);
+ break;
+ case PARROT_ARG_STRING:
+ *accessor->string(interp, arg_info, param_index) =
+ VTABLE_get_string_keyed_int(interp, call_object, arg_index);
+ break;
case PARROT_ARG_INTVAL:
*accessor->intval(interp, arg_info, param_index) =
VTABLE_get_integer_keyed_int(interp, call_object, arg_index);
@@ -890,14 +893,6 @@
*accessor->numval(interp, arg_info, param_index) =
VTABLE_get_number_keyed_int(interp, call_object, arg_index);
break;
- case PARROT_ARG_STRING:
- *accessor->string(interp, arg_info, param_index) =
- VTABLE_get_string_keyed_int(interp, call_object, arg_index);
- break;
- case PARROT_ARG_PMC:
- *accessor->pmc(interp, arg_info, param_index) =
- VTABLE_get_pmc_keyed_int(interp, call_object, arg_index);
- break;
default:
Parrot_ex_throw_from_c_args(interp, NULL,
EXCEPTION_INVALID_OPERATION, "invalid parameter type");
@@ -959,16 +954,9 @@
}
/* Now iterate over the named arguments and parameters. */
- while (1) {
+ while (param_index < param_count) {
STRING *param_name;
- INTVAL param_flags;
-
- /* Check if we've used up all the parameters. We'll check for leftover
- * named args after the loop. */
- if (param_index >= param_count)
- break;
-
- param_flags = raw_params[param_index];
+ INTVAL param_flags = raw_params[param_index];
/* All remaining parameters must be named. */
if (!(param_flags & PARROT_ARG_NAME))
Modified: branches/gc_massacre/src/call/context.c
==============================================================================
--- branches/gc_massacre/src/call/context.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/call/context.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -219,30 +219,24 @@
clear_regs(PARROT_INTERP, ARGMOD(Parrot_Context *ctx))
{
ASSERT_ARGS(clear_regs)
- UINTVAL i;
+ UINTVAL i;
+ const UINTVAL s_regs = ctx->n_regs_used[REGNO_STR];
+ const UINTVAL p_regs = ctx->n_regs_used[REGNO_PMC];
- /* NULL out registers - P/S have to be NULL for GC
- *
- * if the architecture has 0x := NULL and 0.0 we could memset too
- */
+ /* NULL out registers - P/S have to be NULL for GC */
+ for (i = 0; i < s_regs; ++i)
+ ctx->bp_ps.regs_s[i] = STRINGNULL;
- for (i = 0; i < ctx->n_regs_used[REGNO_PMC]; ++i) {
+ for (i = 0; i < p_regs; ++i)
ctx->bp_ps.regs_p[-1L - i] = PMCNULL;
- }
-
- for (i = 0; i < ctx->n_regs_used[REGNO_STR]; ++i) {
- ctx->bp_ps.regs_s[i] = STRINGNULL;
- }
if (Interp_debug_TEST(interp, PARROT_REG_DEBUG_FLAG)) {
/* depending on -D40, set int and num to identifiable garbage values */
- for (i = 0; i < ctx->n_regs_used[REGNO_INT]; ++i) {
+ for (i = 0; i < ctx->n_regs_used[REGNO_INT]; ++i)
ctx->bp.regs_i[i] = -999;
- }
- for (i = 0; i < ctx->n_regs_used[REGNO_NUM]; ++i) {
+ for (i = 0; i < ctx->n_regs_used[REGNO_NUM]; ++i)
ctx->bp.regs_n[-1L - i] = -99.9;
- }
}
}
@@ -261,12 +255,7 @@
init_context(PARROT_INTERP, ARGMOD(PMC *pmcctx), ARGIN_NULLOK(PMC *pmcold))
{
ASSERT_ARGS(init_context)
- Parrot_Context * const ctx = CONTEXT_STRUCT(pmcctx);
-
- /* pmcold may be null */
- Parrot_Context *old = PMC_IS_NULL(pmcold)
- ? NULL
- : CONTEXT_STRUCT(pmcold);
+ Parrot_Context * const ctx = CONTEXT_STRUCT(pmcctx);
PARROT_ASSERT_MSG(!PMC_IS_NULL(pmcctx), "Can't initialise Null CallContext");
@@ -288,7 +277,17 @@
ctx->current_sig = PMCNULL;
ctx->current_sub = PMCNULL;
- if (old) {
+ if (PMC_IS_NULL(pmcold)) {
+ ctx->constants = NULL;
+ ctx->warns = 0;
+ ctx->errors = 0;
+ ctx->trace_flags = 0;
+ ctx->current_HLL = 0;
+ ctx->current_namespace = PMCNULL;
+ ctx->recursion_depth = 0;
+ }
+ else {
+ Parrot_Context *old = CONTEXT_STRUCT(pmcold);
/* some items should better be COW copied */
ctx->constants = old->constants;
ctx->warns = old->warns;
@@ -300,18 +299,6 @@
ctx->recursion_depth = old->recursion_depth;
ctx->caller_ctx = pmcold;
}
- else {
- ctx->constants = NULL;
- ctx->warns = 0;
- ctx->errors = 0;
- ctx->trace_flags = 0;
- ctx->current_HLL = 0;
- ctx->current_namespace = PMCNULL;
- ctx->recursion_depth = 0;
- }
-
- /* other stuff is set inside Sub.invoke */
- clear_regs(interp, ctx);
}
@@ -469,7 +456,11 @@
ARGIN(const UINTVAL *number_regs_used))
{
ASSERT_ARGS(Parrot_pcc_allocate_registers)
- allocate_registers(interp, pmcctx, number_regs_used);
+ if (number_regs_used[0]
+ || number_regs_used[1]
+ || number_regs_used[2]
+ || number_regs_used[3])
+ allocate_registers(interp, pmcctx, number_regs_used);
}
@@ -520,7 +511,7 @@
ARGIN_NULLOK(PMC *old))
{
ASSERT_ARGS(Parrot_alloc_context)
- PMC *pmcctx = Parrot_pmc_new(interp, enum_class_CallContext);
+ PMC * const pmcctx = Parrot_pmc_new(interp, enum_class_CallContext);
allocate_registers(interp, pmcctx, number_regs_used);
init_context(interp, pmcctx, old);
@@ -546,7 +537,7 @@
Parrot_pcc_allocate_empty_context(PARROT_INTERP, ARGIN_NULLOK(PMC *old))
{
ASSERT_ARGS(Parrot_pcc_allocate_empty_context)
- PMC *pmcctx = Parrot_pmc_new(interp, enum_class_CallContext);
+ PMC * const pmcctx = Parrot_pmc_new(interp, enum_class_CallContext);
init_context(interp, pmcctx, old);
@@ -624,8 +615,9 @@
Parrot_clear_i(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_clear_i)
+ const UINTVAL regs_used = Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_INT);
UINTVAL i;
- for (i = 0; i < Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_INT); ++i)
+ for (i = 0; i < regs_used; ++i)
REG_INT(interp, i) = 0;
}
@@ -645,8 +637,9 @@
Parrot_clear_s(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_clear_s)
+ const UINTVAL regs_used = Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_STR);
UINTVAL i;
- for (i = 0; i < Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_STR); ++i)
+ for (i = 0; i < regs_used; ++i)
REG_STR(interp, i) = NULL;
}
@@ -666,8 +659,9 @@
Parrot_clear_p(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_clear_p)
+ const UINTVAL regs_used = Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_PMC);
UINTVAL i;
- for (i = 0; i < Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_PMC); ++i)
+ for (i = 0; i < regs_used; ++i)
REG_PMC(interp, i) = PMCNULL;
}
@@ -687,8 +681,9 @@
Parrot_clear_n(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_clear_n)
+ const UINTVAL regs_used = Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_NUM);
UINTVAL i;
- for (i = 0; i < Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_NUM); ++i)
+ for (i = 0; i < regs_used; ++i)
REG_NUM(interp, i) = 0.0;
}
Modified: branches/gc_massacre/src/call/context_accessors.c
==============================================================================
--- branches/gc_massacre/src/call/context_accessors.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/call/context_accessors.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -35,8 +35,9 @@
PARROT_EXPORT
PARROT_CAN_RETURN_NULL
+PARROT_PURE_FUNCTION
Parrot_Context*
-Parrot_pcc_get_context_struct_func(PARROT_INTERP, ARGIN_NULLOK(PMC *ctx))
+Parrot_pcc_get_context_struct_func(SHIM_INTERP, ARGIN_NULLOK(PMC *ctx))
{
ASSERT_ARGS(Parrot_pcc_get_context_struct_func)
@@ -48,11 +49,11 @@
/*
-=item C<struct PackFile_Constant ** Parrot_pcc_get_constants_func(PARROT_INTERP,
+=item C<struct PackFile_Constant * Parrot_pcc_get_constants_func(PARROT_INTERP,
PMC *ctx)>
=item C<void Parrot_pcc_set_constants_func(PARROT_INTERP, PMC *ctx, struct
-PackFile_Constant **constants)>
+PackFile_Constant *constants)>
Get/set constants from context.
@@ -62,8 +63,9 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
-struct PackFile_Constant **
-Parrot_pcc_get_constants_func(PARROT_INTERP, ARGIN(PMC *ctx))
+PARROT_PURE_FUNCTION
+struct PackFile_Constant *
+Parrot_pcc_get_constants_func(SHIM_INTERP, ARGIN(PMC *ctx))
{
ASSERT_ARGS(Parrot_pcc_get_constants_func)
PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext);
@@ -73,8 +75,8 @@
PARROT_EXPORT
PARROT_CAN_RETURN_NULL
void
-Parrot_pcc_set_constants_func(PARROT_INTERP, ARGIN(PMC *ctx),
- ARGIN_NULLOK(struct PackFile_Constant **constants))
+Parrot_pcc_set_constants_func(SHIM_INTERP, ARGIN(PMC *ctx),
+ ARGIN_NULLOK(struct PackFile_Constant *constants))
{
ASSERT_ARGS(Parrot_pcc_set_constants_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -93,11 +95,12 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
UINTVAL
-Parrot_pcc_get_recursion_depth_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_recursion_depth_func(SHIM_INTERP, ARGIN(PMC *ctx))
{
ASSERT_ARGS(Parrot_pcc_get_recursion_depth_func)
- const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+ const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext);
return c->recursion_depth;
}
@@ -114,7 +117,7 @@
PARROT_EXPORT
UINTVAL
-Parrot_pcc_inc_recursion_depth_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_inc_recursion_depth_func(SHIM_INTERP, ARGIN(PMC *ctx))
{
ASSERT_ARGS(Parrot_pcc_inc_recursion_depth_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -134,7 +137,7 @@
PARROT_EXPORT
UINTVAL
-Parrot_pcc_dec_recursion_depth_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_dec_recursion_depth_func(SHIM_INTERP, ARGIN(PMC *ctx))
{
ASSERT_ARGS(Parrot_pcc_dec_recursion_depth_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -156,9 +159,10 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
PMC*
-Parrot_pcc_get_caller_ctx_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_caller_ctx_func(SHIM_INTERP, ARGIN(PMC *ctx))
{
ASSERT_ARGS(Parrot_pcc_get_caller_ctx_func)
const Parrot_Context *c = CONTEXT_STRUCT(ctx);
@@ -168,7 +172,7 @@
PARROT_EXPORT
void
-Parrot_pcc_set_caller_ctx_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *caller_ctx))
+Parrot_pcc_set_caller_ctx_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *caller_ctx))
{
ASSERT_ARGS(Parrot_pcc_set_caller_ctx_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -191,9 +195,10 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
PMC*
-Parrot_pcc_get_outer_ctx_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_outer_ctx_func(SHIM_INTERP, ARGIN(PMC *ctx))
{
ASSERT_ARGS(Parrot_pcc_get_outer_ctx_func)
const Parrot_Context *c = CONTEXT_STRUCT(ctx);
@@ -203,7 +208,7 @@
PARROT_EXPORT
void
-Parrot_pcc_set_outer_ctx_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *outer_ctx))
+Parrot_pcc_set_outer_ctx_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *outer_ctx))
{
ASSERT_ARGS(Parrot_pcc_set_outer_ctx_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -224,9 +229,10 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CANNOT_RETURN_NULL
PMC*
-Parrot_pcc_get_lex_pad_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_lex_pad_func(SHIM_INTERP, ARGIN(PMC *ctx))
{
ASSERT_ARGS(Parrot_pcc_get_lex_pad_func)
const Parrot_Context *c = CONTEXT_STRUCT(ctx);
@@ -236,7 +242,7 @@
PARROT_EXPORT
void
-Parrot_pcc_set_lex_pad_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *lex_pad))
+Parrot_pcc_set_lex_pad_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *lex_pad))
{
ASSERT_ARGS(Parrot_pcc_set_lex_pad_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -258,19 +264,20 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
PMC*
-Parrot_pcc_get_namespace_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_namespace_func(SHIM_INTERP, ARGIN(PMC *ctx))
{
ASSERT_ARGS(Parrot_pcc_get_namespace_func)
- const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+ const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext);
return c->current_namespace;
}
PARROT_EXPORT
void
-Parrot_pcc_set_namespace_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *_namespace))
+Parrot_pcc_set_namespace_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *_namespace))
{
ASSERT_ARGS(Parrot_pcc_set_namespace_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -291,18 +298,19 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
INTVAL
-Parrot_pcc_get_HLL_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_HLL_func(SHIM_INTERP, ARGIN(PMC *ctx))
{
ASSERT_ARGS(Parrot_pcc_get_HLL_func)
- const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+ const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext);
return c->current_HLL;
}
PARROT_EXPORT
void
-Parrot_pcc_set_HLL_func(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL hll)
+Parrot_pcc_set_HLL_func(SHIM_INTERP, ARGIN(PMC *ctx), INTVAL hll)
{
ASSERT_ARGS(Parrot_pcc_set_HLL_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -324,12 +332,13 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
PMC*
-Parrot_pcc_get_handlers_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_handlers_func(SHIM_INTERP, ARGIN(PMC *ctx))
{
ASSERT_ARGS(Parrot_pcc_get_handlers_func)
- const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+ const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext);
return c->handlers;
}
@@ -337,7 +346,7 @@
PARROT_EXPORT
void
-Parrot_pcc_set_handlers_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *handlers))
+Parrot_pcc_set_handlers_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *handlers))
{
ASSERT_ARGS(Parrot_pcc_set_handlers_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -359,19 +368,20 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
PMC*
-Parrot_pcc_get_continuation_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_continuation_func(SHIM_INTERP, ARGIN(PMC *ctx))
{
ASSERT_ARGS(Parrot_pcc_get_continuation_func)
- const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+ const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext);
return c->current_cont;
}
PARROT_EXPORT
void
-Parrot_pcc_set_continuation_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *_continuation))
+Parrot_pcc_set_continuation_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *_continuation))
{
ASSERT_ARGS(Parrot_pcc_set_continuation_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -393,19 +403,20 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
PMC*
-Parrot_pcc_get_signature_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_signature_func(SHIM_INTERP, ARGIN(PMC *ctx))
{
ASSERT_ARGS(Parrot_pcc_get_signature_func)
- const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+ const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext);
return c->current_sig;
}
PARROT_EXPORT
void
-Parrot_pcc_set_signature_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *sig_object))
+Parrot_pcc_set_signature_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *sig_object))
{
ASSERT_ARGS(Parrot_pcc_set_signature_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -426,19 +437,20 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
PMC*
-Parrot_pcc_get_object_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_object_func(SHIM_INTERP, ARGIN(PMC *ctx))
{
ASSERT_ARGS(Parrot_pcc_get_object_func)
- const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+ const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext);
return c->current_object;
}
PARROT_EXPORT
void
-Parrot_pcc_set_object_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *object))
+Parrot_pcc_set_object_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *object))
{
ASSERT_ARGS(Parrot_pcc_set_object_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -459,19 +471,20 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
opcode_t*
-Parrot_pcc_get_pc_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_pc_func(SHIM_INTERP, ARGIN(PMC *ctx))
{
ASSERT_ARGS(Parrot_pcc_get_pc_func)
- const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+ const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext);
return c->current_pc;
}
PARROT_EXPORT
void
-Parrot_pcc_set_pc_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(opcode_t *pc))
+Parrot_pcc_set_pc_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(opcode_t *pc))
{
ASSERT_ARGS(Parrot_pcc_set_pc_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -492,7 +505,7 @@
PARROT_EXPORT
UINTVAL
-Parrot_pcc_warnings_on_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_warnings_on_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
{
ASSERT_ARGS(Parrot_pcc_warnings_on_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -515,7 +528,7 @@
PARROT_EXPORT
void
-Parrot_pcc_warnings_off_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_warnings_off_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
{
ASSERT_ARGS(Parrot_pcc_warnings_off_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -536,11 +549,12 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
UINTVAL
-Parrot_pcc_warnings_test_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_warnings_test_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
{
ASSERT_ARGS(Parrot_pcc_warnings_test_func)
- Parrot_Context * const c = CONTEXT_STRUCT(ctx);
+ const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext);
return c->warns & flags;
}
@@ -557,7 +571,7 @@
PARROT_EXPORT
void
-Parrot_pcc_errors_on_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_errors_on_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
{
ASSERT_ARGS(Parrot_pcc_errors_on_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -578,7 +592,7 @@
PARROT_EXPORT
void
-Parrot_pcc_errors_off_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_errors_off_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
{
ASSERT_ARGS(Parrot_pcc_errors_off_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -598,11 +612,12 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
UINTVAL
-Parrot_pcc_errors_test_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_errors_test_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
{
ASSERT_ARGS(Parrot_pcc_errors_test_func)
- Parrot_Context * const c = CONTEXT_STRUCT(ctx);
+ const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext);
return c->errors & flags;
}
@@ -620,7 +635,7 @@
PARROT_EXPORT
void
-Parrot_pcc_trace_flags_on_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_trace_flags_on_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
{
ASSERT_ARGS(Parrot_pcc_trace_flags_on_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -642,7 +657,7 @@
PARROT_EXPORT
void
-Parrot_pcc_trace_flags_off_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_trace_flags_off_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
{
ASSERT_ARGS(Parrot_pcc_trace_flags_off_func)
Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -662,11 +677,12 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
UINTVAL
-Parrot_pcc_trace_flags_test_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_trace_flags_test_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
{
ASSERT_ARGS(Parrot_pcc_trace_flags_test_func)
- Parrot_Context * const c = CONTEXT_STRUCT(ctx);
+ const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext);
return c->trace_flags & flags;
}
@@ -693,48 +709,52 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
INTVAL
-Parrot_pcc_get_int_constant_func(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
+Parrot_pcc_get_int_constant_func(SHIM_INTERP, ARGIN(PMC *ctx), INTVAL idx)
{
ASSERT_ARGS(Parrot_pcc_get_int_constant_func)
- const Parrot_Context * c = CONTEXT_STRUCT(ctx);
+ const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext);
PARROT_ASSERT(c->constants[idx]->type == 'i');
return c->constants[idx]->u.integer;
}
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
FLOATVAL
-Parrot_pcc_get_num_constant_func(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
+Parrot_pcc_get_num_constant_func(SHIM_INTERP, ARGIN(PMC *ctx), INTVAL idx)
{
ASSERT_ARGS(Parrot_pcc_get_num_constant_func)
- const Parrot_Context * c = CONTEXT_STRUCT(ctx);
+ const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext);
PARROT_ASSERT(c->constants[idx]->type == 'n');
return c->constants[idx]->u.number;
}
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
STRING*
-Parrot_pcc_get_string_constant_func(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
+Parrot_pcc_get_string_constant_func(SHIM_INTERP, ARGIN(PMC *ctx), INTVAL idx)
{
ASSERT_ARGS(Parrot_pcc_get_string_constant_func)
- const Parrot_Context * c = CONTEXT_STRUCT(ctx);
+ const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext);
PARROT_ASSERT(c->constants[idx]->type == 's');
return c->constants[idx]->u.string;
}
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
PMC*
-Parrot_pcc_get_pmc_constant_func(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
+Parrot_pcc_get_pmc_constant_func(SHIM_INTERP, ARGIN(PMC *ctx), INTVAL idx)
{
ASSERT_ARGS(Parrot_pcc_get_pmc_constant_func)
- const Parrot_Context * c = CONTEXT_STRUCT(ctx);
+ const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext);
PARROT_ASSERT((c->constants[idx]->type == 'k')
|| (c->constants[idx]->type == 'p'));
Modified: branches/gc_massacre/src/call/pcc.c
==============================================================================
--- branches/gc_massacre/src/call/pcc.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/call/pcc.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -58,57 +58,15 @@
=item C<void Parrot_pcc_invoke_sub_from_c_args(PARROT_INTERP, PMC *sub_obj,
const char *sig, ...)>
-Follows the same conventions as C<Parrot_PCCINVOKE>, but the subroutine object
-to invoke is passed as an argument rather than looked up by name. The signature
-string and call arguments are converted to a CallSignature PMC.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_pcc_invoke_sub_from_c_args(PARROT_INTERP, ARGIN(PMC *sub_obj),
- ARGIN(const char *sig), ...)
-{
- ASSERT_ARGS(Parrot_pcc_invoke_sub_from_c_args)
- PMC *call_obj;
- va_list args;
- const char *arg_sig, *ret_sig;
- PMC * const old_call_obj =
- Parrot_pcc_get_signature(interp, CURRENT_CONTEXT(interp));
-
- Parrot_pcc_split_signature_string(sig, &arg_sig, &ret_sig);
-
- va_start(args, sig);
- call_obj = Parrot_pcc_build_call_from_varargs(interp, PMCNULL,
- arg_sig, &args);
- Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), call_obj);
- Parrot_pcc_invoke_from_sig_object(interp, sub_obj, call_obj);
- call_obj = Parrot_pcc_get_signature(interp, CURRENT_CONTEXT(interp));
- Parrot_pcc_fill_params_from_varargs(interp, call_obj, ret_sig, &args,
- PARROT_ERRORS_RESULT_COUNT_FLAG);
- va_end(args);
- Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), old_call_obj);
-}
-
-
-/*
-
-=item C<void Parrot_PCCINVOKE(PARROT_INTERP, PMC* pmc, STRING *method_name,
-const char *signature, ...)>
+C<pmc> is the invocant.
-DEPRECATED. See TT #443. Use Parrot_pcc_invoke_method_from_c_args instead.
+C<sub_obj> is the sub to invoke.
-C<pmc> is the invocant.
+C<sig> is the signature.
-C<method_name> is the same C<method_name> used in the C<find_method>
-VTABLE call
+Variable args contains the IN arguments followed by the OUT results variables.
+You must pass the address_of(&) the OUT results, of course.
-C<signature> is a C string describing the Parrot calling conventions for
-Parrot_PCCINVOKE. ... variable args contains the IN arguments followed
-by the OUT results variables. You must pass the address_of(&) the OUT
-results, of course.
Signatures:
uppercase letters repesent each arg and denote its types
@@ -147,7 +105,6 @@
a FLOATVAL: N
a slurpy PMC: Ps
-invokes a PMC method
=cut
@@ -155,25 +112,28 @@
PARROT_EXPORT
void
-Parrot_PCCINVOKE(PARROT_INTERP, ARGIN(PMC* pmc), ARGMOD(STRING *method_name),
- ARGIN(const char *signature), ...)
+Parrot_pcc_invoke_sub_from_c_args(PARROT_INTERP, ARGIN(PMC *sub_obj),
+ ARGIN(const char *sig), ...)
{
- ASSERT_ARGS(Parrot_PCCINVOKE)
- PMC *sig_obj;
- PMC *sub_obj;
- va_list args;
- va_start(args, signature);
- sig_obj = Parrot_pcc_build_sig_object_from_varargs(interp, pmc, signature, args);
- va_end(args);
+ ASSERT_ARGS(Parrot_pcc_invoke_sub_from_c_args)
+ PMC *call_obj;
+ va_list args;
+ const char *arg_sig, *ret_sig;
+ PMC * const old_call_obj =
+ Parrot_pcc_get_signature(interp, CURRENT_CONTEXT(interp));
- /* Find the subroutine object as a named method on pmc */
- sub_obj = VTABLE_find_method(interp, pmc, method_name);
- if (PMC_IS_NULL(sub_obj))
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_METHOD_NOT_FOUND,
- "Method '%Ss' not found", method_name);
+ Parrot_pcc_split_signature_string(sig, &arg_sig, &ret_sig);
- /* Invoke the subroutine object with the given CallSignature object */
- Parrot_pcc_invoke_from_sig_object(interp, sub_obj, sig_obj);
+ va_start(args, sig);
+ call_obj = Parrot_pcc_build_call_from_varargs(interp, PMCNULL,
+ arg_sig, &args);
+ Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), call_obj);
+ Parrot_pcc_invoke_from_sig_object(interp, sub_obj, call_obj);
+ call_obj = Parrot_pcc_get_signature(interp, CURRENT_CONTEXT(interp));
+ Parrot_pcc_fill_params_from_varargs(interp, call_obj, ret_sig, &args,
+ PARROT_ERRORS_RESULT_COUNT_FLAG);
+ va_end(args);
+ Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), old_call_obj);
}
@@ -291,12 +251,19 @@
{
ASSERT_ARGS(do_run_ops)
- if (sub_obj->vtable->base_type < enum_class_core_max)
- return sub_obj->vtable->base_type == enum_class_Sub
- || sub_obj->vtable->base_type == enum_class_MultiSub
- || sub_obj->vtable->base_type == enum_class_Eval;
- else
- return is_invokable(interp, sub_obj);
+ if (sub_obj->vtable->base_type < enum_class_core_max) {
+ switch (sub_obj->vtable->base_type) {
+ case enum_class_Sub:
+ case enum_class_MultiSub:
+ case enum_class_Eval:
+ return 1;
+ case enum_class_Object:
+ break;
+ default:
+ return 0;
+ }
+ }
+ return is_invokable(interp, sub_obj);
}
/*
@@ -322,9 +289,8 @@
=item C<void Parrot_pcc_invoke_from_sig_object(PARROT_INTERP, PMC *sub_obj, PMC
*call_object)>
-Follows the same conventions as C<Parrot_PCCINVOKE>, but the subroutine object
-to invoke is passed as an argument rather than looked up by name, and the
-signature string and call arguments are passed in a CallSignature PMC.
+Follows the same conventions as C<Parrot_pcc_invoke_method_from_c_args>, but
+the signature string and call arguments are passed in a CallSignature PMC.
=cut
@@ -352,7 +318,7 @@
/* PIR Subs need runops to run their opcodes. Methods and NCI subs
* don't. */
- if (do_run_ops(interp, sub_obj)) {
+ if (dest && do_run_ops(interp, sub_obj)) {
Parrot_runcore_t *old_core = interp->run_core;
const opcode_t offset = dest - interp->code->base.data;
Modified: branches/gc_massacre/src/debug.c
==============================================================================
--- branches/gc_massacre/src/debug.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/debug.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -2323,7 +2323,7 @@
case PARROT_ARG_NC:
{
/* Convert the float to a string */
- const FLOATVAL f = interp->code->const_table->constants[op[j]]->u.number;
+ const FLOATVAL f = interp->code->const_table->constants[op[j]].u.number;
Parrot_snprintf(interp, buf, sizeof (buf), FLOATVAL_FMT, f);
strcpy(&dest[size], buf);
size += strlen(buf);
@@ -2331,13 +2331,13 @@
break;
case PARROT_ARG_SC:
dest[size++] = '"';
- if (interp->code->const_table->constants[op[j]]-> u.string->strlen) {
+ if (interp->code->const_table->constants[op[j]].u.string->strlen) {
char * const unescaped =
Parrot_str_to_cstring(interp, interp->code->
- const_table->constants[op[j]]->u.string);
+ const_table->constants[op[j]].u.string);
char * const escaped =
PDB_escape(interp, unescaped, interp->code->const_table->
- constants[op[j]]->u.string->strlen);
+ constants[op[j]].u.string->strlen);
if (escaped) {
strcpy(&dest[size], escaped);
size += strlen(escaped);
@@ -2361,7 +2361,7 @@
break;
case PARROT_ARG_KC:
{
- PMC * k = interp->code->const_table->constants[op[j]]->u.key;
+ PMC * k = interp->code->const_table->constants[op[j]].u.key;
dest[size - 1] = '[';
while (k) {
switch (PObj_get_FLAGS(k)) {
@@ -2463,7 +2463,7 @@
if (specialop > 0) {
char buf[1000];
- PMC * const sig = interp->code->const_table->constants[op[1]]->u.key;
+ PMC * const sig = interp->code->const_table->constants[op[1]].u.key;
const int n_values = VTABLE_elements(interp, sig);
/* The flag_names strings come from Call_bits_enum_t (with which it
should probably be colocated); they name the bits from LSB to MSB.
Modified: branches/gc_massacre/src/dynext.c
==============================================================================
--- branches/gc_massacre/src/dynext.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/dynext.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -413,6 +413,36 @@
/*
+=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.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_CAN_RETURN_NULL
+void *
+Parrot_dlsym_str(PARROT_INTERP,
+ ARGIN_NULLOK(void *handle), ARGIN_NULLOK(STRING *symbol))
+{
+ ASSERT_ARGS(Parrot_dlsym_str)
+
+ void *ptr;
+ if (STRING_IS_NULL(symbol))
+ ptr = NULL;
+ else {
+ char *const symbol_cs = Parrot_str_to_cstring(interp, symbol);
+ ptr = Parrot_dlsym(handle, symbol_cs);
+ Parrot_str_free_cstring(symbol_cs);
+ }
+ return ptr;
+}
+
+/*
+
=item C<static PMC * run_init_lib(PARROT_INTERP, void *handle, STRING *lib_name,
STRING *wo_ext)>
@@ -453,18 +483,14 @@
"Parrot_lib_%Ss_load", lib_name);
STRING * const init_func_name = Parrot_sprintf_c(interp,
"Parrot_lib_%Ss_init", lib_name);
- char * const cload_func_name = Parrot_str_to_cstring(interp, load_name);
- char * const cinit_func_name = Parrot_str_to_cstring(interp, init_func_name);
/* get load_func */
- void * dlsymfunc = Parrot_dlsym(handle, cload_func_name);
+ void * dlsymfunc = Parrot_dlsym_str(interp, handle, load_name);
load_func = (PMC * (*)(PARROT_INTERP)) D2FPTR(dlsymfunc);
- Parrot_str_free_cstring(cload_func_name);
/* get init_func */
- dlsymfunc = Parrot_dlsym(handle, cinit_func_name);
+ dlsymfunc = Parrot_dlsym_str(interp, handle, init_func_name);
init_func = (void (*)(PARROT_INTERP, PMC *)) D2FPTR(dlsymfunc);
- Parrot_str_free_cstring(cinit_func_name);
}
else {
load_func = NULL;
Modified: branches/gc_massacre/src/dynoplibs/Rules.in
==============================================================================
--- branches/gc_massacre/src/dynoplibs/Rules.in Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/dynoplibs/Rules.in Tue Aug 3 22:27:14 2010 (r48298)
@@ -15,7 +15,7 @@
#IF(cygwin or hpux): $(CHMOD) 0775 $@
src/dynoplibs/obscure_ops$(O): $(DYNOP_O_DEPS) \
- src/dynoplibs/obscure_ops.c include/parrot/runcore_api.h
+ src/dynoplibs/obscure_ops.c src/dynoplibs/obscure_ops.h
src/dynoplibs/obscure_ops.h: src/dynoplibs/obscure_ops.c
@@ -120,10 +120,9 @@
#IF(cygwin or hpux): $(CHMOD) 0775 $@
src/dynoplibs/io_ops$(O): $(DYNOP_O_DEPS) \
- src/dynoplibs/io_ops.c src/dynoplibs/io_ops.h
+ src/dynoplibs/io_ops.c src/dynoplibs/io_ops.h src/io/io_private.h
src/dynoplibs/io_ops.h: src/dynoplibs/io_ops.c
src/dynoplibs/io_ops.c: src/dynoplibs/io.ops $(OPS2C)
$(OPS2C) --dynamic src/dynoplibs/io.ops --quiet
-
Modified: branches/gc_massacre/src/dynpmc/Defines.in
==============================================================================
--- branches/gc_massacre/src/dynpmc/Defines.in Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/dynpmc/Defines.in Tue Aug 3 22:27:14 2010 (r48298)
@@ -41,7 +41,6 @@
include/parrot/extend_vtable.h \
include/parrot/feature.h \
include/parrot/gc_api.h \
- include/parrot/global.h \
include/parrot/global_setup.h \
include/parrot/has_header.h \
include/parrot/hash.h \
@@ -54,6 +53,7 @@
include/parrot/memory.h \
include/parrot/misc.h \
include/parrot/multidispatch.h \
+ include/parrot/namespace.h \
include/parrot/nci.h \
include/parrot/oo.h \
include/parrot/op.h \
Modified: branches/gc_massacre/src/dynpmc/gziphandle.pmc
==============================================================================
--- branches/gc_massacre/src/dynpmc/gziphandle.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/dynpmc/gziphandle.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -27,7 +27,7 @@
/* HEADERIZER BEGIN: static */
/* HEADERIZER END: static */
-pmclass GzipHandle provides Handle dynpmc auto_attrs {
+pmclass GzipHandle extends Handle dynpmc auto_attrs {
ATTR void *file;
/*
@@ -224,6 +224,8 @@
*/
METHOD is_tty() {
+ Parrot_warn_deprecated(INTERP,
+ "'is_tty' is deprecated, use 'isatty' instead - TT #1689");
RETURN(INTVAL 0);
}
Modified: branches/gc_massacre/src/dynpmc/rational.pmc
==============================================================================
--- branches/gc_massacre/src/dynpmc/rational.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/dynpmc/rational.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -541,7 +541,7 @@
*/
VTABLE PMC *add_int(INTVAL value, PMC* dest) {
- dest = STATICSELF.clone();;
+ dest = STATICSELF.clone();
rat_add_integer(INTERP, dest, (int) value);
return dest;
}
Modified: branches/gc_massacre/src/embed.c
==============================================================================
--- branches/gc_massacre/src/embed.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/embed.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -20,6 +20,7 @@
#include "parrot/parrot.h"
#include "parrot/embed.h"
+#include "parrot/extend.h"
#include "parrot/oplib/ops.h"
#include "pmc/pmc_sub.h"
#include "pmc/pmc_callcontext.h"
@@ -729,7 +730,7 @@
for (i = 0; i < ft->fixup_count; ++i) {
if (ft->fixups[i].type == enum_fixup_sub) {
const opcode_t ci = ft->fixups[i].offset;
- PMC * const sub_pmc = ct->constants[ci]->u.key;
+ PMC * const sub_pmc = ct->constants[ci].u.key;
Parrot_Sub_attributes *sub;
PMC_get_sub(interp, sub_pmc, sub);
@@ -808,7 +809,7 @@
Parrot_pcc_set_sub(interp, CURRENT_CONTEXT(interp), NULL);
Parrot_pcc_set_constants(interp, interp->ctx, interp->code->const_table->constants);
- Parrot_pcc_invoke_sub_from_c_args(interp, main_sub, "P->", userargv);
+ Parrot_ext_call(interp, main_sub, "P->", userargv);
}
@@ -876,7 +877,7 @@
Parrot_io_fprintf(interp, output, "=head1 Constant-table\n\n");
for (i = 0; i < numconstants; ++i) {
- const PackFile_Constant * const c = interp->code->const_table->constants[i];
+ const PackFile_Constant * const c = &interp->code->const_table->constants[i];
switch (c->type) {
case PFC_NUMBER:
@@ -1023,7 +1024,7 @@
const int filename_const_offset =
interp->code->debugs->mappings[curr_mapping].filename;
Parrot_io_fprintf(interp, output, "# Current Source Filename '%Ss'\n",
- interp->code->const_table->constants[filename_const_offset]->u.string);
+ interp->code->const_table->constants[filename_const_offset].u.string);
++curr_mapping;
}
}
Modified: branches/gc_massacre/src/exceptions.c
==============================================================================
--- branches/gc_massacre/src/exceptions.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/exceptions.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -68,7 +68,7 @@
long error, ARGIN_NULLOK(STRING *msg))
{
ASSERT_ARGS(Parrot_ex_build_exception)
- PMC *exception = Parrot_pmc_new(interp, enum_class_Exception);
+ PMC * const exception = Parrot_pmc_new(interp, enum_class_Exception);
VTABLE_set_integer_keyed_str(interp, exception, CONST_STRING(interp, "severity"), severity);
VTABLE_set_integer_keyed_str(interp, exception, CONST_STRING(interp, "type"), error);
Modified: branches/gc_massacre/src/extend.c
==============================================================================
--- branches/gc_massacre/src/extend.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/extend.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -180,6 +180,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_PMC
Parrot_get_root_namespace(PARROT_INTERP)
{
@@ -243,6 +244,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_PMC
Parrot_PMC_null(void)
{
@@ -337,6 +339,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_Int
Parrot_get_intreg(PARROT_INTERP, Parrot_Int regnum)
{
@@ -355,6 +358,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_Float
Parrot_get_numreg(PARROT_INTERP, Parrot_Int regnum)
{
@@ -373,6 +377,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_String
Parrot_get_strreg(PARROT_INTERP, Parrot_Int regnum)
{
@@ -391,6 +396,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_PMC
Parrot_get_pmcreg(PARROT_INTERP, Parrot_Int regnum)
{
@@ -513,7 +519,8 @@
/*
-=item C<Parrot_Language Parrot_find_language(PARROT_INTERP, char *language)>
+=item C<Parrot_Language Parrot_find_language(PARROT_INTERP, const char
+*language)>
Find the magic language token for a language, by language name.
@@ -522,9 +529,10 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
Parrot_Language
-Parrot_find_language(SHIM_INTERP, SHIM(char *language))
+Parrot_find_language(SHIM_INTERP, SHIM(const char *language))
{
ASSERT_ARGS(Parrot_find_language)
return 0;
Deleted: branches/gc_massacre/src/global.c
==============================================================================
--- branches/gc_massacre/src/global.c Tue Aug 3 22:27:14 2010 (r48297)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,854 +0,0 @@
-/*
-Copyright (C) 2004-2009, Parrot Foundation.
-$Id$
-
-=head1 NAME
-
-src/global.c
-
-=head1 DESCRIPTION
-
-Access to global PMCs
-
-=head1 FUNCTIONS
-
-=over 4
-
-=cut
-
-*/
-
-#include "parrot/parrot.h"
-#include "global.str"
-#include "pmc/pmc_sub.h"
-#include "pmc/pmc_callcontext.h"
-
-/* HEADERIZER HFILE: include/parrot/global.h */
-/* HEADERIZER BEGIN: static */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC * get_namespace_pmc(PARROT_INTERP, ARGIN(PMC *sub_pmc))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC * internal_ns_keyed(PARROT_INTERP,
- ARGIN(PMC *base_ns),
- ARGIN(PMC *pmc_key),
- int flags)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC * internal_ns_keyed_key(PARROT_INTERP,
- ARGIN(PMC *ns),
- ARGIN(PMC *key),
- int flags)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC * internal_ns_keyed_str(PARROT_INTERP,
- ARGIN(PMC *base_ns),
- ARGIN(STRING *key),
- int flags)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC * internal_ns_maybe_create(PARROT_INTERP,
- ARGIN(PMC *ns),
- ARGIN(STRING *key),
- int flags)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-
-static void store_sub_in_multi(PARROT_INTERP,
- ARGIN(PMC *sub_pmc),
- ARGIN(PMC *ns))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-
-#define ASSERT_ARGS_get_namespace_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(sub_pmc))
-#define ASSERT_ARGS_internal_ns_keyed __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(base_ns) \
- , PARROT_ASSERT_ARG(pmc_key))
-#define ASSERT_ARGS_internal_ns_keyed_key __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ns) \
- , PARROT_ASSERT_ARG(key))
-#define ASSERT_ARGS_internal_ns_keyed_str __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(base_ns) \
- , PARROT_ASSERT_ARG(key))
-#define ASSERT_ARGS_internal_ns_maybe_create __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ns) \
- , PARROT_ASSERT_ARG(key))
-#define ASSERT_ARGS_store_sub_in_multi __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(sub_pmc) \
- , PARROT_ASSERT_ARG(ns))
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* HEADERIZER END: static */
-
-#define DEBUG_GLOBAL 0
-
-/* flags for internal_ns_keyed */
-#define INTERN_NS_CREAT 1 /* I'm a fan of the classics */
-
-/*
-
-=item C<static PMC * internal_ns_keyed_str(PARROT_INTERP, PMC *base_ns, STRING
-*key, int flags)>
-
-Internal function to do keyed namespace lookup relative to a given namespace
-PMC. Understands STRINGs.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC *
-internal_ns_keyed_str(PARROT_INTERP, ARGIN(PMC *base_ns),
- ARGIN(STRING *key), int flags)
-{
- ASSERT_ARGS(internal_ns_keyed_str)
- PMC * const ns = VTABLE_get_pmc_keyed_str(interp, base_ns, key);
-
- if (!PMC_IS_NULL(ns) && VTABLE_isa(interp, ns, CONST_STRING(interp, "NameSpace")))
- return ns;
-
- return internal_ns_maybe_create(interp, base_ns, key, flags);
-}
-
-/*
-
-=item C<static PMC * internal_ns_keyed_key(PARROT_INTERP, PMC *ns, PMC *key, int
-flags)>
-
-Internal function to do keyed namespace lookup relative to a given namespace
-PMC. Understands Key PMCs. Used from C<internal_ns_keyed>.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC *
-internal_ns_keyed_key(PARROT_INTERP, ARGIN(PMC *ns), ARGIN(PMC *key), int flags)
-{
- ASSERT_ARGS(internal_ns_keyed_key)
- while (key) {
- STRING * const part = VTABLE_get_string(interp, key);
- PMC *sub_ns = VTABLE_get_pmc_keyed_str(interp, ns, part);
-
- if (PMC_IS_NULL(sub_ns) || !VTABLE_isa(interp, sub_ns, CONST_STRING(interp, "NameSpace"))) {
- sub_ns = internal_ns_maybe_create(interp, ns, part, flags);
-
- if (PMC_IS_NULL(sub_ns))
- return PMCNULL;
- }
-
- ns = sub_ns;
- key = VTABLE_shift_pmc(interp, key);
- }
-
- return ns;
-}
-
-/*
-
-=item C<static PMC * internal_ns_keyed(PARROT_INTERP, PMC *base_ns, PMC
-*pmc_key, int flags)>
-
-internal_ns_keyed: Internal function to do keyed namespace lookup relative to a
-given namespace PMC. Understands String, Key, and array PMCs containing
-strings.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC *
-internal_ns_keyed(PARROT_INTERP, ARGIN(PMC *base_ns), ARGIN(PMC *pmc_key), int flags)
-{
- ASSERT_ARGS(internal_ns_keyed)
-
- if (VTABLE_isa(interp, pmc_key, CONST_STRING(interp, "String"))) {
- STRING * const str_key = VTABLE_get_string(interp, pmc_key);
- return internal_ns_keyed_str(interp, base_ns, str_key, flags);
- }
- else if (pmc_key->vtable->base_type == enum_class_Key)
- return internal_ns_keyed_key(interp, base_ns, pmc_key, flags);
- else {
- /* array of strings */
- STRING * const isans = CONST_STRING(interp, "NameSpace");
- const INTVAL n = VTABLE_elements(interp, pmc_key);
- INTVAL i;
- PMC *ns = base_ns;
-
- for (i = 0; i < n; ++i) {
- STRING * const part = VTABLE_get_string_keyed_int(interp, pmc_key, i);
- PMC *sub_ns = VTABLE_get_pmc_keyed_str(interp, ns, part);
-
- if (PMC_IS_NULL(sub_ns) || !VTABLE_isa(interp, sub_ns, isans)) {
- sub_ns = internal_ns_maybe_create(interp, ns, part, flags);
- if (PMC_IS_NULL(sub_ns))
- return PMCNULL;
- }
- ns = sub_ns;
- }
- return ns;
- }
-}
-
-/*
-
-=item C<static PMC * internal_ns_maybe_create(PARROT_INTERP, PMC *ns, STRING
-*key, int flags)>
-
-Given the a namespace PMC, a STRING containing a name, and flags from
-C<internal_ns_keyed> or C<internal_ns_keyed_str>, creates and returns a new
-namespace with the given name in the given namespace. This is an internal
-function only.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC *
-internal_ns_maybe_create(PARROT_INTERP, ARGIN(PMC *ns), ARGIN(STRING *key), int flags)
-{
- ASSERT_ARGS(internal_ns_maybe_create)
- PMC *sub_ns;
-
- /* TT #1220 - stop depending on typed namespace */
- if (!(flags & INTERN_NS_CREAT))
- return PMCNULL;
-
- /* TT #1221 - match HLL of enclosing namespace? */
- sub_ns = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp,
- enum_class_NameSpace));
-
- if (PMC_IS_NULL(sub_ns))
- return PMCNULL;
-
- VTABLE_set_pmc_keyed_str(interp, ns, key, sub_ns);
-
- return sub_ns;
-}
-
-
-/*
-
-=item C<PMC * Parrot_get_namespace_keyed(PARROT_INTERP, PMC *base_ns, PMC
-*pmc_key)>
-
-Find the namespace relative to the namespace C<base_ns> with the key
-C<pmc_key>, which may be a String, a Key, or an array of strings. Return
-the namespace, or NULL if not found.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_get_namespace_keyed(PARROT_INTERP, ARGIN(PMC *base_ns), ARGIN(PMC *pmc_key))
-{
- ASSERT_ARGS(Parrot_get_namespace_keyed)
- return internal_ns_keyed(interp, base_ns, pmc_key, 0);
-}
-
-/*
-
-=item C<PMC * Parrot_get_namespace_keyed_str(PARROT_INTERP, PMC *base_ns, STRING
-*str_key)>
-
-Find the namespace relative to the namespace C<base_ns> with the string key
-C<str_key>. Return the namespace, or NULL if not found.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_get_namespace_keyed_str(PARROT_INTERP, ARGIN(PMC *base_ns),
- ARGIN_NULLOK(STRING *str_key))
-{
- ASSERT_ARGS(Parrot_get_namespace_keyed_str)
- return internal_ns_keyed_str(interp, base_ns, str_key, 0);
-}
-
-/*
-
-=item C<PMC * Parrot_make_namespace_keyed(PARROT_INTERP, PMC *base_ns, PMC
-*pmc_key)>
-
-Find, or create if necessary, the namespace relative to the namespace
-C<base_ns> with the key C<pmc_key>, which may be a String, a Key, or an
-array of strings. Return the namespace. Errors will result in exceptions.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_make_namespace_keyed(PARROT_INTERP, ARGIN(PMC *base_ns),
- ARGIN(PMC *pmc_key))
-{
- ASSERT_ARGS(Parrot_make_namespace_keyed)
- return internal_ns_keyed(interp, base_ns, pmc_key, INTERN_NS_CREAT);
-}
-
-/*
-
-=item C<PMC * Parrot_make_namespace_keyed_str(PARROT_INTERP, PMC *base_ns,
-STRING *str_key)>
-
-Find, or create if necessary, the namespace relative to the namespace
-C<base_ns> with the string key C<str_key>. Return the namespace. Errors
-will result in exceptions.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_make_namespace_keyed_str(PARROT_INTERP, ARGIN(PMC *base_ns),
- ARGIN(STRING *str_key))
-{
- ASSERT_ARGS(Parrot_make_namespace_keyed_str)
- return internal_ns_keyed_str(interp, base_ns, str_key, INTERN_NS_CREAT);
-}
-
-
-/*
-
-=item C<PMC * Parrot_make_namespace_autobase(PARROT_INTERP, PMC *key)>
-
-Find, or create if necessary, a namespace with the key C<key>, which may be a
-String, a Key, or an array of strings. If it is a String, then the lookup is
-relative to the current namespace. Otherwise, it is relative to the current HLL
-root namespace. Return the namespace. Errors will result in exceptions.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_make_namespace_autobase(PARROT_INTERP, ARGIN_NULLOK(PMC *key))
-{
- ASSERT_ARGS(Parrot_make_namespace_autobase)
- PMC *base_ns;
- if (VTABLE_isa(interp, key, CONST_STRING(interp, "String")))
- base_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
- else
- base_ns = VTABLE_get_pmc_keyed_int(interp, interp->HLL_namespace,
- Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp)));
- return Parrot_make_namespace_keyed(interp, base_ns, key);
-}
-
-/*
-
-=item C<PMC * Parrot_ns_get_name(PARROT_INTERP, PMC *_namespace)>
-
-Retrieve an array of names from a namespace object.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_ns_get_name(PARROT_INTERP, ARGIN(PMC *_namespace))
-{
- ASSERT_ARGS(Parrot_ns_get_name)
- PMC *names;
- Parrot_pcc_invoke_method_from_c_args(interp, _namespace, CONST_STRING(interp, "get_name"), "->P", &names);
- return names;
-}
-
-/*
-
-=item C<PMC * Parrot_get_global(PARROT_INTERP, PMC *ns, STRING *globalname)>
-
-Parrot_get_global allows a null namespace without throwing an exception; it
-simply returns PMCNULL in that case.
-
-NOTE: At present the use of the {get, set}_global functions is mandatory due to the
- wacky namespace typing of the default Parrot namespace. Eventually it will be
- safe to just use the standard hash interface (if desired).
-
-Look up the global named C<globalname> in the namespace C<ns>. Return the
-global, or return PMCNULL if C<ns> is null or if the global is not found.
-
-KLUDGE ALERT: Currently prefers non-namespaces in case of collision.
-
-=cut
-
-*/
-
-
-/*
- * {get, set}_global.
- *
- * Parrot_get_global allows a null namespace without throwing an exception; it
- * simply returns PMCNULL in that case.
- *
- * NOTE: At present the use of the {get, set}_global functions is mandatory due to the
- * wacky namespace typing of the default Parrot namespace. Eventually it will be
- * safe to just use the standard hash interface (if desired).
- */
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_get_global(PARROT_INTERP, ARGIN_NULLOK(PMC *ns), ARGIN_NULLOK(STRING *globalname))
-{
- ASSERT_ARGS(Parrot_get_global)
- if (PMC_IS_NULL(ns))
- return PMCNULL;
-
- return (PMC *)VTABLE_get_pointer_keyed_str(interp, ns, globalname);
-}
-
-/*
-
-=item C<void Parrot_set_global(PARROT_INTERP, PMC *ns, STRING *globalname, PMC
-*val)>
-
-Set the global named C<globalname> in the namespace C<ns> to the value C<val>.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_set_global(PARROT_INTERP, ARGIN_NULLOK(PMC *ns),
- ARGIN_NULLOK(STRING *globalname), ARGIN_NULLOK(PMC *val))
-{
- ASSERT_ARGS(Parrot_set_global)
- VTABLE_set_pmc_keyed_str(interp, ns, globalname, val);
-}
-
-
-/*
-
-=item C<PMC * Parrot_find_global_n(PARROT_INTERP, PMC *ns, STRING *globalname)>
-
-Search the namespace PMC C<ns> for an object with name C<globalname>.
-Return the object, or NULL if not found.
-
-TT #1222 - For now this function prefers non-namespaces, it will eventually
-entirely use the untyped interface.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_find_global_n(PARROT_INTERP, ARGIN_NULLOK(PMC *ns), ARGIN_NULLOK(STRING *globalname))
-{
- ASSERT_ARGS(Parrot_find_global_n)
- PMC *res;
-
-#if DEBUG_GLOBAL
- if (globalname)
- Parrot_io_printf(interp, "find_global name '%Ss'\n", globalname);
-#endif
-
- if (PMC_IS_NULL(ns))
- res = PMCNULL;
- else {
- /*
- * TT #1219 - we should be able to use 'get_pmc_keyed' here,
- * but we can't because Parrot's default namespaces are not
- * fully typed and there's a pseudo-typed interface that
- * distinguishes 'get_pmc_keyed' from 'get_pointer_keyed';
- * the former is for NS and the latter is for non-NS.
- */
- res = (PMC *)VTABLE_get_pointer_keyed_str(interp, ns, globalname);
- }
-
- return PMC_IS_NULL(res) ? NULL : res;
-}
-
-/*
-
-=item C<PMC * Parrot_find_global_cur(PARROT_INTERP, STRING *globalname)>
-
-Finds and returns the data time named C<globalname> in the current namespace.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_find_global_cur(PARROT_INTERP, ARGIN_NULLOK(STRING *globalname))
-{
- ASSERT_ARGS(Parrot_find_global_cur)
- PMC * const ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
- return Parrot_find_global_n(interp, ns, globalname);
-}
-
-/*
-
-=item C<PMC * Parrot_find_global_s(PARROT_INTERP, STRING *str_key, STRING
-*globalname)>
-
-Search the namespace designated by C<str_key>, or the HLL root if
-C<str_key> is NULL, for an object with name C<globalname>. Return the
-object, or NULL if not found.
-
-TT #1222 - For now this function prefers non-namespaces, it will eventually
-entirely use the untyped interface.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_find_global_s(PARROT_INTERP, ARGIN_NULLOK(STRING *str_key),
- ARGIN_NULLOK(STRING *globalname))
-{
- ASSERT_ARGS(Parrot_find_global_s)
- PMC *const ns =
- Parrot_get_namespace_keyed_str(interp,
- Parrot_get_ctx_HLL_namespace(interp),
- str_key);
- return Parrot_find_global_n(interp, ns, globalname);
-}
-
-/*
-
-=item C<void Parrot_store_global_n(PARROT_INTERP, PMC *ns, STRING *globalname,
-PMC *val)>
-
-Store the PMC C<val> into the namespace PMC C<ns> with name C<globalname>.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_store_global_n(PARROT_INTERP, ARGIN_NULLOK(PMC *ns),
- ARGIN_NULLOK(STRING *globalname), ARGIN_NULLOK(PMC *val))
-{
- ASSERT_ARGS(Parrot_store_global_n)
-#if DEBUG_GLOBAL
- if (globalname)
- Parrot_io_printf(interp, "store_global name '%Ss'\n", globalname);
-#endif
-
- if (PMC_IS_NULL(ns))
- return;
-
- VTABLE_set_pmc_keyed_str(interp, ns, globalname, val);
-}
-
-/*
-
-=item C<void Parrot_store_global_s(PARROT_INTERP, STRING *str_key, STRING
-*globalname, PMC *val)>
-
-Store the PMC C<val> into the namespace designated by C<str_key>, or
-the HLL root if C<str_key> is NULL, with the name C<globalname>.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_store_global_s(PARROT_INTERP, ARGIN_NULLOK(STRING *str_key),
- ARGIN_NULLOK(STRING *globalname), ARGIN_NULLOK(PMC *val))
-{
- ASSERT_ARGS(Parrot_store_global_s)
- PMC * const ns = Parrot_make_namespace_keyed_str(interp,
- Parrot_get_ctx_HLL_namespace(interp),
- str_key);
-
- Parrot_store_global_n(interp, ns, globalname, val);
-
- /* TT #1225 - method cache invalidation should be a namespace function */
- Parrot_invalidate_method_cache(interp, str_key);
-}
-
-
-/*
-
-=item C<PMC * Parrot_find_global_op(PARROT_INTERP, PMC *ns, STRING *globalname,
-void *next)>
-
-If the global exists in the given namespace PMC, return it. If not, return
-PMCNULL.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-PMC *
-Parrot_find_global_op(PARROT_INTERP, ARGIN(PMC *ns),
- ARGIN_NULLOK(STRING *globalname), ARGIN_NULLOK(void *next))
-{
- ASSERT_ARGS(Parrot_find_global_op)
- PMC *res;
-
- if (STRING_IS_NULL(globalname))
- Parrot_ex_throw_from_c_args(interp, next, EXCEPTION_GLOBAL_NOT_FOUND,
- "Tried to get null global");
-
- res = Parrot_find_global_n(interp, ns, globalname);
- if (!res)
- res = PMCNULL;
-
- return res;
-}
-
-
-/*
-
-=item C<PMC * Parrot_find_name_op(PARROT_INTERP, STRING *name, void *next)>
-
-TT #1223 - THIS IS BROKEN - it doesn't walk up the scopes yet
-
-Find the given C<name> in lexicals, then the current namespace, then the HLL
-root namespace, and finally Parrot builtins. If the name isn't found
-anywhere, return PMCNULL.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_find_name_op(PARROT_INTERP, ARGIN(STRING *name), SHIM(void *next))
-{
- ASSERT_ARGS(Parrot_find_name_op)
- PMC * const ctx = CURRENT_CONTEXT(interp);
- PMC * const lex_pad = Parrot_find_pad(interp, name, ctx);
- PMC *g;
-
- if (PMC_IS_NULL(lex_pad))
- g = PMCNULL;
- else
- g = VTABLE_get_pmc_keyed_str(interp, lex_pad, name);
-
- /* TT #1223 - walk up the scopes! duh!! */
-
- if (PMC_IS_NULL(g))
- g = Parrot_find_global_cur(interp, name);
-
- if (PMC_IS_NULL(g))
- g = Parrot_find_global_n(interp, Parrot_get_ctx_HLL_namespace(interp), name);
-
- if (PMC_IS_NULL(g))
- return PMCNULL;
- else
- return g;
-}
-
-/*
-
-=item C<static PMC * get_namespace_pmc(PARROT_INTERP, PMC *sub_pmc)>
-
-Return the namespace PMC associated with the PMC C<sub>. If C<sub> is NULL,
-return the Associated HLL namespace PMC instead.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC *
-get_namespace_pmc(PARROT_INTERP, ARGIN(PMC *sub_pmc))
-{
- ASSERT_ARGS(get_namespace_pmc)
- Parrot_Sub_attributes *sub;
- PMC *nsname, *nsroot;
-
- PMC_get_sub(interp, sub_pmc, sub);
- nsname = sub->namespace_name;
- nsroot = Parrot_get_HLL_namespace(interp, sub->HLL_id);
-
- /* If we have a NULL, return the HLL namespace */
- if (PMC_IS_NULL(nsname))
- return nsroot;
- /* If we have a String, do a string lookup */
- else if (nsname->vtable->base_type == enum_class_String)
- return Parrot_make_namespace_keyed_str(interp, nsroot,
- VTABLE_get_string(interp, nsname));
- /* Otherwise, do a PMC lookup */
- else
- return Parrot_make_namespace_keyed(interp, nsroot, nsname);
-}
-
-/*
-
-=item C<static void store_sub_in_multi(PARROT_INTERP, PMC *sub_pmc, PMC *ns)>
-
-Adds the sub C<sub> into a mulisub of the same name in the namespace C<ns>.
-If no multisub by that name currently exists, we create one.
-
-=cut
-
-*/
-
-static void
-store_sub_in_multi(PARROT_INTERP, ARGIN(PMC *sub_pmc), ARGIN(PMC *ns))
-{
- ASSERT_ARGS(store_sub_in_multi)
- Parrot_Sub_attributes *sub;
- STRING *ns_entry_name;
- PMC *multisub;
-
- PMC_get_sub(interp, sub_pmc, sub);
- ns_entry_name = sub->ns_entry_name;
- multisub = VTABLE_get_pmc_keyed_str(interp, ns, ns_entry_name);
-
- /* is there an existing MultiSub PMC? or do we need to create one? */
- if (PMC_IS_NULL(multisub)) {
- multisub = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_MultiSub));
- /* we have to push the sub onto the MultiSub before we try to store
- it because storing requires information from the sub */
- VTABLE_push_pmc(interp, multisub, sub_pmc);
- VTABLE_set_pmc_keyed_str(interp, ns, ns_entry_name, multisub);
- }
- else
- VTABLE_push_pmc(interp, multisub, sub_pmc);
-}
-
-/*
-
-=item C<void Parrot_store_sub_in_namespace(PARROT_INTERP, PMC *sub_pmc)>
-
-Adds the PMC C<sub> into the current namespace. Adds the sub to a multi of the
-same name if it's defined as a multi.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_store_sub_in_namespace(PARROT_INTERP, ARGIN(PMC *sub_pmc))
-{
- ASSERT_ARGS(Parrot_store_sub_in_namespace)
- const INTVAL cur_id = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp));
-
- PMC *ns;
- Parrot_Sub_attributes *sub;
-
- /* PF structures aren't fully constructed yet */
- Parrot_block_GC_mark(interp);
-
- /* store relative to HLL namespace */
- PMC_get_sub(interp, sub_pmc, sub);
- Parrot_pcc_set_HLL(interp, CURRENT_CONTEXT(interp), sub->HLL_id);
-
- ns = get_namespace_pmc(interp, sub_pmc);
-
- /* attach a namespace to the sub for lookups */
- sub->namespace_stash = ns;
-
- /* store a :multi sub */
- if (!PMC_IS_NULL(sub->multi_signature))
- store_sub_in_multi(interp, sub_pmc, ns);
-
- /* store other subs (as long as they're not :anon) */
- else if (!(PObj_get_FLAGS(sub_pmc) & SUB_FLAG_PF_ANON)
- || sub->vtable_index != -1) {
- STRING * const ns_entry_name = sub->ns_entry_name;
- PMC * const nsname = sub->namespace_name;
-
- Parrot_store_global_n(interp, ns, ns_entry_name, sub_pmc);
-
- /* TT #1224:
- TEMPORARY HACK - cache invalidation should be a namespace function */
- if (!PMC_IS_NULL(nsname)) {
- STRING * const nsname_s = VTABLE_get_string(interp, nsname);
- Parrot_invalidate_method_cache(interp, nsname_s);
- }
- }
-
- /* restore HLL_id */
- Parrot_pcc_set_HLL(interp, CURRENT_CONTEXT(interp), cur_id);
- Parrot_unblock_GC_mark(interp);
-}
-
-/*
-
-=back
-
-=head1 SEE ALSO
-
-F<include/parrot/global.h>
-
-=cut
-
-*/
-
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Modified: branches/gc_massacre/src/hash.c
==============================================================================
--- branches/gc_massacre/src/hash.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/hash.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -14,10 +14,7 @@
hashing functions can be set.
This hash implementation uses just one piece of malloced memory. The
-C<< hash->bs >> bucket store points to this region.
-
-This hash doesn't move during GC, therefore a lot of the old caveats
-don't apply.
+C<< hash->buckets >> bucket store points to this region.
=head2 Functions
@@ -53,6 +50,12 @@
__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);
+
static void hash_freeze(PARROT_INTERP,
ARGIN(const Hash *hash),
ARGMOD(PMC *info))
@@ -106,6 +109,9 @@
#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 = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(hash) \
@@ -159,6 +165,32 @@
/*
+=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) {
+ const STRING * const s = (const STRING *)key;
+ if (s->hashval)
+ return s->hashval;
+ }
+
+ return (hash->hash_val)(interp, key, hash->seed);
+}
+
+
+/*
+
=item C<int STRING_compare(PARROT_INTERP, const void *search_key, const void
*bucket_key)>
@@ -357,7 +389,7 @@
if (a == b)
return 0;
- /* PMCs of different types are differ */
+ /* PMCs of different types are different */
if (a->vtable->base_type != b->vtable->base_type)
return 1;
@@ -427,8 +459,8 @@
=item C<void parrot_mark_hash(PARROT_INTERP, Hash *hash)>
-Marks the hash and its contents as live. Assumes that key and value are non
-null in all buckets.
+Marks the hash and its contents as live. Assumes that key and value are
+non-null in all buckets.
=cut
@@ -482,7 +514,7 @@
INTVAL i;
for (i = hash->mask; i >= 0; --i) {
- HashBucket *bucket = hash->bi[i];
+ HashBucket *bucket = hash->bucket_indices[i];
while (bucket) {
if (++found > entries)
@@ -518,7 +550,7 @@
INTVAL i;
for (i = hash->mask; i >= 0; --i) {
- HashBucket *bucket = hash->bi[i];
+ HashBucket *bucket = hash->bucket_indices[i];
while (bucket) {
if (++found > entries)
@@ -534,7 +566,6 @@
}
}
-
/*
=item C<static void parrot_mark_hash_both(PARROT_INTERP, Hash *hash)>
@@ -554,7 +585,7 @@
INTVAL i;
for (i = hash->mask; i >= 0; --i) {
- HashBucket *bucket = hash->bi[i];
+ HashBucket *bucket = hash->bucket_indices[i];
while (bucket) {
if (++found > entries)
@@ -592,31 +623,45 @@
ASSERT_ARGS(hash_thaw)
/* during thaw, info->extra is the key/value count */
- const size_t num_entries = (size_t) hash->entries;
- size_t entry_index;
+ const size_t num_entries = (size_t) hash->entries;
+ const Hash_key_type key_type = hash->key_type;
+ const PARROT_DATA_TYPE entry_type = hash->entry_type;
+ size_t entry_index;
hash->entries = 0;
+ /* special case for great speed */
+ if (key_type == Hash_key_type_STRING
+ && entry_type == enum_hash_int) {
+ for (entry_index = 0; entry_index < num_entries; ++entry_index) {
+ STRING * const key = VTABLE_shift_string(interp, info);
+ const INTVAL i = VTABLE_shift_integer(interp, info);
+ parrot_hash_put(interp, hash, (void *)key, (void *)i);
+ }
+
+ return;
+ }
+
for (entry_index = 0; entry_index < num_entries; ++entry_index) {
- HashBucket *b;
+ void *key;
- switch (hash->key_type) {
+ switch (key_type) {
case Hash_key_type_int:
{
const INTVAL i_key = VTABLE_shift_integer(interp, info);
- b = parrot_hash_put(interp, hash, (void*)i_key, NULL);
+ key = (void *)i_key;
}
break;
case Hash_key_type_STRING:
{
STRING * const s_key = VTABLE_shift_string(interp, info);
- b = parrot_hash_put(interp, hash, s_key, NULL);
+ key = (void *)s_key;
}
break;
case Hash_key_type_PMC:
{
PMC * const p_key = VTABLE_shift_pmc(interp, info);
- b = parrot_hash_put(interp, hash, p_key, NULL);
+ key = (void *)p_key;
break;
}
default:
@@ -625,23 +670,23 @@
break;
}
- switch (hash->entry_type) {
+ switch (entry_type) {
case enum_hash_int:
{
const INTVAL i = VTABLE_shift_integer(interp, info);
- b->value = (void *)i;
+ parrot_hash_put(interp, hash, key, (void *)i);
break;
}
case enum_hash_string:
{
STRING * const s = VTABLE_shift_string(interp, info);
- b->value = (void *)s;
+ parrot_hash_put(interp, hash, key, (void *)s);
break;
}
case enum_hash_pmc:
{
PMC * const p = VTABLE_shift_pmc(interp, info);
- b->value = (void *)p;
+ parrot_hash_put(interp, hash, key, (void *)p);
break;
}
default:
@@ -672,12 +717,15 @@
hash_freeze(PARROT_INTERP, ARGIN(const Hash *hash), ARGMOD(PMC *info))
{
ASSERT_ARGS(hash_freeze)
- size_t i;
+ 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 < hash->entries; ++i) {
- HashBucket * const b = hash->bs+i;
+ for (i = 0; i < entries; ++i) {
+ HashBucket * const b = hash->buckets + i;
- switch (hash->key_type) {
+ switch (key_type) {
case Hash_key_type_int:
VTABLE_push_integer(interp, info, (INTVAL)b->key);
break;
@@ -693,7 +741,7 @@
break;
}
- switch (hash->entry_type) {
+ switch (entry_type) {
case enum_hash_int:
VTABLE_push_integer(interp, info, (INTVAL)b->value);
break;
@@ -784,9 +832,9 @@
HashBucket *bs, *b, *new_mem;
HashBucket * const old_offset = (HashBucket *)((char *)hash + sizeof (Hash));
- void * const old_mem = hash->bs;
+ void * const old_mem = hash->buckets;
const UINTVAL old_size = hash->mask + 1;
- const UINTVAL new_size = old_size << 1;
+ const UINTVAL new_size = old_size << 1; /* Double. Right-shift is 2x */
const UINTVAL old_nb = N_BUCKETS(old_size);
size_t offset, i;
@@ -795,10 +843,10 @@
e.g. 3 buckets, 4 pointers:
+---+---+---+-+-+-+-+
- | --> bs | -> bi |
+ | --> buckets | |
+---+---+---+-+-+-+-+
- ^ ^
- | old_mem | hash->bi
+ ^ ^
+ | old_mem | hash->bucket_indices
*/
/* resize mem */
@@ -816,11 +864,12 @@
/*
+---+---+---+---+---+---+-+-+-+-+-+-+-+-+
- | bs | old_bi | new_bi |
+ | buckets | old_bi | new_bi |
+---+---+---+---+---+---+-+-+-+-+-+-+-+-+
- ^ ^
- | new_mem | hash->bi
+ ^ ^
+ | new_mem | hash->bucket_indices
*/
+
bs = new_mem;
old_bi = (HashBucket **)(bs + old_nb);
new_bi = (HashBucket **)(bs + N_BUCKETS(new_size));
@@ -832,8 +881,8 @@
mem_sys_memmove(new_bi, old_bi, old_size * sizeof (HashBucket *));
/* update hash data */
- hash->bi = new_bi;
- hash->bs = bs;
+ hash->bucket_indices = new_bi;
+ hash->buckets = bs;
hash->mask = new_size - 1;
/* clear freshly allocated bucket index */
@@ -864,7 +913,7 @@
while ((b = *next_p) != NULL) {
/* rehash the bucket */
const size_t new_loc =
- (hash->hash_val)(interp, b->key, hash->seed) & (new_size - 1);
+ get_hash_val(interp, hash, b->key) & (new_size - 1);
if (i != new_loc) {
*next_p = b->next;
@@ -1024,12 +1073,6 @@
hash->entries = 0;
hash->container = PMCNULL;
- /*
- * TODO if we have a significant amount of small hashes:
- * - allocate a bigger hash structure e.g. 128 byte
- * - use the bucket store and bi inside this structure
- * - when reallocate copy this part
- */
bp = (HashBucket *)((char *)alloc + sizeof (Hash));
hash->free_list = NULL;
@@ -1037,9 +1080,9 @@
* buckets[i] directly in an OrderedHash, *if* nothing
* was deleted */
- hash->bs = bp;
- bp += N_BUCKETS(INITIAL_BUCKETS);
- hash->bi = (HashBucket **)bp;
+ hash->buckets = bp;
+ bp += N_BUCKETS(INITIAL_BUCKETS);
+ hash->bucket_indices = (HashBucket **)bp;
for (i = 0, --bp; i < N_BUCKETS(INITIAL_BUCKETS); ++i, --bp) {
bp->next = hash->free_list;
@@ -1049,7 +1092,6 @@
return hash;
}
-
/*
=item C<void parrot_hash_destroy(PARROT_INTERP, Hash *hash)>
@@ -1069,8 +1111,8 @@
{
ASSERT_ARGS(parrot_hash_destroy)
HashBucket * const bp = (HashBucket*)((char*)hash + sizeof (Hash));
- if (bp != hash->bs)
- mem_gc_free(interp, hash->bs);
+ if (bp != hash->buckets)
+ mem_gc_free(interp, hash->buckets);
mem_gc_free(interp, hash);
}
@@ -1093,7 +1135,7 @@
UINTVAL i;
for (i = 0; i <= hash->mask; ++i) {
- HashBucket *bucket = hash->bi[i];
+ HashBucket *bucket = hash->bucket_indices[i];
while (bucket) {
mem_gc_free(interp, bucket->key);
mem_gc_free(interp, bucket->value);
@@ -1127,7 +1169,7 @@
UINTVAL i;
for (i = 0; i <= hash->mask; ++i) {
- HashBucket *bucket = hash->bi[i];
+ HashBucket *bucket = hash->bucket_indices[i];
while (bucket) {
mem_gc_free(interp, bucket->key);
func(bucket->value);
@@ -1206,7 +1248,7 @@
res = NULL;
- for (b = hash->bs + i; i < size ; ++i, ++b) {
+ for (b = hash->buckets + i; i < size ; ++i, ++b) {
/* XXX int keys may be zero - use different iterator */
if (b->key) {
if (!res)
@@ -1255,7 +1297,7 @@
UINTVAL i;
for (i = 0; i < entries; ++i) {
- HashBucket * const bucket = hash->bs + i;
+ HashBucket * const bucket = hash->buckets + i;
/* the hash->compare cost is too high for this fast path */
if (bucket->key == key)
@@ -1265,8 +1307,8 @@
/* if the fast search didn't work, try the normal hashing search */
{
- const UINTVAL hashval = (hash->hash_val)(interp, key, hash->seed);
- HashBucket *bucket = hash->bi[hashval & hash->mask];
+ const UINTVAL hashval = get_hash_val(interp, hash, key);
+ HashBucket *bucket = hash->bucket_indices[hashval & hash->mask];
while (bucket) {
/* key equality is always a match, so it's worth checking */
@@ -1346,8 +1388,8 @@
ARGIN_NULLOK(void *key), ARGIN_NULLOK(void *value))
{
ASSERT_ARGS(parrot_hash_put)
- const UINTVAL hashval = (hash->hash_val)(interp, key, hash->seed);
- HashBucket *bucket = hash->bi[hashval & hash->mask];
+ const UINTVAL hashval = get_hash_val(interp, hash, key);
+ HashBucket *bucket = hash->bucket_indices[hashval & hash->mask];
/* When the hash is constant, check that the key and value are also
* constant. */
@@ -1364,6 +1406,7 @@
"Used non-constant value in constant hash.");
}
+ /* See if we have an existing value for this key */
while (bucket) {
/* store hash_val or not */
if ((hash->compare)(interp, key, bucket->key) == 0)
@@ -1371,22 +1414,26 @@
bucket = bucket->next;
}
+ /* If we have a bucket already, put the value in it. Otherwise, we need
+ to get a new bucket */
if (bucket)
bucket->value = value;
else {
+ /* Get a new bucket off the free list. If the free list is empty, we
+ expand the hash so we get more items on the free list */
bucket = hash->free_list;
-
if (!bucket) {
expand_hash(interp, hash);
bucket = hash->free_list;
}
+ /* Add the value to the new bucket, increasing the count of elements */
++hash->entries;
hash->free_list = bucket->next;
bucket->key = key;
bucket->value = value;
- bucket->next = hash->bi[hashval & hash->mask];
- hash->bi[hashval & hash->mask] = bucket;
+ bucket->next = hash->bucket_indices[hashval & hash->mask];
+ hash->bucket_indices[hashval & hash->mask] = bucket;
}
return bucket;
@@ -1412,13 +1459,13 @@
HashBucket *prev = NULL;
const UINTVAL hashval = (hash->hash_val)(interp, key, hash->seed) & hash->mask;
- for (bucket = hash->bi[hashval]; bucket; bucket = bucket->next) {
+ for (bucket = hash->bucket_indices[hashval]; bucket; bucket = bucket->next) {
if ((hash->compare)(interp, key, bucket->key) == 0) {
if (prev)
prev->next = bucket->next;
else
- hash->bi[hashval] = bucket->next;
+ hash->bucket_indices[hashval] = bucket->next;
--hash->entries;
bucket->next = hash->free_list;
@@ -1448,12 +1495,33 @@
parrot_hash_clone(PARROT_INTERP, ARGIN(const Hash *hash), ARGOUT(Hash *dest))
{
ASSERT_ARGS(parrot_hash_clone)
+ parrot_hash_clone_prunable(interp, hash, dest, 1);
+}
+
+/*
+
+=item C<void parrot_hash_clone_prunable(PARROT_INTERP, const Hash *hash, Hash
+*dest, int deep)>
+
+helper function to Clone C<hash> to C<dest>
+
+allows deep cloning of PMC types if deep set
+
+=cut
+
+*/
+
+void
+parrot_hash_clone_prunable(PARROT_INTERP, ARGIN(const Hash *hash),
+ ARGOUT(Hash *dest), int deep)
+{
+ ASSERT_ARGS(parrot_hash_clone_prunable)
UINTVAL entries = hash->entries;
UINTVAL i;
for (i = 0; i < entries; ++i) {
void *valtmp;
- HashBucket *b = hash->bs+i;
+ HashBucket *b = hash->buckets + i;
void * const key = b->key;
switch (hash->entry_type) {
@@ -1471,7 +1539,10 @@
if (PMC_IS_NULL((PMC *)b->value))
valtmp = (void *)PMCNULL;
else
- valtmp = (void *)VTABLE_clone(interp, (PMC*)b->value);
+ if (deep)
+ valtmp = (void *)VTABLE_clone(interp, (PMC*)b->value);
+ else
+ valtmp = b->value;
break;
default:
Modified: branches/gc_massacre/src/hll.c
==============================================================================
--- branches/gc_massacre/src/hll.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/hll.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -167,7 +167,7 @@
* ns_hash to another type, if mappings provide one
* XXX - FIXME
*/
- ns_hash = Parrot_make_namespace_keyed_str(interp, interp->root_namespace,
+ ns_hash = Parrot_ns_make_namespace_keyed_str(interp, interp->root_namespace,
hll_name);
/* cache HLL's toplevel namespace */
@@ -500,7 +500,7 @@
* here because the typemap already exists, but it is not currently
* done for consistency.
*/
- ns_hash = Parrot_make_namespace_keyed_str(interp,
+ ns_hash = Parrot_ns_make_namespace_keyed_str(interp,
interp->root_namespace, hll_name);
VTABLE_set_pmc_keyed_int(interp, interp->HLL_namespace,
Modified: branches/gc_massacre/src/interp/inter_cb.c
==============================================================================
--- branches/gc_massacre/src/interp/inter_cb.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/interp/inter_cb.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -25,6 +25,7 @@
*/
#include "parrot/parrot.h"
+#include "parrot/extend.h"
#include "pmc/pmc_parrotinterpreter.h"
#include "inter_cb.str"
@@ -350,8 +351,7 @@
pasm_sig[2] = '-';
pasm_sig[3] = '>'; /* no return value supported yet */
pasm_sig[4] = '\0';
- Parrot_pcc_invoke_sub_from_c_args(interp, sub, pasm_sig,
- user_data, param);
+ Parrot_ext_call(interp, sub, pasm_sig, user_data, param);
}
/*
Modified: branches/gc_massacre/src/interp/inter_misc.c
==============================================================================
--- branches/gc_massacre/src/interp/inter_misc.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/interp/inter_misc.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -224,22 +224,8 @@
ret = Parrot_gc_impatient_pmcs(interp);
break;
case CURRENT_RUNCORE:
- {
- STRING *name = interp->run_core->name;
-
- if (Parrot_str_equal(interp, name, CONST_STRING(interp, "slow")))
- return PARROT_SLOW_CORE;
- else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "fast")))
- return PARROT_FAST_CORE;
- else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "switch")))
- return PARROT_EXEC_CORE;
- else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "gc_debug")))
- return PARROT_GC_DEBUG_CORE;
- else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "debugger")))
- return PARROT_DEBUGGER_CORE;
- else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "profiling")))
- return PARROT_PROFILING_CORE;
- }
+ ret = interp->run_core->id;
+ break;
default: /* or a warning only? */
ret = -1;
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
Modified: branches/gc_massacre/src/io/api.c
==============================================================================
--- branches/gc_massacre/src/io/api.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/io/api.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -20,8 +20,8 @@
is used in Parrot ops.
TODO: Where possible, extract some of the filehandle-related details into
-src/io/filehandle.c, and extract the stringhandle details into
-src/io/io_string.c.
+F<src/io/filehandle.c>, and extract the stringhandle details into
+a new F<src/io/io_string.c>.
=cut
@@ -133,8 +133,7 @@
flags = Parrot_io_parse_open_flags(interp, mode);
if (new_filehandle->vtable->base_type == typenum) {
- /* TODO: StringHandle may have a null path, but a filehandle really
- shouldn't allow that. */
+ /* TODO: a filehandle shouldn't allow a NULL path. */
PARROT_ASSERT(new_filehandle->vtable->base_type == typenum);
filehandle = PIO_OPEN(interp, new_filehandle, path, flags);
if (PMC_IS_NULL(filehandle))
@@ -146,10 +145,6 @@
SETATTR_FileHandle_mode(interp, new_filehandle, mode);
Parrot_io_setbuf(interp, filehandle, PIO_UNBOUND);
}
- else if (new_filehandle->vtable->base_type == enum_class_StringHandle) {
- SETATTR_StringHandle_flags(interp, pmc, flags);
- filehandle = pmc;
- }
else
Parrot_pcc_invoke_method_from_c_args(interp, new_filehandle, CONST_STRING(interp, "open"), "SS->P", path, mode, &filehandle);
return filehandle;
@@ -223,9 +218,6 @@
result = Parrot_io_close_filehandle(interp, pmc);
SETATTR_FileHandle_flags(interp, pmc, 0);
}
- else if (pmc->vtable->base_type == enum_class_StringHandle) {
- SETATTR_StringHandle_read_offset(interp, pmc, 0);
- }
else
Parrot_pcc_invoke_method_from_c_args(interp, pmc, CONST_STRING(interp, "close"), "->I", &result);
@@ -276,11 +268,6 @@
return 1;
if (pmc->vtable->base_type == enum_class_FileHandle)
result = Parrot_io_is_closed_filehandle(interp, pmc);
- else if (pmc->vtable->base_type == enum_class_StringHandle) {
- STRING *stringhandle;
- GETATTR_StringHandle_stringhandle(interp, pmc, stringhandle);
- result = STRING_IS_NULL(stringhandle);
- }
else
Parrot_pcc_invoke_method_from_c_args(interp, pmc, CONST_STRING(interp, "is_closed"), "->I", &result);
Modified: branches/gc_massacre/src/io/io_private.h
==============================================================================
--- branches/gc_massacre/src/io/io_private.h Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/io/io_private.h Tue Aug 3 22:27:14 2010 (r48298)
@@ -27,23 +27,19 @@
#define PARROT_IN_IO 1
#define PARROT_ASYNC_DEVEL 0
-#define PARROT_NET_DEVEL 1
#include <parrot/io.h>
-#if PARROT_NET_DEVEL
/* XXX: Parrot config is currently not probing for all headers so
* I'm sticking here rather than parrot.h
*/
-# ifdef UNIX
-# include <sys/socket.h>
-# endif
-
-# ifdef WIN32
-# include <winsock.h>
-# endif
+#ifdef UNIX
+# include <sys/socket.h>
+#endif
-#endif /* PARROT_NET_DEVEL */
+#ifdef WIN32
+# include <winsock.h>
+#endif
/* IO object flags */
#define PIO_F_READ 00000001
Modified: branches/gc_massacre/src/io/socket_unix.c
==============================================================================
--- branches/gc_massacre/src/io/socket_unix.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/io/socket_unix.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -67,8 +67,6 @@
=head2 Networking
-Define C<PARROT_NET_DEVEL> to enable networking.
-
These could be native extensions but they probably should be here if we
wish to make them integrated with the async IO system.
@@ -110,8 +108,6 @@
}
-# if PARROT_NET_DEVEL
-
/*
=item C<INTVAL Parrot_io_socket_unix(PARROT_INTERP, PMC *s, int fam, int type,
@@ -314,13 +310,13 @@
switch (errno) {
case EINTR:
goto AGAIN;
-# ifdef EWOULDBLOCK
+# ifdef EWOULDBLOCK
case EWOULDBLOCK:
goto AGAIN;
-# else
+# else
case EAGAIN:
goto AGAIN;
-# endif
+# endif
case EPIPE:
/* XXX why close it here and not below */
close(io->os_handle);
@@ -363,13 +359,13 @@
switch (errno) {
case EINTR:
goto AGAIN;
-# ifdef EWOULDBLOCK
+# ifdef EWOULDBLOCK
case EWOULDBLOCK:
goto AGAIN;
-# else
+# else
case EAGAIN:
goto AGAIN;
-# endif
+# endif
case ECONNRESET:
/* XXX why close it on err return result is -1 anyway */
close(io->os_handle);
@@ -457,12 +453,12 @@
const int family = AF_INET;
struct sockaddr_in * const sa = (struct sockaddr_in*)VTABLE_get_pointer(interp, sockaddr);
-# ifdef PARROT_DEF_INET_ATON
+# ifdef PARROT_DEF_INET_ATON
if (inet_aton(host, &sa->sin_addr) != 0) {
-# else
+# else
/* positive retval is success */
if (inet_pton(family, host, &sa->sin_addr) > 0) {
-# endif
+# endif
/* Success converting numeric IP */
}
else {
@@ -482,7 +478,6 @@
sa->sin_family = family;
sa->sin_port = htons(port);
}
-# endif
#endif /* PIO_OS_UNIX */
Modified: branches/gc_massacre/src/io/socket_win32.c
==============================================================================
--- branches/gc_massacre/src/io/socket_win32.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/io/socket_win32.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -51,13 +51,11 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
-# if PARROT_NET_DEVEL
-
/* Helper macros to get sockaddr_in */
-# define SOCKADDR_LOCAL(p) ((struct sockaddr_in*)VTABLE_get_pointer(interp, \
- PARROT_SOCKET((p))->local))
-# define SOCKADDR_REMOTE(p) ((struct sockaddr_in*)VTABLE_get_pointer(interp, \
- PARROT_SOCKET((p))->remote))
+# define SOCKADDR_LOCAL(p) ((struct sockaddr_in*)VTABLE_get_pointer(interp, \
+ PARROT_SOCKET((p))->local))
+# define SOCKADDR_REMOTE(p) ((struct sockaddr_in*)VTABLE_get_pointer(interp, \
+ PARROT_SOCKET((p))->remote))
/*
@@ -262,13 +260,13 @@
switch (errno) {
case WSAEINTR:
goto AGAIN;
-# ifdef WSAEWOULDBLOCK
+# ifdef WSAEWOULDBLOCK
case WSAEWOULDBLOCK:
goto AGAIN;
-# else
+# else
case WSAEAGAIN:
goto AGAIN;
-# endif
+# endif
case EPIPE:
/* XXX why close it here and not below */
close((int)io->os_handle);
@@ -311,13 +309,13 @@
switch (errno) {
case EINTR:
goto AGAIN;
-# ifdef WSAEWOULDBLOCK
+# ifdef WSAEWOULDBLOCK
case WSAEWOULDBLOCK:
goto AGAIN;
-# else
+# else
case WSAEAGAIN:
goto AGAIN;
-# endif
+# endif
case WSAECONNRESET:
/* XXX why close it on err return result is -1 anyway */
close((int)io->os_handle);
@@ -452,8 +450,6 @@
return sockaddr;
}
-# endif /* PARROT_NET_DEVEL */
-
#endif /* PIO_OS_WIN32 */
/*
Modified: branches/gc_massacre/src/io/win32.c
==============================================================================
--- branches/gc_massacre/src/io/win32.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/io/win32.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -134,10 +134,8 @@
{
ASSERT_ARGS(Parrot_io_init_win32)
HANDLE h;
-# if PARROT_NET_DEVEL
struct WSAData sockinfo;
int ret;
-# endif
if ((h = GetStdHandle(STD_INPUT_HANDLE)) != INVALID_HANDLE_VALUE) {
_PIO_STDIN(interp) = Parrot_io_fdopen_win32(interp, PMCNULL, h, PIO_F_READ);
@@ -157,7 +155,6 @@
else {
_PIO_STDERR(interp) = PMCNULL;
}
-# if PARROT_NET_DEVEL
/* Start Winsock
* no idea where or whether destroy it
*/
@@ -167,7 +164,6 @@
WSAGetLastError());
return -4;
}
-# endif
return 0;
}
Modified: branches/gc_massacre/src/key.c
==============================================================================
--- branches/gc_massacre/src/key.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/key.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -146,31 +146,6 @@
return key_new_string(interp, Parrot_str_new(interp, value, 0));
}
-
-/*
-
-=item C<PMC * key_new_pmc(PARROT_INTERP, PMC *value)>
-
-Returns a new PMC C<Key> PMC with value C<value>.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-PMC *
-key_new_pmc(PARROT_INTERP, ARGIN(PMC *value))
-{
- ASSERT_ARGS(key_new_pmc)
- PMC * const key = Parrot_pmc_new(interp, enum_class_Key);
-
- PObj_get_FLAGS(key) |= KEY_pmc_FLAG;
- Parrot_ex_throw_from_c_args(interp, NULL, 1, "this is broken - see slice.pmc");
-}
-
-
/*
=item C<void key_set_integer(PARROT_INTERP, PMC *key, INTVAL value)>
@@ -263,33 +238,6 @@
return;
}
-
-/*
-
-=item C<void key_set_pmc(PARROT_INTERP, PMC *key, PMC *value)>
-
-Set the PMC C<value> in C<key>.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-key_set_pmc(PARROT_INTERP, ARGMOD(PMC *key), ARGIN(PMC *value))
-{
- ASSERT_ARGS(key_set_pmc)
- PObj_get_FLAGS(key) &= ~KEY_type_FLAGS;
- PObj_get_FLAGS(key) |= KEY_pmc_FLAG;
-
- /*
- * XXX leo
- * what for is this indirection?
- */
- Parrot_ex_throw_from_c_args(interp, NULL, 1, "this is broken - see slice.pmc");
-}
-
-
/*
=item C<INTVAL key_type(PARROT_INTERP, const PMC *key)>
@@ -431,6 +379,7 @@
*/
+PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
STRING *
Modified: branches/gc_massacre/src/library.c
==============================================================================
--- branches/gc_massacre/src/library.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/library.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -809,6 +809,7 @@
ASSERT_ARGS(Parrot_get_runtime_prefix)
char * const env = Parrot_getenv(interp, CONST_STRING(interp, "PARROT_RUNTIME"));
+ Parrot_warn_deprecated(interp, "Parrot_get_runtime_prefix is deprecated TT #1191");
if (env)
return env;
else {
Modified: branches/gc_massacre/src/multidispatch.c
==============================================================================
--- branches/gc_massacre/src/multidispatch.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/multidispatch.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -329,9 +329,9 @@
{
ASSERT_ARGS(Parrot_mmd_find_multi_from_long_sig)
STRING * const multi_str = CONST_STRING(interp, "MULTI");
- PMC * const ns = Parrot_make_namespace_keyed_str(interp,
+ PMC * const ns = Parrot_ns_make_namespace_keyed_str(interp,
interp->root_namespace, multi_str);
- PMC * const multi_sub = Parrot_get_global(interp, ns, name);
+ PMC * const multi_sub = Parrot_ns_get_global(interp, ns, name);
if (PMC_IS_NULL(multi_sub)) {
return PMCNULL;
@@ -844,7 +844,7 @@
if (PMC_IS_NULL(ns))
return;
- multi_sub = Parrot_get_global(interp, ns, name);
+ multi_sub = Parrot_ns_get_global(interp, ns, name);
if (PMC_IS_NULL(multi_sub))
return;
@@ -868,9 +868,9 @@
{
ASSERT_ARGS(mmd_search_global)
STRING * const multi_str = CONST_STRING(interp, "MULTI");
- PMC * const ns = Parrot_get_namespace_keyed_str(interp,
+ PMC * const ns = Parrot_ns_get_namespace_keyed_str(interp,
interp->root_namespace, multi_str);
- PMC *multi_sub = Parrot_get_global(interp, ns, name);
+ PMC *multi_sub = Parrot_ns_get_global(interp, ns, name);
if (PMC_IS_NULL(multi_sub))
return;
@@ -896,13 +896,13 @@
{
ASSERT_ARGS(mmd_add_multi_global)
STRING * const multi_str = CONST_STRING(interp, "MULTI");
- PMC * const ns = Parrot_make_namespace_keyed_str(interp,
+ PMC * const ns = Parrot_ns_make_namespace_keyed_str(interp,
interp->root_namespace, multi_str);
- PMC *multi_sub = Parrot_get_global(interp, ns, sub_name);
+ PMC *multi_sub = Parrot_ns_get_global(interp, ns, sub_name);
if (PMC_IS_NULL(multi_sub)) {
multi_sub = Parrot_pmc_new_constant(interp, enum_class_MultiSub);
- Parrot_set_global(interp, ns, sub_name, multi_sub);
+ Parrot_ns_set_global(interp, ns, sub_name, multi_sub);
}
PARROT_ASSERT(multi_sub->vtable->base_type == enum_class_MultiSub);
@@ -930,12 +930,12 @@
PMC * const hll_ns = VTABLE_get_pmc_keyed_int(interp,
interp->HLL_namespace,
Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp)));
- PMC * const ns = Parrot_make_namespace_keyed_str(interp, hll_ns, ns_name);
- PMC *multi_sub = Parrot_get_global(interp, ns, sub_name);
+ PMC * const ns = Parrot_ns_make_namespace_keyed_str(interp, hll_ns, ns_name);
+ PMC *multi_sub = Parrot_ns_get_global(interp, ns, sub_name);
if (PMC_IS_NULL(multi_sub)) {
multi_sub = Parrot_pmc_new_constant(interp, enum_class_MultiSub);
- Parrot_set_global(interp, ns, sub_name, multi_sub);
+ Parrot_ns_set_global(interp, ns, sub_name, multi_sub);
}
PARROT_ASSERT(multi_sub->vtable->base_type == enum_class_MultiSub);
Copied and modified: branches/gc_massacre/src/namespace.c (from r47995, branches/gc_massacre/src/global.c)
==============================================================================
--- branches/gc_massacre/src/global.c Mon Jul 5 01:11:51 2010 (r47995, copy source)
+++ branches/gc_massacre/src/namespace.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -4,26 +4,22 @@
=head1 NAME
-src/global.c
+src/namespace.c
=head1 DESCRIPTION
-Access to global PMCs
-
-=head1 FUNCTIONS
-
-=over 4
+Common routines for storing and finding elements in namespaces
=cut
*/
#include "parrot/parrot.h"
-#include "global.str"
+#include "namespace.str"
#include "pmc/pmc_sub.h"
#include "pmc/pmc_callcontext.h"
-/* HEADERIZER HFILE: include/parrot/global.h */
+/* HEADERIZER HFILE: include/parrot/namespace.h */
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
@@ -106,18 +102,23 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
-#define DEBUG_GLOBAL 0
-
/* flags for internal_ns_keyed */
#define INTERN_NS_CREAT 1 /* I'm a fan of the classics */
/*
+=head1 Internal Static Functions
+
+=over 4
+
=item C<static PMC * internal_ns_keyed_str(PARROT_INTERP, PMC *base_ns, STRING
*key, int flags)>
-Internal function to do keyed namespace lookup relative to a given namespace
-PMC. Understands STRINGs.
+Looks up a nested NameSpace PMC starting from C<base_ns> and doing a relative
+lookup. C<key> is a STRING containing the name of the NameSpace to look up.
+Flags can be 0 or INTERN_NS_CREAT. In the former case, PMCNULL is returned
+if the namespace is not found. In the later, a new namespace with the given
+is created and returned if it is not found.
=cut
@@ -144,7 +145,9 @@
flags)>
Internal function to do keyed namespace lookup relative to a given namespace
-PMC. Understands Key PMCs. Used from C<internal_ns_keyed>.
+PMC. The namespace to find is located by C<key> relative to C<ns>. C<flags>
+determines what happens when an existing namespace is not found. 0 means
+PMCNULL is returned, INTERN_NS_CREAT means a new namespace is created.
=cut
@@ -179,9 +182,12 @@
=item C<static PMC * internal_ns_keyed(PARROT_INTERP, PMC *base_ns, PMC
*pmc_key, int flags)>
-internal_ns_keyed: Internal function to do keyed namespace lookup relative to a
-given namespace PMC. Understands String, Key, and array PMCs containing
-strings.
+Search for a namespace PMC starting from a base namespace C<base_ns> and
+following C<pmc_key> to the nested namespace. C<pmc_key> can be a String,
+a Key, or an array of strings (such as an ResizableStringArray, or a
+ResizablePMCArray that contains Strings). Flags determines what we do if the
+requested namespace is not found: 0 means we return PMCNULL, INTERN_NS_CREAT
+means we create the new namespace and return it.
=cut
@@ -198,7 +204,7 @@
STRING * const str_key = VTABLE_get_string(interp, pmc_key);
return internal_ns_keyed_str(interp, base_ns, str_key, flags);
}
- else if (pmc_key->vtable->base_type == enum_class_Key)
+ else if (PMC_IS_TYPE(pmc_key, Key))
return internal_ns_keyed_key(interp, base_ns, pmc_key, flags);
else {
/* array of strings */
@@ -227,10 +233,10 @@
=item C<static PMC * internal_ns_maybe_create(PARROT_INTERP, PMC *ns, STRING
*key, int flags)>
-Given the a namespace PMC, a STRING containing a name, and flags from
+Given a namespace PMC C<ns>, a STRING C<key> containing a name, and flags from
C<internal_ns_keyed> or C<internal_ns_keyed_str>, creates and returns a new
-namespace with the given name in the given namespace. This is an internal
-function only.
+namespace with the given name as a child of the given namespace. This is an
+internal function only.
=cut
@@ -242,28 +248,103 @@
internal_ns_maybe_create(PARROT_INTERP, ARGIN(PMC *ns), ARGIN(STRING *key), int flags)
{
ASSERT_ARGS(internal_ns_maybe_create)
- PMC *sub_ns;
/* TT #1220 - stop depending on typed namespace */
if (!(flags & INTERN_NS_CREAT))
return PMCNULL;
+ else {
+ const INTVAL type_id = Parrot_get_ctx_HLL_type(interp, enum_class_NameSpace);
+ /* TT #1221 - match HLL of enclosing namespace? */
+ PMC * const sub_ns = Parrot_pmc_new(interp, type_id);
- /* TT #1221 - match HLL of enclosing namespace? */
- sub_ns = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp,
- enum_class_NameSpace));
+ if (PMC_IS_NULL(sub_ns))
+ return PMCNULL;
- if (PMC_IS_NULL(sub_ns))
- return PMCNULL;
+ VTABLE_set_pmc_keyed_str(interp, ns, key, sub_ns);
+ return sub_ns;
+ }
+}
+
+/*
+
+=item C<static PMC * get_namespace_pmc(PARROT_INTERP, PMC *sub_pmc)>
+
+Return the namespace PMC associated with the PMC C<sub>. If there is no
+NameSpace associated with the sub, return it's HLL NameSpace PMC instead.
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+static PMC *
+get_namespace_pmc(PARROT_INTERP, ARGIN(PMC *sub_pmc))
+{
+ ASSERT_ARGS(get_namespace_pmc)
+ Parrot_Sub_attributes *sub;
+ PMC *nsname, *nsroot;
- VTABLE_set_pmc_keyed_str(interp, ns, key, sub_ns);
+ PMC_get_sub(interp, sub_pmc, sub);
+ nsname = sub->namespace_name;
+ nsroot = Parrot_get_HLL_namespace(interp, sub->HLL_id);
- return sub_ns;
+ /* If we have a NULL, return the HLL namespace */
+ if (PMC_IS_NULL(nsname))
+ return nsroot;
+ /* If we have a String, do a string lookup */
+ else if (nsname->vtable->base_type == enum_class_String)
+ return Parrot_ns_make_namespace_keyed_str(interp, nsroot,
+ VTABLE_get_string(interp, nsname));
+ /* Otherwise, do a PMC lookup */
+ else
+ return Parrot_ns_make_namespace_keyed(interp, nsroot, nsname);
}
+/*
+
+=item C<static void store_sub_in_multi(PARROT_INTERP, PMC *sub_pmc, PMC *ns)>
+
+Adds the sub C<sub> into a multisub of the same name in the namespace C<ns>.
+If no multisub by that name currently exists, we create one.
+
+=cut
+
+*/
+
+static void
+store_sub_in_multi(PARROT_INTERP, ARGIN(PMC *sub_pmc), ARGIN(PMC *ns))
+{
+ ASSERT_ARGS(store_sub_in_multi)
+ Parrot_Sub_attributes *sub;
+ STRING *ns_entry_name;
+ PMC *multisub;
+
+ PMC_get_sub(interp, sub_pmc, sub);
+ ns_entry_name = sub->ns_entry_name;
+ multisub = VTABLE_get_pmc_keyed_str(interp, ns, ns_entry_name);
+
+ /* is there an existing MultiSub PMC? or do we need to create one? */
+ if (PMC_IS_NULL(multisub)) {
+ multisub = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_MultiSub));
+ /* we have to push the sub onto the MultiSub before we try to store
+ it because storing requires information from the sub */
+ VTABLE_push_pmc(interp, multisub, sub_pmc);
+ VTABLE_set_pmc_keyed_str(interp, ns, ns_entry_name, multisub);
+ }
+ else
+ VTABLE_push_pmc(interp, multisub, sub_pmc);
+}
/*
-=item C<PMC * Parrot_get_namespace_keyed(PARROT_INTERP, PMC *base_ns, PMC
+=back
+
+=head1 NameSpace API Functions
+
+=over 4
+
+=item C<PMC * Parrot_ns_get_namespace_keyed(PARROT_INTERP, PMC *base_ns, PMC
*pmc_key)>
Find the namespace relative to the namespace C<base_ns> with the key
@@ -278,16 +359,16 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
PMC *
-Parrot_get_namespace_keyed(PARROT_INTERP, ARGIN(PMC *base_ns), ARGIN(PMC *pmc_key))
+Parrot_ns_get_namespace_keyed(PARROT_INTERP, ARGIN(PMC *base_ns), ARGIN(PMC *pmc_key))
{
- ASSERT_ARGS(Parrot_get_namespace_keyed)
+ ASSERT_ARGS(Parrot_ns_get_namespace_keyed)
return internal_ns_keyed(interp, base_ns, pmc_key, 0);
}
/*
-=item C<PMC * Parrot_get_namespace_keyed_str(PARROT_INTERP, PMC *base_ns, STRING
-*str_key)>
+=item C<PMC * Parrot_ns_get_namespace_keyed_str(PARROT_INTERP, PMC *base_ns,
+STRING *str_key)>
Find the namespace relative to the namespace C<base_ns> with the string key
C<str_key>. Return the namespace, or NULL if not found.
@@ -300,16 +381,16 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
PMC *
-Parrot_get_namespace_keyed_str(PARROT_INTERP, ARGIN(PMC *base_ns),
+Parrot_ns_get_namespace_keyed_str(PARROT_INTERP, ARGIN(PMC *base_ns),
ARGIN_NULLOK(STRING *str_key))
{
- ASSERT_ARGS(Parrot_get_namespace_keyed_str)
+ ASSERT_ARGS(Parrot_ns_get_namespace_keyed_str)
return internal_ns_keyed_str(interp, base_ns, str_key, 0);
}
/*
-=item C<PMC * Parrot_make_namespace_keyed(PARROT_INTERP, PMC *base_ns, PMC
+=item C<PMC * Parrot_ns_make_namespace_keyed(PARROT_INTERP, PMC *base_ns, PMC
*pmc_key)>
Find, or create if necessary, the namespace relative to the namespace
@@ -324,16 +405,16 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
PMC *
-Parrot_make_namespace_keyed(PARROT_INTERP, ARGIN(PMC *base_ns),
+Parrot_ns_make_namespace_keyed(PARROT_INTERP, ARGIN(PMC *base_ns),
ARGIN(PMC *pmc_key))
{
- ASSERT_ARGS(Parrot_make_namespace_keyed)
+ ASSERT_ARGS(Parrot_ns_make_namespace_keyed)
return internal_ns_keyed(interp, base_ns, pmc_key, INTERN_NS_CREAT);
}
/*
-=item C<PMC * Parrot_make_namespace_keyed_str(PARROT_INTERP, PMC *base_ns,
+=item C<PMC * Parrot_ns_make_namespace_keyed_str(PARROT_INTERP, PMC *base_ns,
STRING *str_key)>
Find, or create if necessary, the namespace relative to the namespace
@@ -348,17 +429,16 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
PMC *
-Parrot_make_namespace_keyed_str(PARROT_INTERP, ARGIN(PMC *base_ns),
+Parrot_ns_make_namespace_keyed_str(PARROT_INTERP, ARGIN(PMC *base_ns),
ARGIN(STRING *str_key))
{
- ASSERT_ARGS(Parrot_make_namespace_keyed_str)
+ ASSERT_ARGS(Parrot_ns_make_namespace_keyed_str)
return internal_ns_keyed_str(interp, base_ns, str_key, INTERN_NS_CREAT);
}
-
/*
-=item C<PMC * Parrot_make_namespace_autobase(PARROT_INTERP, PMC *key)>
+=item C<PMC * Parrot_ns_make_namespace_autobase(PARROT_INTERP, PMC *key)>
Find, or create if necessary, a namespace with the key C<key>, which may be a
String, a Key, or an array of strings. If it is a String, then the lookup is
@@ -373,23 +453,24 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
PMC *
-Parrot_make_namespace_autobase(PARROT_INTERP, ARGIN_NULLOK(PMC *key))
+Parrot_ns_make_namespace_autobase(PARROT_INTERP, ARGIN_NULLOK(PMC *key))
{
- ASSERT_ARGS(Parrot_make_namespace_autobase)
+ ASSERT_ARGS(Parrot_ns_make_namespace_autobase)
PMC *base_ns;
if (VTABLE_isa(interp, key, CONST_STRING(interp, "String")))
base_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
else
base_ns = VTABLE_get_pmc_keyed_int(interp, interp->HLL_namespace,
Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp)));
- return Parrot_make_namespace_keyed(interp, base_ns, key);
+ return Parrot_ns_make_namespace_keyed(interp, base_ns, key);
}
/*
=item C<PMC * Parrot_ns_get_name(PARROT_INTERP, PMC *_namespace)>
-Retrieve an array of names from a namespace object.
+Get the name of the namespace, as a ResizableStringArray. For instance, the
+namespace Foo:Bar:Baz would return an RSA with three elements.
=cut
@@ -403,49 +484,37 @@
{
ASSERT_ARGS(Parrot_ns_get_name)
PMC *names;
- Parrot_pcc_invoke_method_from_c_args(interp, _namespace, CONST_STRING(interp, "get_name"), "->P", &names);
+ STRING * const get_name = CONST_STRING(interp, "get_name");
+ Parrot_pcc_invoke_method_from_c_args(interp, _namespace, get_name, "->P", &names);
return names;
}
/*
-=item C<PMC * Parrot_get_global(PARROT_INTERP, PMC *ns, STRING *globalname)>
-
-Parrot_get_global allows a null namespace without throwing an exception; it
-simply returns PMCNULL in that case.
-
-NOTE: At present the use of the {get, set}_global functions is mandatory due to the
- wacky namespace typing of the default Parrot namespace. Eventually it will be
- safe to just use the standard hash interface (if desired).
+=item C<PMC * Parrot_ns_get_global(PARROT_INTERP, PMC *ns, STRING *globalname)>
Look up the global named C<globalname> in the namespace C<ns>. Return the
global, or return PMCNULL if C<ns> is null or if the global is not found.
-KLUDGE ALERT: Currently prefers non-namespaces in case of collision.
+Parrot_ns_get_global allows a null namespace without throwing an exception; it
+simply returns PMCNULL in that case.
+
+NOTE: At present the use of the {get, set}_global functions is mandatory due
+ to the wacky namespace typing of the default Parrot namespace.
+ Eventually it will be safe to just use the standard hash interface
+ (if desired).
=cut
*/
-
-/*
- * {get, set}_global.
- *
- * Parrot_get_global allows a null namespace without throwing an exception; it
- * simply returns PMCNULL in that case.
- *
- * NOTE: At present the use of the {get, set}_global functions is mandatory due to the
- * wacky namespace typing of the default Parrot namespace. Eventually it will be
- * safe to just use the standard hash interface (if desired).
- */
-
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
PMC *
-Parrot_get_global(PARROT_INTERP, ARGIN_NULLOK(PMC *ns), ARGIN_NULLOK(STRING *globalname))
+Parrot_ns_get_global(PARROT_INTERP, ARGIN_NULLOK(PMC *ns), ARGIN_NULLOK(STRING *globalname))
{
- ASSERT_ARGS(Parrot_get_global)
+ ASSERT_ARGS(Parrot_ns_get_global)
if (PMC_IS_NULL(ns))
return PMCNULL;
@@ -454,8 +523,8 @@
/*
-=item C<void Parrot_set_global(PARROT_INTERP, PMC *ns, STRING *globalname, PMC
-*val)>
+=item C<void Parrot_ns_set_global(PARROT_INTERP, PMC *ns, STRING *globalname,
+PMC *val)>
Set the global named C<globalname> in the namespace C<ns> to the value C<val>.
@@ -465,17 +534,18 @@
PARROT_EXPORT
void
-Parrot_set_global(PARROT_INTERP, ARGIN_NULLOK(PMC *ns),
+Parrot_ns_set_global(PARROT_INTERP, ARGIN_NULLOK(PMC *ns),
ARGIN_NULLOK(STRING *globalname), ARGIN_NULLOK(PMC *val))
{
- ASSERT_ARGS(Parrot_set_global)
+ ASSERT_ARGS(Parrot_ns_set_global)
VTABLE_set_pmc_keyed_str(interp, ns, globalname, val);
}
/*
-=item C<PMC * Parrot_find_global_n(PARROT_INTERP, PMC *ns, STRING *globalname)>
+=item C<PMC * Parrot_ns_find_namespace_global(PARROT_INTERP, PMC *ns, STRING
+*globalname)>
Search the namespace PMC C<ns> for an object with name C<globalname>.
Return the object, or NULL if not found.
@@ -491,16 +561,12 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
PMC *
-Parrot_find_global_n(PARROT_INTERP, ARGIN_NULLOK(PMC *ns), ARGIN_NULLOK(STRING *globalname))
+Parrot_ns_find_namespace_global(PARROT_INTERP,
+ ARGIN_NULLOK(PMC *ns), ARGIN_NULLOK(STRING *globalname))
{
- ASSERT_ARGS(Parrot_find_global_n)
+ ASSERT_ARGS(Parrot_ns_find_namespace_global)
PMC *res;
-#if DEBUG_GLOBAL
- if (globalname)
- Parrot_io_printf(interp, "find_global name '%Ss'\n", globalname);
-#endif
-
if (PMC_IS_NULL(ns))
res = PMCNULL;
else {
@@ -519,7 +585,8 @@
/*
-=item C<PMC * Parrot_find_global_cur(PARROT_INTERP, STRING *globalname)>
+=item C<PMC * Parrot_ns_find_current_namespace_global(PARROT_INTERP, STRING
+*globalname)>
Finds and returns the data time named C<globalname> in the current namespace.
@@ -531,11 +598,11 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
PMC *
-Parrot_find_global_cur(PARROT_INTERP, ARGIN_NULLOK(STRING *globalname))
+Parrot_ns_find_current_namespace_global(PARROT_INTERP, ARGIN_NULLOK(STRING *globalname))
{
- ASSERT_ARGS(Parrot_find_global_cur)
+ ASSERT_ARGS(Parrot_ns_find_current_namespace_global)
PMC * const ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
- return Parrot_find_global_n(interp, ns, globalname);
+ return Parrot_ns_find_namespace_global(interp, ns, globalname);
}
/*
@@ -562,19 +629,18 @@
ARGIN_NULLOK(STRING *globalname))
{
ASSERT_ARGS(Parrot_find_global_s)
- PMC *const ns =
- Parrot_get_namespace_keyed_str(interp,
- Parrot_get_ctx_HLL_namespace(interp),
- str_key);
- return Parrot_find_global_n(interp, ns, globalname);
+ PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+ PMC * const ns = Parrot_ns_get_namespace_keyed_str(interp, hll_ns, str_key);
+ return Parrot_ns_find_namespace_global(interp, ns, globalname);
}
/*
-=item C<void Parrot_store_global_n(PARROT_INTERP, PMC *ns, STRING *globalname,
+=item C<void Parrot_ns_store_global(PARROT_INTERP, PMC *ns, STRING *globalname,
PMC *val)>
-Store the PMC C<val> into the namespace PMC C<ns> with name C<globalname>.
+Store the PMC C<val> into the namespace PMC C<ns> with name C<globalname>. If
+the namespace is null, do nothing.
=cut
@@ -582,14 +648,10 @@
PARROT_EXPORT
void
-Parrot_store_global_n(PARROT_INTERP, ARGIN_NULLOK(PMC *ns),
+Parrot_ns_store_global(PARROT_INTERP, ARGIN_NULLOK(PMC *ns),
ARGIN_NULLOK(STRING *globalname), ARGIN_NULLOK(PMC *val))
{
- ASSERT_ARGS(Parrot_store_global_n)
-#if DEBUG_GLOBAL
- if (globalname)
- Parrot_io_printf(interp, "store_global name '%Ss'\n", globalname);
-#endif
+ ASSERT_ARGS(Parrot_ns_store_global)
if (PMC_IS_NULL(ns))
return;
@@ -615,11 +677,9 @@
ARGIN_NULLOK(STRING *globalname), ARGIN_NULLOK(PMC *val))
{
ASSERT_ARGS(Parrot_store_global_s)
- PMC * const ns = Parrot_make_namespace_keyed_str(interp,
- Parrot_get_ctx_HLL_namespace(interp),
- str_key);
-
- Parrot_store_global_n(interp, ns, globalname, val);
+ PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+ PMC * const ns = Parrot_ns_make_namespace_keyed_str(interp, hll_ns, str_key);
+ Parrot_ns_store_global(interp, ns, globalname, val);
/* TT #1225 - method cache invalidation should be a namespace function */
Parrot_invalidate_method_cache(interp, str_key);
@@ -628,11 +688,11 @@
/*
-=item C<PMC * Parrot_find_global_op(PARROT_INTERP, PMC *ns, STRING *globalname,
-void *next)>
+=item C<PMC * Parrot_ns_find_global_from_op(PARROT_INTERP, PMC *ns, STRING
+*globalname, void *next)>
If the global exists in the given namespace PMC, return it. If not, return
-PMCNULL.
+PMCNULL. Throw an exception if a NULL name is passed.
=cut
@@ -642,27 +702,26 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
PMC *
-Parrot_find_global_op(PARROT_INTERP, ARGIN(PMC *ns),
+Parrot_ns_find_global_from_op(PARROT_INTERP, ARGIN(PMC *ns),
ARGIN_NULLOK(STRING *globalname), ARGIN_NULLOK(void *next))
{
- ASSERT_ARGS(Parrot_find_global_op)
- PMC *res;
-
+ ASSERT_ARGS(Parrot_ns_find_global_from_op)
if (STRING_IS_NULL(globalname))
Parrot_ex_throw_from_c_args(interp, next, EXCEPTION_GLOBAL_NOT_FOUND,
"Tried to get null global");
-
- res = Parrot_find_global_n(interp, ns, globalname);
- if (!res)
- res = PMCNULL;
-
- return res;
+ else {
+ PMC * const res = Parrot_ns_find_namespace_global(interp, ns, globalname);
+ if (!res)
+ return PMCNULL;
+ return res;
+ }
}
/*
-=item C<PMC * Parrot_find_name_op(PARROT_INTERP, STRING *name, void *next)>
+=item C<PMC * Parrot_ns_find_named_item(PARROT_INTERP, STRING *name, void
+*next)>
TT #1223 - THIS IS BROKEN - it doesn't walk up the scopes yet
@@ -678,106 +737,34 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
PMC *
-Parrot_find_name_op(PARROT_INTERP, ARGIN(STRING *name), SHIM(void *next))
+Parrot_ns_find_named_item(PARROT_INTERP, ARGIN(STRING *name), SHIM(void *next))
{
- ASSERT_ARGS(Parrot_find_name_op)
+ ASSERT_ARGS(Parrot_ns_find_named_item)
PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const lex_pad = Parrot_find_pad(interp, name, ctx);
- PMC *g;
+ PMC * g = PMCNULL;
- if (PMC_IS_NULL(lex_pad))
- g = PMCNULL;
- else
+ if (!PMC_IS_NULL(lex_pad)) {
g = VTABLE_get_pmc_keyed_str(interp, lex_pad, name);
- /* TT #1223 - walk up the scopes! duh!! */
-
- if (PMC_IS_NULL(g))
- g = Parrot_find_global_cur(interp, name);
-
- if (PMC_IS_NULL(g))
- g = Parrot_find_global_n(interp, Parrot_get_ctx_HLL_namespace(interp), name);
+ /* TT #1223 - walk up the scopes! duh!! */
+ if (!PMC_IS_NULL(g))
+ return g;
+ }
- if (PMC_IS_NULL(g))
- return PMCNULL;
- else
+ g = Parrot_ns_find_current_namespace_global(interp, name);
+ if (!PMC_IS_NULL(g))
return g;
-}
-
-/*
-
-=item C<static PMC * get_namespace_pmc(PARROT_INTERP, PMC *sub_pmc)>
-
-Return the namespace PMC associated with the PMC C<sub>. If C<sub> is NULL,
-return the Associated HLL namespace PMC instead.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC *
-get_namespace_pmc(PARROT_INTERP, ARGIN(PMC *sub_pmc))
-{
- ASSERT_ARGS(get_namespace_pmc)
- Parrot_Sub_attributes *sub;
- PMC *nsname, *nsroot;
- PMC_get_sub(interp, sub_pmc, sub);
- nsname = sub->namespace_name;
- nsroot = Parrot_get_HLL_namespace(interp, sub->HLL_id);
-
- /* If we have a NULL, return the HLL namespace */
- if (PMC_IS_NULL(nsname))
- return nsroot;
- /* If we have a String, do a string lookup */
- else if (nsname->vtable->base_type == enum_class_String)
- return Parrot_make_namespace_keyed_str(interp, nsroot,
- VTABLE_get_string(interp, nsname));
- /* Otherwise, do a PMC lookup */
- else
- return Parrot_make_namespace_keyed(interp, nsroot, nsname);
-}
-
-/*
-
-=item C<static void store_sub_in_multi(PARROT_INTERP, PMC *sub_pmc, PMC *ns)>
-
-Adds the sub C<sub> into a mulisub of the same name in the namespace C<ns>.
-If no multisub by that name currently exists, we create one.
-
-=cut
-
-*/
-
-static void
-store_sub_in_multi(PARROT_INTERP, ARGIN(PMC *sub_pmc), ARGIN(PMC *ns))
-{
- ASSERT_ARGS(store_sub_in_multi)
- Parrot_Sub_attributes *sub;
- STRING *ns_entry_name;
- PMC *multisub;
-
- PMC_get_sub(interp, sub_pmc, sub);
- ns_entry_name = sub->ns_entry_name;
- multisub = VTABLE_get_pmc_keyed_str(interp, ns, ns_entry_name);
-
- /* is there an existing MultiSub PMC? or do we need to create one? */
- if (PMC_IS_NULL(multisub)) {
- multisub = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_MultiSub));
- /* we have to push the sub onto the MultiSub before we try to store
- it because storing requires information from the sub */
- VTABLE_push_pmc(interp, multisub, sub_pmc);
- VTABLE_set_pmc_keyed_str(interp, ns, ns_entry_name, multisub);
- }
- else
- VTABLE_push_pmc(interp, multisub, sub_pmc);
+ g = Parrot_ns_find_namespace_global(interp, Parrot_get_ctx_HLL_namespace(interp), name);
+ if (!PMC_IS_NULL(g))
+ return g;
+ return PMCNULL;
}
/*
-=item C<void Parrot_store_sub_in_namespace(PARROT_INTERP, PMC *sub_pmc)>
+=item C<void Parrot_ns_store_sub(PARROT_INTERP, PMC *sub_pmc)>
Adds the PMC C<sub> into the current namespace. Adds the sub to a multi of the
same name if it's defined as a multi.
@@ -788,12 +775,12 @@
PARROT_EXPORT
void
-Parrot_store_sub_in_namespace(PARROT_INTERP, ARGIN(PMC *sub_pmc))
+Parrot_ns_store_sub(PARROT_INTERP, ARGIN(PMC *sub_pmc))
{
- ASSERT_ARGS(Parrot_store_sub_in_namespace)
+ ASSERT_ARGS(Parrot_ns_store_sub)
const INTVAL cur_id = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp));
- PMC *ns;
+ PMC *ns;
Parrot_Sub_attributes *sub;
/* PF structures aren't fully constructed yet */
@@ -818,10 +805,11 @@
STRING * const ns_entry_name = sub->ns_entry_name;
PMC * const nsname = sub->namespace_name;
- Parrot_store_global_n(interp, ns, ns_entry_name, sub_pmc);
+ Parrot_ns_store_global(interp, ns, ns_entry_name, sub_pmc);
/* TT #1224:
- TEMPORARY HACK - cache invalidation should be a namespace function */
+ TEMPORARY HACK - cache invalidation should be a namespace function
+ */
if (!PMC_IS_NULL(nsname)) {
STRING * const nsname_s = VTABLE_get_string(interp, nsname);
Parrot_invalidate_method_cache(interp, nsname_s);
@@ -839,7 +827,7 @@
=head1 SEE ALSO
-F<include/parrot/global.h>
+F<include/parrot/namespace.h>
=cut
Modified: branches/gc_massacre/src/nci/core_thunks.c
==============================================================================
--- branches/gc_massacre/src/nci/core_thunks.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/nci/core_thunks.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -125,7 +125,7 @@
char *t_1; STRING *ts_1;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_1);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1);
@@ -868,7 +868,7 @@
char *t_2; STRING *ts_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_1, &ts_2);
- t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(interp, t_1, t_2);
Modified: branches/gc_massacre/src/nci/extra_thunks.c
==============================================================================
--- branches/gc_massacre/src/nci/extra_thunks.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/nci/extra_thunks.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -45,7 +45,7 @@
typedef void(* func_t)(PARROT_INTERP);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -66,7 +66,7 @@
typedef int(* func_t)(int, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -89,7 +89,7 @@
typedef int(* func_t)(PARROT_INTERP, PMC *, int, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -115,7 +115,7 @@
typedef int(* func_t)(PARROT_INTERP, void *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -139,7 +139,7 @@
typedef int(* func_t)(PARROT_INTERP, void *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -165,7 +165,7 @@
typedef int(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -186,7 +186,7 @@
typedef int(* func_t)(char *, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -195,7 +195,7 @@
PMC *t_1;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "SP", &ts_0, &t_1);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(t_0, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1));
@@ -209,7 +209,7 @@
typedef void *(* func_t)(PARROT_INTERP);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -235,7 +235,7 @@
typedef void *(* func_t)(PARROT_INTERP, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -262,7 +262,7 @@
typedef char *(* func_t)(PARROT_INTERP);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -285,7 +285,7 @@
typedef char *(* func_t)(PARROT_INTERP, void *, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -296,7 +296,7 @@
INTVAL t_3;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSI", &t_1, &ts_2, &t_3);
- t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)(interp, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3);
@@ -313,7 +313,7 @@
typedef char *(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -336,7 +336,7 @@
typedef char *(* func_t)(void *, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -346,7 +346,7 @@
char *t_1; STRING *ts_1;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_0, &ts_1);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
@@ -361,7 +361,7 @@
typedef void(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -382,7 +382,7 @@
typedef void(* func_t)(void *, int, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -392,7 +392,7 @@
char *t_2; STRING *ts_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIS", &t_0, &t_1, &ts_2);
- t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
@@ -407,7 +407,7 @@
typedef void(* func_t)(void *, char *, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -417,7 +417,7 @@
char *t_2; STRING *ts_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSS", &t_0, &ts_1, &ts_2);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
@@ -432,7 +432,7 @@
typedef void(* func_t)(PARROT_INTERP, char *, int, int, int, void *, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -445,7 +445,7 @@
char *t_6; STRING *ts_6;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "SIIIPS", &ts_1, &t_2, &t_3, &t_4, &t_5, &ts_6);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_6 = ts_6 ? Parrot_str_to_cstring(interp, ts_6) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_6 = STRING_IS_NULL(ts_6) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_6);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
(*fn_pointer)(interp, t_1, t_2, t_3, t_4, PMC_IS_NULL((PMC*)t_5) ? (void *)NULL : VTABLE_get_pointer(interp, t_5), t_6);
@@ -464,7 +464,7 @@
typedef void *(* func_t)(PARROT_INTERP, char *, char *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -476,7 +476,7 @@
PMC * t_4;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "SSPP", &ts_1, &ts_2, &t_3, &t_4);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(interp, t_1, t_2, t_3, t_4);
@@ -497,7 +497,7 @@
typedef PMC *(* func_t)(PARROT_INTERP, char *, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
PMC * return_data;
@@ -507,7 +507,7 @@
INTVAL t_3;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "SPI", &ts_1, &t_2, &t_3);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), t_3);
@@ -523,7 +523,7 @@
typedef int(* func_t)(void **, void *, void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -550,7 +550,7 @@
typedef void(* func_t)(PARROT_INTERP, void *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -576,7 +576,7 @@
typedef void(* func_t)(void *, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -585,7 +585,7 @@
char *t_1; STRING *ts_1;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_0, &ts_1);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
@@ -599,7 +599,7 @@
typedef void(* func_t)(PARROT_INTERP, void *, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -608,7 +608,7 @@
char *t_2; STRING *ts_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_1, &ts_2);
- t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
(*fn_pointer)(interp, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2);
@@ -623,7 +623,7 @@
typedef void(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -642,7 +642,7 @@
typedef void(* func_t)(PARROT_INTERP, int, int, int, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -670,7 +670,7 @@
typedef void(* func_t)(int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -691,7 +691,7 @@
typedef void(* func_t)(int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -714,7 +714,7 @@
typedef void(* func_t)(int, long, long, long, long, long, long, long, long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -751,7 +751,7 @@
typedef void(* func_t)(long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -772,7 +772,7 @@
typedef void(* func_t)(void *, void *, int, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -799,7 +799,7 @@
typedef void(* func_t)(void *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -822,7 +822,7 @@
typedef void(* func_t)(void *, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -851,7 +851,7 @@
typedef void(* func_t)(void *, long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -874,7 +874,7 @@
typedef void(* func_t)(void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -897,7 +897,7 @@
typedef int(* func_t)(PARROT_INTERP, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -921,7 +921,7 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
PMC * return_data;
@@ -943,7 +943,7 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
PMC * return_data;
@@ -967,7 +967,7 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
PMC * return_data;
@@ -989,7 +989,7 @@
typedef STRING *(* func_t)(PARROT_INTERP, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
STRING * return_data;
@@ -1011,7 +1011,7 @@
typedef int(* func_t)(PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -1032,7 +1032,7 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
PMC * return_data;
@@ -1058,7 +1058,7 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
PMC * return_data;
@@ -1086,7 +1086,7 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -1112,7 +1112,7 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -1140,7 +1140,7 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
PMC * return_data;
@@ -1170,7 +1170,7 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *, PMC *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
PMC * return_data;
@@ -1202,7 +1202,7 @@
typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, STRING *, INTVAL);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -1228,7 +1228,7 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, STRING *, INTVAL, INTVAL);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
PMC * return_data;
@@ -1256,7 +1256,7 @@
typedef char *(* func_t)(void *, int *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -1281,7 +1281,7 @@
typedef int(* func_t)(void *, void *, int *, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -1308,7 +1308,7 @@
typedef int(* func_t)(void *, void *, int *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -1333,7 +1333,7 @@
typedef int(* func_t)(void *, void *, double);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -1358,7 +1358,7 @@
typedef int(* func_t)(void *, char *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -1369,7 +1369,7 @@
INTVAL t_3;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSII", &t_0, &ts_1, &t_2, &t_3);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
@@ -1385,7 +1385,7 @@
typedef int(* func_t)(void *, int, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -1412,7 +1412,7 @@
typedef char *(* func_t)(void *, char *, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -1424,7 +1424,7 @@
INTVAL t_3;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSI", &t_0, &ts_1, &ts_2, &t_3);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
@@ -1441,7 +1441,7 @@
typedef char *(* func_t)(void *, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -1452,7 +1452,7 @@
INTVAL t_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSI", &t_0, &ts_1, &t_2);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
@@ -1468,7 +1468,7 @@
typedef char *(* func_t)(void *, char *, char *, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -1481,7 +1481,7 @@
INTVAL t_4;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSSI", &t_0, &ts_1, &ts_2, &ts_3, &t_4);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);t_3 = STRING_IS_NULL(ts_3) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4);
@@ -1499,7 +1499,7 @@
typedef void *(* func_t)(PARROT_INTERP, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -1526,7 +1526,7 @@
typedef void *(* func_t)(PARROT_INTERP, int, void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -1557,7 +1557,7 @@
typedef void *(* func_t)(PARROT_INTERP, void *, int, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -1588,7 +1588,7 @@
typedef void(* func_t)(PARROT_INTERP, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -1610,7 +1610,7 @@
typedef void(* func_t)(PARROT_INTERP, STRING *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -1632,7 +1632,7 @@
typedef char *(* func_t)(char *, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -1642,7 +1642,7 @@
char *t_1; STRING *ts_1;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "SS", &ts_0, &ts_1);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)(t_0, t_1);
@@ -1657,7 +1657,7 @@
typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -1666,7 +1666,7 @@
char *t_2; STRING *ts_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiS", &t_1, &ts_2);
- t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (INTVAL)(*fn_pointer)(interp, t_1, t_2);
@@ -1681,7 +1681,7 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, STRING *, INTVAL);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -1707,7 +1707,7 @@
typedef STRING *(* func_t)(PARROT_INTERP, PMC *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
STRING * return_data;
@@ -1731,7 +1731,7 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -1755,7 +1755,7 @@
typedef INTVAL(* func_t)(PARROT_INTERP, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -1777,7 +1777,7 @@
typedef FLOATVAL(* func_t)(PARROT_INTERP, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
FLOATVAL return_data;
@@ -1799,7 +1799,7 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, FLOATVAL);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -1823,7 +1823,7 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
PMC * return_data;
@@ -1847,7 +1847,7 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, INTVAL);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -1871,7 +1871,7 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, INTVAL);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
PMC * return_data;
@@ -1895,7 +1895,7 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, INTVAL, STRING *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
PMC * return_data;
@@ -1921,7 +1921,7 @@
typedef STRING *(* func_t)(PARROT_INTERP, PMC *, STRING *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
STRING * return_data;
@@ -1947,7 +1947,7 @@
typedef int(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -1966,7 +1966,7 @@
typedef int(* func_t)(int, int *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -1991,7 +1991,7 @@
typedef int(* func_t)(int, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2016,7 +2016,7 @@
typedef long(* func_t)(long, char *, char *, long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2027,7 +2027,7 @@
INTVAL t_3;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "ISSI", &t_0, &ts_1, &ts_2, &t_3);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (long)(*fn_pointer)(t_0, t_1, t_2, t_3);
@@ -2043,7 +2043,7 @@
typedef int(* func_t)(void *, int, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2068,7 +2068,7 @@
typedef int(* func_t)(void *, int, STRING *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2093,7 +2093,7 @@
typedef STRING *(* func_t)(int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
STRING * return_data;
@@ -2114,7 +2114,7 @@
typedef long(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2135,7 +2135,7 @@
typedef char(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2156,7 +2156,7 @@
typedef void *(* func_t)(void *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -2184,7 +2184,7 @@
typedef void *(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -2210,7 +2210,7 @@
typedef int(* func_t)(void *, char *, char *, char *, char *, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2223,7 +2223,7 @@
char *t_5; STRING *ts_5;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSSSS", &t_0, &ts_1, &ts_2, &ts_3, &ts_4, &ts_5);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;t_4 = ts_4 ? Parrot_str_to_cstring(interp, ts_4) : (char *)NULL;t_5 = ts_5 ? Parrot_str_to_cstring(interp, ts_5) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);t_3 = STRING_IS_NULL(ts_3) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_3);t_4 = STRING_IS_NULL(ts_4) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_4);t_5 = STRING_IS_NULL(ts_5) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_5);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4, t_5);
@@ -2241,7 +2241,7 @@
typedef char(* func_t)(void *, char *, char *, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2252,7 +2252,7 @@
char *t_3; STRING *ts_3;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSS", &t_0, &ts_1, &ts_2, &ts_3);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);t_3 = STRING_IS_NULL(ts_3) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
@@ -2268,7 +2268,7 @@
typedef void *(* func_t)(void *, char *, char *, char *, char *, int, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -2284,7 +2284,7 @@
INTVAL t_7;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSSSISI", &t_0, &ts_1, &ts_2, &ts_3, &ts_4, &t_5, &ts_6, &t_7);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;t_4 = ts_4 ? Parrot_str_to_cstring(interp, ts_4) : (char *)NULL;t_6 = ts_6 ? Parrot_str_to_cstring(interp, ts_6) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);t_3 = STRING_IS_NULL(ts_3) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_3);t_4 = STRING_IS_NULL(ts_4) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_4);t_6 = STRING_IS_NULL(ts_6) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_6);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4, t_5, t_6, t_7);
@@ -2308,7 +2308,7 @@
typedef int(* func_t)(void *, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2317,7 +2317,7 @@
char *t_1; STRING *ts_1;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_0, &ts_1);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
@@ -2331,7 +2331,7 @@
typedef int(* func_t)(void *, char *, long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2341,7 +2341,7 @@
INTVAL t_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSI", &t_0, &ts_1, &t_2);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
@@ -2356,7 +2356,7 @@
typedef int(* func_t)(void *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2379,7 +2379,7 @@
typedef int(* func_t)(void *, long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2402,7 +2402,7 @@
typedef long(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2421,7 +2421,7 @@
typedef void *(* func_t)(void *, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -2431,7 +2431,7 @@
char *t_1; STRING *ts_1;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_0, &ts_1);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
@@ -2449,7 +2449,7 @@
typedef void *(* func_t)(void *, char *, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -2460,7 +2460,7 @@
char *t_2; STRING *ts_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSS", &t_0, &ts_1, &ts_2);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
@@ -2479,7 +2479,7 @@
typedef int(* func_t)(void *, int, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2489,7 +2489,7 @@
char *t_2; STRING *ts_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIS", &t_0, &t_1, &ts_2);
- t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
@@ -2504,7 +2504,7 @@
typedef void *(* func_t)(void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -2532,7 +2532,7 @@
typedef long(* func_t)(char *, char *, long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2542,7 +2542,7 @@
INTVAL t_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "SSI", &ts_0, &ts_1, &t_2);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (long)(*fn_pointer)(t_0, t_1, t_2);
@@ -2557,7 +2557,7 @@
typedef long(* func_t)(void *, char *, char *, long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2568,7 +2568,7 @@
INTVAL t_3;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSI", &t_0, &ts_1, &ts_2, &t_3);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (long)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
@@ -2584,7 +2584,7 @@
typedef void(* func_t)(char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -2592,7 +2592,7 @@
char *t_0; STRING *ts_0;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
(*fn_pointer)(t_0);
@@ -2605,7 +2605,7 @@
typedef void *(* func_t)(void *, char *, char *, char *, char *, int, char *, long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -2621,7 +2621,7 @@
INTVAL t_7;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSSSISI", &t_0, &ts_1, &ts_2, &ts_3, &ts_4, &t_5, &ts_6, &t_7);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;t_4 = ts_4 ? Parrot_str_to_cstring(interp, ts_4) : (char *)NULL;t_6 = ts_6 ? Parrot_str_to_cstring(interp, ts_6) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);t_3 = STRING_IS_NULL(ts_3) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_3);t_4 = STRING_IS_NULL(ts_4) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_4);t_6 = STRING_IS_NULL(ts_6) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_6);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4, t_5, t_6, t_7);
@@ -2645,7 +2645,7 @@
typedef void *(* func_t)(char *, int, char **, int *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -2658,7 +2658,7 @@
PMC * t_4;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "SISPP", &ts_0, &t_1, &ts_2, &t_3, &t_4);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *) NULL;i_3 = VTABLE_get_integer(interp, t_3);
+ t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);t_2 = STRING_IS_NULL(ts_2) ? (char *) NULL : Parrot_str_to_cstring(interp, ts_2);i_3 = VTABLE_get_integer(interp, t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(t_0, t_1, &t_2, &i_3, t_4);
@@ -2679,7 +2679,7 @@
typedef void *(* func_t)(char *, int, void *, int *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -2692,7 +2692,7 @@
PMC * t_4;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "SIPPP", &ts_0, &t_1, &t_2, &t_3, &t_4);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;i_3 = VTABLE_get_integer(interp, t_3);
+ t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);i_3 = VTABLE_get_integer(interp, t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(t_0, t_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), &i_3, t_4);
@@ -2713,7 +2713,7 @@
typedef int(* func_t)(void *, PMC *, char *, int, int, int, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2728,7 +2728,7 @@
INTVAL t_7;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPSIIIPI", &t_0, &t_1, &ts_2, &t_3, &t_4, &t_5, &t_6, &t_7);
- t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4, t_5, PMC_IS_NULL((PMC*)t_6) ? (void *)NULL : VTABLE_get_pointer(interp, t_6), t_7);
@@ -2748,7 +2748,7 @@
typedef int(* func_t)(char *, void *, int, int, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -2761,7 +2761,7 @@
INTVAL t_5;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "SPIISI", &ts_0, &t_1, &t_2, &t_3, &t_4, &t_5);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(t_0, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3, Buffer_bufstart(t_4), t_5);
@@ -2779,7 +2779,7 @@
typedef void *(* func_t)(void *, char *, int, void *, void *, void *, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -2795,7 +2795,7 @@
INTVAL t_7;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSIPPPPI", &t_0, &ts_1, &t_2, &t_3, &t_4, &t_5, &t_6, &t_7);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3), PMC_IS_NULL((PMC*)t_4) ? (void *)NULL : VTABLE_get_pointer(interp, t_4), PMC_IS_NULL((PMC*)t_5) ? (void *)NULL : VTABLE_get_pointer(interp, t_5), PMC_IS_NULL((PMC*)t_6) ? (void *)NULL : VTABLE_get_pointer(interp, t_6), t_7);
@@ -2819,7 +2819,7 @@
typedef void *(* func_t)(void *, int, int *, int *, int, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -2857,7 +2857,7 @@
typedef void *(* func_t)(void *, char *, char *, int, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -2870,7 +2870,7 @@
PMC *t_4;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSIP", &t_0, &ts_1, &ts_2, &t_3, &t_4);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, PMC_IS_NULL((PMC*)t_4) ? (void *)NULL : VTABLE_get_pointer(interp, t_4));
@@ -2891,7 +2891,7 @@
typedef void *(* func_t)(void *, char *, int, void *, void *, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -2906,7 +2906,7 @@
INTVAL t_6;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSIPPPI", &t_0, &ts_1, &t_2, &t_3, &t_4, &t_5, &t_6);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3), PMC_IS_NULL((PMC*)t_4) ? (void *)NULL : VTABLE_get_pointer(interp, t_4), PMC_IS_NULL((PMC*)t_5) ? (void *)NULL : VTABLE_get_pointer(interp, t_5), t_6);
@@ -2929,7 +2929,7 @@
typedef void *(* func_t)(void *, void *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -2959,7 +2959,7 @@
typedef void *(* func_t)(int, int, int, long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -2991,7 +2991,7 @@
typedef int(* func_t)(void *, void *, long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3016,7 +3016,7 @@
typedef void(* func_t)(void *, int, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -3041,7 +3041,7 @@
typedef void *(* func_t)(void *, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -3052,7 +3052,7 @@
INTVAL t_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSI", &t_0, &ts_1, &t_2);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
@@ -3071,7 +3071,7 @@
typedef int(* func_t)(void *, void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3096,7 +3096,7 @@
typedef void *(* func_t)(void *, char *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -3108,7 +3108,7 @@
INTVAL t_3;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSII", &t_0, &ts_1, &t_2, &t_3);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
@@ -3128,7 +3128,7 @@
typedef void *(* func_t)(char *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -3138,7 +3138,7 @@
INTVAL t_1;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "SI", &ts_0, &t_1);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(t_0, t_1);
@@ -3156,7 +3156,7 @@
typedef void *(* func_t)(void *, char *, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -3167,7 +3167,7 @@
PMC *t_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSP", &t_0, &ts_1, &t_2);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
@@ -3186,7 +3186,7 @@
typedef int(* func_t)(void *, char *, int *, int *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3197,7 +3197,7 @@
PMC *t_3; int i_3;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSPP", &t_0, &ts_1, &t_2, &t_3);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;i_2 = VTABLE_get_integer(interp, t_2);i_3 = VTABLE_get_integer(interp, t_3);
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);i_2 = VTABLE_get_integer(interp, t_2);i_3 = VTABLE_get_integer(interp, t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, &i_2, &i_3);
@@ -3213,7 +3213,7 @@
typedef char(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3232,7 +3232,7 @@
typedef char(* func_t)(void *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3255,7 +3255,7 @@
typedef double(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
FLOATVAL return_data;
@@ -3274,7 +3274,7 @@
typedef double(* func_t)(double);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
FLOATVAL return_data;
@@ -3295,7 +3295,7 @@
typedef float(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
FLOATVAL return_data;
@@ -3314,7 +3314,7 @@
typedef float(* func_t)(float, float);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
FLOATVAL return_data;
@@ -3337,7 +3337,7 @@
typedef float(* func_t)(int, short);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
FLOATVAL return_data;
@@ -3360,7 +3360,7 @@
typedef int(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3381,7 +3381,7 @@
typedef int(* func_t)(double);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3402,7 +3402,7 @@
typedef int(* func_t)(int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3423,7 +3423,7 @@
typedef int(* func_t)(int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3446,7 +3446,7 @@
typedef int(* func_t)(int, int, long *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3471,7 +3471,7 @@
typedef int(* func_t)(int, int, long *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3498,7 +3498,7 @@
typedef int(* func_t)(int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3525,7 +3525,7 @@
typedef int(* func_t)(int, int, int, long, short, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3556,7 +3556,7 @@
typedef int(* func_t)(int, int, long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3581,7 +3581,7 @@
typedef int(* func_t)(int, int, long, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3608,7 +3608,7 @@
typedef int(* func_t)(int, int, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3633,7 +3633,7 @@
typedef int(* func_t)(int, int, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3643,7 +3643,7 @@
char *t_2; STRING *ts_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIS", &t_0, &t_1, &ts_2);
- t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(t_0, t_1, t_2);
@@ -3658,7 +3658,7 @@
typedef int(* func_t)(int, int, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3669,7 +3669,7 @@
INTVAL t_3;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IISI", &t_0, &t_1, &ts_2, &t_3);
- t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(t_0, t_1, t_2, t_3);
@@ -3685,7 +3685,7 @@
typedef int(* func_t)(int, long, short, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3712,7 +3712,7 @@
typedef int(* func_t)(int, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3722,7 +3722,7 @@
INTVAL t_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "ISI", &t_0, &ts_1, &t_2);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(t_0, t_1, t_2);
@@ -3737,7 +3737,7 @@
typedef int(* func_t)(long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3758,7 +3758,7 @@
typedef int(* func_t)(long, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3781,7 +3781,7 @@
typedef int(* func_t)(long, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3804,7 +3804,7 @@
typedef int(* func_t)(long, short, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3829,7 +3829,7 @@
typedef int(* func_t)(void *, int *, int *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3854,7 +3854,7 @@
typedef int(* func_t)(void *, int *, int *, int *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3881,7 +3881,7 @@
typedef int(* func_t)(void *, int *, int *, int *, int *, int *, int *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3914,7 +3914,7 @@
typedef int(* func_t)(void *, long *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3937,7 +3937,7 @@
typedef int(* func_t)(void *, long *, short *, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3964,7 +3964,7 @@
typedef int(* func_t)(void *, long *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -3989,7 +3989,7 @@
typedef int(* func_t)(void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4012,7 +4012,7 @@
typedef int(* func_t)(void *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4037,7 +4037,7 @@
typedef int(* func_t)(void *, int, int, long *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4064,7 +4064,7 @@
typedef int(* func_t)(void *, int, int, long *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4093,7 +4093,7 @@
typedef int(* func_t)(void *, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4120,7 +4120,7 @@
typedef int(* func_t)(void *, int, int, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4153,7 +4153,7 @@
typedef int(* func_t)(void *, int, int, int, long, short, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4186,7 +4186,7 @@
typedef int(* func_t)(void *, int, int, long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4213,7 +4213,7 @@
typedef int(* func_t)(void *, int, int, long, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4242,7 +4242,7 @@
typedef int(* func_t)(void *, int, int, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4253,7 +4253,7 @@
char *t_3; STRING *ts_3;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIS", &t_0, &t_1, &t_2, &ts_3);
- t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;
+ t_3 = STRING_IS_NULL(ts_3) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
@@ -4269,7 +4269,7 @@
typedef int(* func_t)(void *, int, int, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4281,7 +4281,7 @@
INTVAL t_4;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIISI", &t_0, &t_1, &t_2, &ts_3, &t_4);
- t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;
+ t_3 = STRING_IS_NULL(ts_3) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4);
@@ -4298,7 +4298,7 @@
typedef int(* func_t)(void *, int, long, short, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4327,7 +4327,7 @@
typedef int(* func_t)(void *, long, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4352,7 +4352,7 @@
typedef int(* func_t)(void *, long, long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4377,7 +4377,7 @@
typedef int(* func_t)(void *, long, long, long, long, long, long, long, long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4414,7 +4414,7 @@
typedef int(* func_t)(void *, long, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4439,7 +4439,7 @@
typedef int(* func_t)(void *, long, short, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4466,7 +4466,7 @@
typedef int(* func_t)(void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4489,7 +4489,7 @@
typedef int(* func_t)(void *, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4514,7 +4514,7 @@
typedef int(* func_t)(void *, void *, int, int, int, int, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4553,7 +4553,7 @@
typedef int(* func_t)(void *, void *, void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4580,7 +4580,7 @@
typedef int(* func_t)(void *, short, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4605,7 +4605,7 @@
typedef int(* func_t)(void *, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4615,7 +4615,7 @@
INTVAL t_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSI", &t_0, &ts_1, &t_2);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
@@ -4630,7 +4630,7 @@
typedef int(* func_t)(void *, int, char *, long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4641,7 +4641,7 @@
INTVAL t_3;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PISI", &t_0, &t_1, &ts_2, &t_3);
- t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
@@ -4657,7 +4657,7 @@
typedef int(* func_t)(short);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4678,7 +4678,7 @@
typedef int(* func_t)(short, short *, short *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4703,7 +4703,7 @@
typedef int(* func_t)(short, short *, short *, short *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4730,7 +4730,7 @@
typedef int(* func_t)(short, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4753,7 +4753,7 @@
typedef int(* func_t)(short, short, short);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4778,7 +4778,7 @@
typedef int(* func_t)(short, short, short, short);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4805,7 +4805,7 @@
typedef int(* func_t)(char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4813,7 +4813,7 @@
char *t_0; STRING *ts_0;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(t_0);
@@ -4826,7 +4826,7 @@
typedef int(* func_t)(char *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4835,7 +4835,7 @@
INTVAL t_1;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "SI", &ts_0, &t_1);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(t_0, t_1);
@@ -4849,7 +4849,7 @@
typedef int(* func_t)(long *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4870,7 +4870,7 @@
typedef int(* func_t)(long *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4893,7 +4893,7 @@
typedef int(* func_t)(long *, short *, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4918,7 +4918,7 @@
typedef long(* func_t)(int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4941,7 +4941,7 @@
typedef long(* func_t)(long, long *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4964,7 +4964,7 @@
typedef long(* func_t)(void *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -4987,7 +4987,7 @@
typedef long(* func_t)(void *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -5012,7 +5012,7 @@
typedef long(* func_t)(void *, int *, int *, long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -5039,7 +5039,7 @@
typedef long(* func_t)(int *, int *, long);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -5064,7 +5064,7 @@
typedef void *(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5088,7 +5088,7 @@
typedef void *(* func_t)(char **);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5097,7 +5097,7 @@
char *t_0; STRING *ts_0;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *) NULL;
+ t_0 = STRING_IS_NULL(ts_0) ? (char *) NULL : Parrot_str_to_cstring(interp, ts_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(&t_0);
@@ -5114,7 +5114,7 @@
typedef void *(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5140,7 +5140,7 @@
typedef void *(* func_t)(PARROT_INTERP, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5149,7 +5149,7 @@
char *t_1; STRING *ts_1;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_1);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(interp, t_1);
@@ -5167,7 +5167,7 @@
typedef void *(* func_t)(int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5193,7 +5193,7 @@
typedef void *(* func_t)(int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5221,7 +5221,7 @@
typedef void *(* func_t)(int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5253,7 +5253,7 @@
typedef void *(* func_t)(int, int, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5289,7 +5289,7 @@
typedef void *(* func_t)(int, int, int, int, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5329,7 +5329,7 @@
typedef void *(* func_t)(void *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5359,7 +5359,7 @@
typedef void *(* func_t)(void *, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5393,7 +5393,7 @@
typedef void *(* func_t)(char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5402,7 +5402,7 @@
char *t_0; STRING *ts_0;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(t_0);
@@ -5419,7 +5419,7 @@
typedef void *(* func_t)(char *, void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5430,7 +5430,7 @@
PMC *t_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "SPP", &ts_0, &t_1, &t_2);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(t_0, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
@@ -5449,7 +5449,7 @@
typedef void *(* func_t)(char *, char *, char *, char *, char *, char *, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5464,7 +5464,7 @@
char *t_6; STRING *ts_6;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "SSSSSSS", &ts_0, &ts_1, &ts_2, &ts_3, &ts_4, &ts_5, &ts_6);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;t_4 = ts_4 ? Parrot_str_to_cstring(interp, ts_4) : (char *)NULL;t_5 = ts_5 ? Parrot_str_to_cstring(interp, ts_5) : (char *)NULL;t_6 = ts_6 ? Parrot_str_to_cstring(interp, ts_6) : (char *)NULL;
+ t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);t_3 = STRING_IS_NULL(ts_3) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_3);t_4 = STRING_IS_NULL(ts_4) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_4);t_5 = STRING_IS_NULL(ts_5) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_5);t_6 = STRING_IS_NULL(ts_6) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_6);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)(t_0, t_1, t_2, t_3, t_4, t_5, t_6);
@@ -5487,7 +5487,7 @@
typedef short(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -5506,7 +5506,7 @@
typedef char *(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -5527,7 +5527,7 @@
typedef char *(* func_t)(int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -5550,7 +5550,7 @@
typedef char *(* func_t)(int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -5575,7 +5575,7 @@
typedef char *(* func_t)(void *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -5600,7 +5600,7 @@
typedef char *(* func_t)(void *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -5627,7 +5627,7 @@
typedef char *(* func_t)(char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -5636,7 +5636,7 @@
char *t_0; STRING *ts_0;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+ t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)(t_0);
@@ -5650,7 +5650,7 @@
typedef char *(* func_t)(char *, long, long *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -5661,7 +5661,7 @@
PMC *t_2; long i_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "SIP", &ts_0, &t_1, &t_2);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;i_2 = VTABLE_get_integer(interp, t_2);
+ t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);i_2 = VTABLE_get_integer(interp, t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)(t_0, t_1, &i_2);
@@ -5677,7 +5677,7 @@
typedef char *(* func_t)(char *, long *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -5687,7 +5687,7 @@
PMC *t_1; long i_1;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "SP", &ts_0, &t_1);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;i_1 = VTABLE_get_integer(interp, t_1);
+ t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);i_1 = VTABLE_get_integer(interp, t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)(t_0, &i_1);
@@ -5702,7 +5702,7 @@
typedef int(* func_t)(short, char);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -5725,7 +5725,7 @@
typedef short(* func_t)(short, char);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -5748,7 +5748,7 @@
typedef char(* func_t)(short, char);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -5771,7 +5771,7 @@
typedef int(* func_t)(int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -5796,7 +5796,7 @@
typedef int(* func_t)(int, int *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -5819,7 +5819,7 @@
typedef char *(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -5842,7 +5842,7 @@
typedef char *(* func_t)(char **);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
char * return_data;
@@ -5851,7 +5851,7 @@
char *t_0; STRING *ts_0;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *) NULL;
+ t_0 = STRING_IS_NULL(ts_0) ? (char *) NULL : Parrot_str_to_cstring(interp, ts_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)(&t_0);
@@ -5865,7 +5865,7 @@
typedef void(* func_t)(PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5886,7 +5886,7 @@
typedef void(* func_t)(void *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5909,7 +5909,7 @@
typedef void *(* func_t)(int, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5937,7 +5937,7 @@
typedef int(* func_t)(int *, int *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -5960,7 +5960,7 @@
typedef void(* func_t)(void *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -5985,7 +5985,7 @@
typedef void(* func_t)(PARROT_INTERP, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -6007,7 +6007,7 @@
typedef int(* func_t)(PARROT_INTERP, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6029,7 +6029,7 @@
typedef int(* func_t)(PARROT_INTERP, PMC *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6053,7 +6053,7 @@
typedef int(* func_t)(PARROT_INTERP, PMC *, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6062,7 +6062,7 @@
char *t_2; STRING *ts_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiS", &t_1, &ts_2);
- t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(interp, t_1, t_2);
@@ -6077,7 +6077,7 @@
typedef int(* func_t)(PARROT_INTERP, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6085,7 +6085,7 @@
char *t_1; STRING *ts_1;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_1);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(interp, t_1);
@@ -6099,7 +6099,7 @@
typedef int(* func_t)(PARROT_INTERP, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6121,7 +6121,7 @@
typedef void(* func_t)(void **, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -6144,7 +6144,7 @@
typedef void *(* func_t)(void *, void *, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -6178,7 +6178,7 @@
typedef void *(* func_t)(void *, void *, int, int, int, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -6220,7 +6220,7 @@
typedef int(* func_t)(void *, void *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6247,7 +6247,7 @@
typedef int(* func_t)(void *, void *, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6276,7 +6276,7 @@
typedef int(* func_t)(void *, void *, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6307,7 +6307,7 @@
typedef int(* func_t)(void *, void *, int, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6340,7 +6340,7 @@
typedef int(* func_t)(void *, void *, int, int, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6375,7 +6375,7 @@
typedef int(* func_t)(void *, void *, char *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6385,7 +6385,7 @@
char *t_2; STRING *ts_2;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPS", &t_0, &t_1, &ts_2);
- t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2);
@@ -6400,7 +6400,7 @@
typedef int(* func_t)(void *, void *, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6427,7 +6427,7 @@
typedef int(* func_t)(void *, void *, void *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6456,7 +6456,7 @@
typedef int(* func_t)(void *, void *, void *, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6489,7 +6489,7 @@
typedef int(* func_t)(void *, void *, void *, void *, int, int, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6528,7 +6528,7 @@
typedef void(* func_t)(float, float, float);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -6553,7 +6553,7 @@
typedef void(* func_t)(void **);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -6574,7 +6574,7 @@
typedef void(* func_t)(void **, void **, void **);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
void * return_data;
@@ -6599,7 +6599,7 @@
typedef int(* func_t)(char *, void **);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6608,7 +6608,7 @@
PMC *t_1; void *v_1;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "SP", &ts_0, &t_1);
- t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;v_1 = VTABLE_get_pointer(interp, t_1);
+ t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);v_1 = VTABLE_get_pointer(interp, t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(t_0, &v_1);
@@ -6622,7 +6622,7 @@
typedef int(* func_t)(void *, char *, int, void **, void *);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6634,7 +6634,7 @@
PMC *t_4;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSIPP", &t_0, &ts_1, &t_2, &t_3, &t_4);
- t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;v_3 = VTABLE_get_pointer(interp, t_3);
+ t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);v_3 = VTABLE_get_pointer(interp, t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, &v_3, PMC_IS_NULL((PMC*)t_4) ? (void *)NULL : VTABLE_get_pointer(interp, t_4));
@@ -6651,7 +6651,7 @@
typedef int(* func_t)(void *, int, double);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6676,7 +6676,7 @@
typedef int(* func_t)(void *, int, char *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
INTVAL return_data;
@@ -6688,7 +6688,7 @@
INTVAL t_4;
UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PISII", &t_0, &t_1, &ts_2, &t_3, &t_4);
- t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+ t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4);
Modified: branches/gc_massacre/src/nci_test.c
==============================================================================
--- branches/gc_massacre/src/nci_test.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/nci_test.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2007, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -159,8 +159,11 @@
*/
-PARROT_DYNEXT_EXPORT char
-nci_c(void) {
+PARROT_DYNEXT_EXPORT
+PARROT_PURE_FUNCTION
+char
+nci_c(void)
+{
return nci_dlvar_char;
}
@@ -174,7 +177,9 @@
*/
-PARROT_DYNEXT_EXPORT char
+PARROT_DYNEXT_EXPORT
+PARROT_CONST_FUNCTION
+char
nci_csc(short l1, char l2)
{
return l1 * l2;
@@ -191,7 +196,8 @@
*/
-PARROT_DYNEXT_EXPORT double
+PARROT_DYNEXT_EXPORT
+double
nci_d(void)
{
nci_dlvar_double *= 10.0;
@@ -209,7 +215,9 @@
*/
-PARROT_DYNEXT_EXPORT double
+PARROT_DYNEXT_EXPORT
+PARROT_CONST_FUNCTION
+double
nci_dd(double d)
{
return d * 2.0;
@@ -226,7 +234,8 @@
*/
-PARROT_DYNEXT_EXPORT float
+PARROT_DYNEXT_EXPORT
+float
nci_f(void)
{
nci_dlvar_float *= 10.0;
@@ -244,7 +253,9 @@
*/
-PARROT_DYNEXT_EXPORT float
+PARROT_DYNEXT_EXPORT
+PARROT_CONST_FUNCTION
+float
nci_fff(float l1, float l2)
{
return l1 / l2;
@@ -260,7 +271,9 @@
*/
-PARROT_DYNEXT_EXPORT int
+PARROT_DYNEXT_EXPORT
+PARROT_PURE_FUNCTION
+int
nci_i(void)
{
return nci_dlvar_int;
@@ -276,7 +289,9 @@
*/
-PARROT_DYNEXT_EXPORT int
+PARROT_DYNEXT_EXPORT
+PARROT_CONST_FUNCTION
+int
nci_isc(short l1, char l2)
{
return l1 * l2;
@@ -292,7 +307,8 @@
*/
-PARROT_DYNEXT_EXPORT int
+PARROT_DYNEXT_EXPORT
+int
nci_ip(void *p)
{
typedef struct _dfi {
@@ -318,7 +334,8 @@
*/
-PARROT_DYNEXT_EXPORT int
+PARROT_DYNEXT_EXPORT
+int
nci_it(void *p)
{
fprintf(stderr, "%c%c\n", ((char*) p)[1], ((char *) p)[0]);
@@ -337,7 +354,9 @@
*/
-PARROT_DYNEXT_EXPORT long
+PARROT_DYNEXT_EXPORT
+PARROT_PURE_FUNCTION
+long
nci_l(void)
{
return nci_dlvar_long;
@@ -353,7 +372,9 @@
*/
-PARROT_DYNEXT_EXPORT int *
+PARROT_DYNEXT_EXPORT
+PARROT_CONST_FUNCTION
+int *
nci_p(void)
{
return &nci_dlvar_int;
@@ -369,7 +390,9 @@
*/
-PARROT_DYNEXT_EXPORT char *
+PARROT_DYNEXT_EXPORT
+PARROT_CONST_FUNCTION
+char *
nci_t(void)
{
return nci_dlvar_cstring;
@@ -388,7 +411,8 @@
static char b[] = "xx worked\n";
-PARROT_DYNEXT_EXPORT char *
+PARROT_DYNEXT_EXPORT
+char *
nci_tb(void *p)
{
b[0] = ((char*) p)[1];
@@ -410,7 +434,8 @@
static char s[] = "xx worked\n";
-PARROT_DYNEXT_EXPORT char *
+PARROT_DYNEXT_EXPORT
+char *
nci_tt(char *p)
{
s[0] = p[1];
@@ -432,7 +457,8 @@
static char B[] = "xx done\n";
-PARROT_DYNEXT_EXPORT char *
+PARROT_DYNEXT_EXPORT
+char *
nci_tB(void **p)
{
B[0] = (*(char**) p)[1];
@@ -451,7 +477,9 @@
*/
-PARROT_DYNEXT_EXPORT void *
+PARROT_DYNEXT_EXPORT
+PARROT_CONST_FUNCTION
+void *
nci_pp(void *p)
{
return p;
@@ -468,7 +496,8 @@
*/
-PARROT_DYNEXT_EXPORT int
+PARROT_DYNEXT_EXPORT
+int
nci_iiii(int i1, int i2, int i3)
{
fprintf(stderr, "%d %d %d\n", i1, i2, i3);
@@ -487,7 +516,9 @@
*/
-PARROT_DYNEXT_EXPORT int
+PARROT_DYNEXT_EXPORT
+PARROT_PURE_FUNCTION
+int
nci_i4i(long * l, int i)
{
@@ -505,7 +536,8 @@
*/
-PARROT_DYNEXT_EXPORT int
+PARROT_DYNEXT_EXPORT
+int
nci_ii3(int a, int *bp)
{
int r = a * *bp;
@@ -524,7 +556,8 @@
*/
-PARROT_DYNEXT_EXPORT int
+PARROT_DYNEXT_EXPORT
+int
call_back(const char *str)
{
puts(str);
@@ -543,7 +576,8 @@
*/
-PARROT_DYNEXT_EXPORT void *
+PARROT_DYNEXT_EXPORT
+void *
nci_pi(int test)
{
switch (test) {
@@ -691,7 +725,9 @@
*/
-PARROT_DYNEXT_EXPORT short
+PARROT_DYNEXT_EXPORT
+PARROT_PURE_FUNCTION
+short
nci_s(void)
{
return nci_dlvar_short;
@@ -707,7 +743,9 @@
*/
-PARROT_DYNEXT_EXPORT short
+PARROT_DYNEXT_EXPORT
+PARROT_CONST_FUNCTION
+short
nci_ssc(short l1, char l2)
{
return l1 * l2;
@@ -723,7 +761,8 @@
*/
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
nci_vP(void *pmc)
{
/* TODO:
@@ -760,7 +799,8 @@
*/
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
nci_cb_C1(cb_C1_func cb, void* user_data)
{
const char *result = "succeeded";
@@ -781,7 +821,8 @@
*/
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
nci_cb_C2(cb_C2_func cb, void* user_data)
{
/* call the cb synchronously */
@@ -803,7 +844,8 @@
static int int_cb_C3 = 99;
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
nci_cb_C3(cb_C3_func cb, void* user_data)
{
/* call the cb synchronously */
@@ -823,7 +865,8 @@
*/
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
nci_cb_D1(cb_D1_func cb, void* user_data)
{
const char *result = "succeeded";
@@ -844,7 +887,8 @@
*/
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
nci_cb_D2(cb_D2_func cb, void* user_data)
{
/* call the cb synchronously */
@@ -866,7 +910,8 @@
static int int_cb_D3 = 111;
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
nci_cb_D3(cb_D3_func cb, void* user_data)
{
/* call the cb synchronously */
@@ -888,7 +933,8 @@
*/
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
nci_cb_D4(cb_D4_func times_ten, void* user_data)
{
int cnt;
@@ -911,7 +957,8 @@
*/
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
nci_pip(int count, Rect_Like *rects)
{
int i;
@@ -931,8 +978,9 @@
*/
-PARROT_DYNEXT_EXPORT int
-nci_i33(int *double_me, int *triple_me)
+PARROT_DYNEXT_EXPORT
+int
+nci_i33(ARGMOD(int *double_me), ARGMOD(int *triple_me))
{
*double_me *= 2;
*triple_me *= 3;
@@ -951,8 +999,9 @@
*/
-PARROT_DYNEXT_EXPORT void
-nci_vpii(Outer *my_data, int my_x, int my_y)
+PARROT_DYNEXT_EXPORT
+void
+nci_vpii(ARGMOD(Outer *my_data), int my_x, int my_y)
{
my_data->x = my_x;
my_data->nested->y = my_y;
@@ -972,7 +1021,8 @@
static int my_array[4];
-PARROT_DYNEXT_EXPORT void *
+PARROT_DYNEXT_EXPORT
+void *
nci_piiii(int alpha, int beta, int gamma, int delta)
{
static struct array_container
@@ -1003,7 +1053,8 @@
*/
-PARROT_DYNEXT_EXPORT void *
+PARROT_DYNEXT_EXPORT
+void *
nci_pii(int fac1, int fac2)
{
nci_dlvar_int = fac1 * fac2;
@@ -1021,7 +1072,8 @@
*/
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
nci_v(void)
{
nci_dlvar_int *= 10;
@@ -1037,7 +1089,8 @@
*/
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
nci_vv(void)
{
nci_dlvar_int *= 3;
@@ -1053,8 +1106,9 @@
*/
-PARROT_DYNEXT_EXPORT void
-nci_vVi(Opaque **outOpaque, int x)
+PARROT_DYNEXT_EXPORT
+void
+nci_vVi(ARGOUT(Opaque **outOpaque), int x)
{
static Opaque opaque;
opaque.x = x;
@@ -1072,8 +1126,9 @@
*/
-PARROT_DYNEXT_EXPORT void
-nci_vp(Opaque *inOpaque)
+PARROT_DYNEXT_EXPORT
+void
+nci_vp(ARGIN(Opaque *inOpaque))
{
if (inOpaque)
printf("got %d\n", inOpaque->x);
@@ -1091,7 +1146,8 @@
*/
-PARROT_DYNEXT_EXPORT char *
+PARROT_DYNEXT_EXPORT
+char *
nci_ttt(char *s1, char *s2)
{
char* s = (char*) malloc((2 * strlen(s2)) + strlen(s1) + 5);
@@ -1100,9 +1156,20 @@
return s;
}
+/*
+
+=item C<static void validate_float(float f, double checkval)>
+
+Check that a float value f is has an error ratio of less than 0.01
+when compared to a double value checkval
+
+=cut
+
+*/
static void
-validate_float(float f, double checkval) {
+validate_float(float f, double checkval)
+{
int valid;
double error_ratio;
error_ratio = (((double)f) - checkval) / checkval;
@@ -1121,7 +1188,8 @@
*/
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
nci_vfff(float l1, float l2, float l3)
{
validate_float(l1, 3456.54);
@@ -1140,7 +1208,8 @@
*/
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
nci_vV(const char **ptr)
{
*ptr = "Hello bright new world\n";
@@ -1158,7 +1227,8 @@
*/
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
nci_vVVV(const char **ptr1, const char **ptr2, const char **ptr3)
{
*ptr1 = "Hello bright new world!\n";
Modified: branches/gc_massacre/src/oo.c
==============================================================================
--- branches/gc_massacre/src/oo.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/oo.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -190,7 +190,7 @@
PMC * const hll_ns = VTABLE_get_pmc_keyed_int(interp,
interp->HLL_namespace,
Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp)));
- PMC * const ns = Parrot_get_namespace_keyed(interp,
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp,
hll_ns, key);
if (!PMC_IS_NULL(ns))
@@ -334,9 +334,9 @@
return type_class;
}
else {
- PMC * const parrot_hll = Parrot_get_namespace_keyed_str(interp, interp->root_namespace, CONST_STRING(interp, "parrot"));
+ PMC * const parrot_hll = Parrot_ns_get_namespace_keyed_str(interp, interp->root_namespace, CONST_STRING(interp, "parrot"));
PMC * const pmc_ns =
- Parrot_make_namespace_keyed_str(interp, parrot_hll,
+ Parrot_ns_make_namespace_keyed_str(interp, parrot_hll,
interp->vtables[type]->whoami);
PMC * proxy = VTABLE_get_class(interp, pmc_ns);
@@ -375,7 +375,7 @@
/* First check in current HLL namespace */
PMC * const hll_ns = VTABLE_get_pmc_keyed_int(interp, interp->HLL_namespace,
Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp)));
- PMC * const ns = Parrot_get_namespace_keyed_str(interp, hll_ns, name);
+ PMC * const ns = Parrot_ns_get_namespace_keyed_str(interp, hll_ns, name);
PMC * const _class = PMC_IS_NULL(ns)
? PMCNULL : VTABLE_get_class(interp, ns);
@@ -438,7 +438,7 @@
ARGIN(PMC *classobj), ARGIN(STRING *name))
{
ASSERT_ARGS(Parrot_oo_find_vtable_override_for_class)
- const Parrot_Class_attributes * const class_info = PARROT_CLASS(classobj);;
+ const Parrot_Class_attributes * const class_info = PARROT_CLASS(classobj);
PARROT_ASSERT(PObj_is_class_TEST(classobj));
return VTABLE_get_pmc_keyed_str(interp, class_info->vtable_overrides, name);
Modified: branches/gc_massacre/src/ops/core.ops
==============================================================================
--- branches/gc_massacre/src/ops/core.ops Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/ops/core.ops Tue Aug 3 22:27:14 2010 (r48298)
@@ -542,6 +542,7 @@
PARROT_ERRORS_RESULT_COUNT_FLAG);
argc = VTABLE_elements(interp, signature);
+ Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), PMCNULL);
goto OFFSET(argc + 2);
}
@@ -1252,7 +1253,6 @@
}
op dlfunc(out PMC, invar PMC, in STR, in STR) {
- char * const name = Parrot_str_to_cstring(interp, ($3));
void *dl_handle = NULL;
void *ptr = NULL;
funcptr_t p;
@@ -1263,24 +1263,22 @@
dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data($2))->dl_handle;
}
- ptr = Parrot_dlsym(dl_handle, name);
+ ptr = Parrot_dlsym_str(interp, dl_handle, $3);
p = D2FPTR(ptr);
if (p == NULLfunc) {
const char * err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
- "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ "Symbol '%Ss' not found: %s\n", $3, err ? err : "unknown reason");
$1 = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
$1 = Parrot_pmc_new(interp, enum_class_NCI);
VTABLE_set_pointer_keyed_str(interp, $1, $4, F2DPTR(p));
}
- Parrot_str_free_cstring(name);
}
op dlvar(out PMC, invar PMC, in STR) {
- char * const name = Parrot_str_to_cstring(interp, ($3));
void * dl_handle = NULL;
void * p = NULL;
@@ -1290,12 +1288,12 @@
dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data($2))->dl_handle;
}
- p = Parrot_dlsym(dl_handle, name);
+ p = Parrot_dlsym_str(interp, dl_handle, $3);
if (p == NULL) {
const char * const err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
- "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ "Symbol '%Ss' not found: %s\n", $3, err ? err : "unknown reason");
$1 = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
@@ -1304,7 +1302,6 @@
$1 = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, $1, p);
}
- Parrot_str_free_cstring(name);
}
inline op compreg(in STR, invar PMC) {
Modified: branches/gc_massacre/src/ops/core_ops.c
==============================================================================
--- branches/gc_massacre/src/ops/core_ops.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/ops/core_ops.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -14181,7 +14181,7 @@
opcode_t *
Parrot_check_events(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- opcode_t * const next =cur_opcode + 1;
+ opcode_t * const next = cur_opcode + 1;
Parrot_cx_check_tasks(interp, interp->scheduler);return (opcode_t *)next; /* force this being a branch op */
}
@@ -14211,7 +14211,7 @@
opcode_t *
Parrot_load_bytecode_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- Parrot_load_bytecode(interp, CONST(1)->u.string);
+ Parrot_load_bytecode(interp, CONST(1).u.string);
return (opcode_t *)cur_opcode + 2;}
@@ -14225,7 +14225,7 @@
opcode_t *
Parrot_load_language_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- Parrot_load_language(interp, CONST(1)->u.string);
+ Parrot_load_language(interp, CONST(1).u.string);
return (opcode_t *)cur_opcode + 2;}
@@ -14243,7 +14243,7 @@
Parrot_local_branch_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
INTVAL return_addr;
- opcode_t * const dest =cur_opcode + 3;
+ opcode_t * const dest = cur_opcode + 3;
if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
@@ -14259,7 +14259,7 @@
Parrot_local_branch_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
INTVAL return_addr;
- opcode_t * const dest =cur_opcode + 3;
+ opcode_t * const dest = cur_opcode + 3;
if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
@@ -14276,7 +14276,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
INTVAL return_addr;
opcode_t *next;
- opcode_t * const dest =cur_opcode + 2;
+ opcode_t * const dest = cur_opcode + 2;
if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
@@ -14375,7 +14375,7 @@
Parrot_invokecc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const p = PREG(1);
- opcode_t *dest =cur_opcode + 2;
+ opcode_t *dest = cur_opcode + 2;
PMC * const signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));
@@ -14390,7 +14390,7 @@
opcode_t *
Parrot_invoke_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- opcode_t *dest =cur_opcode + 3;
+ opcode_t *dest = cur_opcode + 3;
PMC * const p = PREG(1);
PMC * const signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));
@@ -14407,7 +14407,7 @@
opcode_t *
Parrot_yield(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- opcode_t *dest =cur_opcode + 1;
+ opcode_t *dest = cur_opcode + 1;
PMC * const p = Parrot_pcc_get_sub(interp, CURRENT_CONTEXT(interp));
VTABLE_increment(interp, p);
@@ -14418,7 +14418,7 @@
Parrot_tailcall_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const p = PREG(1);
- opcode_t *dest =cur_opcode + 2;
+ opcode_t *dest = cur_opcode + 2;
PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const parent_ctx = Parrot_pcc_get_caller_ctx(interp, ctx);
PMC * const this_call_sig = Parrot_pcc_get_signature(interp, ctx);
@@ -14435,7 +14435,7 @@
Parrot_returncc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const p = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
- opcode_t * const dest = VTABLE_invoke(interp, p,cur_opcode + 1);return (opcode_t *)dest;
+ opcode_t * const dest = VTABLE_invoke(interp, p, cur_opcode + 1);return (opcode_t *)dest;
}
opcode_t *
@@ -14456,7 +14456,7 @@
Parrot_set_args_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
opcode_t * const raw_args = CUR_OPCODE;
- PMC * const signature = CONST(1)->u.key;
+ PMC * const signature = CONST(1).u.key;
PMC * const call_sig = Parrot_pcc_build_sig_object_from_op(interp,
PMCNULL, signature, raw_args);
const INTVAL argc = VTABLE_elements(interp, signature);
@@ -14467,7 +14467,7 @@
Parrot_get_params_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
opcode_t * const raw_params = CUR_OPCODE;
- PMC * const signature = CONST(1)->u.key;
+ PMC * const signature = CONST(1).u.key;
PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const ccont = Parrot_pcc_get_continuation(interp, ctx);
PMC * const caller_ctx = Parrot_pcc_get_caller_ctx(interp, ctx);
@@ -14490,7 +14490,7 @@
Parrot_set_returns_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
opcode_t * const raw_args = CUR_OPCODE;
- PMC * const signature = CONST(1)->u.key;
+ PMC * const signature = CONST(1).u.key;
PMC * const call_sig = Parrot_pcc_build_sig_object_from_op(interp,
Parrot_pcc_get_signature(interp,
Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp))),
@@ -14506,7 +14506,7 @@
Parrot_get_results_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
opcode_t * const raw_params = CUR_OPCODE;
- PMC * const signature = CONST(1)->u.key;
+ PMC * const signature = CONST(1).u.key;
PMC *ctx = CURRENT_CONTEXT(interp);
PMC *ccont = Parrot_pcc_get_continuation(interp, ctx);
PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
@@ -14516,7 +14516,8 @@
Parrot_pcc_fill_params_from_op(interp, call_object, signature, raw_params,
PARROT_ERRORS_RESULT_COUNT_FLAG);
- argc = VTABLE_elements(interp, signature);return (opcode_t *)cur_opcode + argc + 2;
+ argc = VTABLE_elements(interp, signature);
+ Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), PMCNULL);return (opcode_t *)cur_opcode + argc + 2;
}
opcode_t *
@@ -14537,7 +14538,7 @@
VTABLE_set_attr_str(interp, ctx,
Parrot_str_new_constant(interp, "return_flags"),
- CONST(1)->u.key);
+ CONST(1).u.key);
return (opcode_t *)cur_opcode + 2;}
@@ -14628,7 +14629,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * except = PREG(1);
opcode_t *dest;
- opcode_t * const ret =cur_opcode + 2;
+ opcode_t * const ret = cur_opcode + 2;
PMC * const resume = pmc_new(interp, enum_class_Continuation);
VTABLE_set_pointer(interp, resume, ret);
@@ -14660,7 +14661,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
opcode_t * dest;
if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_Exception) {
- opcode_t * const ret =cur_opcode + 2;
+ opcode_t * const ret = cur_opcode + 2;
PMC * const except = Parrot_ex_build_exception(interp, EXCEPT_fatal,
EXCEPTION_UNIMPLEMENTED,
Parrot_str_new_constant(interp, "Not a throwable object"));
@@ -14681,7 +14682,7 @@
Parrot_die_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
opcode_t *dest;
- opcode_t * const ret =cur_opcode + 2;
+ opcode_t * const ret = cur_opcode + 2;
PMC * const resume = pmc_new(interp, enum_class_Continuation);
PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_error,
CONTROL_ERROR, SREG(1));
@@ -14697,10 +14698,10 @@
Parrot_die_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
opcode_t *dest;
- opcode_t * const ret =cur_opcode + 2;
+ opcode_t * const ret = cur_opcode + 2;
PMC * const resume = pmc_new(interp, enum_class_Continuation);
PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_error,
- CONTROL_ERROR, CONST(1)->u.string);
+ CONTROL_ERROR, CONST(1).u.string);
VTABLE_set_pointer(interp, resume, ret);
@@ -14713,7 +14714,7 @@
Parrot_die_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
opcode_t *dest;
- opcode_t * const ret =cur_opcode + 2;
+ opcode_t * const ret = cur_opcode + 2;
PMC * const resume = pmc_new(interp, enum_class_Continuation);
STRING * const msg = PMC_IS_NULL(PREG(1)) ? NULL : VTABLE_get_string(interp, PREG(1));
PMC * const exception =
@@ -14730,9 +14731,9 @@
Parrot_die_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
opcode_t *dest;
- opcode_t * const ret =cur_opcode + 2;
+ opcode_t * const ret = cur_opcode + 2;
PMC * const resume = pmc_new(interp, enum_class_Continuation);
- STRING * const msg = PMC_IS_NULL(CONST(1)->u.key) ? NULL : VTABLE_get_string(interp, CONST(1)->u.key);
+ STRING * const msg = PMC_IS_NULL(CONST(1).u.key) ? NULL : VTABLE_get_string(interp, CONST(1).u.key);
PMC * const exception =
Parrot_ex_build_exception(interp, EXCEPT_error, CONTROL_ERROR, msg);
@@ -14749,7 +14750,7 @@
if (IREG(1) == EXCEPT_doomed)
_exit(IREG(2));
else {
- opcode_t * const ret =cur_opcode + 3;
+ opcode_t * const ret = cur_opcode + 3;
PMC * const exception = Parrot_ex_build_exception(interp, IREG(1), IREG(2), NULL);
opcode_t * const dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
}
@@ -14761,7 +14762,7 @@
if (cur_opcode[1] == EXCEPT_doomed)
_exit(IREG(2));
else {
- opcode_t * const ret =cur_opcode + 3;
+ opcode_t * const ret = cur_opcode + 3;
PMC * const exception = Parrot_ex_build_exception(interp, cur_opcode[1], IREG(2), NULL);
opcode_t * const dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
}
@@ -14773,7 +14774,7 @@
if (IREG(1) == EXCEPT_doomed)
_exit(cur_opcode[2]);
else {
- opcode_t * const ret =cur_opcode + 3;
+ opcode_t * const ret = cur_opcode + 3;
PMC * const exception = Parrot_ex_build_exception(interp, IREG(1), cur_opcode[2], NULL);
opcode_t * const dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
}
@@ -14785,7 +14786,7 @@
if (cur_opcode[1] == EXCEPT_doomed)
_exit(cur_opcode[2]);
else {
- opcode_t * const ret =cur_opcode + 3;
+ opcode_t * const ret = cur_opcode + 3;
PMC * const exception = Parrot_ex_build_exception(interp, cur_opcode[1], cur_opcode[2], NULL);
opcode_t * const dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
}
@@ -14795,9 +14796,9 @@
Parrot_exit_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
opcode_t *dest;
- opcode_t * const ret =cur_opcode + 2;
+ opcode_t * const ret = cur_opcode + 2;
PMC * const resume = pmc_new(interp, enum_class_Continuation);
- PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit,
+ PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit,
CONTROL_EXIT, NULL);
VTABLE_set_pointer(interp, resume, ret);
@@ -14813,9 +14814,9 @@
Parrot_exit_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
opcode_t *dest;
- opcode_t * const ret =cur_opcode + 2;
+ opcode_t * const ret = cur_opcode + 2;
PMC * const resume = pmc_new(interp, enum_class_Continuation);
- PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit,
+ PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit,
CONTROL_EXIT, NULL);
VTABLE_set_pointer(interp, resume, ret);
@@ -15090,7 +15091,7 @@
opcode_t *
Parrot_loadlib_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = Parrot_load_lib(interp, CONST(2)->u.string, NULL);
+ PREG(1) = Parrot_load_lib(interp, CONST(2).u.string, NULL);
return (opcode_t *)cur_opcode + 3;}
@@ -15104,28 +15105,27 @@
opcode_t *
Parrot_loadlib_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = Parrot_load_lib(interp, CONST(2)->u.string, PREG(3));
+ PREG(1) = Parrot_load_lib(interp, CONST(2).u.string, PREG(3));
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_loadlib_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = Parrot_load_lib(interp, SREG(2), CONST(3)->u.key);
+ PREG(1) = Parrot_load_lib(interp, SREG(2), CONST(3).u.key);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_loadlib_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = Parrot_load_lib(interp, CONST(2)->u.string, CONST(3)->u.key);
+ PREG(1) = Parrot_load_lib(interp, CONST(2).u.string, CONST(3).u.key);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_dlfunc_p_p_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- char * const name = Parrot_str_to_cstring(interp, (SREG(3)));
void *dl_handle = NULL;
void *ptr = NULL;
funcptr_t p;
@@ -15136,27 +15136,25 @@
dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
}
- ptr = Parrot_dlsym(dl_handle, name);
+ ptr = Parrot_dlsym_str(interp, dl_handle, SREG(3));
p = D2FPTR(ptr);
if (p == NULLfunc) {
const char * err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
- "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ "Symbol '%Ss' not found: %s\n", SREG(3), err ? err : "unknown reason");
PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p));
}
- Parrot_str_free_cstring(name);
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_dlfunc_p_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- char * const name = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
void *dl_handle = NULL;
void *ptr = NULL;
funcptr_t p;
@@ -15167,27 +15165,25 @@
dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
}
- ptr = Parrot_dlsym(dl_handle, name);
+ ptr = Parrot_dlsym_str(interp, dl_handle, CONST(3).u.string);
p = D2FPTR(ptr);
if (p == NULLfunc) {
const char * err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
- "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ "Symbol '%Ss' not found: %s\n", CONST(3).u.string, err ? err : "unknown reason");
PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p));
}
- Parrot_str_free_cstring(name);
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_dlfunc_p_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- char * const name = Parrot_str_to_cstring(interp, (SREG(3)));
void *dl_handle = NULL;
void *ptr = NULL;
funcptr_t p;
@@ -15198,27 +15194,25 @@
dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
}
- ptr = Parrot_dlsym(dl_handle, name);
+ ptr = Parrot_dlsym_str(interp, dl_handle, SREG(3));
p = D2FPTR(ptr);
if (p == NULLfunc) {
const char * err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
- "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ "Symbol '%Ss' not found: %s\n", SREG(3), err ? err : "unknown reason");
PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
- VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4)->u.string, F2DPTR(p));
+ VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4).u.string, F2DPTR(p));
}
- Parrot_str_free_cstring(name);
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_dlfunc_p_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- char * const name = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
void *dl_handle = NULL;
void *ptr = NULL;
funcptr_t p;
@@ -15229,27 +15223,25 @@
dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
}
- ptr = Parrot_dlsym(dl_handle, name);
+ ptr = Parrot_dlsym_str(interp, dl_handle, CONST(3).u.string);
p = D2FPTR(ptr);
if (p == NULLfunc) {
const char * err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
- "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ "Symbol '%Ss' not found: %s\n", CONST(3).u.string, err ? err : "unknown reason");
PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
- VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4)->u.string, F2DPTR(p));
+ VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4).u.string, F2DPTR(p));
}
- Parrot_str_free_cstring(name);
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_dlvar_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- char * const name = Parrot_str_to_cstring(interp, (SREG(3)));
void * dl_handle = NULL;
void * p = NULL;
@@ -15259,12 +15251,12 @@
dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
}
- p = Parrot_dlsym(dl_handle, name);
+ p = Parrot_dlsym_str(interp, dl_handle, SREG(3));
if (p == NULL) {
const char * const err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
- "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ "Symbol '%Ss' not found: %s\n", SREG(3), err ? err : "unknown reason");
PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
@@ -15273,14 +15265,12 @@
PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, PREG(1), p);
}
- Parrot_str_free_cstring(name);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_dlvar_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- char * const name = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
void * dl_handle = NULL;
void * p = NULL;
@@ -15290,12 +15280,12 @@
dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
}
- p = Parrot_dlsym(dl_handle, name);
+ p = Parrot_dlsym_str(interp, dl_handle, CONST(3).u.string);
if (p == NULL) {
const char * const err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
- "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ "Symbol '%Ss' not found: %s\n", CONST(3).u.string, err ? err : "unknown reason");
PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
@@ -15304,7 +15294,6 @@
PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, PREG(1), p);
}
- Parrot_str_free_cstring(name);
return (opcode_t *)cur_opcode + 4;}
@@ -15322,7 +15311,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
interp->iglobals, IGLOBALS_COMPREG_HASH);
- VTABLE_set_pmc_keyed_str(interp, compreg_hash, CONST(1)->u.string, PREG(2));
+ VTABLE_set_pmc_keyed_str(interp, compreg_hash, CONST(1).u.string, PREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -15340,7 +15329,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
interp->iglobals, IGLOBALS_COMPREG_HASH);
- PREG(1) = VTABLE_get_pmc_keyed_str(interp, compreg_hash, CONST(2)->u.string);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, compreg_hash, CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -15354,7 +15343,7 @@
opcode_t *
Parrot_new_callback_p_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = Parrot_make_cb(interp, PREG(2), PREG(3), CONST(4)->u.string);
+ PREG(1) = Parrot_make_cb(interp, PREG(2), PREG(3), CONST(4).u.string);
return (opcode_t *)cur_opcode + 5;}
@@ -15362,7 +15351,7 @@
Parrot_annotations_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
if (interp->code->annotations) {
- const opcode_t cur_pos = (cur_opcode + 2) - interp->code->base.data;
+ const opcode_t cur_pos = ( cur_opcode + 2) - interp->code->base.data;
PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
cur_pos, NULL);
}
@@ -15376,7 +15365,7 @@
Parrot_annotations_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
if (interp->code->annotations) {
- const opcode_t cur_pos = (cur_opcode + 3) - interp->code->base.data;
+ const opcode_t cur_pos = ( cur_opcode + 3) - interp->code->base.data;
PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
cur_pos, SREG(2));
}
@@ -15390,9 +15379,9 @@
Parrot_annotations_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
if (interp->code->annotations) {
- const opcode_t cur_pos = (cur_opcode + 3) - interp->code->base.data;
+ const opcode_t cur_pos = ( cur_opcode + 3) - interp->code->base.data;
PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
- cur_pos, CONST(2)->u.string);
+ cur_pos, CONST(2).u.string);
}
else {
PREG(1) = PMCNULL;
@@ -15654,7 +15643,7 @@
opcode_t *
Parrot_eq_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (CONST(1)->u.number == NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (CONST(1).u.number == NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -15662,7 +15651,7 @@
opcode_t *
Parrot_eq_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (NREG(1) == CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (NREG(1) == CONST(2).u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -15678,7 +15667,7 @@
opcode_t *
Parrot_eq_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (Parrot_str_equal(interp, CONST(1)->u.string, SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (Parrot_str_equal(interp, CONST(1).u.string, SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -15686,7 +15675,7 @@
opcode_t *
Parrot_eq_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (Parrot_str_equal(interp, SREG(1), CONST(2)->u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (Parrot_str_equal(interp, SREG(1), CONST(2).u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -15750,7 +15739,7 @@
* overriding the compare multi subs wouldn't
* have any effect with the current code
*/
- if (VTABLE_get_number(interp, PREG(1)) == CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (VTABLE_get_number(interp, PREG(1)) == CONST(2).u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -15766,7 +15755,7 @@
opcode_t *
Parrot_eq_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (Parrot_str_equal(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (Parrot_str_equal(interp, VTABLE_get_string(interp, PREG(1)), CONST(2).u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -15798,7 +15787,7 @@
opcode_t *
Parrot_eq_addr_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (CONST(1)->u.string == SREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (CONST(1).u.string == SREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -15806,7 +15795,7 @@
opcode_t *
Parrot_eq_addr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (SREG(1) == CONST(2)->u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (SREG(1) == CONST(2).u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -15814,7 +15803,7 @@
opcode_t *
Parrot_eq_addr_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (CONST(1)->u.string == CONST(2)->u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (CONST(1).u.string == CONST(2).u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -15862,7 +15851,7 @@
opcode_t *
Parrot_ne_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (CONST(1)->u.number != NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (CONST(1).u.number != NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -15870,7 +15859,7 @@
opcode_t *
Parrot_ne_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (NREG(1) != CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (NREG(1) != CONST(2).u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -15886,7 +15875,7 @@
opcode_t *
Parrot_ne_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (Parrot_str_not_equal(interp, CONST(1)->u.string, SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (Parrot_str_not_equal(interp, CONST(1).u.string, SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -15894,7 +15883,7 @@
opcode_t *
Parrot_ne_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (Parrot_str_not_equal(interp, SREG(1), CONST(2)->u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (Parrot_str_not_equal(interp, SREG(1), CONST(2).u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -15946,7 +15935,7 @@
opcode_t *
Parrot_ne_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (VTABLE_get_number(interp, PREG(1)) != CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (VTABLE_get_number(interp, PREG(1)) != CONST(2).u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -15962,7 +15951,7 @@
opcode_t *
Parrot_ne_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (Parrot_str_not_equal(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (Parrot_str_not_equal(interp, VTABLE_get_string(interp, PREG(1)), CONST(2).u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -15994,7 +15983,7 @@
opcode_t *
Parrot_ne_addr_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (CONST(1)->u.string != SREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (CONST(1).u.string != SREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16002,7 +15991,7 @@
opcode_t *
Parrot_ne_addr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (SREG(1) != CONST(2)->u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (SREG(1) != CONST(2).u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16010,7 +15999,7 @@
opcode_t *
Parrot_ne_addr_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (CONST(1)->u.string != CONST(2)->u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (CONST(1).u.string != CONST(2).u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16058,7 +16047,7 @@
opcode_t *
Parrot_lt_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (CONST(1)->u.number < NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (CONST(1).u.number < NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16066,7 +16055,7 @@
opcode_t *
Parrot_lt_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (NREG(1) < CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (NREG(1) < CONST(2).u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16082,7 +16071,7 @@
opcode_t *
Parrot_lt_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (Parrot_str_compare(interp, CONST(1)->u.string, SREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (Parrot_str_compare(interp, CONST(1).u.string, SREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16090,7 +16079,7 @@
opcode_t *
Parrot_lt_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (Parrot_str_compare(interp, SREG(1), CONST(2)->u.string) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (Parrot_str_compare(interp, SREG(1), CONST(2).u.string) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16142,7 +16131,7 @@
opcode_t *
Parrot_lt_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (VTABLE_get_number(interp, PREG(1)) < CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (VTABLE_get_number(interp, PREG(1)) < CONST(2).u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16158,7 +16147,7 @@
opcode_t *
Parrot_lt_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2).u.string) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16214,7 +16203,7 @@
opcode_t *
Parrot_le_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (CONST(1)->u.number <= NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (CONST(1).u.number <= NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16222,7 +16211,7 @@
opcode_t *
Parrot_le_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (NREG(1) <= CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (NREG(1) <= CONST(2).u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16238,7 +16227,7 @@
opcode_t *
Parrot_le_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (Parrot_str_compare(interp, CONST(1)->u.string, SREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (Parrot_str_compare(interp, CONST(1).u.string, SREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16246,7 +16235,7 @@
opcode_t *
Parrot_le_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (Parrot_str_compare(interp, SREG(1), CONST(2)->u.string) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (Parrot_str_compare(interp, SREG(1), CONST(2).u.string) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16298,7 +16287,7 @@
opcode_t *
Parrot_le_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (VTABLE_get_number(interp, PREG(1)) <= CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (VTABLE_get_number(interp, PREG(1)) <= CONST(2).u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16314,7 +16303,7 @@
opcode_t *
Parrot_le_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2).u.string) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16382,7 +16371,7 @@
opcode_t *
Parrot_gt_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (VTABLE_get_number(interp, PREG(1)) > CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (VTABLE_get_number(interp, PREG(1)) > CONST(2).u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16398,7 +16387,7 @@
opcode_t *
Parrot_gt_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) > 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2).u.string) > 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16466,7 +16455,7 @@
opcode_t *
Parrot_ge_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (VTABLE_get_number(interp, PREG(1)) >= CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (VTABLE_get_number(interp, PREG(1)) >= CONST(2).u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16482,7 +16471,7 @@
opcode_t *
Parrot_ge_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) >= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2).u.string) >= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
}
return (opcode_t *)cur_opcode + 4;}
@@ -16574,8 +16563,8 @@
opcode_t *
Parrot_cmp_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = CONST(2)->u.number < NREG(3) ? -1 :
- CONST(2)->u.number > NREG(3) ? +1 :
+ IREG(1) = CONST(2).u.number < NREG(3) ? -1 :
+ CONST(2).u.number > NREG(3) ? +1 :
0;
return (opcode_t *)cur_opcode + 4;}
@@ -16583,8 +16572,8 @@
opcode_t *
Parrot_cmp_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = NREG(2) < CONST(3)->u.number ? -1 :
- NREG(2) > CONST(3)->u.number ? +1 :
+ IREG(1) = NREG(2) < CONST(3).u.number ? -1 :
+ NREG(2) > CONST(3).u.number ? +1 :
0;
return (opcode_t *)cur_opcode + 4;}
@@ -16599,14 +16588,14 @@
opcode_t *
Parrot_cmp_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_compare(interp, CONST(2)->u.string, SREG(3));
+ IREG(1) = Parrot_str_compare(interp, CONST(2).u.string, SREG(3));
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_cmp_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3)->u.string);
+ IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3).u.string);
return (opcode_t *)cur_opcode + 4;}
@@ -16651,8 +16640,8 @@
Parrot_cmp_i_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
const FLOATVAL l = VTABLE_get_number(interp, PREG(2));
- IREG(1) = l < CONST(3)->u.number ? -1 :
- l > CONST(3)->u.number ? +1 :
+ IREG(1) = l < CONST(3).u.number ? -1 :
+ l > CONST(3).u.number ? +1 :
0;
return (opcode_t *)cur_opcode + 4;}
@@ -16669,7 +16658,7 @@
Parrot_cmp_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
STRING* const l = VTABLE_get_string(interp, PREG(2));
- IREG(1) = Parrot_str_compare(interp, l, CONST(3)->u.string);
+ IREG(1) = Parrot_str_compare(interp, l, CONST(3).u.string);
return (opcode_t *)cur_opcode + 4;}
@@ -16714,21 +16703,21 @@
opcode_t *
Parrot_issame_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = CONST(2)->u.string == SREG(3);
+ IREG(1) = CONST(2).u.string == SREG(3);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_issame_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = SREG(2) == CONST(3)->u.string;
+ IREG(1) = SREG(2) == CONST(3).u.string;
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_issame_i_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = CONST(2)->u.string == CONST(3)->u.string;
+ IREG(1) = CONST(2).u.string == CONST(3).u.string;
return (opcode_t *)cur_opcode + 4;}
@@ -16752,21 +16741,21 @@
opcode_t *
Parrot_isntsame_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = CONST(2)->u.string != SREG(3);
+ IREG(1) = CONST(2).u.string != SREG(3);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_isntsame_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = SREG(2) != CONST(3)->u.string;
+ IREG(1) = SREG(2) != CONST(3).u.string;
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_isntsame_i_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = CONST(2)->u.string != CONST(3)->u.string;
+ IREG(1) = CONST(2).u.string != CONST(3).u.string;
return (opcode_t *)cur_opcode + 4;}
@@ -16794,7 +16783,7 @@
opcode_t *
Parrot_isnull_i_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = PMC_IS_NULL(CONST(2)->u.key);
+ IREG(1) = PMC_IS_NULL(CONST(2).u.key);
return (opcode_t *)cur_opcode + 3;}
@@ -16808,7 +16797,7 @@
opcode_t *
Parrot_isnull_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = STRING_IS_NULL(CONST(2)->u.string);
+ IREG(1) = STRING_IS_NULL(CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -16857,14 +16846,14 @@
opcode_t *
Parrot_isle_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = CONST(2)->u.number <= NREG(3);
+ IREG(1) = CONST(2).u.number <= NREG(3);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_isle_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = NREG(2) <= CONST(3)->u.number;
+ IREG(1) = NREG(2) <= CONST(3).u.number;
return (opcode_t *)cur_opcode + 4;}
@@ -16878,14 +16867,14 @@
opcode_t *
Parrot_isle_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_compare(interp, CONST(2)->u.string, SREG(3)) <= 0;
+ IREG(1) = Parrot_str_compare(interp, CONST(2).u.string, SREG(3)) <= 0;
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_isle_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3)->u.string) <= 0;
+ IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3).u.string) <= 0;
return (opcode_t *)cur_opcode + 4;}
@@ -16927,14 +16916,14 @@
opcode_t *
Parrot_islt_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = CONST(2)->u.number < NREG(3);
+ IREG(1) = CONST(2).u.number < NREG(3);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_islt_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = NREG(2) < CONST(3)->u.number;
+ IREG(1) = NREG(2) < CONST(3).u.number;
return (opcode_t *)cur_opcode + 4;}
@@ -16948,14 +16937,14 @@
opcode_t *
Parrot_islt_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_compare(interp, CONST(2)->u.string, SREG(3)) < 0;
+ IREG(1) = Parrot_str_compare(interp, CONST(2).u.string, SREG(3)) < 0;
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_islt_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3)->u.string) < 0;
+ IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3).u.string) < 0;
return (opcode_t *)cur_opcode + 4;}
@@ -16997,14 +16986,14 @@
opcode_t *
Parrot_iseq_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = CONST(2)->u.number == NREG(3);
+ IREG(1) = CONST(2).u.number == NREG(3);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_iseq_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = NREG(2) == CONST(3)->u.number;
+ IREG(1) = NREG(2) == CONST(3).u.number;
return (opcode_t *)cur_opcode + 4;}
@@ -17018,14 +17007,14 @@
opcode_t *
Parrot_iseq_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = (Parrot_str_equal(interp, CONST(2)->u.string, SREG(3)) ? 1 : 0);
+ IREG(1) = (Parrot_str_equal(interp, CONST(2).u.string, SREG(3)) ? 1 : 0);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_iseq_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = (Parrot_str_equal(interp, SREG(2), CONST(3)->u.string) ? 1 : 0);
+ IREG(1) = (Parrot_str_equal(interp, SREG(2), CONST(3).u.string) ? 1 : 0);
return (opcode_t *)cur_opcode + 4;}
@@ -17070,14 +17059,14 @@
opcode_t *
Parrot_isne_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = CONST(2)->u.number != NREG(3);
+ IREG(1) = CONST(2).u.number != NREG(3);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_isne_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = NREG(2) != CONST(3)->u.number;
+ IREG(1) = NREG(2) != CONST(3).u.number;
return (opcode_t *)cur_opcode + 4;}
@@ -17091,14 +17080,14 @@
opcode_t *
Parrot_isne_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = (Parrot_str_not_equal(interp, CONST(2)->u.string, SREG(3)) ? 1 : 0);
+ IREG(1) = (Parrot_str_not_equal(interp, CONST(2).u.string, SREG(3)) ? 1 : 0);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_isne_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = (Parrot_str_not_equal(interp, SREG(2), CONST(3)->u.string) ? 1 : 0);
+ IREG(1) = (Parrot_str_not_equal(interp, SREG(2), CONST(3).u.string) ? 1 : 0);
return (opcode_t *)cur_opcode + 4;}
@@ -17259,14 +17248,14 @@
Parrot_print_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#ifdef PARROT_HAS_NEGATIVE_ZERO
- Parrot_io_printf(interp, FLOATVAL_FMT, CONST(1)->u.number);
+ Parrot_io_printf(interp, FLOATVAL_FMT, CONST(1).u.number);
#else
/* Workaround for older msvcrt and openbsd. TT #313 */
- if (Parrot_is_nzero(CONST(1)->u.number)) {
+ if (Parrot_is_nzero(CONST(1).u.number)) {
Parrot_io_printf(interp, "-0");
}
else {
- Parrot_io_printf(interp, FLOATVAL_FMT, CONST(1)->u.number);
+ Parrot_io_printf(interp, FLOATVAL_FMT, CONST(1).u.number);
}
#endif
@@ -17284,7 +17273,7 @@
opcode_t *
Parrot_print_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- STRING * const s = CONST(1)->u.string;
+ STRING * const s = CONST(1).u.string;
if (s && Parrot_str_byte_length(interp, s))
Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
@@ -17335,14 +17324,14 @@
Parrot_say_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#ifdef PARROT_HAS_NEGATIVE_ZERO
- Parrot_io_printf(interp, FLOATVAL_FMT "\n", CONST(1)->u.number);
+ Parrot_io_printf(interp, FLOATVAL_FMT "\n", CONST(1).u.number);
#else
/* Workaround for older msvcrt and openbsd. TT #313 */
- if (Parrot_is_nzero(CONST(1)->u.number)) {
+ if (Parrot_is_nzero(CONST(1).u.number)) {
Parrot_io_printf(interp, "-0\n");
}
else {
- Parrot_io_printf(interp, FLOATVAL_FMT "\n", CONST(1)->u.number);
+ Parrot_io_printf(interp, FLOATVAL_FMT "\n", CONST(1).u.number);
}
#endif
@@ -17361,7 +17350,7 @@
opcode_t *
Parrot_say_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- STRING * const s = CONST(1)->u.string;
+ STRING * const s = CONST(1).u.string;
if (s && Parrot_str_byte_length(interp, s))
Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
Parrot_io_putps(interp, _PIO_STDOUT(interp), Parrot_str_new_constant(interp, "\n"));
@@ -17374,7 +17363,7 @@
PMC * const p = PREG(1);
if (PMC_IS_NULL(p)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 2,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 2,
EXCEPTION_UNEXPECTED_NULL,
"Null PMC in say");return (opcode_t *)handler;
}
@@ -17421,7 +17410,7 @@
Parrot_print_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
if (PREG(1)) {
- STRING * const s = Parrot_sprintf_c(interp, FLOATVAL_FMT, CONST(2)->u.number);
+ STRING * const s = Parrot_sprintf_c(interp, FLOATVAL_FMT, CONST(2).u.number);
Parrot_io_putps(interp, PREG(1), s);
}
@@ -17439,8 +17428,8 @@
opcode_t *
Parrot_print_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (CONST(2)->u.string && PREG(1)) {
- Parrot_io_putps(interp, PREG(1), CONST(2)->u.string);
+ if (CONST(2).u.string && PREG(1)) {
+ Parrot_io_putps(interp, PREG(1), CONST(2).u.string);
}
return (opcode_t *)cur_opcode + 3;}
@@ -17542,7 +17531,7 @@
opcode_t *
Parrot_add_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- NREG(1) += CONST(2)->u.number;
+ NREG(1) += CONST(2).u.number;
return (opcode_t *)cur_opcode + 3;}
@@ -17577,7 +17566,7 @@
opcode_t *
Parrot_add_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_i_add_float(interp, PREG(1), CONST(2)->u.number);
+ VTABLE_i_add_float(interp, PREG(1), CONST(2).u.number);
return (opcode_t *)cur_opcode + 3;}
@@ -17612,14 +17601,14 @@
opcode_t *
Parrot_add_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- NREG(1) = CONST(2)->u.number + NREG(3);
+ NREG(1) = CONST(2).u.number + NREG(3);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_add_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- NREG(1) = NREG(2) + CONST(3)->u.number;
+ NREG(1) = NREG(2) + CONST(3).u.number;
return (opcode_t *)cur_opcode + 4;}
@@ -17654,7 +17643,7 @@
opcode_t *
Parrot_add_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_add_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+ PREG(1) = VTABLE_add_float(interp, PREG(2), CONST(3).u.number, PREG(1));
return (opcode_t *)cur_opcode + 4;}
@@ -17684,7 +17673,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
INTVAL den = IREG(2);
if (den == 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
@@ -17697,7 +17686,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
INTVAL den = cur_opcode[2];
if (den == 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
@@ -17710,7 +17699,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
FLOATVAL den = NREG(2);
if (FLOAT_IS_ZERO(den)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
@@ -17721,9 +17710,9 @@
opcode_t *
Parrot_div_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- FLOATVAL den = CONST(2)->u.number;
+ FLOATVAL den = CONST(2).u.number;
if (FLOAT_IS_ZERO(den)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
@@ -17762,7 +17751,7 @@
opcode_t *
Parrot_div_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_i_divide_float(interp, PREG(1), CONST(2)->u.number);
+ VTABLE_i_divide_float(interp, PREG(1), CONST(2).u.number);
return (opcode_t *)cur_opcode + 3;}
@@ -17771,7 +17760,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
INTVAL den = IREG(3);
if (den == 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
@@ -17784,7 +17773,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
INTVAL den = IREG(3);
if (den == 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
@@ -17797,7 +17786,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
INTVAL den = cur_opcode[3];
if (den == 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
@@ -17810,7 +17799,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
INTVAL den = cur_opcode[3];
if (den == 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
@@ -17823,7 +17812,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
FLOATVAL den = NREG(3);
if (FLOAT_IS_ZERO(den)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
@@ -17836,20 +17825,20 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
FLOATVAL den = NREG(3);
if (FLOAT_IS_ZERO(den)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
- NREG(1) = CONST(2)->u.number / den;
+ NREG(1) = CONST(2).u.number / den;
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_div_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- FLOATVAL den = CONST(3)->u.number;
+ FLOATVAL den = CONST(3).u.number;
if (FLOAT_IS_ZERO(den)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
@@ -17860,13 +17849,13 @@
opcode_t *
Parrot_div_n_nc_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- FLOATVAL den = CONST(3)->u.number;
+ FLOATVAL den = CONST(3).u.number;
if (FLOAT_IS_ZERO(den)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
- NREG(1) = CONST(2)->u.number / den;
+ NREG(1) = CONST(2).u.number / den;
return (opcode_t *)cur_opcode + 4;}
@@ -17901,7 +17890,7 @@
opcode_t *
Parrot_div_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_divide_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+ PREG(1) = VTABLE_divide_float(interp, PREG(2), CONST(3).u.number, PREG(1));
return (opcode_t *)cur_opcode + 4;}
@@ -17912,12 +17901,12 @@
FLOATVAL f;
if (den == 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
- f = floor(IREG(1) / den);
+ f = floor(((FLOATVAL)IREG(1)) / den);
IREG(1) = (INTVAL)f;
return (opcode_t *)cur_opcode + 3;}
@@ -17929,12 +17918,12 @@
FLOATVAL f;
if (den == 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
- f = floor(IREG(1) / den);
+ f = floor(((FLOATVAL)IREG(1)) / den);
IREG(1) = (INTVAL)f;
return (opcode_t *)cur_opcode + 3;}
@@ -17944,7 +17933,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
FLOATVAL den = NREG(2);
if (FLOAT_IS_ZERO(den)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
@@ -17955,9 +17944,9 @@
opcode_t *
Parrot_fdiv_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- FLOATVAL den = CONST(2)->u.number;
+ FLOATVAL den = CONST(2).u.number;
if (FLOAT_IS_ZERO(den)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
@@ -17996,7 +17985,7 @@
opcode_t *
Parrot_fdiv_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_i_floor_divide_float(interp, PREG(1), CONST(2)->u.number);
+ VTABLE_i_floor_divide_float(interp, PREG(1), CONST(2).u.number);
return (opcode_t *)cur_opcode + 3;}
@@ -18007,12 +17996,12 @@
FLOATVAL f;
if (den == 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
- f = floor(IREG(2) / den);
+ f = floor((FLOATVAL)IREG(2) / den);
IREG(1) = (INTVAL)f;
return (opcode_t *)cur_opcode + 4;}
@@ -18024,12 +18013,12 @@
FLOATVAL f;
if (den == 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
- f = floor(cur_opcode[2] / den);
+ f = floor((FLOATVAL)cur_opcode[2] / den);
IREG(1) = (INTVAL)f;
return (opcode_t *)cur_opcode + 4;}
@@ -18041,12 +18030,12 @@
FLOATVAL f;
if (den == 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
- f = floor(IREG(2) / den);
+ f = floor((FLOATVAL)IREG(2) / den);
IREG(1) = (INTVAL)f;
return (opcode_t *)cur_opcode + 4;}
@@ -18056,7 +18045,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
FLOATVAL den = NREG(3);
if (FLOAT_IS_ZERO(den)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
@@ -18069,20 +18058,20 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
FLOATVAL den = NREG(3);
if (FLOAT_IS_ZERO(den)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
- NREG(1) = floor(CONST(2)->u.number / den);
+ NREG(1) = floor(CONST(2).u.number / den);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_fdiv_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- FLOATVAL den = CONST(3)->u.number;
+ FLOATVAL den = CONST(3).u.number;
if (FLOAT_IS_ZERO(den)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_DIV_BY_ZERO,
"Divide by zero");return (opcode_t *)handler;
}
@@ -18121,7 +18110,7 @@
opcode_t *
Parrot_fdiv_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_floor_divide_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+ PREG(1) = VTABLE_floor_divide_float(interp, PREG(2), CONST(3).u.number, PREG(1));
return (opcode_t *)cur_opcode + 4;}
@@ -18214,7 +18203,7 @@
opcode_t *
Parrot_mod_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- NREG(1) = floatval_mod(NREG(1), CONST(2)->u.number);
+ NREG(1) = floatval_mod(NREG(1), CONST(2).u.number);
return (opcode_t *)cur_opcode + 3;}
@@ -18249,7 +18238,7 @@
opcode_t *
Parrot_mod_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_i_modulus_float(interp, PREG(1), CONST(2)->u.number);
+ VTABLE_i_modulus_float(interp, PREG(1), CONST(2).u.number);
return (opcode_t *)cur_opcode + 3;}
@@ -18284,14 +18273,14 @@
opcode_t *
Parrot_mod_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- NREG(1) = floatval_mod(CONST(2)->u.number, NREG(3));
+ NREG(1) = floatval_mod(CONST(2).u.number, NREG(3));
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_mod_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- NREG(1) = floatval_mod(NREG(2), CONST(3)->u.number);
+ NREG(1) = floatval_mod(NREG(2), CONST(3).u.number);
return (opcode_t *)cur_opcode + 4;}
@@ -18326,7 +18315,7 @@
opcode_t *
Parrot_mod_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_modulus_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+ PREG(1) = VTABLE_modulus_float(interp, PREG(2), CONST(3).u.number, PREG(1));
return (opcode_t *)cur_opcode + 4;}
@@ -18354,7 +18343,7 @@
opcode_t *
Parrot_mul_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- NREG(1) *= CONST(2)->u.number;
+ NREG(1) *= CONST(2).u.number;
return (opcode_t *)cur_opcode + 3;}
@@ -18389,7 +18378,7 @@
opcode_t *
Parrot_mul_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_i_multiply_float(interp, PREG(1), CONST(2)->u.number);
+ VTABLE_i_multiply_float(interp, PREG(1), CONST(2).u.number);
return (opcode_t *)cur_opcode + 3;}
@@ -18424,14 +18413,14 @@
opcode_t *
Parrot_mul_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- NREG(1) = CONST(2)->u.number * NREG(3);
+ NREG(1) = CONST(2).u.number * NREG(3);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_mul_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- NREG(1) = NREG(2) * CONST(3)->u.number;
+ NREG(1) = NREG(2) * CONST(3).u.number;
return (opcode_t *)cur_opcode + 4;}
@@ -18466,7 +18455,7 @@
opcode_t *
Parrot_mul_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_multiply_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+ PREG(1) = VTABLE_multiply_float(interp, PREG(2), CONST(3).u.number, PREG(1));
return (opcode_t *)cur_opcode + 4;}
@@ -18536,7 +18525,7 @@
opcode_t *
Parrot_sub_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- NREG(1) -= CONST(2)->u.number;
+ NREG(1) -= CONST(2).u.number;
return (opcode_t *)cur_opcode + 3;}
@@ -18571,7 +18560,7 @@
opcode_t *
Parrot_sub_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_i_subtract_float(interp, PREG(1), CONST(2)->u.number);
+ VTABLE_i_subtract_float(interp, PREG(1), CONST(2).u.number);
return (opcode_t *)cur_opcode + 3;}
@@ -18606,14 +18595,14 @@
opcode_t *
Parrot_sub_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- NREG(1) = CONST(2)->u.number - NREG(3);
+ NREG(1) = CONST(2).u.number - NREG(3);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_sub_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- NREG(1) = NREG(2) - CONST(3)->u.number;
+ NREG(1) = NREG(2) - CONST(3).u.number;
return (opcode_t *)cur_opcode + 4;}
@@ -18648,7 +18637,7 @@
opcode_t *
Parrot_sub_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_subtract_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+ PREG(1) = VTABLE_subtract_float(interp, PREG(2), CONST(3).u.number, PREG(1));
return (opcode_t *)cur_opcode + 4;}
@@ -18664,16 +18653,23 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const object = PREG(1);
STRING * const meth = SREG(2);
- opcode_t * const next =cur_opcode + 3;
+ opcode_t * const next = cur_opcode + 3;
PMC * const method_pmc = VTABLE_find_method(interp, object, meth);
opcode_t *dest = NULL;
- PMC * const signature = Parrot_pcc_get_signature(interp,
- CURRENT_CONTEXT(interp));
Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
- if (PMC_IS_NULL(method_pmc)) {
+ if (!PMC_IS_NULL(method_pmc)) {
+ PMC * const signature = Parrot_pcc_get_signature(interp,
+ CURRENT_CONTEXT(interp));
+ if (!PMC_IS_NULL(signature))
+ Parrot_pcc_set_object(interp, signature, object);
+
+ interp->current_cont = NEED_CONTINUATION;
+ dest = VTABLE_invoke(interp, method_pmc, next);
+ }
+ else {
PMC * const _class = VTABLE_get_class(interp, object);
if (PMC_IS_NULL(_class)) {
dest = Parrot_ex_throw_from_op_args(interp, next,
@@ -18686,12 +18682,6 @@
"Method '%Ss' not found for invocant of class '%Ss'", meth,
VTABLE_get_string(interp, _class));
}
- }
- else {
- if (!PMC_IS_NULL(signature))
- Parrot_pcc_set_object(interp, signature, object);
- interp->current_cont = NEED_CONTINUATION;
- dest = VTABLE_invoke(interp, method_pmc, next);
}return (opcode_t *)dest;
}
@@ -18699,17 +18689,24 @@
Parrot_callmethodcc_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const object = PREG(1);
- STRING * const meth = CONST(2)->u.string;
- opcode_t * const next =cur_opcode + 3;
+ STRING * const meth = CONST(2).u.string;
+ opcode_t * const next = cur_opcode + 3;
PMC * const method_pmc = VTABLE_find_method(interp, object, meth);
opcode_t *dest = NULL;
- PMC * const signature = Parrot_pcc_get_signature(interp,
- CURRENT_CONTEXT(interp));
Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
- if (PMC_IS_NULL(method_pmc)) {
+ if (!PMC_IS_NULL(method_pmc)) {
+ PMC * const signature = Parrot_pcc_get_signature(interp,
+ CURRENT_CONTEXT(interp));
+ if (!PMC_IS_NULL(signature))
+ Parrot_pcc_set_object(interp, signature, object);
+
+ interp->current_cont = NEED_CONTINUATION;
+ dest = VTABLE_invoke(interp, method_pmc, next);
+ }
+ else {
PMC * const _class = VTABLE_get_class(interp, object);
if (PMC_IS_NULL(_class)) {
dest = Parrot_ex_throw_from_op_args(interp, next,
@@ -18722,12 +18719,6 @@
"Method '%Ss' not found for invocant of class '%Ss'", meth,
VTABLE_get_string(interp, _class));
}
- }
- else {
- if (!PMC_IS_NULL(signature))
- Parrot_pcc_set_object(interp, signature, object);
- interp->current_cont = NEED_CONTINUATION;
- dest = VTABLE_invoke(interp, method_pmc, next);
}return (opcode_t *)dest;
}
@@ -18735,7 +18726,7 @@
Parrot_callmethodcc_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
opcode_t *dest;
- opcode_t * const next =cur_opcode + 3;
+ opcode_t * const next = cur_opcode + 3;
PMC * signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));
@@ -18752,7 +18743,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const object = PREG(1);
STRING * const meth = SREG(2);
- opcode_t * const next =cur_opcode + 4;
+ opcode_t * const next = cur_opcode + 4;
PMC * const method_pmc = VTABLE_find_method(interp, object, meth);
opcode_t *dest = NULL;
@@ -18778,8 +18769,8 @@
Parrot_callmethod_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const object = PREG(1);
- STRING * const meth = CONST(2)->u.string;
- opcode_t * const next =cur_opcode + 4;
+ STRING * const meth = CONST(2).u.string;
+ opcode_t * const next = cur_opcode + 4;
PMC * const method_pmc = VTABLE_find_method(interp, object, meth);
opcode_t *dest = NULL;
@@ -18806,7 +18797,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const object = PREG(1);
PMC * const method_pmc = PREG(2);
- opcode_t * const next =cur_opcode + 4;
+ opcode_t * const next = cur_opcode + 4;
opcode_t *dest;
PMC * signature = Parrot_pcc_get_signature(interp,
@@ -18823,7 +18814,7 @@
opcode_t *
Parrot_tailcallmethod_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- opcode_t * const next =cur_opcode + 3;
+ opcode_t * const next = cur_opcode + 3;
PMC * const object = PREG(1);
STRING * const meth = SREG(2);
PMC * const method_pmc = VTABLE_find_method(interp, object, meth);
@@ -18849,9 +18840,9 @@
opcode_t *
Parrot_tailcallmethod_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- opcode_t * const next =cur_opcode + 3;
+ opcode_t * const next = cur_opcode + 3;
PMC * const object = PREG(1);
- STRING * const meth = CONST(2)->u.string;
+ STRING * const meth = CONST(2).u.string;
PMC * const method_pmc = VTABLE_find_method(interp, object, meth);
opcode_t *dest;
@@ -18875,7 +18866,7 @@
opcode_t *
Parrot_tailcallmethod_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- opcode_t * const next =cur_opcode + 3;
+ opcode_t * const next = cur_opcode + 3;
PMC * const object = PREG(1);
PMC * const method_pmc = PREG(2);
@@ -18901,7 +18892,7 @@
opcode_t *
Parrot_addmethod_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_add_method(interp, PREG(1), CONST(2)->u.string, PREG(3));
+ VTABLE_add_method(interp, PREG(1), CONST(2).u.string, PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -18915,7 +18906,7 @@
opcode_t *
Parrot_can_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = VTABLE_can(interp, PREG(2), CONST(3)->u.string);
+ IREG(1) = VTABLE_can(interp, PREG(2), CONST(3).u.string);
return (opcode_t *)cur_opcode + 4;}
@@ -18929,7 +18920,7 @@
opcode_t *
Parrot_does_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = CONST(3)->u.string ? VTABLE_does(interp, PREG(2), CONST(3)->u.string) : 0;
+ IREG(1) = CONST(3).u.string ? VTABLE_does(interp, PREG(2), CONST(3).u.string) : 0;
return (opcode_t *)cur_opcode + 4;}
@@ -18943,7 +18934,7 @@
opcode_t *
Parrot_does_i_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = CONST(3)->u.key ? VTABLE_does_pmc(interp, PREG(2), CONST(3)->u.key) : 0;
+ IREG(1) = CONST(3).u.key ? VTABLE_does_pmc(interp, PREG(2), CONST(3).u.key) : 0;
return (opcode_t *)cur_opcode + 4;}
@@ -18957,7 +18948,7 @@
opcode_t *
Parrot_isa_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = CONST(3)->u.string ? VTABLE_isa(interp, PREG(2), CONST(3)->u.string) : 0;
+ IREG(1) = CONST(3).u.string ? VTABLE_isa(interp, PREG(2), CONST(3).u.string) : 0;
return (opcode_t *)cur_opcode + 4;}
@@ -18971,7 +18962,7 @@
opcode_t *
Parrot_isa_i_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = CONST(3)->u.key ? VTABLE_isa_pmc(interp, PREG(2), CONST(3)->u.key) : 0;
+ IREG(1) = CONST(3).u.key ? VTABLE_isa_pmc(interp, PREG(2), CONST(3).u.key) : 0;
return (opcode_t *)cur_opcode + 4;}
@@ -18988,7 +18979,7 @@
Parrot_newclass_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const name = Parrot_pmc_new(interp, enum_class_String);
- VTABLE_set_string_native(interp, name, CONST(2)->u.string);
+ VTABLE_set_string_native(interp, name, CONST(2).u.string);
PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, name);
return (opcode_t *)cur_opcode + 3;}
@@ -19003,7 +18994,7 @@
opcode_t *
Parrot_newclass_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(2)->u.key);
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(2).u.key);
return (opcode_t *)cur_opcode + 3;}
@@ -19011,7 +19002,7 @@
Parrot_subclass_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const parent_class = Parrot_oo_get_class(interp, PREG(2));
- opcode_t * const next =cur_opcode + 3;
+ opcode_t * const next = cur_opcode + 3;
if (PMC_IS_NULL(parent_class)) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -19025,13 +19016,13 @@
opcode_t *
Parrot_subclass_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
- opcode_t * const next =cur_opcode + 3;
+ PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2).u.key);
+ opcode_t * const next = cur_opcode + 3;
if (PMC_IS_NULL(parent_class)) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
EXCEPTION_NO_CLASS,
- "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));return (opcode_t *)handler;
+ "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2).u.key));return (opcode_t *)handler;
}
PREG(1) = Parrot_pmc_new(interp, enum_class_Class);
VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
@@ -19041,7 +19032,7 @@
Parrot_subclass_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const parent_class = Parrot_oo_get_class(interp, PREG(2));
- opcode_t * const next =cur_opcode + 4;
+ opcode_t * const next = cur_opcode + 4;
if (PMC_IS_NULL(parent_class)) {
opcode_t * handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -19055,13 +19046,13 @@
opcode_t *
Parrot_subclass_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
- opcode_t * const next =cur_opcode + 4;
+ PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2).u.key);
+ opcode_t * const next = cur_opcode + 4;
if (PMC_IS_NULL(parent_class)) {
opcode_t * handler = Parrot_ex_throw_from_op_args(interp, next,
EXCEPTION_NO_CLASS,
- "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));return (opcode_t *)handler;
+ "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2).u.key));return (opcode_t *)handler;
}
PREG(1) = Parrot_oo_newclass_from_str(interp, SREG(3));
VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
@@ -19071,29 +19062,29 @@
Parrot_subclass_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const parent_class = Parrot_oo_get_class(interp, PREG(2));
- opcode_t * const next =cur_opcode + 4;
+ opcode_t * const next = cur_opcode + 4;
if (PMC_IS_NULL(parent_class)) {
opcode_t * handler = Parrot_ex_throw_from_op_args(interp, next,
EXCEPTION_NO_CLASS,
"Class '%Ss' doesn't exist", VTABLE_get_string(interp, PREG(2)));return (opcode_t *)handler;
}
- PREG(1) = Parrot_oo_newclass_from_str(interp, CONST(3)->u.string);
+ PREG(1) = Parrot_oo_newclass_from_str(interp, CONST(3).u.string);
VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
}
opcode_t *
Parrot_subclass_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
- opcode_t * const next =cur_opcode + 4;
+ PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2).u.key);
+ opcode_t * const next = cur_opcode + 4;
if (PMC_IS_NULL(parent_class)) {
opcode_t * handler = Parrot_ex_throw_from_op_args(interp, next,
EXCEPTION_NO_CLASS,
- "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));return (opcode_t *)handler;
+ "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2).u.key));return (opcode_t *)handler;
}
- PREG(1) = Parrot_oo_newclass_from_str(interp, CONST(3)->u.string);
+ PREG(1) = Parrot_oo_newclass_from_str(interp, CONST(3).u.string);
VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
}
@@ -19101,7 +19092,7 @@
Parrot_subclass_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const parent_class = Parrot_oo_get_class(interp, PREG(2));
- opcode_t * const next =cur_opcode + 4;
+ opcode_t * const next = cur_opcode + 4;
if (PMC_IS_NULL(parent_class)) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -19115,13 +19106,13 @@
opcode_t *
Parrot_subclass_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
- opcode_t * const next =cur_opcode + 4;
+ PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2).u.key);
+ opcode_t * const next = cur_opcode + 4;
if (PMC_IS_NULL(parent_class)) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
EXCEPTION_NO_CLASS,
- "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));return (opcode_t *)handler;
+ "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2).u.key));return (opcode_t *)handler;
}
PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3));
VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
@@ -19131,29 +19122,29 @@
Parrot_subclass_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const parent_class = Parrot_oo_get_class(interp, PREG(2));
- opcode_t * const next =cur_opcode + 4;
+ opcode_t * const next = cur_opcode + 4;
if (PMC_IS_NULL(parent_class)) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
EXCEPTION_NO_CLASS,
"Class '%Ss' doesn't exist", VTABLE_get_string(interp, PREG(2)));return (opcode_t *)handler;
}
- PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3).u.key);
VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
}
opcode_t *
Parrot_subclass_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
- opcode_t * const next =cur_opcode + 4;
+ PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2).u.key);
+ opcode_t * const next = cur_opcode + 4;
if (PMC_IS_NULL(parent_class)) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
EXCEPTION_NO_CLASS,
- "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));return (opcode_t *)handler;
+ "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2).u.key));return (opcode_t *)handler;
}
- PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3).u.key);
VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
}
@@ -19161,7 +19152,7 @@
Parrot_subclass_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
- opcode_t * const next =cur_opcode + 3;
+ opcode_t * const next = cur_opcode + 3;
if (PMC_IS_NULL(parent_class)) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -19176,13 +19167,13 @@
opcode_t *
Parrot_subclass_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
- opcode_t * const next =cur_opcode + 3;
+ PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2).u.string);
+ opcode_t * const next = cur_opcode + 3;
if (PMC_IS_NULL(parent_class)) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
EXCEPTION_NO_CLASS,
- "Class '%Ss' doesn't exist", CONST(2)->u.string);return (opcode_t *)handler;
+ "Class '%Ss' doesn't exist", CONST(2).u.string);return (opcode_t *)handler;
}
PREG(1) = Parrot_pmc_new(interp, enum_class_Class);
@@ -19193,7 +19184,7 @@
Parrot_subclass_p_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
- opcode_t * const next =cur_opcode + 4;
+ opcode_t * const next = cur_opcode + 4;
if (PMC_IS_NULL(parent_class)) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -19208,13 +19199,13 @@
opcode_t *
Parrot_subclass_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
- opcode_t * const next =cur_opcode + 4;
+ PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2).u.string);
+ opcode_t * const next = cur_opcode + 4;
if (PMC_IS_NULL(parent_class)) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
EXCEPTION_NO_CLASS,
- "Class '%Ss' doesn't exist", CONST(2)->u.string);return (opcode_t *)handler;
+ "Class '%Ss' doesn't exist", CONST(2).u.string);return (opcode_t *)handler;
}
PREG(1) = Parrot_oo_newclass_from_str(interp, SREG(3));
@@ -19225,7 +19216,7 @@
Parrot_subclass_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
- opcode_t * const next =cur_opcode + 4;
+ opcode_t * const next = cur_opcode + 4;
if (PMC_IS_NULL(parent_class)) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -19233,23 +19224,23 @@
"Class '%Ss' doesn't exist", SREG(2));return (opcode_t *)handler;
}
- PREG(1) = Parrot_oo_newclass_from_str(interp, CONST(3)->u.string);
+ PREG(1) = Parrot_oo_newclass_from_str(interp, CONST(3).u.string);
VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
}
opcode_t *
Parrot_subclass_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
- opcode_t * const next =cur_opcode + 4;
+ PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2).u.string);
+ opcode_t * const next = cur_opcode + 4;
if (PMC_IS_NULL(parent_class)) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
EXCEPTION_NO_CLASS,
- "Class '%Ss' doesn't exist", CONST(2)->u.string);return (opcode_t *)handler;
+ "Class '%Ss' doesn't exist", CONST(2).u.string);return (opcode_t *)handler;
}
- PREG(1) = Parrot_oo_newclass_from_str(interp, CONST(3)->u.string);
+ PREG(1) = Parrot_oo_newclass_from_str(interp, CONST(3).u.string);
VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
}
@@ -19257,7 +19248,7 @@
Parrot_subclass_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
- opcode_t * const next =cur_opcode + 4;
+ opcode_t * const next = cur_opcode + 4;
if (PMC_IS_NULL(parent_class)) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -19272,13 +19263,13 @@
opcode_t *
Parrot_subclass_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
- opcode_t * const next =cur_opcode + 4;
+ PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2).u.string);
+ opcode_t * const next = cur_opcode + 4;
if (PMC_IS_NULL(parent_class)) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
EXCEPTION_NO_CLASS,
- "Class '%Ss' doesn't exist", CONST(2)->u.string);return (opcode_t *)handler;
+ "Class '%Ss' doesn't exist", CONST(2).u.string);return (opcode_t *)handler;
}
PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3));
@@ -19289,7 +19280,7 @@
Parrot_subclass_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
- opcode_t * const next =cur_opcode + 4;
+ opcode_t * const next = cur_opcode + 4;
if (PMC_IS_NULL(parent_class)) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -19297,23 +19288,23 @@
"Class '%Ss' doesn't exist", SREG(2));return (opcode_t *)handler;
}
- PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3).u.key);
VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
}
opcode_t *
Parrot_subclass_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
- opcode_t * const next =cur_opcode + 4;
+ PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2).u.string);
+ opcode_t * const next = cur_opcode + 4;
if (PMC_IS_NULL(parent_class)) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
EXCEPTION_NO_CLASS,
- "Class '%Ss' doesn't exist", CONST(2)->u.string);return (opcode_t *)handler;
+ "Class '%Ss' doesn't exist", CONST(2).u.string);return (opcode_t *)handler;
}
- PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3).u.key);
VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
}
@@ -19327,7 +19318,7 @@
opcode_t *
Parrot_get_class_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
+ PREG(1) = Parrot_oo_get_class_str(interp, CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -19341,7 +19332,7 @@
opcode_t *
Parrot_get_class_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = Parrot_oo_get_class(interp, CONST(2)->u.key);
+ PREG(1) = Parrot_oo_get_class(interp, CONST(2).u.key);
return (opcode_t *)cur_opcode + 3;}
@@ -19396,7 +19387,7 @@
STRING * const role_name = string_from_literal(interp, "Role");
if (VTABLE_isa(interp, PREG(1), class_name) || VTABLE_isa(interp, PREG(1), role_name))
- VTABLE_add_attribute(interp, PREG(1), CONST(2)->u.string, PMCNULL);
+ VTABLE_add_attribute(interp, PREG(1), CONST(2).u.string, PMCNULL);
else {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
EXCEPTION_INVALID_OPERATION,
@@ -19415,7 +19406,7 @@
opcode_t *
Parrot_removeattribute_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_remove_attribute(interp, PREG(1), CONST(2)->u.string);
+ VTABLE_remove_attribute(interp, PREG(1), CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -19429,7 +19420,7 @@
opcode_t *
Parrot_getattribute_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_attr_str(interp, PREG(2), CONST(3)->u.string);
+ PREG(1) = VTABLE_get_attr_str(interp, PREG(2), CONST(3).u.string);
return (opcode_t *)cur_opcode + 4;}
@@ -19443,21 +19434,21 @@
opcode_t *
Parrot_getattribute_p_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), CONST(3)->u.key, SREG(4));
+ PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), CONST(3).u.key, SREG(4));
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_getattribute_p_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), PREG(3), CONST(4)->u.string);
+ PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), PREG(3), CONST(4).u.string);
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_getattribute_p_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), CONST(3)->u.key, CONST(4)->u.string);
+ PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), CONST(3).u.key, CONST(4).u.string);
return (opcode_t *)cur_opcode + 5;}
@@ -19471,7 +19462,7 @@
opcode_t *
Parrot_setattribute_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_attr_str(interp, PREG(1), CONST(2)->u.string, PREG(3));
+ VTABLE_set_attr_str(interp, PREG(1), CONST(2).u.string, PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -19485,21 +19476,21 @@
opcode_t *
Parrot_setattribute_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_attr_keyed(interp, PREG(1), CONST(2)->u.key, SREG(3), PREG(4));
+ VTABLE_set_attr_keyed(interp, PREG(1), CONST(2).u.key, SREG(3), PREG(4));
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_setattribute_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_attr_keyed(interp, PREG(1), PREG(2), CONST(3)->u.string, PREG(4));
+ VTABLE_set_attr_keyed(interp, PREG(1), PREG(2), CONST(3).u.string, PREG(4));
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_setattribute_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_attr_keyed(interp, PREG(1), CONST(2)->u.key, CONST(3)->u.string, PREG(4));
+ VTABLE_set_attr_keyed(interp, PREG(1), CONST(2).u.key, CONST(3).u.string, PREG(4));
return (opcode_t *)cur_opcode + 5;}
@@ -19513,7 +19504,7 @@
opcode_t *
Parrot_inspect_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_inspect(interp, CONST(2)->u.key);
+ PREG(1) = VTABLE_inspect(interp, CONST(2).u.key);
return (opcode_t *)cur_opcode + 3;}
@@ -19527,21 +19518,21 @@
opcode_t *
Parrot_inspect_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_inspect_str(interp, CONST(2)->u.key, SREG(3));
+ PREG(1) = VTABLE_inspect_str(interp, CONST(2).u.key, SREG(3));
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_inspect_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_inspect_str(interp, PREG(2), CONST(3)->u.string);
+ PREG(1) = VTABLE_inspect_str(interp, PREG(2), CONST(3).u.string);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_inspect_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_inspect_str(interp, CONST(2)->u.key, CONST(3)->u.string);
+ PREG(1) = VTABLE_inspect_str(interp, CONST(2).u.key, CONST(3).u.string);
return (opcode_t *)cur_opcode + 4;}
@@ -19558,7 +19549,7 @@
else {
const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);return (opcode_t *)dest;
}
@@ -19570,7 +19561,7 @@
opcode_t *
Parrot_new_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- STRING * const name = CONST(2)->u.string;
+ STRING * const name = CONST(2).u.string;
PMC * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
? Parrot_oo_get_class_str(interp, name)
: PMCNULL;
@@ -19580,7 +19571,7 @@
else {
const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);return (opcode_t *)dest;
}
@@ -19602,7 +19593,7 @@
else {
const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);return (opcode_t *)dest;
}
@@ -19614,7 +19605,7 @@
opcode_t *
Parrot_new_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- STRING * const name = CONST(2)->u.string;
+ STRING * const name = CONST(2).u.string;
PMC * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
? Parrot_oo_get_class_str(interp, name)
: PMCNULL;
@@ -19624,7 +19615,7 @@
else {
const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);return (opcode_t *)dest;
}
@@ -19642,15 +19633,15 @@
: PMCNULL;
if (!PMC_IS_NULL(_class))
- PREG(1) = VTABLE_instantiate(interp, _class, CONST(3)->u.key);
+ PREG(1) = VTABLE_instantiate(interp, _class, CONST(3).u.key);
else {
const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);return (opcode_t *)dest;
}
- PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3)->u.key);
+ PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3).u.key);
}
return (opcode_t *)cur_opcode + 4;}
@@ -19658,21 +19649,21 @@
opcode_t *
Parrot_new_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- STRING * const name = CONST(2)->u.string;
+ STRING * const name = CONST(2).u.string;
PMC * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
? Parrot_oo_get_class_str(interp, name)
: PMCNULL;
if (!PMC_IS_NULL(_class))
- PREG(1) = VTABLE_instantiate(interp, _class, CONST(3)->u.key);
+ PREG(1) = VTABLE_instantiate(interp, _class, CONST(3).u.key);
else {
const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);return (opcode_t *)dest;
}
- PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3)->u.key);
+ PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3).u.key);
}
return (opcode_t *)cur_opcode + 4;}
@@ -19688,7 +19679,7 @@
else {
const INTVAL type = Parrot_pmc_get_type(interp, name_key);
if (type <= 0) {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
}
@@ -19700,7 +19691,7 @@
opcode_t *
Parrot_new_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const name_key = CONST(2)->u.key;
+ PMC * const name_key = CONST(2).u.key;
PMC * const _class = Parrot_oo_get_class(interp, name_key);
if (!PMC_IS_NULL(_class))
@@ -19708,7 +19699,7 @@
else {
const INTVAL type = Parrot_pmc_get_type(interp, name_key);
if (type <= 0) {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
}
@@ -19728,7 +19719,7 @@
else {
const INTVAL type = Parrot_pmc_get_type(interp, name_key);
if (type <= 0) {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
}
@@ -19740,7 +19731,7 @@
opcode_t *
Parrot_new_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const name_key = CONST(2)->u.key;
+ PMC * const name_key = CONST(2).u.key;
PMC * const _class = Parrot_oo_get_class(interp, name_key);
if (!PMC_IS_NULL(_class))
@@ -19748,7 +19739,7 @@
else {
const INTVAL type = Parrot_pmc_get_type(interp, name_key);
if (type <= 0) {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
}
@@ -19764,15 +19755,15 @@
PMC * const _class = Parrot_oo_get_class(interp, name_key);
if (!PMC_IS_NULL(_class))
- PREG(1) = VTABLE_instantiate(interp, _class, CONST(3)->u.key);
+ PREG(1) = VTABLE_instantiate(interp, _class, CONST(3).u.key);
else {
const INTVAL type = Parrot_pmc_get_type(interp, name_key);
if (type <= 0) {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
}
- PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3)->u.key);
+ PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3).u.key);
}
return (opcode_t *)cur_opcode + 4;}
@@ -19780,19 +19771,19 @@
opcode_t *
Parrot_new_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const name_key = CONST(2)->u.key;
+ PMC * const name_key = CONST(2).u.key;
PMC * const _class = Parrot_oo_get_class(interp, name_key);
if (!PMC_IS_NULL(_class))
- PREG(1) = VTABLE_instantiate(interp, _class, CONST(3)->u.key);
+ PREG(1) = VTABLE_instantiate(interp, _class, CONST(3).u.key);
else {
const INTVAL type = Parrot_pmc_get_type(interp, name_key);
if (type <= 0) {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
}
- PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3)->u.key);
+ PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3).u.key);
}
return (opcode_t *)cur_opcode + 4;}
@@ -19802,7 +19793,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const key = PREG(2);
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, key);
PMC * classobj = PMCNULL;
if (!PMC_IS_NULL(ns))
@@ -19810,7 +19801,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
}
@@ -19820,9 +19811,9 @@
opcode_t *
Parrot_root_new_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const key = CONST(2)->u.key;
+ PMC * const key = CONST(2).u.key;
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, key);
PMC * classobj = PMCNULL;
if (!PMC_IS_NULL(ns))
@@ -19830,7 +19821,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
}
@@ -19842,7 +19833,7 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const key = PREG(2);
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, key);
PMC * classobj = PMCNULL;
if (!PMC_IS_NULL(ns))
@@ -19850,7 +19841,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PREG(3));
else {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
}
@@ -19860,9 +19851,9 @@
opcode_t *
Parrot_root_new_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const key = CONST(2)->u.key;
+ PMC * const key = CONST(2).u.key;
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, key);
PMC * classobj = PMCNULL;
if (!PMC_IS_NULL(ns))
@@ -19870,7 +19861,7 @@
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PREG(3));
else {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
}
@@ -19882,15 +19873,15 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const key = PREG(2);
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, key);
PMC * classobj = PMCNULL;
if (!PMC_IS_NULL(ns))
classobj = Parrot_oo_get_class(interp, ns);
if (!PMC_IS_NULL(classobj))
- PREG(1) = VTABLE_instantiate(interp, classobj, CONST(3)->u.key);
+ PREG(1) = VTABLE_instantiate(interp, classobj, CONST(3).u.key);
else {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
}
@@ -19900,17 +19891,17 @@
opcode_t *
Parrot_root_new_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const key = CONST(2)->u.key;
+ PMC * const key = CONST(2).u.key;
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, key);
PMC * classobj = PMCNULL;
if (!PMC_IS_NULL(ns))
classobj = Parrot_oo_get_class(interp, ns);
if (!PMC_IS_NULL(classobj))
- PREG(1) = VTABLE_instantiate(interp, classobj, CONST(3)->u.key);
+ PREG(1) = VTABLE_instantiate(interp, classobj, CONST(3).u.key);
else {
- opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
}
@@ -19941,7 +19932,7 @@
opcode_t *
Parrot_find_method_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- opcode_t * const resume =cur_opcode + 4;
+ opcode_t * const resume = cur_opcode + 4;
PREG(1) = VTABLE_find_method(interp, PREG(2), SREG(3));
if (PMC_IS_NULL(PREG(1)) || !VTABLE_defined(interp, PREG(1))) {
opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, resume,
@@ -19954,12 +19945,12 @@
opcode_t *
Parrot_find_method_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- opcode_t * const resume =cur_opcode + 4;
- PREG(1) = VTABLE_find_method(interp, PREG(2), CONST(3)->u.string);
+ opcode_t * const resume = cur_opcode + 4;
+ PREG(1) = VTABLE_find_method(interp, PREG(2), CONST(3).u.string);
if (PMC_IS_NULL(PREG(1)) || !VTABLE_defined(interp, PREG(1))) {
opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, resume,
EXCEPTION_METHOD_NOT_FOUND,
- "Method '%Ss' not found for invocant of class '%Ss'", CONST(3)->u.string,
+ "Method '%Ss' not found for invocant of class '%Ss'", CONST(3).u.string,
VTABLE_get_string(interp, VTABLE_get_class(interp, PREG(2))));return (opcode_t *)dest;
}return (opcode_t *)resume;
}
@@ -19995,7 +19986,7 @@
opcode_t *
Parrot_defined_i_p_kc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_defined_keyed(interp, PREG(2), CONST(3)->u.key);
+ IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_defined_keyed(interp, PREG(2), CONST(3).u.key);
return (opcode_t *)cur_opcode + 4;}
@@ -20023,7 +20014,7 @@
opcode_t *
Parrot_exists_i_p_kc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = PMC_IS_NULL(PREG(2)) ? 0: VTABLE_exists_keyed(interp, PREG(2), CONST(3)->u.key);
+ IREG(1) = PMC_IS_NULL(PREG(2)) ? 0: VTABLE_exists_keyed(interp, PREG(2), CONST(3).u.key);
return (opcode_t *)cur_opcode + 4;}
@@ -20037,7 +20028,7 @@
opcode_t *
Parrot_delete_p_kc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_delete_keyed(interp, PREG(1), CONST(2)->u.key);
+ VTABLE_delete_keyed(interp, PREG(1), CONST(2).u.key);
return (opcode_t *)cur_opcode + 3;}
@@ -20086,7 +20077,7 @@
opcode_t *
Parrot_push_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_push_float(interp, PREG(1), CONST(2)->u.number);
+ VTABLE_push_float(interp, PREG(1), CONST(2).u.number);
return (opcode_t *)cur_opcode + 3;}
@@ -20100,7 +20091,7 @@
opcode_t *
Parrot_push_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_push_string(interp, PREG(1), CONST(2)->u.string);
+ VTABLE_push_string(interp, PREG(1), CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -20163,7 +20154,7 @@
opcode_t *
Parrot_unshift_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_unshift_float(interp, PREG(1), CONST(2)->u.number);
+ VTABLE_unshift_float(interp, PREG(1), CONST(2).u.number);
return (opcode_t *)cur_opcode + 3;}
@@ -20177,7 +20168,7 @@
opcode_t *
Parrot_unshift_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_unshift_string(interp, PREG(1), CONST(2)->u.string);
+ VTABLE_unshift_string(interp, PREG(1), CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -20254,7 +20245,7 @@
opcode_t *
Parrot_setprop_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_setprop(interp, PREG(1), CONST(2)->u.string, PREG(3));
+ VTABLE_setprop(interp, PREG(1), CONST(2).u.string, PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -20268,7 +20259,7 @@
opcode_t *
Parrot_getprop_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_getprop(interp, PREG(3), CONST(2)->u.string);
+ PREG(1) = VTABLE_getprop(interp, PREG(3), CONST(2).u.string);
return (opcode_t *)cur_opcode + 4;}
@@ -20282,7 +20273,7 @@
opcode_t *
Parrot_delprop_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_delprop(interp, PREG(1), CONST(2)->u.string);
+ VTABLE_delprop(interp, PREG(1), CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -20310,7 +20301,7 @@
opcode_t *
Parrot_thaw_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = Parrot_thaw(interp, CONST(2)->u.string);
+ PREG(1) = Parrot_thaw(interp, CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -20324,21 +20315,21 @@
opcode_t *
Parrot_add_multi_sc_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- Parrot_mmd_add_multi_from_long_sig(interp, CONST(1)->u.string, SREG(2), PREG(3));
+ Parrot_mmd_add_multi_from_long_sig(interp, CONST(1).u.string, SREG(2), PREG(3));
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_add_multi_s_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- Parrot_mmd_add_multi_from_long_sig(interp, SREG(1), CONST(2)->u.string, PREG(3));
+ Parrot_mmd_add_multi_from_long_sig(interp, SREG(1), CONST(2).u.string, PREG(3));
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_add_multi_sc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- Parrot_mmd_add_multi_from_long_sig(interp, CONST(1)->u.string, CONST(2)->u.string, PREG(3));
+ Parrot_mmd_add_multi_from_long_sig(interp, CONST(1).u.string, CONST(2).u.string, PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -20352,21 +20343,21 @@
opcode_t *
Parrot_find_multi_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, CONST(2)->u.string, SREG(3));
+ PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, CONST(2).u.string, SREG(3));
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_find_multi_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, SREG(2), CONST(3)->u.string);
+ PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, SREG(2), CONST(3).u.string);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_find_multi_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, CONST(2)->u.string, CONST(3)->u.string);
+ PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, CONST(2).u.string, CONST(3).u.string);
return (opcode_t *)cur_opcode + 4;}
@@ -20412,7 +20403,7 @@
Parrot_box_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
- VTABLE_set_number_native(interp, PREG(1), CONST(2)->u.number);
+ VTABLE_set_number_native(interp, PREG(1), CONST(2).u.number);
return (opcode_t *)cur_opcode + 3;}
@@ -20428,7 +20419,7 @@
Parrot_box_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String));
- VTABLE_set_string_native(interp, PREG(1), CONST(2)->u.string);
+ VTABLE_set_string_native(interp, PREG(1), CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -20449,7 +20440,7 @@
opcode_t *
Parrot_morph_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_morph(interp, PREG(1), CONST(2)->u.key);
+ VTABLE_morph(interp, PREG(1), CONST(2).u.key);
return (opcode_t *)cur_opcode + 3;}
@@ -20467,9 +20458,9 @@
Parrot_clone_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
/* cloning a NULL STRING produces an empty STRING; TT #964 */
- SREG(1) = STRING_IS_NULL(CONST(2)->u.string)
+ SREG(1) = STRING_IS_NULL(CONST(2).u.string)
? Parrot_str_new(interp, NULL, 0)
- : CONST(2)->u.string;
+ : CONST(2).u.string;
return (opcode_t *)cur_opcode + 3;}
@@ -20497,7 +20488,7 @@
opcode_t *
Parrot_set_i_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = (INTVAL)(CONST(2)->u.number);
+ IREG(1) = (INTVAL)(CONST(2).u.number);
return (opcode_t *)cur_opcode + 3;}
@@ -20511,7 +20502,7 @@
opcode_t *
Parrot_set_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_to_int(interp, CONST(2)->u.string);
+ IREG(1) = Parrot_str_to_int(interp, CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -20525,7 +20516,7 @@
opcode_t *
Parrot_set_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- NREG(1) = CONST(2)->u.number;
+ NREG(1) = CONST(2).u.number;
return (opcode_t *)cur_opcode + 3;}
@@ -20553,7 +20544,7 @@
opcode_t *
Parrot_set_n_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- NREG(1) = Parrot_str_to_num(interp, CONST(2)->u.string);
+ NREG(1) = Parrot_str_to_num(interp, CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -20581,7 +20572,7 @@
opcode_t *
Parrot_set_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = CONST(2)->u.string;
+ SREG(1) = CONST(2).u.string;
return (opcode_t *)cur_opcode + 3;}
@@ -20609,14 +20600,14 @@
opcode_t *
Parrot_set_s_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_from_num(interp, CONST(2)->u.number);
+ SREG(1) = Parrot_str_from_num(interp, CONST(2).u.number);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_set_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = CONST(2)->u.key;
+ PREG(1) = CONST(2).u.key;
return (opcode_t *)cur_opcode + 3;}
@@ -20651,7 +20642,7 @@
opcode_t *
Parrot_set_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_number_native(interp, PREG(1), CONST(2)->u.number);
+ VTABLE_set_number_native(interp, PREG(1), CONST(2).u.number);
return (opcode_t *)cur_opcode + 3;}
@@ -20665,7 +20656,7 @@
opcode_t *
Parrot_set_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_string_native(interp, PREG(1), CONST(2)->u.string);
+ VTABLE_set_string_native(interp, PREG(1), CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -20707,7 +20698,7 @@
opcode_t *
Parrot_assign_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_number_native(interp, PREG(1), CONST(2)->u.number);
+ VTABLE_set_number_native(interp, PREG(1), CONST(2).u.number);
return (opcode_t *)cur_opcode + 3;}
@@ -20721,7 +20712,7 @@
opcode_t *
Parrot_assign_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_assign_string_native(interp, PREG(1), CONST(2)->u.string);
+ VTABLE_assign_string_native(interp, PREG(1), CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -20735,7 +20726,7 @@
opcode_t *
Parrot_assign_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = CONST(2)->u.string;
+ SREG(1) = CONST(2).u.string;
return (opcode_t *)cur_opcode + 3;}
@@ -20798,14 +20789,14 @@
opcode_t *
Parrot_set_p_ki_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_number_keyed_int(interp, PREG(1), IREG(2), CONST(3)->u.number);
+ VTABLE_set_number_keyed_int(interp, PREG(1), IREG(2), CONST(3).u.number);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_set_p_kic_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_number_keyed_int(interp, PREG(1), cur_opcode[2], CONST(3)->u.number);
+ VTABLE_set_number_keyed_int(interp, PREG(1), cur_opcode[2], CONST(3).u.number);
return (opcode_t *)cur_opcode + 4;}
@@ -20826,14 +20817,14 @@
opcode_t *
Parrot_set_p_ki_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_string_keyed_int(interp, PREG(1), IREG(2), CONST(3)->u.string);
+ VTABLE_set_string_keyed_int(interp, PREG(1), IREG(2), CONST(3).u.string);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_set_p_kic_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_string_keyed_int(interp, PREG(1), cur_opcode[2], CONST(3)->u.string);
+ VTABLE_set_string_keyed_int(interp, PREG(1), cur_opcode[2], CONST(3).u.string);
return (opcode_t *)cur_opcode + 4;}
@@ -20917,7 +20908,7 @@
opcode_t *
Parrot_set_p_kc_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_integer_keyed(interp, PREG(1), CONST(2)->u.key, IREG(3));
+ VTABLE_set_integer_keyed(interp, PREG(1), CONST(2).u.key, IREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -20931,7 +20922,7 @@
opcode_t *
Parrot_set_p_kc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_integer_keyed(interp, PREG(1), CONST(2)->u.key, cur_opcode[3]);
+ VTABLE_set_integer_keyed(interp, PREG(1), CONST(2).u.key, cur_opcode[3]);
return (opcode_t *)cur_opcode + 4;}
@@ -20945,21 +20936,21 @@
opcode_t *
Parrot_set_p_kc_n(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_number_keyed(interp, PREG(1), CONST(2)->u.key, NREG(3));
+ VTABLE_set_number_keyed(interp, PREG(1), CONST(2).u.key, NREG(3));
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_set_p_k_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_number_keyed(interp, PREG(1), PREG(2), CONST(3)->u.number);
+ VTABLE_set_number_keyed(interp, PREG(1), PREG(2), CONST(3).u.number);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_set_p_kc_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_number_keyed(interp, PREG(1), CONST(2)->u.key, CONST(3)->u.number);
+ VTABLE_set_number_keyed(interp, PREG(1), CONST(2).u.key, CONST(3).u.number);
return (opcode_t *)cur_opcode + 4;}
@@ -20973,21 +20964,21 @@
opcode_t *
Parrot_set_p_kc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_string_keyed(interp, PREG(1), CONST(2)->u.key, SREG(3));
+ VTABLE_set_string_keyed(interp, PREG(1), CONST(2).u.key, SREG(3));
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_set_p_k_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_string_keyed(interp, PREG(1), PREG(2), CONST(3)->u.string);
+ VTABLE_set_string_keyed(interp, PREG(1), PREG(2), CONST(3).u.string);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_set_p_kc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_string_keyed(interp, PREG(1), CONST(2)->u.key, CONST(3)->u.string);
+ VTABLE_set_string_keyed(interp, PREG(1), CONST(2).u.key, CONST(3).u.string);
return (opcode_t *)cur_opcode + 4;}
@@ -21001,7 +20992,7 @@
opcode_t *
Parrot_set_p_kc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_set_pmc_keyed(interp, PREG(1), CONST(2)->u.key, PREG(3));
+ VTABLE_set_pmc_keyed(interp, PREG(1), CONST(2).u.key, PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -21015,7 +21006,7 @@
opcode_t *
Parrot_set_i_p_kc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = VTABLE_get_integer_keyed(interp, PREG(2), CONST(3)->u.key);
+ IREG(1) = VTABLE_get_integer_keyed(interp, PREG(2), CONST(3).u.key);
return (opcode_t *)cur_opcode + 4;}
@@ -21029,7 +21020,7 @@
opcode_t *
Parrot_set_n_p_kc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- NREG(1) = VTABLE_get_number_keyed(interp, PREG(2), CONST(3)->u.key);
+ NREG(1) = VTABLE_get_number_keyed(interp, PREG(2), CONST(3).u.key);
return (opcode_t *)cur_opcode + 4;}
@@ -21043,7 +21034,7 @@
opcode_t *
Parrot_set_s_p_kc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = VTABLE_get_string_keyed(interp, PREG(2), CONST(3)->u.key);
+ SREG(1) = VTABLE_get_string_keyed(interp, PREG(2), CONST(3).u.key);
return (opcode_t *)cur_opcode + 4;}
@@ -21057,7 +21048,7 @@
opcode_t *
Parrot_set_p_p_kc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3)->u.key);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3).u.key);
return (opcode_t *)cur_opcode + 4;}
@@ -21078,7 +21069,7 @@
opcode_t *
Parrot_clone_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_clone_pmc(interp, PREG(2), CONST(3)->u.key);
+ PREG(1) = VTABLE_clone_pmc(interp, PREG(2), CONST(3).u.key);
return (opcode_t *)cur_opcode + 4;}
@@ -21086,7 +21077,7 @@
Parrot_copy_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
if (PMC_IS_NULL(PREG(1))) {
- opcode_t * const dest =cur_opcode + 3;
+ opcode_t * const dest = cur_opcode + 3;
opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
EXCEPTION_NULL_REG_ACCESS, "Null PMC in copy");return (opcode_t *)handler;
}
@@ -21158,7 +21149,7 @@
opcode_t *
Parrot_ord_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = string_ord(interp, CONST(2)->u.string, 0);
+ IREG(1) = string_ord(interp, CONST(2).u.string, 0);
return (opcode_t *)cur_opcode + 3;}
@@ -21172,7 +21163,7 @@
opcode_t *
Parrot_ord_i_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = string_ord(interp, CONST(2)->u.string, IREG(3));
+ IREG(1) = string_ord(interp, CONST(2).u.string, IREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -21186,7 +21177,7 @@
opcode_t *
Parrot_ord_i_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = string_ord(interp, CONST(2)->u.string, cur_opcode[3]);
+ IREG(1) = string_ord(interp, CONST(2).u.string, cur_opcode[3]);
return (opcode_t *)cur_opcode + 4;}
@@ -21216,7 +21207,7 @@
opcode_t *
Parrot_chopn_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_chopn(interp, CONST(2)->u.string, IREG(3));
+ SREG(1) = Parrot_str_chopn(interp, CONST(2).u.string, IREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -21230,7 +21221,7 @@
opcode_t *
Parrot_chopn_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_chopn(interp, CONST(2)->u.string, cur_opcode[3]);
+ SREG(1) = Parrot_str_chopn(interp, CONST(2).u.string, cur_opcode[3]);
return (opcode_t *)cur_opcode + 4;}
@@ -21244,7 +21235,7 @@
opcode_t *
Parrot_concat_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_concat(interp, SREG(1), CONST(2)->u.string);
+ SREG(1) = Parrot_str_concat(interp, SREG(1), CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -21265,7 +21256,7 @@
opcode_t *
Parrot_concat_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- VTABLE_i_concatenate_str(interp, PREG(1), CONST(2)->u.string);
+ VTABLE_i_concatenate_str(interp, PREG(1), CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -21279,14 +21270,14 @@
opcode_t *
Parrot_concat_s_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_concat(interp, CONST(2)->u.string, SREG(3));
+ SREG(1) = Parrot_str_concat(interp, CONST(2).u.string, SREG(3));
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_concat_s_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_concat(interp, SREG(2), CONST(3)->u.string);
+ SREG(1) = Parrot_str_concat(interp, SREG(2), CONST(3).u.string);
return (opcode_t *)cur_opcode + 4;}
@@ -21300,7 +21291,7 @@
opcode_t *
Parrot_concat_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_concatenate_str(interp, PREG(2), CONST(3)->u.string, PREG(1));
+ PREG(1) = VTABLE_concatenate_str(interp, PREG(2), CONST(3).u.string, PREG(1));
return (opcode_t *)cur_opcode + 4;}
@@ -21331,7 +21322,7 @@
EXCEPTION_NEG_REPEAT,
"Cannot repeat with negative arg");return (opcode_t *)handler;
}
- SREG(1) = Parrot_str_repeat(interp, CONST(2)->u.string, (UINTVAL)IREG(3));
+ SREG(1) = Parrot_str_repeat(interp, CONST(2).u.string, (UINTVAL)IREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -21355,7 +21346,7 @@
EXCEPTION_NEG_REPEAT,
"Cannot repeat with negative arg");return (opcode_t *)handler;
}
- SREG(1) = Parrot_str_repeat(interp, CONST(2)->u.string, (UINTVAL)cur_opcode[3]);
+ SREG(1) = Parrot_str_repeat(interp, CONST(2).u.string, (UINTVAL)cur_opcode[3]);
return (opcode_t *)cur_opcode + 4;}
@@ -21426,7 +21417,7 @@
opcode_t *
Parrot_length_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_length(interp, CONST(2)->u.string);
+ IREG(1) = Parrot_str_length(interp, CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -21440,7 +21431,7 @@
opcode_t *
Parrot_bytelength_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_byte_length(interp, CONST(2)->u.string);
+ IREG(1) = Parrot_str_byte_length(interp, CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -21469,8 +21460,8 @@
opcode_t *
Parrot_substr_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- const INTVAL len = Parrot_str_byte_length(interp, CONST(2)->u.string);
- SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, IREG(3), len);
+ const INTVAL len = Parrot_str_byte_length(interp, CONST(2).u.string);
+ SREG(1) = Parrot_str_substr(interp, CONST(2).u.string, IREG(3), len);
return (opcode_t *)cur_opcode + 4;}
@@ -21485,8 +21476,8 @@
opcode_t *
Parrot_substr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- const INTVAL len = Parrot_str_byte_length(interp, CONST(2)->u.string);
- SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, cur_opcode[3], len);
+ const INTVAL len = Parrot_str_byte_length(interp, CONST(2).u.string);
+ SREG(1) = Parrot_str_substr(interp, CONST(2).u.string, cur_opcode[3], len);
return (opcode_t *)cur_opcode + 4;}
@@ -21500,7 +21491,7 @@
opcode_t *
Parrot_substr_s_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, IREG(3), IREG(4));
+ SREG(1) = Parrot_str_substr(interp, CONST(2).u.string, IREG(3), IREG(4));
return (opcode_t *)cur_opcode + 5;}
@@ -21514,7 +21505,7 @@
opcode_t *
Parrot_substr_s_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, cur_opcode[3], IREG(4));
+ SREG(1) = Parrot_str_substr(interp, CONST(2).u.string, cur_opcode[3], IREG(4));
return (opcode_t *)cur_opcode + 5;}
@@ -21528,7 +21519,7 @@
opcode_t *
Parrot_substr_s_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, IREG(3), cur_opcode[4]);
+ SREG(1) = Parrot_str_substr(interp, CONST(2).u.string, IREG(3), cur_opcode[4]);
return (opcode_t *)cur_opcode + 5;}
@@ -21542,7 +21533,7 @@
opcode_t *
Parrot_substr_s_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, cur_opcode[3], cur_opcode[4]);
+ SREG(1) = Parrot_str_substr(interp, CONST(2).u.string, cur_opcode[3], cur_opcode[4]);
return (opcode_t *)cur_opcode + 5;}
@@ -21584,7 +21575,7 @@
opcode_t *
Parrot_replace_s_sc_i_i_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, IREG(3), IREG(4), SREG(5));
+ SREG(1) = Parrot_str_replace(interp, CONST(2).u.string, IREG(3), IREG(4), SREG(5));
return (opcode_t *)cur_opcode + 6;}
@@ -21598,7 +21589,7 @@
opcode_t *
Parrot_replace_s_sc_ic_i_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, cur_opcode[3], IREG(4), SREG(5));
+ SREG(1) = Parrot_str_replace(interp, CONST(2).u.string, cur_opcode[3], IREG(4), SREG(5));
return (opcode_t *)cur_opcode + 6;}
@@ -21612,7 +21603,7 @@
opcode_t *
Parrot_replace_s_sc_i_ic_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, IREG(3), cur_opcode[4], SREG(5));
+ SREG(1) = Parrot_str_replace(interp, CONST(2).u.string, IREG(3), cur_opcode[4], SREG(5));
return (opcode_t *)cur_opcode + 6;}
@@ -21626,63 +21617,63 @@
opcode_t *
Parrot_replace_s_sc_ic_ic_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, cur_opcode[3], cur_opcode[4], SREG(5));
+ SREG(1) = Parrot_str_replace(interp, CONST(2).u.string, cur_opcode[3], cur_opcode[4], SREG(5));
return (opcode_t *)cur_opcode + 6;}
opcode_t *
Parrot_replace_s_s_i_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), IREG(4), CONST(5)->u.string);
+ SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), IREG(4), CONST(5).u.string);
return (opcode_t *)cur_opcode + 6;}
opcode_t *
Parrot_replace_s_sc_i_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, IREG(3), IREG(4), CONST(5)->u.string);
+ SREG(1) = Parrot_str_replace(interp, CONST(2).u.string, IREG(3), IREG(4), CONST(5).u.string);
return (opcode_t *)cur_opcode + 6;}
opcode_t *
Parrot_replace_s_s_ic_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_replace(interp, SREG(2), cur_opcode[3], IREG(4), CONST(5)->u.string);
+ SREG(1) = Parrot_str_replace(interp, SREG(2), cur_opcode[3], IREG(4), CONST(5).u.string);
return (opcode_t *)cur_opcode + 6;}
opcode_t *
Parrot_replace_s_sc_ic_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, cur_opcode[3], IREG(4), CONST(5)->u.string);
+ SREG(1) = Parrot_str_replace(interp, CONST(2).u.string, cur_opcode[3], IREG(4), CONST(5).u.string);
return (opcode_t *)cur_opcode + 6;}
opcode_t *
Parrot_replace_s_s_i_ic_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), cur_opcode[4], CONST(5)->u.string);
+ SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), cur_opcode[4], CONST(5).u.string);
return (opcode_t *)cur_opcode + 6;}
opcode_t *
Parrot_replace_s_sc_i_ic_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, IREG(3), cur_opcode[4], CONST(5)->u.string);
+ SREG(1) = Parrot_str_replace(interp, CONST(2).u.string, IREG(3), cur_opcode[4], CONST(5).u.string);
return (opcode_t *)cur_opcode + 6;}
opcode_t *
Parrot_replace_s_s_ic_ic_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_replace(interp, SREG(2), cur_opcode[3], cur_opcode[4], CONST(5)->u.string);
+ SREG(1) = Parrot_str_replace(interp, SREG(2), cur_opcode[3], cur_opcode[4], CONST(5).u.string);
return (opcode_t *)cur_opcode + 6;}
opcode_t *
Parrot_replace_s_sc_ic_ic_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, cur_opcode[3], cur_opcode[4], CONST(5)->u.string);
+ SREG(1) = Parrot_str_replace(interp, CONST(2).u.string, cur_opcode[3], cur_opcode[4], CONST(5).u.string);
return (opcode_t *)cur_opcode + 6;}
@@ -21696,21 +21687,21 @@
opcode_t *
Parrot_index_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = (CONST(2)->u.string && SREG(3)) ? Parrot_str_find_index(interp, CONST(2)->u.string, SREG(3), 0) : -1;
+ IREG(1) = (CONST(2).u.string && SREG(3)) ? Parrot_str_find_index(interp, CONST(2).u.string, SREG(3), 0) : -1;
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_index_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = (SREG(2) && CONST(3)->u.string) ? Parrot_str_find_index(interp, SREG(2), CONST(3)->u.string, 0) : -1;
+ IREG(1) = (SREG(2) && CONST(3).u.string) ? Parrot_str_find_index(interp, SREG(2), CONST(3).u.string, 0) : -1;
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_index_i_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = (CONST(2)->u.string && CONST(3)->u.string) ? Parrot_str_find_index(interp, CONST(2)->u.string, CONST(3)->u.string, 0) : -1;
+ IREG(1) = (CONST(2).u.string && CONST(3).u.string) ? Parrot_str_find_index(interp, CONST(2).u.string, CONST(3).u.string, 0) : -1;
return (opcode_t *)cur_opcode + 4;}
@@ -21724,21 +21715,21 @@
opcode_t *
Parrot_index_i_sc_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = (CONST(2)->u.string && SREG(3)) ? Parrot_str_find_index(interp, CONST(2)->u.string, SREG(3), IREG(4)) : -1;
+ IREG(1) = (CONST(2).u.string && SREG(3)) ? Parrot_str_find_index(interp, CONST(2).u.string, SREG(3), IREG(4)) : -1;
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_index_i_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = (SREG(2) && CONST(3)->u.string) ? Parrot_str_find_index(interp, SREG(2), CONST(3)->u.string, IREG(4)) : -1;
+ IREG(1) = (SREG(2) && CONST(3).u.string) ? Parrot_str_find_index(interp, SREG(2), CONST(3).u.string, IREG(4)) : -1;
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_index_i_sc_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = (CONST(2)->u.string && CONST(3)->u.string) ? Parrot_str_find_index(interp, CONST(2)->u.string, CONST(3)->u.string, IREG(4)) : -1;
+ IREG(1) = (CONST(2).u.string && CONST(3).u.string) ? Parrot_str_find_index(interp, CONST(2).u.string, CONST(3).u.string, IREG(4)) : -1;
return (opcode_t *)cur_opcode + 5;}
@@ -21752,21 +21743,21 @@
opcode_t *
Parrot_index_i_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = (CONST(2)->u.string && SREG(3)) ? Parrot_str_find_index(interp, CONST(2)->u.string, SREG(3), cur_opcode[4]) : -1;
+ IREG(1) = (CONST(2).u.string && SREG(3)) ? Parrot_str_find_index(interp, CONST(2).u.string, SREG(3), cur_opcode[4]) : -1;
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_index_i_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = (SREG(2) && CONST(3)->u.string) ? Parrot_str_find_index(interp, SREG(2), CONST(3)->u.string, cur_opcode[4]) : -1;
+ IREG(1) = (SREG(2) && CONST(3).u.string) ? Parrot_str_find_index(interp, SREG(2), CONST(3).u.string, cur_opcode[4]) : -1;
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_index_i_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = (CONST(2)->u.string && CONST(3)->u.string) ? Parrot_str_find_index(interp, CONST(2)->u.string, CONST(3)->u.string, cur_opcode[4]) : -1;
+ IREG(1) = (CONST(2).u.string && CONST(3).u.string) ? Parrot_str_find_index(interp, CONST(2).u.string, CONST(3).u.string, cur_opcode[4]) : -1;
return (opcode_t *)cur_opcode + 5;}
@@ -21780,7 +21771,7 @@
opcode_t *
Parrot_sprintf_s_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1)=Parrot_psprintf(interp, CONST(2)->u.string, PREG(3));
+ SREG(1)=Parrot_psprintf(interp, CONST(2).u.string, PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -21852,27 +21843,27 @@
opcode_t *
Parrot_stringinfo_i_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (CONST(2)->u.string == NULL)
+ if (CONST(2).u.string == NULL)
IREG(1) = 0;
else {
switch (IREG(3)) {
case STRINGINFO_HEADER:
- IREG(1) = PTR2UINTVAL(CONST(2)->u.string);
+ IREG(1) = PTR2UINTVAL(CONST(2).u.string);
break;
case STRINGINFO_STRSTART:
- IREG(1) = PTR2UINTVAL(CONST(2)->u.string->strstart);
+ IREG(1) = PTR2UINTVAL(CONST(2).u.string->strstart);
break;
case STRINGINFO_BUFLEN:
- IREG(1) = Buffer_buflen(CONST(2)->u.string);
+ IREG(1) = Buffer_buflen(CONST(2).u.string);
break;
case STRINGINFO_FLAGS:
- IREG(1) = PObj_get_FLAGS(CONST(2)->u.string);
+ IREG(1) = PObj_get_FLAGS(CONST(2).u.string);
break;
case STRINGINFO_BUFUSED:
- IREG(1) = CONST(2)->u.string->bufused;
+ IREG(1) = CONST(2).u.string->bufused;
break;
case STRINGINFO_STRLEN:
- IREG(1) = CONST(2)->u.string->strlen;
+ IREG(1) = CONST(2).u.string->strlen;
break;
default:
{
@@ -21924,27 +21915,27 @@
opcode_t *
Parrot_stringinfo_i_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (CONST(2)->u.string == NULL)
+ if (CONST(2).u.string == NULL)
IREG(1) = 0;
else {
switch (cur_opcode[3]) {
case STRINGINFO_HEADER:
- IREG(1) = PTR2UINTVAL(CONST(2)->u.string);
+ IREG(1) = PTR2UINTVAL(CONST(2).u.string);
break;
case STRINGINFO_STRSTART:
- IREG(1) = PTR2UINTVAL(CONST(2)->u.string->strstart);
+ IREG(1) = PTR2UINTVAL(CONST(2).u.string->strstart);
break;
case STRINGINFO_BUFLEN:
- IREG(1) = Buffer_buflen(CONST(2)->u.string);
+ IREG(1) = Buffer_buflen(CONST(2).u.string);
break;
case STRINGINFO_FLAGS:
- IREG(1) = PObj_get_FLAGS(CONST(2)->u.string);
+ IREG(1) = PObj_get_FLAGS(CONST(2).u.string);
break;
case STRINGINFO_BUFUSED:
- IREG(1) = CONST(2)->u.string->bufused;
+ IREG(1) = CONST(2).u.string->bufused;
break;
case STRINGINFO_STRLEN:
- IREG(1) = CONST(2)->u.string->strlen;
+ IREG(1) = CONST(2).u.string->strlen;
break;
default:
{
@@ -21967,7 +21958,7 @@
opcode_t *
Parrot_upcase_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_upcase(interp, CONST(2)->u.string);
+ SREG(1) = Parrot_str_upcase(interp, CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -21981,7 +21972,7 @@
opcode_t *
Parrot_downcase_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_downcase(interp, CONST(2)->u.string);
+ SREG(1) = Parrot_str_downcase(interp, CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -21995,7 +21986,7 @@
opcode_t *
Parrot_titlecase_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_titlecase(interp, CONST(2)->u.string);
+ SREG(1) = Parrot_str_titlecase(interp, CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -22009,7 +22000,7 @@
opcode_t *
Parrot_join_s_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_join(interp, CONST(2)->u.string, PREG(3));
+ SREG(1) = Parrot_str_join(interp, CONST(2).u.string, PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -22023,21 +22014,21 @@
opcode_t *
Parrot_split_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = Parrot_str_split(interp, CONST(2)->u.string, SREG(3));
+ PREG(1) = Parrot_str_split(interp, CONST(2).u.string, SREG(3));
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_split_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = Parrot_str_split(interp, SREG(2), CONST(3)->u.string);
+ PREG(1) = Parrot_str_split(interp, SREG(2), CONST(3).u.string);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_split_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = Parrot_str_split(interp, CONST(2)->u.string, CONST(3)->u.string);
+ PREG(1) = Parrot_str_split(interp, CONST(2).u.string, CONST(3).u.string);
return (opcode_t *)cur_opcode + 4;}
@@ -22051,7 +22042,7 @@
opcode_t *
Parrot_charset_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_charset_number_of_str(interp, CONST(2)->u.string);
+ IREG(1) = Parrot_charset_number_of_str(interp, CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -22085,11 +22076,11 @@
opcode_t *
Parrot_find_charset_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- const INTVAL n = Parrot_charset_number(interp, CONST(2)->u.string);
+ const INTVAL n = Parrot_charset_number(interp, CONST(2).u.string);
if (n < 0) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
EXCEPTION_INVALID_CHARTYPE,
- "charset '%Ss' not found", CONST(2)->u.string);return (opcode_t *)handler;
+ "charset '%Ss' not found", CONST(2).u.string);return (opcode_t *)handler;
}
IREG(1) = n;
@@ -22105,7 +22096,7 @@
opcode_t *
Parrot_trans_charset_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_change_charset(interp, CONST(2)->u.string, IREG(3));
+ SREG(1) = Parrot_str_change_charset(interp, CONST(2).u.string, IREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -22119,7 +22110,7 @@
opcode_t *
Parrot_trans_charset_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_change_charset(interp, CONST(2)->u.string, cur_opcode[3]);
+ SREG(1) = Parrot_str_change_charset(interp, CONST(2).u.string, cur_opcode[3]);
return (opcode_t *)cur_opcode + 4;}
@@ -22133,7 +22124,7 @@
opcode_t *
Parrot_encoding_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_encoding_number_of_str(interp, CONST(2)->u.string);
+ IREG(1) = Parrot_encoding_number_of_str(interp, CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -22167,11 +22158,11 @@
opcode_t *
Parrot_find_encoding_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- const INTVAL n = Parrot_encoding_number(interp, CONST(2)->u.string);
+ const INTVAL n = Parrot_encoding_number(interp, CONST(2).u.string);
if (n < 0) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
EXCEPTION_INVALID_ENCODING,
- "encoding '%Ss' not found", CONST(2)->u.string);return (opcode_t *)handler;
+ "encoding '%Ss' not found", CONST(2).u.string);return (opcode_t *)handler;
}
IREG(1) = n;
@@ -22187,7 +22178,7 @@
opcode_t *
Parrot_trans_encoding_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_change_encoding(interp, CONST(2)->u.string, IREG(3));
+ SREG(1) = Parrot_str_change_encoding(interp, CONST(2).u.string, IREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -22201,7 +22192,7 @@
opcode_t *
Parrot_trans_encoding_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_change_encoding(interp, CONST(2)->u.string, cur_opcode[3]);
+ SREG(1) = Parrot_str_change_encoding(interp, CONST(2).u.string, cur_opcode[3]);
return (opcode_t *)cur_opcode + 4;}
@@ -22222,14 +22213,14 @@
opcode_t *
Parrot_is_cclass_i_i_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_is_cclass(interp, IREG(2), CONST(3)->u.string, IREG(4));
+ IREG(1) = Parrot_str_is_cclass(interp, IREG(2), CONST(3).u.string, IREG(4));
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_is_cclass_i_ic_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_is_cclass(interp, cur_opcode[2], CONST(3)->u.string, IREG(4));
+ IREG(1) = Parrot_str_is_cclass(interp, cur_opcode[2], CONST(3).u.string, IREG(4));
return (opcode_t *)cur_opcode + 5;}
@@ -22250,14 +22241,14 @@
opcode_t *
Parrot_is_cclass_i_i_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_is_cclass(interp, IREG(2), CONST(3)->u.string, cur_opcode[4]);
+ IREG(1) = Parrot_str_is_cclass(interp, IREG(2), CONST(3).u.string, cur_opcode[4]);
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_is_cclass_i_ic_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_is_cclass(interp, cur_opcode[2], CONST(3)->u.string, cur_opcode[4]);
+ IREG(1) = Parrot_str_is_cclass(interp, cur_opcode[2], CONST(3).u.string, cur_opcode[4]);
return (opcode_t *)cur_opcode + 5;}
@@ -22278,14 +22269,14 @@
opcode_t *
Parrot_find_cclass_i_i_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_find_cclass(interp, IREG(2), CONST(3)->u.string, IREG(4), IREG(5));
+ IREG(1) = Parrot_str_find_cclass(interp, IREG(2), CONST(3).u.string, IREG(4), IREG(5));
return (opcode_t *)cur_opcode + 6;}
opcode_t *
Parrot_find_cclass_i_ic_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], CONST(3)->u.string, IREG(4), IREG(5));
+ IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], CONST(3).u.string, IREG(4), IREG(5));
return (opcode_t *)cur_opcode + 6;}
@@ -22306,14 +22297,14 @@
opcode_t *
Parrot_find_cclass_i_i_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_find_cclass(interp, IREG(2), CONST(3)->u.string, cur_opcode[4], IREG(5));
+ IREG(1) = Parrot_str_find_cclass(interp, IREG(2), CONST(3).u.string, cur_opcode[4], IREG(5));
return (opcode_t *)cur_opcode + 6;}
opcode_t *
Parrot_find_cclass_i_ic_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], CONST(3)->u.string, cur_opcode[4], IREG(5));
+ IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], CONST(3).u.string, cur_opcode[4], IREG(5));
return (opcode_t *)cur_opcode + 6;}
@@ -22334,14 +22325,14 @@
opcode_t *
Parrot_find_cclass_i_i_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_find_cclass(interp, IREG(2), CONST(3)->u.string, IREG(4), cur_opcode[5]);
+ IREG(1) = Parrot_str_find_cclass(interp, IREG(2), CONST(3).u.string, IREG(4), cur_opcode[5]);
return (opcode_t *)cur_opcode + 6;}
opcode_t *
Parrot_find_cclass_i_ic_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], CONST(3)->u.string, IREG(4), cur_opcode[5]);
+ IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], CONST(3).u.string, IREG(4), cur_opcode[5]);
return (opcode_t *)cur_opcode + 6;}
@@ -22362,14 +22353,14 @@
opcode_t *
Parrot_find_cclass_i_i_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_find_cclass(interp, IREG(2), CONST(3)->u.string, cur_opcode[4], cur_opcode[5]);
+ IREG(1) = Parrot_str_find_cclass(interp, IREG(2), CONST(3).u.string, cur_opcode[4], cur_opcode[5]);
return (opcode_t *)cur_opcode + 6;}
opcode_t *
Parrot_find_cclass_i_ic_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], CONST(3)->u.string, cur_opcode[4], cur_opcode[5]);
+ IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], CONST(3).u.string, cur_opcode[4], cur_opcode[5]);
return (opcode_t *)cur_opcode + 6;}
@@ -22390,14 +22381,14 @@
opcode_t *
Parrot_find_not_cclass_i_i_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), CONST(3)->u.string, IREG(4), IREG(5));
+ IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), CONST(3).u.string, IREG(4), IREG(5));
return (opcode_t *)cur_opcode + 6;}
opcode_t *
Parrot_find_not_cclass_i_ic_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], CONST(3)->u.string, IREG(4), IREG(5));
+ IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], CONST(3).u.string, IREG(4), IREG(5));
return (opcode_t *)cur_opcode + 6;}
@@ -22418,14 +22409,14 @@
opcode_t *
Parrot_find_not_cclass_i_i_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), CONST(3)->u.string, cur_opcode[4], IREG(5));
+ IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), CONST(3).u.string, cur_opcode[4], IREG(5));
return (opcode_t *)cur_opcode + 6;}
opcode_t *
Parrot_find_not_cclass_i_ic_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], CONST(3)->u.string, cur_opcode[4], IREG(5));
+ IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], CONST(3).u.string, cur_opcode[4], IREG(5));
return (opcode_t *)cur_opcode + 6;}
@@ -22446,14 +22437,14 @@
opcode_t *
Parrot_find_not_cclass_i_i_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), CONST(3)->u.string, IREG(4), cur_opcode[5]);
+ IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), CONST(3).u.string, IREG(4), cur_opcode[5]);
return (opcode_t *)cur_opcode + 6;}
opcode_t *
Parrot_find_not_cclass_i_ic_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], CONST(3)->u.string, IREG(4), cur_opcode[5]);
+ IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], CONST(3).u.string, IREG(4), cur_opcode[5]);
return (opcode_t *)cur_opcode + 6;}
@@ -22474,14 +22465,14 @@
opcode_t *
Parrot_find_not_cclass_i_i_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), CONST(3)->u.string, cur_opcode[4], cur_opcode[5]);
+ IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), CONST(3).u.string, cur_opcode[4], cur_opcode[5]);
return (opcode_t *)cur_opcode + 6;}
opcode_t *
Parrot_find_not_cclass_i_ic_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], CONST(3)->u.string, cur_opcode[4], cur_opcode[5]);
+ IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], CONST(3).u.string, cur_opcode[4], cur_opcode[5]);
return (opcode_t *)cur_opcode + 6;}
@@ -22502,7 +22493,7 @@
opcode_t *
Parrot_compose_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- SREG(1) = Parrot_str_compose(interp, CONST(2)->u.string);
+ SREG(1) = Parrot_str_compose(interp, CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -22516,7 +22507,7 @@
opcode_t *
Parrot_spawnw_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- IREG(1) = Parrot_Run_OS_Command(interp, CONST(2)->u.string);
+ IREG(1) = Parrot_Run_OS_Command(interp, CONST(2).u.string);
return (opcode_t *)cur_opcode + 3;}
@@ -22575,7 +22566,7 @@
opcode_t *
Parrot_sleep_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- opcode_t *next =cur_opcode + 2;
+ opcode_t *next = cur_opcode + 2;
if (IREG(1) < 0) {
opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
EXCEPTION_NEG_SLEEP,
@@ -22587,7 +22578,7 @@
opcode_t *
Parrot_sleep_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- opcode_t *next =cur_opcode + 2;
+ opcode_t *next = cur_opcode + 2;
if (cur_opcode[1] < 0) {
opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
EXCEPTION_NEG_SLEEP,
@@ -22599,7 +22590,7 @@
opcode_t *
Parrot_sleep_n(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- opcode_t *next =cur_opcode + 2;
+ opcode_t *next = cur_opcode + 2;
if (NREG(1) < 0.0) {
opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
EXCEPTION_NEG_SLEEP,
@@ -22611,13 +22602,13 @@
opcode_t *
Parrot_sleep_nc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- opcode_t *next =cur_opcode + 2;
- if (CONST(1)->u.number < 0.0) {
+ opcode_t *next = cur_opcode + 2;
+ if (CONST(1).u.number < 0.0) {
opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
EXCEPTION_NEG_SLEEP,
"Cannot go back in time");return (opcode_t *)handler;
}
- next = (opcode_t *)Parrot_cx_schedule_sleep(interp, CONST(1)->u.number, next);return (opcode_t *)next;
+ next = (opcode_t *)Parrot_cx_schedule_sleep(interp, CONST(1).u.number, next);return (opcode_t *)next;
}
opcode_t *
@@ -22640,7 +22631,7 @@
Parrot_store_lex_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const ctx = CURRENT_CONTEXT(interp);
- STRING * const lex_name = CONST(1)->u.string;
+ STRING * const lex_name = CONST(1).u.string;
PMC * const lex_pad = Parrot_find_pad(interp, lex_name, ctx);
if (PMC_IS_NULL(lex_pad)) {
@@ -22675,7 +22666,7 @@
opcode_t *
Parrot_store_dynamic_lex_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- STRING * const lex_name = CONST(1)->u.string;
+ STRING * const lex_name = CONST(1).u.string;
PMC * const ctx =
Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp));
PMC * const lex_pad =
@@ -22716,7 +22707,7 @@
Parrot_find_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const ctx = CURRENT_CONTEXT(interp);
- STRING * const lex_name = CONST(2)->u.string;
+ STRING * const lex_name = CONST(2).u.string;
PMC * const lex_pad = Parrot_find_pad(interp, lex_name, ctx);
PMC * const result =
@@ -22753,7 +22744,7 @@
opcode_t *
Parrot_find_dynamic_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- STRING * const lex_name = CONST(2)->u.string;
+ STRING * const lex_name = CONST(2).u.string;
PMC * const ctx =
Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp));
PMC * const lex_pad =
@@ -22792,7 +22783,7 @@
opcode_t *
Parrot_find_caller_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- STRING * const lex_name = CONST(2)->u.string;
+ STRING * const lex_name = CONST(2).u.string;
PMC * ctx = CURRENT_CONTEXT(interp);
PMC * result = PMCNULL;
@@ -22822,7 +22813,7 @@
Parrot_get_namespace_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
- PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, PREG(2));
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, cur_ns, PREG(2));
PREG(1) = PMC_IS_NULL(ns) ? PMCNULL : ns;
@@ -22832,7 +22823,7 @@
Parrot_get_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
- PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, CONST(2)->u.key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, cur_ns, CONST(2).u.key);
PREG(1) = PMC_IS_NULL(ns) ? PMCNULL : ns;
@@ -22853,7 +22844,7 @@
if (PMC_IS_NULL(hll_ns))
PREG(1) = PMCNULL;
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, PREG(2));
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, PREG(2));
PREG(1) = ns;
}
@@ -22866,7 +22857,7 @@
if (PMC_IS_NULL(hll_ns))
PREG(1) = PMCNULL;
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, CONST(2)->u.key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, CONST(2).u.key);
PREG(1) = ns;
}
@@ -22887,7 +22878,7 @@
if (PMC_IS_NULL(root_ns))
PREG(1) = PMCNULL;
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, PREG(2));
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, PREG(2));
PREG(1) = ns;
}
@@ -22900,7 +22891,7 @@
if (PMC_IS_NULL(root_ns))
PREG(1) = PMCNULL;
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, CONST(2)->u.key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, CONST(2).u.key);
PREG(1) = ns;
}
@@ -22910,7 +22901,7 @@
Parrot_get_global_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
- PREG(1) = Parrot_find_global_op(interp, cur_ns, SREG(2),cur_opcode + 3);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, cur_ns, SREG(2), cur_opcode + 3);
return (opcode_t *)cur_opcode + 3;}
@@ -22918,7 +22909,7 @@
Parrot_get_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
- PREG(1) = Parrot_find_global_op(interp, cur_ns, CONST(2)->u.string,cur_opcode + 3);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, cur_ns, CONST(2).u.string, cur_opcode + 3);
return (opcode_t *)cur_opcode + 3;}
@@ -22930,11 +22921,11 @@
PREG(1) = PMCNULL;
}
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, PREG(2));
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, cur_ns, PREG(2));
if (PMC_IS_NULL(ns))
PREG(1) = PMCNULL;
else
- PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4);
}
return (opcode_t *)cur_opcode + 4;}
@@ -22947,11 +22938,11 @@
PREG(1) = PMCNULL;
}
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, CONST(2)->u.key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, cur_ns, CONST(2).u.key);
if (PMC_IS_NULL(ns))
PREG(1) = PMCNULL;
else
- PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4);
}
return (opcode_t *)cur_opcode + 4;}
@@ -22964,11 +22955,11 @@
PREG(1) = PMCNULL;
}
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, PREG(2));
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, cur_ns, PREG(2));
if (PMC_IS_NULL(ns))
PREG(1) = PMCNULL;
else
- PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, ns, CONST(3).u.string, cur_opcode + 4);
}
return (opcode_t *)cur_opcode + 4;}
@@ -22981,11 +22972,11 @@
PREG(1) = PMCNULL;
}
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, CONST(2)->u.key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, cur_ns, CONST(2).u.key);
if (PMC_IS_NULL(ns))
PREG(1) = PMCNULL;
else
- PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, ns, CONST(3).u.string, cur_opcode + 4);
}
return (opcode_t *)cur_opcode + 4;}
@@ -22994,7 +22985,7 @@
Parrot_get_hll_global_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
- PREG(1) = Parrot_find_global_op(interp, hll_ns, SREG(2),cur_opcode + 3);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, hll_ns, SREG(2), cur_opcode + 3);
return (opcode_t *)cur_opcode + 3;}
@@ -23002,7 +22993,7 @@
Parrot_get_hll_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
- PREG(1) = Parrot_find_global_op(interp, hll_ns, CONST(2)->u.string,cur_opcode + 3);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, hll_ns, CONST(2).u.string, cur_opcode + 3);
return (opcode_t *)cur_opcode + 3;}
@@ -23014,11 +23005,11 @@
PREG(1) = hll_ns;
}
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, PREG(2));
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, PREG(2));
if (PMC_IS_NULL(ns))
PREG(1) = PMCNULL;
else
- PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4);
}
return (opcode_t *)cur_opcode + 4;}
@@ -23031,11 +23022,11 @@
PREG(1) = hll_ns;
}
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, CONST(2)->u.key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, CONST(2).u.key);
if (PMC_IS_NULL(ns))
PREG(1) = PMCNULL;
else
- PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4);
}
return (opcode_t *)cur_opcode + 4;}
@@ -23048,11 +23039,11 @@
PREG(1) = hll_ns;
}
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, PREG(2));
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, PREG(2));
if (PMC_IS_NULL(ns))
PREG(1) = PMCNULL;
else
- PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, ns, CONST(3).u.string, cur_opcode + 4);
}
return (opcode_t *)cur_opcode + 4;}
@@ -23065,11 +23056,11 @@
PREG(1) = hll_ns;
}
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, CONST(2)->u.key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, CONST(2).u.key);
if (PMC_IS_NULL(ns))
PREG(1) = PMCNULL;
else
- PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, ns, CONST(3).u.string, cur_opcode + 4);
}
return (opcode_t *)cur_opcode + 4;}
@@ -23078,7 +23069,7 @@
Parrot_get_root_global_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const root_ns = interp->root_namespace;
- PREG(1) = Parrot_find_global_op(interp, root_ns, SREG(2),cur_opcode + 3);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, root_ns, SREG(2), cur_opcode + 3);
return (opcode_t *)cur_opcode + 3;}
@@ -23086,7 +23077,7 @@
Parrot_get_root_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const root_ns = interp->root_namespace;
- PREG(1) = Parrot_find_global_op(interp, root_ns, CONST(2)->u.string,cur_opcode + 3);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, root_ns, CONST(2).u.string, cur_opcode + 3);
return (opcode_t *)cur_opcode + 3;}
@@ -23097,11 +23088,11 @@
if (PMC_IS_NULL(root_ns))
PREG(1) = PMCNULL;
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, PREG(2));
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, PREG(2));
if (PMC_IS_NULL(ns))
PREG(1) = PMCNULL;
else
- PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4);
}
return (opcode_t *)cur_opcode + 4;}
@@ -23113,11 +23104,11 @@
if (PMC_IS_NULL(root_ns))
PREG(1) = PMCNULL;
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, CONST(2)->u.key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, CONST(2).u.key);
if (PMC_IS_NULL(ns))
PREG(1) = PMCNULL;
else
- PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4);
}
return (opcode_t *)cur_opcode + 4;}
@@ -23129,11 +23120,11 @@
if (PMC_IS_NULL(root_ns))
PREG(1) = PMCNULL;
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, PREG(2));
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, PREG(2));
if (PMC_IS_NULL(ns))
PREG(1) = PMCNULL;
else
- PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, ns, CONST(3).u.string, cur_opcode + 4);
}
return (opcode_t *)cur_opcode + 4;}
@@ -23145,11 +23136,11 @@
if (PMC_IS_NULL(root_ns))
PREG(1) = PMCNULL;
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, CONST(2)->u.key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, CONST(2).u.key);
if (PMC_IS_NULL(ns))
PREG(1) = PMCNULL;
else
- PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+ PREG(1) = Parrot_ns_find_global_from_op(interp, ns, CONST(3).u.string, cur_opcode + 4);
}
return (opcode_t *)cur_opcode + 4;}
@@ -23158,7 +23149,7 @@
Parrot_set_global_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
- Parrot_set_global(interp, cur_ns, SREG(1), PREG(2));
+ Parrot_ns_set_global(interp, cur_ns, SREG(1), PREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -23166,7 +23157,7 @@
Parrot_set_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
- Parrot_set_global(interp, cur_ns, CONST(1)->u.string, PREG(2));
+ Parrot_ns_set_global(interp, cur_ns, CONST(1).u.string, PREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -23174,9 +23165,9 @@
Parrot_set_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
- PMC * const ns = Parrot_make_namespace_keyed(interp, cur_ns, PREG(1));
+ PMC * const ns = Parrot_ns_make_namespace_keyed(interp, cur_ns, PREG(1));
- Parrot_set_global(interp, ns, SREG(2), PREG(3));
+ Parrot_ns_set_global(interp, ns, SREG(2), PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -23184,9 +23175,9 @@
Parrot_set_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
- PMC * const ns = Parrot_make_namespace_keyed(interp, cur_ns, CONST(1)->u.key);
+ PMC * const ns = Parrot_ns_make_namespace_keyed(interp, cur_ns, CONST(1).u.key);
- Parrot_set_global(interp, ns, SREG(2), PREG(3));
+ Parrot_ns_set_global(interp, ns, SREG(2), PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -23194,9 +23185,9 @@
Parrot_set_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
- PMC * const ns = Parrot_make_namespace_keyed(interp, cur_ns, PREG(1));
+ PMC * const ns = Parrot_ns_make_namespace_keyed(interp, cur_ns, PREG(1));
- Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+ Parrot_ns_set_global(interp, ns, CONST(2).u.string, PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -23204,9 +23195,9 @@
Parrot_set_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
- PMC * const ns = Parrot_make_namespace_keyed(interp, cur_ns, CONST(1)->u.key);
+ PMC * const ns = Parrot_ns_make_namespace_keyed(interp, cur_ns, CONST(1).u.key);
- Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+ Parrot_ns_set_global(interp, ns, CONST(2).u.string, PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -23214,7 +23205,7 @@
Parrot_set_hll_global_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
- Parrot_set_global(interp, hll_ns, SREG(1), PREG(2));
+ Parrot_ns_set_global(interp, hll_ns, SREG(1), PREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -23222,7 +23213,7 @@
Parrot_set_hll_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
- Parrot_set_global(interp, hll_ns, CONST(1)->u.string, PREG(2));
+ Parrot_ns_set_global(interp, hll_ns, CONST(1).u.string, PREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -23230,9 +23221,9 @@
Parrot_set_hll_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
- PMC * const ns = Parrot_make_namespace_keyed(interp, hll_ns, PREG(1));
+ PMC * const ns = Parrot_ns_make_namespace_keyed(interp, hll_ns, PREG(1));
- Parrot_set_global(interp, ns, SREG(2), PREG(3));
+ Parrot_ns_set_global(interp, ns, SREG(2), PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -23240,9 +23231,9 @@
Parrot_set_hll_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
- PMC * const ns = Parrot_make_namespace_keyed(interp, hll_ns, CONST(1)->u.key);
+ PMC * const ns = Parrot_ns_make_namespace_keyed(interp, hll_ns, CONST(1).u.key);
- Parrot_set_global(interp, ns, SREG(2), PREG(3));
+ Parrot_ns_set_global(interp, ns, SREG(2), PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -23250,9 +23241,9 @@
Parrot_set_hll_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
- PMC * const ns = Parrot_make_namespace_keyed(interp, hll_ns, PREG(1));
+ PMC * const ns = Parrot_ns_make_namespace_keyed(interp, hll_ns, PREG(1));
- Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+ Parrot_ns_set_global(interp, ns, CONST(2).u.string, PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -23260,9 +23251,9 @@
Parrot_set_hll_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
- PMC * const ns = Parrot_make_namespace_keyed(interp, hll_ns, CONST(1)->u.key);
+ PMC * const ns = Parrot_ns_make_namespace_keyed(interp, hll_ns, CONST(1).u.key);
- Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+ Parrot_ns_set_global(interp, ns, CONST(2).u.string, PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -23270,7 +23261,7 @@
Parrot_set_root_global_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const root_ns = interp->root_namespace;
- Parrot_set_global(interp, root_ns, SREG(1), PREG(2));
+ Parrot_ns_set_global(interp, root_ns, SREG(1), PREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -23278,7 +23269,7 @@
Parrot_set_root_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const root_ns = interp->root_namespace;
- Parrot_set_global(interp, root_ns, CONST(1)->u.string, PREG(2));
+ Parrot_ns_set_global(interp, root_ns, CONST(1).u.string, PREG(2));
return (opcode_t *)cur_opcode + 3;}
@@ -23286,9 +23277,9 @@
Parrot_set_root_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_make_namespace_keyed(interp, root_ns, PREG(1));
+ PMC * const ns = Parrot_ns_make_namespace_keyed(interp, root_ns, PREG(1));
- Parrot_set_global(interp, ns, SREG(2), PREG(3));
+ Parrot_ns_set_global(interp, ns, SREG(2), PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -23296,9 +23287,9 @@
Parrot_set_root_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_make_namespace_keyed(interp, root_ns, CONST(1)->u.key);
+ PMC * const ns = Parrot_ns_make_namespace_keyed(interp, root_ns, CONST(1).u.key);
- Parrot_set_global(interp, ns, SREG(2), PREG(3));
+ Parrot_ns_set_global(interp, ns, SREG(2), PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -23306,9 +23297,9 @@
Parrot_set_root_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_make_namespace_keyed(interp, root_ns, PREG(1));
+ PMC * const ns = Parrot_ns_make_namespace_keyed(interp, root_ns, PREG(1));
- Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+ Parrot_ns_set_global(interp, ns, CONST(2).u.string, PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -23316,9 +23307,9 @@
Parrot_set_root_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_make_namespace_keyed(interp, root_ns, CONST(1)->u.key);
+ PMC * const ns = Parrot_ns_make_namespace_keyed(interp, root_ns, CONST(1).u.key);
- Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+ Parrot_ns_set_global(interp, ns, CONST(2).u.string, PREG(3));
return (opcode_t *)cur_opcode + 4;}
@@ -23331,28 +23322,28 @@
"Tried to find null name");return (opcode_t *)handler;
}
- PREG(1) = Parrot_find_name_op(interp, SREG(2),cur_opcode + 3);
+ PREG(1) = Parrot_ns_find_named_item(interp, SREG(2), cur_opcode + 3);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_find_name_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- if (!CONST(2)->u.string) {
+ if (!CONST(2).u.string) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
EXCEPTION_INVALID_OPERATION,
"Tried to find null name");return (opcode_t *)handler;
}
- PREG(1) = Parrot_find_name_op(interp, CONST(2)->u.string,cur_opcode + 3);
+ PREG(1) = Parrot_ns_find_named_item(interp, CONST(2).u.string, cur_opcode + 3);
return (opcode_t *)cur_opcode + 3;}
opcode_t *
Parrot_find_sub_not_null_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- opcode_t *dest =cur_opcode + 3;
- PMC *sub = Parrot_find_name_op(interp, SREG(2), dest);
+ opcode_t *dest = cur_opcode + 3;
+ PMC *sub = Parrot_ns_find_named_item(interp, SREG(2), dest);
if (PMC_IS_NULL(sub)) {
opcode_t *handler;
@@ -23369,15 +23360,15 @@
opcode_t *
Parrot_find_sub_not_null_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- opcode_t *dest =cur_opcode + 3;
- PMC *sub = Parrot_find_name_op(interp, CONST(2)->u.string, dest);
+ opcode_t *dest = cur_opcode + 3;
+ PMC *sub = Parrot_ns_find_named_item(interp, CONST(2).u.string, dest);
if (PMC_IS_NULL(sub)) {
opcode_t *handler;
Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
handler = Parrot_ex_throw_from_op_args(interp, dest,
EXCEPTION_GLOBAL_NOT_FOUND,
- "Could not find sub %Ss", CONST(2)->u.string);return (opcode_t *)handler;
+ "Could not find sub %Ss", CONST(2).u.string);return (opcode_t *)handler;
}
PREG(1) = sub;
@@ -23423,7 +23414,7 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
@@ -23436,7 +23427,7 @@
opcode_t *
Parrot_fetch_p_pc_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, PREG(3));
+ PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2).u.key, PREG(3));
if (PMC_IS_NULL(PREG(1))) {
PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
if (!PMC_IS_NULL(classobj))
@@ -23445,7 +23436,7 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
@@ -23458,7 +23449,7 @@
opcode_t *
Parrot_fetch_p_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3)->u.key);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3).u.key);
if (PMC_IS_NULL(PREG(1))) {
PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
if (!PMC_IS_NULL(classobj))
@@ -23467,7 +23458,7 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
@@ -23480,7 +23471,7 @@
opcode_t *
Parrot_fetch_p_pc_pc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2).u.key, CONST(3).u.key);
if (PMC_IS_NULL(PREG(1))) {
PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
if (!PMC_IS_NULL(classobj))
@@ -23489,7 +23480,7 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
@@ -23504,15 +23495,15 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), PREG(3));
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
@@ -23524,17 +23515,17 @@
opcode_t *
Parrot_fetch_p_pc_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, PREG(3));
+ PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2).u.key, PREG(3));
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
@@ -23546,17 +23537,17 @@
opcode_t *
Parrot_fetch_p_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3)->u.key);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3).u.key);
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
@@ -23568,17 +23559,17 @@
opcode_t *
Parrot_fetch_p_pc_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2).u.key, CONST(3).u.key);
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
@@ -23599,7 +23590,7 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
@@ -23612,7 +23603,7 @@
opcode_t *
Parrot_fetch_p_pc_i_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3));
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2).u.key, IREG(3));
if (PMC_IS_NULL(PREG(1))) {
PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
if (!PMC_IS_NULL(classobj))
@@ -23621,7 +23612,7 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
@@ -23643,7 +23634,7 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
@@ -23656,7 +23647,7 @@
opcode_t *
Parrot_fetch_p_pc_ic_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3]);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2).u.key, cur_opcode[3]);
if (PMC_IS_NULL(PREG(1))) {
PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
if (!PMC_IS_NULL(classobj))
@@ -23665,7 +23656,7 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
@@ -23680,15 +23671,15 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), IREG(3));
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
@@ -23700,17 +23691,17 @@
opcode_t *
Parrot_fetch_p_pc_i_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3));
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2).u.key, IREG(3));
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
@@ -23724,15 +23715,15 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), cur_opcode[3]);
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
@@ -23744,17 +23735,17 @@
opcode_t *
Parrot_fetch_p_pc_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3]);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2).u.key, cur_opcode[3]);
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
@@ -23775,7 +23766,7 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
@@ -23788,7 +23779,7 @@
opcode_t *
Parrot_fetch_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3));
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2).u.key, SREG(3));
if (PMC_IS_NULL(PREG(1))) {
PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
if (!PMC_IS_NULL(classobj))
@@ -23797,7 +23788,7 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
@@ -23810,7 +23801,7 @@
opcode_t *
Parrot_fetch_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), CONST(3).u.string);
if (PMC_IS_NULL(PREG(1))) {
PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
if (!PMC_IS_NULL(classobj))
@@ -23819,7 +23810,7 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
@@ -23832,7 +23823,7 @@
opcode_t *
Parrot_fetch_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2).u.key, CONST(3).u.string);
if (PMC_IS_NULL(PREG(1))) {
PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
if (!PMC_IS_NULL(classobj))
@@ -23841,7 +23832,7 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
@@ -23856,15 +23847,15 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), SREG(3));
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
@@ -23876,17 +23867,17 @@
opcode_t *
Parrot_fetch_p_pc_s_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3));
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2).u.key, SREG(3));
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
@@ -23898,17 +23889,17 @@
opcode_t *
Parrot_fetch_p_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), CONST(3).u.string);
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
@@ -23920,17 +23911,17 @@
opcode_t *
Parrot_fetch_p_pc_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2).u.key, CONST(3).u.string);
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
@@ -23953,7 +23944,7 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
@@ -23967,7 +23958,7 @@
opcode_t *
Parrot_vivify_p_pc_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, PREG(3));
+ PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2).u.key, PREG(3));
if (PMC_IS_NULL(PREG(1))) {
PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
@@ -23978,13 +23969,13 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
}
- VTABLE_set_pmc_keyed(interp, CONST(2)->u.key, PREG(3), PREG(1));
+ VTABLE_set_pmc_keyed(interp, CONST(2).u.key, PREG(3), PREG(1));
}
return (opcode_t *)cur_opcode + 5;}
@@ -23992,7 +23983,7 @@
opcode_t *
Parrot_vivify_p_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3)->u.key);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3).u.key);
if (PMC_IS_NULL(PREG(1))) {
PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
@@ -24003,13 +23994,13 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
}
- VTABLE_set_pmc_keyed(interp, PREG(2), CONST(3)->u.key, PREG(1));
+ VTABLE_set_pmc_keyed(interp, PREG(2), CONST(3).u.key, PREG(1));
}
return (opcode_t *)cur_opcode + 5;}
@@ -24017,7 +24008,7 @@
opcode_t *
Parrot_vivify_p_pc_pc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2).u.key, CONST(3).u.key);
if (PMC_IS_NULL(PREG(1))) {
PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
@@ -24028,13 +24019,13 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
}
- VTABLE_set_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key, PREG(1));
+ VTABLE_set_pmc_keyed(interp, CONST(2).u.key, CONST(3).u.key, PREG(1));
}
return (opcode_t *)cur_opcode + 5;}
@@ -24045,16 +24036,16 @@
PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), PREG(3));
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
@@ -24067,24 +24058,24 @@
opcode_t *
Parrot_vivify_p_pc_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, PREG(3));
+ PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2).u.key, PREG(3));
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
}
- VTABLE_set_pmc_keyed(interp, CONST(2)->u.key, PREG(3), PREG(1));
+ VTABLE_set_pmc_keyed(interp, CONST(2).u.key, PREG(3), PREG(1));
}
return (opcode_t *)cur_opcode + 5;}
@@ -24092,24 +24083,24 @@
opcode_t *
Parrot_vivify_p_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3)->u.key);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3).u.key);
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
}
- VTABLE_set_pmc_keyed(interp, PREG(2), CONST(3)->u.key, PREG(1));
+ VTABLE_set_pmc_keyed(interp, PREG(2), CONST(3).u.key, PREG(1));
}
return (opcode_t *)cur_opcode + 5;}
@@ -24117,24 +24108,24 @@
opcode_t *
Parrot_vivify_p_pc_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2).u.key, CONST(3).u.key);
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
}
- VTABLE_set_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key, PREG(1));
+ VTABLE_set_pmc_keyed(interp, CONST(2).u.key, CONST(3).u.key, PREG(1));
}
return (opcode_t *)cur_opcode + 5;}
@@ -24152,7 +24143,7 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
@@ -24167,7 +24158,7 @@
opcode_t *
Parrot_vivify_p_pc_i_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3));
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2).u.key, IREG(3));
if (PMC_IS_NULL(PREG(1))) {
PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
@@ -24177,14 +24168,14 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
}
- VTABLE_set_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3), PREG(1));
+ VTABLE_set_pmc_keyed_int(interp, CONST(2).u.key, IREG(3), PREG(1));
}
return (opcode_t *)cur_opcode + 5;}
@@ -24202,7 +24193,7 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
@@ -24217,7 +24208,7 @@
opcode_t *
Parrot_vivify_p_pc_ic_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3]);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2).u.key, cur_opcode[3]);
if (PMC_IS_NULL(PREG(1))) {
PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
@@ -24227,14 +24218,14 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
}
- VTABLE_set_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3], PREG(1));
+ VTABLE_set_pmc_keyed_int(interp, CONST(2).u.key, cur_opcode[3], PREG(1));
}
return (opcode_t *)cur_opcode + 5;}
@@ -24245,15 +24236,15 @@
PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), IREG(3));
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
@@ -24267,24 +24258,24 @@
opcode_t *
Parrot_vivify_p_pc_i_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3));
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2).u.key, IREG(3));
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
}
- VTABLE_set_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3), PREG(1));
+ VTABLE_set_pmc_keyed_int(interp, CONST(2).u.key, IREG(3), PREG(1));
}
return (opcode_t *)cur_opcode + 5;}
@@ -24295,15 +24286,15 @@
PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), cur_opcode[3]);
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
@@ -24317,24 +24308,24 @@
opcode_t *
Parrot_vivify_p_pc_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3]);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2).u.key, cur_opcode[3]);
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
}
- VTABLE_set_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3], PREG(1));
+ VTABLE_set_pmc_keyed_int(interp, CONST(2).u.key, cur_opcode[3], PREG(1));
}
return (opcode_t *)cur_opcode + 5;}
@@ -24352,7 +24343,7 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
@@ -24367,7 +24358,7 @@
opcode_t *
Parrot_vivify_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3));
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2).u.key, SREG(3));
if (PMC_IS_NULL(PREG(1))) {
PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
@@ -24377,14 +24368,14 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
}
- VTABLE_set_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3), PREG(1));
+ VTABLE_set_pmc_keyed_str(interp, CONST(2).u.key, SREG(3), PREG(1));
}
return (opcode_t *)cur_opcode + 5;}
@@ -24392,7 +24383,7 @@
opcode_t *
Parrot_vivify_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), CONST(3).u.string);
if (PMC_IS_NULL(PREG(1))) {
PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
@@ -24402,14 +24393,14 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
}
- VTABLE_set_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string, PREG(1));
+ VTABLE_set_pmc_keyed_str(interp, PREG(2), CONST(3).u.string, PREG(1));
}
return (opcode_t *)cur_opcode + 5;}
@@ -24417,7 +24408,7 @@
opcode_t *
Parrot_vivify_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2).u.key, CONST(3).u.string);
if (PMC_IS_NULL(PREG(1))) {
PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
@@ -24427,14 +24418,14 @@
const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
}
- VTABLE_set_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string, PREG(1));
+ VTABLE_set_pmc_keyed_str(interp, CONST(2).u.key, CONST(3).u.string, PREG(1));
}
return (opcode_t *)cur_opcode + 5;}
@@ -24445,15 +24436,15 @@
PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), SREG(3));
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
@@ -24467,24 +24458,24 @@
opcode_t *
Parrot_vivify_p_pc_s_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3));
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2).u.key, SREG(3));
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
}
- VTABLE_set_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3), PREG(1));
+ VTABLE_set_pmc_keyed_str(interp, CONST(2).u.key, SREG(3), PREG(1));
}
return (opcode_t *)cur_opcode + 5;}
@@ -24492,24 +24483,24 @@
opcode_t *
Parrot_vivify_p_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), CONST(3).u.string);
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
}
- VTABLE_set_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string, PREG(1));
+ VTABLE_set_pmc_keyed_str(interp, PREG(2), CONST(3).u.string, PREG(1));
}
return (opcode_t *)cur_opcode + 5;}
@@ -24517,24 +24508,24 @@
opcode_t *
Parrot_vivify_p_pc_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2).u.key, CONST(3).u.string);
if (PMC_IS_NULL(PREG(1))) {
- PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4).u.key);
if (!PMC_IS_NULL(classobj))
PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
else {
- const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4).u.key);
if (type <= 0) {
opcode_t *dest = Parrot_ex_throw_from_op_args(
- interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
- "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4).u.key));return (opcode_t *)dest;
}
PREG(1) = Parrot_pmc_new(interp, type);
}
- VTABLE_set_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string, PREG(1));
+ VTABLE_set_pmc_keyed_str(interp, CONST(2).u.key, CONST(3).u.string, PREG(1));
}
return (opcode_t *)cur_opcode + 5;}
@@ -24555,7 +24546,7 @@
else {
const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
- opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);return (opcode_t *)dest;
}
@@ -24567,7 +24558,7 @@
opcode_t *
Parrot_new_p_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- STRING * const name = CONST(2)->u.string;
+ STRING * const name = CONST(2).u.string;
PMC * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
? Parrot_oo_get_class_str(interp, name)
: PMCNULL;
@@ -24580,7 +24571,7 @@
else {
const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
- opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);return (opcode_t *)dest;
}
@@ -24605,7 +24596,7 @@
else {
const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
- opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);return (opcode_t *)dest;
}
@@ -24617,7 +24608,7 @@
opcode_t *
Parrot_new_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- STRING * const name = CONST(2)->u.string;
+ STRING * const name = CONST(2).u.string;
PMC * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
? Parrot_oo_get_class_str(interp, name)
: PMCNULL;
@@ -24630,7 +24621,7 @@
else {
const INTVAL type = Parrot_pmc_get_type_str(interp, name);
if (type <= 0) {
- opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", name);return (opcode_t *)dest;
}
@@ -24664,7 +24655,7 @@
/* it's a typo */
else {
- opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
}
@@ -24674,7 +24665,7 @@
opcode_t *
Parrot_new_p_pc_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const name_key = CONST(2)->u.key;
+ PMC * const name_key = CONST(2).u.key;
/* get_class() returns a PMCProxy for core types, so check for core PMCs */
const INTVAL type = Parrot_pmc_get_type(interp, name_key);
@@ -24696,7 +24687,7 @@
/* it's a typo */
else {
- opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
}
@@ -24728,7 +24719,7 @@
/* it's a typo */
else {
- opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
}
@@ -24738,7 +24729,7 @@
opcode_t *
Parrot_new_p_pc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const name_key = CONST(2)->u.key;
+ PMC * const name_key = CONST(2).u.key;
/* get_class() returns a PMCProxy for core types, so check for core PMCs */
const INTVAL type = Parrot_pmc_get_type(interp, name_key);
@@ -24760,7 +24751,7 @@
/* it's a typo */
else {
- opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
}
@@ -24778,7 +24769,7 @@
/* if it's clearly a PIR-level PMC */
if (type > enum_class_core_max) {
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, name_key);
PMC * const _class = Parrot_oo_get_class(interp, ns);
if (!PMC_IS_NULL(_class)) {
PMC *initial = Parrot_pmc_new(interp,
@@ -24794,7 +24785,7 @@
/* it's a typo */
else {
- opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
}
@@ -24804,7 +24795,7 @@
opcode_t *
Parrot_root_new_p_pc_i(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const name_key = CONST(2)->u.key;
+ PMC * const name_key = CONST(2).u.key;
/* get_class() returns a PMCProxy for core types, so check for core PMCs */
const INTVAL type = Parrot_pmc_get_type(interp, name_key);
@@ -24812,7 +24803,7 @@
/* if it's clearly a PIR-level PMC */
if (type > enum_class_core_max) {
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, name_key);
PMC * const _class = Parrot_oo_get_class(interp, ns);
if (!PMC_IS_NULL(_class)) {
PMC *initial = Parrot_pmc_new(interp,
@@ -24828,7 +24819,7 @@
/* it's a typo */
else {
- opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
}
@@ -24846,7 +24837,7 @@
/* if it's clearly a PIR-level PMC */
if (type > enum_class_core_max) {
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, name_key);
PMC * const _class = Parrot_oo_get_class(interp, ns);
if (!PMC_IS_NULL(_class)) {
PMC *initial = Parrot_pmc_new(interp,
@@ -24862,7 +24853,7 @@
/* it's a typo */
else {
- opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
}
@@ -24872,7 +24863,7 @@
opcode_t *
Parrot_root_new_p_pc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- PMC * const name_key = CONST(2)->u.key;
+ PMC * const name_key = CONST(2).u.key;
/* get_class() returns a PMCProxy for core types, so check for core PMCs */
const INTVAL type = Parrot_pmc_get_type(interp, name_key);
@@ -24880,7 +24871,7 @@
/* if it's clearly a PIR-level PMC */
if (type > enum_class_core_max) {
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, name_key);
PMC * const _class = Parrot_oo_get_class(interp, ns);
if (!PMC_IS_NULL(_class)) {
PMC *initial = Parrot_pmc_new(interp,
@@ -24896,7 +24887,7 @@
/* it's a typo */
else {
- opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
EXCEPTION_NO_CLASS,
"Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
}
@@ -24913,7 +24904,7 @@
Parrot_str_free_cstring(cstr);
IREG(1) = U_SUCCESS(err) ? (INTVAL) codepoint : -1;
#else
- opcode_t * const dest =cur_opcode + 3;
+ opcode_t * const dest = cur_opcode + 3;
Parrot_ex_throw_from_op_args(interp, dest, EXCEPTION_LIBRARY_ERROR,
"no ICU lib loaded");
#endif
@@ -24925,12 +24916,12 @@
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
#if PARROT_HAS_ICU
UErrorCode err = U_ZERO_ERROR;
- char * const cstr = Parrot_str_to_cstring(interp, CONST(2)->u.string);
+ char * const cstr = Parrot_str_to_cstring(interp, CONST(2).u.string);
UChar32 codepoint = u_charFromName(U_EXTENDED_CHAR_NAME, cstr, &err);
Parrot_str_free_cstring(cstr);
IREG(1) = U_SUCCESS(err) ? (INTVAL) codepoint : -1;
#else
- opcode_t * const dest =cur_opcode + 3;
+ opcode_t * const dest = cur_opcode + 3;
Parrot_ex_throw_from_op_args(interp, dest, EXCEPTION_LIBRARY_ERROR,
"no ICU lib loaded");
#endif
@@ -24941,7 +24932,7 @@
Parrot_finalize_p(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
/* Go to the next op after loop unrolling */
- opcode_t * const dest =cur_opcode + 2;
+ opcode_t * const dest = cur_opcode + 2;
PMC *eh = PMCNULL;
if (!PMC_IS_NULL(PREG(1))) {
/* If isa ExceptionHandler, use it. If isa Exception, get its active handler */
@@ -24980,15 +24971,15 @@
Parrot_finalize_pc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
/* Go to the next op after loop unrolling */
- opcode_t * const dest =cur_opcode + 2;
+ opcode_t * const dest = cur_opcode + 2;
PMC *eh = PMCNULL;
- if (!PMC_IS_NULL(CONST(1)->u.key)) {
+ if (!PMC_IS_NULL(CONST(1).u.key)) {
/* If isa ExceptionHandler, use it. If isa Exception, get its active handler */
- if (VTABLE_isa(interp, CONST(1)->u.key, Parrot_str_new_constant(interp, "ExceptionHandler")))
- eh = CONST(1)->u.key;
- else if (VTABLE_isa(interp, CONST(1)->u.key, Parrot_str_new_constant(interp, "Exception"))) {
+ if (VTABLE_isa(interp, CONST(1).u.key, Parrot_str_new_constant(interp, "ExceptionHandler")))
+ eh = CONST(1).u.key;
+ else if (VTABLE_isa(interp, CONST(1).u.key, Parrot_str_new_constant(interp, "Exception"))) {
PMC *iter = VTABLE_get_attr_str(interp,
- CONST(1)->u.key, Parrot_str_new_constant(interp, "handler_iter"));
+ CONST(1).u.key, Parrot_str_new_constant(interp, "handler_iter"));
if (!PMC_IS_NULL(iter))
eh = VTABLE_get_pmc_keyed_int(interp, iter, -1);
}
@@ -25026,7 +25017,7 @@
PARROT_FUNCTION_CORE, /* core_type = PARROT_XX_CORE */
0, /* flags */
2, /* major_version */
- 4, /* minor_version */
+ 6, /* minor_version */
0, /* patch_version */
1083, /* op_count */
core_op_info_table, /* op_info_table */
@@ -25075,7 +25066,10 @@
* returns >= 0 (found idx into info_table), -1 if not
*/
-static size_t hash_str(const char *str) {
+PARROT_PURE_FUNCTION
+static
+size_t hash_str(ARGIN(const char *str))
+{
size_t key = 0;
const char *s = str;
@@ -25087,7 +25081,8 @@
return key;
}
-static void store_op(PARROT_INTERP, op_info_t *info, int full) {
+static void store_op(PARROT_INTERP, op_info_t *info, int full)
+{
HOP * const p = mem_gc_allocate_zeroed_typed(interp, HOP);
const size_t hidx =
hash_str(full ? info->full_name : info->name) % OP_HASH_SIZE;
@@ -25096,7 +25091,9 @@
p->next = hop[hidx];
hop[hidx] = p;
}
-static int get_op(PARROT_INTERP, const char * name, int full) {
+
+static int get_op(PARROT_INTERP, const char * name, int full)
+{
const HOP * p;
const size_t hidx = hash_str(name) % OP_HASH_SIZE;
if (!hop) {
@@ -25109,7 +25106,9 @@
}
return -1;
}
-static void hop_init(PARROT_INTERP) {
+
+static void hop_init(PARROT_INTERP)
+{
size_t i;
op_info_t * const info = core_op_lib.op_info_table;
/* store full names */
@@ -25120,6 +25119,7 @@
if (get_op(interp, info[i].name, 0) == -1)
store_op(interp, info + i, 0);
}
+
static void hop_deinit(PARROT_INTERP)
{
if (hop) {
@@ -25137,7 +25137,7 @@
}
}
op_lib_t *
-Parrot_DynOp_core_2_4_0(PARROT_INTERP, long init) {
+Parrot_DynOp_core_2_6_0(PARROT_INTERP, long init) {
/* initialize and return op_lib ptr */
if (init == 1) {
@@ -25166,7 +25166,7 @@
{
PMC *const lib = Parrot_pmc_new(interp, enum_class_ParrotLibrary);
- ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) Parrot_DynOp_core_2_4_0;
+ ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) Parrot_DynOp_core_2_6_0;
dynop_register(interp, lib);
return lib;
}
Modified: branches/gc_massacre/src/ops/experimental.ops
==============================================================================
--- branches/gc_massacre/src/ops/experimental.ops Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/ops/experimental.ops Tue Aug 3 22:27:14 2010 (r48298)
@@ -325,7 +325,7 @@
/* if it's clearly a PIR-level PMC */
if (type > enum_class_core_max) {
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, name_key);
PMC * const _class = Parrot_oo_get_class(interp, ns);
if (!PMC_IS_NULL(_class)) {
PMC *initial = Parrot_pmc_new(interp,
Modified: branches/gc_massacre/src/ops/math.ops
==============================================================================
--- branches/gc_massacre/src/ops/math.ops Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/ops/math.ops Tue Aug 3 22:27:14 2010 (r48298)
@@ -299,7 +299,7 @@
goto ADDRESS(handler);
}
- f = floor($1 / den);
+ f = floor(((FLOATVAL)$1) / den);
$1 = (INTVAL)f;
}
@@ -337,7 +337,7 @@
goto ADDRESS(handler);
}
- f = floor($2 / den);
+ f = floor((FLOATVAL)$2 / den);
$1 = (INTVAL)f;
}
Modified: branches/gc_massacre/src/ops/object.ops
==============================================================================
--- branches/gc_massacre/src/ops/object.ops Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/ops/object.ops Tue Aug 3 22:27:14 2010 (r48298)
@@ -56,12 +56,19 @@
PMC * const method_pmc = VTABLE_find_method(interp, object, meth);
opcode_t *dest = NULL;
- PMC * const signature = Parrot_pcc_get_signature(interp,
- CURRENT_CONTEXT(interp));
Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
- if (PMC_IS_NULL(method_pmc)) {
+ if (!PMC_IS_NULL(method_pmc)) {
+ PMC * const signature = Parrot_pcc_get_signature(interp,
+ CURRENT_CONTEXT(interp));
+ if (!PMC_IS_NULL(signature))
+ Parrot_pcc_set_object(interp, signature, object);
+
+ interp->current_cont = NEED_CONTINUATION;
+ dest = VTABLE_invoke(interp, method_pmc, next);
+ }
+ else {
PMC * const _class = VTABLE_get_class(interp, object);
if (PMC_IS_NULL(_class)) {
dest = Parrot_ex_throw_from_op_args(interp, next,
@@ -75,12 +82,7 @@
VTABLE_get_string(interp, _class));
}
}
- else {
- if (!PMC_IS_NULL(signature))
- Parrot_pcc_set_object(interp, signature, object);
- interp->current_cont = NEED_CONTINUATION;
- dest = VTABLE_invoke(interp, method_pmc, next);
- }
+
goto ADDRESS(dest);
}
Modified: branches/gc_massacre/src/ops/pmc.ops
==============================================================================
--- branches/gc_massacre/src/ops/pmc.ops Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/ops/pmc.ops Tue Aug 3 22:27:14 2010 (r48298)
@@ -146,7 +146,7 @@
op root_new(out PMC, in PMC) {
PMC * const key = $2;
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, key);
PMC * classobj = PMCNULL;
if (!PMC_IS_NULL(ns))
@@ -164,7 +164,7 @@
op root_new(out PMC, in PMC, in PMC) {
PMC * const key = $2;
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, key);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, key);
PMC * classobj = PMCNULL;
if (!PMC_IS_NULL(ns))
Modified: branches/gc_massacre/src/ops/var.ops
==============================================================================
--- branches/gc_massacre/src/ops/var.ops Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/ops/var.ops Tue Aug 3 22:27:14 2010 (r48298)
@@ -192,7 +192,7 @@
op get_namespace(out PMC, in PMC) {
PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
- PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, $2);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, cur_ns, $2);
$1 = PMC_IS_NULL(ns) ? PMCNULL : ns;
}
@@ -219,7 +219,7 @@
if (PMC_IS_NULL(hll_ns))
$1 = PMCNULL;
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, $2);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, $2);
$1 = ns;
}
}
@@ -245,7 +245,7 @@
if (PMC_IS_NULL(root_ns))
$1 = PMCNULL;
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, $2);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, $2);
$1 = ns;
}
}
@@ -275,7 +275,7 @@
op get_global(out PMC, in STR) {
PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
- $1 = Parrot_find_global_op(interp, cur_ns, $2, expr NEXT());
+ $1 = Parrot_ns_find_global_from_op(interp, cur_ns, $2, expr NEXT());
}
op get_global(out PMC, in PMC, in STR) {
@@ -284,11 +284,11 @@
$1 = PMCNULL;
}
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, $2);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, cur_ns, $2);
if (PMC_IS_NULL(ns))
$1 = PMCNULL;
else
- $1 = Parrot_find_global_op(interp, ns, $3, expr NEXT());
+ $1 = Parrot_ns_find_global_from_op(interp, ns, $3, expr NEXT());
}
}
@@ -307,7 +307,7 @@
op get_hll_global(out PMC, in STR) {
PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
- $1 = Parrot_find_global_op(interp, hll_ns, $2, expr NEXT());
+ $1 = Parrot_ns_find_global_from_op(interp, hll_ns, $2, expr NEXT());
}
op get_hll_global(out PMC, in PMC, in STR) {
@@ -316,11 +316,11 @@
$1 = hll_ns;
}
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, $2);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, $2);
if (PMC_IS_NULL(ns))
$1 = PMCNULL;
else
- $1 = Parrot_find_global_op(interp, ns, $3, expr NEXT());
+ $1 = Parrot_ns_find_global_from_op(interp, ns, $3, expr NEXT());
}
}
@@ -339,7 +339,7 @@
op get_root_global(out PMC, in STR) {
PMC * const root_ns = interp->root_namespace;
- $1 = Parrot_find_global_op(interp, root_ns, $2, expr NEXT());
+ $1 = Parrot_ns_find_global_from_op(interp, root_ns, $2, expr NEXT());
}
op get_root_global(out PMC, in PMC, in STR) {
@@ -347,11 +347,11 @@
if (PMC_IS_NULL(root_ns))
$1 = PMCNULL;
else {
- PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, $2);
+ PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, $2);
if (PMC_IS_NULL(ns))
$1 = PMCNULL;
else
- $1 = Parrot_find_global_op(interp, ns, $3, expr NEXT());
+ $1 = Parrot_ns_find_global_from_op(interp, ns, $3, expr NEXT());
}
}
@@ -379,14 +379,14 @@
op set_global(in STR, invar PMC) {
PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
- Parrot_set_global(interp, cur_ns, $1, $2);
+ Parrot_ns_set_global(interp, cur_ns, $1, $2);
}
op set_global(in PMC, in STR, invar PMC) {
PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
- PMC * const ns = Parrot_make_namespace_keyed(interp, cur_ns, $1);
+ PMC * const ns = Parrot_ns_make_namespace_keyed(interp, cur_ns, $1);
- Parrot_set_global(interp, ns, $2, $3);
+ Parrot_ns_set_global(interp, ns, $2, $3);
}
=item B<set_hll_global>(in STR, invar PMC)
@@ -403,14 +403,14 @@
op set_hll_global(in STR, invar PMC) {
PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
- Parrot_set_global(interp, hll_ns, $1, $2);
+ Parrot_ns_set_global(interp, hll_ns, $1, $2);
}
op set_hll_global(in PMC, in STR, invar PMC) {
PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
- PMC * const ns = Parrot_make_namespace_keyed(interp, hll_ns, $1);
+ PMC * const ns = Parrot_ns_make_namespace_keyed(interp, hll_ns, $1);
- Parrot_set_global(interp, ns, $2, $3);
+ Parrot_ns_set_global(interp, ns, $2, $3);
}
=item B<set_root_global>(in STR, invar PMC)
@@ -427,14 +427,14 @@
op set_root_global(in STR, invar PMC) {
PMC * const root_ns = interp->root_namespace;
- Parrot_set_global(interp, root_ns, $1, $2);
+ Parrot_ns_set_global(interp, root_ns, $1, $2);
}
op set_root_global(in PMC, in STR, invar PMC) {
PMC * const root_ns = interp->root_namespace;
- PMC * const ns = Parrot_make_namespace_keyed(interp, root_ns, $1);
+ PMC * const ns = Parrot_ns_make_namespace_keyed(interp, root_ns, $1);
- Parrot_set_global(interp, ns, $2, $3);
+ Parrot_ns_set_global(interp, ns, $2, $3);
}
=back
@@ -470,7 +470,7 @@
goto ADDRESS(handler);
}
- $1 = Parrot_find_name_op(interp, $2, expr NEXT());
+ $1 = Parrot_ns_find_named_item(interp, $2, expr NEXT());
}
=item B<find_sub_not_null>(out PMC, in STR)
@@ -482,7 +482,7 @@
inline op find_sub_not_null(out PMC, in STR) :base_core {
opcode_t *dest = expr NEXT();
- PMC *sub = Parrot_find_name_op(interp, $2, dest);
+ PMC *sub = Parrot_ns_find_named_item(interp, $2, dest);
if (PMC_IS_NULL(sub)) {
opcode_t *handler;
Modified: branches/gc_massacre/src/packdump.c
==============================================================================
--- branches/gc_massacre/src/packdump.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/packdump.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -68,8 +68,8 @@
opcode_t i;
for (i = 0; i < self->const_count; ++i) {
- Parrot_io_printf(interp, " # %ld:\n", (long)i);
- PackFile_Constant_dump(interp, self, self->constants[i]);
+ Parrot_io_printf(interp, " # %x:\n", (long)i);
+ PackFile_Constant_dump(interp, self, &self->constants[i]);
}
}
@@ -209,7 +209,7 @@
Parrot_io_printf(interp, " TYPE => NUMBER\n");
ct_index = PackFile_find_in_const(interp, ct, key, PFC_NUMBER);
Parrot_io_printf(interp, " PFC_OFFSET => %ld\n", ct_index);
- detail = ct->constants[ct_index];
+ detail = &ct->constants[ct_index];
Parrot_io_printf(interp, " DATA => %ld\n", detail->u.number);
Parrot_io_printf(interp, " },\n");
}
@@ -222,7 +222,7 @@
Parrot_io_printf(interp, " TYPE => STRING\n");
ct_index = PackFile_find_in_const(interp, ct, key, PFC_STRING);
Parrot_io_printf(interp, " PFC_OFFSET => %ld\n", ct_index);
- detail = ct->constants[ct_index];
+ detail = &ct->constants[ct_index];
Parrot_io_printf(interp, " DATA => '%Ss'\n",
detail->u.string);
Parrot_io_printf(interp, " },\n");
Modified: branches/gc_massacre/src/packfile.c
==============================================================================
--- branches/gc_massacre/src/packfile.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/packfile.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -53,12 +53,13 @@
SHIM(int add))
__attribute__nonnull__(1);
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static PackFile_Constant * clone_constant(PARROT_INTERP,
- ARGIN(PackFile_Constant *old_const))
+static void clone_constant(PARROT_INTERP,
+ ARGIN(PackFile_Constant *old_const),
+ ARGMOD(PackFile_Constant *new_const))
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*new_const);
static void compile_or_load_file(PARROT_INTERP,
ARGIN(STRING *path),
@@ -186,7 +187,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-static PackFile_Constant ** find_constants(PARROT_INTERP,
+static PackFile_Constant * find_constants(PARROT_INTERP,
ARGIN(PackFile_ConstTable *ct))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -354,7 +355,8 @@
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_clone_constant __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(old_const))
+ , PARROT_ASSERT_ARG(old_const) \
+ , PARROT_ASSERT_ARG(new_const))
#define ASSERT_ARGS_compile_or_load_file __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(path))
@@ -698,7 +700,7 @@
Parrot_pcc_set_constants(interp, CURRENT_CONTEXT(interp),
interp->code->const_table->constants);
- Parrot_pcc_invoke_sub_from_c_args(interp, sub_pmc, "->P", &retval);
+ Parrot_ext_call(interp, sub_pmc, "->P", &retval);
interp->run_core = old_core;
return retval;
@@ -815,22 +817,24 @@
mark_1_seg(PARROT_INTERP, ARGMOD(PackFile_ConstTable *ct))
{
ASSERT_ARGS(mark_1_seg)
- PackFile_Constant ** const constants = find_constants(interp, ct);
+ PackFile_Constant * const constants = find_constants(interp, ct);
opcode_t i;
for (i = 0; i < ct->const_count; ++i) {
- PMC * pmc;
- STRING * string;
- switch (constants[i]->type) {
+ switch (constants[i].type) {
case PFC_PMC:
case PFC_KEY:
- pmc = constants[i]->u.key;
+ {
+ PMC * const pmc = constants[i].u.key;
Parrot_gc_mark_PMC_alive(interp, pmc);
break;
+ }
case PFC_STRING:
- string = constants[i]->u.string;
+ {
+ STRING * const string = constants[i].u.string;
Parrot_gc_mark_STRING_alive(interp, string);
break;
+ }
default:
/* Do nothing. */
break;
@@ -856,6 +860,9 @@
ARGIN_NULLOK(void *user_data))
{
ASSERT_ARGS(find_const_iter)
+
+ Parrot_gc_mark_STRING_alive(interp, seg->name);
+
if (seg->type == PF_DIR_SEG)
PackFile_map_segments(interp, (const PackFile_Directory *)seg,
find_const_iter, user_data);
@@ -881,18 +888,18 @@
mark_const_subs(PARROT_INTERP)
{
ASSERT_ARGS(mark_const_subs)
- PackFile_Directory *dir;
PackFile * const self = interp->initial_pf;
if (!self)
return;
+ else {
+ /* locate top level dir */
+ PackFile_Directory * const dir = &self->directory;
- /* locate top level dir */
- dir = &self->directory;
-
- /* iterate over all dir/segs */
- PackFile_map_segments(interp, dir, find_const_iter, NULL);
+ /* iterate over all dir/segs */
+ PackFile_map_segments(interp, dir, find_const_iter, NULL);
+ }
}
@@ -942,7 +949,7 @@
Parrot_ex_throw_from_c_args(interp, NULL, 1,
"Illegal fixup offset (%d) in enum_fixup_sub");
- sub_pmc = ct->constants[ci]->u.key;
+ sub_pmc = ct->constants[ci].u.key;
PMC_get_sub(interp, sub_pmc, sub);
sub->eval_pmc = eval_pmc;
@@ -955,7 +962,7 @@
/* replace Sub PMC with computation results */
if (action == PBC_IMMEDIATE && !PMC_IS_NULL(result)) {
ft->fixups[i].type = enum_fixup_none;
- ct->constants[ci]->u.key = result;
+ ct->constants[ci].u.key = result;
}
}
@@ -2813,7 +2820,7 @@
Parrot_io_printf(interp, " OFFSET => %d,\n",
debug->mappings[i].offset);
Parrot_io_printf(interp, " FILENAME => %Ss\n",
- PF_CONST(debug->code, debug->mappings[i].filename)->u.string);
+ PF_CONST(debug->code, debug->mappings[i].filename).u.string);
Parrot_io_printf(interp, " ],\n");
}
@@ -2898,9 +2905,9 @@
if (debug->num_mappings) {
prev_filename_n = debug->mappings[debug->num_mappings-1].filename;
filename_pstr = Parrot_str_new(interp, filename, 0);
- if (ct->constants[prev_filename_n]->type == PFC_STRING &&
+ if (ct->constants[prev_filename_n].type == PFC_STRING &&
Parrot_str_equal(interp, filename_pstr,
- ct->constants[prev_filename_n]->u.string)) {
+ ct->constants[prev_filename_n].u.string)) {
return;
}
}
@@ -2941,8 +2948,8 @@
/* Check if there is already a constant with this filename */
for (i= 0; i < count; ++i) {
- if (ct->constants[i]->type == PFC_STRING &&
- Parrot_str_equal(interp, namestr, ct->constants[i]->u.string))
+ if (ct->constants[i].type == PFC_STRING &&
+ Parrot_str_equal(interp, namestr, ct->constants[i].u.string))
break;
}
if (i < count) {
@@ -2954,14 +2961,13 @@
PackFile_Constant *fnconst;
ct->const_count = ct->const_count + 1;
ct->constants = mem_gc_realloc_n_typed_zeroed(interp, ct->constants,
- ct->const_count, ct->const_count - 1, PackFile_Constant *);
+ ct->const_count, ct->const_count - 1, PackFile_Constant);
- fnconst = PackFile_Constant_new(interp);
+ fnconst = &ct->constants[ct->const_count - 1];
fnconst->type = PFC_STRING;
fnconst->u.string = Parrot_str_new_init(interp, filename, strlen(filename),
PARROT_DEFAULT_ENCODING, PARROT_DEFAULT_CHARSET,
PObj_constant_FLAG);
- ct->constants[ct->const_count - 1] = fnconst;
}
/* Set the mapped value */
@@ -3001,7 +3007,7 @@
|| (debug->mappings[i].offset <= pc
&& debug->mappings[i + 1].offset > pc))
return PF_CONST(debug->code,
- debug->mappings[i].filename)->u.string;
+ debug->mappings[i].filename).u.string;
}
/* Otherwise, no mappings == no filename. */
@@ -3094,8 +3100,8 @@
/*
-=item C<static PackFile_Constant * clone_constant(PARROT_INTERP,
-PackFile_Constant *old_const)>
+=item C<static void clone_constant(PARROT_INTERP, PackFile_Constant *old_const,
+PackFile_Constant *new_const)>
Clones a constant (at least, if it's a Sub PMC), returning the clone.
@@ -3103,22 +3109,20 @@
*/
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static PackFile_Constant *
-clone_constant(PARROT_INTERP, ARGIN(PackFile_Constant *old_const))
+static void
+clone_constant(PARROT_INTERP, ARGIN(PackFile_Constant *old_const),
+ARGMOD(PackFile_Constant *new_const))
{
ASSERT_ARGS(clone_constant)
STRING * const _sub = CONST_STRING(interp, "Sub");
+ memcpy(new_const, old_const, sizeof (PackFile_Constant));
+
if (old_const->type == PFC_PMC
&& VTABLE_isa(interp, old_const->u.key, _sub)) {
- PMC *old_sub_pmc, *new_sub_pmc;
+ PMC *old_sub_pmc, *new_sub_pmc;
Parrot_Sub_attributes *old_sub, *new_sub;
- PackFile_Constant * const ret = mem_gc_allocate_zeroed_typed(interp,
- PackFile_Constant);
- ret->type = old_const->type;
old_sub_pmc = old_const->u.key;
new_sub_pmc = Parrot_thaw_constants(interp, Parrot_freeze(interp, old_sub_pmc));
@@ -3129,20 +3133,16 @@
/* Vtable overrides and methods were already cloned, so don't reclone them. */
if (new_sub->vtable_index == -1
&& !(old_sub->comp_flags & SUB_COMP_FLAG_METHOD))
- Parrot_store_sub_in_namespace(interp, new_sub_pmc);
+ Parrot_ns_store_sub(interp, new_sub_pmc);
- ret->u.key = new_sub_pmc;
-
- return ret;
+ new_const->u.key = new_sub_pmc;
}
-
- return old_const;
}
/*
-=item C<static PackFile_Constant ** find_constants(PARROT_INTERP,
+=item C<static PackFile_Constant * find_constants(PARROT_INTERP,
PackFile_ConstTable *ct)>
Finds the constant table associated with a thread. For now, we need to copy
@@ -3155,7 +3155,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-static PackFile_Constant **
+static PackFile_Constant *
find_constants(PARROT_INTERP, ARGIN(PackFile_ConstTable *ct))
{
ASSERT_ARGS(find_constants)
@@ -3165,7 +3165,7 @@
return ct->constants;
else {
Hash *tables;
- PackFile_Constant **new_consts;
+ PackFile_Constant *new_consts;
PARROT_ASSERT(interp->thread_data);
@@ -3174,19 +3174,19 @@
}
tables = interp->thread_data->const_tables;
- new_consts = (PackFile_Constant **)parrot_hash_get(interp, tables, ct);
+ new_consts = (PackFile_Constant *)parrot_hash_get(interp, tables, ct);
if (!new_consts) {
/* need to construct it */
- PackFile_Constant ** const old_consts = ct->constants;
- INTVAL const num_consts = ct->const_count;
- INTVAL i;
+ PackFile_Constant * const old_consts = ct->constants;
+ INTVAL const num_consts = ct->const_count;
+ INTVAL i;
new_consts = mem_gc_allocate_n_zeroed_typed(interp,
- num_consts, PackFile_Constant *);
+ num_consts, PackFile_Constant);
for (i = 0; i < num_consts; ++i)
- new_consts[i] = clone_constant(interp, old_consts[i]);
+ clone_constant(interp, &old_consts[i], &new_consts[i]);
parrot_hash_put(interp, tables, ct, new_consts);
}
@@ -3223,21 +3223,16 @@
return;
for (i = 0; i <= hash->mask; ++i) {
- HashBucket *bucket = hash->bi[i];
+ HashBucket *bucket = hash->bucket_indices[i];
while (bucket) {
PackFile_ConstTable * const table =
(PackFile_ConstTable *)bucket->key;
- PackFile_Constant ** const orig_consts = table->constants;
- PackFile_Constant ** const consts =
- (PackFile_Constant **) bucket->value;
+ PackFile_Constant * const orig_consts = table->constants;
+ PackFile_Constant * const consts =
+ (PackFile_Constant *) bucket->value;
INTVAL j;
- for (j = 0; j < table->const_count; ++j) {
- if (consts[j] != orig_consts[j])
- mem_gc_free(interp, consts[j]);
- }
-
mem_gc_free(interp, consts);
bucket = bucket->next;
}
@@ -3313,7 +3308,8 @@
=item C<static size_t fixup_packed_size(PARROT_INTERP, PackFile_Segment *self)>
-I<What does this do?>
+Calculates the size, in multiples of C<opcode_t>, required to store the
+passed C<PackFile_FixupTable> in bytecode.
=cut
@@ -3658,11 +3654,6 @@
ASSERT_ARGS(PackFile_ConstTable_clear)
opcode_t i;
- for (i = 0; i < self->const_count; ++i) {
- PackFile_Constant_destroy(interp, self->constants[i]);
- self->constants[i] = NULL;
- }
-
if (self->constants) {
mem_gc_free(interp, self->constants);
self->constants = NULL;
@@ -3713,7 +3704,7 @@
return cursor;
self->constants = mem_gc_allocate_n_zeroed_typed(interp, self->const_count,
- PackFile_Constant *);
+ PackFile_Constant);
if (!self->constants) {
Parrot_io_eprintf(interp,
@@ -3725,9 +3716,8 @@
for (i = 0; i < self->const_count; ++i) {
TRACE_PRINTF(("PackFile_ConstTable_unpack(): Unpacking constant %ld/%ld\n",
i, self->const_count));
- self->constants[i] = PackFile_Constant_new(interp);
- cursor = PackFile_Constant_unpack(interp, self, self->constants[i],
+ cursor = PackFile_Constant_unpack(interp, self, &self->constants[i],
cursor);
}
@@ -3780,61 +3770,6 @@
/*
-=back
-
-=head2 PackFile Constant Structure Functions
-
-=over 4
-
-=item C<PackFile_Constant * PackFile_Constant_new(PARROT_INTERP)>
-
-Allocates a new empty PackFile Constant.
-
-This is only here so we can make a new one and then do an unpack.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_MALLOC
-PARROT_CANNOT_RETURN_NULL
-PackFile_Constant *
-PackFile_Constant_new(PARROT_INTERP)
-{
- ASSERT_ARGS(PackFile_Constant_new)
- PackFile_Constant * const self = mem_gc_allocate_typed(interp,
- PackFile_Constant);
-
- self->type = PFC_NONE;
-
- return self;
-}
-
-
-/*
-
-=item C<void PackFile_Constant_destroy(PARROT_INTERP, PackFile_Constant *self)>
-
-Deletes the C<PackFile_Constant> C<self>.
-
-Don't delete C<PMC>s or C<STRING>s. The GC will claim them.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-PackFile_Constant_destroy(PARROT_INTERP, ARGMOD_NULLOK(PackFile_Constant *self))
-{
- ASSERT_ARGS(PackFile_Constant_destroy)
- mem_gc_free(interp, self);
-}
-
-
-/*
-
=item C<size_t PackFile_Constant_pack_size(PARROT_INTERP, const
PackFile_Constant *self, const PackFile_ConstTable *ct)>
@@ -3987,7 +3922,7 @@
/* finally place the sub into some namespace stash
* XXX place this code in Sub.thaw ? */
if (VTABLE_isa(interp, pmc, _sub))
- Parrot_store_sub_in_namespace(interp, pmc);
+ Parrot_ns_store_sub(interp, pmc);
/* restore code */
interp->code = cs_save;
@@ -4045,10 +3980,10 @@
key_set_integer(interp, tail, op);
break;
case PARROT_ARG_NC:
- key_set_number(interp, tail, constt->constants[op]->u.number);
+ key_set_number(interp, tail, constt->constants[op].u.number);
break;
case PARROT_ARG_SC:
- key_set_string(interp, tail, constt->constants[op]->u.string);
+ key_set_string(interp, tail, constt->constants[op].u.string);
break;
case PARROT_ARG_I:
key_set_register(interp, tail, op, KEY_integer_FLAG);
@@ -4323,7 +4258,7 @@
const PackFile_Annotations_Key * const key = self->keys + i;
Parrot_io_printf(interp, " #%d\n [\n", i);
Parrot_io_printf(interp, " NAME => %Ss\n",
- PF_CONST(self->code, key->name)->u.string);
+ PF_CONST(self->code, key->name).u.string);
Parrot_io_printf(interp, " TYPE => %s\n",
key->type == PF_ANNOTATION_KEY_TYPE_INT ? "integer" :
key->type == PF_ANNOTATION_KEY_TYPE_STR ? "string" :
@@ -4428,12 +4363,12 @@
{
ASSERT_ARGS(PackFile_Annotations_add_entry)
/* See if we already have this key. */
- STRING * const key_name = PF_CONST(self->code, key)->u.string;
+ STRING * const key_name = PF_CONST(self->code, key).u.string;
opcode_t key_id = -1;
INTVAL i;
for (i = 0; i < self->num_keys; ++i) {
- STRING * const test_key = PF_CONST(self->code, self->keys[i].name)->u.string;
+ STRING * const test_key = PF_CONST(self->code, self->keys[i].name).u.string;
if (Parrot_str_equal(interp, test_key, key_name)) {
key_id = i;
break;
@@ -4508,12 +4443,12 @@
case PF_ANNOTATION_KEY_TYPE_NUM:
result = Parrot_pmc_new(interp, enum_class_Float);
VTABLE_set_number_native(interp, result,
- PF_CONST(self->code, value)->u.number);
+ PF_CONST(self->code, value).u.number);
break;
default:
result = Parrot_pmc_new(interp, enum_class_String);
VTABLE_set_string_native(interp, result,
- PF_CONST(self->code, value)->u.string);
+ PF_CONST(self->code, value).u.string);
}
return result;
@@ -4550,7 +4485,7 @@
if (!STRING_IS_NULL(key)) {
for (i = 0; i < self->num_keys; ++i) {
- STRING * const test_key = PF_CONST(self->code, self->keys[i].name)->u.string;
+ STRING * const test_key = PF_CONST(self->code, self->keys[i].name).u.string;
if (Parrot_str_equal(interp, test_key, key)) {
key_id = i;
break;
@@ -4589,7 +4524,7 @@
for (i = 0; i < self->num_keys; ++i) {
if (have_values[i]) {
- STRING * const key_name = PF_CONST(self->code, self->keys[i].name)->u.string;
+ STRING * const key_name = PF_CONST(self->code, self->keys[i].name).u.string;
VTABLE_set_pmc_keyed_str(interp, result, key_name,
make_annotation_value_pmc(interp, self, self->keys[i].type,
latest_values[i]));
Modified: branches/gc_massacre/src/packfile/pf_items.c
==============================================================================
--- branches/gc_massacre/src/packfile/pf_items.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/packfile/pf_items.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -1018,20 +1018,18 @@
XXX assumes C<sizeof (INTVAL) == sizeof (opcode_t)> - we don't have
C<INTVAL> size in the PackFile header.
-When used for freeze/thaw the C<pf> argument might be NULL.
-
=cut
*/
PARROT_WARN_UNUSED_RESULT
INTVAL
-PF_fetch_integer(ARGIN_NULLOK(PackFile *pf), ARGIN(const opcode_t **stream))
+PF_fetch_integer(ARGIN(PackFile *pf), ARGIN(const opcode_t **stream))
{
ASSERT_ARGS(PF_fetch_integer)
INTVAL i;
- if (!pf || pf->fetch_iv == NULL)
+ if (!pf->fetch_iv)
return *(*stream)++;
i = (pf->fetch_iv)(*((const unsigned char **)stream));
TRACE_PRINTF_VAL((" PF_fetch_integer: 0x%x (%d) at 0x%x\n", i, i,
Modified: branches/gc_massacre/src/packout.c
==============================================================================
--- branches/gc_massacre/src/packout.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/packout.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -166,7 +166,7 @@
for (i = 0; i < n_constants; ++i) {
/* only constants up to the current one will be valid on unpack */
self->const_count = i;
- size += PackFile_Constant_pack_size(interp, self->constants[i], self);
+ size += PackFile_Constant_pack_size(interp, &self->constants[i], self);
}
self->const_count = i;
@@ -208,7 +208,7 @@
for (i = 0; i < n_constants; ++i) {
/* only constants up to the current one will be valid on unpack */
self->const_count = i;
- cursor = PackFile_Constant_pack(interp, self, self->constants[i], cursor);
+ cursor = PackFile_Constant_pack(interp, self, &self->constants[i], cursor);
}
self->const_count = n_constants;
@@ -283,7 +283,7 @@
}
for (i = 0; i < ct->const_count; ++i) {
- PackFile_Constant *constant = ct->constants[i];
+ PackFile_Constant *constant = &ct->constants[i];
switch (type) {
case PFC_STRING:
Modified: branches/gc_massacre/src/pbc_merge.c
==============================================================================
--- branches/gc_massacre/src/pbc_merge.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pbc_merge.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -374,7 +374,7 @@
ARGMOD(PackFile_ByteCode *bc))
{
ASSERT_ARGS(pbc_merge_constants)
- PackFile_Constant **constants = mem_gc_allocate_typed(interp, PackFile_Constant *);
+ PackFile_Constant *constants = mem_gc_allocate_typed(interp, PackFile_Constant);
opcode_t cursor = 0;
opcode_t output_const_num = 0;
@@ -411,14 +411,13 @@
/* Allocate space for the constant list, provided we have some. */
if (in_seg->const_count > 0)
constants = mem_gc_realloc_n_typed(interp, constants,
- cursor + in_seg->const_count, PackFile_Constant*);
+ cursor + in_seg->const_count, PackFile_Constant);
/* Loop over the constants and copy them to the output PBC. */
for (j = 0; j < in_seg->const_count; ++j) {
- /* Get the entry and allocate space for copy. */
- PackFile_Constant *cur_entry = in_seg->constants[j];
- PackFile_Constant *copy = mem_gc_allocate_typed(interp,
- PackFile_Constant);
+ /* Get the entry and the copy. */
+ PackFile_Constant *cur_entry = &in_seg->constants[j];
+ PackFile_Constant *copy = &constants[cursor];
STRUCT_COPY(copy, cur_entry);
/* If it's a sub PMC, need to deal with offsets. */
@@ -442,8 +441,6 @@
++input_const_num;
++output_const_num;
- /* Slot it into the list. */
- constants[cursor] = copy;
++cursor;
}
}
@@ -677,7 +674,7 @@
op_num == PARROT_OP_get_params_pc ||
op_num == PARROT_OP_set_returns_pc) {
/* Get the signature. */
- PMC * const sig = bc->const_table->constants[op_ptr[1]]->u.key;
+ PMC * const sig = bc->const_table->constants[op_ptr[1]].u.key;
/* Loop over the arguments to locate any that need a fixup. */
const int sig_items = VTABLE_elements(interp, sig);
Modified: branches/gc_massacre/src/pmc/arrayiterator.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/arrayiterator.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/arrayiterator.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -43,7 +43,7 @@
TODO: Discuss idea of having separate get_iter/get_reverse_iter VTABLEs
to avoid this caveat.
-=head1 Methods
+=head1 Vtable functions
=over 4
@@ -53,6 +53,15 @@
/* HEADERIZER HFILE: none */
/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+PARROT_DOES_NOT_RETURN
+static void out_of_bounds(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_out_of_bounds __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
pmclass ArrayIterator extends Iterator no_ro auto_attrs {
@@ -199,24 +208,25 @@
VTABLE void set_integer_native(INTVAL value) {
PMC *array;
+ INTVAL element;
+ GET_ATTR_array(INTERP, SELF, array);
+ element = VTABLE_elements(INTERP, array);
- if (value == ITERATE_FROM_START) {
- GET_ATTR_array(INTERP, SELF, array);
+ switch (value) {
+ case ITERATE_FROM_START:
SET_ATTR_reverse(INTERP, SELF, 0);
SET_ATTR_pos(INTERP, SELF, 0);
- SET_ATTR_length(INTERP, SELF, VTABLE_elements(INTERP, array));
- }
- else if (value == ITERATE_FROM_END) {
- INTVAL element;
- GET_ATTR_array(INTERP, SELF, array);
- element = VTABLE_elements(INTERP, array);
+ SET_ATTR_length(INTERP, SELF, element);
+ break;
+ case ITERATE_FROM_END:
SET_ATTR_reverse(INTERP, SELF, 1);
SET_ATTR_length(INTERP, SELF, element);
SET_ATTR_pos(INTERP, SELF, element);
- }
- else
+ break;
+ default:
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
"Wrong direction for ArrayIterator");
+ }
}
/*
@@ -254,8 +264,7 @@
GET_ATTR_length(INTERP, SELF, length);
if (pos >= length)
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "StopIteration");
+ out_of_bounds(INTERP);
GET_ATTR_array(INTERP, SELF, array);
SET_ATTR_pos(INTERP, SELF, pos+1);
@@ -278,8 +287,7 @@
GET_ATTR_pos(INTERP, SELF, pos);
if (!STATICSELF.get_bool())
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "StopIteration");
+ out_of_bounds(INTERP);
GET_ATTR_array(INTERP, SELF, array);
SET_ATTR_pos(INTERP, SELF, pos+1);
@@ -303,8 +311,7 @@
GET_ATTR_pos(INTERP, SELF, pos);
if (!STATICSELF.get_bool())
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "StopIteration");
+ out_of_bounds(INTERP);
GET_ATTR_array(INTERP, SELF, array);
SET_ATTR_pos(INTERP, SELF, pos+1);
@@ -331,8 +338,7 @@
if (!STATICSELF.get_bool())
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "StopIteration");
+ out_of_bounds(INTERP);
GET_ATTR_array(INTERP, SELF, array);
SET_ATTR_pos(INTERP, SELF, pos+1);
@@ -360,8 +366,7 @@
if (!STATICSELF.get_bool())
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "StopIteration");
+ out_of_bounds(INTERP);
GET_ATTR_array(INTERP, SELF, array);
SET_ATTR_pos(INTERP, SELF, --pos);
@@ -384,8 +389,7 @@
GET_ATTR_pos(INTERP, SELF, pos);
if (!STATICSELF.get_bool())
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "StopIteration");
+ out_of_bounds(INTERP);
GET_ATTR_array(INTERP, SELF, array);
SET_ATTR_pos(INTERP, SELF, --pos);
@@ -409,8 +413,7 @@
GET_ATTR_pos(INTERP, SELF, pos);
if (!STATICSELF.get_bool())
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "StopIteration");
+ out_of_bounds(INTERP);
GET_ATTR_array(INTERP, SELF, array);
SET_ATTR_pos(INTERP, SELF, --pos);
@@ -436,8 +439,7 @@
GET_ATTR_pos(INTERP, SELF, pos);
if (!STATICSELF.get_bool())
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "StopIteration");
+ out_of_bounds(INTERP);
GET_ATTR_array(INTERP, SELF, array);
SET_ATTR_pos(INTERP, SELF, --pos);
@@ -646,6 +648,32 @@
}
}
+
+/*
+
+=back
+
+=head1 Auxiliar functions
+
+=over 4
+
+=item C<static void out_of_bounds(PARROT_INTERP)>
+
+Throw out-of-bounds exception.
+
+=cut
+
+*/
+
+PARROT_DOES_NOT_RETURN
+static void
+out_of_bounds(PARROT_INTERP)
+{
+ ASSERT_ARGS(out_of_bounds)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_OUT_OF_BOUNDS,
+ "StopIteration");
+}
+
/*
=back
Added: branches/gc_massacre/src/pmc/bytebuffer.pmc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gc_massacre/src/pmc/bytebuffer.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -0,0 +1,428 @@
+/*
+Copyright (C) 2010, Parrot Foundation.
+$Id$
+
+=head1 NAME
+
+src/pmc/bytebuffer.pmc - A byte buffer
+
+=head1 DESCRIPTION
+
+C<ByteBuffer> provides a resizable byte buffer with random access to
+individual bytes and conversions from and to parrot strings.
+
+=cut
+
+*/
+
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+PARROT_CANNOT_RETURN_NULL
+static STRING * build_string(PARROT_INTERP,
+ ARGIN(const unsigned char *content),
+ INTVAL size,
+ ARGIN_NULLOK(const CHARSET *charset),
+ ARGIN_NULLOK(const ENCODING *encoding))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static INTVAL grow_to(INTVAL position);
+#define ASSERT_ARGS_build_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(content))
+#define ASSERT_ARGS_grow_to __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
+pmclass ByteBuffer auto_attrs {
+ ATTR INTVAL allocated_size;
+ ATTR INTVAL size;
+ ATTR STRING *source;
+ ATTR unsigned char *content;
+
+/*
+
+=head2 Vtable functions
+
+=over 4
+
+=item C<void init()>
+
+Create an empty buffer
+
+=item C<void init_int()>
+
+Create a buffer of initial_size capacity.
+
+=item C<void mark()>
+
+Mark the source string if any.
+
+=item C<void destroy()>
+
+Free the buffer when destroying.
+
+=cut
+
+*/
+
+ VTABLE void init() {
+ PObj_custom_mark_destroy_SETALL(SELF);
+ }
+
+ VTABLE void init_int(INTVAL initial_size) {
+ unsigned char *content;
+ STATICSELF.init();
+ SET_ATTR_size(INTERP, SELF, initial_size);
+ SET_ATTR_allocated_size(INTERP, SELF, initial_size);
+ content = (unsigned char *)Parrot_gc_allocate_memory_chunk(INTERP, initial_size);
+ SET_ATTR_content(INTERP, SELF, content);
+ }
+
+ VTABLE void mark() {
+ STRING * source;
+ GET_ATTR_source(INTERP, SELF, source);
+ if (!STRING_IS_NULL(source))
+ Parrot_gc_mark_STRING_alive(INTERP, source);
+ }
+
+ VTABLE void destroy() {
+ INTVAL allocated_size;
+ GET_ATTR_allocated_size(INTERP, SELF, allocated_size);
+ if (allocated_size) {
+ unsigned char *content;
+ GET_ATTR_content(INTERP, SELF, content);
+ Parrot_gc_free_memory_chunk(INTERP, content);
+ }
+ }
+
+/*
+
+=item C<INTVAL elements()>
+
+Get current size.
+
+=cut
+
+*/
+
+ VTABLE INTVAL elements() {
+ INTVAL size;
+ GET_ATTR_size(INTERP, SELF, size);
+ return size;
+ }
+
+/*
+
+=item C<void set_integer_native()>
+
+Resize the buffer to the given value.
+
+=cut
+
+*/
+
+ VTABLE void set_integer_native(INTVAL set_size) {
+ INTVAL size, allocated_size;
+ unsigned char *content;
+ if (set_size < 0)
+ Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
+ "Negative size in ByteBuffer");
+
+ GET_ATTR_allocated_size(INTERP, SELF, allocated_size);
+ if (set_size == 0) {
+ if (allocated_size == 0)
+ SET_ATTR_source(INTERP, SELF, STRINGNULL);
+ else {
+ GET_ATTR_content(INTERP, SELF, content);
+ Parrot_gc_free_memory_chunk(INTERP, content);
+ }
+ SET_ATTR_allocated_size(INTERP, SELF, 0);
+ SET_ATTR_size(INTERP, SELF, 0);
+ SET_ATTR_content(INTERP, SELF, NULL);
+ }
+ else {
+ GET_ATTR_size(INTERP, SELF, size);
+ /* If reducing size, just change the size value */
+ if (set_size > size) {
+ INTVAL copysize = set_size < size ? set_size : size;
+ if (allocated_size == 0) {
+ content = (unsigned char *)Parrot_gc_allocate_memory_chunk(INTERP, set_size);
+ if (size > 0) {
+ STRING * source;
+ GET_ATTR_source(INTERP, SELF, source);
+ memcpy(content, source->strstart, copysize);
+ }
+ SET_ATTR_source(INTERP, SELF, STRINGNULL);
+ }
+ else {
+ GET_ATTR_content(INTERP, SELF, content);
+ content = (unsigned char *)
+ Parrot_gc_reallocate_memory_chunk(INTERP, content, set_size);
+ }
+ if (copysize < set_size)
+ memset(content + copysize, '\0', set_size - copysize);
+ SET_ATTR_allocated_size(INTERP, SELF, set_size);
+ SET_ATTR_content(INTERP, SELF, content);
+ }
+ SET_ATTR_size(INTERP, SELF, set_size);
+ }
+ }
+
+/*
+
+=item C<void set_string_native()>
+
+Reset the buffer with the content of the string.
+
+=cut
+
+*/
+
+ VTABLE void set_string_native(STRING *new_string) {
+ INTVAL allocated_size;
+ GET_ATTR_allocated_size(INTERP, SELF, allocated_size);
+ if (allocated_size) {
+ unsigned char *content;
+ GET_ATTR_content(INTERP, SELF, content);
+ Parrot_gc_free_memory_chunk(INTERP, content);
+ SET_ATTR_allocated_size(INTERP, SELF, 0);
+ }
+ SET_ATTR_source(INTERP, SELF, new_string);
+ SET_ATTR_size(INTERP, SELF, Parrot_str_byte_length(INTERP, new_string));
+ SET_ATTR_content(INTERP, SELF, (unsigned char *)new_string->strstart);
+ }
+
+/*
+
+=item C<INTVAL get_integer_keyed_int()>
+
+Get the value of the byte at position or 0 if out of bounds.
+
+=cut
+
+*/
+
+ VTABLE INTVAL get_integer_keyed_int(INTVAL position) {
+ INTVAL size;
+ unsigned char *content;
+ GET_ATTR_size(INTERP, SELF, size);
+ GET_ATTR_content(INTERP, SELF, content);
+ return (position >= 0 && position < size) ? content[position] : (INTVAL) 0;
+ }
+
+/*
+
+=item C<void set_integer_keyed_int()>
+
+Set the value of the byte at position, resizing the buffer if the position
+is out of current size.
+
+=cut
+
+*/
+
+ VTABLE void set_integer_keyed_int(INTVAL position, INTVAL value) {
+ unsigned char *content;
+ INTVAL size, allocated_size;
+ if (position < 0)
+ Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
+ "Negative position not allowed");
+
+ GET_ATTR_allocated_size(INTERP, SELF, allocated_size);
+ if (position >= allocated_size) {
+ INTVAL newsize = grow_to(position);
+ if (allocated_size == 0) {
+ INTVAL copysize = newsize;
+ STRING * source;
+ content = (unsigned char *)Parrot_gc_allocate_memory_chunk(INTERP, newsize);
+ GET_ATTR_source(INTERP, SELF, source);
+ if (!STRING_IS_NULL(source)) {
+ INTVAL srclen = Parrot_str_byte_length(INTERP, source);
+ if (srclen < copysize)
+ copysize = srclen;
+ memcpy(content, source->strstart, copysize);
+ SET_ATTR_source(INTERP, SELF, STRINGNULL);
+ }
+ }
+ else {
+ GET_ATTR_content(INTERP, SELF, content);
+ content = (unsigned char *)
+ Parrot_gc_reallocate_memory_chunk(INTERP, content, newsize);
+ }
+
+ SET_ATTR_content(INTERP, SELF, content);
+ SET_ATTR_allocated_size(INTERP, SELF, newsize);
+ }
+ else
+ GET_ATTR_content(INTERP, SELF, content);
+
+ GET_ATTR_size(INTERP, SELF, size);
+ if (position >= size) {
+ size = position + 1;
+ SET_ATTR_size(INTERP, SELF, size);
+ }
+ content[position] = value;
+ }
+
+/*
+
+=item C<void push_integer(INTVAL value)>
+
+Extends the buffer by adding a byte of value C<value> to the end.
+
+=cut
+
+*/
+
+ VTABLE void push_integer(INTVAL value) {
+ INTVAL size;
+
+ GET_ATTR_size(INTERP, SELF, size);
+ SELF.set_integer_keyed_int(size, value);
+ }
+
+/*
+
+=item C<PMC *get_iter()>
+
+Return a new Iterator for this PMC.
+
+=cut
+
+*/
+
+ VTABLE PMC *get_iter() {
+ return Parrot_pmc_new_init(INTERP, enum_class_ArrayIterator, SELF);
+ }
+
+/*
+
+=back
+
+=head2 Methods
+
+=over 4
+
+=item C<get_string(string charset, string encoding)>
+
+Create a string with the buffer content and the charset and encoding
+specified.
+
+=cut
+
+*/
+
+ METHOD get_string(STRING *charsetname, STRING *encodingname) {
+ STRING *result;
+ unsigned char *content;
+ INTVAL size;
+ const CHARSET *charset = Parrot_get_charset(INTERP,
+ Parrot_charset_number(INTERP, charsetname));
+ const ENCODING *encoding = Parrot_get_encoding(INTERP,
+ Parrot_encoding_number(INTERP, encodingname));
+ GET_ATTR_content(INTERP, SELF, content);
+ GET_ATTR_size(INTERP, SELF, size);
+ result = build_string(INTERP, content, size, charset, encoding);
+ RETURN(STRING *result);
+ }
+
+/*
+
+=item C<get_string_as(string as)>
+
+Create a string with the buffer content and the same charset and encoding
+as the string argument.
+
+=cut
+
+*/
+
+ METHOD get_string_as(STRING *as :optional) {
+ STRING *result;
+ unsigned char *content;
+ INTVAL size;
+ const CHARSET* charset = STRING_IS_NULL(as) ? PARROT_DEFAULT_CHARSET : as->charset;
+ const ENCODING *encoding = STRING_IS_NULL(as) ? PARROT_DEFAULT_ENCODING : as->encoding;
+ GET_ATTR_content(INTERP, SELF, content);
+ GET_ATTR_size(INTERP, SELF, size);
+ result = build_string(INTERP, content, size, charset, encoding);
+ RETURN(STRING *result);
+ }
+
+} /* pmclass end */
+
+/*
+
+=back
+
+=head2 Auxiliar functions
+
+=over 4
+
+=item C<static INTVAL grow_to(INTVAL position)>
+
+Calculate new size enough for using position and with some margin to
+decrease the number of reallocations.
+
+=item C<static STRING * build_string(PARROT_INTERP, const unsigned char
+*content, INTVAL size, const CHARSET *charset, const ENCODING *encoding)>
+
+Build a string fro the buffer content with the charset and encoding specified.
+
+=cut
+
+*/
+
+static INTVAL
+grow_to(INTVAL position)
+{
+ ASSERT_ARGS(grow_to)
+
+ const UINTVAL blocksize = 2048;
+ UINTVAL minsize = position + 1;
+ return (INTVAL) (minsize < 64 ? 64 :
+ minsize < 256 ? 256 :
+ minsize < 1024 ? 1024 :
+ ((minsize + blocksize - 1) / blocksize) * blocksize);
+}
+
+PARROT_CANNOT_RETURN_NULL
+static STRING *
+build_string(PARROT_INTERP, ARGIN(const unsigned char *content),
+ INTVAL size,
+ ARGIN_NULLOK(const CHARSET *charset),
+ ARGIN_NULLOK(const ENCODING *encoding))
+{
+ ASSERT_ARGS(build_string)
+ STRING *result;
+ if (charset == NULL)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_ENCODING,
+ "Invalid charset");
+ if (encoding == NULL)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_ENCODING,
+ "Invalid encoding");
+ result = Parrot_str_new_init(interp, (const char *)content, size, encoding, charset, 0);
+ if (!CHARSET_VALIDATE(interp, result))
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_STRING_REPRESENTATION,
+ "Invalid buffer content");
+ return result;
+}
+
+/*
+
+=back
+
+=cut
+
+*/
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Modified: branches/gc_massacre/src/pmc/callcontext.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/callcontext.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/callcontext.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -359,14 +359,18 @@
mark_positionals(PARROT_INTERP, ARGIN(PMC *self))
{
ASSERT_ARGS(mark_positionals)
- INTVAL size, i;
- Pcc_cell *cells;
+ INTVAL size;
GETATTR_CallContext_num_positionals(interp, self, size);
- GETATTR_CallContext_positionals(interp, self, cells);
- for (i = 0; i < size; ++i)
- mark_cell(interp, &cells[i]);
+ if (size) {
+ Pcc_cell *cells;
+ INTVAL i;
+ GETATTR_CallContext_positionals(interp, self, cells);
+
+ for (i = 0; i < size; ++i)
+ mark_cell(interp, &cells[i]);
+ }
}
/* don't look now, but here goes encapsulation.... */
@@ -377,7 +381,7 @@
INTVAL i;
for (i = h->mask; i >= 0; --i) {
- HashBucket *b = h->bi[i];
+ HashBucket *b = h->bucket_indices[i];
while (b) {
Parrot_gc_mark_STRING_alive(interp, (STRING *)b->key);
@@ -403,7 +407,7 @@
result = Parrot_pmc_new_init_int(interp, enum_class_FixedStringArray, hash->entries);
for (i = 0; i <= hash->mask; ++i) {
- HashBucket *b = hash->bi[i];
+ HashBucket *b = hash->bucket_indices[i];
while (b) {
VTABLE_set_string_keyed_int(interp, result,
@@ -443,7 +447,7 @@
ATTR PMC *current_sig; /* temporary CallContext PMC for active call */
/* deref the constants - we need it all the time */
- ATTR struct PackFile_Constant **constants;
+ ATTR struct PackFile_Constant *constants;
ATTR INTVAL current_HLL; /* see also src/hll.c */
@@ -494,35 +498,32 @@
*/
VTABLE void mark() {
Hash *hash;
+ PMC *tmp;
STRING *short_sig;
Pcc_cell *positionals;
- INTVAL num_positionals;
- PMC *arg_flags, *type_tuple, *return_flags, *tmp;
- UINTVAL i;
UINTVAL *n_regs_used;
- Regs_ps bp_ps;
if (!PMC_data(SELF))
return;
- GET_ATTR_type_tuple(INTERP, SELF, type_tuple);
GET_ATTR_short_sig(INTERP, SELF, short_sig);
- GET_ATTR_arg_flags(INTERP, SELF, arg_flags);
- GET_ATTR_return_flags(INTERP, SELF, return_flags);
- GET_ATTR_num_positionals(INTERP, SELF, num_positionals);
- GET_ATTR_positionals(INTERP, SELF, positionals);
- GET_ATTR_hash(INTERP, SELF, hash);
-
- Parrot_gc_mark_PMC_alive(INTERP, type_tuple);
Parrot_gc_mark_STRING_alive(INTERP, short_sig);
- Parrot_gc_mark_PMC_alive(INTERP, arg_flags);
- Parrot_gc_mark_PMC_alive(INTERP, return_flags);
mark_positionals(INTERP, SELF);
+ GET_ATTR_hash(INTERP, SELF, hash);
if (hash)
mark_hash(INTERP, hash);
+ GET_ATTR_arg_flags(INTERP, SELF, tmp);
+ Parrot_gc_mark_PMC_alive(INTERP, tmp);
+
+ GET_ATTR_return_flags(INTERP, SELF, tmp);
+ Parrot_gc_mark_PMC_alive(INTERP, tmp);
+
+ GET_ATTR_type_tuple(INTERP, SELF, tmp);
+ Parrot_gc_mark_PMC_alive(INTERP, tmp);
+
GET_ATTR_caller_ctx(INTERP, SELF, tmp);
Parrot_gc_mark_PMC_alive(INTERP, tmp);
@@ -551,21 +552,26 @@
Parrot_gc_mark_PMC_alive(INTERP, tmp);
GET_ATTR_n_regs_used(INTERP, SELF, n_regs_used);
- if (!n_regs_used)
- return;
- GET_ATTR_bp_ps(INTERP, SELF, bp_ps);
- for (i = 0; i < n_regs_used[REGNO_PMC]; ++i) {
- PMC * const p = bp_ps.regs_p[-1L-(i)];
- /* Original code from CTX_REG_PMC */
- if (p)
- Parrot_gc_mark_PMC_alive(INTERP, p);
- }
+ if (n_regs_used) {
+ Regs_ps bp_ps;
+ const UINTVAL regs_p = n_regs_used[REGNO_PMC];
+ const UINTVAL regs_s = n_regs_used[REGNO_STR];
+ UINTVAL i;
+
+ GET_ATTR_bp_ps(INTERP, SELF, bp_ps);
+ for (i = 0; i < regs_p; ++i) {
+ PMC * const p = bp_ps.regs_p[-1L-(i)];
+ /* Original code from CTX_REG_PMC */
+ if (p)
+ Parrot_gc_mark_PMC_alive(INTERP, p);
+ }
- for (i = 0; i < n_regs_used[REGNO_STR]; ++i) {
- STRING * const s = bp_ps.regs_s[i];
- if (s)
- Parrot_gc_mark_STRING_alive(INTERP, s);
+ for (i = 0; i < regs_s; ++i) {
+ STRING * const s = bp_ps.regs_s[i];
+ if (s)
+ Parrot_gc_mark_STRING_alive(INTERP, s);
+ }
}
}
@@ -600,7 +606,7 @@
UINTVAL i;
for (i = 0; i <= hash->mask; ++i) {
- HashBucket *b = hash->bi[i];
+ HashBucket *b = hash->bucket_indices[i];
while (b) {
FREE_CELL(INTERP, (Pcc_cell *)b->value);
@@ -638,7 +644,7 @@
UINTVAL i;
for (i = 0; i <= hash->mask; ++i) {
- HashBucket *b = hash->bi[i];
+ HashBucket *b = hash->bucket_indices[i];
while (b) {
FREE_CELL(INTERP, (Pcc_cell *)b->value);
Modified: branches/gc_massacre/src/pmc/capture.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/capture.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/capture.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -22,17 +22,21 @@
/* HEADERIZER BEGIN: static */
/* HEADERIZER END: static */
-#define CAPTURE_array_CREATE(i, obj) \
+#define CAPTURE_array_CREATE(i, obj, arr) \
do { \
- GETATTR_Capture_array((i), (obj), array); \
- if (!array) \
- SETATTR_Capture_array((i), (obj), Parrot_pmc_new((i), enum_class_ResizablePMCArray)); \
+ GETATTR_Capture_array((i), (obj), (arr)); \
+ if (!(arr)) { \
+ (arr) = Parrot_pmc_new((i), enum_class_ResizablePMCArray); \
+ SETATTR_Capture_array((i), (obj), (arr)); \
+ } \
} while (0)
-#define CAPTURE_hash_CREATE(i, obj) \
+#define CAPTURE_hash_CREATE(i, obj, hsh) \
do { \
- GETATTR_Capture_hash((i), (obj), hash); \
- if (!hash) \
- SETATTR_Capture_hash((i), (obj), Parrot_pmc_new((i), enum_class_Hash)); \
+ GETATTR_Capture_hash((i), (obj), (hsh)); \
+ if (!(hsh)) { \
+ (hsh) = Parrot_pmc_new((i), enum_class_Hash); \
+ SETATTR_Capture_hash((i), (obj), (hsh)); \
+ } \
} while (0)
pmclass Capture auto_attrs {
@@ -97,32 +101,28 @@
VTABLE void set_number_keyed_int(INTVAL key, FLOATVAL value) {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
+ CAPTURE_array_CREATE(INTERP, SELF, array);
VTABLE_set_number_keyed_int(INTERP, array, key, value);
}
VTABLE void set_integer_keyed_int(INTVAL key, INTVAL value) {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
+ CAPTURE_array_CREATE(INTERP, SELF, array);
VTABLE_set_integer_keyed_int(INTERP, array, key, value);
}
VTABLE void set_pmc_keyed_int(INTVAL key, PMC *value) {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
+ CAPTURE_array_CREATE(INTERP, SELF, array);
VTABLE_set_pmc_keyed_int(INTERP, array, key, value);
}
VTABLE void set_string_keyed_int(INTVAL key, STRING *value) {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
+ CAPTURE_array_CREATE(INTERP, SELF, array);
VTABLE_set_string_keyed_int(INTERP, array, key, value);
}
@@ -215,72 +215,56 @@
VTABLE void push_float(FLOATVAL value) {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
-
+ CAPTURE_array_CREATE(INTERP, SELF, array);
VTABLE_push_float(INTERP, array, value);
}
VTABLE void push_integer(INTVAL value) {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
-
+ CAPTURE_array_CREATE(INTERP, SELF, array);
VTABLE_push_integer(INTERP, array, value);
}
VTABLE void push_pmc(PMC *value) {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
-
+ CAPTURE_array_CREATE(INTERP, SELF, array);
VTABLE_push_pmc(INTERP, array, value);
}
VTABLE void push_string(STRING *value) {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
-
+ CAPTURE_array_CREATE(INTERP, SELF, array);
VTABLE_push_string(INTERP, array, value);
}
VTABLE void unshift_float(FLOATVAL value) {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
-
+ CAPTURE_array_CREATE(INTERP, SELF, array);
VTABLE_unshift_float(INTERP, array, value);
}
VTABLE void unshift_integer(INTVAL value) {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
-
+ CAPTURE_array_CREATE(INTERP, SELF, array);
VTABLE_unshift_integer(INTERP, array, value);
}
VTABLE void unshift_pmc(PMC *value) {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
-
+ CAPTURE_array_CREATE(INTERP, SELF, array);
VTABLE_unshift_pmc(INTERP, array, value);
}
VTABLE void unshift_string(STRING *value) {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
-
+ CAPTURE_array_CREATE(INTERP, SELF, array);
VTABLE_unshift_string(INTERP, array, value);
}
@@ -313,72 +297,56 @@
VTABLE FLOATVAL pop_float() {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
-
+ CAPTURE_array_CREATE(INTERP, SELF, array);
return VTABLE_pop_float(INTERP, array);
}
VTABLE INTVAL pop_integer() {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
-
+ CAPTURE_array_CREATE(INTERP, SELF, array);
return VTABLE_pop_integer(INTERP, array);
}
VTABLE PMC *pop_pmc() {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
-
+ CAPTURE_array_CREATE(INTERP, SELF, array);
return VTABLE_pop_pmc(INTERP, array);
}
VTABLE STRING *pop_string() {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
-
+ CAPTURE_array_CREATE(INTERP, SELF, array);
return VTABLE_pop_string(INTERP, array);
}
VTABLE FLOATVAL shift_float() {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
-
+ CAPTURE_array_CREATE(INTERP, SELF, array);
return VTABLE_shift_float(INTERP, array);
}
VTABLE INTVAL shift_integer() {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
-
+ CAPTURE_array_CREATE(INTERP, SELF, array);
return VTABLE_shift_integer(INTERP, array);
}
VTABLE PMC *shift_pmc() {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
-
+ CAPTURE_array_CREATE(INTERP, SELF, array);
return VTABLE_shift_pmc(INTERP, array);
}
VTABLE STRING *shift_string() {
PMC *array;
- CAPTURE_array_CREATE(INTERP, SELF);
- GET_ATTR_array(INTERP, SELF, array);
-
+ CAPTURE_array_CREATE(INTERP, SELF, array);
return VTABLE_shift_string(INTERP, array);
}
@@ -465,36 +433,28 @@
VTABLE void set_number_keyed(PMC *key, FLOATVAL value) {
PMC *hash;
- CAPTURE_hash_CREATE(INTERP, SELF);
- GET_ATTR_hash(INTERP, SELF, hash);
-
+ CAPTURE_hash_CREATE(INTERP, SELF, hash);
VTABLE_set_number_keyed(INTERP, hash, key, value);
}
VTABLE void set_integer_keyed(PMC *key, INTVAL value) {
PMC *hash;
- CAPTURE_hash_CREATE(INTERP, SELF);
- GET_ATTR_hash(INTERP, SELF, hash);
-
+ CAPTURE_hash_CREATE(INTERP, SELF, hash);
VTABLE_set_integer_keyed(INTERP, hash, key, value);
}
VTABLE void set_pmc_keyed(PMC *key, PMC *value) {
PMC *hash;
- CAPTURE_hash_CREATE(INTERP, SELF);
- GET_ATTR_hash(INTERP, SELF, hash);
-
+ CAPTURE_hash_CREATE(INTERP, SELF, hash);
VTABLE_set_pmc_keyed(INTERP, hash, key, value);
}
VTABLE void set_string_keyed(PMC *key, STRING *value) {
PMC *hash;
- CAPTURE_hash_CREATE(INTERP, SELF);
- GET_ATTR_hash(INTERP, SELF, hash);
-
+ CAPTURE_hash_CREATE(INTERP, SELF, hash);
VTABLE_set_string_keyed(INTERP, hash, key, value);
}
@@ -577,36 +537,28 @@
VTABLE void set_number_keyed_str(STRING *key, FLOATVAL value) {
PMC *hash;
- CAPTURE_hash_CREATE(INTERP, SELF);
- GET_ATTR_hash(INTERP, SELF, hash);
-
+ CAPTURE_hash_CREATE(INTERP, SELF, hash);
VTABLE_set_number_keyed_str(INTERP, hash, key, value);
}
VTABLE void set_integer_keyed_str(STRING *key, INTVAL value) {
PMC *hash;
- CAPTURE_hash_CREATE(INTERP, SELF);
- GET_ATTR_hash(INTERP, SELF, hash);
-
+ CAPTURE_hash_CREATE(INTERP, SELF, hash);
VTABLE_set_integer_keyed_str(INTERP, hash, key, value);
}
VTABLE void set_pmc_keyed_str(STRING *key, PMC *value) {
PMC *hash;
- CAPTURE_hash_CREATE(INTERP, SELF);
- GET_ATTR_hash(INTERP, SELF, hash);
-
+ CAPTURE_hash_CREATE(INTERP, SELF, hash);
VTABLE_set_pmc_keyed_str(INTERP, hash, key, value);
}
VTABLE void set_string_keyed_str(STRING *key, STRING *value) {
PMC *hash;
- CAPTURE_hash_CREATE(INTERP, SELF);
- GET_ATTR_hash(INTERP, SELF, hash);
-
+ CAPTURE_hash_CREATE(INTERP, SELF, hash);
VTABLE_set_string_keyed_str(INTERP, hash, key, value);
}
@@ -820,16 +772,14 @@
*/
VTABLE void mark() {
- PMC *array, *hash;
-
- if (!PMC_data(SELF))
- return;
-
- GET_ATTR_array(INTERP, SELF, array);
- GET_ATTR_hash(INTERP, SELF, hash);
+ if (PMC_data(SELF)) {
+ PMC *array, *hash;
+ GET_ATTR_array(INTERP, SELF, array);
+ GET_ATTR_hash(INTERP, SELF, hash);
- Parrot_gc_mark_PMC_alive(INTERP, array);
- Parrot_gc_mark_PMC_alive(INTERP, hash);
+ Parrot_gc_mark_PMC_alive(INTERP, array);
+ Parrot_gc_mark_PMC_alive(INTERP, hash);
+ }
}
/*
@@ -855,15 +805,13 @@
PMC *ns = INTERP->root_namespace;
STRING *attribute = CONST_STRING(INTERP, "proxy");
- ns = Parrot_get_namespace_keyed_str(INTERP, ns, CONST_STRING(INTERP, "parrot"));
- ns = Parrot_get_namespace_keyed_str(INTERP, ns, CONST_STRING(INTERP, "Capture"));
+ ns = Parrot_ns_get_namespace_keyed_str(INTERP, ns, CONST_STRING(INTERP, "parrot"));
+ ns = Parrot_ns_get_namespace_keyed_str(INTERP, ns, CONST_STRING(INTERP, "Capture"));
classobj = Parrot_oo_get_class(INTERP, ns);
capt = VTABLE_get_attr_keyed(INTERP, SELF, classobj, attribute);
}
- CAPTURE_array_CREATE(INTERP, capt);
- GET_ATTR_array(INTERP, capt, array);
-
+ CAPTURE_array_CREATE(INTERP, capt, array);
RETURN(PMC *array);
}
@@ -880,8 +828,7 @@
capt = VTABLE_get_attr_keyed(INTERP, SELF, classobj, attribute);
}
- CAPTURE_hash_CREATE(INTERP, capt);
- GET_ATTR_hash(INTERP, capt, hash);
+ CAPTURE_hash_CREATE(INTERP, capt, hash);
RETURN(PMC *hash);
}
Modified: branches/gc_massacre/src/pmc/class.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/class.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/class.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -141,11 +141,20 @@
__attribute__nonnull__(3)
__attribute__nonnull__(4);
+static size_t key_hash_pointer(SHIM_INTERP,
+ ARGIN(const void *value),
+ size_t seed)
+ __attribute__nonnull__(2);
+
PARROT_CANNOT_RETURN_NULL
static STRING * make_class_name(PARROT_INTERP, ARGIN(PMC *SELF))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
+static int pointer_compare(SHIM_INTERP,
+ ARGIN_NULLOK(const void *a),
+ ARGIN_NULLOK(const void *b));
+
#define ASSERT_ARGS_build_attrib_index __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self))
@@ -169,13 +178,31 @@
, PARROT_ASSERT_ARG(object) \
, PARROT_ASSERT_ARG(all_parents) \
, PARROT_ASSERT_ARG(init))
+#define ASSERT_ARGS_key_hash_pointer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(value))
#define ASSERT_ARGS_make_class_name __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(SELF))
+#define ASSERT_ARGS_pointer_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
static int
+pointer_compare(SHIM_INTERP, ARGIN_NULLOK(const void *a),
+ ARGIN_NULLOK(const void *b))
+{
+ ASSERT_ARGS(pointer_compare)
+ return a != b;
+}
+
+static size_t
+key_hash_pointer(SHIM_INTERP, ARGIN(const void *value), size_t seed)
+{
+ ASSERT_ARGS(key_hash_pointer)
+ return ((size_t) value ^ seed);
+}
+
+static int
cache_class_attribs(PARROT_INTERP,
ARGIN(PMC *cur_class), ARGIN(PMC *attrib_index),
ARGIN(PMC *cache), int cur_index)
@@ -284,7 +311,7 @@
else {
PMC * const hll_ns = VTABLE_get_pmc_keyed_int(interp,
interp->HLL_namespace, Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp)));
- new_namespace = Parrot_make_namespace_keyed(interp, hll_ns, name_arg);
+ new_namespace = Parrot_ns_make_namespace_keyed(interp, hll_ns, name_arg);
}
if (PMC_IS_NULL(new_namespace))
@@ -431,7 +458,7 @@
if (!PMC_IS_NULL(meth)) {
/* preserve current_object */
- Parrot_pcc_invoke_sub_from_c_args(interp, meth, "Pi->", object);
+ Parrot_ext_call(interp, meth, "Pi->", object);
}
}
}
@@ -460,8 +487,7 @@
meth = Parrot_oo_find_vtable_override_for_class(interp, parent, name);
if (!PMC_IS_NULL(meth))
- Parrot_pcc_invoke_sub_from_c_args(interp, meth,
- "PiP->", object, init);
+ Parrot_ext_call(interp, meth, "PiP->", object, init);
}
}
@@ -559,8 +585,9 @@
ATTR PMC *attrib_cache; /* Cache of visible attrib names to indexes. */
ATTR PMC *resolve_method; /* List of method names the class provides to resolve
* conflicts with methods from roles. */
- ATTR PMC *parent_overrides;
- ATTR PMC *meth_cache;
+ ATTR PMC *parent_overrides;
+ ATTR PMC *meth_cache;
+ ATTR Hash *isa_cache;
/*
@@ -600,6 +627,9 @@
_class->vtable_overrides = Parrot_pmc_new(INTERP, enum_class_Hash);
_class->parent_overrides = Parrot_pmc_new(INTERP, enum_class_Hash);
+ _class->isa_cache = parrot_create_hash(INTERP,
+ enum_type_INTVAL, Hash_key_type_PMC,
+ (hash_comp_fn)pointer_compare, (hash_hash_key_fn)key_hash_pointer);
/* We put ourself on the all parents list. */
VTABLE_push_pmc(INTERP, _class->all_parents, SELF);
@@ -657,6 +687,11 @@
init_class_from_hash(INTERP, SELF, arg);
}
+ void destroy() {
+ Parrot_Class_attributes * const _class = PARROT_CLASS(SELF);
+ parrot_hash_destroy(INTERP, _class->isa_cache);
+ }
+
/*
=item C<STRING *get_string()>
@@ -697,6 +732,8 @@
Parrot_gc_mark_PMC_alive(INTERP, _class->attrib_cache);
Parrot_gc_mark_PMC_alive(INTERP, _class->resolve_method);
Parrot_gc_mark_PMC_alive(INTERP, _class->meth_cache);
+ if (_class->isa_cache)
+ parrot_mark_hash(INTERP, _class->isa_cache);
}
@@ -922,6 +959,7 @@
/* Add to the lists of our immediate parents and all parents. */
VTABLE_push_pmc(INTERP, _class->parents, parent);
+ parrot_hash_put(INTERP, _class->isa_cache, (void *)parent, (void *)1);
calculate_mro(INTERP, SELF, parent_count + 1);
}
@@ -969,6 +1007,7 @@
"Can't remove_parent: is not a parent.");
VTABLE_delete_keyed_int(INTERP, _class->parents, index);
+ parrot_hash_put(INTERP, _class->isa_cache, (void *)parent, (void *)0);
calculate_mro(INTERP, SELF, parent_count - 1);
}
@@ -1084,13 +1123,11 @@
if (found->vtable->base_type == enum_class_Hash) {
/* for Hash return values, create and return a shallow
* clone because the VTABLE_clone does a deep clone */
- PMC * const hash = Parrot_pmc_new(INTERP, enum_class_Hash);
- PMC * const iter = VTABLE_get_iter(INTERP, found);
- while (VTABLE_get_bool(INTERP, iter)) {
- STRING * const key = VTABLE_shift_string(INTERP, iter);
- PMC * const value = VTABLE_get_pmc_keyed_str(INTERP, found, key);
- VTABLE_set_pmc_keyed_str(INTERP, hash, key, value);
- }
+ PMC * const hash = Parrot_pmc_new(INTERP, enum_class_Hash);
+ Hash *src = (Hash *)VTABLE_get_pointer(interp, found);
+ Hash *dest = (Hash *)VTABLE_get_pointer(interp, hash);
+
+ parrot_hash_clone_prunable(interp, src, dest, 0);
return hash;
}
@@ -1329,7 +1366,8 @@
VTABLE INTVAL isa_pmc(PMC *lookup) {
Parrot_Class_attributes * const _class = PARROT_CLASS(SELF);
PMC *classobj;
- INTVAL i, num_classes;
+ HashBucket *b;
+ INTVAL i, num_classes, retval = 0;
if (PMC_IS_NULL(lookup))
return 0;
@@ -1344,7 +1382,14 @@
/* Check if the class object is the same as self's class object */
if (VTABLE_is_same(INTERP, SELF, classobj))
- return 1;
+ goto found;
+
+ if (_class->instantiated) {
+ b = parrot_hash_get_bucket(INTERP, _class->isa_cache,
+ (void *)classobj);
+ if (b)
+ return (INTVAL)b->value;
+ }
/* this is effectively what the default PMC's isa_pmc does
* ... but this can cheat and avoid COW STRINGs for the classobj
@@ -1352,14 +1397,9 @@
if (classobj->vtable->base_type == enum_class_Class
|| classobj->vtable->base_type == enum_class_PMCProxy) {
STRING *classname = make_class_name(INTERP, classobj);
-
- if (Parrot_str_equal(INTERP, SELF->vtable->whoami, classname))
- return 1;
-
- if (SELF->vtable->isa_hash
- && parrot_hash_exists(INTERP, SELF->vtable->isa_hash,
- (void *)classname))
- return 1;
+ PARROT_ASSERT(SELF->vtable->isa_hash);
+ if (parrot_hash_exists(INTERP, SELF->vtable->isa_hash, classname))
+ goto found;
}
/* Iterate over all the parents and check if they respond true
@@ -1371,10 +1411,18 @@
_class->parents, i);
if (VTABLE_isa_pmc(INTERP, cur_class, lookup))
- return 1;
+ goto found;
}
- return 0;
+ cache_and_return:
+ if (_class->instantiated)
+ parrot_hash_put(INTERP, _class->isa_cache, (void *)classobj,
+ (void *)retval);
+ return retval;
+
+ found:
+ retval = 1;
+ goto cache_and_return;
}
/*
@@ -1401,8 +1449,22 @@
if (SELF == want_class)
return 1;
+ else {
+ Parrot_Class_attributes * const _class = PARROT_CLASS(SELF);
+
+ INTVAL num_classes = VTABLE_elements(INTERP, _class->all_parents);
+ int i = 0;
+
+ for (i = 1; i < num_classes; ++i) {
+ PMC * const cur_class = VTABLE_get_pmc_keyed_int(INTERP,
+ _class->all_parents, i);
- return VTABLE_isa_pmc(INTERP, SELF, want_class);
+ if (VTABLE_is_same(INTERP, want_class, cur_class))
+ return 1;
+ }
+ }
+
+ return 0;
}
/*
@@ -1589,13 +1651,13 @@
STRING * const semicolon_str = CONST_STRING(INTERP, ";");
PMC * const namespace_array =
Parrot_str_split(INTERP, semicolon_str, serial_namespace);
- PMC *ns = Parrot_get_namespace_keyed(INTERP,
+ PMC *ns = Parrot_ns_get_namespace_keyed(INTERP,
INTERP->root_namespace, namespace_array);
/* If the namespace doesn't exist, we create it, and initialize
* ourselves in it */
if (PMC_IS_NULL(ns)) {
- ns = Parrot_make_namespace_keyed(INTERP,
+ ns = Parrot_ns_make_namespace_keyed(INTERP,
INTERP->root_namespace, namespace_array);
SELF.init_pmc(ns);
}
Modified: branches/gc_massacre/src/pmc/default.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/default.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/default.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -23,9 +23,6 @@
#define INT2KEY(i, k) key_new_integer((i), (k))
-/* undef 'interface' to keep MSVC happy */
-#undef interface
-
/* HEADERIZER HFILE: none */
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
@@ -903,18 +900,18 @@
/*
-=item C<INTVAL does(STRING *interface)>
+=item C<INTVAL does(STRING *interface_name)>
-Reports whether the PMC "does" perform C<interface>.
-If the interface C<interface> is found in the PMC's interface list,
+Reports whether the PMC "does" perform C<interface_name>.
+If the interface C<interface_name> is found in the PMC's interface list,
true (1) is returned; otherwise, false (0) is returned.
=cut
*/
- VTABLE INTVAL does(STRING *_interface) {
- return Parrot_pmc_type_does(INTERP, _interface, SELF->vtable->base_type);
+ VTABLE INTVAL does(STRING *interface_name) {
+ return Parrot_pmc_type_does(INTERP, interface_name, SELF->vtable->base_type);
}
/*
@@ -946,18 +943,13 @@
*/
VTABLE INTVAL isa_pmc(PMC *lookup) {
- Hash * const isa_hash = SELF->vtable->isa_hash;
- STRING *pmc_name;
-
if (PMC_IS_NULL(lookup))
return 0;
-
- pmc_name = VTABLE_get_string(INTERP, lookup);
-
- if (!isa_hash)
- return Parrot_str_equal(INTERP, SELF->vtable->whoami, pmc_name);
-
- return parrot_hash_exists(INTERP, isa_hash, (void *)pmc_name);
+ else {
+ Hash * const isa_hash = SELF->vtable->isa_hash;
+ STRING * const pmc_name = VTABLE_get_string(INTERP, lookup);
+ return parrot_hash_exists(INTERP, isa_hash, pmc_name);
+ }
}
/*
@@ -973,11 +965,15 @@
*/
VTABLE INTVAL isa(STRING *_class) {
- const Hash * const isa_hash = SELF->vtable->isa_hash;
- if (!isa_hash)
- return Parrot_str_equal(INTERP, SELF->vtable->whoami, _class);
+ if (SELF->vtable->whoami == _class)
+ return 1;
+ else {
+ const Hash * const isa_hash = SELF->vtable->isa_hash;
+ if (!isa_hash)
+ return Parrot_str_equal(INTERP, SELF->vtable->whoami, _class);
- return parrot_hash_exists(INTERP, isa_hash, (void *)_class);
+ return parrot_hash_exists(INTERP, isa_hash, (void *)_class);
+ }
}
/*
Modified: branches/gc_massacre/src/pmc/eval.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/eval.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/eval.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -57,30 +57,25 @@
{
ASSERT_ARGS(clear_fixups)
- INTVAL i;
- PackFile_ByteCode * const seg = sub_data->seg;
- PackFile_FixupTable *ft;
- PackFile_ConstTable *ct;
-
- if (!seg)
- return;
-
- ft = seg->fixups;
- if (!ft)
- return;
-
- ct = seg->const_table;
- if (!ct)
- return;
+ PackFile_ByteCode * const seg = sub_data->seg;
- for (i = 0; i < ft->fixup_count; ++i) {
- PackFile_FixupEntry * const e = ft->fixups + i;
-
- if (e->type == enum_fixup_sub) {
- opcode_t ci = e->offset;
-
- ct->constants[ci]->u.key = NULL;
- e->type = 0;
+ if (seg) {
+ PackFile_FixupTable * const ft = seg->fixups;
+ if (ft) {
+ PackFile_ConstTable * const ct = seg->const_table;
+ if (ct) {
+ INTVAL i;
+ for (i = 0; i < ft->fixup_count; ++i) {
+ PackFile_FixupEntry * const e = ft->fixups + i;
+
+ if (e->type == enum_fixup_sub) {
+ opcode_t ci = e->offset;
+
+ ct->constants[ci].u.key = NULL;
+ e->type = 0;
+ }
+ }
+ }
}
}
}
@@ -92,34 +87,29 @@
{
ASSERT_ARGS(get_sub)
- INTVAL i, n;
Parrot_Sub_attributes *sub;
PackFile_ByteCode *seg;
- PackFile_FixupTable *ft;
- PackFile_ConstTable *ct;
PMC_get_sub(interp, self, sub);
seg = sub->seg;
- if (!seg)
- return PMCNULL;
-
- ft = seg->fixups;
- if (!ft)
- return PMCNULL;
-
- ct = seg->const_table;
- if (!ct)
- return PMCNULL;
-
- for (i = n = 0; i < ft->fixup_count; ++i) {
- const PackFile_FixupEntry * const e = ft->fixups + i;
-
- if (e->type == enum_fixup_sub) {
- opcode_t ci = e->offset;
-
- if (n++ == idx)
- return ct->constants[ci]->u.key;
+ if (seg) {
+ PackFile_FixupTable * const ft = seg->fixups;
+ if (ft) {
+ PackFile_ConstTable * const ct = seg->const_table;
+ if (ct) {
+ INTVAL i, n;
+ for (i = n = 0; i < ft->fixup_count; ++i) {
+ const PackFile_FixupEntry * const e = ft->fixups + i;
+
+ if (e->type == enum_fixup_sub) {
+ opcode_t ci = e->offset;
+
+ if (n++ == idx)
+ return ct->constants[ci].u.key;
+ }
+ }
+ }
}
}
@@ -133,32 +123,27 @@
Parrot_Sub_attributes *sub;
PackFile_ByteCode *seg;
- PackFile_FixupTable *ft;
- PackFile_ConstTable *ct;
- INTVAL i;
PMC_get_sub(interp, self, sub);
seg = sub->seg;
- if (!seg)
- return;
-
- ft = seg->fixups;
- if (!ft)
- return;
-
- ct = seg->const_table;
- if (!ct)
- return;
-
- for (i = 0; i < ft->fixup_count; ++i) {
- const PackFile_FixupEntry * const e = ft->fixups + i;
-
- if (e->type == enum_fixup_sub) {
- opcode_t ci = e->offset;
- PMC *sub = ct->constants[ci]->u.key;
-
- Parrot_gc_mark_PMC_alive(interp, sub);
+ if (seg) {
+ PackFile_FixupTable * const ft = seg->fixups;
+ if (ft) {
+ PackFile_ConstTable * const ct = seg->const_table;
+ if (ct) {
+ INTVAL i;
+ for (i = 0; i < ft->fixup_count; ++i) {
+ const PackFile_FixupEntry * const e = ft->fixups + i;
+
+ if (e->type == enum_fixup_sub) {
+ opcode_t ci = e->offset;
+ PMC *sub = ct->constants[ci].u.key;
+
+ Parrot_gc_mark_PMC_alive(interp, sub);
+ }
+ }
+ }
}
}
}
@@ -411,26 +396,24 @@
}
VTABLE INTVAL elements() {
- INTVAL i, n;
+ INTVAL n = 0;
Parrot_Sub_attributes *sub;
- PackFile_ByteCode *seg;
- PackFile_FixupTable *ft;
+ PackFile_ByteCode *seg;
PMC_get_sub(INTERP, SELF, sub);
seg = sub->seg;
- if (!seg)
- return 0;
-
- ft = seg->fixups;
- if (!ft)
- return 0;
-
- for (i = n = 0; i < ft->fixup_count; ++i) {
- const PackFile_FixupEntry * const e = ft->fixups + i;
-
- if (e->type == enum_fixup_sub)
- ++n;
+ if (seg) {
+ PackFile_FixupTable *const ft = seg->fixups;
+ if (ft) {
+ INTVAL i;
+ for (i = n = 0; i < ft->fixup_count; ++i) {
+ const PackFile_FixupEntry * const e = ft->fixups + i;
+
+ if (e->type == enum_fixup_sub)
+ ++n;
+ }
+ }
}
return n;
Modified: branches/gc_massacre/src/pmc/filehandle.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/filehandle.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/filehandle.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2008-2009, Parrot Foundation.
+Copyright (C) 2008-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -281,12 +281,14 @@
=item C<METHOD isatty()>
+Returns a boolean value indicating whether C<SELF> is a console/tty.
+
=cut
*/
+
METHOD isatty() {
- const INTVAL isatty =
- (PARROT_FILEHANDLE(SELF)->flags & PIO_F_CONSOLE) == PIO_F_CONSOLE;
+ const INTVAL isatty = Parrot_io_is_tty(INTERP, SELF);
RETURN(INTVAL isatty);
}
Modified: branches/gc_massacre/src/pmc/fixedintegerarray.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/fixedintegerarray.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/fixedintegerarray.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -21,8 +21,27 @@
/* HEADERIZER HFILE: none */
/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+PARROT_PURE_FUNCTION
+static int auxcmpfunc(ARGIN(const INTVAL *i), ARGIN(const INTVAL *j))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_auxcmpfunc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(i) \
+ , PARROT_ASSERT_ARG(j))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
+PARROT_PURE_FUNCTION
+static int
+auxcmpfunc(ARGIN(const INTVAL *i), ARGIN(const INTVAL *j))
+{
+ ASSERT_ARGS(auxcmpfunc)
+ return *i - *j;
+}
+
pmclass FixedIntegerArray auto_attrs provides array {
ATTR INTVAL size; /* number of INTVALs stored in this array */
ATTR INTVAL * int_array; /* INTVALs are stored here */
@@ -492,19 +511,23 @@
SELF.set_pmc_keyed_int(k, value);
}
- METHOD sort(PMC *cmp_func) {
- INTVAL *int_array;
+ METHOD sort(PMC *cmp_func :optional) {
UINTVAL n;
INTVAL size;
GET_ATTR_size(INTERP, SELF, size);
-
n = (UINTVAL)size;
if (n > 1) {
+ INTVAL *int_array;
GET_ATTR_int_array(INTERP, SELF, int_array);
- Parrot_quicksort(INTERP, (void**)int_array, n, cmp_func);
+ if (PMC_IS_NULL(cmp_func))
+ qsort(int_array, n, sizeof (INTVAL),
+ (int (*)(const void *, const void*))auxcmpfunc);
+ else
+ Parrot_quicksort(INTERP, (void**)int_array, n, cmp_func);
}
+ RETURN(PMC *SELF);
}
/*
@@ -529,8 +552,8 @@
return 0;
for (j = 0; j < n; ++j) {
- INTVAL item1 = SELF.get_integer_keyed_int(j);
- INTVAL item2 = VTABLE_get_integer_keyed_int(INTERP, value, j);
+ const INTVAL item1 = SELF.get_integer_keyed_int(j);
+ const INTVAL item2 = VTABLE_get_integer_keyed_int(INTERP, value, j);
if (item1 != item2)
return 0;
Modified: branches/gc_massacre/src/pmc/handle.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/handle.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/handle.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2008, Parrot Foundation.
+Copyright (C) 2008-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -14,9 +14,12 @@
=over 4
-=item * [to come]
+=item C<init>
-=back
+=item C<init_pmc>
+
+Handle shouldn't be directly instantiated, init and init_pmc throws
+EXCEPTION_INVALID_OPERATION.
=cut
@@ -42,6 +45,29 @@
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
"Handle cannot be instantiated directly.");
}
+
+/*
+
+=back
+
+=head2 Methods
+
+=over 4
+
+=item C<METHOD isatty()>
+
+Returns a boolean value indicating whether C<SELF> is a console/tty.
+This default implementation always return false. Override it in
+subtypes that are or can be tty.
+
+=cut
+
+*/
+
+ METHOD isatty() {
+ RETURN(INTVAL 0);
+ }
+
}
/*
Modified: branches/gc_massacre/src/pmc/hash.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/hash.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/hash.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -1080,26 +1080,6 @@
/*
-=item C<PMC *slice(PMC *key)>
-
-Return a new iterator for the slice PMC C<key>
-
-=cut
-
-*/
-
- VTABLE PMC *slice(PMC *key, INTVAL f) {
- if (f == 0) {
- return SELF.get_iter();
- }
-
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "Hash: Unknown slice type");
- }
-
-
-/*
-
=item C<void visit(PMC *info)>
Used during archiving to visit the elements in the hash.
@@ -1124,7 +1104,7 @@
*/
VTABLE void freeze(PMC *info) {
- Hash * const hash = (Hash *)SELF.get_pointer();;
+ Hash * const hash = (Hash *)SELF.get_pointer();
SUPER(info);
VTABLE_push_integer(INTERP, info, VTABLE_elements(INTERP, SELF));
Modified: branches/gc_massacre/src/pmc/hashiterator.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/hashiterator.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/hashiterator.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -87,7 +87,7 @@
if (attrs->pos == attrs->total_buckets)
break;
- bucket = attrs->parrot_hash->bi[attrs->pos++];
+ bucket = attrs->parrot_hash->bucket_indices[attrs->pos++];
}
attrs->bucket = bucket;
--attrs->elements;
@@ -172,7 +172,7 @@
Parrot_HashIterator_attributes * const attrs =
PARROT_HASHITERATOR(SELF);
- if (value == 0) {
+ if (value == ITERATE_FROM_START) {
/* Restart iterator */
attrs->bucket = 0;
attrs->pos = 0;
@@ -264,10 +264,17 @@
*/
VTABLE STRING* shift_string() {
- PMC * const key = SELF.shift_pmc();
- STRING * const ret = VTABLE_get_string(INTERP, key);
- Parrot_pmc_free_temporary(INTERP, key);
- return ret;
+ Parrot_HashIterator_attributes * const attrs =
+ PARROT_HASHITERATOR(SELF);
+ HashBucket * const bucket = attrs->bucket;
+
+ if (!attrs->parrot_hash || !attrs->bucket)
+ return CONST_STRING(INTERP, "");
+
+ /* Move to next bucket */
+ advance_to_next(INTERP, SELF);
+
+ return hash_key_to_string(INTERP, attrs->parrot_hash, bucket->key);
}
}
Modified: branches/gc_massacre/src/pmc/imageio.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/imageio.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/imageio.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -132,16 +132,18 @@
return (opcode_t *)(buf + pos);
}
+
PARROT_INLINE
static void
SET_VISIT_CURSOR(ARGMOD(PMC *pmc), ARGIN(const char *cursor))
{
ASSERT_ARGS(SET_VISIT_CURSOR)
- const char *bufstart = (char *)Buffer_bufstart(PARROT_IMAGEIO(pmc)->buffer);
+ const char *bufstart = (char *)Buffer_bufstart(PARROT_IMAGEIO(pmc)->buffer);
PARROT_IMAGEIO(pmc)->pos = (cursor - bufstart);
}
+
PARROT_INLINE
static void
INC_VISIT_CURSOR(ARGMOD(PMC *pmc), UINTVAL inc)
@@ -151,11 +153,10 @@
PARROT_IMAGEIO(pmc)->pos += inc;
}
+
#define BYTECODE_SHIFT_OK(pmc) PARROT_ASSERT( \
PARROT_IMAGEIO(pmc)->pos <= PARROT_IMAGEIO(pmc)->input_length)
-
-
static void
create_buffer(PARROT_INTERP, ARGIN_NULLOK(PMC *pmc), ARGMOD(PMC *info))
{
@@ -166,11 +167,11 @@
if (!PMC_IS_NULL(pmc)) {
STRING * const array = CONST_STRING(interp, "array");
STRING * const hash = CONST_STRING(interp, "hash");
- INTVAL items = 1;
+ INTVAL items = 1;
- if (VTABLE_does(interp, pmc, array) || VTABLE_does(interp, pmc, hash)) {
+ if (VTABLE_does(interp, pmc, array) || VTABLE_does(interp, pmc, hash))
items += VTABLE_elements(interp, pmc);
- }
+
len = items * FREEZE_BYTES_PER_ITEM;
}
else
@@ -181,7 +182,8 @@
Parrot_gc_allocate_buffer_storage_aligned(interp,
PARROT_IMAGEIO(info)->buffer, len);
memset(Buffer_bufstart(PARROT_IMAGEIO(info)->buffer), 0, len);
- SET_VISIT_CURSOR(info, (char *)Buffer_bufstart(PARROT_IMAGEIO(info)->buffer));
+ SET_VISIT_CURSOR(info,
+ (char *)Buffer_bufstart(PARROT_IMAGEIO(info)->buffer));
}
@@ -206,8 +208,10 @@
/* grow by factor 1.5 or such */
if (need_free <= 16) {
size_t new_size = (size_t) (Buffer_buflen(buf) * 1.5);
+
if (new_size < Buffer_buflen(buf) - need_free + 512)
new_size = Buffer_buflen(buf) - need_free + 512;
+
Parrot_gc_reallocate_buffer_storage(interp, buf, new_size);
PARROT_ASSERT(Buffer_buflen(buf) - used - len >= 15);
memset(((char*)Buffer_bufstart(buf)) + used, 0, new_size - used);
@@ -216,9 +220,9 @@
#ifndef DISABLE_GC_DEBUG
Parrot_gc_compact_memory_pool(interp);
#endif
-
}
+
PARROT_WARN_UNUSED_RESULT
PARROT_INLINE
static INTVAL
@@ -229,6 +233,7 @@
return PARROT_IMAGEIO(io)->pos < PARROT_IMAGEIO(io)->input_length;
}
+
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
PARROT_INLINE
@@ -240,6 +245,7 @@
return VTABLE_get_pmc_keyed_int(interp, PARROT_IMAGEIO(io)->todo, id - 1);
}
+
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
PARROT_INLINE
@@ -249,7 +255,7 @@
ASSERT_ARGS(visit_todo_list_thaw)
const UINTVAL n = VTABLE_shift_integer(interp, info);
- const UINTVAL id = PackID_get_PMCID(n);
+ const INTVAL id = PackID_get_PMCID(n);
const int packid_flags = PackID_get_FLAGS(n);
PMC *pmc = PMCNULL;
@@ -262,13 +268,15 @@
break;
case enum_PackID_normal:
{
- PMC * const todo = PARROT_IMAGEIO(info)->todo;
+ 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));
+ 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);
+ 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)
@@ -280,13 +288,15 @@
}
break;
default:
- Parrot_ex_throw_from_c_args(interp, NULL, 1, "Unknown PMC id args thaw %d", packid_flags);
+ Parrot_ex_throw_from_c_args(interp, NULL, 1,
+ "Unknown PMC id args thaw %d", packid_flags);
break;
}
return pmc;
}
+
static void
visit_todo_list_freeze(PARROT_INTERP, ARGIN_NULLOK(PMC* pmc), ARGMOD(PMC* info))
{
@@ -302,10 +312,12 @@
packid_type = enum_PackID_seen;
}
else {
- Hash * const hash = (Hash *)VTABLE_get_pointer(interp, PARROT_IMAGEIO(info)->seen);
+ 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;
+ id = (UINTVAL)b->value;
packid_type = enum_PackID_seen;
}
else {
@@ -318,7 +330,8 @@
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);
+ Hash * const hash = (Hash *)VTABLE_get_pointer(interp,
+ PARROT_IMAGEIO(info)->seen);
PARROT_ASSERT(pmc);
@@ -327,16 +340,19 @@
PObj_flag_CLEAR(private1, info);
VTABLE_push_integer(interp, info,
- PObj_is_object_TEST(pmc) ? (INTVAL) enum_class_Object : pmc->vtable->base_type);
+ 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 position in buffer */
+ ATTR size_t pos; /* current read/write buf position */
ATTR size_t input_length;
ATTR INTVAL what;
ATTR PMC *seen; /* seen hash */
@@ -365,17 +381,17 @@
*/
VTABLE void init() {
- PARROT_IMAGEIO(SELF)->buffer = NULL;
- PARROT_IMAGEIO(SELF)->todo = Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
- PARROT_IMAGEIO(SELF)->seen = PMCNULL;
- PARROT_IMAGEIO(SELF)->id = 0;
- PARROT_IMAGEIO(SELF)->pf = PackFile_new(INTERP, 0);
+ PARROT_IMAGEIO(SELF)->seen = PMCNULL;
+ PARROT_IMAGEIO(SELF)->pf = PackFile_new(INTERP, 0);
+ PARROT_IMAGEIO(SELF)->todo =
+ Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
PObj_flag_CLEAR(private1, SELF);
PObj_custom_mark_destroy_SETALL(SELF);
}
+
/*
=item C<void init_pmc(PMC *pmc)>
@@ -386,13 +402,13 @@
*/
VTABLE void init_pmc(PMC *pmc) {
- PARROT_IMAGEIO(SELF)->buffer = NULL;
- PARROT_IMAGEIO(SELF)->todo = Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
PARROT_IMAGEIO(SELF)->seen = PMCNULL;
- PARROT_IMAGEIO(SELF)->id = 0;
PARROT_IMAGEIO(SELF)->pf = PackFile_new(INTERP, 0);
+ PARROT_IMAGEIO(SELF)->pf_ct =
+ (PackFile_ConstTable *)VTABLE_get_pointer(INTERP, pmc);
+ PARROT_IMAGEIO(SELF)->todo =
+ Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
- PARROT_IMAGEIO(SELF)->pf_ct = (PackFile_ConstTable *)VTABLE_get_pointer(INTERP, pmc);
PObj_flag_SET(private1, SELF);
PObj_custom_mark_destroy_SETALL(SELF);
@@ -413,6 +429,7 @@
PARROT_IMAGEIO(SELF)->pf = NULL;
}
+
/*
=item C<void mark()>
@@ -430,6 +447,7 @@
Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIO(SELF)->seen);
}
+
/*
=item C<STRING *get_string()>
@@ -446,6 +464,7 @@
PARROT_IMAGEIO(SELF)->pos);
}
+
/*
=item C<VTABLE PMC *get_pmc()>
@@ -457,9 +476,11 @@
*/
VTABLE PMC *get_pmc() {
- return VTABLE_get_pmc_keyed_int(INTERP, (PARROT_IMAGEIO(SELF))->todo, 0);
+ return VTABLE_get_pmc_keyed_int(INTERP,
+ (PARROT_IMAGEIO(SELF))->todo, 0);
}
+
/*
=item C<VTABLE PMC *get_iter()>
@@ -478,7 +499,7 @@
=item C<VTABLE INTVAL get_integer()>
-Returns the flags describing the visit action
+Returns the flags describing the visit action.
=cut
@@ -488,6 +509,7 @@
return PARROT_IMAGEIO(SELF)->what;
}
+
/*
=item C<VTABLE void push_integer(INTVAL v)>
@@ -501,7 +523,8 @@
VTABLE void push_integer(INTVAL v) {
const size_t len = PF_size_integer() * sizeof (opcode_t);
ensure_buffer_size(INTERP, SELF, len);
- SET_VISIT_CURSOR(SELF, (char *)PF_store_integer(GET_VISIT_CURSOR(SELF), v));
+ SET_VISIT_CURSOR(SELF,
+ (char *)PF_store_integer(GET_VISIT_CURSOR(SELF), v));
}
@@ -515,11 +538,11 @@
*/
- VTABLE void push_float(FLOATVAL v)
- {
- size_t len = PF_size_number() * sizeof (opcode_t);
+ VTABLE void push_float(FLOATVAL v) {
+ const size_t len = PF_size_number() * sizeof (opcode_t);
ensure_buffer_size(INTERP, SELF, len);
- SET_VISIT_CURSOR(SELF, (char *)PF_store_number(GET_VISIT_CURSOR(SELF), &v));
+ SET_VISIT_CURSOR(SELF,
+ (char *)PF_store_number(GET_VISIT_CURSOR(SELF), &v));
}
@@ -536,33 +559,35 @@
VTABLE void push_string(STRING *v) {
if (PObj_flag_TEST(private1, SELF)) {
/* store a reference to constant table entry of string */
- PMC *v_pmc = key_new_string(interp, v);
+ PMC *v_pmc = key_new_string(interp, v);
PackFile_ConstTable *table = PARROT_IMAGEIO(SELF)->pf_ct;
- int idx = PackFile_ConstTable_rlookup(INTERP, table, v_pmc, PFC_STRING);
+ int idx =
+ PackFile_ConstTable_rlookup(INTERP, table, v_pmc, PFC_STRING);
if (idx >= 0) {
STATICSELF.push_integer(idx);
return;
}
- /* XXX
- * handle cases where the PMC has changed after Parrot_freeze_strings was called
- * eg: :immediate subs
- */
+ /* XXX handle cases where the PMC has changed after
+ * Parrot_freeze_strings was called eg: :immediate subs */
STATICSELF.push_integer(-1);
+
/* TODO
* should really be:
- * PANIC(INTERP, "string not previously in constant table when freezing to packfile");
- */
+ * PANIC(INTERP, "string not previously in constant table "
+ * "when freezing to packfile"); */
}
{
const size_t len = PF_size_string(v) * sizeof (opcode_t);
ensure_buffer_size(INTERP, SELF, len);
- SET_VISIT_CURSOR(SELF, (char *)PF_store_string(GET_VISIT_CURSOR(SELF), v));
+ SET_VISIT_CURSOR(SELF,
+ (char *)PF_store_string(GET_VISIT_CURSOR(SELF), v));
}
}
+
/*
=item C<VTABLE void push_pmc(PMC *v)>
@@ -578,6 +603,23 @@
visit_todo_list_freeze(INTERP, v, SELF);
}
+
+/*
+
+=item C<void set_pointer(void *value)>
+
+Sets the constant table of this ImageIO PMC.
+
+=cut
+
+*/
+
+ VTABLE void set_pointer(void *value) {
+ PObj_flag_SET(private1, SELF);
+ PARROT_IMAGEIO(SELF)->pf_ct = (PackFile_ConstTable *)value;
+ }
+
+
/*
=item C<VTABLE INTVAL shift_integer()>
@@ -588,12 +630,14 @@
*/
- VTABLE INTVAL shift_integer()
- {
- opcode_t *pos = GET_VISIT_CURSOR(SELF);
- INTVAL i = PF_fetch_integer(PARROT_IMAGEIO(SELF)->pf,
- (const opcode_t **)&pos);
- SET_VISIT_CURSOR(SELF, (char *)pos);
+ VTABLE INTVAL shift_integer() {
+ /* inlining PF_fetch_integer speeds up PBC thawing measurably */
+ const PackFile *pf = PARROT_IMAGEIO(SELF)->pf;
+ const opcode_t *pos = GET_VISIT_CURSOR(SELF);
+ const unsigned char *stream = (const unsigned char *)pos;
+ const INTVAL i = pf->fetch_iv(stream);
+
+ SET_VISIT_CURSOR(SELF, (const char *)pos + pf->header->wordsize);
BYTECODE_SHIFT_OK(SELF);
return i;
}
@@ -610,9 +654,8 @@
*/
VTABLE FLOATVAL shift_float() {
- opcode_t *pos = GET_VISIT_CURSOR(SELF);
- FLOATVAL f = PF_fetch_number(PARROT_IMAGEIO(SELF)->pf,
- (const opcode_t **)&pos);
+ const opcode_t *pos = GET_VISIT_CURSOR(SELF);
+ FLOATVAL f = PF_fetch_number(PARROT_IMAGEIO(SELF)->pf, &pos);
SET_VISIT_CURSOR(SELF, (char *)pos);
BYTECODE_SHIFT_OK(SELF);
return f;
@@ -631,16 +674,17 @@
VTABLE STRING *shift_string() {
if (PObj_flag_TEST(private1, SELF)) {
- PackFile_ConstTable *table = PARROT_IMAGEIO(SELF)->pf_ct;
- INTVAL i = STATICSELF.shift_integer();
+ const INTVAL i = STATICSELF.shift_integer();
if (i >= 0) {
- if (! table->constants[i])
+ PackFile_ConstTable *table = PARROT_IMAGEIO(SELF)->pf_ct;
+
+ if (!table->constants[i].type)
Parrot_ex_throw_from_c_args(interp, NULL,
EXCEPTION_MALFORMED_PACKFILE,
"Reference to constant not yet unpacked %d", i);
- return table->constants[i]->u.string;
- }
+ return table->constants[i].u.string;
+ }
/* XXX
* only got here because constant table doesn't contain the string
@@ -649,15 +693,16 @@
}
{
- opcode_t *pos = GET_VISIT_CURSOR(SELF);
- STRING *s = PF_fetch_string(INTERP, PARROT_IMAGEIO(SELF)->pf,
- (const opcode_t **)&pos);
+ const opcode_t *pos = GET_VISIT_CURSOR(SELF);
+ STRING *s = PF_fetch_string(INTERP,
+ PARROT_IMAGEIO(SELF)->pf, &pos);
SET_VISIT_CURSOR(SELF, (char *)pos);
BYTECODE_SHIFT_OK(SELF);
return s;
}
}
+
/*
=item C<static PMC *shift_pmc()>
@@ -674,9 +719,11 @@
VTABLE void set_pmc(PMC *p)
{
- const UINTVAL header_length = GROW_TO_16_BYTE_BOUNDARY(PACKFILE_HEADER_BYTES);
+ const UINTVAL header_length =
+ GROW_TO_16_BYTE_BOUNDARY(PACKFILE_HEADER_BYTES);
+
+ PARROT_IMAGEIO(SELF)->what = VISIT_FREEZE_NORMAL;
- PARROT_IMAGEIO(SELF)->what = VISIT_FREEZE_NORMAL;
create_buffer(INTERP, p, SELF);
ensure_buffer_size(INTERP, SELF, header_length);
mem_sys_memcopy(GET_VISIT_CURSOR(SELF),
@@ -693,15 +740,17 @@
VTABLE void set_string_native(STRING *image) {
PMC *unused;
- const UINTVAL header_length = GROW_TO_16_BYTE_BOUNDARY(PACKFILE_HEADER_BYTES);
- int unpacked_length;
+ int unpacked_length;
+ const UINTVAL header_length =
+ GROW_TO_16_BYTE_BOUNDARY(PACKFILE_HEADER_BYTES);
PARROT_IMAGEIO(SELF)->what = VISIT_THAW_NORMAL;
PARROT_IMAGEIO(SELF)->buffer = (Buffer *)image;
PARROT_ASSERT(image->_bufstart == image->strstart);
- SET_VISIT_CURSOR(SELF, (char *)Buffer_bufstart(PARROT_IMAGEIO(SELF)->buffer));
+ SET_VISIT_CURSOR(SELF,
+ (char *)Buffer_bufstart(PARROT_IMAGEIO(SELF)->buffer));
PARROT_IMAGEIO(SELF)->input_length = image->strlen;
PARROT_IMAGEIO(SELF)->pf->options |= PFOPT_PMC_FREEZE_ONLY;
@@ -723,6 +772,7 @@
Parrot_visit_loop_thawfinish(INTERP, SELF);
}
+
/*
=back
Modified: branches/gc_massacre/src/pmc/key.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/key.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/key.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -78,11 +78,8 @@
break;
case KEY_pmc_FLAG:
case KEY_pmc_FLAG | KEY_register_FLAG:
- {
- PMC * const p = key_pmc(INTERP, key);
- key_set_pmc(INTERP, dkey, VTABLE_clone(INTERP, p));
- }
- break;
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
+ "this is broken - see TT #1683");
default:
break;
}
@@ -223,7 +220,8 @@
*/
VTABLE void set_pmc(PMC *value) {
- key_set_pmc(INTERP, SELF, value);
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
+ "this is broken - see TT #1683");
}
/*
@@ -390,6 +388,18 @@
VTABLE STRING* get_repr() {
return key_set_to_string(INTERP, SELF);
}
+
+/*
+=item C<set_register(reg_no, type)>
+
+Set key to hold particular register.
+
+=cut
+*/
+ METHOD set_register(INTVAL reg_no, INTVAL reg_type) {
+ key_set_register(INTERP, SELF, reg_no, reg_type);
+ }
+
}
/*
Modified: branches/gc_massacre/src/pmc/lexinfo.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/lexinfo.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/lexinfo.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -105,7 +105,7 @@
INTVAL i;
for (i = hash->mask; i >= 0; --i) {
- HashBucket *bucket = hash->bi[i];
+ HashBucket *bucket = hash->bucket_indices[i];
while (bucket) {
if (++found > entries)
Parrot_ex_throw_from_c_args(INTERP, NULL, 1,
Modified: branches/gc_massacre/src/pmc/namespace.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/namespace.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/namespace.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -456,11 +456,11 @@
key = VTABLE_shift_pmc(INTERP, key);
if (!key) {
- Parrot_set_global(INTERP, ns, part, value);
+ Parrot_ns_set_global(INTERP, ns, part, value);
return;
}
- ns = Parrot_make_namespace_keyed_str(INTERP, ns, part);
+ ns = Parrot_ns_make_namespace_keyed_str(INTERP, ns, part);
}
}
@@ -471,11 +471,11 @@
STRING * const part = VTABLE_get_string_keyed_int(INTERP, key, i);
if ((i + 1) >= elements) { /* Last entry in the array */
- Parrot_set_global(INTERP, ns, part, value);
+ Parrot_ns_set_global(INTERP, ns, part, value);
return;
}
- ns = Parrot_make_namespace_keyed_str(INTERP, ns, part);
+ ns = Parrot_ns_make_namespace_keyed_str(INTERP, ns, part);
}
}
@@ -515,7 +515,7 @@
if (!key)
return VTABLE_get_pmc_keyed_str(INTERP, ns, part);
- ns = Parrot_get_namespace_keyed_str(INTERP, ns, part);
+ ns = Parrot_ns_get_namespace_keyed_str(INTERP, ns, part);
if (PMC_IS_NULL(ns))
return PMCNULL;
@@ -531,14 +531,14 @@
/* What to do here? Throw an exception or something? */
break;
}
- ns = Parrot_get_namespace_keyed_str(INTERP, ns, name);
+ ns = Parrot_ns_get_namespace_keyed_str(INTERP, ns, name);
++i;
}
return ns;
}
else {
STRING * const name = VTABLE_get_string(INTERP, key);
- ns = Parrot_get_namespace_keyed_str(INTERP, ns, name);
+ ns = Parrot_ns_get_namespace_keyed_str(INTERP, ns, name);
return ns;
}
/* If we get the wrong type, should we throw an exception?
@@ -605,7 +605,7 @@
if (!key)
return VTABLE_get_pointer_keyed_str(INTERP, ns, part);
- ns = Parrot_get_namespace_keyed_str(INTERP, ns, part);
+ ns = Parrot_ns_get_namespace_keyed_str(INTERP, ns, part);
if (PMC_IS_NULL(ns))
return PMCNULL;
@@ -621,7 +621,7 @@
if ((i + 1) >= elements)
return VTABLE_get_pointer_keyed_str(INTERP, ns, part);
- ns = Parrot_get_namespace_keyed_str(INTERP, ns, part);
+ ns = Parrot_ns_get_namespace_keyed_str(INTERP, ns, part);
if (PMC_IS_NULL(ns))
return PMCNULL;
@@ -729,9 +729,9 @@
*/
METHOD make_namespace(PMC *key) {
- PMC *ns = Parrot_get_namespace_keyed(INTERP, SELF, key);
+ PMC *ns = Parrot_ns_get_namespace_keyed(INTERP, SELF, key);
if (PMC_IS_NULL(ns)) {
- ns = Parrot_make_namespace_keyed(INTERP, SELF, key);
+ ns = Parrot_ns_make_namespace_keyed(INTERP, SELF, key);
}
RETURN(PMC *ns);
}
Modified: branches/gc_massacre/src/pmc/object.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/object.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/object.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -103,7 +103,7 @@
/* there's a semi-predicate problem with a retval of 0 */
if (retval
- || VTABLE_exists_keyed_str(interp, _class->attrib_cache, name)) {
+ || VTABLE_exists_keyed_str(interp, _class->attrib_cache, name)) {
Parrot_pcc_set_HLL(interp, CURRENT_CONTEXT(interp), cur_hll);
return retval;
}
@@ -138,6 +138,7 @@
return -1;
}
+
/* This variation bypasses the cache and finds the index of a particular
* parent's attribute in an object's attribute store and returns it. Returns -1
* if the attribute does not exist. */
@@ -148,8 +149,10 @@
{
ASSERT_ARGS(get_attrib_index_keyed)
Parrot_Class_attributes * const _class = PARROT_CLASS(self);
- PMC * const class_cache = VTABLE_get_pmc_keyed_str(interp,
- _class->attrib_cache, VTABLE_get_string(interp, key));
+ PMC * const class_cache =
+ VTABLE_get_pmc_keyed_str(interp, _class->attrib_cache,
+ VTABLE_get_string(interp, key));
+
PMC *parent_class;
STRING *fq_name;
@@ -173,6 +176,7 @@
return -1;
}
+
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static PMC *
@@ -188,8 +192,10 @@
return VTABLE_get_pmc_keyed_str(interp, cache, name);
}
+
static void
-cache_method(PARROT_INTERP, ARGIN(PMC *_class), ARGIN(STRING *name), ARGIN(PMC *method))
+cache_method(PARROT_INTERP, ARGIN(PMC *_class), ARGIN(STRING *name),
+ARGIN(PMC *method))
{
ASSERT_ARGS(cache_method)
PMC *cache;
@@ -207,6 +213,7 @@
ATTR PMC *_class; /* The class this is an instance of. */
ATTR PMC *attrib_store; /* The attributes store - a resizable PMC array. */
+
/*
=item C<void init()>
@@ -238,6 +245,7 @@
"Object must be created by a class.");
}
+
/*
=item C<void destroy()>
@@ -250,6 +258,7 @@
VTABLE void destroy() {
}
+
/*
=item C<STRING *name()>
@@ -265,18 +274,19 @@
STRING * const name = CONST_STRING(INTERP, "name");
/* If there's a vtable override for 'name' run that instead. */
- PMC * const method = Parrot_oo_find_vtable_override(INTERP, _class, name);
+ PMC * const method = Parrot_oo_find_vtable_override(INTERP,
+ _class, name);
if (!PMC_IS_NULL(method)) {
STRING *result = NULL;
- Parrot_pcc_invoke_sub_from_c_args(INTERP, method, "Pi->S",
- SELF, &result);
+ Parrot_ext_call(INTERP, method, "Pi->S", SELF, &result);
return result;
}
else
return VTABLE_get_string(INTERP, _class);
}
+
/*
=item C<void mark()>
@@ -295,6 +305,7 @@
}
}
+
/*
=item C<PMC *get_attr_str(STRING *name)>
@@ -307,7 +318,8 @@
*/
VTABLE PMC *get_attr_str(STRING *name) {
Parrot_Object_attributes * const obj = PARROT_OBJECT(SELF);
- STRING * const get_attr = CONST_STRING(INTERP, "get_attr_str");
+ STRING * const get_attr = CONST_STRING(INTERP, "get_attr_str");
+
INTVAL index;
/* If there's a vtable override for 'get_attr_str' run that first. */
@@ -316,8 +328,7 @@
if (!PMC_IS_NULL(method)) {
PMC *result = PMCNULL;
- Parrot_pcc_invoke_sub_from_c_args(INTERP, method, "PiS->P",
- SELF, name, &result);
+ Parrot_ext_call(INTERP, method, "PiS->P", SELF, name, &result);
return result;
}
@@ -326,12 +337,13 @@
/* If lookup failed, exception. */
if (index == -1)
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
- "No such attribute '%S'", name);
+ Parrot_ex_throw_from_c_args(INTERP, NULL,
+ EXCEPTION_ATTRIB_NOT_FOUND, "No such attribute '%S'", name);
return VTABLE_get_pmc_keyed_int(INTERP, obj->attrib_store, index);
}
+
/*
=item C<PMC *get_attr_keyed(PMC *key, STRING *name)>
@@ -346,17 +358,20 @@
Parrot_Object_attributes * const obj = PARROT_OBJECT(SELF);
/* Look up the index. */
- const INTVAL index = get_attrib_index_keyed(INTERP, obj->_class, key, name);
+ const INTVAL index = get_attrib_index_keyed(INTERP, obj->_class,
+ key, name);
/* If lookup failed, exception. */
if (index == -1)
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
+ Parrot_ex_throw_from_c_args(INTERP, NULL,
+ EXCEPTION_ATTRIB_NOT_FOUND,
"No such attribute '%S' in class '%S'", name,
VTABLE_get_string(INTERP, key));
return VTABLE_get_pmc_keyed_int(INTERP, obj->attrib_store, index);
}
+
/*
=item C<void set_attr_str(STRING *name, PMC *value)>
@@ -368,16 +383,16 @@
*/
VTABLE void set_attr_str(STRING *name, PMC *value) {
- Parrot_Object_attributes * const obj = PARROT_OBJECT(SELF);
- STRING * const vtable_meth_name = CONST_STRING(INTERP, "set_attr_str");
+ Parrot_Object_attributes * const obj = PARROT_OBJECT(SELF);
+ STRING * const vtable_meth_name = CONST_STRING(INTERP, "set_attr_str");
INTVAL index;
/* If there's a vtable override for 'set_attr_str' run that first. */
PMC * const method = Parrot_oo_find_vtable_override(INTERP,
VTABLE_get_class(INTERP, SELF), vtable_meth_name);
+
if (!PMC_IS_NULL(method)) {
- Parrot_pcc_invoke_sub_from_c_args(INTERP, method, "PiSP->",
- SELF, name, value);
+ Parrot_ext_call(INTERP, method, "PiSP->", SELF, name, value);
return;
}
@@ -385,12 +400,13 @@
/* If lookup failed, exception. */
if (index == -1)
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
- "No such attribute '%S'", name);
+ Parrot_ex_throw_from_c_args(INTERP, NULL,
+ EXCEPTION_ATTRIB_NOT_FOUND, "No such attribute '%S'", name);
VTABLE_set_pmc_keyed_int(INTERP, obj->attrib_store, index, value);
}
+
/*
=item C<void set_attr_keyed(PMC *key, STRING *name, PMC *value)>
@@ -402,18 +418,21 @@
*/
VTABLE void set_attr_keyed(PMC *key, STRING *name, PMC *value) {
- Parrot_Object_attributes * const obj = PARROT_OBJECT(SELF);
- const INTVAL index = get_attrib_index_keyed(INTERP, obj->_class, key, name);
+ Parrot_Object_attributes * const obj = PARROT_OBJECT(SELF);
+ const INTVAL index =
+ get_attrib_index_keyed(INTERP, obj->_class, key, name);
/* If lookup failed, exception. */
if (index == -1)
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
+ Parrot_ex_throw_from_c_args(INTERP, NULL,
+ EXCEPTION_ATTRIB_NOT_FOUND,
"No such attribute '%S' in class '%S'", name,
VTABLE_get_string(INTERP, key));
VTABLE_set_pmc_keyed_int(INTERP, obj->attrib_store, index, value);
}
+
/*
=item C<PMC *find_method(STRING *name)>
@@ -426,7 +445,8 @@
VTABLE PMC *find_method(STRING *name) {
Parrot_Object_attributes * const obj = PARROT_OBJECT(SELF);
Parrot_Class_attributes * const _class = PARROT_CLASS(obj->_class);
- PMC *method = find_cached(INTERP, obj->_class, name);
+ PMC *method =
+ find_cached(INTERP, obj->_class, name);
if (!PMC_IS_NULL(method))
return method;
@@ -455,8 +475,7 @@
if (!PMC_IS_NULL(method)) {
PMC *result = PMCNULL;
- Parrot_pcc_invoke_sub_from_c_args(INTERP, method,
- "PiS->P", SELF, name, &result);
+ Parrot_ext_call(INTERP, method, "PiS->P", SELF, name, &result);
/* break out to the CACHE IF FOUND code */
method = result;
@@ -486,6 +505,7 @@
}
}
+
/*
=item C<INTVAL get_integer()>
@@ -498,37 +518,41 @@
VTABLE INTVAL get_integer() {
Parrot_Object_attributes * const obj = PARROT_OBJECT(SELF);
Parrot_Class_attributes * const _class = PARROT_CLASS(obj->_class);
- STRING * const meth_name = CONST_STRING(INTERP, "get_integer");
+ STRING * const meth_name = CONST_STRING(INTERP, "get_integer");
/* Walk and search for the vtable. */
const int num_classes = VTABLE_elements(INTERP, _class->all_parents);
- int i;
+ int i;
+
for (i = 0; i < num_classes; i++) {
/* Get the class. */
- PMC * const cur_class = VTABLE_get_pmc_keyed_int(INTERP, _class->all_parents, i);
+ PMC * const cur_class =
+ VTABLE_get_pmc_keyed_int(INTERP, _class->all_parents, i);
PMC * const meth = Parrot_oo_find_vtable_override_for_class(INTERP,
cur_class, meth_name);
+
if (!PMC_IS_NULL(meth)) {
INTVAL result;
- Parrot_pcc_invoke_sub_from_c_args(INTERP, meth, "Pi->I", SELF, &result);
+ Parrot_ext_call(INTERP, meth, "Pi->I", SELF, &result);
return result;
}
+
if (cur_class->vtable->base_type == enum_class_PMCProxy) {
/* Get the PMC instance and call the vtable function on that. */
STRING * const proxy = CONST_STRING(INTERP, "proxy");
- PMC * const del_object = VTABLE_get_attr_str(INTERP, SELF, proxy);
+ PMC * const del_object =
+ VTABLE_get_attr_str(INTERP, SELF, proxy);
- if (!PMC_IS_NULL(del_object)) {
+ if (!PMC_IS_NULL(del_object))
return (INTVAL)VTABLE_get_integer(INTERP, del_object);
-
- }
}
}
return INTERP->vtables[enum_class_default]->get_integer(INTERP, SELF);
}
+
/*
=item C<PMC *get_class()>
@@ -541,20 +565,21 @@
VTABLE PMC *get_class() {
PMC * const classobj = PARROT_OBJECT(SELF)->_class;
STRING * const get_class = CONST_STRING(INTERP, "get_class");
+
/* If there's a vtable override for 'get_class' run that instead. */
- PMC * const method = Parrot_oo_find_vtable_override(INTERP,
+ PMC * const method = Parrot_oo_find_vtable_override(INTERP,
classobj, get_class);
if (!PMC_IS_NULL(method)) {
PMC *result;
- Parrot_pcc_invoke_sub_from_c_args(INTERP, method, "Pi->P",
- SELF, &result);
+ Parrot_ext_call(INTERP, method, "Pi->P", SELF, &result);
return result;
}
return classobj;
}
+
/*
=item C<PMC *get_namespace()>
@@ -568,21 +593,21 @@
VTABLE PMC *get_namespace() {
PMC * const classobj = VTABLE_get_class(INTERP, SELF);
STRING * const get_namespace = CONST_STRING(INTERP, "get_namespace");
- /* If there's a vtable override for 'get_namespace' run that instead. */
- PMC * const method = Parrot_oo_find_vtable_override(INTERP,
+
+ /* If there's a vtable override for 'get_namespace' run that instead */
+ PMC * const method = Parrot_oo_find_vtable_override(INTERP,
classobj, get_namespace);
if (!PMC_IS_NULL(method)) {
PMC *result;
- Parrot_pcc_invoke_sub_from_c_args(INTERP, method, "Pi->P",
- SELF, &result);
+ Parrot_ext_call(INTERP, method, "Pi->P", SELF, &result);
return result;
}
- else
- return VTABLE_inspect_str(INTERP, classobj, CONST_STRING(INTERP, "namespace"));
+ return VTABLE_inspect_str(INTERP, classobj, CONST_STRING(INTERP, "namespace"));
}
+
/*
=item C<INTVAL can(STRING *method_name)>
@@ -595,10 +620,12 @@
*/
VTABLE INTVAL can(STRING *method_name) {
/* Just use find_method and see it if finds anything. */
- const PMC * const method = VTABLE_find_method(INTERP, SELF, method_name);
+ const PMC * const method =
+ VTABLE_find_method(INTERP, SELF, method_name);
return !PMC_IS_NULL(method);
}
+
/*
=item C<INTVAL isa_pmc(PMC *classname)>
@@ -620,6 +647,7 @@
return VTABLE_isa_pmc(INTERP, VTABLE_get_class(INTERP, SELF), lookup);
}
+
/*
=item C<INTVAL isa(STRING *classname)>
@@ -631,15 +659,15 @@
*/
VTABLE INTVAL isa(STRING *classname) {
- PMC *_class;
-
if (SUPER(classname))
return 1;
-
- _class = VTABLE_get_class(INTERP, SELF);
- return VTABLE_isa(INTERP, _class, classname);
+ else {
+ PMC * _class = VTABLE_get_class(INTERP, SELF);
+ return VTABLE_isa(INTERP, _class, classname);
+ }
}
+
/*
=item C<INTVAL does(STRING *role_name)>
@@ -663,12 +691,12 @@
if (!PMC_IS_NULL(method)) {
INTVAL result;
- Parrot_pcc_invoke_sub_from_c_args(INTERP, method,
- "PiS->I", SELF, role_name, &result);
+ Parrot_ext_call(INTERP, method, "PiS->I", SELF, role_name, &result);
if (result)
return 1;
}
}
+
/* Check the superclass's vtable interface, if any. */
if (SUPER(role_name))
return 1;
@@ -677,6 +705,7 @@
return VTABLE_does(INTERP, VTABLE_get_class(INTERP, SELF), role_name);
}
+
/*
=item C<INTVAL does_pmc(PMC *role)>
@@ -698,6 +727,7 @@
return VTABLE_does_pmc(INTERP, VTABLE_get_class(INTERP, SELF), role);
}
+
/*
=item C<opcode_t *invoke(void *next)>
@@ -720,17 +750,19 @@
/* Get the class. */
STRING * const meth_name = CONST_STRING(INTERP, "invoke");
STRING * const proxy = CONST_STRING(INTERP, "proxy");
- PMC * const cur_class =
+ PMC * const cur_class =
VTABLE_get_pmc_keyed_int(INTERP, _class->all_parents, i);
- PMC * const meth =
+ PMC * const meth =
Parrot_oo_find_vtable_override_for_class(INTERP, cur_class,
meth_name);
if (!PMC_IS_NULL(meth)) {
/* Experimental code. See DEPRECATED.pod */
- PMC *call_sig = Parrot_pcc_get_signature(INTERP, CURRENT_CONTEXT(INTERP));
- if ((VTABLE_elements(INTERP, call_sig) == 0 ||
- VTABLE_get_pmc_keyed_int(INTERP, call_sig, 0) != SELF))
+ PMC *call_sig =
+ Parrot_pcc_get_signature(INTERP, CURRENT_CONTEXT(INTERP));
+
+ if ((VTABLE_elements(INTERP, call_sig) == 0
+ || VTABLE_get_pmc_keyed_int(INTERP, call_sig, 0) != SELF))
VTABLE_unshift_pmc(INTERP, call_sig, SELF);
return VTABLE_invoke(INTERP, meth, next);
@@ -749,6 +781,7 @@
return (opcode_t *)INTERP->vtables[enum_class_default]->invoke(INTERP, SELF, next);
}
+
/*
=item C<INTVAL type()>
@@ -764,6 +797,7 @@
return VTABLE_type(INTERP, _class);
}
+
/*
=item C<PMC * clone()>
@@ -779,20 +813,19 @@
/* If we have a custom override, invoke it.
* If not, use the oo function. */
STRING * const meth_name = CONST_STRING(INTERP, "clone");
- PMC * const meth =
+ PMC * const meth =
Parrot_oo_find_vtable_override(INTERP, obj->_class, meth_name);
- PMC *result;
if (!PMC_IS_NULL(meth)) {
- Parrot_pcc_invoke_sub_from_c_args(INTERP, meth, "Pi->P", SELF, &result);
- }
- else {
- result = Parrot_oo_clone_object(INTERP, SELF, NULL);
+ PMC *result;
+ Parrot_ext_call(INTERP, meth, "Pi->P", SELF, &result);
+ return result;
}
- return result;
+ return Parrot_oo_clone_object(INTERP, SELF, NULL);
}
+
/*
=item C<void visit(PMC *info)>
@@ -815,6 +848,7 @@
VISIT_PMC(INTERP, info, obj_data->attrib_store);
}
+
/*
=item C<void freeze(PMC *info)>
@@ -828,13 +862,12 @@
*/
VTABLE void freeze(PMC *info) {
- return;
}
VTABLE void thaw(PMC *info) {
- return;
}
+
/*
=item C<void thawfinish(PMC *info)>
@@ -854,6 +887,7 @@
PObj_is_object_SET(SELF);
}
+
/*
=item C<PMC * share_ro()>
@@ -913,6 +947,7 @@
return ret;
}
+
/*
=item C<void morph(PMC* type)>
@@ -927,12 +962,11 @@
PMC * const classobj = VTABLE_get_class(INTERP, SELF);
STRING * const meth_name = CONST_STRING(INTERP, "morph");
/* If there's a vtable override for 'morph' run that instead. */
- PMC * const method = Parrot_oo_find_vtable_override(INTERP,
- classobj, meth_name);
+ PMC * const method =
+ Parrot_oo_find_vtable_override(INTERP, classobj, meth_name);
if (!PMC_IS_NULL(method))
- Parrot_pcc_invoke_sub_from_c_args(INTERP, method, "PiP->",
- SELF, type);
+ Parrot_ext_call(INTERP, method, "PiP->", SELF, type);
else
SUPER(type);
}
Modified: branches/gc_massacre/src/pmc/oplib.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/oplib.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/oplib.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -89,7 +89,7 @@
}
VTABLE PMC* get_pmc_keyed_int(INTVAL value) {
- if ((UINTVAL)value > INTERP->op_lib->op_count)
+ if ((UINTVAL)value >= INTERP->op_lib->op_count)
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
"OpLib: Opcode index %d out of bounds", value);
else {
@@ -99,10 +99,14 @@
}
}
- VTABLE INTVAL get_integer() {
+ VTABLE INTVAL elements() {
return INTERP->op_lib->op_count;
}
+ VTABLE INTVAL get_integer() {
+ return STATICSELF.elements();
+ }
+
METHOD op_family(STRING *shortname)
{
char * const sname = Parrot_str_to_cstring(INTERP, shortname);
Modified: branches/gc_massacre/src/pmc/orderedhashiterator.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/orderedhashiterator.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/orderedhashiterator.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -95,21 +95,22 @@
/* Restart iterator */
attrs->elements = VTABLE_elements(INTERP, attrs->pmc_hash);
- if (value == ITERATE_FROM_START || value == ITERATE_FROM_START_KEYS) {
+ switch (value) {
+ case ITERATE_FROM_START:
+ case ITERATE_FROM_START_KEYS:
attrs->pos = 0;
attrs->reverse = 0;
attrs->next_entry = PARROT_ORDEREDHASH(attrs->pmc_hash)->first;
- return;
- }
- else if (value == ITERATE_FROM_END) {
+ break;
+ case ITERATE_FROM_END:
attrs->pos = attrs->elements;
attrs->reverse = 1;
attrs->next_entry = PARROT_ORDEREDHASH(attrs->pmc_hash)->last;
- return;
+ break;
+ default:
+ Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
+ "HashIterator: unknown iterator type");
}
-
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
- "HashIterator: unknown iterator type");
};
/*
Modified: branches/gc_massacre/src/pmc/packfileconstanttable.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/packfileconstanttable.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/packfileconstanttable.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -92,7 +92,6 @@
PARROT_PACKFILECONSTANTTABLE(SELF);
const PackFile_ConstTable * const table =
(const PackFile_ConstTable *)(pointer);
- const PackFile_Constant * val;
opcode_t i;
/* Preallocate required amount of memory */
@@ -100,7 +99,7 @@
VTABLE_set_integer_native(INTERP, attrs->types, table->const_count);
for (i = 0; i < table->const_count; ++i) {
- val = table->constants[i];
+ const PackFile_Constant * val = &table->constants[i];
switch (val->type) {
case PFC_NONE:
break;
@@ -141,10 +140,10 @@
/* Copy all constanst with respect of type */
pftable->const_count = VTABLE_get_integer(INTERP, attrs->constants);
pftable->constants = mem_gc_allocate_n_typed(INTERP,
- pftable->const_count, PackFile_Constant*);
+ pftable->const_count, PackFile_Constant);
for (i = 0; i < pftable->const_count; ++i) {
- PackFile_Constant * const value = PackFile_Constant_new(INTERP);
+ PackFile_Constant * const value = &pftable->constants[i];
value->type = VTABLE_get_integer_keyed_int(INTERP, attrs->types, i);
switch (value->type) {
case PFC_NONE:
@@ -167,8 +166,6 @@
EXCEPTION_MALFORMED_PACKFILE,
"Unknown PackFile constant type: %d", value->type);
}
-
- pftable->constants[i] = value;
}
return pftable;
Modified: branches/gc_massacre/src/pmc/packfilefixupentry.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/packfilefixupentry.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/packfilefixupentry.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -47,6 +47,23 @@
PObj_custom_mark_SET(SELF);
}
+ VTABLE void init_pmc(PMC *init) {
+ Parrot_PackfileFixupEntry_attributes * attrs =
+ PMC_data_typed(SELF, Parrot_PackfileFixupEntry_attributes*);
+ STRING *name = CONST_STRING_GEN(INTERP, "name");
+ STRING *type = CONST_STRING_GEN(INTERP, "type");
+ STRING *offset = CONST_STRING_GEN(INTERP, "offset");
+
+ attrs->name = VTABLE_get_string(INTERP,
+ VTABLE_get_pmc_keyed_str(INTERP, init, name));
+ attrs->type = VTABLE_get_integer(INTERP,
+ VTABLE_get_pmc_keyed_str(INTERP, init, type));
+ attrs->offset = VTABLE_get_integer(INTERP,
+ VTABLE_get_pmc_keyed_str(INTERP, init, offset));
+
+ PObj_custom_mark_SET(SELF);
+ }
+
/*
=item C<void mark()>
Modified: branches/gc_massacre/src/pmc/packfilerawsegment.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/packfilerawsegment.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/packfilerawsegment.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -147,6 +147,15 @@
PARROT_PACKFILERAWSEGMENT(SELF)->opcodes);
}
+ VTABLE INTVAL get_integer() {
+ return VTABLE_elements(INTERP,
+ PARROT_PACKFILERAWSEGMENT(SELF)->opcodes);
+ }
+
+ VTABLE FLOATVAL get_number() {
+ return VTABLE_elements(INTERP,
+ PARROT_PACKFILERAWSEGMENT(SELF)->opcodes);
+ }
/*
@@ -177,6 +186,12 @@
PARROT_PACKFILERAWSEGMENT(SELF)->opcodes, key, value);
}
+ VTABLE void set_pmc_keyed(PMC *key, PMC *value) {
+ SELF.set_integer_keyed_int(
+ VTABLE_get_integer(INTERP, key),
+ VTABLE_get_integer(INTERP, value));
+ }
+
/*
=item C<void push_integer(INTVAL value)>
@@ -191,6 +206,12 @@
PARROT_PACKFILERAWSEGMENT(SELF)->opcodes, value);
}
+ VTABLE void push_pmc(PMC *value) {
+ VTABLE_push_integer(INTERP,
+ PARROT_PACKFILERAWSEGMENT(SELF)->opcodes,
+ VTABLE_get_integer(INTERP, value));
+ }
+
/*
=item C<METHOD type()>
Modified: branches/gc_massacre/src/pmc/parrotinterpreter.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/parrotinterpreter.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/parrotinterpreter.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -844,6 +844,7 @@
METHOD stdhandle(INTVAL fileno, PMC *newhandle :optional) {
PMC * const handle = Parrot_io_stdhandle(INTERP, fileno, newhandle);
+ Parrot_warn_deprecated(INTERP, "stdhandle method is experimental");
RETURN(PMC *handle);
}
Modified: branches/gc_massacre/src/pmc/pmcproxy.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/pmcproxy.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/pmcproxy.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -81,38 +81,18 @@
*/
VTABLE void init() {
- Parrot_Class_attributes * const _pmc =
- (Parrot_Class_attributes *) PMC_data(SELF);
- PMC * const new_attribute = Parrot_pmc_new(INTERP, enum_class_Hash);
- STRING * const name = CONST_STRING(INTERP, "proxy");
+ Parrot_PMCProxy_attributes * const _pmc = PARROT_PMCPROXY(SELF);
+ STRING * const name = CONST_STRING(INTERP, "proxy");
+ PMC * const new_attribute
+ = Parrot_pmc_new(INTERP, enum_class_Hash);
- /* Set flag for custom GC mark. */
- PObj_custom_mark_SET(SELF);
-
- /* Set up the object. */
- _pmc->id = 0;
- _pmc->name = CONST_STRING(INTERP, "");
- _pmc->_namespace = PMCNULL;
- _pmc->parents = Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
- _pmc->all_parents = Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
- _pmc->roles = Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
- _pmc->methods = Parrot_pmc_new(INTERP, enum_class_Hash);
- _pmc->vtable_overrides = Parrot_pmc_new(INTERP, enum_class_Hash);
- _pmc->parent_overrides = Parrot_pmc_new(INTERP, enum_class_Hash);
- _pmc->attrib_metadata = Parrot_pmc_new(INTERP, enum_class_Hash);
- _pmc->attrib_index = PMCNULL;
- _pmc->attrib_cache = PMCNULL;
- _pmc->resolve_method = Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
+ SUPER();
/* Set up the attribute storage for the proxy instance */
VTABLE_set_string_keyed_str(INTERP, new_attribute, CONST_STRING(INTERP, "name"), name);
VTABLE_set_pmc_keyed_str(INTERP, _pmc->attrib_metadata, name, new_attribute);
- /* We put ourself on the all parents list. */
- VTABLE_push_pmc(INTERP, _pmc->all_parents, SELF);
-
- /* We are a class. */
- PObj_is_class_SET(SELF);
+ CLASS_is_anon_CLEAR(SELF);
}
VTABLE void init_int(INTVAL type_num) {
@@ -251,12 +231,8 @@
/* Look in the isa hash. */
if (INTERP->vtables[_proxy->id]) {
Hash *isa_hash = INTERP->vtables[_proxy->id]->isa_hash;
-
- if (!isa_hash && Parrot_str_equal(INTERP,
- INTERP->vtables[_proxy->id]->whoami, classname))
- return 1;
-
- if (isa_hash && parrot_hash_exists(INTERP, isa_hash, classname))
+ PARROT_ASSERT(isa_hash);
+ if (parrot_hash_exists(INTERP, isa_hash, classname))
return 1;
}
Modified: branches/gc_massacre/src/pmc/resizableintegerarray.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/resizableintegerarray.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/resizableintegerarray.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -313,8 +313,12 @@
}
VTABLE void thaw(PMC *info) {
- const INTVAL n = VTABLE_shift_integer(INTERP, info);
- const INTVAL rt = VTABLE_shift_integer(INTERP, info);
+ INTVAL n, rt;
+
+ SUPER(info);
+
+ n = VTABLE_shift_integer(INTERP, info);
+ rt = VTABLE_shift_integer(INTERP, info);
SET_ATTR_size(INTERP, SELF, 0);
SET_ATTR_resize_threshold(INTERP, SELF, rt);
Modified: branches/gc_massacre/src/pmc/resizablepmcarray.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/resizablepmcarray.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/resizablepmcarray.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -27,6 +27,16 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+PARROT_INLINE
+static void do_shift(ARGIN(PMC *arr))
+ __attribute__nonnull__(1);
+
+PARROT_INLINE
+static void do_unshift(PARROT_INTERP, ARGIN(PMC *arr), ARGIN(PMC *val))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
PARROT_DOES_NOT_RETURN
static void throw_pop_empty(PARROT_INTERP)
__attribute__nonnull__(1);
@@ -35,6 +45,12 @@
static void throw_shift_empty(PARROT_INTERP)
__attribute__nonnull__(1);
+#define ASSERT_ARGS_do_shift __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(arr))
+#define ASSERT_ARGS_do_unshift __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(arr) \
+ , PARROT_ASSERT_ARG(val))
#define ASSERT_ARGS_throw_pop_empty __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_throw_shift_empty __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -42,6 +58,34 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
+PARROT_INLINE
+static void
+do_shift(ARGIN(PMC *arr))
+{
+ ASSERT_ARGS(do_shift)
+ INTVAL size = PMC_size(arr);
+ PMC **item = PMC_array(arr);
+
+ PMC_size(arr) = --size;
+ mem_sys_memmove(item, item + 1, size * sizeof (PMC *));
+ item[size] = PMCNULL;
+}
+
+PARROT_INLINE
+static void
+do_unshift(PARROT_INTERP, ARGIN(PMC *arr), ARGIN(PMC *val))
+{
+ ASSERT_ARGS(do_unshift)
+ const INTVAL size = PMC_size(arr);
+ PMC **item;
+
+ VTABLE_set_integer_native(interp, arr, size + 1);
+ item = PMC_array(arr);
+ mem_sys_memmove(item + 1, item, size * sizeof (PMC *));
+ item[0] = val;
+}
+
+
pmclass ResizablePMCArray extends FixedPMCArray auto_attrs provides array {
ATTR INTVAL resize_threshold; /* max size before array needs resizing */
@@ -143,82 +187,50 @@
*/
VTABLE FLOATVAL shift_float() {
- INTVAL size = PMC_size(SELF);
- PMC *data;
- PMC **item;
- FLOATVAL value;
+ INTVAL size = PMC_size(SELF);
+ FLOATVAL value;
if (0 == size)
throw_shift_empty(INTERP);
- item = PMC_array(SELF);
- data = item[0];
- value = VTABLE_get_number(INTERP, data);
- PMC_size(SELF) = --size;
-
- mem_sys_memmove(item, item + 1, size * sizeof (PMC *));
-
- item[size] = PMCNULL;
-
+ value = VTABLE_get_number(INTERP, PMC_array(SELF)[0]);
+ do_shift(SELF);
return value;
}
VTABLE INTVAL shift_integer() {
- INTVAL size = PMC_size(SELF);
- PMC *data;
- PMC **item;
- INTVAL value;
+ INTVAL size = PMC_size(SELF);
+ INTVAL value;
if (0 == size)
throw_shift_empty(INTERP);
- item = PMC_array(SELF);
- data = item[0];
- value = VTABLE_get_integer(INTERP, data);
- PMC_size(SELF) = --size;
-
- mem_sys_memmove(item, item + 1, size * sizeof (PMC*));
- item[size] = PMCNULL;
-
+ value = VTABLE_get_integer(INTERP, PMC_array(SELF)[0]);
+ do_shift(SELF);
return value;
}
VTABLE PMC *shift_pmc() {
- INTVAL size = PMC_size(SELF);
- PMC *data;
- PMC **item;
+ INTVAL size = PMC_size(SELF);
+ PMC *data;
if (0 == size)
throw_shift_empty(INTERP);
- item = PMC_array(SELF);
- data = item[0];
- PMC_size(SELF) = --size;
-
- mem_sys_memmove(item, item + 1, size * sizeof (PMC *));
- item[size] = PMCNULL;
-
+ data = PMC_array(SELF)[0];
+ do_shift(SELF);
return data;
}
VTABLE STRING *shift_string() {
INTVAL size = PMC_size(SELF);
- PMC *data;
- PMC **item;
STRING *value;
if (0 == size)
throw_shift_empty(INTERP);
- item = PMC_array(SELF);
- data = item[0];
- value = VTABLE_get_string(INTERP, data);
- PMC_size(SELF) = --size;
-
- mem_sys_memmove(item, item + 1, size * sizeof (PMC *));
-
- item[size] = PMCNULL;
-
+ value = VTABLE_get_string(INTERP, PMC_array(SELF)[0]);
+ do_shift(SELF);
return value;
}
@@ -515,79 +527,27 @@
VTABLE void unshift_float(FLOATVAL value) {
- const INTVAL size = PMC_size(SELF);
- PMC * const val = Parrot_pmc_new(INTERP, enum_class_Float);
- PMC **data;
- INTVAL i;
-
+ PMC * const val = Parrot_pmc_new(INTERP, enum_class_Float);
VTABLE_set_number_native(INTERP, val, value);
- SELF.set_integer_native(size + 1);
-
- data = PMC_array(SELF);
-
- for (i = size; i; --i)
- data[i] = data[i - 1];
-
- data[0] = val;
-
- return;
+ do_unshift(INTERP, SELF, val);
}
VTABLE void unshift_integer(INTVAL value) {
- const INTVAL size = PMC_size(SELF);
- PMC * const val = Parrot_pmc_new_init_int(INTERP, enum_class_Integer, value);
- PMC **data;
- INTVAL i;
-
- SELF.set_integer_native(size + 1);
-
- data = PMC_array(SELF);
-
- for (i = size; i; --i)
- data[i] = data[i - 1];
-
- data[0] = val;
-
- return;
+ PMC * const val = Parrot_pmc_new_init_int(INTERP, enum_class_Integer, value);
+ do_unshift(INTERP, SELF, val);
}
VTABLE void unshift_pmc(PMC *value) {
- const INTVAL size = PMC_size(SELF);
- PMC **data;
- INTVAL i;
-
- SELF.set_integer_native(size + 1);
-
- data = PMC_array(SELF);
-
- for (i = size; i; --i)
- data[i] = data[i - 1];
-
- data[0] = value;
-
- return;
+ do_unshift(INTERP, SELF, value);
}
VTABLE void unshift_string(STRING *value) {
- const INTVAL size = PMC_size(SELF);
- PMC * const val = Parrot_pmc_new(INTERP, enum_class_String);
- PMC **data;
- INTVAL i;
-
+ PMC * const val = Parrot_pmc_new(INTERP, enum_class_String);
VTABLE_set_string_native(INTERP, val, value);
- SELF.set_integer_native(size + 1);
-
- data = PMC_array(SELF);
-
- for (i = size; i; --i)
- data[i] = data[i - 1];
-
- data[0] = val;
-
- return;
+ do_unshift(INTERP, SELF, val);
}
/*
@@ -790,6 +750,14 @@
=over 4
+=item C<static void do_shift(PMC *arr)>
+
+Common part for shift operations.
+
+=item C<static void do_unshift(PARROT_INTERP, PMC *arr, PMC *val)>
+
+Common part for unshift operations.
+
=item C<static void throw_shift_empty(PARROT_INTERP)>
=item C<static void throw_pop_empty(PARROT_INTERP)>
Modified: branches/gc_massacre/src/pmc/role.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/role.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/role.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -101,7 +101,7 @@
* to look one up with and do so. */
PMC *_namespace = VTABLE_get_pmc_keyed_str(interp, info, namespace_str);
if (!VTABLE_isa(interp, _namespace, ns_string))
- _namespace = Parrot_make_namespace_autobase(interp, _namespace);
+ _namespace = Parrot_ns_make_namespace_autobase(interp, _namespace);
/* If we get something null back it's an error; otherwise, store it. */
if (!PMC_IS_NULL(_namespace))
@@ -121,7 +121,7 @@
/* Namespace is nested in the current namespace and with the name of
* the role. */
- role->_namespace = Parrot_make_namespace_keyed_str(interp,
+ role->_namespace = Parrot_ns_make_namespace_keyed_str(interp,
Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp)), role->name);
}
@@ -131,7 +131,7 @@
* to look one up with and do so. */
PMC *_namespace = VTABLE_get_pmc_keyed_str(interp, info, namespace_str);
if (!VTABLE_isa(interp, _namespace, ns_string))
- _namespace = Parrot_make_namespace_autobase(interp, _namespace);
+ _namespace = Parrot_ns_make_namespace_autobase(interp, _namespace);
/* If we get something null back it's an error; otherwise, store it. */
if (PMC_IS_NULL(_namespace))
Modified: branches/gc_massacre/src/pmc/scheduler.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/scheduler.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/scheduler.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -251,6 +251,7 @@
*/
VTABLE void destroy() {
Parrot_Scheduler_attributes * const core_struct = PARROT_SCHEDULER(SELF);
+ core_struct->interp->scheduler = NULL;
/* TT #946: this line is causing an order-of-destruction error
because the scheduler is being freed before its tasks.
Commenting this out till we get a real fix (although it's a hack) */
Modified: branches/gc_massacre/src/pmc/string.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/string.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/string.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -56,10 +56,6 @@
VTABLE void mark() {
STRING *str_val;
-
- if (!PMC_data(SELF))
- return;
-
GET_ATTR_str_val(INTERP, SELF, str_val);
Parrot_gc_mark_STRING_alive(INTERP, str_val);
}
Modified: branches/gc_massacre/src/pmc/stringhandle.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/stringhandle.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/stringhandle.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -109,12 +109,9 @@
PMC * const copy = Parrot_pmc_new(INTERP, enum_class_StringHandle);
Parrot_StringHandle_attributes * const data_struct = PARROT_STRINGHANDLE(copy);
- if (old_struct->stringhandle != NULL)
- data_struct->stringhandle = old_struct->stringhandle;
- if (old_struct->mode != NULL)
- data_struct->mode = old_struct->mode;
- if (old_struct->encoding != NULL)
- data_struct->encoding = old_struct->encoding;
+ data_struct->stringhandle = old_struct->stringhandle;
+ data_struct->mode = old_struct->mode;
+ data_struct->encoding = old_struct->encoding;
data_struct->flags = old_struct->flags;
return copy;
@@ -210,7 +207,8 @@
SET_ATTR_mode(INTERP, SELF, open_mode);
}
- SELF = Parrot_io_open(INTERP, SELF, filename, open_mode);
+ flags = Parrot_io_parse_open_flags(INTERP, open_mode);
+ SET_ATTR_flags(INTERP, SELF, flags);
RETURN(PMC *SELF);
}
@@ -225,6 +223,8 @@
*/
METHOD is_tty() {
+ Parrot_warn_deprecated(INTERP,
+ "'is_tty' is deprecated, use 'isatty' instead - TT #1689");
RETURN(INTVAL 0);
}
@@ -255,7 +255,10 @@
*/
METHOD is_closed() {
- const INTVAL status = Parrot_io_is_closed(INTERP, SELF);
+ STRING *stringhandle;
+ INTVAL status;
+ GET_ATTR_stringhandle(INTERP, SELF, stringhandle);
+ status = STRING_IS_NULL(stringhandle);
RETURN(INTVAL status);
}
Modified: branches/gc_massacre/src/pmc/stringiterator.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/stringiterator.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/stringiterator.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -139,19 +139,21 @@
VTABLE void set_integer_native(INTVAL value) {
Parrot_StringIterator_attributes * const attrs =
PARROT_STRINGITERATOR(SELF);
- if (value == ITERATE_FROM_START) {
+ switch (value) {
+ case ITERATE_FROM_START:
attrs->reverse = 0;
attrs->pos = 0;
attrs->length = VTABLE_elements(INTERP, attrs->string);
- }
- else if (value == ITERATE_FROM_END) {
+ break;
+ case ITERATE_FROM_END:
attrs->reverse = 1;
attrs->pos = attrs->length
= VTABLE_elements(INTERP, attrs->string);
- }
- else
+ break;
+ default:
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
"Wrong direction for StringIterator");
+ }
}
/*
Modified: branches/gc_massacre/src/pmc/sub.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/sub.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/sub.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -108,6 +108,7 @@
attrs->outer_sub = PMCNULL;
attrs->multi_signature = PMCNULL;
attrs->namespace_name = PMCNULL;
+ attrs->vtable_index = -1;
PObj_custom_mark_destroy_SETALL(SELF);
}
@@ -167,6 +168,8 @@
field = CONST_STRING(INTERP, "vtable_index");
if (VTABLE_exists_keyed_str(INTERP, init, field))
attrs->vtable_index = VTABLE_get_integer_keyed_str(INTERP, init, field);
+ else
+ attrs->vtable_index = -1;
field = CONST_STRING(INTERP, "multi_signature");
if (VTABLE_exists_keyed_str(INTERP, init, field))
@@ -182,8 +185,19 @@
/* comp_flags is actually UINTVAL */
field = CONST_STRING(INTERP, "comp_flags");
- if (VTABLE_exists_keyed_str(INTERP, init, field))
- attrs->comp_flags = (UINTVAL)VTABLE_get_integer_keyed_str(INTERP, init, field);
+ if (VTABLE_exists_keyed_str(INTERP, init, field)) {
+ UINTVAL flags = (UINTVAL)VTABLE_get_integer_keyed_str(INTERP, init, field);
+ /* Mask comp flags only */
+ attrs->comp_flags = flags & SUB_COMP_FLAG_MASK;
+ }
+
+ /* In order to create Sub dynamicaly we have to set PObj flags */
+ field = CONST_STRING(INTERP, "pf_flags");
+ if (VTABLE_exists_keyed_str(INTERP, init, field)) {
+ UINTVAL flags = (UINTVAL)VTABLE_get_integer_keyed_str(INTERP, init, field);
+ /* Mask Sub specific flags only */
+ PObj_get_FLAGS(SELF) |= flags & SUB_FLAG_PF_MASK;
+ }
field = CONST_STRING(INTERP, "n_regs_used");
if (VTABLE_exists_keyed_str(INTERP, init, field)) {
@@ -849,7 +863,7 @@
/* If the first instruction is a get_params... */
if (*pc == PARROT_OP_get_params_pc) {
/* Get the signature (the next thing in the bytecode). */
- PMC * const sig = PF_CONST(sub->seg, *(++pc))->u.key;
+ PMC * const sig = PF_CONST(sub->seg, *(++pc)).u.key;
/* Iterate over the signature and compute argument counts. */
const INTVAL sig_length = VTABLE_elements(INTERP, sig);
@@ -858,7 +872,7 @@
ASSERT_SIG_PMC(sig);
for (i = 0; i < sig_length; ++i) {
- int sig_item = VTABLE_get_integer_keyed_int(INTERP, sig, i);;
+ int sig_item = VTABLE_get_integer_keyed_int(INTERP, sig, i);
if (PARROT_ARG_SLURPY_ARRAY_ISSET(sig_item)){
if (PARROT_ARG_NAME_ISSET(sig_item))
sub->arg_info->named_slurpy = 1;
@@ -867,7 +881,7 @@
}
else if (PARROT_ARG_NAME_ISSET(sig_item)) {
++i;
- sig_item = VTABLE_get_integer_keyed_int(INTERP, sig, i);;
+ sig_item = VTABLE_get_integer_keyed_int(INTERP, sig, i);
if (PARROT_ARG_OPTIONAL_ISSET(sig_item))
++sub->arg_info->named_optional;
else
@@ -1122,6 +1136,31 @@
RETURN(INTVAL arity);
}
+
+/*
+=item C<INTVAL comp_flags()>
+
+=item C<INTVAL pf_flags()>
+
+(Experimental) Returns Sub flags.
+
+=cut
+*/
+ METHOD comp_flags() {
+ Parrot_Sub_attributes *sub;
+ INTVAL flags;
+
+ PMC_get_sub(INTERP, SELF, sub);
+ flags = sub->comp_flags;
+ RETURN(INTVAL flags);
+ }
+
+ METHOD pf_flags() {
+ /* Only PF specific flags */
+ INTVAL flags = PObj_get_FLAGS(SELF) & SUB_FLAG_PF_MASK;
+ RETURN(INTVAL flags);
+ }
+
}
Modified: branches/gc_massacre/src/pmc/timer.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/timer.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/timer.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -105,7 +105,7 @@
=item C<void init_pmc(PMC *init)>
-See F<docs/pdds/pdd02_vtables.pod> for initializers.
+Takes an even-length collection of keys and values.
=cut
Modified: branches/gc_massacre/src/pmc/unmanagedstruct.pmc
==============================================================================
--- branches/gc_massacre/src/pmc/unmanagedstruct.pmc Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc/unmanagedstruct.pmc Tue Aug 3 22:27:14 2010 (r48298)
@@ -241,7 +241,7 @@
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_KEY_NOT_FOUND,
"key doesn't exist");
- ix = b - hash->bs;
+ ix = b - hash->buckets;
}
else
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
Modified: branches/gc_massacre/src/pmc_freeze.c
==============================================================================
--- branches/gc_massacre/src/pmc_freeze.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/pmc_freeze.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -11,7 +11,7 @@
Thawing PMCs uses a list with (maximum) size of the amount of PMCs to
keep track of retrieved PMCs.
-The individual information of PMCs is frozen/thawed by their vtables.
+PMCs freeze and thaw their own information through their vtables.
To avoid recursion, the whole functionality is driven by
C<< pmc->vtable->visit >>, which is called for the first PMC initially.
@@ -59,12 +59,13 @@
return VTABLE_get_string(interp, image);
}
+
/*
=item C<STRING * Parrot_freeze_pbc(PARROT_INTERP, PMC *pmc, const
PackFile_ConstTable *pf)>
-Freeze to a PackFile.
+Freezes a PMC to a PackFile.
=cut
@@ -78,9 +79,11 @@
{
ASSERT_ARGS(Parrot_freeze_pbc)
PMC *visitor;
-
PMC * const pf_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
- VTABLE_set_pointer(interp, pf_pmc, (void *)pf);
+ DECL_CONST_CAST;
+
+ VTABLE_set_pointer(interp, pf_pmc,
+ PARROT_const_cast(void *, (const void *)pf));
visitor = Parrot_pmc_new_init(interp, enum_class_ImageIO, pf_pmc);
VTABLE_set_pmc(interp, visitor, pmc);
@@ -93,7 +96,7 @@
=item C<UINTVAL Parrot_freeze_size(PARROT_INTERP, PMC *pmc)>
-Get the size of an image to be frozen without allocating a large buffer.
+Gets the size of an image to be frozen without allocating a large buffer.
=cut
@@ -105,21 +108,21 @@
Parrot_freeze_size(PARROT_INTERP, ARGIN(PMC *pmc))
{
ASSERT_ARGS(Parrot_freeze_size)
- UINTVAL int_result;
PMC *pmc_result;
PMC * const visitor = Parrot_pmc_new(interp, enum_class_ImageIOSize);
VTABLE_set_pmc(interp, visitor, pmc);
pmc_result = VTABLE_get_pmc(interp, visitor);
- int_result = VTABLE_get_integer(interp, pmc_result);
- return int_result;
+
+ return VTABLE_get_integer(interp, pmc_result);
}
+
/*
=item C<UINTVAL Parrot_freeze_pbc_size(PARROT_INTERP, PMC *pmc, const
PackFile_ConstTable *pf)>
-Get the size of an image if it were created using C<Parrot_freeze_pbc>.
+Gets the size of an image if it were created using C<Parrot_freeze_pbc>.
=cut
@@ -131,10 +134,12 @@
Parrot_freeze_pbc_size(PARROT_INTERP, ARGIN(PMC *pmc), ARGIN(const PackFile_ConstTable *pf))
{
ASSERT_ARGS(Parrot_freeze_pbc_size)
- PMC *pf_pmc, *visitor, *pmc_result;
+ PMC *pf_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ PMC *visitor, *pmc_result;
+ DECL_CONST_CAST;
- pf_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
- VTABLE_set_pointer(interp, pf_pmc, (void *)pf);
+ VTABLE_set_pointer(interp, pf_pmc,
+ PARROT_const_cast(void *, (const void *)pf));
visitor = Parrot_pmc_new_init(interp, enum_class_ImageIOSize, pf_pmc);
VTABLE_set_pmc(interp, visitor, pmc);
@@ -148,7 +153,7 @@
=item C<PMC * Parrot_freeze_strings(PARROT_INTERP, PMC *pmc)>
-Get the strings of a PMC to be frozen.
+Gets the strings of a PMC to be frozen.
=cut
@@ -169,15 +174,14 @@
/*
-=item C<PMC* Parrot_thaw(PARROT_INTERP, STRING *image)>
+=item C<PMC * Parrot_thaw(PARROT_INTERP, STRING *image)>
Thaws a PMC. Called from the C<thaw> opcode.
-For now it seems cheaper to use a list for remembering contained
-aggregates. We could of course decide dynamically, which strategy to
-use, e.g.: given a big image, the first thawed item is a small
-aggregate. This implies, it probably contains (or some big strings) more
-nested containers, for which another approach could be a win.
+For now it seems cheaper to use a list for remembering contained aggregates. We
+could of course decide dynamically, which strategy to use: given a big image,
+the first thawed item is a small aggregate. This implies it probably contains
+more nested containers, for which another approach could be a win.
=cut
@@ -186,14 +190,14 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-PMC*
+PMC *
Parrot_thaw(PARROT_INTERP, ARGIN(STRING *image))
{
ASSERT_ARGS(Parrot_thaw)
- PMC * const info = Parrot_pmc_new(interp, enum_class_ImageIO);
- int gc_block = 0;
PMC *result;
+ PMC * const info = Parrot_pmc_new(interp, enum_class_ImageIO);
+ int gc_block = 0;
/*
* if we are thawing a lot of PMCs, it's cheaper to do
@@ -242,35 +246,20 @@
Parrot_thaw_pbc(PARROT_INTERP, ARGIN(STRING *image), ARGIN(PackFile_ConstTable *pf))
{
ASSERT_ARGS(Parrot_thaw_pbc)
- PMC *info, *pf_pmc, *result;
-
- pf_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
- VTABLE_set_pointer(interp, pf_pmc, pf);
+ PMC *info = Parrot_pmc_new(interp, enum_class_ImageIO);
- info = Parrot_pmc_new_init(interp, enum_class_ImageIO, pf_pmc);
-
- /* TODO
- * Find out what broken code depends on blocking GC here and fix it, regardless of performance
- * wins.
- */
- Parrot_block_GC_mark(interp);
- Parrot_block_GC_sweep(interp);
+ VTABLE_set_pointer(interp, info, pf);
VTABLE_set_string_native(interp, info, image);
- result = VTABLE_get_pmc(interp, info);
-
- Parrot_unblock_GC_mark(interp);
- Parrot_unblock_GC_sweep(interp);
-
- return result;
+ return VTABLE_get_pmc(interp, info);
}
+
/*
=item C<PMC* Parrot_thaw_constants(PARROT_INTERP, STRING *image)>
-Thaws constants, used by PackFile for unpacking PMC constants.
-This is a lie. It does nothing different from Parrot_thaw at the moment.
+This does nothing different from Parrot_thaw at the moment.
=cut
@@ -308,6 +297,7 @@
return VTABLE_clone(interp, pmc);
}
+
/*
=item C<void Parrot_visit_loop_visit(PARROT_INTERP, PMC *info)>
@@ -323,9 +313,10 @@
{
ASSERT_ARGS(Parrot_visit_loop_visit)
- INTVAL i;
+ PMC * const todo = VTABLE_get_iter(interp, info);
const INTVAL action = VTABLE_get_integer(interp, info);
- PMC * const todo = VTABLE_get_iter(interp, info);
+ const INTVAL e = VTABLE_elements(interp, todo);
+ INTVAL i;
/* can't cache upper limit, visit may append items */
for (i = 0; i < VTABLE_elements(interp, todo); ++i) {
@@ -347,11 +338,12 @@
}
}
+
/*
=item C<void Parrot_visit_loop_thawfinish(PARROT_INTERP, PMC *info)>
-Iterate a visitor PMC thawfinishing each encountered target PMC.
+Iterates a visitor PMC, thawfinishing each encountered target PMC.
=cut
@@ -372,17 +364,18 @@
* order here is likely broken.
*/
- PMC * const todo = VTABLE_get_iter(interp, info);
- const INTVAL n = VTABLE_elements(interp, todo);
+ PMC * const todo = VTABLE_get_iter(interp, info);
+ const INTVAL n = VTABLE_elements(interp, todo);
int i;
- for (i = n-1; i >= 0; --i) {
+ for (i = n - 1; i >= 0; --i) {
PMC *current = VTABLE_get_pmc_keyed_int(interp, todo, i);
if (!PMC_IS_NULL(current))
VTABLE_thawfinish(interp, current, info);
}
}
+
/*
=back
Modified: branches/gc_massacre/src/runcore/main.c
==============================================================================
--- branches/gc_massacre/src/runcore/main.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/runcore/main.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -261,6 +261,7 @@
*/
+PARROT_EXPORT
void
Parrot_setup_event_func_ptrs(PARROT_INTERP)
{
Modified: branches/gc_massacre/src/runcore/profiling.c
==============================================================================
--- branches/gc_massacre/src/runcore/profiling.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/runcore/profiling.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -472,7 +472,7 @@
}
Profiling_exit_check_SET(runcore);
- runcore->runcore_finish = Parrot_hires_get_time();;
+ runcore->runcore_finish = Parrot_hires_get_time();
return pc;
}
Modified: branches/gc_massacre/src/runcore/trace.c
==============================================================================
--- branches/gc_massacre/src/runcore/trace.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/runcore/trace.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -313,7 +313,7 @@
|| *pc == PARROT_OP_get_results_pc
|| *pc == PARROT_OP_get_params_pc
|| *pc == PARROT_OP_set_returns_pc) {
- sig = interp->code->const_table->constants[pc[1]]->u.key;
+ sig = interp->code->const_table->constants[pc[1]].u.key;
if (!sig)
Parrot_ex_throw_from_c_args(interp, NULL, 1,
Modified: branches/gc_massacre/src/scheduler.c
==============================================================================
--- branches/gc_massacre/src/scheduler.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/scheduler.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -17,6 +17,7 @@
*/
#include "parrot/parrot.h"
+#include "parrot/extend.h"
#include "parrot/scheduler_private.h"
#include "parrot/runcore_api.h"
@@ -141,8 +142,7 @@
PMC * const handler = Parrot_cx_find_handler_for_task(interp, task);
if (!PMC_IS_NULL(handler)) {
PMC * const handler_sub = VTABLE_get_attr_str(interp, handler, CONST_STRING(interp, "code"));
- Parrot_pcc_invoke_sub_from_c_args(interp, handler_sub,
- "PP->", handler, task);
+ Parrot_ext_call(interp, handler_sub, "PP->", handler, task);
}
}
else {
@@ -403,7 +403,7 @@
Parrot_cx_delete_task(PARROT_INTERP, ARGIN(PMC *task))
{
ASSERT_ARGS(Parrot_cx_delete_task)
- if (interp->scheduler && !PObj_on_free_list_TEST(interp->scheduler)) {
+ if (interp->scheduler) {
const INTVAL tid = VTABLE_get_integer(interp, task);
VTABLE_delete_keyed_int(interp, interp->scheduler, tid);
}
@@ -952,8 +952,7 @@
Parrot_floatval_time());
#endif
if (!PMC_IS_NULL(timer_struct->codeblock)) {
- Parrot_pcc_invoke_sub_from_c_args(interp,
- timer_struct->codeblock, "->");
+ Parrot_ext_call(interp, timer_struct->codeblock, "->");
}
}
Modified: branches/gc_massacre/src/string/api.c
==============================================================================
--- branches/gc_massacre/src/string/api.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/string/api.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -2341,17 +2341,10 @@
if (s->encoding->hash)
hashval = ENCODING_HASH(interp, s, hashval);
+ else if (s->charset->compute_hash)
+ hashval = CHARSET_COMPUTE_HASH(interp, s, hashval);
else {
- /* ZZZZZ workaround for something not setting up encodings right */
- ASSERT_STRING_SANITY(s);
-
- ENCODING_ITER_INIT(interp, s, &iter);
-
- for (offs = 0; offs < s->strlen; ++offs) {
- const UINTVAL c = iter.get_and_advance(interp, &iter);
- hashval += hashval << 5;
- hashval += c;
- }
+ exit_fatal(1, "String subsystem not properly initialized");
}
s->hashval = hashval;
Modified: branches/gc_massacre/src/string/charset/ascii.c
==============================================================================
--- branches/gc_massacre/src/string/charset/ascii.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/string/charset/ascii.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -674,6 +674,8 @@
=item C<static INTVAL is_cclass(PARROT_INTERP, INTVAL flags, const STRING *src,
UINTVAL offset)>
+Returns Boolean.
+
=cut
*/
@@ -725,6 +727,8 @@
=item C<static INTVAL find_not_cclass(PARROT_INTERP, INTVAL flags, const STRING
*src, UINTVAL offset, UINTVAL count)>
+Returns C<INTVAL>.
+
=cut
*/
@@ -879,6 +883,14 @@
}
/*
+
+=back
+
+=cut
+
+*/
+
+/*
* Local variables:
* c-file-style: "parrot"
* End:
Modified: branches/gc_massacre/src/string/charset/binary.c
==============================================================================
--- branches/gc_massacre/src/string/charset/binary.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/string/charset/binary.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -37,16 +37,6 @@
static STRING* compose(PARROT_INTERP, SHIM(const STRING *src))
__attribute__nonnull__(1);
-static INTVAL cs_index(SHIM_INTERP,
- SHIM(const STRING *src),
- SHIM(const STRING *search_string),
- SHIM(UINTVAL offset));
-
-static INTVAL cs_rindex(SHIM_INTERP,
- SHIM(const STRING *src),
- SHIM(const STRING *search_string),
- SHIM(UINTVAL offset));
-
PARROT_CANNOT_RETURN_NULL
static STRING* decompose(PARROT_INTERP, SHIM(const STRING *src))
__attribute__nonnull__(1);
@@ -107,8 +97,6 @@
, PARROT_ASSERT_ARG(rhs))
#define ASSERT_ARGS_compose __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_cs_index __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_cs_rindex __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_decompose __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_downcase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -346,46 +334,6 @@
/*
-=item C<static INTVAL cs_index(PARROT_INTERP, const STRING *src, const STRING
-*search_string, UINTVAL offset)>
-
-Returns -1. It makes no sense to try and search for a substring in
-raw binary data.
-
-=cut
-
-*/
-
-static INTVAL
-cs_index(SHIM_INTERP, SHIM(const STRING *src),
- SHIM(const STRING *search_string), SHIM(UINTVAL offset))
-{
- ASSERT_ARGS(cs_index)
- return -1;
-}
-
-/*
-
-=item C<static INTVAL cs_rindex(PARROT_INTERP, const STRING *src, const STRING
-*search_string, UINTVAL offset)>
-
-Returns -1. It makes no sense to search for the last substring match
-in raw binary data.
-
-=cut
-
-*/
-
-static INTVAL
-cs_rindex(SHIM_INTERP, SHIM(const STRING *src),
- SHIM(const STRING *search_string), SHIM(UINTVAL offset))
-{
- ASSERT_ARGS(cs_rindex)
- return -1;
-}
-
-/*
-
=item C<static UINTVAL validate(PARROT_INTERP, const STRING *src)>
Returns 1. All sequential data is valid binary data.
@@ -407,6 +355,8 @@
=item C<static INTVAL is_cclass(PARROT_INTERP, INTVAL flags, const STRING *src,
UINTVAL offset)>
+Returns Boolean.
+
=cut
*/
@@ -423,6 +373,8 @@
=item C<static INTVAL find_cclass(PARROT_INTERP, INTVAL flags, const STRING
*src, UINTVAL offset, UINTVAL count)>
+Find a character in the given character class.
+
=cut
*/
@@ -440,6 +392,8 @@
=item C<static INTVAL find_not_cclass(PARROT_INTERP, INTVAL flags, const STRING
*src, UINTVAL offset, UINTVAL count)>
+Returns C<INTVAL>.
+
=cut
*/
@@ -456,6 +410,9 @@
=item C<static STRING * string_from_codepoint(PARROT_INTERP, UINTVAL codepoint)>
+Creates a new STRING object from a single codepoint C<codepoint>. Returns
+the new STRING.
+
=cut
*/
@@ -501,8 +458,8 @@
downcase_first,
titlecase_first,
compare,
- cs_index,
- cs_rindex,
+ ascii_cs_index,
+ ascii_cs_rindex,
validate,
is_cclass,
find_cclass,
Modified: branches/gc_massacre/src/string/charset/iso-8859-1.c
==============================================================================
--- branches/gc_massacre/src/string/charset/iso-8859-1.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/string/charset/iso-8859-1.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -539,6 +539,8 @@
=item C<static INTVAL is_cclass(PARROT_INTERP, INTVAL flags, const STRING *src,
UINTVAL offset)>
+Returns Boolean.
+
=cut
*/
@@ -589,6 +591,8 @@
=item C<static INTVAL find_not_cclass(PARROT_INTERP, INTVAL flags, const STRING
*src, UINTVAL offset, UINTVAL count)>
+Returns C<INTVAL>.
+
=cut
*/
Modified: branches/gc_massacre/src/string/charset/unicode.c
==============================================================================
--- branches/gc_massacre/src/string/charset/unicode.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/string/charset/unicode.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -738,6 +738,8 @@
=item C<static int u_iscclass(PARROT_INTERP, UINTVAL codepoint, INTVAL flags)>
+Returns Boolean.
+
=cut
*/
@@ -834,6 +836,8 @@
=item C<static INTVAL is_cclass(PARROT_INTERP, INTVAL flags, const STRING *src,
UINTVAL offset)>
+Returns Boolean.
+
=cut
*/
@@ -861,6 +865,8 @@
=item C<static INTVAL find_cclass(PARROT_INTERP, INTVAL flags, const STRING
*src, UINTVAL offset, UINTVAL count)>
+Find a character in the given character class.
+
=cut
*/
@@ -901,6 +907,8 @@
=item C<static INTVAL find_not_cclass(PARROT_INTERP, INTVAL flags, const STRING
*src, UINTVAL offset, UINTVAL count)>
+Returns C<INTVAL>.
+
=cut
*/
Modified: branches/gc_massacre/src/thread.c
==============================================================================
--- branches/gc_massacre/src/thread.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/thread.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -19,6 +19,7 @@
*/
#include "parrot/parrot.h"
+#include "parrot/extend.h"
#include "parrot/atomic.h"
#include "parrot/runcore_api.h"
#include "pmc/pmc_sub.h"
@@ -197,7 +198,7 @@
/* Skip vtable overrides and methods. */
if (ret_val_sub->vtable_index == -1
&& !(ret_val_sub->comp_flags & SUB_COMP_FLAG_METHOD)) {
- Parrot_store_sub_in_namespace(interp, ret_val);
+ Parrot_ns_store_sub(interp, ret_val);
}
}
else {
@@ -515,7 +516,7 @@
Parrot_ex_add_c_handler(interp, &jump_point);
Parrot_unblock_GC_mark(interp);
Parrot_unblock_GC_sweep(interp);
- Parrot_pcc_invoke_sub_from_c_args(interp, sub_pmc, "Pf->P", sub_arg, &ret_val);
+ Parrot_ext_call(interp, sub_pmc, "Pf->P", sub_arg, &ret_val);
}
/* thread is finito */
Modified: branches/gc_massacre/src/utils.c
==============================================================================
--- branches/gc_massacre/src/utils.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/utils.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -21,6 +21,7 @@
*/
#include "parrot/parrot.h"
+#include "parrot/extend.h"
#include "pmc/pmc_nci.h"
typedef unsigned short _rand_buf[3];
@@ -930,7 +931,7 @@
return f(interp, a, b);
}
- Parrot_pcc_invoke_sub_from_c_args(interp, cmp, "PP->I", a, b, &result);
+ Parrot_ext_call(interp, cmp, "PP->I", a, b, &result);
return result;
}
Modified: branches/gc_massacre/src/vtable.tbl
==============================================================================
--- branches/gc_massacre/src/vtable.tbl Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/vtable.tbl Tue Aug 3 22:27:14 2010 (r48298)
@@ -274,9 +274,9 @@
PMC* inspect_str(STRING* what)
void freeze(PMC* info)
-void thaw (PMC* info) :write
-void thawfinish (PMC* info) :write
-void visit (PMC* info)
+void thaw(PMC* info) :write
+void thawfinish(PMC* info) :write
+void visit(PMC* info)
void share()
Modified: branches/gc_massacre/src/warnings.c
==============================================================================
--- branches/gc_massacre/src/warnings.c Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/src/warnings.c Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -124,6 +124,30 @@
/*
+=item C<void Parrot_warn_deprecated(PARROT_INTERP, const char *message)>
+
+Warn about use of a deprecated feature
+
+C<message> is a C string.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+void
+Parrot_warn_deprecated(PARROT_INTERP, ARGIN(const char *message))
+{
+ ASSERT_ARGS(Parrot_warn_deprecated)
+
+ if (PARROT_WARNINGS_test(interp, PARROT_WARNINGS_DEPRECATED_FLAG)) {
+ STRING *msg = Parrot_sprintf_c(interp, "WARNING: %s\n", message);
+ print_warning(interp, msg);
+ }
+}
+
+/*
+
=back
=head1 SEE ALSO
Modified: branches/gc_massacre/t/codingstd/c_function_docs.t
==============================================================================
--- branches/gc_massacre/t/codingstd/c_function_docs.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/codingstd/c_function_docs.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -91,28 +91,6 @@
}
__DATA__
-compilers/pirc/src/pircapi.c
-config/gen/platform/ansi/dl.c
-config/gen/platform/ansi/exec.c
-config/gen/platform/ansi/time.c
-config/gen/platform/darwin/memalign.c
-config/gen/platform/generic/dl.c
-config/gen/platform/generic/exec.c
-config/gen/platform/generic/math.c
-config/gen/platform/generic/memalign.c
-config/gen/platform/generic/stat.c
-config/gen/platform/generic/time.c
-config/gen/platform/netbsd/math.c
-config/gen/platform/openbsd/math.c
-config/gen/platform/solaris/math.c
-config/gen/platform/solaris/time.c
-examples/compilers/japhc.c
-src/gc/generational_ms.c
-src/io/io_string.c
-src/string/charset/ascii.c
-src/string/charset/binary.c
-src/string/charset/iso-8859-1.c
-src/string/charset/unicode.c
# Local Variables:
# mode: cperl
Modified: branches/gc_massacre/t/compilers/imcc/syn/regressions.t
==============================================================================
--- branches/gc_massacre/t/compilers/imcc/syn/regressions.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/compilers/imcc/syn/regressions.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -6,7 +6,7 @@
use warnings;
use lib qw( . lib ../lib ../../lib );
use Test::More;
-use Parrot::Test tests => 22;
+use Parrot::Test tests => 21;
pir_error_output_like( <<'CODE', <<'OUT', 'invalid get_results syntax');
.sub main :main
@@ -191,19 +191,6 @@
3
OUT
-TODO: {
- local $TODO = "works in PIR, not PASM";
-
-pasm_output_is( <<"CODE", <<'OUT', 'long register numbers in PASM (TT #1025)');
- new P$register, 'Integer'
- assign P$register, 3
- say P$register
-CODE
-3
-OUT
-
-}
-
pir_error_output_like( <<'CODE', <<'OUT', 'die in immediate, TT #629');
.sub 'foo' :immediate
die 'no'
Modified: branches/gc_massacre/t/compilers/pct/complete_workflow.t
==============================================================================
--- branches/gc_massacre/t/compilers/pct/complete_workflow.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/compilers/pct/complete_workflow.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -306,6 +306,7 @@
# Do not assume that . is in $PATH
# places to look for things
my $BUILD_DIR = $PConfig{build_dir};
+ my $BD_CHARSET = $BUILD_DIR =~ /[^[:ascii:]]/ ? "binary:" : q{};
my $TEST_DIR = "$BUILD_DIR/t/compilers/pct";
my $PARROT = "$BUILD_DIR/parrot$PConfig{exe}";
my $PGE_LIBRARY = "$BUILD_DIR/runtime/parrot/library/PGE";
@@ -334,7 +335,7 @@
.local pmc args
args = new 'ResizableStringArray'
push args, "test_program"
- push args, "$TEST_DIR/complete_workflow_sample_input.txt"
+ push args, $BD_CHARSET"$TEST_DIR/complete_workflow_sample_input.txt"
\$P0 = new ['PCT'; 'HLLCompiler']
\$P0.'language'('TestGrammar')
Modified: branches/gc_massacre/t/configure/017-revision_from_cache.t
==============================================================================
--- branches/gc_massacre/t/configure/017-revision_from_cache.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/configure/017-revision_from_cache.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -7,10 +7,13 @@
use warnings;
use Test::More;
-plan( skip_all =>
- "\nRelevant only when working in checkout from repository and during configuration" )
- unless (-e 'DEVELOPING' and ! -e 'Makefile');
-plan( tests => 7 );
+if (-e 'DEVELOPING' and ! -e 'Makefile') {
+ plan tests => 7;
+}
+else {
+ plan skip_all =>
+ q{Relevant only when working in checkout from repository and prior to configuration};
+}
use Carp;
use Cwd;
use File::Copy;
Modified: branches/gc_massacre/t/configure/018-revision_to_cache.t
==============================================================================
--- branches/gc_massacre/t/configure/018-revision_to_cache.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/configure/018-revision_to_cache.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -7,10 +7,13 @@
use warnings;
use Test::More;
-plan( skip_all =>
- "\nRelevant only when working in checkout from repository and during configuration" )
- unless (-e 'DEVELOPING' and ! -e 'Makefile');
-plan( tests => 8 );
+if (-e 'DEVELOPING' and ! -e 'Makefile') {
+ plan tests => 8;
+}
+else {
+ plan skip_all =>
+ q{Relevant only when working in checkout from repository and prior to configuration};
+}
use Carp;
use Cwd;
use File::Copy;
Modified: branches/gc_massacre/t/configure/061-revision_from_cache.t
==============================================================================
--- branches/gc_massacre/t/configure/061-revision_from_cache.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/configure/061-revision_from_cache.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -7,10 +7,17 @@
use warnings;
use Test::More;
-plan( skip_all =>
- "\nRelevant only when working in checkout from repository and during configuration" )
- unless (-e 'DEVELOPING' and ! -e 'Makefile');
-plan( tests => 25 );
+#plan( skip_all =>
+# "\nRelevant only when working in checkout from repository and during configuration" )
+# unless (-e 'DEVELOPING' and ! -e 'Makefile');
+#plan( tests => 25 );
+if (-e 'DEVELOPING' and ! -e 'Makefile') {
+ plan tests => 25;
+}
+else {
+ plan skip_all =>
+ q{Relevant only when working in checkout from repository and prior to configuration};
+}
use Carp;
use Cwd;
use File::Copy;
Added: branches/gc_massacre/t/dynoplibs/io-old.t
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gc_massacre/t/dynoplibs/io-old.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -0,0 +1,91 @@
+#! perl
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
+use lib qw( . lib ../lib ../../lib );
+
+use Test::More;
+use Parrot::Test tests => 4;
+use Parrot::Test::Util 'create_tempfile';
+
+=head1 NAME
+
+t/pmc/io.t - IO Ops
+
+=head1 SYNOPSIS
+
+ % prove t/pmc/io.t
+
+=head1 DESCRIPTION
+
+Tests the Parrot IO operations.
+
+=cut
+
+my ($FOO, $temp_file) = create_tempfile( UNLINK => 1 );
+close $FOO;
+
+pasm_error_output_like( <<"CODE", <<'OUTPUT', '32bit seek: exception (ops)' );
+.loadlib 'io_ops'
+ open P0, "$temp_file", 'w'
+ seek P0, -1, 0
+ say "error!"
+ end
+CODE
+/seek failed \(32bit\)/
+OUTPUT
+
+pasm_error_output_like( <<"CODE", <<'OUTPUT', '64bit seek: exception (ops)' );
+.loadlib 'io_ops'
+ open P0, "$temp_file", 'w'
+ seek P0, -1, -1, 0
+ say "error!"
+ end
+CODE
+/seek failed \(64bit\)/
+OUTPUT
+
+pasm_output_is( <<"CODE", <<'OUTPUT', "peek (ops)" );
+.loadlib 'io_ops'
+ open P0, "$temp_file", 'w'
+ print P0, "a line\\n"
+ close P0
+ open P0, "$temp_file", 'r'
+ peek S0, P0
+ print S0
+ peek S1, P0
+ print S1
+ print "\\n"
+ read S2, P0, 2
+ peek S3, P0
+ print S3
+ print "\\n"
+ end
+CODE
+aa
+l
+OUTPUT
+
+pasm_output_is( <<"CODE", <<'OUTPUT', "peek on an empty file (ops)" );
+.loadlib 'io_ops'
+ open P0, "$temp_file", 'w'
+ close P0
+ open P0, "$temp_file", 'r'
+ peek S0, P0
+ eq S0, "", OK1
+ print "not "
+OK1:
+ say "ok 1"
+ end
+CODE
+ok 1
+OUTPUT
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Modified: branches/gc_massacre/t/dynpmc/gziphandle.t
==============================================================================
--- branches/gc_massacre/t/dynpmc/gziphandle.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/dynpmc/gziphandle.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -24,7 +24,7 @@
.local pmc config_hash, interp
.local int num_tests
- num_tests = 9
+ num_tests = 10
plan(num_tests)
interp = getinterp
config_hash = interp[.IGLOBALS_CONFIG_HASH]
@@ -48,8 +48,8 @@
$P0 = new 'GzipHandle'
$S0 = typeof $P0
is($S0, 'GzipHandle', 'GzipHandle typeof')
- $I0 = does $P0, 'Handle'
- ok($I0, 'does Handle')
+ $I0 = isa $P0, 'Handle'
+ ok($I0, 'isa Handle')
.end
.include 'stat.pasm'
@@ -70,6 +70,8 @@
ok($I2, "compressed")
$P2 = new 'GzipHandle'
$P2.'open'(filename, 'rb')
+ $I2 = $P2.'isatty'()
+ is($I2, 0, 'isatty')
$S1 = $P2.'read'($I0)
$P2.'close'()
is($S1, $S0, "gzip stream")
Modified: branches/gc_massacre/t/examples/pir.t
==============================================================================
--- branches/gc_massacre/t/examples/pir.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/examples/pir.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -7,7 +7,7 @@
use lib qw( . lib ../lib ../../lib );
use Test::More;
-use Parrot::Test tests => 17;
+use Parrot::Test tests => 18;
use Parrot::Config;
=head1 NAME
@@ -181,6 +181,10 @@
+---------+---------+---------+
solved
END_EXPECTED
+
+ 'make_hello_pbc.pir' => << 'END_EXPECTED',
+Hello World
+END_EXPECTED
);
# expected output of a quine is the quine itself
Modified: branches/gc_massacre/t/library/p6object.t
==============================================================================
--- branches/gc_massacre/t/library/p6object.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/library/p6object.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -26,7 +26,7 @@
test_namespace.'export_to'(curr_namespace, exports)
## set our plan
- plan(295)
+ plan(303)
## make sure we can load the P6object library
push_eh load_fail
@@ -79,6 +79,20 @@
$I0 = can abcobj, 'new'
nok($I0, '! <can ABC_obj, "new" >')
+ ## verify .ACCEPTS method
+ $P0 = hashproto.'ACCEPTS'(hashobj)
+ ok($P0, 'Hash.ACCEPTS(Hash_obj)')
+ isa_ok($P0, 'Boolean', 'Boolean')
+ $P0 = hashproto.'ACCEPTS'(abcobj)
+ nok($P0, 'Hash.ACCEPTS(Abc_obj)')
+ isa_ok($P0, 'Boolean', 'Boolean')
+ $P0 = abcproto.'ACCEPTS'(hashobj)
+ nok($P0, 'ABC.ACCEPTS(Hash_obj)')
+ isa_ok($P0, 'Boolean', 'Boolean')
+ $P0 = abcproto.'ACCEPTS'(abcobj)
+ ok($P0, 'ABCh.ACCEPTS(Abc_obj)')
+ isa_ok($P0, 'Boolean', 'Boolean')
+
## create new class by namespace
.local pmc ghins, ghiproto, ghiobj
ghins = get_hll_namespace ['GHI']
Modified: branches/gc_massacre/t/library/pcre.t
==============================================================================
--- branches/gc_massacre/t/library/pcre.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/library/pcre.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
use strict;
@@ -101,7 +101,9 @@
OUT
## 2
- pir_output_is( <<"CODE", <<'OUT', 'soup to nuts' );
+ my @todo;
+ @todo = ( todo => '3..5 fail on Win32' ) if $^O =~ /MSWin32/;
+ pir_output_is( <<"CODE", <<'OUT', 'soup to nuts', @todo );
.include 'iglobals.pasm'
.include 'libpaths.pasm'
Added: branches/gc_massacre/t/library/uri_escape.t
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gc_massacre/t/library/uri_escape.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -0,0 +1,54 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/library/uri_escape.t
+
+=head1 DESCRIPTION
+
+Test the URI Escape library
+
+=head1 SYNOPSIS
+
+ % prove t/library/uri_escape.t
+
+=cut
+
+.sub 'main' :main
+ .include 'test_more.pir'
+
+ load_bytecode 'URI/Escape.pbc'
+
+ plan(6)
+
+ $P0 = new ['Exporter']
+ $P1 = get_namespace ['URI'; 'Escape']
+ $P2 = get_namespace
+ $P0.'import'($P1 :named('source'), $P2 :named('destination'), 'percent_encode percent_encode_component' :named('globals'))
+
+ $S0 = percent_encode('Hello')
+ is($S0, 'Hello', 'plain ascii without special chars')
+
+ $S0 = percent_encode_component('Hello')
+ is($S0, 'Hello', 'plain ascii without special chars - component')
+
+ $S0 = percent_encode('Hello?world')
+ is($S0, 'Hello?world', 'plain ascii')
+
+ $S1 = percent_encode_component('Hello?world')
+ is($S1, 'Hello%3Fworld', 'plain ascii - component')
+
+ $S0 = percent_encode(iso-8859-1:"A\x{D1}O#a")
+ is($S0, 'A%C3%91O#a', 'iso-8859-1 string')
+
+ $S0 = percent_encode_component(iso-8859-1:"A\x{D1}O#a")
+ is($S0, 'A%C3%91O%23a', 'iso-8859-1 string - component')
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/gc_massacre/t/native_pbc/annotations.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/gc_massacre/t/native_pbc/integer.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/gc_massacre/t/native_pbc/integer_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/gc_massacre/t/native_pbc/number.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/gc_massacre/t/native_pbc/number_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/gc_massacre/t/native_pbc/string.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/gc_massacre/t/native_pbc/string_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Copied and modified: branches/gc_massacre/t/oo/objects.t (from r47995, branches/gc_massacre/t/pmc/objects.t)
==============================================================================
--- branches/gc_massacre/t/pmc/objects.t Mon Jul 5 01:11:51 2010 (r47995, copy source)
+++ branches/gc_massacre/t/oo/objects.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -4,11 +4,11 @@
=head1 NAME
-t/pmc/objects.t - Objects
+t/oo/objects.t - Objects
=head1 SYNOPSIS
- % prove t/pmc/objects.t
+ % prove t/oo/objects.t
=head1 DESCRIPTION
@@ -1603,46 +1603,46 @@
new $P5, ['String'] # set attribute values
set $P5, "i" # attribute slots have reference semantics
set_args "0,0", $P5, "i"
- get_results ""
callmethodcc $P13, "Foo54__set"
+ get_results ""
new $P5, ['String']
set $P5, "j"
set_args "0,0", $P5, "j"
- get_results ""
callmethodcc $P13,"Foo54__set"
+ get_results ""
new $P5, ['String']
set $P5, "k"
set_args "0,0", $P5, "k"
- get_results ""
callmethodcc $P13,"Bar54__set"
+ get_results ""
new $P5, ['String']
set $P5, "l"
set_args "0,0", $P5, "l"
- get_results ""
callmethodcc $P13,"Bar54__set"
+ get_results ""
# now retrieve attributes
set_args "0", "i"
- get_results "0", $P5
callmethodcc $P13,"Foo54__get"
+ get_results "0", $P5
is( $P5, "i", 'got attrib i from Bar54->Foo54__get' )
set_args "0", "j"
- get_results "0", $P5
callmethodcc $P13,"Foo54__get"
+ get_results "0", $P5
is( $P5, "j", 'got attrib j from Bar54->Foo54__get' )
set_args "0", "k"
- get_results "0", $P5
callmethodcc $P13,"Bar54__get"
+ get_results "0", $P5
is( $P5, "k", 'got attrib k from Bar54->Bar54__get' )
set_args "0", "l"
- get_results "0", $P5
callmethodcc $P13,"Bar54__get"
+ get_results "0", $P5
is( $P5, "l", 'got attrib l from Bar54->Bar54__get' )
.end
Modified: branches/gc_massacre/t/oo/vtableoverride.t
==============================================================================
--- branches/gc_massacre/t/oo/vtableoverride.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/oo/vtableoverride.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -120,7 +120,7 @@
$P1 = new $P0
$P2 = $P1[0]
$I0 = isnull $P2
- ok($I0, "Override get_pmc_keyed_int without .return")
+ ok($I0, "Override get_pmc_keyed_int without .return - TT #1593")
.end
.namespace [ 'MyObject' ]
Modified: branches/gc_massacre/t/op/64bit.t
==============================================================================
--- branches/gc_massacre/t/op/64bit.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/op/64bit.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -36,7 +36,18 @@
goto end
is_64_bit:
- bitops64()
+
+ # setup TODO for platform 'MSWin32'
+ .local string osname
+ osname = config['osname']
+ .local int todo_1
+ todo_1 = 0
+ unless osname == "MSWin32" goto do_test
+ todo_1 = 1
+
+ do_test:
+
+ bitops64(todo_1)
end:
.end
@@ -44,10 +55,22 @@
.sub bitops64
# check bitops for 8-byte ints
+ .param int todo_1
set $I0, 0xffffffffffffffff
+
+ if todo_1 goto do_todo
is( $I0, -1, 'bitops64' )
+ goto test_2
+
+ do_todo:
+ if $I0 == -1 goto todo_pass
+ todo ( 0, 'bitops64', 'not working on MSWin32, amd64' )
+ goto test_2
+ todo_pass:
+ todo ( 1, 'bitops64', 'not working on MSWin32, amd64' )
+ test_2:
set $I1, 0x00000000ffffffff
is( $I1, 4294967295, 'bitops64' )
Modified: branches/gc_massacre/t/op/annotate-old.t
==============================================================================
--- branches/gc_massacre/t/op/annotate-old.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/op/annotate-old.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
use strict;
@@ -23,10 +23,6 @@
=cut
-TODO: {
- local $TODO = q|fails in fast runcore - TT #1135|
- if ($ENV{TEST_PROG_ARGS} || '') =~ /--runcore=fast/;
-
pir_error_output_like( <<CODE, <<OUTPUT, 'unhandled exception from loaded function');
.sub main :main
# Not using test more, just a quick way to pick a function
@@ -40,7 +36,6 @@
/\(foobar:42\)/
OUTPUT
-}
# Local Variables:
# mode: cperl
Modified: branches/gc_massacre/t/op/calling.t
==============================================================================
--- branches/gc_massacre/t/op/calling.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/op/calling.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -1852,9 +1852,9 @@
pasm_output_is( <<'CODE', <<'OUTPUT', "named - 5 slurpy array -> named" );
.pcc_sub main:
set_args "0, 0, 0, 0x200, 0, 0x200, 0", 10, 20, 30, 'a', 40, 'b', 50
- get_results ""
find_name P1, "foo"
invokecc P1
+ get_results ""
print "ok\n"
end
.pcc_sub foo:
Modified: branches/gc_massacre/t/op/integer.t
==============================================================================
--- branches/gc_massacre/t/op/integer.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/op/integer.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -16,7 +16,7 @@
=cut
-.const int TESTS = 150
+.const int TESTS = 152
.sub 'test' :main
.include 'test_more.pir'
@@ -30,6 +30,7 @@
test_sub()
test_mul()
test_div()
+ test_fdiv()
test_mod()
mod_negative_zero_rest()
test_eq()
@@ -276,6 +277,18 @@
is($I1, 10, 'div_i_ic_ic')
.end
+.sub 'test_fdiv'
+ $I0 = 9
+ $I1 = -4
+ fdiv $I0, $I1
+ is($I0, -3, 'fdiv_i_i with negative divisor')
+
+ $I0 = 9
+ $I1 = -4
+ $I2 = fdiv $I0, $I1
+ is($I2, -3, 'fdiv_i_i_i with negative divisor')
+.end
+
.sub 'test_mod'
$I0 = 5
$I1 = 0
Modified: branches/gc_massacre/t/op/sprintf2.t
==============================================================================
--- branches/gc_massacre/t/op/sprintf2.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/op/sprintf2.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -12,7 +12,7 @@
=head1 DESCRIPTION
-Executes sprintf tests that were generated by tools/dev/sprintf2.pl
+Executes sprintf tests.
=cut
Modified: branches/gc_massacre/t/op/string.t
==============================================================================
--- branches/gc_massacre/t/op/string.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/op/string.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -989,7 +989,7 @@
set $S0, binary:"Parrot"
set $S1, binary:"rot"
index $I1, $S0, $S1
- is( $I1, "-1", 'binary - binary' )
+ is( $I1, 3, 'binary - binary' )
.end
.sub negative_index_bug_35959
Modified: branches/gc_massacre/t/pir/macro.t
==============================================================================
--- branches/gc_massacre/t/pir/macro.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pir/macro.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -21,14 +21,13 @@
.endm
.macro bar(x)
- ok(x, 'basic macro with argument')
+ ok(.x, 'basic macro with argument')
.endm
.macro_const PI_APPROX 4
.sub main :main
.include 'test_more.pir'
- .local int x
plan(3)
.foo()
.bar(42)
Added: branches/gc_massacre/t/pir/timer_exit.t
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gc_massacre/t/pir/timer_exit.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -0,0 +1,36 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+.include 'timer.pasm'
+
+.sub main :main
+ say "1..1"
+
+ $P0 = new 'FixedPMCArray', 8
+ $P0[0] = .PARROT_TIMER_NSEC
+ $P0[1] = 0.1
+ $P0[2] = .PARROT_TIMER_HANDLER
+ $P1 = get_global 'got_timer'
+ $P0[3] = $P1
+ $P0[4] = .PARROT_TIMER_REPEAT
+ $P0[5] = 0
+ $P0[6] = .PARROT_TIMER_RUNNING
+ $P0[7] = 1
+
+ $P2 = new 'Timer', $P0
+ sleep 1
+ say "not ok 3"
+.end
+
+.sub got_timer
+ say "ok 1"
+ exit 0
+ say "not ok 2"
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/gc_massacre/t/pmc/arrayiterator.t
==============================================================================
--- branches/gc_massacre/t/pmc/arrayiterator.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/arrayiterator.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -19,15 +19,17 @@
.namespace []
.include 'iterator.pasm'
+.include 'except_types.pasm'
.sub main :main
.include 'test_more.pir'
- plan(21)
+ plan(28)
iterate_forward() # 8 tests
iterate_backward() # 6 tests
iterate_backward_string() # 6 test
+ iterate_wrong() # 1 test
iterator_init() # 1 test
.end
@@ -50,17 +52,62 @@
$P0 = shift it
ok(it, "Can shift 1st element")
is($P0, 1, "With expected value")
+
+ $P1 = new ['Integer'], 0
+ $I0 = exists it[$P1]
+ is($I0, 1, "exists_keyed gives expected value")
+
+ $I0 = defined it[$P1]
+ is($I0, 1, "defined_keyed gives expected value")
+
+ $P2 = it[$P1]
+ is($P2, 42, "get_pmc_keyed gives expected value")
+
+ $I0 = it[$P1]
+ is($I0, 42, "get_integer_keyed gives expected value")
+
+ $N0 = it[$P1]
+ is($N0, 42.0, "get_number_keyed gives expected value")
+
+ $S0 = it[$P1]
+ is($S0, '42', "get_string_keyed gives expected value")
+
$P0 = shift it
nok(it, "Iterator is finished after second shift")
is($P0, 42, "2nd element has correct value")
- $I0 = 1
- push_eh fail
+ .local int result
+ .local pmc ehandler
+ result = 0
+ ehandler = new ['ExceptionHandler']
+ ehandler.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+ push_eh ehandler
+
+ set_addr ehandler, handlep
$P0 = shift it
- $I0 = 0
+ goto fail
+handlep:
+ finalize ehandler
+ set_addr ehandler, handlei
+ $I0 = shift it
+ goto fail
+handlei:
+ finalize ehandler
+ set_addr ehandler, handlen
+ $N0 = shift it
+ goto fail
+handlen:
+ finalize ehandler
+ set_addr ehandler, handles
+ $S0 = shift it
+ goto fail
+handles:
+ finalize ehandler
+
+ result = 1
fail:
pop_eh
- ok($I0, "Shifting from finished iterator throws exception")
+ ok(result, "Shifting from finished iterator throws out of bounds exception")
.end
@@ -81,13 +128,39 @@
nok(it, "Iterator is finished after second shift")
is($P0, 1, "2nd element has correct value")
- $I0 = 1
- push_eh fail
- $P0 = shift it
- $I0 = 0
+ .local int result
+ .local pmc ehandler
+ result = 0
+ ehandler = new ['ExceptionHandler']
+ ehandler.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+ push_eh ehandler
+
+ set_addr ehandler, handlep
+ $P0 = pop it
+ goto fail
+handlep:
+ finalize ehandler
+ set_addr ehandler, handlei
+ $I0 = pop it
+ goto fail
+handlei:
+ finalize ehandler
+ set_addr ehandler, handlen
+ $N0 = pop it
+ goto fail
+handlen:
+ finalize ehandler
+ set_addr ehandler, handles
+ $S0 = pop it
+ goto fail
+handles:
+ finalize ehandler
+
+ result = 1
fail:
pop_eh
- ok($I0, "Shifting from finished iterator throws exception")
+ ok(result, "pop from finished iterator throws out of bounds exception")
+
.end
.sub 'iterate_backward_string'
@@ -116,6 +189,26 @@
ok($I0, "Shifting from finished iterator throws exception - string")
.end
+.sub 'iterate_wrong'
+ .local pmc foo, it, ex
+ .local int r
+
+ foo = new ['FixedIntegerArray'], 1
+
+ it = iter foo
+ push_eh catch_wrong
+ it = 42 # Let's hope we'll never have such direction
+ r = 0
+ goto dotest
+catch_wrong:
+ .get_results(ex)
+ finalize ex
+ r = 1
+dotest:
+ pop_eh
+ ok(r, "Caught wrong direction")
+.end
+
.sub 'iterator_init'
.local pmc it, e
.local string msg
Added: branches/gc_massacre/t/pmc/bytebuffer.t
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gc_massacre/t/pmc/bytebuffer.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -0,0 +1,392 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/pmc/bytebuffer.t - ByteBuffer PMC
+
+=head1 SYNOPSIS
+
+ % prove t/pmc/bytebuffer.t
+
+=head1 DESCRIPTION
+
+Tests C<ByteBuffer> PMC..
+
+=cut
+
+.include 'iglobals.pasm'
+.include 'iterator.pasm'
+.include 'except_types.pasm'
+
+.sub 'main' :main
+ .include 'test_more.pir'
+ plan(37)
+
+ test_init()
+ test_set_string()
+ test_set_byte()
+ test_get_string()
+ test_push()
+ test_resize()
+ test_alloc()
+ test_iterate()
+ test_invalid()
+.end
+
+################################################################
+# Helper subs
+
+.sub hasicu
+ $P0 = getinterp
+ $P1 = $P0[.IGLOBALS_CONFIG_HASH]
+ $I0 = $P1['has_icu']
+ .return($I0)
+.end
+
+.sub isbigendian
+ $P0 = getinterp
+ $P1 = $P0[.IGLOBALS_CONFIG_HASH]
+ $I0 = $P1['bigendian']
+ .return($I0)
+.end
+
+################################################################
+
+.sub test_init
+ .local pmc bb
+ .local int n
+ bb = new ['ByteBuffer']
+ n = elements bb
+ is(n, 0, "size of a new buffer is 0")
+
+ bb = new ['ByteBuffer'], 42
+ n = elements bb
+ is(n, 42, "size of a new buffer with initial size is correct")
+
+.end
+
+.sub test_set_string
+ .local pmc bb
+ .local string s
+ .local int n, c
+ bb = new ['ByteBuffer']
+ s = 'Hi'
+ bb = s
+
+ # Exercise mark vtable
+ sweep 1
+
+ n = elements bb
+ is(n, 2, "size is the same as the source string bytelength")
+ n = bb[0]
+ c = ord 'H'
+ is(n, c, "first byte is the same as the source string")
+ n = bb[1]
+ c = ord 'i'
+ is(n, c, "second byte is the same as the source string")
+ n = bb[2]
+ is(n, 0, "byte out of size is 0")
+ n = bb[-1]
+ is(n, 0, "byte at negative index is 0")
+.end
+
+.sub test_set_byte
+ .local pmc bb
+ .local int n
+ bb = new ['ByteBuffer']
+ bb[255] = 42
+ n = elements bb
+ is(n, 256, "setting a byte resize empty buffer")
+
+ .local string s
+ s = 'Hi'
+ bb = s
+ bb[2] = 42
+ n = elements bb
+ is(n, 3, "setting a byte resize buffer initialized from string")
+
+ bb = new ['ByteBuffer'], 42
+ bb[41] = 9
+ n = elements bb
+ is(n, 42, "setting a byte within range does not resize")
+ bb[42] = 7
+ n = elements bb
+ is(n, 43, "setting a byte resize buffer with initial size")
+ n = bb[41]
+ is(n, 9, "resized buffer preserve old value")
+
+ push_eh catch
+ bb[-1] = 0
+ ok(0, "setting a byte with negative index should throw")
+ goto end
+catch:
+ pop_eh
+ ok(1, "setting a byte with negative index throws")
+end:
+.end
+
+.sub test_get_string
+ .local pmc bb
+ .local string s
+ .local int n
+ .local int big
+
+ bb = new ['ByteBuffer']
+ bb = binary:"abcd"
+ s = bb.'get_string'('ascii', 'fixed_8')
+ n = length s
+ is(n, 4, "getting ascii from buffer gives correct length")
+ is(s, "abcd", "getting ascii from buffer gives correct content")
+
+ $I0 = hasicu()
+ unless $I0 goto skip_it
+
+ bb = new ['ByteBuffer']
+
+ # Upper case n tilde: codepoint 0xD1, utf8 encoding 0xC3, 0x91
+ #bb = utf16:unicode:"\x{D1}"
+ # Can't do that, or the program can't be compiled without ICU.
+ # Fill the buffer with bytes instead.
+
+ # Get endianess to set the bytes in the appropiate order.
+ # *** XXX *** Need report from big endian platforms.
+ big = isbigendian()
+ if big goto isbig
+ bb[0] = 0xD1
+ bb[1] = 0x00
+ goto doit
+isbig:
+ bb[0] = 0x00
+ bb[1] = 0xD1
+doit:
+ s = bb.'get_string'('unicode', 'utf16')
+ n = length s
+ is(n, 1, "getting utf16 from buffer gives correct length")
+ n = ord s
+ is(n, 0xD1, "getting utf16 from buffer gives correct codepoint")
+ bb = new ['ByteBuffer']
+ bb[0] = 0xC3
+ bb[1] = 0x91
+ s = bb.'get_string_as'(utf8:unicode:"")
+ n = length s
+ is(n, 1, "getting utf8 from buffer gives correct length")
+ n = ord s
+ is(n, 0xD1, "getting utf8 from buffer gives correct codepoint")
+ goto end
+skip_it:
+ skip(4, "this test needs ICU")
+end:
+.end
+
+.sub test_push
+ .local pmc bb
+ .local int c, n, m
+ bb = new ['ByteBuffer']
+ bb = 'hell'
+ n = elements bb
+ inc n
+ c = ord 'o'
+ push bb, c
+ m = elements bb
+ is(n, m, "push increments size")
+ .local string s
+ s = bb.'get_string_as'(ascii:"")
+ is(s, 'hello', "push gives expected string result")
+.end
+
+.sub test_resize
+ .local pmc bb
+ .local int n
+ .local string s
+ bb = new ['ByteBuffer']
+
+ bb = 723
+ n = elements bb
+ is(n, 723, 'resize from empty')
+
+ bb = 42
+ n = elements bb
+ is(n, 42, 'reduce size')
+
+ bb = 999
+ n = elements bb
+ is(n, 999, 'increase size')
+
+ bb = 0
+ n = elements bb
+ is(n, 0, 'resize to 0')
+
+ bb = 'foobar'
+ bb = 3
+ n = elements bb
+ is(n, 3, 'reduce size from string content')
+
+ s = bb.'get_string_as'(ascii:"")
+ is(s, 'foo', 'resized string content has correct value')
+
+ bb = 'foobar'
+ bb = 7
+ n = elements bb
+ is(n, 7, 'increase size from string content')
+
+ # This test is for code coverage, zero filling is not a feature
+ # you should expect, it can be changed for performance reasons.
+ s = bb.'get_string_as'(binary:"")
+ is(s, binary:"foobar\x{0}", 'resized from string content is zero filled')
+
+ bb = 'barfoo'
+ bb = 0
+ n = elements bb
+ is(n, 0, 'resize to zero from string content')
+
+ bb = 42
+ bb = 0
+ n = elements bb
+ is(n, 0, 'resize to zero from allocated content')
+
+ .local pmc eh
+ eh = new ['ExceptionHandler']
+ eh.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+ set_addr eh, catch_negative
+ n = 1
+ push_eh eh
+ bb = -1
+ n = 0
+ goto test_negative
+catch_negative:
+ finalize eh
+test_negative:
+ pop_eh
+ ok(n, 'negative size throws')
+.end
+
+.sub test_alloc
+ # Exercise buffer reallocation building a utf16 string with the
+ # codepoints 32-8192
+ .local pmc bb
+ .local int i, big, pos, b0, b1, c
+
+ $I0 = hasicu()
+ unless $I0 goto skip_it
+
+ # Get endianess to set the bytes in the appropiate order.
+ # *** XXX *** Need report from big endian platforms.
+ big = isbigendian()
+
+ bb = new ['ByteBuffer']
+ pos = 0
+ i = 32
+loopset:
+ b0 = div i, 256
+ b1 = mod i, 256
+ if big goto setbig
+ bb[pos] = b1
+ inc pos
+ bb[pos] = b0
+ inc pos
+ goto setdone
+setbig:
+ bb[pos] = b0
+ inc pos
+ bb[pos] = b1
+ inc pos
+setdone:
+ inc i
+ if i < 8192 goto loopset
+
+ .local string s
+ s = bb.'get_string'('unicode', 'utf16')
+
+ # Check string size
+ i = length s
+ if i != 8160 goto failed
+
+ # Check string content
+ i = 32
+ pos = 0
+loopcheck:
+ c = ord s, pos
+ if c != i goto failed
+ inc pos
+ inc i
+ if i < 8192 goto loopcheck
+ ok(1, "reallocation")
+ goto end
+failed:
+ say i
+ ok(0, "reallocation")
+ goto end
+skip_it:
+ skip(1, "this test needs ICU")
+end:
+.end
+
+.sub test_iterate
+ .local pmc bb, it, arr
+ .local string s
+ s = 'abcd'
+ bb = new ['ByteBuffer']
+ bb = s
+ it = iter bb
+ it = .ITERATE_FROM_START
+ arr = new ['ResizableStringArray']
+loop:
+ unless it goto donearray
+ $I0 = shift it
+ $S0 = chr $I0
+ push arr, $S0
+ goto loop
+donearray:
+ .local string r
+ r = join '', arr
+ is(r, s, 'iterate buffer content')
+.end
+
+.sub test_invalid
+ .local pmc bb, ex
+ .local string s
+ bb = new ['ByteBuffer']
+ bb = 'something'
+ push_eh catch_charset
+ s = bb.'get_string'('***INVALID cHARsET%%%%', 'fixed_8')
+ pop_eh
+ ok(0, "get_string with invalid charset should throw")
+ goto check_encoding
+catch_charset:
+ .get_results(ex)
+ finalize ex
+ pop_eh
+ ok(1, "get_string with invalid charset throws")
+check_encoding:
+ push_eh catch_encoding
+ s = bb.'get_string'('ascii', '???INVALID eNCODING===')
+ pop_eh
+ ok(0, "get_string with invalid encoding should throw")
+ goto check_content
+catch_encoding:
+ .get_results(ex)
+ finalize ex
+ pop_eh
+ ok(1, "get_string with invalid encoding throws")
+check_content:
+ bb[0] = 128 # Out of ascii range
+ push_eh catch_content
+ s = bb.'get_string'('ascii', 'fixed_8')
+ pop_eh
+ ok(0, "get_string with invalid content should throw")
+ goto end
+catch_content:
+ .get_results(ex)
+ finalize ex
+ pop_eh
+ ok(1, "get_string with invalid content throws")
+end:
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/gc_massacre/t/pmc/capture.t
==============================================================================
--- branches/gc_massacre/t/pmc/capture.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/capture.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -17,7 +17,7 @@
=cut
-.const int TESTS = 47
+.const int TESTS = 53
.sub 'test' :main
.include 'test_more.pir'
@@ -25,6 +25,7 @@
plan(TESTS)
test_new_capture()
+ empty_capture_tests()
basic_capture_tests()
test_defined_delete_exists()
test_hash_list()
@@ -41,6 +42,29 @@
ok(1, 'new Capture')
.end
+.sub 'empty_capture_tests'
+ .local pmc capt
+
+ capt = new ['Capture']
+
+ $I0 = elements capt
+ is($I0, 0, 'elements on empty Capture')
+
+ $N0 = capt[0]
+ is($N0, 0.0, 'get_number_keyed_int on empty Capture')
+ $I0 = capt[0]
+ is($I0, 0, 'get_integer_keyed_int on empty Capture')
+ $S0 = capt[0]
+ is($S0, '', 'get_string_keyed_int on empty Capture')
+
+ $N0 = capt['nothing']
+ is($N0, 0.0, 'get_number_keyed on empty Capture')
+
+ $S0 = capt
+ $S1 = 'get_string on empty Capture - ' . $S0
+ substring($S0, 'Capture[', $S1)
+.end
+
.sub 'basic_capture_tests'
.local pmc capt
Modified: branches/gc_massacre/t/pmc/eval.t
==============================================================================
--- branches/gc_massacre/t/pmc/eval.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/eval.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -46,11 +46,15 @@
compreg P1, "PASM"
set_args "0", S5
invokecc P1
+ get_results "0", P2
+ elements I0, P2
+ say I0
get_global P0, "_foo"
invokecc P0
print "back\n"
end
CODE
+1
foo
back
OUTPUT
@@ -66,8 +70,8 @@
concat S5, "returncc\n"
compreg P1, "PASM"
set_args "0", S5
- get_results "0", P6
invokecc P1
+ get_results "0", P6
get_global P2, "_foo"
invokecc P2
print "back\n"
Modified: branches/gc_massacre/t/pmc/exception.t
==============================================================================
--- branches/gc_massacre/t/pmc/exception.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/exception.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -18,7 +18,7 @@
.sub main :main
.include 'test_more.pir'
- plan( 19 )
+ plan(20)
test_bool()
test_int()
test_attrs()
@@ -30,66 +30,12 @@
test_throw_obj()
.end
-.sub test_throw_obj
- new $P20, ['ExceptionHandler']
- set_addr $P20, _handler
- push_eh $P20
- new $P30, ['Exception']
- throw $P30
- say "not reached"
-_handler:
- ok(1,'caught exception object thrown')
-.end
-
-.sub test_die
- push_eh handler
- die 3, 100
- say "not reached"
- .return()
- handler:
- ok(1,'die works')
-.end
-
-.sub test_push_pop_eh
- push_eh handler
- ok(1,'push_eh works')
-
- pop_eh
- ok(1,'pop_eh works')
- .return()
-
- handler:
- say "i am the decider"
-.end
-
-.sub test_push_eh_throw
- push_eh handler
- $P0 = new ['Exception']
- throw $P0
- ok(0,'throw does not throw')
-
- handler:
- ok(1,'throw can throw')
-.end
-
-.sub test_push_pop_eh_long
- $P0 = new ['ExceptionHandler']
- set_addr $P0, handler
- push_eh $P0
- ok(1,'push_eh works (long)')
-
- pop_eh
- ok(1,'pop_eh works (long)')
- .return()
-
- handler:
- say "i am the decider"
-.end
-
.sub test_bool
$P0 = new 'ExceptionHandler'
set_addr $P0, _handler
- ok($P0,'ExceptionHandler objects return true')
+ ok($P0,'ExceptionHandler object return true')
+ $P1 = new 'Exception'
+ ok($P1,'Exception object return true')
.return()
_handler:
say "howdy bool!"
@@ -155,20 +101,76 @@
.get_results($P0)
$P16 = getattribute $P0, 'message'
- is($P16, "just pining")
+ is($P16, "just pining", 'got message')
$P17 = getattribute $P0, 'severity'
- is($P17, 5)
+ is($P17, 5, 'got severity')
$P18 = getattribute $P0, 'payload'
- is($P18, "additional payload")
+ is($P18, "additional payload", 'got payload')
$P19 = getattribute $P0, 'backtrace'
$P20 = $P19[0]
- is($P20, "backtrace line 1")
+ is($P20, "backtrace line 1", 'got backtrace data')
$P20 = $P19[1]
- is($P20, "backtrace line 2")
+ is($P20, "backtrace line 2", 'more backtrace data')
+.end
+
+.sub test_push_pop_eh
+ push_eh handler
+ ok(1,'push_eh works')
+
+ pop_eh
+ ok(1,'pop_eh works')
+ .return()
+
+ handler:
+ say "i am the decider"
+.end
+
+.sub test_push_eh_throw
+ push_eh handler
+ $P0 = new ['Exception']
+ throw $P0
+ ok(0,'throw does not throw')
+
+ handler:
+ ok(1,'throw can throw')
+.end
+
+.sub test_push_pop_eh_long
+ $P0 = new ['ExceptionHandler']
+ set_addr $P0, handler
+ push_eh $P0
+ ok(1,'push_eh works (long)')
+
+ pop_eh
+ ok(1,'pop_eh works (long)')
+ .return()
+
+ handler:
+ say "i am the decider"
+.end
+
+.sub test_die
+ push_eh handler
+ die 3, 100
+ say "not reached"
+ .return()
+ handler:
+ ok(1,'die works')
+.end
+
+.sub test_throw_obj
+ new $P20, ['ExceptionHandler']
+ set_addr $P20, _handler
+ push_eh $P20
+ new $P30, ['Exception']
+ throw $P30
+ say "not reached"
+_handler:
+ ok(1,'caught exception object thrown')
.end
# Local Variables:
Modified: branches/gc_massacre/t/pmc/exceptionhandler.t
==============================================================================
--- branches/gc_massacre/t/pmc/exceptionhandler.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/exceptionhandler.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,5 +1,5 @@
#!./parrot
-# Copyright (C) 2006-2008, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -23,9 +23,9 @@
.include 'test_more.pir'
# If test exited with "bad plan" MyHandlerCan.can_handle wasn't invoked.
- plan(9)
+ plan(15)
- .local pmc eh
+ .local pmc eh, eh2
eh = new ['ExceptionHandler']
ok(1, 'Instantiated ExceptionHandler')
@@ -34,11 +34,21 @@
eh.'max_severity'(.EXCEPT_WARNING)
push_eh eh
- eh = new ['ExceptionHandler']
- set_addr eh, error_handler_one
- eh.'min_severity'(.EXCEPT_ERROR)
- eh.'max_severity'(.EXCEPT_FATAL)
- push_eh eh
+ eh2 = new ['ExceptionHandler']
+ set_addr eh2, error_handler_one
+ eh2.'min_severity'(.EXCEPT_ERROR)
+ eh2.'max_severity'(.EXCEPT_FATAL)
+ push_eh eh2
+
+ .local int i
+ i = eh.'min_severity'()
+ is(i, .EXCEPT_NORMAL, 'get min_severity - 1')
+ i = eh.'max_severity'()
+ is(i, .EXCEPT_WARNING, 'get max_severity - 1')
+ i = eh2.'min_severity'()
+ is(i, .EXCEPT_ERROR, 'get min_severity - 2')
+ i = eh2.'max_severity'()
+ is(i, .EXCEPT_FATAL, 'get max_severity - 2')
$P0 = new ['Exception']
$P0['severity'] = .EXCEPT_NORMAL
@@ -90,6 +100,8 @@
pop_eh
pop_eh
+ test_handle_types_except()
+
goto subclass_handler
typed_handler_one:
@@ -218,6 +230,54 @@
.return(1)
.end
+.namespace [ ]
+
+.sub 'test_handle_types_except'
+ .local pmc badeh, eh, ex
+ .local int i
+ .const int TYPEUSED = .EXCEPTION_UNEXPECTED_NULL
+ .const int TYPEOTHER = .EXCEPTION_SYNTAX_ERROR
+
+ i = 0
+ eh = new ['ExceptionHandler']
+ badeh = new ['ExceptionHandler']
+ eh.'handle_types_except'(TYPEUSED)
+ set_addr eh, catch
+ set_addr badeh, badcatch
+ push_eh badeh
+ push_eh eh
+ ex = new ['Exception']
+ ex['type'] = TYPEOTHER
+ throw ex
+ goto report1
+ badcatch:
+ finalize eh
+ goto report1
+ catch:
+ finalize eh
+ i = 1
+ report1:
+ ok(i, 'type not in except is list is caught')
+
+ i = 0
+ set_addr badeh, catchall
+ set_addr eh, dontcatch
+ ex = new ['Exception']
+ ex['type'] = TYPEUSED
+ throw ex
+ goto report2
+ catchall:
+ finalize eh
+ i = 1
+ goto report2
+ dontcatch:
+ finalize eh
+ report2:
+ pop_eh
+ pop_eh
+ ok(i, 'type in except is list is not caught')
+.end
+
# Local Variables:
# mode: pir
# fill-column: 100
Modified: branches/gc_massacre/t/pmc/exporter.t
==============================================================================
--- branches/gc_massacre/t/pmc/exporter.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/exporter.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
use strict;
@@ -28,6 +28,10 @@
$P0 = new ['Exporter']
say "ok 1 - $P0 = new ['Exporter']"
+ # Most uses of export are short-lived, so use a explicit sweep
+ # here to ensure coverage of the mark vtable.
+ sweep 1
+
$I0 = isa $P0, 'Exporter'
if $I0 goto ok_2
print 'not '
Modified: branches/gc_massacre/t/pmc/filehandle.t
==============================================================================
--- branches/gc_massacre/t/pmc/filehandle.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/filehandle.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -7,7 +7,7 @@
use lib qw( . lib ../lib ../../lib );
use Test::More;
-use Parrot::Test tests => 20;
+use Parrot::Test tests => 23;
use Parrot::Test::Util 'create_tempfile';
use Parrot::Test::Util 'create_tempfile';
@@ -40,6 +40,7 @@
# L<PDD22/I\/O PMC API/=item open.*=item close>
pir_output_is( <<"CODE", <<'OUT', 'open and close - synchronous' );
.sub 'test' :main
+ .local int i
\$P1 = new ['FileHandle']
\$P1.'open'('README')
say 'ok 1 - \$P1.open(\$S1)'
@@ -73,6 +74,14 @@
\$P7.'open'('$temp_file', 'w')
say 'ok 7 - \$P7.open(\$S1, \$S2) # new file, write mode succeeds'
+ i = \$P7.'is_closed'()
+ print 'is_closed: '
+ say i
+ \$P7.'close'()
+ i = \$P7.'is_closed'()
+ print 'is_closed after close: '
+ say i
+
goto end
eh_bad_file_1:
@@ -93,6 +102,66 @@
ok 5 - $P5.open($S1) # with bad file
ok 6 - $P6.open($S1, $S2) # with bad file
ok 7 - $P7.open($S1, $S2) # new file, write mode succeeds
+is_closed: 0
+is_closed after close: 1
+OUT
+
+pir_output_is( <<'CODE', <<'OUT', 'wrong open' );
+.include 'except_types.pasm'
+
+.sub main :main
+ .local pmc fh, eh
+ .local int i
+ i = 1
+ eh = new['ExceptionHandler']
+ eh = .EXCEPTION_PIO_ERROR
+ set_addr eh, catchnoname
+ push_eh eh
+ fh = new['FileHandle']
+ # Open without filename
+ fh.'open'()
+ i = 0
+ goto reportnoname
+ catchnoname:
+ finalize eh
+ reportnoname:
+ say i
+
+ i = 0
+ set_addr eh, catchreopen
+ fh.'open'('README')
+ i = 1
+ # Open already opened
+ fh.'open'('README')
+ i = 0
+ goto reportreopen
+ catchreopen:
+ finalize eh
+ reportreopen:
+ say i
+ pop_eh
+.end
+CODE
+1
+1
+OUT
+
+pir_output_is( <<'CODE', <<'OUT', 'isatty' );
+.sub 'test' :main
+ .local pmc fh
+ .local int i
+ fh = new ['FileHandle']
+ i = fh.'isatty'()
+ print i
+ say ' unopened FileHandle is not a tty'
+ fh.'open'('README')
+ i = fh.'isatty'()
+ print i
+ say ' regular file is not a tty'
+.end
+CODE
+0 unopened FileHandle is not a tty
+0 regular file is not a tty
OUT
SKIP: {
@@ -566,6 +635,39 @@
ok
OUTPUT
+pir_output_is( <<'CODE', <<'OUTPUT', "readall - failure conditions" );
+.include 'except_types.pasm'
+.sub main :main
+ .local pmc fh, eh
+ fh = new ['FileHandle']
+ eh = new ['ExceptionHandler']
+ eh.'handle_types'(.EXCEPTION_PIO_ERROR)
+ set_addr eh, catch1
+ push_eh eh
+ # Using unopened FileHandle
+ fh.'readall'()
+ say 'should never happen'
+ goto test2
+ catch1:
+ finalize eh
+ say 'caught unopened'
+ test2:
+ set_addr eh, catch2
+ fh.'open'('README')
+ # Using opened FileHandle with the filepath option
+ fh.'readall'('README')
+ say 'should never happen'
+ goto end
+ catch2:
+ finalize eh
+ say 'caught reopen'
+ end:
+.end
+CODE
+caught unopened
+caught reopen
+OUTPUT
+
pir_output_is( <<"CODE", <<"OUTPUT", "readall() - utf8 on closed filehandle" );
.sub 'main'
.local pmc ifh
@@ -644,7 +746,7 @@
expect 1 exit status: 1
OUTPUT
-pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "timely destruction", todo => 'TT #1659' );
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "timely destruction" );
.const string temp_file = '%s'
.sub main :main
interpinfo $I0, 2 # GC mark runs
Modified: branches/gc_massacre/t/pmc/fixedintegerarray.t
==============================================================================
--- branches/gc_massacre/t/pmc/fixedintegerarray.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/fixedintegerarray.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -19,7 +19,7 @@
.sub 'main' :main
.include 'test_more.pir'
- plan(35)
+ plan(36)
test_set_size()
test_reset_size()
@@ -32,6 +32,7 @@
test_get_iter()
test_equality()
test_repr()
+ test_sort()
test_new_style_init()
test_invalid_init_tt1509()
.end
@@ -271,6 +272,23 @@
is($I0, 10, "New style init creates the correct # of elements")
.end
+.sub 'test_sort'
+ .local pmc a1, a2
+ a1 = new ['FixedIntegerArray'], 3
+ a1[0] = 7
+ a1[1] = 1
+ a1[2] = 5
+
+ a2 = new ['FixedIntegerArray'], 3
+ a2[0] = 1
+ a2[1] = 5
+ a2[2] = 7
+
+ a1.'sort'()
+ $I0 = iseq a1, a2
+ is($I0, 1, 'default sort')
+.end
+
.sub test_invalid_init_tt1509
throws_substring(<<'CODE', 'FixedIntegerArray: Cannot set array size to a negative number (-10)', 'New style init does not dump core for negative array lengths')
.sub main
@@ -285,6 +303,8 @@
CODE
.end
+
+
# Local Variables:
# mode: pir
# fill-column: 100
Modified: branches/gc_massacre/t/pmc/float.t
==============================================================================
--- branches/gc_massacre/t/pmc/float.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/float.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,5 +1,5 @@
#!./parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -16,7 +16,7 @@
=cut
-.const int TESTS = 159
+.const int TESTS = 162
.const num PRECISION = 0.000001
.sub 'test' :main
@@ -89,32 +89,47 @@
.include 'fp_equality.pasm'
.sub 'basic_assignment'
- $P0 = new ['Float']
+ # Assignments can morph to other PMC type,
+ # use a new Float for each test to be sure we are testing
+ # the intended code.
+ $P0 = new ['Float']
$P0 = 0.001
is($P0, 0.001, 'basic float assignment 1', PRECISION)
+ $P0 = new ['Float']
$P0 = 12.5
is($P0, 12.5, 'basic assignment 2', PRECISION)
+ $P0 = new ['Float']
$P0 = 1000
is($P0, 1000.0, 'basic integer assignment', PRECISION)
+ $P0 = new ['Float']
$P0 = 'Twelve point five'
is($P0, 0.0, 'basic string assignment', PRECISION)
+ $P0 = new ['Float']
$P0 = 123.45
$I0 = $P0
is($I0, 123, 'rounding to integer')
+ $P0 = new ['Float']
$P0 = 123.45
$N0 = $P0
is($N0, 123.45, 'get_float_value', PRECISION)
+ $P0 = new ['Float']
$P0 = 123.45
$S0 = $P0
is($S0, '123.45', 'get string')
+ $P0 = new ['Float']
+ $P0 = 123.45
+ $S0 = get_repr $P0
+ is($S0, '123.45', 'get_repr')
+
+ $P0 = new ['Float']
$P0 = "12.49"
is($P0, 12.49, 'setting value from String', PRECISION)
.end
@@ -436,6 +451,11 @@
$P0 = -5.0
abs $P0
is($P0, 5.0, 'abs of -5.0', PRECISION)
+
+ $P0 = -6.0
+ $P1 = abs $P0
+ is($P1, 6.0, 'abs two operands from -6.0', PRECISION)
+ is($P0, -6.0, 'abs two operands source unchanged', PRECISION)
.end
.sub 'lt'
Modified: branches/gc_massacre/t/pmc/handle.t
==============================================================================
--- branches/gc_massacre/t/pmc/handle.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/handle.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -20,7 +20,7 @@
.sub main :main
.include 'test_more.pir'
- plan(2)
+ plan(3)
'test_create'()
'test_does_tt_1473'()
.end
@@ -35,6 +35,17 @@
ok(1, "Cannot instantiate an abstract type")
pop_eh
create_end:
+
+ $P1 = new ['String']
+ push_eh cant_instantiate_arg
+ $P0 = new ['Handle'], $P1
+ ok(0, "Can instantiate an abstract type with arg")
+ pop_eh
+ goto create_end_arg
+ cant_instantiate_arg:
+ ok(1, "Cannot instantiate an abstract type with arg")
+ pop_eh
+ create_end_arg:
.end
.sub 'test_does_tt_1473'
Modified: branches/gc_massacre/t/pmc/hash.t
==============================================================================
--- branches/gc_massacre/t/pmc/hash.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/hash.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -18,15 +18,18 @@
=cut
+.include 'except_types.pasm'
+.include 'datatypes.pasm'
+.include 'hash_key_type.pasm'
+
.sub main :main
.include 'test_more.pir'
- .include 'except_types.pasm'
- .include 'datatypes.pasm'
- plan(168)
+ plan(172)
initial_hash_tests()
more_than_one_hash()
+ hash_key_type()
null_key()
hash_keys_with_nulls_in_them()
nearly_the_same_hash_keys()
@@ -125,6 +128,34 @@
is( $I1, 2, 'two hashes: lookup Int from hash via Str in second' )
.end
+.sub hash_key_type
+ .local pmc h
+ .local int i
+ h = new ['Hash']
+ h = .Hash_key_type_int
+ h['01'] = 42
+ i = h[1]
+ is(i, 42, 'key type int')
+
+ # Use the method here to check it at the same time.
+ h.'set_key_type'(.Hash_key_type_STRING)
+ h[1] = 42
+ i = h['01']
+ isnt(i, 42, 'key type STRING')
+ i = h.'get_key_type'()
+ is(i, .Hash_key_type_STRING, 'method get_key_type return type STRING')
+
+ push_eh invalid_type
+ h = -973 # Let's hope it will never become a valid type
+ pop_eh
+ ok(0, "Setting invalid type should throw")
+ goto end
+invalid_type:
+ pop_eh
+ ok(1, 'Setting invalid type throws')
+end:
+.end
+
.sub null_key
new $P0, ['Hash']
$P0['yum'] = 5
Modified: branches/gc_massacre/t/pmc/hashiterator.t
==============================================================================
--- branches/gc_massacre/t/pmc/hashiterator.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/hashiterator.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -18,16 +18,17 @@
=cut
+.include 'except_types.pasm'
+
.sub main :main
.include 'test_more.pir'
- .include 'except_types.pasm'
- plan(6)
+ plan(8)
iter_over_empty_hash()
iter_over_single_element()
iter_over_single_element_with_checks()
-
+ iter_invalid_type()
.end
.sub 'iter_over_empty_hash'
@@ -36,6 +37,21 @@
it = new 'HashIterator', hash
$I0 = isfalse it
ok($I0, "Iterator for empty Hash is empty")
+ .local pmc eh
+ .local int i
+ i = 1
+ eh = new 'ExceptionHandler'
+ eh.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+ set_addr eh, catch
+ push_eh catch
+ $P0 = shift it
+ i = 0
+ goto report
+ catch:
+ finalize eh
+ report:
+ pop_eh
+ ok(i, 'shift for empty hash throws')
.end
.sub 'iter_over_single_element'
@@ -67,6 +83,27 @@
.end
+.sub 'iter_invalid_type'
+ .local pmc hash, it
+ hash = new 'Hash'
+ it = new 'HashIterator', hash
+ .local pmc eh
+ .local int i
+ i = 1
+ eh = new 'ExceptionHandler'
+ eh.'handle_types'(.EXCEPTION_INVALID_OPERATION)
+ set_addr eh, catch
+ push_eh catch
+ it = 987 # Arbitrary value, let's hope we never use
+ i = 0
+ goto report
+ catch:
+ finalize eh
+ report:
+ pop_eh
+ ok(i, 'setting invalid type throws')
+.end
+
# Local Variables:
# mode: pir
# fill-column: 100
Modified: branches/gc_massacre/t/pmc/io.t
==============================================================================
--- branches/gc_massacre/t/pmc/io.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/io.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -7,8 +7,7 @@
use lib qw( . lib ../lib ../../lib );
use Test::More;
-use Parrot::Test tests => 36;
-use Parrot::Test::Util 'create_tempfile';
+use Parrot::Test tests => 32;
use Parrot::Test::Util 'create_tempfile';
=head1 NAME
@@ -41,7 +40,7 @@
my (undef, $temp_file) = create_tempfile( UNLINK => 1 );
-pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "timely destruction", todo => 'TT #1659');
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "timely destruction" );
.const string temp_file = '%s'
.sub main :main
interpinfo $I0, 2 # GC mark runs
@@ -51,7 +50,8 @@
print $P0, "a line\n"
null $P0 # kill it
sweep 0 # a lazy GC has to close the PIO
- $P0 = open temp_file, 'r'
+ $P0 = new ['FileHandle']
+ $P0.'open'(temp_file, 'r')
$S0 = $P0.'read'(20)
print $S0
.end
@@ -506,16 +506,6 @@
/seek failed/
OUTPUT
-pasm_error_output_like( <<"CODE", <<'OUTPUT', '32bit seek: exception (ops)' );
-.loadlib 'io_ops'
- open P0, "$temp_file", 'w'
- seek P0, -1, 0
- say "error!"
- end
-CODE
-/seek failed \(32bit\)/
-OUTPUT
-
pir_error_output_like( sprintf(<<'CODE', $temp_file), <<'OUTPUT', '64bit seek: exception' );
.const string temp_file = '%s'
.sub main :main
@@ -528,16 +518,6 @@
/seek failed/
OUTPUT
-pasm_error_output_like( <<"CODE", <<'OUTPUT', '64bit seek: exception (ops)' );
-.loadlib 'io_ops'
- open P0, "$temp_file", 'w'
- seek P0, -1, -1, 0
- say "error!"
- end
-CODE
-/seek failed \(64bit\)/
-OUTPUT
-
pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "peek" );
.const string temp_file = '%s'
.sub main :main
@@ -563,27 +543,6 @@
l
OUTPUT
-pasm_output_is( <<"CODE", <<'OUTPUT', "peek (ops)" );
-.loadlib 'io_ops'
- open P0, "$temp_file", 'w'
- print P0, "a line\\n"
- close P0
- open P0, "$temp_file", 'r'
- peek S0, P0
- print S0
- peek S1, P0
- print S1
- print "\\n"
- read S2, P0, 2
- peek S3, P0
- print S3
- print "\\n"
- end
-CODE
-aa
-l
-OUTPUT
-
pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "peek on an empty file" );
.const string temp_file = '%s'
.sub main :main
@@ -603,21 +562,6 @@
ok 1
OUTPUT
-pasm_output_is( <<"CODE", <<'OUTPUT', "peek on an empty file (ops)" );
-.loadlib 'io_ops'
- open P0, "$temp_file", 'w'
- close P0
- open P0, "$temp_file", 'r'
- peek S0, P0
- eq S0, "", OK1
- print "not "
-OK1:
- say "ok 1"
- end
-CODE
-ok 1
-OUTPUT
-
pir_output_is( <<"CODE", <<'OUTPUT', "substr after reading from file" );
.sub _main
# Write something into a file
Deleted: branches/gc_massacre/t/pmc/objects.t
==============================================================================
--- branches/gc_massacre/t/pmc/objects.t Tue Aug 3 22:27:14 2010 (r48297)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,1791 +0,0 @@
-#!./parrot
-# Copyright (C) 2001-2010, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-t/pmc/objects.t - Objects
-
-=head1 SYNOPSIS
-
- % prove t/pmc/objects.t
-
-=head1 DESCRIPTION
-
-Tests the object/class subsystem.
-
-=cut
-
-.sub main :main
- .include 'test_more.pir'
- .include "iglobals.pasm"
- .include "interpinfo.pasm"
-
- plan(194)
-
- get_classname_from_class()
- test_get_class()
- test_isa()
- does_scalar()
- does_array()
- new_object()
- new_object__isa_test()
- new_object__classname()
- isa_subclass()
- isa_subclass__objects()
- test_addmethod()
- test_addattribute()
- addattribute_subclass()
- addattribute_subclass__same_name()
- set_and_get_object_attribs()
- set_and_get_multiple_object_attribs()
- attribute_values_are_specific_to_objects()
- attribute_values_and_subclassing()
- attribute_values_and_subclassing_2()
- PMC_as_classes__overridden_mmd_methods()
- typeof_class()
- typeof_objects()
- multiple_inheritance__with_attributes()
- attributes_two_levels_of_inheritance()
- class_op_test()
- anon_subclass_has_no_name()
- get_attrib_by_name()
- get_attrib_by_name_subclass()
- set_attrib_by_name_subclass()
- PMC_as_classes()
- PMC_as_classes__subclass()
- PMC_as_classes__instantiate()
- PMC_as_classes__methods()
- PMC_as_classes__mmd_methods()
- PMC_as_classes__derived_1()
- PMC_as_classes__derived_2()
- PMC_as_classes__derived_3()
- subclassing_Class()
- namespace_vs_name()
- multiple_anon_classes()
- subclassed_Integer_bug()
- equality_of_subclassed_Integer()
- short_name_attributes()
- init_with_and_without_arg()
- newclass_bracket_parsing()
- verify_namespace_types()
- verify_data_type()
- new_keyed()
- new_keyed_2()
- new_keyed_3()
- subclass_keyed()
- test_class_name_multipart_name()
- test_get_class_multipart_name()
- isa_bug()
- new_nested_ordering()
- vtable_override_once_removed()
- vtable_fails_for_subclasses_of_core_classes()
- super___init_called_twice()
- using_class_object_from_typeof_op_with_new()
- setting_non_existent_attribute()
- setting_non_existent_attribute_by_name()
- getting_null_attribute()
- getting_non_existent_attribute()
- addparent_exceptions_1()
- addparent_exceptions_2()
- subclassing_a_non_existent_class()
- anon_subclass_of_non_existent_class()
- addattribute_duplicate()
- wrong_way_to_create_new_objects()
- attribute_values__subclassing_access_meths()
- attribute_values__inherited_access_meths()
-
- # END_OF_TESTS
-.end
-
-.sub get_classname_from_class
- newclass $P1, "Foo5"
- set $S0, $P1
- is( $S0, "Foo5", "got classname Foo5" )
-
- subclass $P2, $P1, "Bar5"
- set $S1, $P2
- is( $S1, "Bar5", "got subclass Bar5" )
-
- subclass $P3, "Foo5", "Baz5"
- set $S2, $P3
- is( $S2, "Baz5", "got subclass Baz5" )
-.end
-
-.sub test_get_class
- newclass $P1, "Foo6"
- get_class $P2, "Foo6"
- set $S2, $P2
- is( $S2, "Foo6", 'get_class for Foo6' )
-
- subclass $P3, $P1, "FooBar6"
- get_class $P4, "FooBar6"
- set $S4, $P4
- is( $S4, 'FooBar6', 'get_class for FooBar6' )
-
- get_class $P3, "NoSuch6"
- isnull $I0, $P3
- ok( $I0, "no class for 'NoSuch6'" )
-.end
-
-.sub test_isa
- new $P1, ['Boolean']
-
- isa $I0, $P1, "Boolean"
- is( $I0, 1, 'Boolean isa Boolean' )
-
- isa $I0, $P1, "Bool"
- is( $I0, 0, 'Boolean !isa Bool' )
-
- isa $I0, $P1, "scalar"
- is( $I0, 1, 'Boolean isa scalar' )
-
- isa $I0, $P1, "calar"
- is( $I0, 0, 'Boolean !isa calar' )
-
- isa $I0, $P1, "Integer"
- is( $I0, 1, 'Boolean isa Integer' )
-
- isa $I0, $P1, "Integ"
- is( $I0, 0, 'Boolean !isa Integ' )
-
- isa $I0, $P1, "eger"
- is( $I0, 0, 'Boolean !isa eger' )
-
- isa $I0, $P1, " "
- is( $I0, 0, 'Boolean !isa " "' )
-
- isa $I0, $P1, ""
- is( $I0, 0, 'Boolean !isa ""' )
-
- null $S0
- isa $I0, $P1, $S0
- is( $I0, 0, 'Boolean !isa null $S0' )
-
- set $S0, "scalar"
- isa $I0, $P1, $S0
- is( $I0, 1, 'Boolean isa scalar $S0' )
-.end
-
-.sub does_scalar
- new $P1, ['Boolean']
-
- does $I0, $P1, "Boolean"
- is( $I0, 0, 'Boolean !does Boolean' )
-
- does $I0, $P1, "Bool"
- is( $I0, 0, 'Boolean !does Bool' )
-
- does $I0, $P1, "scalar"
- is( $I0, 1, 'Boolean does scalar' )
-.end
-
-.sub does_array
- new $P1, ['OrderedHash']
-
- does $I0, $P1, "Boolean"
- is( $I0, 0, 'OrderedHash !does Boolean' )
-
- does $I0, $P1, "Bool"
- is( $I0, 0, 'OrderedHash !does Bool' )
-
- does $I0, $P1, "hash"
- is( $I0, 1, 'OrderedHash does hash' )
-
- does $I0, $P1, "array"
- is( $I0, 1, 'OrderedHash does array' )
-.end
-
-.sub new_object
- newclass $P1, "Foo7"
- new $P2, "Foo7"
- ok( 1, 'created new object from Foo7 class' )
-.end
-
-.sub new_object__isa_test
- newclass $P1, "Foo8"
- new $P2, $P1
- ok( 1, 'created new object from Foo8 class' )
-
- isa $I0, $P2, "Foo8"
- ok( $I0, 'new object isa Foo8' )
-.end
-
-.sub new_object__classname
- newclass $P1, "Foo9"
- new $P2, $P1
- set $S0, $P1 # class
- is( $S0, "Foo9", 'new object from Foo9 class as a string is Foo9' )
-
- typeof $S0, $P2 # object
- is( $S0, 'Foo9', 'typeof obj is Foo9' )
-
- class $P3, $P1
- set $S0, $P1 # class
- is( $S0, 'Foo9', 'class of obj is Foo9' )
-
- typeof $S0, $P2 # object
- is( $S0, 'Foo9', 'typeof obj is Foo9' )
-
-.end
-
-.sub isa_subclass
- newclass $P1, "Foo10"
- subclass $P2, $P1, "Bar10"
-
- isa_ok( $P2, "Foo10", 'newclass isa Foo10' )
- isa_ok( $P2, "Bar10", 'new subclass isa Bar10' )
- isa_ok( $P2, "Foo10", 'new subclass isa parent' )
- isa_ok( $P2, "Class", 'new subclass isa Class' )
-
- isa $I0, $P2, "Object"
- is( $I0, 0, 'new subclass !isa Object' )
-.end
-
-.sub isa_subclass__objects
- newclass $P3, "Foo30"
- subclass $P4, $P3, "Bar30"
- $P1 = $P3.'new'()
- $P2 = $P4.'new'()
-
- isa_ok( $P1, "Foo30", 'obj isa its class' )
- isa_ok( $P2, "Bar30", 'obj isa its class' )
- isa_ok( $P2, "Foo30", 'obj isa its parent class' )
- isa_ok( $P2, "Object", 'obj isa Object' )
- isa_ok( $P2, "Class", 'obj isa Class' )
-.end
-
-.sub test_addmethod
- newclass $P0, 'Foo31'
- $P2 = get_hll_global 'sayFoo31'
-
- # add a method BEFORE creating a Foo object
- addmethod $P0, 'foo31', $P2
- $P1 = new 'Foo31'
- $P1.'foo31'()
-
- # get a method from some other namespace
- $P2 = get_hll_global ['Bar31'], 'sayBar31'
-
- # add a method AFTER creating the object
- addmethod $P0, 'bar31', $P2
- $P1.'bar31'()
-.end
-
-.sub sayFoo31
- ok( 1, 'called method added before creating obj' )
-.end
-
-.namespace ['Bar31']
-.sub sayBar31
- ok( 1, 'called method added after created obj' )
-.end
-
-.namespace [] # Reset to root namespace for next test
-
-.sub test_addattribute
- newclass $P1, "Foo11"
-
- addattribute $P1, "foo_i"
- ok( 1, 'addattribute did not blow up' )
-
- set $S0, $P1
- is( $S0, "Foo11", '$P1 is still the same class as PMC' )
-
- # Check that we can add multiple attributes
- set $I0, 0
-l1:
- set $S0, $I0
- addattribute $P1, $S0
- inc $I0
- lt $I0, 1000, l1
- ok( 1, 'addattribute 1000x without blow up' )
-.end
-
-.sub addattribute_subclass
- newclass $P1, "Foo12"
- addattribute $P1, "foo_i"
- ok( 1, 'addattribute to Foo12' )
-
- subclass $P2, $P1, "Bar12"
- addattribute $P2, "bar_i"
- ok( 1, 'addattribute to subclass of Foo12' )
-.end
-
-.sub addattribute_subclass__same_name
- newclass $P1, "Foo32"
- addattribute $P1, "i"
- addattribute $P1, "j"
-
- subclass $P2, $P1, "Bar32"
- addattribute $P2, "j"
- addattribute $P2, "k"
-
- ok( 1, 'created class and subclass and added attributes' )
-
- .local pmc o
- o = $P2.'new'()
- $P0 = getattribute o, 'i'
- is( $P0, 'Foo32.i', 'parent attrib initialized in init' )
- $P0 = getattribute o, ['Foo32'], 'j'
- is( $P0, 'Foo32.j', 'parent attrib initialized in init' )
- $P0 = getattribute o, ['Bar32'], 'j'
- is( $P0, 'Bar32.j', 'subclass attrib initialized in init' )
- $P0 = getattribute o, 'k'
- is( $P0, 'Bar32.k', 'subclass attrib initialized in init' )
-
- $P0 = getattribute o, 'i'
- is( $P0, 'Foo32.i', 'parent attrib init-ed' )
- $P0 = getattribute o, ['Foo32'], "j"
- is( $P0, 'Foo32.j', 'parent attrib init-ed' )
- $P0 = getattribute o, 'j'
- is( $P0, 'Bar32.j', 'subclass attrib returned over parent' )
- $P0 = getattribute o, 'k'
- is( $P0, 'Bar32.k', 'subclass attrib init-ed' )
-.end
-
-.namespace ['Bar32']
-
-.sub init :vtable :method
- $P0 = new ['String']
- $P0 = 'Foo32.i'
- setattribute self, ['Foo32'], "i", $P0
- $P0 = new ['String']
- $P0 = 'Foo32.j'
- setattribute self, ["Foo32"], "j", $P0
- $P0 = new ['String']
- $P0 = 'Bar32.j'
- setattribute self, ["Bar32"], "j", $P0
- $P0 = new ['String']
- $P0 = 'Bar32.k'
- setattribute self, ["Bar32"], "k", $P0
-.end
-
-.namespace [] # Reset to root namespace for next test
-
-.sub set_and_get_object_attribs
- newclass $P1, "Foo13"
- addattribute $P1, "i"
- new $P2, $P1
-
- new $P3, ['Integer']
- set $P3, 1024
- setattribute $P2, "i", $P3
-
- new $P4, ['Integer']
- getattribute $P4, $P2, "i"
-
- is( $P4, 1024, 'set/get Integer attribute' )
-.end
-
-.sub set_and_get_multiple_object_attribs
- newclass $P1, "Foo14"
- addattribute $P1, "i"
- addattribute $P1, "j"
- new $P2, "Foo14"
-
- new $P3, ['Integer']
- set $P3, 4201
- new $P4, ['Hash']
- set $P4["Key"], "Value"
-
- setattribute $P2, "i", $P3
- setattribute $P2, "j", $P4
-
- getattribute $P5, $P2, "i"
- is( $P5, '4201', 'set/get Integer attribute' )
-
- getattribute $P6, $P2, "j"
- set $S0, $P6["Key"]
- is( $S0, 'Value', 'set/get Hash attribute on same obj' )
-.end
-
-.sub attribute_values_are_specific_to_objects
- newclass $P1, "Foo15"
- addattribute $P1, "i"
- new $P2, $P1
- new $P3, $P1
-
- new $P4, ['Integer']
- set $P4, 100
- setattribute $P2, "i", $P4
- new $P5, ['String']
- set $P5, "One hundred"
- setattribute $P3, "i", $P5
-
- getattribute $P6, $P2, "i"
- is( $P6, 100, 'attribute value on 1st object is specific to obj' )
-
- getattribute $P6, $P3, "i"
- is( $P6, 'One hundred', 'attribute value on 2nd obj is specific to obj' )
-.end
-
-.sub attribute_values_and_subclassing
- newclass $P1, "Foo16"
- addattribute $P1, "i"
- addattribute $P1, "j"
- subclass $P2, $P1, "Bar16"
- addattribute $P2, "k"
- addattribute $P2, "l"
-
- new $P2, "Bar16"
- new $P3, "Bar16"
-
- # Note that setattribute holds the actual PMC, not a copy, so
- # in this test both attributes get the PMC from $P4, and should
- # both have the same value, despite the C<inc>.
- new $P4, ['Integer']
- set $P4, 10
- setattribute $P2, "i", $P4
- inc $P4
- setattribute $P2, "j", $P4
-
- new $P5, ['Integer']
- set $P5, 100
- setattribute $P3, "i", $P5
- inc $P5
- setattribute $P3, "j", $P5
-
- getattribute $P6, $P2, "i"
- is( $P6, 11, 'setattrib with a PMC holds actual PMC not copy' )
-
- getattribute $P6, $P2, "j"
- is( $P6, 11, '...so changes to the PMC appear through the attrib' )
-
- getattribute $P6, $P3, "i"
- is( $P6, 101, '...and second test on new objects' )
-
- getattribute $P6, $P3, "j"
- is( $P6, 101, '...should have same result' )
-.end
-
-.sub attribute_values_and_subclassing_2
- newclass $P1, "Foo17"
- # must add attributes before object instantiation
- addattribute $P1, ".i"
- addattribute $P1, ".j"
-
- subclass $P2, $P1, "Bar17"
- addattribute $P2, ".k"
- addattribute $P2, ".l"
-
- # subclass is preferred for the SI case over
- # newclass $P2, "Bar"
- # addattrib ...
- # addparent $P2, $P1
- # which is suitable for adding multiple parents to one class
-
- # instantiate a Bar object
- new $P3, "Bar17"
-
- # Set the attribute values
- new $P10, ['String'] # set attribute values
- set $P10, "i" # attribute slots have reference semantics
- setattribute $P3, ".i", $P10 # so always put new PMCs in
- # if you have unique values
- new $P10, ['String']
- set $P10, "j"
- setattribute $P3, ".j", $P10
-
- new $P10, ['String']
- set $P10, "k"
- setattribute $P3, ".k", $P10
-
- new $P10, ['String']
- set $P10, "l"
- setattribute $P3, ".l", $P10
-
- # retrieve attribs
- getattribute $P11, $P3, ".i"
- is( $P11, "i", 'string attribute get/set on parent' )
-
- getattribute $P11, $P3, ".j"
- is( $P11, "j", 'string attribute get/set on parent' )
-
- getattribute $P11, $P3, ".k"
- is( $P11, "k", 'string attribute get/set on subclass' )
-
- getattribute $P11, $P3, ".l"
- is( $P11, "l", 'string attribute get/set on subclass' )
-.end
-
-.sub PMC_as_classes__overridden_mmd_methods
- .local pmc myint, i, j, k
-
- get_class $P0, "Integer"
- subclass myint, $P0, "MyInt1"
-
- i = new 'MyInt1'
- j = new 'MyInt1'
- k = new 'MyInt1'
- i = 6
- j = 7
- k = i + j
-
- is( k, 13, 'added two MyInt1' )
-
- j = new ['Integer']
- j = 100
- k = i + j
-
- is( k, 106, 'added MyInt1 and an Integer' )
-.end
-
-.namespace ["MyInt1"]
-
-.sub add :multi(MyInt1, MyInt1, MyInt1)
- .param pmc self
- .param pmc right
- .param pmc dest
- ok( 1, 'in the add method' )
- $P0 = getattribute self, ['Integer'], "proxy"
- $I0 = $P0
- $I1 = right
- $I2 = $I0 + $I1
- dest = $I2
- .return(dest)
-.end
-
-.namespace [] # Reset to root namespace for next test
-
-.sub typeof_class
- newclass $P0, "Foo21"
- typeof $S0, $P0
- is( $S0, "Class", 'typeof for a Class PMC is "Class"' )
-.end
-
-.sub typeof_objects
- newclass $P0, "A"
- newclass $P1, "B"
-
- new $P0, ['A']
- new $P1, ['B']
-
- typeof $S0, $P0
- typeof $S1, $P1
-
- is( $S0, 'A', 'typeof object of class A is "A"' )
- is( $S1, 'B', 'typeof object of class B is "B"' )
-.end
-
-.sub multiple_inheritance__with_attributes
- newclass $P1, "Star"
- addattribute $P1, "Spectral Type"
-
- newclass $P2, "Company"
- addattribute $P2, "Annual Profit"
-
- subclass $P3, $P1, "Sun"
- addparent $P3, $P2
-
- new $P4, ['Sun']
-
- new $P5, ['String']
- set $P5, "G"
- setattribute $P4, "Spectral Type", $P5
-
- new $P6, ['String']
- set $P6, "$100,000,000"
- setattribute $P4, "Annual Profit", $P6
-
- getattribute $P7, $P4, "Spectral Type"
- is( $P7, 'G', 'direct parents attribute' )
-
- getattribute $P8, $P4, "Annual Profit"
- is( $P8, '$100,000,000', "addparent's attribute" )
-.end
-
-.sub attributes_two_levels_of_inheritance
- newclass $P0, "Astronomical Object"
- addattribute $P0, "Location"
-
- subclass $P1, $P0, "Star2"
- addattribute $P1, "Spectral Type"
-
- newclass $P2, "Sun2"
- addparent $P2, $P1
- addparent $P2, $P0
-
- new $P4, "Sun2"
-
- new $P5, ['String']
- set $P5, "Taurus"
- setattribute $P4, "Location", $P5
- getattribute $P6, $P4, "Location"
- is( $P6, 'Taurus', 'attributes with two levels of inheritance' )
-.end
-
-.sub class_op_test
- newclass $P0, "City1"
- new $P1, "City1"
-
- class $P2, $P1
- set $S0, $P2
- is( $S0, 'City1', 'class op works' )
-.end
-
-.sub anon_subclass_has_no_name
- newclass $P0, "City2"
- subclass $P1, $P0
- set $S0, $P1
- is( $S0, '', 'anonymous subclass has no name' )
-.end
-
-.sub get_attrib_by_name
- newclass $P1, "Foo18"
- addattribute $P1, "i"
- new $P2, "Foo18"
- new $P3, ['String']
- set $P3, "ok"
- setattribute $P2, "i", $P3
-
- getattribute $P4, $P2, ["Foo18"], "i"
- is( $P4, 'ok', 'get attrib by name' )
-.end
-
-.sub get_attrib_by_name_subclass
- newclass $P0, "Bar19"
- addattribute $P0, "j"
-
- subclass $P1, $P0, "Foo19"
- addattribute $P1, "i"
-
- new $P2, "Foo19"
-
- new $P3, ['String']
- set $P3, "foo i"
- setattribute $P2, "i", $P3
-
- new $P3, ['String']
- set $P3, "bar j"
- setattribute $P2, "j", $P3
-
- getattribute $P4, $P2, ["Foo19"], "i"
- is( $P4, 'foo i', 'attribute from subclass get by name' )
-
- getattribute $P4, $P2, ["Bar19"], "j"
- is( $P4, 'bar j', 'attribute from parent class get by name' )
-.end
-
-.sub set_attrib_by_name_subclass
- newclass $P0, "Bar20"
- addattribute $P0, "j"
-
- subclass $P1, $P0, "Foo20"
- addattribute $P1, "i"
-
- new $P2, "Foo20"
-
- new $P3, ['String']
- set $P3, "foo i"
- setattribute $P2, ["Foo20"], "i", $P3
-
- new $P3, ['String']
- set $P3, "bar j"
- setattribute $P2, ["Bar20"], "j", $P3
-
- getattribute $P4, $P2, "i"
- is( $P4, 'foo i', 'attribute from subclass set by name' )
-
- getattribute $P4, $P2, "j"
- is( $P4, 'bar j', 'attribute from parent class set by name' )
-.end
-
-.sub PMC_as_classes
- get_class $P0, "Integer"
- ok( 1, "get_class of Integer did't croak" )
-
- get_class $P0, "Integer"
- ok( 1, "get_class of Integer did't croak second time" )
-
- typeof $S0, $P0
- is( $S0, 'PMCProxy', 'typeof PMCProxy' )
-.end
-
-.sub PMC_as_classes__subclass
- .local pmc MyInt3
- get_class $P0, "Integer"
- ok( 1, "get_class on Integer didn't blow up" )
-
- subclass MyInt3, $P0, "MyInt3"
- ok( 1, "subclassing didn't blow up" )
-
- $S0 = typeof MyInt3
- is( $S0, 'Class', 'new subclass is typeof Class' )
-
- $I0 = isa MyInt3, "MyInt3"
- ok( $I0, 'new subclass isa MyInt' )
-
- $I0 = isa MyInt3, "Integer"
- ok( $I0, 'new subclass isa parent class' )
-.end
-
-.sub PMC_as_classes__instantiate
- .local pmc MyInt4
- get_class $P0, "Integer"
- ok( 1, 'able to get_class of Integer' )
-
- subclass MyInt4, $P0, "MyInt4"
- addattribute MyInt4, ".i"
- ok( 1, 'able to addattribute to subclass' )
-
- .local pmc i
- i = new "MyInt4"
- ok( 1, 'able to instantiate obj of subclass w/ attribute' )
-.end
-
-.sub PMC_as_classes__methods
- .local pmc MyInt5
- get_class $P0, "Integer"
-
- subclass MyInt5, $P0, "MyInt5"
- addattribute MyInt5, "intval"
-
- .local pmc i, i2
- i = new "MyInt5"
- i2 = new ['Integer']
- i2 = 43
-
- i = 42 # set_integer is inherited from Integer
- ok( 1, 'able to assign int to MyInt' )
-
- $I0 = i # get_integer is overridden below
- is( $I0, 42, 'get_integer is overridden for MyInt5' )
-
- $S0 = i # get_string is overridden below
- is( $S0, 'MyInt5(42)', 'get_string is overridden for MyInt5' )
-.end
-
-.namespace ["MyInt5"]
-
-.sub set_integer_native :vtable :method
- .param int new_value
- $P1 = new ['Integer']
- $P1 = new_value
- setattribute self, "intval", $P1
-.end
-
-.sub get_integer :vtable :method
- $P0 = getattribute self, "intval"
- $I0 = $P0
- .return ($I0)
-.end
-
-.sub get_string :vtable :method
- $P0 = getattribute self, "intval"
- $I0 = $P0
- $S1 = $I0
- $S0 = "MyInt5("
- $S0 .= $S1
- $S0 .= ")"
- .return ($S0)
-.end
-
-.namespace [] # Reset to root namespace for next test
-
-.sub PMC_as_classes__mmd_methods
- .local pmc MyInt6
- get_class $P0, "Integer"
- subclass MyInt6, $P0, "MyInt6"
- .local pmc i
- .local pmc j
- .local pmc k
- i = new "MyInt6"
- j = new "MyInt6"
- k = new "MyInt6"
- i = 6
- j = 7
- k = i * j
- $I0 = k
- is( $I0, 42, 'MyInt6 defaults to Integer class for mult' )
-
- $S0 = k # get_string is overridden below
- is( $S0, 'MyInt6(42)', 'get_string is overridden for MyInt6' )
-.end
-
-.namespace ["MyInt6"]
-
-.sub get_string :vtable :method
- $I0 = self # get_integer is not overridden
- $S1 = $I0
- $S0 = "MyInt6("
- $S0 .= $S1
- $S0 .= ")"
- .return ($S0)
-.end
-
-.namespace [] # Reset to root namespace for next test
-
-.sub PMC_as_classes__derived_1
- .local pmc MyInt8
- .local pmc MyInt8_2
- get_class $P0, "Integer"
-
- subclass MyInt8, $P0, "MyInt8"
- addattribute MyInt8, 'intval'
- get_class $P1, "MyInt8"
- subclass MyInt8_2, $P1, "MyInt8_2"
-
- .local pmc i
- i = new "MyInt8_2"
- $I0 = isa i, "Integer"
- ok( $I0, 'obj isa grandparent (Integer)' )
-
- $I0 = isa i, "MyInt8"
- ok( $I0, 'obj isa parent (MyInt8)' )
-
- $I0 = isa i, "MyInt8_2"
- ok( $I0, 'obj isa its class (MyInt8_2)' )
-
- i = 42 # set_integer is overridden below
- $I0 = i # get_integer is overridden below
- is( $I0, 42, 'set/get_integer overridden' )
-
- $S0 = i # get_string is overridden below
- is( $S0, 'MyInt8_2(42)', 'set/get_string overridden' )
-.end
-
-.namespace ["MyInt8"]
-.sub 'set_integer_native' :vtable :method
- .param int val
- $P1 = new ['Integer']
- $P1 = val
- setattribute self, "intval", $P1
- .return ()
-.end
-.sub get_integer :vtable :method
- $P0 = getattribute self, 'intval'
- $I0 = $P0
- .return ($I0)
-.end
-.sub get_string :vtable :method
- $P0 = getattribute self, 'intval'
- $I0 = $P0
- $S1 = $I0
- $S0 = typeof self
- $S0 .= "("
- $S0 .= $S1
- $S0 .= ")"
- .return ($S0)
-.end
-
-.namespace [] # Reset to root namespace for next test
-
-.sub PMC_as_classes__derived_2
- .local pmc MyInt9
- .local pmc MyInt9_2
- get_class $P0, "Integer"
-
- subclass MyInt9, $P0, "MyInt9"
- addattribute MyInt9, 'intval'
- get_class $P1, "MyInt9"
- subclass MyInt9_2, $P1, "MyInt9_2"
-
- .local pmc i
- i = new "MyInt9_2"
- $I0 = isa i, "Integer"
- ok( $I0, 'obj isa grandparent (Integer)' )
- $I0 = isa i, "MyInt9"
- ok( $I0, 'obj isa parent (MyInt9)' )
- $I0 = isa i, "MyInt9_2"
- ok( $I0, 'obj isa its class (MyInt9_2)' )
-
- i = 42 # set_integer is overridden below
- $I0 = i # get_integer is overridden below
- is( $I0, 43, 'set/get_integer overridden' )
-
- $S0 = i # get_string is overridden below
- is( $S0, 'MyInt9_2(42)', 'set/get_string overridden' )
-.end
-
-.namespace ["MyInt9_2"]
-# subclassing methods from MyInt9 is ok
-# this one changes the value a bit
-.sub get_integer :vtable :method
- $P0 = getattribute self, 'intval'
- $I0 = $P0
- inc $I0 # <<<<<
- .return ($I0)
-.end
-.namespace ["MyInt9"]
-.sub 'set_integer_native' :vtable :method
- .param int val
- $P1 = new ['Integer']
- $P1 = val
- setattribute self, "intval", $P1
- .return ()
-.end
-.sub get_integer :vtable :method
- $P0 = getattribute self, 'intval'
- $I0 = $P0
- .return ($I0)
-.end
-.sub get_string :vtable :method
- $P0 = getattribute self, 'intval'
- $I0 = $P0
- $S1 = $I0
- $S0 = typeof self
- $S0 .= "("
- $S0 .= $S1
- $S0 .= ")"
- .return ($S0)
-.end
-
-.namespace [] # Reset to root namespace for next test
-
-.sub PMC_as_classes__derived_3
- .local pmc MyInt10
- .local pmc MyInt10_2
- get_class $P0, "Integer"
-
- subclass MyInt10, $P0, "MyInt10"
- addattribute MyInt10, 'intval'
- get_class $P1, "MyInt10"
- subclass MyInt10_2, $P1, "MyInt10_2"
-
- .local pmc i
- i = new "MyInt10_2"
- $I0 = isa i, "Integer"
- ok( $I0, 'obj isa grandparent (Integer)' )
- $I0 = isa i, "MyInt10"
- ok( $I0, 'obj isa parent (MyInt10)' )
- $I0 = isa i, "MyInt10_2"
- ok( $I0, 'obj isa its class (MyInt102)' )
-
- i = 42 # set_integer is overridden below
- $I0 = i # get_integer is overridden below
- is( $I0, 42, 'set/get_integer overridden' )
-
- $S0 = i # get_string is overridden below
- is( $S0, 'MyInt10_2(42)', 'set/get_string overridden' )
-.end
-
-.namespace ["MyInt10_2"]
-.sub get_integer :vtable :method
- $P0 = getattribute self, 'intval'
- $I0 = $P0
- .return ($I0)
-.end
-.sub get_string :vtable :method
- $P0 = getattribute self, 'intval'
- $I0 = $P0
- $S1 = $I0
- $S0 = typeof self
- $S0 .= "("
- $S0 .= $S1
- $S0 .= ")"
- .return ($S0)
-.end
-.namespace ['MyInt10']
-.sub 'set_integer_native' :vtable :method
- .param int val
- $P1 = new ['Integer']
- $P1 = val
- setattribute self, "intval", $P1
- .return ()
-.end
-
-.namespace [] # Reset to root namespace for next test
-
-.sub subclassing_Class
- .local pmc cl
- .local pmc parent
- parent = get_class "Class"
- cl = subclass parent, "Foo33"
- ok( 1, 'able to subclass Class' )
-
- .local pmc o
- o = new "Foo33"
- ok( 1, 'able to instantiate subclass of Class' )
-
- $S0 = typeof o
- is( $S0, 'Foo33', 'object returns correct class' )
-.end
-
-.sub namespace_vs_name
- .local pmc o, cl, f
- newclass cl, "Foo34"
- o = new "Foo34"
- is( o, 'Foo34::get_string', 'found Foo34 namespace' )
-
- o = Foo34()
- is( o, 'Foo34', 'found global Foo34' )
-
- f = get_global "Foo34"
- o = f()
- is( o, 'Foo34', 'found global Foo34 explicitly' )
-
- f = get_global ["Foo34"], "Foo34"
- o = f()
- is( o, 'Foo34::Foo34', 'found method in Foo34 namespace' )
-.end
-
-.sub Foo34
- .return("Foo34")
-.end
-
-.namespace [ "Foo34" ]
-
-.sub get_string :vtable :method
- .return("Foo34::get_string")
-.end
-
-.sub Foo34
- .return("Foo34::Foo34")
-.end
-
-.namespace [] # Reset to root namespace for next test
-
-.sub multiple_anon_classes
- newclass $P0, "City3"
- subclass $P1, $P0
- newclass $P2, "State3"
- subclass $P3, $P2
- ok( 1, "multiple anon classes didn't croak (bug #33103)" )
-.end
-
-.sub subclassed_Integer_bug
- .local pmc class
- .local pmc a
- .local pmc b
-
- subclass class, "Integer", "LispInteger1"
-
- a = new "LispInteger1"
- b = new "LispInteger1"
-
- a = 1
- b = 1
-
- set $S0, a
- is( $S0, '1', 'subclassed Integer is 1' )
- set $S0, b
- is( $S0, '1', 'subclassed Integer is 1' )
-
- a = a * b
- set $S0, a
- is( $S0, '1', 'multip and reasign to subclassed Integer is 1' )
-.end
-
-.sub equality_of_subclassed_Integer
- .local pmc class
- class = subclass "Integer", "LispInteger2"
-
- .local pmc a
- a = new 'LispInteger2'
- a = 123
-
- .local pmc b
- b = new 'LispInteger2'
- b = 123
-
- $I0 = a == b
- ok( $I0, '123 is equal to 123' )
-
-.end
-
-.sub short_name_attributes
- newclass $P1, "Foo22"
- addattribute $P1, "i"
- addattribute $P1, "j"
-
- subclass $P2, $P1, "Bar22"
- addattribute $P2, "k"
- addattribute $P2, "l"
-
- new $P2, "Bar22"
-
- # set a bunch of attribs
- new $P4, ['Integer']
- set $P4, 10
- setattribute $P2, "i", $P4
-
- new $P4, ['Integer']
- set $P4, 11
- setattribute $P2, "j", $P4
-
- new $P4, ['Integer']
- set $P4, 20
- setattribute $P2, "k", $P4
-
- new $P4, ['Integer']
- set $P4, 21
- setattribute $P2, "l", $P4
-
- getattribute $P6, $P2, "i"
- is( $P6, 10, '"i" getattribute on parent class attrib' )
- getattribute $P6, $P2, "j"
- is( $P6, 11, '"j" getattribute on parent class attrib' )
-
- getattribute $P6, $P2, "k"
- is( $P6, 20, '"k" getattribute on subclass attrib' )
- getattribute $P6, $P2, "l"
- is( $P6, 21, '"l" getattribute on subclass attrib' )
-
- getattribute $P6, $P2, ["Foo22"], "i"
- is( $P6, 10, '["Foo22"], "i" getattribute on parent class attrib' )
- getattribute $P6, $P2, ["Bar22"], "k"
- is( $P6, 20, '["Bar22"], "k" getattribute on subclass attrib' )
-.end
-
-.sub init_with_and_without_arg
- .local pmc cl, o, h, a
- cl = newclass "Foo35"
- addattribute cl, "a"
- o = cl.'new'()
- a = getattribute o, "a"
- is( a, 'ok 1', 'init without an arg' )
-
- h = new ['Hash']
- $P0 = new ['String']
- $P0 = "ok 2"
- h['a'] = $P0
- o = new cl, h
- a = getattribute o, "a"
- is( a, 'ok 2', 'init with an arg' )
-.end
-
-.namespace ["Foo35"]
-.sub init_pmc :vtable :method
- .param pmc args
- $P0 = args['a']
- setattribute self, 'a', $P0
- .return()
-.end
-.sub init :vtable :method
- $P0 = new ['String']
- $P0 = "ok 1"
- setattribute self, 'a', $P0
-.end
-
-.namespace [] # Reset to root namespace for next test
-
-.sub newclass_bracket_parsing
- newclass $P0, ['Foo23';'Bar23']
- ok( 1, 'newclass created with brackets' )
-.end
-
-.sub verify_namespace_types
- newclass $P0, ['Foo24';'Bar24']
- getinterp $P0
- set $P1, $P0[.IGLOBALS_CLASSNAME_HASH]
- typeof $S0, $P1
- is( $S0, 'NameSpace', 'namespace verified' )
-
- set $P2, $P1['Foo24']
- typeof $S0, $P2
- is( $S0, 'NameSpace', 'namespace verified' )
-.end
-
-.sub verify_data_type
- newclass $P0, ['Foo25';'Bar25']
- getinterp $P0
- set $P1, $P0[.IGLOBALS_CLASSNAME_HASH]
- set $P2, $P1['Foo25']
- set $P3, $P2['Bar25']
-
- set $I0, $P3
- isgt $I0, $I0, 0
- ok( $I0, 'verified datatype > 0' )
-.end
-
-# Puts init in a namespace
-.sub new_keyed
- .local pmc cl, o, p
- cl = newclass ['Foo36';'Bar36']
- addattribute cl, "init_check"
- o = cl.'new'()
- ok( 1, 'obj successfully created' )
-
- p = getattribute o, "init_check"
- is( p, 999, "overridden init called")
-.end
-
-.namespace ['Foo36';'Bar36']
-
-.sub init :vtable :method
- .local pmc p
- p = new ['Integer']
- p = 999
- setattribute self, "init_check", p
-.end
-
-.namespace [] # revert to root for next test
-
-.sub new_keyed_2
- .local pmc c1, c2, o1, o2
- c1 = newclass ['Foo37';'Bar37']
- c2 = newclass ['Foo37';'Fuz37']
- o1 = c1.'new'()
- o2 = c2.'new'()
- ok( 1, 'objects created successfully' )
-.end
-
-.namespace ['Foo37';'Bar37']
-
-.sub init :vtable :method
- ok( 1, '__init Bar37' )
-.end
-
-.namespace ['Foo37';'Fuz37']
-
-.sub init :vtable :method
- ok( 1, '__init Fuz37' )
-.end
-
-.namespace [] # revert to root for next test
-
-.sub new_keyed_3
- .local pmc c1, c2, c3, o1, o2, o3
- c1 = newclass ['Foo38';'Bar38']
- c2 = newclass ['Foo38';'Buz38']
- c3 = newclass 'Foo38'
- o1 = new ['Foo38';'Bar38']
- o2 = new ['Foo38';'Buz38']
- o3 = new 'Foo38'
- ok( 1, 'objects created successfully' )
-.end
-
-.namespace ['Foo38';'Bar38']
-
-.sub init :vtable :method
- ok( 1, '__init Bar38' )
-.end
-
-.namespace ['Foo38';'Buz38']
-
-.sub init :vtable :method
- ok( 1, '__init Buz38' )
-.end
-
-.namespace ['Foo38']
-
-.sub init :vtable :method
- ok( 1, '__init Foo38' )
-.end
-
-.namespace [] # revert to root for next test
-
-.sub subclass_keyed
- .local pmc base, o1, o2
- base = subclass 'Hash', ['Perl6-3'; 'PAST'; 'Node']
- addattribute base, '$.source' # original source
- addattribute base, '$.pos' # offset position
-
- $P0 = subclass base, ['Perl6-3'; 'PAST'; 'Sub']
- $P0 = subclass base, ['Perl6-3'; 'PAST'; 'Stmt']
- ok( 1, 'ok 1\n' )
-
- o1 = new ['Perl6-3'; 'PAST'; 'Sub']
- o2 = new ['Perl6-3'; 'PAST'; 'Stmt']
- ok( 1, 'objects created successfully' )
-.end
-
-.namespace ['Perl6-3'; 'PAST'; 'Stmt']
-
-.sub init :vtable :method
- ok( 1, '__init Stmt' )
-.end
-
-.namespace ['Perl6-3'; 'PAST'; 'Sub']
-
-.sub init :vtable :method
- ok( 1, '__init Sub' )
-.end
-
-.namespace [] # revert to root for next test
-
-.sub test_class_name_multipart_name
- .local pmc base, o1
- base = subclass 'Hash', ['Perl6'; 'PAST'; 'Node']
- o1 = new base
- $S0 = typeof o1
- is( $S0, "Perl6;PAST;Node", "typeof returns object's class name" )
-.end
-
-.sub test_get_class_multipart_name
- .local pmc base, o1
- base = subclass 'Hash', ['Perl6a'; 'PAST'; 'Node']
- $P0 = get_class ['Perl6a'; 'PAST'; 'Node']
- o1 = new $P0
- $S0 = typeof o1
- is( $S0, 'Perl6a;PAST;Node', 'typeof returns objects created from get_class' )
-.end
-
-.sub isa_bug
- .local pmc base, o1, o2
- base = subclass 'Hash', ['Perl6b'; 'PAST'; 'Node']
- $P0 = new [ 'Perl6b'; 'PAST'; 'Node' ]
-
- $I0 = isa $P0, [ 'Perl6b'; 'PAST'; 'Node']
- is( $I0, 1, 'obj isa the full class name' )
-
- $I0 = isa $P0, 'Hash'
- is( $I0, 1, 'obj isa the parent class' )
-
- $I0 = isa $P0, 'Perl6b'
- is( $I0, 0, 'obj !isa the first part of the class name' )
-.end
-
-.sub new_nested_ordering
- .local pmc c1, c2, o
- c1 = newclass ['Foo39']
- c2 = newclass ['Foo39';'Bar39']
- o = c2.'new'()
- ok( 1, 'objects created successfully' )
-.end
-
-.namespace ['Foo39']
-
-.sub init :vtable :method
- ok( 0, '__init Foo39' ) # shouldn't be called
-.end
-
-.namespace ['Foo39';'Bar39']
-
-.sub init :vtable :method
- ok( 1, '__init Bar39' ) # should be called
-.end
-
-.namespace [] # revert to root for next test
-
-.sub vtable_override_once_removed
- .local pmc base
- $P0 = get_class 'Integer'
- base = subclass $P0, 'Foo40' # create subclass 'Foo40'
- addattribute base, '@!capt'
-
- $P0 = subclass 'Foo40', 'Bar40' # create subclass 'Bar40'
- $P1 = new 'Bar40' # create an instance of 'Bar40'
-
- $S1 = $P1 # get its string representation
- is( $S1, 'ok bar', 'get_string overridden' )
-.end
-
-.namespace [ 'Bar40' ]
-
-.sub 'get_string' :vtable :method
- $S0 = 'ok bar'
- .return ($S0)
-.end
-
-.namespace [] # revert to root for next test
-
-.sub vtable_fails_for_subclasses_of_core_classes
- $P0 = subclass 'Hash', 'Foo41'
- $P0 = subclass 'Hash', 'Bar41'
-
- $P1 = new 'Foo41'
- $S1 = $P1
- is( $S1, 'Hello world', 'get_string :vtable :method' )
-
- $P1 = new 'Bar41'
- $S1 = $P1
- is( $S1, 'Hello world', 'get_string :method :vtable' )
-.end
-
-.namespace [ 'Foo41' ]
-
-.sub 'get_string' :vtable :method
- .return('Hello world')
-.end
-
-.namespace [ 'Bar41' ]
-
-.sub 'get_string' :method :vtable
- .return('Hello world')
-.end
-
-.namespace [] # revert to root for next test
-
-.sub super___init_called_twice
- $P0 = newclass 'Foo42'
- $P1 = subclass $P0, 'Bar42'
- addattribute $P1, 'i'
-
- $P2 = $P1.'new'()
-.end
-
-.namespace [ 'Foo42' ]
-
-.sub 'init' :vtable :method
- $P0 = getattribute self, 'i'
- isnull $I1, $P0
- ok( $I1, 'should be null' )
-
- $P1 = new ['Integer']
- setattribute self, "i", $P1 # i won't be null if init called again
- .return ()
-.end
-
-.namespace [] # revert to root for next test
-
-.sub using_class_object_from_typeof_op_with_new
- $P0 = newclass [ "Monkey" ; "Banana" ]
- $P0 = $P0.'new'()
- $S0 = $P0."ook"()
- is( $S0, "Ook!", 'obj created from .new() class method' )
-
- $P2 = typeof $P0
- $P3 = new $P2
- $S0 = $P3."ook"()
- is( $S0, "Ook!", 'obj created from "new" called on result of typeof' )
-.end
-
-.namespace [ "Monkey" ; "Banana" ]
-.sub ook :method
- $S1 = "Ook!"
- .return ($S1)
-.end
-
-.namespace [] # revert to root for next test
-
-.macro exception_is ( M )
- .local pmc exception
- .local string message
- .get_results (exception)
-
- message = exception['message']
- is( message, .M, .M )
-.endm
-
-.sub setting_non_existent_attribute
- newclass $P1, "Foo45"
- new $P2, $P1
-
- new $P3, ['Integer']
- push_eh handler
- setattribute $P2, "bar", $P3
- pop_eh
- ok(0, "'No such attribute' exception not thrown")
- goto end
-handler:
- .exception_is( "No such attribute 'bar'" )
-end:
-.end
-
-.sub setting_non_existent_attribute_by_name
- newclass $P1, "Foo47"
- new $P2, $P1
-
- new $P3, ['Integer']
- push_eh handler
- setattribute $P2, ["Foo47"], "no_such", $P3
- pop_eh
- ok(0, "'No such attribute' exception not thrown")
- goto end
-handler:
- .exception_is( "No such attribute 'no_such' in class 'Foo47'" )
-end:
-.end
-
-.sub getting_null_attribute
- newclass $P1, "Foo51"
- addattribute $P1, "i"
- new $P2, "Foo51"
-
- getattribute $P3, $P2, "i"
- isnull $I0, $P3
- is($I0, 1, "null attribute is null")
-.end
-
-.sub getting_non_existent_attribute
- newclass $P1, "Foo52"
- $P2 = $P1.'new'()
-
- push_eh handler
- getattribute $P3, $P2, "bar"
- pop_eh
- ok(0, "'No such attribute' exception not thrown")
- goto end
-handler:
- .exception_is( "No such attribute 'bar'" )
-end:
-.end
-
-.sub addparent_exceptions_1
- newclass $P0, "Astronomical Object 2"
- new $P1, ['String']
- set $P1, "Not a class"
- push_eh handler
- addparent $P0, $P1
- pop_eh
- ok(0, "'Parent isn\'t a Class' exception not thrown")
- goto end
-handler:
- .exception_is( "Parent isn't a Class." )
-end:
-.end
-
-.sub addparent_exceptions_2
- new $P0, ['Hash']
- newclass $P1, "Trashcan"
- push_eh handler
- addparent $P0, $P1
- pop_eh
- ok(0, "'Only classes can be subclassed' exception not thrown")
- goto end
-handler:
- .exception_is( "Only classes can be subclassed" )
-end:
-.end
-
-.sub subclassing_a_non_existent_class
- push_eh handler
- subclass $P1, "Character", "Nemo"
- pop_eh
- ok(0, "nonexistent class exception not thrown")
- goto end
-handler:
- .exception_is( "Class 'Character' doesn't exist" )
-end:
-.end
-
-.sub anon_subclass_of_non_existent_class
- push_eh handler
- subclass $P1, "Character"
- pop_eh
- ok(0, "nonexistent class exception not thrown")
- goto end
-handler:
- .exception_is( "Class 'Character' doesn't exist" )
-end:
-.end
-
-.sub addattribute_duplicate
- newclass $P1, "Foo53"
- addattribute $P1, "i"
- addattribute $P1, "j"
- push_eh handler
- addattribute $P1, "i"
- pop_eh
- ok(0, "attribute already exists exception not thrown")
- goto end
-handler:
- .exception_is( "Attribute 'i' already exists in 'Foo53'." )
-end:
-.end
-
-.sub wrong_way_to_create_new_objects
- push_eh handler
- new $P0, ['Object']
- pop_eh
- ok(0, "object instantiation exception not thrown")
- goto end
-handler:
- .exception_is( "Object must be created by a class." )
-end:
-.end
-
-.sub attribute_values__subclassing_access_meths
- newclass $P1, "Foo54"
- # must add attributes before object instantiation
- addattribute $P1, "i"
- addattribute $P1, "j"
- # define attrib access functions in Foo54 namespace
- get_global $P5, "Foo54__set"
- addmethod $P1, "Foo54__set", $P5
- get_global $P5, "Foo54__get"
- addmethod $P1, "Foo54__get", $P5
-
- subclass $P2, $P1, "Bar54"
- addattribute $P2, "k"
- addattribute $P2, "l"
- get_global $P5, "Bar54__set"
- addmethod $P2, "Bar54__set", $P5
- get_global $P5, "Bar54__get"
- addmethod $P2, "Bar54__get", $P5
-
- # instantiate a Bar54 object
- new $P13, "Bar54"
-
- # Foo54 and Bar54 have attribute accessor methods
- new $P5, ['String'] # set attribute values
- set $P5, "i" # attribute slots have reference semantics
- set_args "0,0", $P5, "i"
- get_results ""
- callmethodcc $P13, "Foo54__set"
-
- new $P5, ['String']
- set $P5, "j"
- set_args "0,0", $P5, "j"
- get_results ""
- callmethodcc $P13,"Foo54__set"
-
- new $P5, ['String']
- set $P5, "k"
- set_args "0,0", $P5, "k"
- get_results ""
- callmethodcc $P13,"Bar54__set"
-
- new $P5, ['String']
- set $P5, "l"
- set_args "0,0", $P5, "l"
- get_results ""
- callmethodcc $P13,"Bar54__set"
-
- # now retrieve attributes
- set_args "0", "i"
- get_results "0", $P5
- callmethodcc $P13,"Foo54__get"
- is( $P5, "i", 'got attrib i from Bar54->Foo54__get' )
-
- set_args "0", "j"
- get_results "0", $P5
- callmethodcc $P13,"Foo54__get"
- is( $P5, "j", 'got attrib j from Bar54->Foo54__get' )
-
- set_args "0", "k"
- get_results "0", $P5
- callmethodcc $P13,"Bar54__get"
- is( $P5, "k", 'got attrib k from Bar54->Bar54__get' )
-
- set_args "0", "l"
- get_results "0", $P5
- callmethodcc $P13,"Bar54__get"
- is( $P5, "l", 'got attrib l from Bar54->Bar54__get' )
-.end
-
-# set(obj: Pvalue, Iattr_idx)
-.sub Foo54__set
- get_params "0,0", $P5, $S4
- ok( 1, "in Foo54__set" )
- interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
- setattribute $P2, $S4, $P5
- set_returns ""
- returncc
-.end
-
-# Pattr = get(obj: Iattr_idx)
-.sub Foo54__get
- get_params "0", $S4
- ok( 1, "in Foo54__get" )
- interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
- getattribute $P5, $P2, $S4
- set_returns "0", $P5
- returncc
-.end
-
-.sub Bar54__set
- get_params "0,0", $P5, $S4
- interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
- ok( 1, "in Bar54__set" )
- setattribute $P2, $S4, $P5
- set_returns ""
- returncc
-.end
-
-.sub Bar54__get
- get_params "0", $S4
- ok( 1, "in Bar54__get" )
- interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
- getattribute $P5, $P2, $S4
- set_returns "0", $P5
- returncc
-.end
-
-.sub attribute_values__inherited_access_meths
- newclass $P1, "Foo56"
- # must add attributes before object instantiation
- addattribute $P1, "i"
- addattribute $P1, "j"
- # define attrib access functions
- get_global $P5, "set"
- addmethod $P1, "set", $P5
- get_global $P5, "get"
- addmethod $P1, "get", $P5
-
- subclass $P2, $P1, "Bar56"
- addattribute $P2, "k"
- addattribute $P2, "l"
- addattribute $P2, "m"
-
- # subclass is preferred for the SI case over
- # newclass $P2, "Bar56"
- # addattrib ...
- # addparent $P2, $P1
- # which is suitable for adding multiple parents to one class
-
- # instantiate a Bar56 object
- new $P2, "Bar56"
-
- # Foo56 and Bar56 have attribute accessor methods
- new $P5, ['String'] # set attribute values
- set $P5, "i" # attribute slots have reference semantics
- set_args "0,0,0", $P5, "Foo56", "i"
- callmethodcc $P2, "set"
-
- new $P5, ['String']
- set $P5, "j"
- set_args "0,0,0", $P5, "Foo56", "j"
- callmethodcc $P2, "set"
-
- new $P5, ['String']
- set $P5, "k"
- set_args "0,0,0", $P5, "Bar56", "k"
- callmethodcc $P2, "set"
-
- new $P5, ['String']
- set $P5, "l"
- set_args "0,0,0", $P5, "Bar56", "l"
- callmethodcc $P2, "set"
-
- new $P5, ['String']
- set $P5, "m"
- set_args "0,0,0", $P5, "Bar56", "m"
- callmethodcc $P2, "set"
-
- # now retrieve attributes
- set_args "0,0", "Foo56", "i"
- callmethodcc $P2, "get"
- get_results "0", $P5
- is( $P5, 'i', 'got attrib i from subclass through parent method' )
-
- set_args "0,0", "Foo56", "j"
- callmethodcc $P2, "get"
- get_results "0", $P5
- is( $P5, "j", 'got attrib i from subclass through parent method' )
-
- set_args "0,0", "Bar56", "k"
- callmethodcc $P2, "get"
- get_results "0", $P5
- is( $P5, "k", 'got attrib i from subclass through parent method' )
-
- set_args "0,0", "Bar56", "l"
- callmethodcc $P2, "get"
- get_results "0", $P5
- is( $P5, "l", 'got attrib i from subclass through parent method' )
-
- set_args "0,0", "Bar56", "m"
- callmethodcc $P2, "get"
- get_results "0", $P5
- is( $P5, "m", 'got attrib i from subclass through parent method' )
-.end
-
-# Foo56 provides accessor functions which Bar56 inherits
-# they take an additional classname argument SClass
-
-# set(obj: Pvalue, SClass, Sattr)
-.sub set
- get_params "0,0,0", $P5, $S4, $S5
- interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
- setattribute $P2, $S5, $P5
- set_returns ""
- returncc
-.end
-
-# Pattr = get(obj: SClass, Sattr)
-.sub get
- get_params "0,0", $S4, $S5
- interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
- getattribute $P5, $P2, $S5
- set_returns "0", $P5
- returncc
-.end
-
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/gc_massacre/t/pmc/opcode.t
==============================================================================
--- branches/gc_massacre/t/pmc/opcode.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/opcode.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -12,6 +12,8 @@
=cut
+.include 'except_types.pasm'
+
.sub main :main
.include 'test_more.pir'
plan(1)
@@ -19,12 +21,18 @@
.end
.sub cannot_create_directly
- push_eh cannot_create
+ .local pmc eh, ex
+ eh = new ['ExceptionHandler']
+ eh.'handle_types'(.EXCEPTION_INVALID_OPERATION)
+ set_label eh, cannot_create
+ push_eh eh
$P0 = new ['Opcode']
ok(0, "shouldn't be able to create new opcode")
goto create_end
cannot_create:
- ok(1)
+ .get_results(ex)
+ $S0 = ex['message']
+ ok(1, $S0)
create_end:
.end
Modified: branches/gc_massacre/t/pmc/oplib.t
==============================================================================
--- branches/gc_massacre/t/pmc/oplib.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/oplib.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -12,12 +12,26 @@
=cut
+# Hardcoded assumptions for tests:
+# * We have an op called end
+# * It has no arguments
+# * Is the only member of its familiy
+.const string TESTED_OP = 'end'
+.const int TESTED_OP_ELEMS = 0
+.const int TESTED_OP_FAMILIY_ELEMS = 1
+# Never have an op with this name:
+.const string TESTED_NOSUCHOP = 'hopeweneverhaveopcodesnamedlikethis'
+
+.include 'except_types.pasm'
+
.sub main :main
.include 'test_more.pir'
- plan(5)
+ plan(12)
new_oplib()
- get_end()
- get_no_opcode()
+ check_elements()
+ getint_end()
+ getint_no_opcode()
+ getop_end()
family_end()
family_no_opcode()
.end
@@ -28,36 +42,84 @@
nok($I0, "new OpLib")
.end
-.sub get_end
+.sub check_elements
+ .local pmc oplib, op, eh
+ .local int n, i
+ oplib = new ['OpLib']
+ n = elements oplib
+ i = n - 1
+ op = oplib[i]
+ i = isnull op
+ is(i, 0, 'last opcode exists')
+ eh = new ['ExceptionHandler']
+ eh.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+ set_addr eh, catch
+ push_eh eh
+ op = oplib[n]
+ nok(1, 'out of bounds opcode number should throw')
+ goto end
+ catch:
+ finalize eh
+ pop_eh
+ ok(1, 'out of bounds opcode number throws')
+ end:
+.end
+
+.sub getint_end
$P0 = new ['OpLib']
- # Assumption: we'll always have an end opcode.
- $I1 = $P0['end']
+ $I1 = $P0[TESTED_OP]
$I0 = isne $I1, -1
ok($I0, "got end opcode")
.end
-.sub get_no_opcode
+.sub getint_no_opcode
$P0 = new ['OpLib']
- $I1 = $P0['hopeweneverhaveopcodesnamedlikethis']
+ $I1 = $P0[TESTED_NOSUCHOP]
$I0 = iseq $I1, -1
ok($I0, "get non existent opcode fails")
.end
+.sub getop_end
+ .local pmc oplib, op, op2, name
+ oplib = new ['OpLib']
+
+ # Using a string constant
+ op = oplib[TESTED_OP]
+ $I0 = isnull op
+ is($I0, 0, "got end opcode data")
+
+ $I0 = elements op
+ is($I0, TESTED_OP_ELEMS, "the opcode tested has the expected lenght")
+
+ # Using a String PMC
+ name = new ['String']
+ name = TESTED_OP
+ op2 = oplib[name]
+ $I0 = isnull op2
+ is($I0, 0, "got end opcode data keyed pmc")
+
+ $I0 = issame op, op2
+ ok($I0, "got same result from both ways")
+
+ $I1 = op
+ $I0 = oplib['end']
+ is($I0, $I1, 'opcode number from Opcode and from OpLib is the same')
+.end
+
.sub family_end
$P0 = new ['OpLib']
- # Assumption: we'll always have an end opcode.
- $P1 = $P0.'op_family'('end')
+ $P1 = $P0.'op_family'(TESTED_OP)
$I0 = isnull $P1
dec $I0
unless $I0 goto done
$I0 = elements $P1
done:
- is($I0, 1, "'end' family is not null and has 1 element")
+ is($I0, TESTED_OP_FAMILIY_ELEMS, "'end' family is not null and has 1 element")
.end
.sub family_no_opcode
$P0 = new ['OpLib']
- $P1 = $P0.'op_family'('hopeweneverhaveopcodesnamedlikethis')
+ $P1 = $P0.'op_family'(TESTED_NOSUCHOP)
$I0 = isnull $P1
ok($I0, "non existent opcode family is null")
.end
Modified: branches/gc_massacre/t/pmc/orderedhashiterator.t
==============================================================================
--- branches/gc_massacre/t/pmc/orderedhashiterator.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/orderedhashiterator.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -17,28 +17,101 @@
=cut
+.include 'iterator.pasm'
+.include 'except_types.pasm'
+
.sub 'main'
.include 'test_more.pir'
- plan(2)
+ plan(6)
+
+ 'test_init'()
+ 'test_bad_type'()
+ 'test_shift'()
+ 'test_pop'()
+.end
- # Just test that we can't create OrderedHashIterator directly
- $I0 = 1
+.sub 'test_init'
+ .local pmc oh, it
+ .local int i, i2
+ # We can't create OrderedHashIterator directly
+ i = 1
push_eh fail
- $P0 = new ['OrderedHashIterator']
- $I0 = 0
+ oh = new ['OrderedHashIterator']
+ i = 0
fail:
pop_eh
- ok($I0, "Can't create OrderedHashIterator directly")
+ ok(i, "Can't create OrderedHashIterator directly")
- $P0 = new ['OrderedHash']
- $P1 = iter $P0
- $I0 = isa $P1, 'Iterator'
- ok($I0, 'OrderedHashIterator has proper type')
+ oh = new ['OrderedHash']
+ it = iter oh
+ sweep 1 # Make sure the mark vtable is covered
+ i = isa it, 'Iterator'
+ i2 = isa it, 'OrderedHashIterator'
+ add i, i2
+ is(i, 2, 'OrderedHashIterator has proper type')
+
+ # elements and get_integer should both return 0
+ i = elements it
+ i2 = it
+ add i, i2
+ is(i, 0, 'iterator for empty OrderedHash has size 0')
+.end
+.sub 'test_bad_type'
+ .local pmc oh, it, eh
+ .local int i
+ oh = new ['OrderedHash']
+ it = iter oh
+ i = 1
+ eh = new ['ExceptionHandler']
+ eh.'handle_types'(.EXCEPTION_INVALID_OPERATION)
+ set_addr eh, catch
+ push_eh eh
+ it = 9999 # Let's hope it will never be a valid iteration type
+ i = 0
+ catch:
+ finalize eh
+ pop_eh
+ ok(i, 'invalid iteration type throws')
+.end
+.sub 'test_shift'
+ .local pmc oh, it, eh, p
+ .local int i
+ oh = new ['OrderedHash']
+ it = iter oh
+ i = 1
+ eh = new ['ExceptionHandler']
+ eh.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+ set_addr eh, catch
+ push_eh eh
+ p = shift it
+ i = 0
+ catch:
+ finalize eh
+ pop_eh
+ ok(i, 'shift_pmc in empty OH throws')
.end
+.sub 'test_pop'
+ .local pmc oh, it, eh, p
+ .local int i
+ oh = new ['OrderedHash']
+ it = iter oh
+ it = .ITERATE_FROM_END
+ i = 1
+ eh = new ['ExceptionHandler']
+ eh.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+ set_addr eh, catch
+ push_eh eh
+ p = pop it
+ i = 0
+ catch:
+ finalize eh
+ pop_eh
+ ok(i, 'pop_pmc in empty OH throws')
+.end
# Local Variables:
# mode: pir
Modified: branches/gc_massacre/t/pmc/packfile.t
==============================================================================
--- branches/gc_massacre/t/pmc/packfile.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/packfile.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -15,15 +15,19 @@
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'
+.include 'except_types.pasm'
.sub main :main
.include 'test_more.pir'
- plan(36)
+ plan(37)
'test_new'()
+ 'test_set_string_native'()
'test_get_string'()
'test_set_string'()
'test_get_integer'()
@@ -45,10 +49,33 @@
pf = new ['Packfile']
$I0 = defined pf
ok($I0, 'new')
+
+ # Make sure the mark vtable function is exercised
+ sweep 1
+
.tailcall _check_header(pf)
.end
+.sub 'test_set_string_native'
+ .local pmc pf, eh
+ .local int result
+
+ eh = new ['ExceptionHandler']
+ eh.'handle_types'(.EXCEPTION_MALFORMED_PACKFILE)
+ set_label eh, catch
+ push_eh eh
+ pf = new ['Packfile']
+ pf = 'This is not data with a valid packfile format'
+ result = 0
+ goto end
+ catch:
+ result = 1
+ end:
+ is(result, 1, 'set_string_native with invalid data throws')
+.end
+
+
.sub 'test_get_string'
.local pmc pf
pf = new ['Packfile']
@@ -295,27 +322,30 @@
# Packfile.pack.
# Check that unpack-pack produce correct result.
.sub 'test_pack'
- .local string filename, first
+ .local string filename, orig
push_eh load_error
$S0 = '_filename'()
$P0 = new ['FileHandle']
$P0.'open'($S0, 'r')
- first = $P0.'readall'()
+ orig = $P0.'readall'()
.local pmc packfile
packfile = new 'Packfile'
- packfile = first
+ packfile = orig
pop_eh
- # Packed file should be exactly the same as loaded
- .local string second
+ # Loaded packfile can be from different platform/config,
+ # packing and unpacking again to avoid that differences.
+ .local string first, second
# Pack
- second = packfile
+ first = packfile
+ .local pmc packfilesecond
+ packfilesecond = new 'Packfile'
+ packfilesecond = first
+ second = packfilesecond
- $I0 = cmp first, second
- $I0 = not $I0
- todo($I0, 'pack produced same result twice: TT #1614')
+ is(first, second, 'pack produced same result twice: TT #1614')
.return()
load_error:
.get_results($P0)
@@ -325,6 +355,7 @@
.end
# Test pack/set_string unpack/get_string equivalency
+
.sub 'test_synonyms'
.local pmc pf
push_eh load_error
Modified: branches/gc_massacre/t/pmc/resizableintegerarray.t
==============================================================================
--- branches/gc_massacre/t/pmc/resizableintegerarray.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/resizableintegerarray.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -43,7 +43,7 @@
.sub main :main
.include 'test_more.pir'
- plan(46)
+ plan(47)
test_does_interfaces()
@@ -74,6 +74,7 @@
test_cant_shift_empty()
test_iterator()
test_clone()
+ test_freeze()
.end
.sub test_does_interfaces
@@ -596,6 +597,17 @@
is( $I0, 1, 'cloned is equal to original')
.end
+.sub test_freeze
+ .local pmc ria, th
+ .local string s
+ ria = new ['ResizableIntegerArray']
+ push ria, 1
+ push ria, 0x1FFFF
+ s = freeze ria
+ th = thaw s
+ is( ria, th, 'freeze/thaw copy is equal to original' )
+.end
+
# Local Variables:
# mode: pir
# fill-column: 100
Modified: branches/gc_massacre/t/pmc/schedulermessage.t
==============================================================================
--- branches/gc_massacre/t/pmc/schedulermessage.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/schedulermessage.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,5 +1,5 @@
#!./parrot
-# Copyright (C) 2008, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -16,10 +16,12 @@
=cut
+.include 'except_types.pasm'
+
.sub main :main
.include 'test_more.pir'
- plan(7)
+ plan(8)
init_check()
type_and_id_tests()
@@ -30,6 +32,22 @@
.sub init_check
new $P0, ['SchedulerMessage']
ok(1, 'Instantiated SchedulerMessage PMC')
+
+ .local pmc eh
+ eh = new ['ExceptionHandler']
+ eh.'handle_types'(.EXCEPTION_INVALID_OPERATION)
+ set_addr eh, catch
+ push_eh eh
+ $I0 = 1
+ $P1 = new ['Integer']
+ $P0 = new ['SchedulerMessage'], $P1
+ $I0 = 0
+ goto check
+catch:
+ finalize eh
+check:
+ pop_eh
+ ok($I0, 'initializing with invalid type throws')
.end
.sub type_and_id_tests
@@ -69,6 +87,10 @@
$P1 = new ['SchedulerMessage'], $P0
+ # Make sure the mark vtable function is exercised.
+ null $P0
+ sweep 1
+
$S0 = $P1
is($S0, "nine", "hash-initialized message has correct type")
Modified: branches/gc_massacre/t/pmc/sockaddr.t
==============================================================================
--- branches/gc_massacre/t/pmc/sockaddr.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/sockaddr.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,5 +1,5 @@
#!./parrot
-# Copyright (C) 2006-2008, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -19,7 +19,7 @@
.sub main :main
.include 'test_more.pir'
- plan(4)
+ plan(5)
new $P0, ['Socket']
ok(1, 'Instantiated a Socket PMC')
@@ -30,8 +30,13 @@
$I0 = isnull $P0
$I0 = not $I0
ok($I0, 'Sockaddr PMC created')
+
$S0 = typeof $P1
is($S0, 'Sockaddr', 'PMC has correct type')
+
+ $P2 = clone $P1
+ $S2 = typeof $P2
+ is($S2, 'Sockaddr', 'PMC clone has correct type')
.end
# Local Variables:
Modified: branches/gc_massacre/t/pmc/stringbuilder.t
==============================================================================
--- branches/gc_massacre/t/pmc/stringbuilder.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/stringbuilder.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -25,7 +25,7 @@
test_push_pmc() # 4 tests
test_push_string_unicode() # 1 test
test_i_concatenate() # 1 test
- test_set_string_native() # 3 tests
+ test_set_string_native() # 4 tests
test_set_string_native_with_hash() # 2 tests
test_set_pmc()
test_substr()
@@ -176,6 +176,14 @@
is( $S0, "foobar", "... with appending string after")
is( $S99, "foo", "... without touching of original string")
+ # Assumed that the previous operations does not reach initial
+ # capacity of the buffer, the next test should cause a
+ # reallocation, ensuring full coverage of the set_string_native
+ # vtable function.
+ $S1 = repeat 'x', 4096
+ sb = $S1
+ $I0 = sb.'get_string_length'()
+ is( $I0, 4096, "... with a big size change")
.end
.sub 'test_set_string_native_with_hash'
Modified: branches/gc_massacre/t/pmc/stringhandle.t
==============================================================================
--- branches/gc_massacre/t/pmc/stringhandle.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/stringhandle.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -7,7 +7,7 @@
use lib qw( . lib ../lib ../../lib );
use Test::More;
-use Parrot::Test tests => 19;
+use Parrot::Test tests => 25;
=head1 NAME
@@ -69,6 +69,48 @@
ok 7 - $P7.open($S1, $S2) # new file, write mode succeeds
OUT
+pir_output_is( <<'CODE', <<'OUT', 'get_bool' );
+.sub test :main
+ .local pmc sh
+ .local int b
+ sh = new ['StringHandle']
+ b = 0
+ unless sh goto b_false
+ b = 1
+ b_false:
+ say b
+ sh.'open'('mockname', 'w')
+ sh.'print'('Some content')
+ sh.'close'()
+ sh.'open'()
+ b = 0
+ unless sh goto b_true
+ b = 1
+ b_true:
+ say b
+.end
+CODE
+0
+1
+OUT
+
+# StringHandle doesn't use file descriptor, get_fd always return -1
+pir_output_is( <<'CODE', <<'OUT', 'get_fd method' );
+.sub test :main
+ .local pmc sh
+ .local int fd
+ sh = new ['StringHandle']
+ fd = sh.'get_fd'()
+ say fd
+ sh.'open'('mockname', 'r')
+ fd = sh.'get_fd'()
+ say fd
+.end
+CODE
+-1
+-1
+OUT
+
SKIP: {
skip 'no asynch calls yet' => 1;
@@ -206,6 +248,44 @@
ok 6 - read string back from file
OUT
+pir_output_is( <<'CODE', <<'OUT', 'puts' );
+.include 'except_types.pasm'
+.sub 'test' :main
+ .local pmc sh, eh
+ .local int result
+ sh = new ['StringHandle']
+ eh = new ['ExceptionHandler']
+ eh.'handle_types'(.EXCEPTION_PIO_ERROR)
+ push_eh eh
+
+ # puts to SH not opened
+ result = 0
+ set_addr eh, handle1
+ sh.'puts'('something')
+ result = 1
+ goto done1
+handle1:
+ finalize eh
+done1:
+ say result
+
+ # puts to SH opened for reading
+ result = 0
+ set_addr eh, handle2
+ sh.'open'('mockname', 'r')
+ sh.'puts'('something')
+ result = 1
+ goto done2
+handle2:
+ finalize eh
+done2:
+ say result
+.end
+CODE
+0
+0
+OUT
+
# L<PDD22/I\/O PMC API/=item print.*=item readline>
pir_output_is( <<"CODE", <<'OUT', 'readline - synchronous' );
.sub 'test' :main
@@ -520,6 +600,25 @@
ok
OUTPUT
+pir_output_is( <<"CODE", <<"OUTPUT", "readall - stringhandle with null content" );
+.sub main :main
+ .local pmc sh
+ .local string s
+ sh = new ['StringHandle']
+ sh.'open'('mockname', 'r')
+ # Open sets content to an empty string, flush resets is to null
+ # and that is the case we are testing here.
+ # Also, ensures coverage of the flush method.
+ sh.'flush'()
+ s = sh.'readall'()
+ print '['
+ print s
+ say ']'
+.end
+CODE
+[]
+OUTPUT
+
pir_output_is( <<"CODE", <<"OUTPUT", "readall() - opened stringhandle" );
.sub main :main
\$S0 = <<"EOS"
@@ -544,6 +643,39 @@
ok
OUTPUT
+pir_output_is( <<'CODE', <<"OUTPUT", "is_closed" );
+.sub main
+ .local pmc sh
+ .local int i
+ sh = new ['StringHandle']
+ i = sh.'is_closed'()
+ say i
+ sh.'open'("foo", "w")
+ i = sh.'is_closed'()
+ say i
+.end
+CODE
+1
+0
+OUTPUT
+
+pir_output_is( <<'CODE', <<'OUTPUT', 'StringHandle is not a tty' );
+.sub main
+ .local pmc sh
+ .local int i
+ sh = new ['StringHandle']
+
+ # See TT #1689
+ i = sh.'is_tty'()
+ say i
+ i = sh.'isatty'()
+ say i
+.end
+CODE
+0
+0
+OUTPUT
+
pir_output_is( <<"CODE", <<"OUTPUT", "readall() - utf8 on closed stringhandle" );
.sub 'main'
.local pmc ifh
Modified: branches/gc_massacre/t/pmc/stringiterator.t
==============================================================================
--- branches/gc_massacre/t/pmc/stringiterator.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/pmc/stringiterator.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -21,13 +21,50 @@
.sub main :main
.include 'test_more.pir'
- plan(18)
+ plan(24)
- iterate_forward() # 10 tests
+ test_clone()
+ test_elements()
+ iterate_forward() # 11 tests
iterate_backward() # 8 tests
+ iterate_wrong() # 1 test
+ iterate_out() # 1 test
.end
+.sub 'test_clone'
+ .local pmc s, it, itc
+ .local int nit, nitc
+
+ s = new ['String']
+ s = 'somestring'
+ it = iter s
+ # Get a clone and make sure both the original and the clone
+ # gets marked.
+ sweep 1
+ nit = elements it
+ itc = clone it
+ sweep 1
+ nitc = elements itc
+ is(nit, nitc, "clone has same length as original")
+.end
+
+.sub test_elements
+ .local string s
+ .local pmc ps, it
+ .local int ns, nit
+
+ s = 'someotherstring'
+ ps = new ['String']
+ ps = s
+ it = iter ps
+ ns = length s
+ nit = elements it
+ is(ns, nit, "iter elements is equal to string length")
+ nit = it
+ is(ns, nit, "iter get_integer is equal to string length")
+.end
+
.sub 'iterate_forward'
.local pmc s, it
@@ -47,6 +84,9 @@
ok(it, "Can shift 1st character")
is($S0, 'b', "With correct value")
+ $S0 = it[0]
+ is($S0, 'a', "can get string keyed int correct value")
+
$S0 = shift it
ok(it, "Can shift 2nd character")
is($S0, 'a', "With correct value")
@@ -96,6 +136,78 @@
ok($I0, "Shifting from finished iterator throws exception")
.end
+.sub 'iterate_wrong'
+ .local pmc s, it, ex
+ .local int r
+
+ s = new ['String']
+ s = 'BAZ'
+
+ it = iter s
+ push_eh catch_wrong
+ it = 42 # Let's hope we'll never have such direction
+ r = 0
+ goto dotest
+catch_wrong:
+ .get_results(ex)
+ finalize ex
+ pop_eh
+ r = 1
+dotest:
+ ok(r, "Caught wrong direction")
+.end
+
+# out of bounds conditions not covered by previous tests
+.sub 'iterate_out'
+ .local pmc s, it, eh
+ s = new ['String']
+ s = 'hi'
+ it = iter s
+ .local string rs
+ rs = shift it
+ rs = shift it
+ eh = new ['ExceptionHandler']
+ push_eh eh
+
+ # shift string
+ set_addr eh, catch1
+ rs = shift it
+ goto fail
+catch1:
+ finalize eh
+
+ # shift integer
+ set_addr eh, catch2
+ .local int ri
+ ri = shift it
+ goto fail
+catch2:
+ finalize eh
+
+t3:
+ # pop string
+ set_addr eh, catch3
+ .local int ri
+ rs = pop it
+ goto fail
+catch3:
+ finalize eh
+
+ # pop integer
+ set_addr eh, catch4
+ .local int ri
+ ri = pop it
+ goto fail
+catch4:
+ finalize eh
+
+ ok(1, "Caught out of bounds iterations")
+ goto end
+fail:
+ ok(0, "Out of bounds iteration should throw")
+end:
+.end
+
# Local Variables:
# mode: pir
# fill-column: 100
Modified: branches/gc_massacre/t/postconfigure/05-trace.t
==============================================================================
--- branches/gc_massacre/t/postconfigure/05-trace.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/postconfigure/05-trace.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -14,7 +14,8 @@
plan tests => 40;
}
else {
- plan skip_all => q{Tests irrelevant unless configuration completed with tracing requested};
+ plan skip_all =>
+ q{Tests irrelevant unless configuration completed with tracing requested};
}
use lib qw( lib );
use Parrot::Config;
Modified: branches/gc_massacre/t/src/embed.t
==============================================================================
--- branches/gc_massacre/t/src/embed.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/src/embed.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -8,7 +8,7 @@
use Test::More;
use Parrot::Test;
-plan tests => 9;
+plan tests => 10;
=head1 NAME
@@ -62,21 +62,30 @@
Done
OUTPUT
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when an opcode is given improper arguments');
-
+my $common = linedirective(__LINE__) . <<'CODE';
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include "parrot/embed.h"
#include "parrot/extend.h"
-void fail(const char *msg);
+static void fail(const char *msg);
+static Parrot_String createstring(Parrot_Interp interp, const char * value);
-void fail(const char *msg)
+static void fail(const char *msg)
{
fprintf(stderr, "failed: %s\n", msg);
exit(EXIT_FAILURE);
}
+static Parrot_String createstring(Parrot_Interp interp, const char * value)
+{
+ return Parrot_new_string(interp, value, strlen(value), (const char*)NULL, 0);
+}
+
+CODE
+
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when an opcode is given improper arguments');
int main(int argc, const char **argv)
{
@@ -88,7 +97,7 @@
interp = Parrot_new(NULL);
if (! interp)
fail("Cannot create parrot interpreter");
- lang = Parrot_new_string(interp, "PIR", 3, (const char*)NULL, 0);
+ lang = createstring(interp, "PIR");
func_pmc = Parrot_compile_string(interp, lang, ".sub foo\n copy\n.end", &err);
Parrot_printf(interp, "%Ss\n", err);
@@ -99,21 +108,7 @@
The opcode 'copy' (copy<0>) was not found. Check the type and number of the arguments
OUTPUT
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when given invalid language string');
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "parrot/embed.h"
-#include "parrot/extend.h"
-
-void fail(const char *msg);
-
-void fail(const char *msg)
-{
- fprintf(stderr, "failed: %s\n", msg);
- exit(EXIT_FAILURE);
-}
-
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when given invalid language string');
int main(int argc, const char **argv)
{
@@ -125,7 +120,7 @@
interp = Parrot_new(NULL);
if (! interp)
fail("Cannot create parrot interpreter");
- lang = Parrot_new_string(interp, "Foo", 3, (const char*)NULL, 0);
+ lang = createstring(interp, "Foo");
func_pmc = Parrot_compile_string(interp, lang, "This doesn't matter", &err);
Parrot_printf(interp, "%Ss\n", err);
@@ -137,21 +132,7 @@
OUTPUT
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when there is an IMCC syntax error', 'todo' => 'TT #1610 : does not properly catch IMCC errors');
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "parrot/embed.h"
-#include "parrot/extend.h"
-
-void fail(const char *msg);
-
-void fail(const char *msg)
-{
- fprintf(stderr, "failed: %s\n", msg);
- exit(EXIT_FAILURE);
-}
-
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when there is an IMCC syntax error', 'todo' => 'TT #1610 : does not properly catch IMCC errors');
int main(int argc, const char **argv)
{
@@ -163,7 +144,7 @@
interp = Parrot_new(NULL);
if (! interp)
fail("Cannot create parrot interpreter");
- lang = Parrot_new_string(interp, "PIR", 3, (const char*)NULL, 0);
+ lang = createstring(interp, "PIR");
func_pmc = Parrot_compile_string(interp, lang, "The sleeper must awake", &err);
Parrot_printf(interp,"Caught exception\n");
@@ -177,21 +158,7 @@
OUTPUT
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Hello world from main" );
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "parrot/embed.h"
-#include "parrot/extend.h"
-
-void fail(const char *msg);
-
-void fail(const char *msg)
-{
- fprintf(stderr, "failed: %s\n", msg);
- exit(EXIT_FAILURE);
-}
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Hello world from main" );
int main(void)
{
@@ -207,7 +174,7 @@
Parrot_printf(interp, "Hello, parrot\n");
/* Compile and execute a pir sub */
- compiler = Parrot_new_string(interp, "PIR", 3, (const char *)NULL, 0);
+ compiler = createstring(interp, "PIR");
code = Parrot_compile_string(interp, compiler,
".sub main :main\n"
" say 'Hello, pir'\n"
@@ -226,21 +193,7 @@
Hello, pir
OUTPUT
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Hello world from a sub" );
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "parrot/embed.h"
-#include "parrot/extend.h"
-
-void fail(const char *msg);
-
-void fail(const char *msg)
-{
- fprintf(stderr, "failed: %s\n", msg);
- exit(EXIT_FAILURE);
-}
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Hello world from a sub" );
int main(void)
{
@@ -260,7 +213,7 @@
fail("Cannot create parrot interpreter");
/* Compile pir code */
- compiler = Parrot_new_string(interp, "PIR", 3, (const char *)NULL, 0);
+ compiler = createstring(interp, "PIR");
code = Parrot_compile_string(interp, compiler,
".sub main :main\n"
" say 'Must not be seen!'\n"
@@ -277,10 +230,10 @@
/* Get parrot namespace */
rootns = Parrot_get_root_namespace(interp);
- parrotname = Parrot_new_string(interp, "parrot", 6, (const char *)NULL, 0);
+ parrotname = createstring(interp, "parrot");
parrotns = Parrot_PMC_get_pmc_keyed_str(interp, rootns, parrotname);
/* Get the sub */
- subname = Parrot_new_string(interp, "hello", 5, (const char *)NULL, 0);
+ subname = createstring(interp, "hello");
sub = Parrot_PMC_get_pmc_keyed_str(interp, parrotns, subname);
/* Execute it */
Parrot_ext_call(interp, sub, "->");
@@ -292,22 +245,68 @@
Hello, sub
OUTPUT
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "External sub" );
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "calling a sub with argument and return" );
-#include <stdio.h>
-#include <stdlib.h>
+int main(void)
+{
+ Parrot_Interp interp;
+ Parrot_String compiler;
+ Parrot_String errstr;
+ Parrot_PMC code;
+ Parrot_PMC rootns;
+ Parrot_String parrotname;
+ Parrot_PMC parrotns;
+ Parrot_String subname;
+ Parrot_PMC sub;
+ Parrot_String msg;
+ Parrot_String retstr;
-#include "parrot/embed.h"
-#include "parrot/extend.h"
+ /* Create the interpreter */
+ interp = Parrot_new(NULL);
+ if (! interp)
+ fail("Cannot create parrot interpreter");
-void fail(const char *msg);
-void hello(Parrot_Interp interp);
+ /* Compile pir code */
+ compiler = createstring(interp, "PIR");
+ code = Parrot_compile_string(interp, compiler,
+".sub main :main\n"
+" say 'Must not be seen!'\n"
+"\n"
+".end\n"
+"\n"
+".sub hello\n"
+" .param string s\n"
+" print s\n"
+" .return('world!')\n"
+"\n"
+".end\n"
+"\n",
+ &errstr
+ );
-void fail(const char *msg)
-{
- fprintf(stderr, "failed: %s\n", msg);
- exit(EXIT_FAILURE);
+ /* Get parrot namespace */
+ rootns = Parrot_get_root_namespace(interp);
+ parrotname = createstring(interp, "parrot");
+ parrotns = Parrot_PMC_get_pmc_keyed_str(interp, rootns, parrotname);
+ /* Get the sub */
+ subname = createstring(interp, "hello");
+ sub = Parrot_PMC_get_pmc_keyed_str(interp, parrotns, subname);
+
+ /* Execute it */
+ msg = createstring(interp, "Hello, ");
+ Parrot_ext_call(interp, sub, "S->S", msg, &retstr);
+ Parrot_printf(interp, "%Ss\n", retstr);
+
+ Parrot_destroy(interp);
+ return 0;
}
+CODE
+Hello, world!
+OUTPUT
+
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "External sub" );
+
+void hello(Parrot_Interp interp);
void hello(Parrot_Interp interp)
{
@@ -328,7 +327,7 @@
fail("Cannot create parrot interpreter");
/* Compile pir */
- compiler = Parrot_new_string(interp, "PIR", 3, (const char *)NULL, 0);
+ compiler = createstring(interp, "PIR");
code = Parrot_compile_string(interp, compiler,
".sub externcall\n"
" .param pmc ec\n"
@@ -348,23 +347,10 @@
Hello from C
OUTPUT
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Insert external sub in namespace" );
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "parrot/embed.h"
-#include "parrot/extend.h"
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Insert external sub in namespace" );
-void fail(const char *msg);
void hello(Parrot_Interp interp);
-void fail(const char *msg)
-{
- fprintf(stderr, "failed: %s\n", msg);
- exit(EXIT_FAILURE);
-}
-
void hello(Parrot_Interp interp)
{
Parrot_printf(interp, "Hello from C\n");
@@ -389,7 +375,7 @@
fail("Cannot create parrot interpreter");
/* Compile pir */
- compiler = Parrot_new_string(interp, "PIR", 3, (const char *)NULL, 0);
+ compiler = createstring(interp, "PIR");
code = Parrot_compile_string(interp, compiler,
".sub externcall\n"
" hello()\n"
@@ -401,10 +387,10 @@
/* Create extern sub and insert in parrot namespace */
rootns = Parrot_get_root_namespace(interp);
- parrotname = Parrot_new_string(interp, "parrot", 6, (const char *)NULL, 0);
+ parrotname = createstring(interp, "parrot");
parrotns = Parrot_PMC_get_pmc_keyed_str(interp, rootns, parrotname);
hellosub = Parrot_sub_new_from_c_func(interp, (void (*)())& hello, "vJ");
- helloname = Parrot_new_string(interp, "hello", 5, (const char *)NULL, 0);
+ helloname = createstring(interp, "hello");
Parrot_PMC_set_pmc_keyed_str(interp, parrotns, helloname, hellosub);
/* Call it */
@@ -465,7 +451,7 @@
/* locate function to run */
smain = Parrot_str_new_constant(interp, "main");
- entry = Parrot_find_global_cur(interp, smain);
+ entry = Parrot_ns_find_current_namespace_global(interp, smain);
/* location of the entry */
interp->current_cont = new_ret_continuation_pmc(interp, NULL);
@@ -530,7 +516,7 @@
/* locate function to run */
smain = Parrot_str_new_constant(interp, "main");
- entry = Parrot_find_global_cur(interp, smain);
+ entry = Parrot_ns_find_current_namespace_global(interp, smain);
/* location of the entry */
interp->current_cont = new_ret_continuation_pmc(interp, NULL);
@@ -621,7 +607,7 @@
/* locate function to run */
smain = Parrot_str_new_constant(interp, "main");
- entry = Parrot_find_global_cur(interp, smain);
+ entry = Parrot_ns_find_current_namespace_global(interp, smain);
/* location of the entry */
interp->current_cont = new_ret_continuation_pmc(interp, NULL);
@@ -712,7 +698,7 @@
/* locate function to run */
smain = Parrot_str_new_constant(interp, "main");
- entry = Parrot_find_global_cur(interp, smain);
+ entry = Parrot_ns_find_current_namespace_global(interp, smain);
/* location of the entry */
interp->current_cont = new_ret_continuation_pmc(interp, NULL);
@@ -802,7 +788,7 @@
/* locate function to run */
smain = Parrot_str_new_constant(interp, "main");
- entry = Parrot_find_global_cur(interp, smain);
+ entry = Parrot_ns_find_current_namespace_global(interp, smain);
/* location of the entry */
interp->current_cont = new_ret_continuation_pmc(interp, NULL);
Modified: branches/gc_massacre/t/src/extend.t
==============================================================================
--- branches/gc_massacre/t/src/extend.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/src/extend.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -382,7 +382,7 @@
PMC *sub, *arg;
Parrot_pbc_load(interp, pf);
- sub = Parrot_find_global_cur(interp, name);
+ sub = Parrot_ns_find_current_namespace_global(interp, name);
Parrot_ext_call(interp, sub, "->");
Parrot_eprintf(interp, "back\\n");
@@ -390,7 +390,7 @@
Parrot_io_flush(interp, Parrot_io_STDERR(interp));
name = Parrot_str_new_constant(interp, "_sub2");
- sub = Parrot_find_global_cur(interp, name);
+ sub = Parrot_ns_find_current_namespace_global(interp, name);
arg = Parrot_pmc_new(interp, enum_class_String);
Parrot_PMC_set_string_native(interp, arg,
@@ -440,7 +440,7 @@
PMC *sub, *arg;
Parrot_pbc_load(interp, pf);
- sub = Parrot_find_global_cur(interp, name);
+ sub = Parrot_ns_find_current_namespace_global(interp, name);
Parrot_ext_call(interp, sub, "->");
Parrot_eprintf(interp, "back\\n");
@@ -448,7 +448,7 @@
Parrot_io_flush(interp, Parrot_io_STDERR(interp));
name = Parrot_str_new_constant(interp, "_sub2");
- sub = Parrot_find_global_cur(interp, name);
+ sub = Parrot_ns_find_current_namespace_global(interp, name);
arg = Parrot_pmc_new(interp, enum_class_String);
Parrot_PMC_set_string_native(interp, arg,
@@ -517,7 +517,7 @@
Parrot_Int result;
Parrot_pbc_load(interp, pf);
- sub = Parrot_find_global_cur(interp, name);
+ sub = Parrot_ns_find_current_namespace_global(interp, name);
arg = Parrot_pmc_new(interp, enum_class_String);
Parrot_PMC_set_string_native(interp, arg,
@@ -584,7 +584,7 @@
Parrot_runloop jump_point;
Parrot_pbc_load(interp, pf);
- sub = Parrot_find_global_cur(interp, name);
+ sub = Parrot_ns_find_current_namespace_global(interp, name);
if (setjmp(jump_point.resume)) {
Parrot_eprintf(interp, "caught\\n");
@@ -714,7 +714,7 @@
}
foo_name = Parrot_str_new_constant( interp, "foo" );
- sub = Parrot_find_global_cur( interp, foo_name );
+ sub = Parrot_ns_find_current_namespace_global( interp, foo_name );
Parrot_ext_call(interp, sub, "->");
@@ -746,7 +746,7 @@
pf = Parrot_pbc_read( interp, "$temp_pbc", 0 );
Parrot_pbc_load( interp, pf );
- sub = Parrot_find_global_cur( interp, Parrot_str_new_constant( interp, "add" ) );
+ sub = Parrot_ns_find_current_namespace_global( interp, Parrot_str_new_constant( interp, "add" ) );
Parrot_ext_call(interp, sub, "II->I", 100, 200, &result);
printf( "Result is %d.\\n", result );
@@ -778,7 +778,7 @@
pf = Parrot_pbc_read( interp, "$temp_pbc", 0 );
Parrot_pbc_load( interp, pf );
- sub = Parrot_find_global_cur( interp, Parrot_str_new_constant( interp, "add" ) );
+ sub = Parrot_ns_find_current_namespace_global( interp, Parrot_str_new_constant( interp, "add" ) );
Parrot_ext_call( interp, sub, "II->I", 100, 200, &result );
printf( "Result is %d.\\n", result );
Modified: branches/gc_massacre/t/steps/auto/format-01.t
==============================================================================
--- branches/gc_massacre/t/steps/auto/format-01.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/steps/auto/format-01.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -99,7 +99,7 @@
}
{
my $p5format = '%.15' . $conf->data->get('sPRIgldbl_provisional');
- $p5format =~ s/"//g;; # Perl 5's Config value has embedded double quotes
+ $p5format =~ s/"//g; # Perl 5's Config value has embedded double quotes
$conf->data->set( nv => 'long double' );
eval {
auto::format::_set_floatvalfmt_nvsize($conf);
Modified: branches/gc_massacre/t/steps/auto/inline-01.t
==============================================================================
--- branches/gc_massacre/t/steps/auto/inline-01.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/steps/auto/inline-01.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -68,7 +68,7 @@
"_evaluate_inline() returned true value");
is($step->result, q{yes}, "Got expected result");
is($conf->data->get( 'inline' ), 1,
- "'inline' attribute has expected value");;
+ "'inline' attribute has expected value");
$conf->replenish($serialized);
@@ -85,7 +85,7 @@
"_evaluate_inline() returned true value");
is($step->result, q{no}, "Got expected result");
is($conf->data->get( 'inline' ), q{},
- "'inline' attribute has expected value");;
+ "'inline' attribute has expected value");
$conf->replenish($serialized);
@@ -105,7 +105,7 @@
\$stdout
);
ok($ret, "_evaluate_inline() returned true value");
- is($step->result, q{yes}, "Got expected result");;
+ is($step->result, q{yes}, "Got expected result");
is($conf->data->get( 'inline' ), 1,
"'inline' attribute has expected value");
}
Modified: branches/gc_massacre/t/steps/auto/warnings-01.t
==============================================================================
--- branches/gc_massacre/t/steps/auto/warnings-01.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/steps/auto/warnings-01.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -5,7 +5,7 @@
use strict;
use warnings;
-use Test::More qw(no_plan); # tests => 26;
+use Test::More tests => 18;
use Carp;
use lib qw( lib t/configure/testlib );
use_ok('config::auto::warnings');
Modified: branches/gc_massacre/t/steps/gen/opengl-01.t
==============================================================================
--- branches/gc_massacre/t/steps/gen/opengl-01.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/steps/gen/opengl-01.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -28,6 +28,8 @@
my $conf = Parrot::Configure::Step::Test->new;
$conf->include_config_results( $args );
+my $real_opengl_status = $conf->data->get('has_opengl');
+
my ($pkg, $step, $result);
my $serialized = $conf->pcfreeze();
@@ -42,68 +44,78 @@
ok($result, "runstep() returned true value");
is($step->result(), q{skipped}, "Got expected result when no 'has_opengl'" );
-$conf->replenish($serialized);
-
-########### verbose ###########
-
-($args, $step_list_ref) = process_options( {
- argv => [ q{--verbose} ],
- mode => q{configure},
-} );
-
-$conf->add_steps($pkg);
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-{
- my ($stdout, $stderr);
- capture(
- sub { $result = $step->runstep($conf); },
- \$stdout,
- \$stderr,
- );
- ok($result, "runstep() returned true value");
- like( $stdout,
- qr/Checking for OpenGL headers using the following globs/s,
- "Got expected verbose output"
- );
- like( $stdout,
- qr/Found the following OpenGL headers/s,
- "Got expected verbose output"
- );
- like( $stdout,
- qr/PASS\s+FAIL\s+IGNORE\s+HEADER/s,
- "Got expected verbose output"
- );
- like( $stdout,
- qr/unique signatures successfully translated/s,
- "Got expected verbose output"
- );
-}
-
-$conf->replenish($serialized);
-
-########### extra verbose ###########
-
-($args, $step_list_ref) = process_options( {
- argv => [ q{--verbose=3} ],
- mode => q{configure},
-} );
-
-$conf->add_steps($pkg);
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-{
- my ($stdout, $stderr);
- capture(
- sub { $result = $step->runstep($conf); },
- \$stdout,
- \$stderr,
- );
- ok($result, "runstep() returned true value");
- like( $stdout,
- qr/COUNT\s+NCI SIGNATURE/s,
- "Got expected verbose output"
- );
+SKIP: {
+ skip 'opengl not detected',
+ 13 unless $real_opengl_status;
+
+ # The complex nature of gen::opengl::runstep() makes it difficult to write
+ # tests that will DTRT when OpenGL is not really present on this machine.
+ # In particular, tests for verbose output will fail when
+ # $real_opengl_status is false. So we'll SKIP.
+
+ $conf->replenish($serialized);
+
+ ########### verbose ###########
+
+ ($args, $step_list_ref) = process_options( {
+ argv => [ q{--verbose} ],
+ mode => q{configure},
+ } );
+
+ $conf->add_steps($pkg);
+ $conf->options->set( %{$args} );
+ $step = test_step_constructor_and_description($conf);
+ {
+ my ($stdout, $stderr);
+ capture(
+ sub { $result = $step->runstep($conf); },
+ \$stdout,
+ \$stderr,
+ );
+ ok($result, "runstep() returned true value");
+ like( $stdout,
+ qr/Checking for OpenGL headers using the following globs/s,
+ "Got expected verbose output"
+ );
+ like( $stdout,
+ qr/Found the following OpenGL headers/s,
+ "Got expected verbose output"
+ );
+ like( $stdout,
+ qr/PASS\s+FAIL\s+IGNORE\s+HEADER/s,
+ "Got expected verbose output"
+ );
+ like( $stdout,
+ qr/unique signatures successfully translated/s,
+ "Got expected verbose output"
+ );
+ }
+
+ $conf->replenish($serialized);
+
+ ########### extra verbose ###########
+
+ ($args, $step_list_ref) = process_options( {
+ argv => [ q{--verbose=3} ],
+ mode => q{configure},
+ } );
+
+ $conf->add_steps($pkg);
+ $conf->options->set( %{$args} );
+ $step = test_step_constructor_and_description($conf);
+ {
+ my ($stdout, $stderr);
+ capture(
+ sub { $result = $step->runstep($conf); },
+ \$stdout,
+ \$stderr,
+ );
+ ok($result, "runstep() returned true value");
+ like( $stdout,
+ qr/COUNT\s+NCI SIGNATURE/s,
+ "Got expected verbose output"
+ );
+ }
}
pass("Completed all tests in $0");
Modified: branches/gc_massacre/t/steps/init/hints-01.t
==============================================================================
--- branches/gc_massacre/t/steps/init/hints-01.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/steps/init/hints-01.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -156,7 +156,7 @@
sub { $ret = $step->runstep($conf); },
\$stdout,
\$stderr,
- );;
+ );
like(
$stdout,
qr/No \Q$hints_file\E found/s,
Added: branches/gc_massacre/t/tools/parrot_config.t
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gc_massacre/t/tools/parrot_config.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -0,0 +1,84 @@
+#! perl
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/tools/parrot_config.t - test parrot_config
+
+=head1 SYNOPSIS
+
+ % prove t/tools/parrot_config.t - test parrot_config
+
+=head1 DESCRIPTION
+
+Tests the C<parrot_config> tool.
+
+=cut
+
+use strict;
+use warnings;
+use lib qw(lib);
+
+use Test::More;
+use IO::File ();
+use Parrot::Config;
+use Parrot::Test;
+use File::Spec;
+
+my ($path, $exefile);
+
+BEGIN {
+ $path = File::Spec->catfile( ".", "parrot_config" );
+ $exefile = $path . $PConfig{exe};
+ unless ( -f $exefile ) {
+ plan skip_all => "$exefile hasn't been built yet.";
+ exit(0);
+ }
+ plan tests => 3;
+}
+
+config_output_like(
+ 'pmc_names',
+ qr/\bHash\b/,
+ 'parrot_config basic sanity'
+);
+
+config_output_like(
+ 'non_existant_key',
+ qr/no such key: 'non_existant_key'/,
+ 'missing keys'
+);
+
+config_output_like(
+ 'slash has_icu',
+ qr/slash \s+ => \s+ '.' \n has_icu \s+ => \s+ '.'/x,
+ 'multiple keys'
+);
+
+=head1 HELPER SUBROUTINES
+
+=head2 dump_output_like
+
+ config_output_like($keys, /regexp/, $description);
+
+Runs parrot_config with $keys as the argument and verifies the output.
+
+=cut
+
+sub config_output_like {
+ my ($options, $snippet, $desc) = @_;
+
+ my $out = `$exefile $options`;
+
+ like( $out, $snippet, $desc );
+
+ return;
+}
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Modified: branches/gc_massacre/t/tools/pbc_disassemble.t
==============================================================================
--- branches/gc_massacre/t/tools/pbc_disassemble.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/tools/pbc_disassemble.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -32,7 +32,6 @@
use lib qw(lib);
use Test::More;
-use IO::File ();
use Parrot::Config;
use File::Spec;
use Parrot::Test;
Modified: branches/gc_massacre/t/tools/pbc_dump.t
==============================================================================
--- branches/gc_massacre/t/tools/pbc_dump.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/tools/pbc_dump.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -32,7 +32,6 @@
use lib qw(lib);
use Test::More;
-use IO::File ();
use Parrot::Config;
use Parrot::Test;
use File::Spec;
@@ -46,7 +45,7 @@
plan skip_all => "pbc_dump hasn't been built. Run make parrot_utils";
exit(0);
}
- plan tests => 6;
+ plan tests => 8;
}
dump_output_like( <<PIR, "pir", [qr/FIXUP_t/, qr/CONSTANT_t/, qr/BYTECODE_t/], 'pbc_dump basic sanity');
@@ -73,6 +72,53 @@
.end
PIR
+my $longcode = ".sub main :main\n";
+for (0 ... 10000) {
+ $longcode .= "\$I0 = \$I0 + 1234\n";
+}
+$longcode .= ".end";
+
+dump_output_like( $longcode, "pir", qr/BYTECODE.*_DB.*=>/,
+ "large pir program doesn't mess up pbc_dump");
+
+open my $INC1, '>', "inc_a.pir";
+print $INC1 <<'EOF';
+.sub does :vtable
+ .param string provides
+.end
+EOF
+close $INC1;
+
+open my $INC2, '>', "inc_b.pir";
+print $INC2 <<'EOF';
+.namespace [ 'TclConst' ]
+.sub class_init :anon :load
+ $P0 = get_class 'String'
+.end
+EOF
+close $INC2;
+
+open my $INC3, '>', "inc_c.pir";
+print $INC3 <<'EOF';
+.namespace [ 'TclDict' ]
+.sub class_init :anon :load
+ say "wut"
+.end
+EOF
+close $INC3;
+
+#test known-good hard-coded values. These values come from looking at
+#pbc_dump's #output and sanity checking with the locations of the various subs.
+dump_output_like( <<PIR, "pir", qr/BYTECODE.*_DB.*OFFSET => 0,.*OFFSET => 7.*OFFSET => 13/ms, 'debug segments contain accurate offsets');
+.include 'inc_a.pir'
+.include 'inc_b.pir'
+.include 'inc_c.pir'
+PIR
+
+unlink('inc_a.pir');
+unlink('inc_b.pir');
+unlink('inc_c.pir');
+
=head1 HELPER SUBROUTINES
=head2 dump_output_like
Modified: branches/gc_massacre/t/tools/pmc2cutils/05-gen_c.t
==============================================================================
--- branches/gc_massacre/t/tools/pmc2cutils/05-gen_c.t Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/t/tools/pmc2cutils/05-gen_c.t Tue Aug 3 22:27:14 2010 (r48298)
@@ -177,7 +177,7 @@
capture(
sub { eval { $rv = $self->gen_c(); } },
\$stdout
- );;
+ );
like(
$@,
qr<^cannot find file '.*/src/pmc/default.dump' in path>,
Modified: branches/gc_massacre/tools/dev/fetch_languages.pl
==============================================================================
--- branches/gc_massacre/tools/dev/fetch_languages.pl Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/tools/dev/fetch_languages.pl Tue Aug 3 22:27:14 2010 (r48298)
@@ -229,8 +229,8 @@
{
name => 'pir',
- scm => 'SVN',
- repository => 'https://svn.parrot.org/languages/pir/trunk'
+ scm => 'GIT',
+ repository => 'http://github.com/bacek/pir.git'
},
{
Modified: branches/gc_massacre/tools/dev/mk_inno.pl
==============================================================================
--- branches/gc_massacre/tools/dev/mk_inno.pl Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/tools/dev/mk_inno.pl Tue Aug 3 22:27:14 2010 (r48298)
@@ -34,6 +34,7 @@
} if ($PConfig{has_icu});
my %dll = (
+ gccversion => [ 'libgcc_s_sjlj-1.dll' ],
HAS_GETTEXT => [ 'libintl3.dll', 'libiconv2.dll' ],
HAS_PCRE => [ 'pcre3.dll' ],
HAS_READLINE => [ 'readline5.dll' ],
Modified: branches/gc_massacre/tools/dev/mk_manifest_and_skip.pl
==============================================================================
--- branches/gc_massacre/tools/dev/mk_manifest_and_skip.pl Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/tools/dev/mk_manifest_and_skip.pl Tue Aug 3 22:27:14 2010 (r48298)
@@ -12,7 +12,6 @@
if (-e '.git') {
print "Sorry, this script is not compatible with git-svn\n";
- print "Patches Welcome!\n";
exit 1;
}
Modified: branches/gc_massacre/tools/dev/nci_thunk_gen.pir
==============================================================================
--- branches/gc_massacre/tools/dev/nci_thunk_gen.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/tools/dev/nci_thunk_gen.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -639,7 +639,7 @@
typedef %s(* func_t)(%s);
func_t fn_pointer;
void *orig_func;
- PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
PMC * ret_object = PMCNULL;
%s
@@ -859,7 +859,7 @@
"sig_char": "S",
"temp_tmpl": "char *t_%i; STRING *ts_%i",
"fill_params_tmpl": ", &ts_%i",
- "preamble_tmpl": "t_%i = ts_%i ? Parrot_str_to_cstring(interp, ts_%i) : (char *)NULL;",
+ "preamble_tmpl": "t_%i = STRING_IS_NULL(ts_%i) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_%i);",
"postamble_tmpl": "if (t_%i) Parrot_str_free_cstring(t_%i);" },
"v": { "as_proto": "void",
"return_type": "void *",
@@ -887,7 +887,7 @@
"sig_char": "S",
"fill_params_tmpl": ", &ts_%i",
"temp_tmpl": "char *t_%i; STRING *ts_%i",
- "preamble_tmpl": "t_%i = ts_%i ? Parrot_str_to_cstring(interp, ts_%i) : (char *) NULL;",
+ "preamble_tmpl": "t_%i = STRING_IS_NULL(ts_%i) ? (char *) NULL : Parrot_str_to_cstring(interp, ts_%i);",
"call_param_tmpl": "&t_%i",
"postamble_tmpl": "if (t_%i) Parrot_str_free_cstring(t_%i);" },
"2": { "as_proto": "short *",
Modified: branches/gc_massacre/tools/dev/pbc_to_exe.pir
==============================================================================
--- branches/gc_massacre/tools/dev/pbc_to_exe.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/tools/dev/pbc_to_exe.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -255,7 +255,7 @@
read_done:
ifh.'close'()
- push codestring, "\n};\n\nconst int bytecode_size = "
+ push codestring, "\n};\n\nconst size_t bytecode_size = "
$S0 = size
push codestring, $S0
push codestring, ";\n"
@@ -353,7 +353,7 @@
push codestring, '"'
push codestring, "\n;\n\n"
- push codestring, "const int bytecode_size = "
+ push codestring, "const size_t bytecode_size = "
$S0 = size
push codestring, $S0
push codestring, ";\n"
Deleted: branches/gc_massacre/tools/dev/pprof2cg.nqp
==============================================================================
--- branches/gc_massacre/tools/dev/pprof2cg.nqp Tue Aug 3 22:27:14 2010 (r48297)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,284 +0,0 @@
-#! parrot-nqp
-
-
-#XXX: can't do main with args yet, so fake it
-
-main();
-
-sub main() {
-
- my $filename := pir::getinterp__P[2][1];
-
- my %stats;
- %stats<global_stats><total_time> := 0;
-
- my $fh := pir::new__PP("FileHandle");
- $fh.open($filename, "r");
-
- process_input($fh, %stats);
-
- $fh.close();
-
- #print_stats(%stats);
-
- $filename := $filename ~ ".out";
-
- $fh.open($filename, "w");
- my @profile := get_cg_profile(%stats);
- for @profile -> $line {
- $fh.print($line ~ "\n");
- }
- $fh.close();
- say("all done.");
-}
-
-sub process_input($fh, %stats) {
- my @call_stack;
- my $line := $fh.readline();
-
- while (!$fh.eof()) {
-
- my $type := pir::substr($line, 0, pir::index($line, ':'));
- my $data := pir::substr($line, pir::index($line, ':')+1);
- #say("data is '$data'");
-
- if ($type eq "OP") {
- #say("found an op line");
-
- my %op_hash := split_line($data);
- my %cur_ctx := @call_stack[0];
-
- if (pir::defined__IP(%cur_ctx<line>) && %op_hash<line> == %cur_ctx<line>) {
- %cur_ctx<op_num>++;
- }
- else {
- %cur_ctx<op_num> := 0;
- }
-
- my $op_time := %op_hash<time>;
- # += would be nice here
- my $global_time := $op_time + %stats<global_stats><total_time>;
- %stats<global_stats><total_time> := $global_time;
- %cur_ctx<line> := %op_hash<line>;
- store_stats(%stats, %cur_ctx, $op_time, %op_hash<op>);
-
- my $skip_first := 1;
- for @call_stack {
- if $skip_first {
- $skip_first--;
- }
- else {
- %stats{ $_<file> }{ $_<ns> }{ $_<line> }[ $_<op_num> ]<time> :=
- %stats{ $_<file> }{ $_<ns> }{ $_<line> }[ $_<op_num> ]<time> + $op_time;
- }
- }
- }
-
- elsif ($type eq "CS") {
- #say("found a context switch line");
-
- my %cs_hash := split_line($data);
- if (@call_stack == 0) {
- #say("ctx stack is empty");
- @call_stack[0] := %cs_hash;
- }
- else {
- my %cur_ctx := @call_stack[0];
- my $hash_ctx := %cs_hash<ctx>;
- my $is_redundant := %cur_ctx<ctx> eq $hash_ctx;
- my $reused_ctx := $is_redundant && %cur_ctx<sub> != %cs_hash<sub>;
-
- if ($reused_ctx) {
- #say("is reused: $hash_ctx vs " ~ %cur_ctx<ctx>);
- %cur_ctx<ns> := %cs_hash<ns>;
- %cur_ctx<sub> := %cs_hash<sub>;
- }
-
- elsif $is_redundant {
- #say("is redundant: $hash_ctx vs " ~ %cur_ctx<ctx>);
- }
- else {
- my $found_ctx := 0;
- for @call_stack {
- #would be nice to exit early
- $found_ctx := $found_ctx || $_<ctx> eq $hash_ctx;
- }
-
- if $found_ctx {
- pir::shift(@call_stack) while @call_stack[0]<ctx> ne $hash_ctx
- }
- else {
- %cur_ctx<op_num>++;
- store_stats(%stats, @call_stack[0], 0, "CALL", :target(%cs_hash<ns>));
- pir::unshift(@call_stack, %cs_hash);
- }
- }
- }
- }
-
- elsif ($type eq "VERSION") {
- my $version_num;
- Q:PIR {
- $P0 = find_lex "$data"
- $I0 = $P0
- $P0 = box $I0
- store_lex "$version_num", $P0
- };
- #say("found a version line: '$version_num'");
- if ($version_num != 1) {
- say("pprof is from an incompatible Parrot version");
- pir::exit(1);
- }
- }
- elsif ($type eq "CLI") {
- #say("found a CLI line");
- %stats<global_stats><cli> := $data;
- }
- elsif (pir::index($line, "END_OF_RUNLOOP") == 0) {
- #say("found an end of runloop line");
- @call_stack := ();
- }
- elsif (pir::index($line, "#") == 0) {
- #say("found a comment line");
- }
- else {
- say("don't know what to do with this line: \"$line\"");
- }
- $line := $fh.readline();
- }
-}
-
-
-sub store_stats(%stats, %loc, $time, $op_name, :$target?) {
-
- my %op_stats;
- if pir::defined__IP( %stats{ %loc<file> }{ %loc<ns> }{ %loc<line> }[ %loc<op_num> ] ) {
- %op_stats := %stats{ %loc<file> }{ %loc<ns> }{ %loc<line> }[ %loc<op_num> ];
- }
- else {
- %op_stats := %stats{ %loc<file> }{ %loc<ns> }{ %loc<line> }[ %loc<op_num> ] := {};
- }
-
- if %op_stats<hits> {
- %op_stats<hits>++;
- %op_stats<time> := %op_stats<time> + $time;
- }
- else {
- %op_stats<hits> := 1;
- %op_stats<time> := $time;
- %op_stats<op_name> := $op_name;
- %op_stats<target> := $target if pir::defined__IP($target);
- }
-}
-
-sub print_stats(%stats) {
-# for %stats -> $file {
-# if $file ne 'global_stats' {
-# for %stats{$file} -> $ns {
-# for %stats{$file}{$ns} -> $line_num {
-# my $max_op := +%stats{$file}{$ns}{$line_num};
-# my $cur_op := 0;
-# while ($cur_op < $max_op) {
-# print("$file $ns line/op:$line_num/$cur_op");
-# for %stats{$file}{$ns}{$line_num}[$cur_op] -> $attr {
-# print(" $attr => " ~ ~%stats{$file}{$ns}{$line_num}[$cur_op]{$attr});
-# }
-# $cur_op++;
-# print("\n");
-# }
-# }
-# print("\n");
-# }
-# }
-# }
- pir::load_bytecode("dumper.pbc");
- _dumper(%stats);
-}
-
-
-sub get_cg_profile(%stats) {
- my @output;
- @output.push("version: 1");
- @output.push("creator: PARROT IS AWESOME");
- @output.push("pid: 5751");
- @output.push("cmd: " ~ ~%stats<global_stats><cli>);
- #@output.push("");
- @output.push("part: 1");
- @output.push("desc: I1 cache:");
- @output.push("desc: D1 cache:");
- @output.push("desc: L2 cache:");
- @output.push("desc: Timerange: Basic block 0 - " ~ +%stats<global_stats><total_time>);
- @output.push("desc: Trigger: Program termination");
- @output.push("positions: line");
- @output.push("events: Ir");
- @output.push("summary: "~ %stats<global_stats><total_time>);
- @output.push("");
-
- for %stats -> $file {
- if $file ne "global_stats" {
-
- @output.push("fl=$file");
- for %stats{$file} -> $ns {
- @output.push("\nfn=$ns");
-
- #%stats{$file}{$ns}.sort();
- for %stats{$file}{$ns} -> $line {
- my $curr_op := 0;
- my @line_stats := %stats{$file}{$ns}{$line};
- my $op_count := + at line_stats;
- my $op_time := 0;
-
- while $curr_op < $op_count && @line_stats[$curr_op]<op_name> ne "CALL" {
- $op_time := $op_time + @line_stats[$curr_op]<time>;
- #say("op is "~ @line_stats[$curr_op]<op_name>);
- $curr_op++;
- }
- @output.push(~$line ~ " " ~ ~$op_time);
-
- if $curr_op < $op_count && @line_stats[$curr_op]<op_name> eq "CALL" {
- my $hits := @line_stats[$curr_op]<hits>;
- my $time := @line_stats[$curr_op]<time>;
- my $target := @line_stats[$curr_op]<target>;
- @output.push("cfn=$target");
- @output.push("calls=$hits $time");
- #say("op is "~ @line_stats[$curr_op]<op_name>);
- }
-
- if $curr_op < $op_count {
- $op_time := 0;
- while $curr_op < $op_count {
- $op_time := $op_time + @line_stats[$curr_op]<time>;
- #say("op is "~ @line_stats[$curr_op]<op_name>);
- $curr_op++;
- }
- @output.push(~$line ~ " " ~ ~$op_time);
- }
- }
- }
- }
- }
- @output.push("totals: " ~ ~%stats<global_stats><total_time>);
- @output;
-}
-
-
-sub split_line($line) {
- my %values := {};
-
- #take off the opening and closing {x{ and }x}
- $line := pir::substr($line, 3);
- my $len := pir::length($line);
- $len := $len - 4;
- $line := pir::substr($line, 0, $len);
-
- my @attrs := pir::split('}x}{x{', $line);
-
- for @attrs {
- my $idx := pir::index($_, ":");
- my $key := pir::substr($_, 0, $idx);
- my $value := pir::substr($_, $idx+1);
- %values{$key} := $value;
- #say("key is $key, value is $value");
- }
- return %values;
-}
Modified: branches/gc_massacre/tools/dev/pprof2cg.pl
==============================================================================
--- branches/gc_massacre/tools/dev/pprof2cg.pl Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/tools/dev/pprof2cg.pl Tue Aug 3 22:27:14 2010 (r48298)
@@ -43,7 +43,7 @@
=cut
-main(\@ARGV);
+main(@ARGV);
=head1 INTERNAL DATA STRUCTURES
@@ -117,9 +117,11 @@
=cut
sub main {
- my $argv = shift;
+ my $filename = shift;
my $stats = {};
- my $filename = $argv->[0];
+
+ die "Usage: $0 filename\n"
+ unless defined $filename;
$stats->{global_stats}{total_time} = 0;
@@ -129,8 +131,6 @@
close($in_fh) or die "couldn't close $filename: $!";
- #print_stats($stats);
-
unless ($filename =~ s/pprof/out/) {
$filename = "$filename.out";
}
Modified: branches/gc_massacre/tools/dev/vgp
==============================================================================
--- branches/gc_massacre/tools/dev/vgp Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/tools/dev/vgp Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,2 +1,2 @@
#! /bin/sh
-valgrind --suppressions=tools/dev/parrot.supp --num-callers=500 --leak-check=full --leak-resolution=high --show-reachable=yes ./parrot --leak-test $@
+valgrind --suppressions=tools/dev/parrot.supp --num-callers=50 --leak-check=full --leak-resolution=high --show-reachable=yes ./parrot --leak-test $@
Modified: branches/gc_massacre/tools/util/parrot-config.pir
==============================================================================
--- branches/gc_massacre/tools/util/parrot-config.pir Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/tools/util/parrot-config.pir Tue Aug 3 22:27:14 2010 (r48298)
@@ -92,7 +92,7 @@
.include 'stdio.pasm'
$P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
$P1.'print'($S0)
- $P1.'print'(" [ <config-key> | --dump | --help ]\n")
+ $P1.'print'(" [ <config-key> [ <config-key> ... ] | --dump | --help ]\n")
exit 1
.end
Modified: branches/gc_massacre/tools/util/release.json
==============================================================================
--- branches/gc_massacre/tools/util/release.json Tue Aug 3 21:57:34 2010 (r48297)
+++ branches/gc_massacre/tools/util/release.json Tue Aug 3 22:27:14 2010 (r48298)
@@ -1,9 +1,9 @@
{
- "release.version" : "2.4.0",
- "release.name" : "Sulfur Crest",
+ "release.version" : "2.6.0",
+ "release.name" : "Red-rumped",
"release.day" : "Tuesday",
- "release.date" : "18 May 2010",
- "release.nextdate" : "15 June 2010",
+ "release.date" : "20 July 2010",
+ "release.nextdate" : "17 August 2010",
"web.root" : "http://parrot.org/",
"web.source" : "download",
@@ -11,13 +11,11 @@
"web.repository" : "https://svn.parrot.org/parrot/trunk/",
"bugday.day" : "Saturday",
- "bugday.date" : "12 June 2010",
+ "bugday.date" : "14 August 2010",
"wiki.root" : "https://trac.parrot.org/parrot/wiki/",
- "wiki.bugday" : "bug_day_2010_06_12",
+ "wiki.bugday" : "bug_day_2010_08_14",
- "cpan.search" : "http://search.cpan.org/dist/parrot",
- "ftp.path" : "ftp://ftp.parrot.org/pub/parrot/releases/devel/2.4.0/",
- "subversion.root" : "http://subversion.apache.org/",
- "svk.root" : "http://svk.bestpractical.com/"
+ "ftp.path" : "ftp://ftp.parrot.org/pub/parrot/releases/supported/2.6.0/",
+ "subversion.root" : "http://subversion.apache.org/"
}
More information about the parrot-commits
mailing list