[svn:parrot] r45889 - in branches/avl_string_cache: . compilers/imcc compilers/pge/PGE config/auto config/auto/attributes config/auto/crypto config/auto/gdbm config/gen config/gen/config_pm config/gen/crypto config/gen/makefiles config/gen/platform/generic config/init config/init/hints docs docs/pdds docs/pdds/draft docs/project examples/languages/abc examples/pir/befunge ext/SQLite3 ext/SQLite3/DBDI/Driver ext/SQLite3/t ext/nqp-rx ext/nqp-rx/src/stage0 include/parrot lib/Parrot lib/Parrot/Configure/Options lib/Parrot/Configure/Options/Test lib/Parrot/Configure/Step lib/Parrot/Harness lib/Parrot/Ops2c lib/Parrot/Pmc2c ports/debian ports/fedora ports/fedora/2.3.0 ports/suse ports/suse/2.2.0 ports/ubuntu runtime/parrot/library runtime/parrot/library/ProfTest runtime/parrot/library/Stream runtime/parrot/library/TAP runtime/parrot/library/Test/Builder src src/call src/dynpmc src/gc src/interp src/io src/nci src/ops src/packfile src/pmc src/runcore src/string src/string/c harset src/string/encoding t t/codingstd t/compilers/imcc/syn t/distro t/dynpmc t/examples t/library t/native_pbc t/oo t/op t/pmc t/src t/steps/auto tools/build tools/dev tools/docs tools/util
bacek at svn.parrot.org
bacek at svn.parrot.org
Thu Apr 22 09:55:40 UTC 2010
Author: bacek
Date: Thu Apr 22 09:55:26 2010
New Revision: 45889
URL: https://trac.parrot.org/parrot/changeset/45889
Log:
Sync branch with trunk.
Conflicts:
include/parrot/string_funcs.h
src/packfile/pf_items.c
src/string/api.c
Added:
branches/avl_string_cache/.gitignore
branches/avl_string_cache/config/gen/config_pm/config_lib_pir.in
branches/avl_string_cache/ports/fedora/2.3.0/
branches/avl_string_cache/ports/fedora/2.3.0/parrot.desk.in.tar.gz
branches/avl_string_cache/ports/fedora/2.3.0/parrot.patch
branches/avl_string_cache/ports/fedora/2.3.0/parrot.spec
- copied, changed from r45357, branches/avl_string_cache/ports/fedora/parrot.spec.fedora
branches/avl_string_cache/ports/suse/2.2.0/
branches/avl_string_cache/ports/suse/2.2.0/parrot.diff
branches/avl_string_cache/ports/suse/2.2.0/parrot.spec
branches/avl_string_cache/runtime/parrot/library/TAP/
branches/avl_string_cache/runtime/parrot/library/TAP/Formatter.pir
branches/avl_string_cache/runtime/parrot/library/TAP/Harness.pir
branches/avl_string_cache/runtime/parrot/library/TAP/Parser.pir
branches/avl_string_cache/runtime/parrot/library/osutils.pir
branches/avl_string_cache/t/harness.pir
branches/avl_string_cache/t/library/osutils.t
branches/avl_string_cache/t/library/tap_parser.t
branches/avl_string_cache/t/pmc/namespace-subs.t
branches/avl_string_cache/tools/dev/tapir.pir
branches/avl_string_cache/tools/docs/book-to-latex.pl
branches/avl_string_cache/tools/docs/filename_and_chapter.pl
Deleted:
branches/avl_string_cache/config/auto/crypto.pm
branches/avl_string_cache/config/auto/crypto/crypto_c.in
branches/avl_string_cache/config/auto/gdbm.pm
branches/avl_string_cache/config/auto/gdbm/gdbm_c.in
branches/avl_string_cache/config/gen/config_pm/config_lib_pasm.in
branches/avl_string_cache/config/gen/crypto.pm
branches/avl_string_cache/config/gen/crypto/digest_pmc.in
branches/avl_string_cache/config/gen/crypto/digest_t.in
branches/avl_string_cache/ext/SQLite3/DBDI.pm
branches/avl_string_cache/ext/SQLite3/DBDI/Driver/SQLite3.pm
branches/avl_string_cache/ext/SQLite3/Makefile.PL
branches/avl_string_cache/ext/SQLite3/Makefile.in
branches/avl_string_cache/ext/SQLite3/SQLite3.pir
branches/avl_string_cache/ext/SQLite3/gen_sqlite3.pl
branches/avl_string_cache/ext/SQLite3/t/test.p6
branches/avl_string_cache/ext/SQLite3/test.pir
branches/avl_string_cache/ext/nqp-rx/.gitignore
branches/avl_string_cache/ports/fedora/parrot.patch
branches/avl_string_cache/ports/fedora/parrot.spec.fedora
branches/avl_string_cache/ports/suse/parrot.spec.suse
branches/avl_string_cache/runtime/parrot/library/SQLite3.pir
branches/avl_string_cache/src/dynpmc/gdbmhash.pmc
branches/avl_string_cache/src/pmc/retcontinuation.pmc
branches/avl_string_cache/t/dynpmc/gdbmhash.t
branches/avl_string_cache/t/pmc/retcontinuation.t
branches/avl_string_cache/t/steps/auto/crypto-01.t
branches/avl_string_cache/t/steps/auto/gdbm-01.t
Modified:
branches/avl_string_cache/CREDITS
branches/avl_string_cache/ChangeLog
branches/avl_string_cache/Configure.pl
branches/avl_string_cache/DEPRECATED.pod
branches/avl_string_cache/MANIFEST
branches/avl_string_cache/MANIFEST.SKIP
branches/avl_string_cache/MANIFEST.generated
branches/avl_string_cache/META.yml
branches/avl_string_cache/NEWS
branches/avl_string_cache/PBC_COMPAT
branches/avl_string_cache/README
branches/avl_string_cache/README_cygwin.pod
branches/avl_string_cache/README_win32.pod
branches/avl_string_cache/RESPONSIBLE_PARTIES
branches/avl_string_cache/VERSION
branches/avl_string_cache/compilers/imcc/imcc.l
branches/avl_string_cache/compilers/imcc/imcc.y
branches/avl_string_cache/compilers/imcc/imclexer.c
branches/avl_string_cache/compilers/imcc/imcparser.c
branches/avl_string_cache/compilers/imcc/imcparser.h
branches/avl_string_cache/compilers/imcc/instructions.c
branches/avl_string_cache/compilers/imcc/main.c
branches/avl_string_cache/compilers/imcc/optimizer.c
branches/avl_string_cache/compilers/imcc/parser_util.c
branches/avl_string_cache/compilers/imcc/pbc.c
branches/avl_string_cache/compilers/imcc/symreg.h
branches/avl_string_cache/compilers/pge/PGE/Exp.pir
branches/avl_string_cache/compilers/pge/PGE/Regex.pir
branches/avl_string_cache/config/auto/arch.pm
branches/avl_string_cache/config/auto/attributes.pm
branches/avl_string_cache/config/auto/attributes/test_c.in
branches/avl_string_cache/config/auto/warnings.pm
branches/avl_string_cache/config/gen/config_pm.pm
branches/avl_string_cache/config/gen/config_pm/config_pir.in
branches/avl_string_cache/config/gen/core_pmcs.pm
branches/avl_string_cache/config/gen/makefiles/docs.in
branches/avl_string_cache/config/gen/makefiles/dynpmc.in
branches/avl_string_cache/config/gen/makefiles/root.in
branches/avl_string_cache/config/gen/opengl.pm
branches/avl_string_cache/config/gen/platform/generic/env.c
branches/avl_string_cache/config/init/defaults.pm
branches/avl_string_cache/config/init/hints/cygwin.pm
branches/avl_string_cache/docs/embed.pod
branches/avl_string_cache/docs/parrothist.pod
branches/avl_string_cache/docs/pdds/draft/pdd01_overview.pod
branches/avl_string_cache/docs/pdds/draft/pdd05_opfunc.pod
branches/avl_string_cache/docs/pdds/draft/pdd06_pasm.pod
branches/avl_string_cache/docs/pdds/draft/pdd08_keys.pod
branches/avl_string_cache/docs/pdds/draft/pdd10_embedding.pod
branches/avl_string_cache/docs/pdds/draft/pdd11_extending.pod
branches/avl_string_cache/docs/pdds/draft/pdd14_numbers.pod
branches/avl_string_cache/docs/pdds/draft/pdd16_native_call.pod
branches/avl_string_cache/docs/pdds/draft/pdd29_compiler_tools.pod
branches/avl_string_cache/docs/pdds/draft/pdd31_hll.pod
branches/avl_string_cache/docs/pdds/draft/pdd31_hll_interop.pod
branches/avl_string_cache/docs/pdds/pdd00_pdd.pod
branches/avl_string_cache/docs/pdds/pdd03_calling_conventions.pod
branches/avl_string_cache/docs/pdds/pdd07_codingstd.pod
branches/avl_string_cache/docs/pdds/pdd09_gc.pod
branches/avl_string_cache/docs/pdds/pdd15_objects.pod
branches/avl_string_cache/docs/pdds/pdd17_pmc.pod
branches/avl_string_cache/docs/pdds/pdd18_security.pod
branches/avl_string_cache/docs/pdds/pdd19_pir.pod
branches/avl_string_cache/docs/pdds/pdd20_lexical_vars.pod
branches/avl_string_cache/docs/pdds/pdd21_namespaces.pod
branches/avl_string_cache/docs/pdds/pdd22_io.pod
branches/avl_string_cache/docs/pdds/pdd23_exceptions.pod
branches/avl_string_cache/docs/pdds/pdd24_events.pod
branches/avl_string_cache/docs/pdds/pdd25_concurrency.pod
branches/avl_string_cache/docs/pdds/pdd26_ast.pod
branches/avl_string_cache/docs/pdds/pdd27_multiple_dispatch.pod
branches/avl_string_cache/docs/pdds/pdd28_strings.pod
branches/avl_string_cache/docs/pdds/pdd30_install.pod
branches/avl_string_cache/docs/pdds/pdd_template.pod
branches/avl_string_cache/docs/project/release_manager_guide.pod
branches/avl_string_cache/examples/languages/abc/setup.pir
branches/avl_string_cache/examples/pir/befunge/setup.pir
branches/avl_string_cache/ext/nqp-rx/src/stage0/HLL-s0.pir
branches/avl_string_cache/ext/nqp-rx/src/stage0/NQP-s0.pir
branches/avl_string_cache/ext/nqp-rx/src/stage0/P6Regex-s0.pir
branches/avl_string_cache/include/parrot/call.h
branches/avl_string_cache/include/parrot/charset.h
branches/avl_string_cache/include/parrot/compiler.h
branches/avl_string_cache/include/parrot/embed.h
branches/avl_string_cache/include/parrot/encoding.h
branches/avl_string_cache/include/parrot/exceptions.h
branches/avl_string_cache/include/parrot/exit.h
branches/avl_string_cache/include/parrot/extend.h
branches/avl_string_cache/include/parrot/gc_api.h
branches/avl_string_cache/include/parrot/global_setup.h
branches/avl_string_cache/include/parrot/hash.h
branches/avl_string_cache/include/parrot/imcc.h
branches/avl_string_cache/include/parrot/interpreter.h
branches/avl_string_cache/include/parrot/io.h
branches/avl_string_cache/include/parrot/io_unix.h
branches/avl_string_cache/include/parrot/key.h
branches/avl_string_cache/include/parrot/misc.h
branches/avl_string_cache/include/parrot/nci.h
branches/avl_string_cache/include/parrot/oo.h
branches/avl_string_cache/include/parrot/packfile.h
branches/avl_string_cache/include/parrot/pmc.h
branches/avl_string_cache/include/parrot/runcore_api.h
branches/avl_string_cache/include/parrot/string_funcs.h
branches/avl_string_cache/include/parrot/string_primitives.h
branches/avl_string_cache/include/parrot/sub.h
branches/avl_string_cache/include/parrot/vtables.h
branches/avl_string_cache/lib/Parrot/Configure/Options/Conf.pm
branches/avl_string_cache/lib/Parrot/Configure/Options/Test/Prepare.pm
branches/avl_string_cache/lib/Parrot/Configure/Step/List.pm
branches/avl_string_cache/lib/Parrot/Distribution.pm
branches/avl_string_cache/lib/Parrot/Harness/Smoke.pm
branches/avl_string_cache/lib/Parrot/Headerizer.pm
branches/avl_string_cache/lib/Parrot/Manifest.pm
branches/avl_string_cache/lib/Parrot/Ops2c/Utils.pm
branches/avl_string_cache/lib/Parrot/Pmc2c/PCCMETHOD.pm
branches/avl_string_cache/lib/Parrot/Pmc2c/PMCEmitter.pm
branches/avl_string_cache/lib/Parrot/Pmc2c/Pmc2cMain.pm
branches/avl_string_cache/ports/debian/control.in
branches/avl_string_cache/ports/ubuntu/control.in
branches/avl_string_cache/runtime/parrot/library/P6object.pir
branches/avl_string_cache/runtime/parrot/library/ProfTest/Matcher.nqp
branches/avl_string_cache/runtime/parrot/library/ProfTest/PIRProfile.nqp
branches/avl_string_cache/runtime/parrot/library/ProfTest/Want.nqp
branches/avl_string_cache/runtime/parrot/library/Stream/Base.pir
branches/avl_string_cache/runtime/parrot/library/Test/Builder/Test.pir
branches/avl_string_cache/runtime/parrot/library/distutils.pir
branches/avl_string_cache/runtime/parrot/library/pcore.pir
branches/avl_string_cache/src/call/args.c
branches/avl_string_cache/src/call/context.c
branches/avl_string_cache/src/call/ops.c
branches/avl_string_cache/src/call/pcc.c
branches/avl_string_cache/src/debug.c
branches/avl_string_cache/src/dynext.c
branches/avl_string_cache/src/embed.c
branches/avl_string_cache/src/exceptions.c
branches/avl_string_cache/src/exit.c
branches/avl_string_cache/src/extend.c
branches/avl_string_cache/src/gc/alloc_resources.c
branches/avl_string_cache/src/gc/api.c
branches/avl_string_cache/src/gc/gc_inf.c
branches/avl_string_cache/src/gc/gc_ms.c
branches/avl_string_cache/src/gc/gc_private.h
branches/avl_string_cache/src/gc/mark_sweep.c
branches/avl_string_cache/src/global.c
branches/avl_string_cache/src/global_setup.c
branches/avl_string_cache/src/hash.c
branches/avl_string_cache/src/hll.c
branches/avl_string_cache/src/interp/inter_create.c
branches/avl_string_cache/src/interp/inter_misc.c
branches/avl_string_cache/src/io/api.c
branches/avl_string_cache/src/io/buffer.c
branches/avl_string_cache/src/io/filehandle.c
branches/avl_string_cache/src/io/unix.c
branches/avl_string_cache/src/io/utf8.c
branches/avl_string_cache/src/io/win32.c
branches/avl_string_cache/src/key.c
branches/avl_string_cache/src/library.c
branches/avl_string_cache/src/main.c
branches/avl_string_cache/src/multidispatch.c
branches/avl_string_cache/src/nci/api.c
branches/avl_string_cache/src/nci/core_thunks.c
branches/avl_string_cache/src/nci/extra_thunks.c
branches/avl_string_cache/src/oo.c
branches/avl_string_cache/src/ops/bit.ops
branches/avl_string_cache/src/ops/core.ops
branches/avl_string_cache/src/ops/ops.num
branches/avl_string_cache/src/ops/set.ops
branches/avl_string_cache/src/ops/string.ops
branches/avl_string_cache/src/ops/var.ops
branches/avl_string_cache/src/packdump.c
branches/avl_string_cache/src/packfile.c
branches/avl_string_cache/src/packfile/pf_items.c
branches/avl_string_cache/src/parrot_debugger.c
branches/avl_string_cache/src/pbc_dump.c
branches/avl_string_cache/src/pmc.c
branches/avl_string_cache/src/pmc/bigint.pmc
branches/avl_string_cache/src/pmc/bignum.pmc
branches/avl_string_cache/src/pmc/callcontext.pmc
branches/avl_string_cache/src/pmc/class.pmc
branches/avl_string_cache/src/pmc/codestring.pmc
branches/avl_string_cache/src/pmc/complex.pmc
branches/avl_string_cache/src/pmc/continuation.pmc
branches/avl_string_cache/src/pmc/coroutine.pmc
branches/avl_string_cache/src/pmc/default.pmc
branches/avl_string_cache/src/pmc/env.pmc
branches/avl_string_cache/src/pmc/eventhandler.pmc
branches/avl_string_cache/src/pmc/filehandle.pmc
branches/avl_string_cache/src/pmc/fixedbooleanarray.pmc
branches/avl_string_cache/src/pmc/fixedintegerarray.pmc
branches/avl_string_cache/src/pmc/fixedpmcarray.pmc
branches/avl_string_cache/src/pmc/fixedstringarray.pmc
branches/avl_string_cache/src/pmc/hash.pmc
branches/avl_string_cache/src/pmc/hashiterator.pmc
branches/avl_string_cache/src/pmc/imageio.pmc
branches/avl_string_cache/src/pmc/integer.pmc
branches/avl_string_cache/src/pmc/key.pmc
branches/avl_string_cache/src/pmc/lexinfo.pmc
branches/avl_string_cache/src/pmc/namespace.pmc
branches/avl_string_cache/src/pmc/object.pmc
branches/avl_string_cache/src/pmc/opcode.pmc
branches/avl_string_cache/src/pmc/orderedhash.pmc
branches/avl_string_cache/src/pmc/packfile.pmc
branches/avl_string_cache/src/pmc/packfileannotations.pmc
branches/avl_string_cache/src/pmc/packfiledirectory.pmc
branches/avl_string_cache/src/pmc/parrotinterpreter.pmc
branches/avl_string_cache/src/pmc/pmcproxy.pmc
branches/avl_string_cache/src/pmc/resizablepmcarray.pmc
branches/avl_string_cache/src/pmc/resizablestringarray.pmc
branches/avl_string_cache/src/pmc/role.pmc
branches/avl_string_cache/src/pmc/scalar.pmc
branches/avl_string_cache/src/pmc/schedulermessage.pmc
branches/avl_string_cache/src/pmc/string.pmc
branches/avl_string_cache/src/pmc/stringhandle.pmc
branches/avl_string_cache/src/pmc/sub.pmc
branches/avl_string_cache/src/pmc/unmanagedstruct.pmc
branches/avl_string_cache/src/pmc_freeze.c
branches/avl_string_cache/src/runcore/cores.c
branches/avl_string_cache/src/runcore/main.c
branches/avl_string_cache/src/runcore/profiling.c
branches/avl_string_cache/src/runcore/trace.c
branches/avl_string_cache/src/scheduler.c
branches/avl_string_cache/src/spf_render.c
branches/avl_string_cache/src/spf_vtable.c
branches/avl_string_cache/src/string/api.c
branches/avl_string_cache/src/string/charset.c
branches/avl_string_cache/src/string/charset/ascii.c
branches/avl_string_cache/src/string/charset/ascii.h
branches/avl_string_cache/src/string/charset/binary.c
branches/avl_string_cache/src/string/charset/binary.h
branches/avl_string_cache/src/string/charset/iso-8859-1.c
branches/avl_string_cache/src/string/charset/iso-8859-1.h
branches/avl_string_cache/src/string/charset/unicode.c
branches/avl_string_cache/src/string/charset/unicode.h
branches/avl_string_cache/src/string/encoding.c
branches/avl_string_cache/src/string/encoding/fixed_8.c
branches/avl_string_cache/src/string/encoding/fixed_8.h
branches/avl_string_cache/src/string/encoding/ucs2.c
branches/avl_string_cache/src/string/encoding/ucs2.h
branches/avl_string_cache/src/string/encoding/utf16.c
branches/avl_string_cache/src/string/encoding/utf16.h
branches/avl_string_cache/src/string/encoding/utf8.c
branches/avl_string_cache/src/string/encoding/utf8.h
branches/avl_string_cache/src/string/primitives.c
branches/avl_string_cache/src/sub.c
branches/avl_string_cache/src/thread.c
branches/avl_string_cache/src/utils.c
branches/avl_string_cache/src/vtables.c
branches/avl_string_cache/t/codingstd/c_function_docs.t
branches/avl_string_cache/t/compilers/imcc/syn/file.t
branches/avl_string_cache/t/compilers/imcc/syn/subflags.t
branches/avl_string_cache/t/distro/file_metadata.t
branches/avl_string_cache/t/examples/tutorial.t
branches/avl_string_cache/t/harness
branches/avl_string_cache/t/library/p6object.t
branches/avl_string_cache/t/library/test_builder_tester.t
branches/avl_string_cache/t/library/test_more.t
branches/avl_string_cache/t/native_pbc/annotations.pbc
branches/avl_string_cache/t/native_pbc/integer_1.pbc
branches/avl_string_cache/t/native_pbc/number_1.pbc
branches/avl_string_cache/t/native_pbc/string_1.pbc
branches/avl_string_cache/t/oo/composition.t
branches/avl_string_cache/t/oo/mro-c3.t
branches/avl_string_cache/t/oo/proxy.t
branches/avl_string_cache/t/op/calling.t
branches/avl_string_cache/t/op/fetch.t
branches/avl_string_cache/t/op/gc.t
branches/avl_string_cache/t/op/string.t
branches/avl_string_cache/t/op/vivify.t
branches/avl_string_cache/t/pmc/class.t
branches/avl_string_cache/t/pmc/context.t
branches/avl_string_cache/t/pmc/fixedpmcarray.t
branches/avl_string_cache/t/pmc/freeze.t
branches/avl_string_cache/t/pmc/namespace-old.t
branches/avl_string_cache/t/pmc/pmcproxy.t
branches/avl_string_cache/t/pmc/ro.t
branches/avl_string_cache/t/pmc/string.t
branches/avl_string_cache/t/src/basic.t
branches/avl_string_cache/t/src/embed.t
branches/avl_string_cache/t/src/extend.t
branches/avl_string_cache/t/src/warnings.t
branches/avl_string_cache/t/steps/auto/arch-01.t
branches/avl_string_cache/tools/build/headerizer.pl
branches/avl_string_cache/tools/dev/mk_inno.pl
branches/avl_string_cache/tools/dev/mk_manifest_and_skip.pl
branches/avl_string_cache/tools/dev/nci_thunk_gen.pir
branches/avl_string_cache/tools/dev/pbc_to_exe.pir
branches/avl_string_cache/tools/util/release.json
Added: branches/avl_string_cache/.gitignore
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/avl_string_cache/.gitignore Thu Apr 22 09:55:26 2010 (r45889)
@@ -0,0 +1,604 @@
+# ex: set ro:
+# $Id
+# generated by tools/dev/mk_manifest_and_skip.pl Wed Apr 21 10:28:38 2010 UT
+#
+# This file should contain a transcript of the svn:ignore properties
+# of the directories in the Parrot subversion repository. (Needed for
+# distributions or in general when svn is not available).
+# See docs/submissions.pod on how to recreate this file after SVN
+# has been told about new generated files.
+#
+# Ignore the SVN directories
+\B.svn\b
+
+# ports/ should not go into release tarballs
+ports
+# generated from svn:ignore of './'
+*.core
+*.def
+*.exe
+*.exp
+*.ilk
+*.lib
+*.manifest
+*.ncb
+*.o
+*.obj
+*.patch
+*.pdb
+*.sln
+*.sto
+*.suo
+*.tmp
+*.vcproj*
+.git
+.parrot_current_rev
+CFLAGS
+MANIFEST.configure.generated
+Makefile
+TAGS
+all_cstring.str
+blib
+config_lib.pir
+cover_db
+install_config.fpmc
+installable*
+libparrot.def
+libparrot.dll
+miniparrot
+myconfig
+parrot
+parrot-nqp
+parrot-nqp.c
+parrot-nqp.pbc
+parrot.ilk
+parrot.iss
+parrot.pc
+parrot.pdb
+parrot_config
+parrot_config.c
+parrot_config.pbc
+parrot_debugger
+parrot_nci_thunk_gen
+parrot_nci_thunk_gen.c
+parrot_nci_thunk_gen.pbc
+parrot_test_run.tar.gz
+pbc_disassemble
+pbc_dump
+pbc_info
+pbc_merge
+pbc_to_exe
+pbc_to_exe.*
+perl6
+pirc
+tags
+tapir
+tapir.*
+temp.file
+test
+test.c
+test.cco
+test.err
+test.ilk
+test.ldo
+test.out
+test.pdb
+vc60.pdb
+vc70.pdb
+vtable.dump
+# generated from svn:ignore of 'compilers/data_json/'
+compilers/data_json/data_json.pbc
+# generated from svn:ignore of 'compilers/data_json/data_json/'
+compilers/data_json/data_json/*.pbc
+compilers/data_json/data_json/*.pir
+# generated from svn:ignore of 'compilers/imcc/'
+compilers/imcc/*.flag
+compilers/imcc/*.o
+compilers/imcc/*.obj
+compilers/imcc/*.tmp
+compilers/imcc/Rules.mak
+compilers/imcc/imcc
+compilers/imcc/imclexer.c
+compilers/imcc/imcparser.c
+compilers/imcc/imcparser.h
+compilers/imcc/imcparser.output
+# generated from svn:ignore of 'compilers/json/'
+compilers/json/JSON.pbc
+# generated from svn:ignore of 'compilers/json/JSON/'
+compilers/json/JSON/*.pbc
+compilers/json/JSON/*.pir
+# generated from svn:ignore of 'compilers/ncigen/'
+compilers/ncigen/Makefile
+compilers/ncigen/ncigen.pbc
+# generated from svn:ignore of 'compilers/ncigen/src/'
+compilers/ncigen/src/gen_actions.pir
+compilers/ncigen/src/gen_builtins.pir
+compilers/ncigen/src/gen_grammar.pir
+# generated from svn:ignore of 'compilers/nqp/'
+compilers/nqp/nqp.pbc
+# generated from svn:ignore of 'compilers/nqp/bootstrap/'
+compilers/nqp/bootstrap/gen_actions.pir
+compilers/nqp/bootstrap/nqp.pbc
+# generated from svn:ignore of 'compilers/nqp/src/'
+compilers/nqp/src/Grammar_gen.pir
+# generated from svn:ignore of 'compilers/pct/src/PAST/'
+compilers/pct/src/PAST/*.pbc
+# generated from svn:ignore of 'compilers/pct/src/PCT/'
+compilers/pct/src/PCT/*.pbc
+# generated from svn:ignore of 'compilers/pct/src/POST/'
+compilers/pct/src/POST/*.pbc
+compilers/pct/src/POST/Grammar_gen.pir
+# generated from svn:ignore of 'compilers/pge/'
+compilers/pge/PGE.pbc
+# generated from svn:ignore of 'compilers/pge/PGE/'
+compilers/pge/PGE/*.dll
+compilers/pge/PGE/builtins_gen.pir
+# generated from svn:ignore of 'compilers/pirc/'
+compilers/pirc/*.o
+compilers/pirc/*.obj
+compilers/pirc/*.pbd
+compilers/pirc/pirc
+compilers/pirc/pirc.exe
+# generated from svn:ignore of 'compilers/pirc/t/'
+compilers/pirc/t/basic_?.pir
+compilers/pirc/t/basic_??.pir
+compilers/pirc/t/heredoc_?.pir
+compilers/pirc/t/macro_?.pir
+compilers/pirc/t/stmts_?.pir
+compilers/pirc/t/subflags_?.pir
+# generated from svn:ignore of 'compilers/tge/'
+compilers/tge/tgc.pbc
+# generated from svn:ignore of 'compilers/tge/TGE/'
+compilers/tge/TGE/Parser.pir
+# generated from svn:ignore of 'docs/'
+docs/*.tmp
+docs/Makefile
+docs/doc-prep
+docs/html
+docs/packfile-c.pod
+docs/packfile-perl.pod
+# generated from svn:ignore of 'docs/book/'
+docs/book/*.html
+# generated from svn:ignore of 'docs/ops/'
+docs/ops/*.pod
+# generated from svn:ignore of 'editor/'
+editor/Makefile
+editor/imc.vim
+editor/imcc.xml
+editor/pir.vim
+# generated from svn:ignore of 'examples/languages/abc/'
+examples/languages/abc/*.c
+examples/languages/abc/*.exe
+examples/languages/abc/*.iss
+examples/languages/abc/*.o
+examples/languages/abc/*.obj
+examples/languages/abc/*.pbc
+examples/languages/abc/MANIFEST
+examples/languages/abc/abc
+examples/languages/abc/installable_abc
+examples/languages/abc/man
+# generated from svn:ignore of 'examples/languages/abc/src/'
+examples/languages/abc/src/gen_actions.pir
+examples/languages/abc/src/gen_builtins.pir
+examples/languages/abc/src/gen_grammar.pir
+# generated from svn:ignore of 'examples/languages/abc/t/'
+examples/languages/abc/t/*_*.out
+examples/languages/abc/t/*_*.pir
+# generated from svn:ignore of 'examples/languages/squaak/'
+examples/languages/squaak/*.c
+examples/languages/squaak/*.exe
+examples/languages/squaak/*.iss
+examples/languages/squaak/*.o
+examples/languages/squaak/*.obj
+examples/languages/squaak/*.pbc
+examples/languages/squaak/MANIFEST
+examples/languages/squaak/installable_squaak
+examples/languages/squaak/squaak
+# generated from svn:ignore of 'examples/languages/squaak/src/'
+examples/languages/squaak/src/gen_*.pir
+# generated from svn:ignore of 'examples/mops/'
+examples/mops/*.o
+examples/mops/mops
+# generated from svn:ignore of 'examples/nci/'
+examples/nci/*.pbc
+# generated from svn:ignore of 'examples/pasm/'
+examples/pasm/hello
+examples/pasm/hello.o
+examples/pasm/hello.pbc
+# generated from svn:ignore of 'examples/pir/befunge/'
+examples/pir/befunge/*.c
+examples/pir/befunge/*.exe
+examples/pir/befunge/*.iss
+examples/pir/befunge/*.o
+examples/pir/befunge/*.obj
+examples/pir/befunge/*.pbc
+examples/pir/befunge/MANIFEST
+examples/pir/befunge/befunge
+examples/pir/befunge/installable_befunge
+# generated from svn:ignore of 'ext/'
+ext/Makefile
+# generated from svn:ignore of 'ext/Parrot-Embed/'
+ext/Parrot-Embed/*.bs
+ext/Parrot-Embed/*.bundle
+ext/Parrot-Embed/*.c
+ext/Parrot-Embed/*.def
+ext/Parrot-Embed/*.dll
+ext/Parrot-Embed/*.dump
+ext/Parrot-Embed/*.dylib
+ext/Parrot-Embed/*.exe
+ext/Parrot-Embed/*.exp
+ext/Parrot-Embed/*.h
+ext/Parrot-Embed/*.ilk
+ext/Parrot-Embed/*.lib
+ext/Parrot-Embed/*.manifest
+ext/Parrot-Embed/*.o
+ext/Parrot-Embed/*.obj
+ext/Parrot-Embed/*.old
+ext/Parrot-Embed/*.pdb
+ext/Parrot-Embed/*.pdb
+ext/Parrot-Embed/*.so
+ext/Parrot-Embed/*.tmp
+ext/Parrot-Embed/*.xs
+ext/Parrot-Embed/Build
+ext/Parrot-Embed/Build.bat
+ext/Parrot-Embed/Makefile
+ext/Parrot-Embed/Makefile.PL
+ext/Parrot-Embed/_build
+ext/Parrot-Embed/blib
+ext/Parrot-Embed/dll.base
+ext/Parrot-Embed/pm_to_blib
+# generated from svn:ignore of 'ext/Parrot-Embed/lib/Parrot/'
+ext/Parrot-Embed/lib/Parrot/*.c
+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 'include/parrot/'
+include/parrot/*.tmp
+include/parrot/config.h
+include/parrot/core_pmcs.h
+include/parrot/extend_vtable.h
+include/parrot/feature.h
+include/parrot/has_header.h
+include/parrot/opsenum.h
+include/parrot/pbcversion.h
+include/parrot/platform.h
+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/'
+lib/DumbLink.pm
+# generated from svn:ignore of 'lib/Parrot/'
+lib/Parrot/*.tmp
+lib/Parrot/Jit.pm
+lib/Parrot/Makefile
+lib/Parrot/OpLib
+lib/Parrot/PMC.pm
+lib/Parrot/PakFile2.bs
+lib/Parrot/PakFile2.c
+lib/Parrot/blib
+lib/Parrot/pm_to_blib
+# generated from svn:ignore of 'lib/Parrot/Config/'
+lib/Parrot/Config/Generated.pm
+# generated from svn:ignore of 'lib/Parrot/Pmc2c/'
+lib/Parrot/Pmc2c/PCCMETHOD_BITS.pm
+# generated from svn:ignore of 'runtime/parrot/dynext/'
+runtime/parrot/dynext/*.bundle
+runtime/parrot/dynext/*.def
+runtime/parrot/dynext/*.dll
+runtime/parrot/dynext/*.dylib
+runtime/parrot/dynext/*.exe
+runtime/parrot/dynext/*.exp
+runtime/parrot/dynext/*.ilk
+runtime/parrot/dynext/*.lib
+runtime/parrot/dynext/*.manifest
+runtime/parrot/dynext/*.obj
+runtime/parrot/dynext/*.pdb
+runtime/parrot/dynext/*.so
+runtime/parrot/dynext/libnci.*
+# generated from svn:ignore of 'runtime/parrot/include/'
+runtime/parrot/include/*.fpmc
+runtime/parrot/include/*.pasm
+runtime/parrot/include/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/'
+runtime/parrot/library/*.pbc
+runtime/parrot/library/OpenGL_funcs.pir
+runtime/parrot/library/PAST
+runtime/parrot/library/config.pir
+# generated from svn:ignore of 'runtime/parrot/library/CGI/'
+runtime/parrot/library/CGI/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Config/'
+runtime/parrot/library/Config/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Configure/'
+runtime/parrot/library/Configure/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Data/'
+runtime/parrot/library/Data/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Data/Dumper/'
+runtime/parrot/library/Data/Dumper/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Digest/'
+runtime/parrot/library/Digest/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Getopt/'
+runtime/parrot/library/Getopt/Obj.pbc
+# generated from svn:ignore of 'runtime/parrot/library/MIME/'
+runtime/parrot/library/MIME/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Math/'
+runtime/parrot/library/Math/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/NCI/'
+runtime/parrot/library/NCI/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/OpenGL/'
+runtime/parrot/library/OpenGL/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/PCT/'
+runtime/parrot/library/PCT/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/PGE/'
+runtime/parrot/library/PGE/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Parrot/'
+runtime/parrot/library/Parrot/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/ProfTest/'
+runtime/parrot/library/ProfTest/*.pbc
+runtime/parrot/library/ProfTest/*.pir
+# generated from svn:ignore of 'runtime/parrot/library/Stream/'
+runtime/parrot/library/Stream/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/String/'
+runtime/parrot/library/String/Utils.pbc
+# generated from svn:ignore of 'runtime/parrot/library/TAP/'
+runtime/parrot/library/TAP/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Tcl/'
+runtime/parrot/library/Tcl/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Test/'
+runtime/parrot/library/Test/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Test/Builder/'
+runtime/parrot/library/Test/Builder/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/YAML/'
+runtime/parrot/library/YAML/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/YAML/Dumper/'
+runtime/parrot/library/YAML/Dumper/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/YAML/Parser/'
+runtime/parrot/library/YAML/Parser/*.pbc
+# generated from svn:ignore of 'src/'
+src/*.o
+src/*.obj
+src/*.str
+src/asmfun.*
+src/core_pmcs.c
+src/exec_cpu.c
+src/exec_dep.c
+src/exec_dep.h
+src/extend_vtable.c
+src/extra_nci_thunks.c
+src/fingerprint.c
+src/glut_callbacks.c
+src/glut_nci_thunks.c
+src/glut_nci_thunks.nci
+src/install_config.c
+src/jit_cpu.c
+src/jit_defs.c
+src/jit_emit.h
+src/null_config.c
+src/parrot_config.c
+src/parrot_config.h
+src/platform.c
+src/platform_asm.s
+src/revision.c
+# generated from svn:ignore of 'src/atomic/'
+src/atomic/*.gcda
+src/atomic/*.o
+# generated from svn:ignore of 'src/call/'
+src/call/*.o
+src/call/*.obj
+src/call/*.str
+# generated from svn:ignore of 'src/dynoplibs/'
+src/dynoplibs/*.bundle
+src/dynoplibs/*.c
+src/dynoplibs/*.dll
+src/dynoplibs/*.exp
+src/dynoplibs/*.h
+src/dynoplibs/*.ilk
+src/dynoplibs/*.lib
+src/dynoplibs/*.manifest
+src/dynoplibs/*.o
+src/dynoplibs/*.obj
+src/dynoplibs/*.pdb
+src/dynoplibs/*.so
+src/dynoplibs/Defines.mak
+src/dynoplibs/Rules.mak
+# generated from svn:ignore of 'src/dynpmc/'
+src/dynpmc/*.bundle
+src/dynpmc/*.c
+src/dynpmc/*.def
+src/dynpmc/*.dll
+src/dynpmc/*.dump
+src/dynpmc/*.dylib
+src/dynpmc/*.exe
+src/dynpmc/*.exp
+src/dynpmc/*.h
+src/dynpmc/*.ilk
+src/dynpmc/*.lib
+src/dynpmc/*.manifest
+src/dynpmc/*.o
+src/dynpmc/*.obj
+src/dynpmc/*.pdb
+src/dynpmc/*.so
+src/dynpmc/Makefile
+src/dynpmc/md2.pmc
+src/dynpmc/md4.pmc
+src/dynpmc/md5.pmc
+src/dynpmc/ripemd160.pmc
+src/dynpmc/sha.pmc
+src/dynpmc/sha1.pmc
+src/dynpmc/sha256.pmc
+src/dynpmc/sha512.pmc
+# generated from svn:ignore of 'src/gc/'
+src/gc/*.bundle
+src/gc/*.c
+src/gc/*.def
+src/gc/*.dll
+src/gc/*.dump
+src/gc/*.dylib
+src/gc/*.exe
+src/gc/*.exp
+src/gc/*.h
+src/gc/*.ilk
+src/gc/*.lib
+src/gc/*.manifest
+src/gc/*.o
+src/gc/*.obj
+src/gc/*.pdb
+src/gc/*.so
+src/gc/Makefile
+# generated from svn:ignore of 'src/interp/'
+src/interp/*.o
+src/interp/*.str
+# generated from svn:ignore of 'src/io/'
+src/io/*.o
+src/io/*.obj
+src/io/*.str
+# generated from svn:ignore of 'src/nci/'
+src/nci/*.o
+src/nci/*.obj
+src/nci/*.str
+# generated from svn:ignore of 'src/ops/'
+src/ops/*.c
+src/ops/*.o
+src/ops/*.obj
+# generated from svn:ignore of 'src/packfile/'
+src/packfile/*.o
+src/packfile/*.obj
+# generated from svn:ignore of 'src/pmc/'
+src/pmc/*.c
+src/pmc/*.dump
+src/pmc/*.h
+src/pmc/*.o
+src/pmc/*.obj
+src/pmc/*.str
+src/pmc/*.tmp
+src/pmc/Makefile
+# generated from svn:ignore of 'src/runcore/'
+src/runcore/*.o
+src/runcore/*.obj
+src/runcore/*.str
+# generated from svn:ignore of 'src/string/'
+src/string/*.o
+src/string/*.obj
+src/string/*.str
+src/string/private_cstring.h
+# generated from svn:ignore of 'src/string/charset/'
+src/string/charset/*.o
+src/string/charset/*.obj
+# generated from svn:ignore of 'src/string/encoding/'
+src/string/encoding/*.o
+src/string/encoding/*.obj
+# generated from svn:ignore of 't/benchmark/'
+t/benchmark/*.pasm
+t/benchmark/*.pir
+# generated from svn:ignore of 't/compilers/imcc/'
+t/compilers/imcc/*.pbc
+# generated from svn:ignore of 't/compilers/imcc/imcpasm/'
+t/compilers/imcc/imcpasm/*.pasm
+t/compilers/imcc/imcpasm/*.pbc
+t/compilers/imcc/imcpasm/*.pir
+t/compilers/imcc/imcpasm/*_pbcexe
+# generated from svn:ignore of 't/compilers/imcc/reg/'
+t/compilers/imcc/reg/*.pasm
+t/compilers/imcc/reg/*.pbc
+t/compilers/imcc/reg/*.pir
+t/compilers/imcc/reg/*_pbcexe*
+# generated from svn:ignore of 't/compilers/imcc/syn/'
+t/compilers/imcc/syn/*.pasm
+t/compilers/imcc/syn/*.pbc
+t/compilers/imcc/syn/*.pir
+t/compilers/imcc/syn/*_pbcexe*
+# generated from svn:ignore of 't/compilers/json/'
+t/compilers/json/*.pbc
+t/compilers/json/*.pir
+t/compilers/json/*_pbcexe
+# generated from svn:ignore of 't/compilers/pct/'
+t/compilers/pct/*.pbc
+t/compilers/pct/*.pir
+# generated from svn:ignore of 't/compilers/pge/'
+t/compilers/pge/*.pasm
+t/compilers/pge/*.pbc
+t/compilers/pge/*.pir
+t/compilers/pge/*_pbcexe
+# generated from svn:ignore of 't/compilers/pge/p5regex/'
+t/compilers/pge/p5regex/*.pir
+# generated from svn:ignore of 't/compilers/pge/perl6regex/'
+t/compilers/pge/perl6regex/*.pbc
+t/compilers/pge/perl6regex/*.pir
+# generated from svn:ignore of 't/compilers/tge/'
+t/compilers/tge/*.pbc
+t/compilers/tge/*.pir
+t/compilers/tge/*_pbcexe
+# generated from svn:ignore of 't/dynoplibs/'
+t/dynoplibs/*.pasm
+t/dynoplibs/*.pbc
+t/dynoplibs/*.pir
+# generated from svn:ignore of 't/dynpmc/'
+t/dynpmc/*.pasm
+t/dynpmc/*.pbc
+t/dynpmc/*.pir
+t/dynpmc/*_pbcexe*
+t/dynpmc/md2.t
+t/dynpmc/md4.t
+t/dynpmc/md5.t
+t/dynpmc/ripemd160.t
+t/dynpmc/sha.t
+t/dynpmc/sha1.t
+t/dynpmc/sha256.t
+t/dynpmc/sha512.t
+# generated from svn:ignore of 't/examples/'
+t/examples/*.pasm
+t/examples/*.pbc
+t/examples/*.pir
+t/examples/*_pbcexe*
+# generated from svn:ignore of 't/library/'
+t/library/*.out
+t/library/*.pasm
+t/library/*.pbc
+t/library/*.pir
+t/library/*_pbcexe*
+# generated from svn:ignore of 't/native_pbc/'
+t/native_pbc/*_pbcexe*
+# generated from svn:ignore of 't/oo/'
+t/oo/*.pbc
+t/oo/*.pir
+# generated from svn:ignore of 't/op/'
+t/op/*.out
+t/op/*.pasm
+t/op/*.pbc
+t/op/*.pir
+t/op/*_pbcexe*
+# generated from svn:ignore of 't/perl/'
+t/perl/Parrot_Test_1.pasm
+t/perl/Parrot_Test_1.pir
+# generated from svn:ignore of 't/pmc/'
+t/pmc/*.out
+t/pmc/*.pasm
+t/pmc/*.pbc
+t/pmc/*.pir
+t/pmc/*_pbcexe*
+# generated from svn:ignore of 't/src/'
+t/src/*_*
+# generated from svn:ignore of 't/stress/'
+t/stress/*.out
+t/stress/*.pasm
+t/stress/*.pbc
+t/stress/*.pir
+t/stress/*_pbcexe*
+# generated from svn:ignore of 't/tools/'
+t/tools/*.pbc
+t/tools/*.pir
+t/tools/pdb.t.*
+t/tools/pmc2c.*.c
+t/tools/pmc2c.*.dump
+t/tools/pmc2c.*.h
+t/tools/pmc2c.*.pmc
+# Local variables:
+# mode: text
+# buffer-read-only: t
+# End:
Modified: branches/avl_string_cache/CREDITS
==============================================================================
--- branches/avl_string_cache/CREDITS Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/CREDITS Thu Apr 22 09:55:26 2010 (r45889)
@@ -402,7 +402,7 @@
N: Gerd Pokorra
E: pokorra at uni-siegen.de
-D: Release manager for 1.9.0
+D: Release manager for 1.9.0 and 2.3.0
N: Goplat
D: Win98 and other fixes.
Modified: branches/avl_string_cache/ChangeLog
==============================================================================
--- branches/avl_string_cache/ChangeLog Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/ChangeLog Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,9 @@
#1 $Id$
+2010.04.20 Gerd
+ * Released 2.3.0
+ See NEWS for more.
+
2010.03.16 cotto
* Released 2.2.0
See NEWS for more.
Modified: branches/avl_string_cache/Configure.pl
==============================================================================
--- branches/avl_string_cache/Configure.pl Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/Configure.pl Thu Apr 22 09:55:26 2010 (r45889)
@@ -632,10 +632,8 @@
auto::env
auto::gmp
auto::readline
- auto::gdbm
auto::pcre
auto::opengl
- auto::crypto
auto::gettext
auto::snprintf
# auto::perldoc
@@ -644,7 +642,6 @@
auto::icu
gen::config_h
gen::core_pmcs
- gen::crypto
gen::opengl
gen::makefiles
gen::platform
Modified: branches/avl_string_cache/DEPRECATED.pod
==============================================================================
--- branches/avl_string_cache/DEPRECATED.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/DEPRECATED.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -7,8 +7,8 @@
=head1 Experimental Status
-These features are not considered stable, even though they may
-have shipped in a stable release of parrot[2]. Use them at your own
+These features are not considered supported, even though they may
+have shipped in a supported release of parrot[2]. Use them at your own
risk, as they can be removed or changed in any release. These
items are marked below with C<[experimental]>.
@@ -66,21 +66,64 @@
L<https://trac.parrot.org/parrot/ticket/103>
-=item Digest dynpmcs [eligible in 2.4]
+=item NCI without signature ("raw" pointers) [eligible in 2.4]
-The digest dynpmcs are, since the posting of this notice, available on
-http://gitorious.org/digest-dynpmcs and will no longer be distributed
-with parrot after 2.3.
+No equivalent functionality is promised. You shouldn't be using this. Here be
+segfaults.
-L<https://trac.parrot.org/parrot/ticket/1467>
+L<https://trac.parrot.org/parrot/ticket/1549>
-=item gdbmhash dynpmc [eligible in 2.4]
+=item UnManagedStruct handling nested structure [eligible in 2.4]
-The gdbmhash dynpmc is, since the posting of this notice, available on
-http://gitorious.org/dbm-dynpmcs and will no longer be distributed
-with parrot after 2.3.
+UnManagedStruct will be simplified to only support flat structures. This means
+that elements which themselves have structure - struct pointers and function
+pointers will be stored as C<void *> and C<void (*)(void)> respectively. To use
+these, they will need to be cast to the appropriate signature on access.
-L<https://trac.parrot.org/parrot/ticket/1469>
+L<https://trac.parrot.org/parrot/ticket/1551>
+
+=item UnManagedStruct initializer structure [eligible in 2.4]
+
+The initializer structure will cease to be an array of triples. In stead, an
+array of flags (no counts or offsets), or a string representation of the same
+information may be used.
+
+L<https://trac.parrot.org/parrot/ticket/1552>
+
+=item UnManagedStruct get_integer, set_integer_native [eligible in 2.4]
+
+These will no longer refer to the byte length of the buffer, but to the number
+of times the struct is repeated; emulating an array of structs.
+
+L<https://trac.parrot.org/parrot/ticket/1553>
+
+=item ManagedStruct reallocations based on shape changes [eligible in 2.4]
+
+Since shape changes may simply be used for re-interpreting data, and may also
+occur in several steps, re-allocating after any one shape change may be
+undesirable. In stead, an explicit allocate/reallocate method will be provided.
+
+L<https://trac.parrot.org/parrot/ticket/1554>
+
+=item Auto-vivification of nested aggregates [eligible in 2.4]
+
+Auto-vivifation of nested aggregated is deprecated.
+
+E.g.
+
+ $P0 = new ['Hash']
+ $S1 = $P0['foo';'bar';'baz']
+
+will not auto-vivify nested hashes and return PMCNULL early.
+
+L<https://trac.parrot.org/parrot/ticket/1561>
+
+=item PMC must use manual_attrs or auto_attrs flag [eligible in 2.4]
+
+PMCs must no longer use default value for manual/auto attribute allocation,
+manual_attrs or auto_attrs must be specified.
+
+L<http://trac.parrot.org/parrot/ticket/1506>
=back
@@ -122,10 +165,6 @@
=item get_results opcode order and features [eligible in 2.1]
-Move get_results to follow invoke.
-
-L<https://trac.parrot.org/parrot/ticket/1405>
-
get_results no longer used to fetch exception object.
L<https://trac.parrot.org/parrot/ticket/1406>
@@ -135,6 +174,10 @@
Ability to get the string name of the current GC core from the interpinfo_s_i.
See r43900 and r43904 for details.
+=item NCI_FB_CB and NCI_FB_UD in iglobals [experimental]
+
+Hooks allowing a runtime-loadable dynamic frame builder.
+
=item loadlib_p_s_p [experimental]
Ability to use non-default dynamic loading behaviour.
@@ -143,6 +186,62 @@
L<https://trac.parrot.org/parrot/ticket/876>
+=item new_callback_p_p_p_s [eligible in 2.4]
+
+To be replaced with new_callback_p_p_p_p_s.
+
+L<https://trac.parrot.org/parrot/ticket/1548>
+
+=item dlfunc and new_callback signature string format [eligible in 2.4]
+
+These will be changed to allow more flexibility in types.
+
+L<https://trac.parrot.org/parrot/ticket/1565>
+
+=item find_lex [eligible in 2.4]
+
+find_lex will not throw exception for non-existing lexicals.
+
+L<https://trac.parrot.org/parrot/ticket/1207>
+
+=item substr_s_i_i_s [eligible in 2.4]
+
+This op will be replaced with replace_s_s_i_i_s op to clearly indicate
+semantic. Part of COW removal.
+
+L<https://trac.parrot.org/parrot/ticket/1540>
+
+=item substr_s_s_i_i_s [eligible in 2.4]
+
+This op is deprecated. Use replace_s_s_i_i_s or substr_s_s_i_i (or both)
+instead. Part of COW removal.
+
+L<https://trac.parrot.org/parrot/ticket/1540>
+
+=item inplace string updates. [eligible in 2.4]
+
+All "inplace" string update ops are deprecated. E.g. "chopn_s", etc.
+Part of COW removal.
+
+L<https://trac.parrot.org/parrot/ticket/1540>
+
+=back
+
+=head1 Runcores
+
+=over 4
+
+=item Unused Runcores [eligible in 2.4]
+
+The following Runcores do not appear to be used. Accordingly they will
+be eligible for removal.
+
+CGoto
+CGP
+Switch
+
+L<https://trac.parrot.org/parrot/ticket/1563>
+
=back
=head1 Bytecode
@@ -193,14 +292,6 @@
L<https://trac.parrot.org/parrot/ticket/907>
-=item Subs marked with C<:vtable>/C<:method> aren't in namespace [eligible in 1.1]
-
-Subs marked with C<:vtable> or C<:method> flags are no longer given a
-namespace entry by default. Use the C<:nsentry> flag to cause this
-to happen.
-
-L<https://trac.parrot.org/parrot/ticket/389>
-
=item C API coding standards cleanup [eligible in 1.1]
All C API functions that aren't currently named according to the
@@ -230,6 +321,13 @@
rename Parrot_string_cstring to Parrot_str_cstring
+=item STRING COW [eligible in 2.4]
+
+COW strings are to be removed. All "inplace" string modification
+functions and all "inplace" string ops are deprecated.
+
+L<https://trac.parrot.org/parrot/ticket/1540>
+
=item Parrot_PMC_* in src/extend.c [eligible in 2.4]
These are duplicates of functions in src/extend_vtable.c. Exceptions:
@@ -353,7 +451,7 @@
=item 2
For an item to be considered experimental, it can B<never> have shipped in
-a stable release without the C<[experimental]> tag; otherwise, it must be
+a supported release without the C<[experimental]> tag; otherwise, it must be
deprecated normally before removal or incompatible change.
=back
Modified: branches/avl_string_cache/MANIFEST
==============================================================================
--- branches/avl_string_cache/MANIFEST Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/MANIFEST Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,7 +1,7 @@
# ex: set ro:
# $Id$
#
-# generated by tools/dev/mk_manifest_and_skip.pl Tue Mar 30 15:58:20 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Thu Apr 22 00:02:51 2010 UT
#
# See below for documentation on the format of this file.
#
@@ -235,8 +235,6 @@
config/auto/cpu/sun4/auto.pm []
config/auto/cpu/sun4/test_atomic_c.in []
config/auto/cpu/x86_64/auto.pm []
-config/auto/crypto.pm []
-config/auto/crypto/crypto_c.in []
config/auto/ctags.pm []
config/auto/env.pm []
config/auto/env/test_setenv_c.in []
@@ -250,8 +248,6 @@
config/auto/gc/test_c.in []
config/auto/gcc.pm []
config/auto/gcc/test_c.in []
-config/auto/gdbm.pm []
-config/auto/gdbm/gdbm_c.in []
config/auto/gettext.pm []
config/auto/gettext/gettext_c.in []
config/auto/glibc.pm []
@@ -309,13 +305,10 @@
config/gen/config_h/has_header_h.in []
config/gen/config_pm.pm []
config/gen/config_pm/Config_pm.in []
-config/gen/config_pm/config_lib_pasm.in []
+config/gen/config_pm/config_lib_pir.in []
config/gen/config_pm/config_pir.in []
config/gen/config_pm/myconfig.in []
config/gen/core_pmcs.pm []
-config/gen/crypto.pm []
-config/gen/crypto/digest_pmc.in []
-config/gen/crypto/digest_t.in []
config/gen/makefiles.pm []
config/gen/makefiles/docs.in []
config/gen/makefiles/dynpmc.in []
@@ -925,15 +918,6 @@
ext/Parrot-Embed/tools/check_embed_coverage.pl []
ext/Parrot-Embed/tools/write_typemap.pl []
ext/Parrot-Embed/typemap []
-ext/SQLite3/DBDI.pm []
-ext/SQLite3/DBDI/Driver/SQLite3.pm []
-ext/SQLite3/Makefile.PL []
-ext/SQLite3/Makefile.in []
-ext/SQLite3/SQLite3.pir []
-ext/SQLite3/gen_sqlite3.pl []
-ext/SQLite3/t/test.p6 [test]
-ext/SQLite3/test.pir []
-ext/nqp-rx/.gitignore []
ext/nqp-rx/CREDITS []
ext/nqp-rx/Defines.mak []
ext/nqp-rx/LICENSE []
@@ -1262,7 +1246,6 @@
runtime/parrot/library/SDL/Sprite.pir [library]
runtime/parrot/library/SDL/StopWatch.pir [library]
runtime/parrot/library/SDL/Surface.pir [library]
-runtime/parrot/library/SQLite3.pir [library]
runtime/parrot/library/Stream/Base.pir [library]
runtime/parrot/library/Stream/Combiner.pir [library]
runtime/parrot/library/Stream/Coroutine.pir [library]
@@ -1273,6 +1256,9 @@
runtime/parrot/library/Stream/Sub.pir [library]
runtime/parrot/library/Stream/Writer.pir [library]
runtime/parrot/library/String/Utils.pir [library]
+runtime/parrot/library/TAP/Formatter.pir [library]
+runtime/parrot/library/TAP/Harness.pir [library]
+runtime/parrot/library/TAP/Parser.pir [library]
runtime/parrot/library/Tcl/Glob.pir [library]
runtime/parrot/library/TclLibrary.pir [library]
runtime/parrot/library/Test/Builder.pir [library]
@@ -1291,6 +1277,7 @@
runtime/parrot/library/ncurses.declarations [library]
runtime/parrot/library/ncurses.pasm [library]
runtime/parrot/library/ncurses.pir [library]
+runtime/parrot/library/osutils.pir [library]
runtime/parrot/library/parrotlib.pir [library]
runtime/parrot/library/pcore.pir [library]
runtime/parrot/library/pcre.pir [library]
@@ -1321,7 +1308,6 @@
src/dynpmc/ext.pir []
src/dynpmc/foo.pmc []
src/dynpmc/foo2.pmc []
-src/dynpmc/gdbmhash.pmc []
src/dynpmc/main.pasm []
src/dynpmc/pccmethod_test.pmc []
src/dynpmc/rational.pmc []
@@ -1470,7 +1456,6 @@
src/pmc/resizableintegerarray.pmc []
src/pmc/resizablepmcarray.pmc []
src/pmc/resizablestringarray.pmc []
-src/pmc/retcontinuation.pmc []
src/pmc/role.pmc []
src/pmc/scalar.pmc []
src/pmc/scheduler.pmc []
@@ -1699,7 +1684,6 @@
t/dynpmc/dynlexpad.t [test]
t/dynpmc/foo.t [test]
t/dynpmc/foo2.t [test]
-t/dynpmc/gdbmhash.t [test]
t/dynpmc/pccmethod_test.t [test]
t/dynpmc/rational.t [test]
t/dynpmc/rotest.t [test]
@@ -1718,6 +1702,7 @@
t/examples/subs.t [test]
t/examples/tutorial.t [test]
t/harness [test]
+t/harness.pir [test]
t/include/fp_equality.t [test]
t/library/cgi_query_hash.t [test]
t/library/configure.t [test]
@@ -1728,6 +1713,7 @@
t/library/iter.t [test]
t/library/md5.t [test]
t/library/mime_base64.t [test]
+t/library/osutils.t [test]
t/library/p6object.t [test]
t/library/parrotlib.t [test]
t/library/pcre.t [test]
@@ -1738,6 +1724,7 @@
t/library/range.t [test]
t/library/streams.t [test]
t/library/string_utils.t [test]
+t/library/tap_parser.t [test]
t/library/tcl_glob.t [test]
t/library/tcl_lib.t [test]
t/library/test_builder_tester.t [test]
@@ -1914,6 +1901,7 @@
t/pmc/multidispatch.t [test]
t/pmc/multisub.t [test]
t/pmc/namespace-old.t [test]
+t/pmc/namespace-subs.t [test]
t/pmc/namespace.t [test]
t/pmc/nci.t [test]
t/pmc/null.t [test]
@@ -1951,7 +1939,6 @@
t/pmc/resizableintegerarray.t [test]
t/pmc/resizablepmcarray.t [test]
t/pmc/resizablestringarray.t [test]
-t/pmc/retcontinuation.t [test]
t/pmc/ro.t [test]
t/pmc/role.t [test]
t/pmc/scalar.t [test]
@@ -1992,14 +1979,12 @@
t/steps/auto/byteorder-01.t [test]
t/steps/auto/cgoto-01.t [test]
t/steps/auto/cpu-01.t [test]
-t/steps/auto/crypto-01.t [test]
t/steps/auto/ctags-01.t [test]
t/steps/auto/env-01.t [test]
t/steps/auto/format-01.t [test]
t/steps/auto/frames-01.t [test]
t/steps/auto/gc-01.t [test]
t/steps/auto/gcc-01.t [test]
-t/steps/auto/gdbm-01.t [test]
t/steps/auto/gettext-01.t [test]
t/steps/auto/glibc-01.t [test]
t/steps/auto/gmp-01.t [test]
@@ -2195,10 +2180,13 @@
tools/dev/search-ops.pl []
tools/dev/svnclobber.pl []
tools/dev/symlink.pl []
+tools/dev/tapir.pir []
tools/dev/vgp []
tools/dev/vgp_darwin []
tools/dev/vms-patch []
tools/dev/vtablize.pl []
+tools/docs/book-to-latex.pl []
+tools/docs/filename_and_chapter.pl []
tools/docs/mk_chm.pl []
tools/docs/ops_summary.pl []
tools/docs/write_docs.pl []
Modified: branches/avl_string_cache/MANIFEST.SKIP
==============================================================================
--- branches/avl_string_cache/MANIFEST.SKIP Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/MANIFEST.SKIP Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,6 +1,6 @@
# ex: set ro:
# $Id$
-# generated by tools/dev/mk_manifest_and_skip.pl Tue Mar 30 17:42:06 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Wed Apr 21 10:28:38 2010 UT
#
# This file should contain a transcript of the svn:ignore properties
# of the directories in the Parrot subversion repository. (Needed for
@@ -65,8 +65,8 @@
^all_cstring\.str/
^blib$
^blib/
-^config_lib\.pasm$
-^config_lib\.pasm/
+^config_lib\.pir$
+^config_lib\.pir/
^cover_db$
^cover_db/
^install_config\.fpmc$
@@ -131,6 +131,10 @@
^pirc/
^tags$
^tags/
+^tapir$
+^tapir/
+^tapir\..*$
+^tapir\..*/
^temp\.file$
^temp\.file/
^test$
@@ -601,12 +605,20 @@
# generated from svn:ignore of 'runtime/parrot/library/Parrot/'
^runtime/parrot/library/Parrot/.*\.pbc$
^runtime/parrot/library/Parrot/.*\.pbc/
+# generated from svn:ignore of 'runtime/parrot/library/ProfTest/'
+^runtime/parrot/library/ProfTest/.*\.pbc$
+^runtime/parrot/library/ProfTest/.*\.pbc/
+^runtime/parrot/library/ProfTest/.*\.pir$
+^runtime/parrot/library/ProfTest/.*\.pir/
# generated from svn:ignore of 'runtime/parrot/library/Stream/'
^runtime/parrot/library/Stream/.*\.pbc$
^runtime/parrot/library/Stream/.*\.pbc/
# generated from svn:ignore of 'runtime/parrot/library/String/'
^runtime/parrot/library/String/Utils\.pbc$
^runtime/parrot/library/String/Utils\.pbc/
+# generated from svn:ignore of 'runtime/parrot/library/TAP/'
+^runtime/parrot/library/TAP/.*\.pbc$
+^runtime/parrot/library/TAP/.*\.pbc/
# generated from svn:ignore of 'runtime/parrot/library/Tcl/'
^runtime/parrot/library/Tcl/.*\.pbc$
^runtime/parrot/library/Tcl/.*\.pbc/
Modified: branches/avl_string_cache/MANIFEST.generated
==============================================================================
--- branches/avl_string_cache/MANIFEST.generated Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/MANIFEST.generated Thu Apr 22 09:55:26 2010 (r45889)
@@ -2,10 +2,10 @@
# 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.2.0.dylib [main]lib
+blib/lib/libparrot.2.3.0.dylib [main]lib
blib/lib/libparrot.a [main]lib
blib/lib/libparrot.dylib [main]lib
-blib/lib/libparrot.so.2.2.0 [main]lib
+blib/lib/libparrot.so.2.3.0 [main]lib
blib/lib/libparrot.so [main]lib
compilers/data_json/data_json.pbc [data_json]
compilers/json/JSON.pbc [json]
@@ -66,6 +66,8 @@
installable_pbc_to_exe [main]bin
installable_parrot-nqp.exe [main]bin
installable_parrot-nqp [main]bin
+installable_tapir.exe [main]bin
+installable_tapir [main]bin
lib/Parrot/Config/Generated.pm [devel]lib
libparrot.dll [main]bin
libparrot.lib [main]bin
@@ -172,6 +174,7 @@
runtime/parrot/library/OpenGL_funcs.pir [main]
runtime/parrot/library/OpenGL_funcs.pbc [main]
runtime/parrot/library/OpenGL.pbc [main]
+runtime/parrot/library/osutils.pbc [main]
runtime/parrot/library/P6object.pbc [main]
runtime/parrot/library/P6Regex.pbc [main]
runtime/parrot/library/Parrot/Capture_PIR.pbc [main]
@@ -204,6 +207,9 @@
runtime/parrot/library/Stream/Replay.pbc [main]
runtime/parrot/library/Stream/Sub.pbc [main]
runtime/parrot/library/Stream/Writer.pbc [main]
+runtime/parrot/library/TAP/Formatter.pbc [main]
+runtime/parrot/library/TAP/Harness.pbc [main]
+runtime/parrot/library/TAP/Parser.pbc [main]
runtime/parrot/library/Tcl/Glob.pbc [main]
runtime/parrot/library/TclLibrary.pbc [main]
runtime/parrot/library/Test/Builder/Test.pbc [main]
Modified: branches/avl_string_cache/META.yml
==============================================================================
--- branches/avl_string_cache/META.yml Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/META.yml Thu Apr 22 09:55:26 2010 (r45889)
@@ -4,7 +4,7 @@
# See http://module-build.sourceforge.net/META-spec-current.html for details.
---
name: parrot
-version: 2.2.0
+version: 2.3.0
author: parrot-dev at lists.parrot.org
abstract: a virtual machine designed for dynamic languages
license: artistic2
Modified: branches/avl_string_cache/NEWS
==============================================================================
--- branches/avl_string_cache/NEWS Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/NEWS Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,22 +1,25 @@
# $Id$
New in 2.3.0
-- Features
- Core
+ Allow passing parameters to the dynamic linker ('dlopen' improved)
+ loadlib opcode added
- + Merge of pcc_hackatron branch
+ + Calling conventions are now much more consistent, and follows natural
+ semantics of handling arguments and return values
+ Recursive make for src/dynpmc removed
-- Compilers
-- Deprecations
-- API
+ + Datatype STRINGNULL for a single Null STRING added
+ + config_lib.pasm replaced with config_lib.pir
- Platforms
+ Improved handling of new compilers
-- Bugfix
-- Tests
+ + Cygwin packages will be updated again with Parrot releases
+ + Fedora packages add desktop files
+ + gzip and bzip2 compressed tar files for releases
- Tools
-- Documentation
+ + tapir executable added; tapir is a TAP test harness
+ + Added TAP options --merge --ignore-exit
- Miscellaneous
+ + 3 month cycle for supported releases
+ + Review and vote of GSoC applications
New in 2.2.0
- Core changes
Modified: branches/avl_string_cache/PBC_COMPAT
==============================================================================
--- branches/avl_string_cache/PBC_COMPAT Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/PBC_COMPAT Thu Apr 22 09:55:26 2010 (r45889)
@@ -27,6 +27,8 @@
# please insert tab separated entries at the top of the list
+6.7 2010.04.22 coke remove RetContinuation PMC
+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
6.3 2010.02.16 whiteknight Add OpLib and Opcode PMCs
Modified: branches/avl_string_cache/README
==============================================================================
--- branches/avl_string_cache/README Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/README Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-This is Parrot, version 2.2.0
+This is Parrot, version 2.3.0
------------------------------
Parrot is Copyright (C) 2001-2010, Parrot Foundation.
Modified: branches/avl_string_cache/README_cygwin.pod
==============================================================================
--- branches/avl_string_cache/README_cygwin.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/README_cygwin.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -25,22 +25,22 @@
Runtime requirements:
- libreadline6 ncurses libintl8 libgmp3 libgdbm4
+ libreadline6 ncurses libintl8 libgmp3
Optional requirements:
- libicu38 libpq5 openssl
+ libicu38 libpq5
for opengl: w32api opengl or libglut3 xorg-x11-base xorg-x11-bin-dlls
Build requirements:
gcc make perl parrot readline libncurses-devel libgmp-devel
- libgdbm-devel pcre-devel
+ pcre-devel
Optional build requirements:
- libicu-devel openssl-devel
+ libicu-devel
for Cygwin/X opengl: freeglut libglut-devel xorg-x11-devel
Modified: branches/avl_string_cache/README_win32.pod
==============================================================================
--- branches/avl_string_cache/README_win32.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/README_win32.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -85,15 +85,9 @@
The availability of these libraries is checked by Configure.pl.
-B<libcrypto> - a part of libssl / OpenSSL
-L<http://gnuwin32.sourceforge.net/>
-
B<gettext> - library and tools for native language support
L<http://gnuwin32.sourceforge.net/>
-B<gdbm> - GNU database manager
-L<http://gnuwin32.sourceforge.net/>
-
B<GMP> - GNU multiple precision arithmetic library
L<http://developer.berlios.de/projects/win32gmp/>
Modified: branches/avl_string_cache/RESPONSIBLE_PARTIES
==============================================================================
--- branches/avl_string_cache/RESPONSIBLE_PARTIES Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/RESPONSIBLE_PARTIES Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2009, Parrot Foundation.
+# Copyright (C) 2002-2010, Parrot Foundation.
# $Id$
This is a list of project roles, with a partial list of the folks who have
@@ -62,6 +62,7 @@
Reini Urban (cygwin)
Will Coleda (MacPorts)
Jerry Gay (Windows)
+ Gerd Pokorra (Fedora)
Patch Monster chromatic
Modified: branches/avl_string_cache/VERSION
==============================================================================
--- branches/avl_string_cache/VERSION Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/VERSION Thu Apr 22 09:55:26 2010 (r45889)
@@ -1 +1 @@
-2.2.0
+2.3.0
Modified: branches/avl_string_cache/compilers/imcc/imcc.l
==============================================================================
--- branches/avl_string_cache/compilers/imcc/imcc.l Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/compilers/imcc/imcc.l Thu Apr 22 09:55:26 2010 (r45889)
@@ -87,6 +87,8 @@
static void include_file(PARROT_INTERP, char *file_name, ARGMOD(void *yyscanner));
+static int handle_identifier(PARROT_INTERP, YYSTYPE *valp, ARGIN(const char *id));
+
#define YY_DECL int yylex(YYSTYPE *valp, yyscan_t yyscanner, PARROT_INTERP)
#define YYCHOP() (yytext[--yyleng] = '\0')
@@ -133,7 +135,7 @@
STRINGCONSTANT {SQ_STRING}|{DQ_STRING}
SQ_STRING \'[^'\n]*\'
RANKSPEC \[[,]*\]
-EOL \r?\n
+EOL \r?\n
WS [\t\f\r\x1a ]
SP [ ]
@@ -167,7 +169,10 @@
return 0;
}
+<*>^{WS}* { IMCC_INFO(interp)->line++; }
+
<heredoc1>.*{EOL} {
+ IMCC_INFO(interp)->line++;
IMCC_INFO(interp)->frames->heredoc_rest = mem_sys_strdup(yytext);
BEGIN(heredoc2);
}
@@ -177,7 +182,6 @@
* arrange them before all wildcard state matches */
/* Newline in the heredoc. Realloc and cat on. */
- IMCC_INFO(interp)->line++;
IMCC_INFO(interp)->heredoc_content =
(char*)mem_sys_realloc(IMCC_INFO(interp)->heredoc_content,
strlen(IMCC_INFO(interp)->heredoc_content) +
@@ -187,6 +191,7 @@
}
<heredoc2>.* {
+ IMCC_INFO(interp)->line++;
/* Are we at the end of the heredoc? */
if (STREQ(IMCC_INFO(interp)->heredoc_end, yytext)) {
/* End of the heredoc. */
@@ -209,7 +214,7 @@
yy_pop_state(yyscanner);
yy_scan_string(IMCC_INFO(interp)->frames->heredoc_rest, yyscanner);
- /* the EOF rule will increment the line number; decrement here */
+ /* not sure we need this decrement; more testing needed */
IMCC_INFO(interp)->line--;
return STRINGC;
}
@@ -252,7 +257,6 @@
<cmt4>.*{EOL} {
yy_pop_state(yyscanner);
- IMCC_INFO(interp)->line++;
}
<INITIAL,emit>{EOL} {
@@ -260,7 +264,6 @@
BEGIN(INITIAL);
IMCC_INFO(interp)->expect_pasm = 0;
- IMCC_INFO(interp)->line++;
return '\n';
}
@@ -276,7 +279,6 @@
yy_pop_state(yyscanner);
IMCC_INFO(interp)->expect_pasm = 0;
- IMCC_INFO(interp)->line++;
return '\n';
}
@@ -288,19 +290,20 @@
}
<INITIAL,emit,macro>^"=" {
+ IMCC_INFO(interp)->line++;
IMCC_INFO(interp)->in_pod = 1;
yy_push_state(pod, yyscanner);
}
<pod>^"=cut"{EOL} {
+ IMCC_INFO(interp)->line++;
IMCC_INFO(interp)->in_pod = 0;
yy_pop_state(yyscanner);
- IMCC_INFO(interp)->line++;
}
-<pod>.* { /*ignore*/ }
+<pod>.* { IMCC_INFO(interp)->line++; }
-<pod>{EOL} { IMCC_INFO(interp)->line++; }
+<pod>{EOL} { /* ignore */ }
<*>".line" return TK_LINE;
<*>".file" return TK_FILE;
@@ -337,7 +340,7 @@
":instanceof" return SUB_INSTANCE_OF;
":subid" return SUBID;
-".get_result" return RESULT;
+".get_result" return RESULT;
".get_results" return GET_RESULTS;
".yield" return YIELDT;
".set_yield" return SET_YIELD;
@@ -447,6 +450,8 @@
}
<emit,INITIAL>".macro" {
+ /* the initial whitespace catcher misses this one */
+ IMCC_INFO(interp)->line++;
return read_macro(valp, interp, yyscanner);
}
@@ -485,7 +490,6 @@
}
<emit,INITIAL>{ID}"$" {
-
if (valp) {
char *label;
size_t len;
@@ -635,34 +639,8 @@
return REG;
}
-<emit,INITIAL>{ID} {
- if (!IMCC_INFO(interp)->is_def) {
- SymReg *r = find_sym(interp, yytext);
-
- if (r && (r->type & (VTIDENTIFIER|VT_CONSTP))) {
- valp->sr = r;
- return VAR;
- }
-
- if (IMCC_INFO(interp)->cur_unit
- && IMCC_INFO(interp)->cur_unit->instructions
- && (r = IMCC_INFO(interp)->cur_unit->instructions->symregs[0])
- && r->pcc_sub)
- {
- if (((r->pcc_sub->pragma & P_METHOD)
- || (IMCC_INFO(interp)->cur_unit->is_vtable_method))
- && !strcmp(yytext, "self")) {
- valp->sr = mk_ident(interp, "self", 'P');
- IMCC_INFO(interp)->cur_unit->type |= IMC_HAS_SELF;
- return VAR;
- }
- }
- }
-
- valp->s = mem_sys_strdup(yytext);
- return (!IMCC_INFO(interp)->is_def && is_op(interp, valp->s) ? PARROT_OP : IDENTIFIER);
- }
+<emit,INITIAL>{ID} { return handle_identifier(interp, valp, yytext); }
<emit,INITIAL>{WS}+ /* skip */;
@@ -684,10 +662,13 @@
<INITIAL><<EOF>> yyterminate();
-<macro>".endm" DUP_AND_RET(valp, ENDM);
+<macro>".endm" {
+ /* the initial whitespace catcher misses this one */
+ IMCC_INFO(interp)->line++;
+ DUP_AND_RET(valp, ENDM);
+}
<macro>{WS}*{EOL} {
- IMCC_INFO(interp)->line++;
DUP_AND_RET(valp, '\n');
}
@@ -745,7 +726,6 @@
return IDENTIFIER;
}
-<macro>^{WS}+ /* skip leading ws */;
<macro>{WS}+ DUP_AND_RET(valp, ' ');
<macro>[SNIP]{DIGITS} DUP_AND_RET(valp, REG);
<macro>"$"[SNIP]{DIGITS} DUP_AND_RET(valp, REG);
@@ -814,6 +794,9 @@
frame->s.next = (parser_state_t *)IMCC_INFO(interp)->frames;
IMCC_INFO(interp)->frames = frame;
+ /* start at the effective *starting line* of the macro */
+ IMCC_INFO(interp)->line = frame->s.line - 2;
+
yy_scan_string(expansion, yyscanner);
}
@@ -1069,9 +1052,6 @@
IMCC_INFO(interp)->macro_buffer = NULL;
IMCC_INFO(interp)->cur_macro_name = NULL;
- /* the ENDM rule doesn't set the line number */
- IMCC_INFO(interp)->line--;
-
return MACRO;
}
@@ -1232,8 +1212,6 @@
}
}
- /* let the normal EOF rules match line numbers */
- IMCC_INFO(interp)->line = m->line - 1;
scan_string(frame, m->expansion, yyscanner);
return 1;
@@ -1288,7 +1266,8 @@
IMCC_INFO(interp)->frames = frame;
IMCC_INFO(interp)->state = (parser_state_t *)IMCC_INFO(interp)->frames;
- IMCC_INFO(interp)->line = 1;
+ /* let the start of line rule increment this to 1 */
+ IMCC_INFO(interp)->line = 0;
yy_switch_to_buffer(yy_create_buffer(file, YY_BUF_SIZE, yyscanner),
yyscanner);
@@ -1469,6 +1448,36 @@
return yyg->yy_hold_char == '\0';
}
+static int
+handle_identifier(PARROT_INTERP, YYSTYPE *valp, const char *text)
+{
+ if (!IMCC_INFO(interp)->is_def) {
+ SymReg *r = find_sym(interp, text);
+
+ if (r && (r->type & (VTIDENTIFIER|VT_CONSTP))) {
+ valp->sr = r;
+ return VAR;
+ }
+
+ if (IMCC_INFO(interp)->cur_unit
+ && IMCC_INFO(interp)->cur_unit->instructions
+ && (r = IMCC_INFO(interp)->cur_unit->instructions->symregs[0])
+ && r->pcc_sub)
+ {
+ if (((r->pcc_sub->pragma & P_METHOD)
+ || (IMCC_INFO(interp)->cur_unit->is_vtable_method))
+ && !strcmp(text, "self")) {
+ valp->sr = mk_ident(interp, "self", 'P');
+ IMCC_INFO(interp)->cur_unit->type |= IMC_HAS_SELF;
+ return VAR;
+ }
+ }
+ }
+
+ valp->s = mem_sys_strdup(text);
+ return (!IMCC_INFO(interp)->is_def && is_op(interp, valp->s) ? PARROT_OP : IDENTIFIER);
+}
+
/*
* Local variables:
* c-file-style: "parrot"
Modified: branches/avl_string_cache/compilers/imcc/imcc.y
==============================================================================
--- branches/avl_string_cache/compilers/imcc/imcc.y Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/compilers/imcc/imcc.y Thu Apr 22 09:55:26 2010 (r45889)
@@ -1085,7 +1085,7 @@
%nonassoc '\n'
%nonassoc <t> PARAM
-%token <t> HLL TK_LINE TK_FILE
+%token <t> SOL HLL TK_LINE TK_FILE
%token <t> GOTO ARG IF UNLESS PNULL SET_RETURN SET_YIELD
%token <t> ADV_FLAT ADV_SLURPY ADV_OPTIONAL ADV_OPT_FLAG ADV_NAMED ADV_ARROW
%token <t> NEW ADV_INVOCANT ADV_CALL_SIG
@@ -1494,13 +1494,13 @@
ns_entry_name:
NS_ENTRY
{
- $$ = 0;
+ $$ = P_NSENTRY;
IMCC_INFO(interp)->cur_unit->ns_entry_name = NULL;
IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
}
| NS_ENTRY '(' any_string ')'
{
- $$ = 0;
+ $$ = P_NSENTRY;
IMCC_INFO(interp)->cur_unit->ns_entry_name = $3;
IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
}
@@ -2510,26 +2510,19 @@
* before the newline, and thus, line is the line *after* the
* error. Instead of duplicating code for both cases (the 'newline' and
* non-newline case, do the test twice; efficiency is not important when
- * we have an error anyway.
- */
+ * we have an error anyway. */
if (!at_eof(yyscanner)) {
- if (*chr == '\n') {
- IMCC_INFO(interp)->line--;
- }
-
IMCC_warning(interp, "error:imcc:%s", s);
+
/* don't print the current token if it is a newline */
- if (*chr != '\n') {
+ if (*chr != '\n')
IMCC_warning(interp, " ('%s')", chr);
- }
- IMCC_print_inc(interp);
-
- if (*chr == '\n') {
- IMCC_INFO(interp)->line++;
- }
+ IMCC_print_inc(interp);
}
- else { /* scanner is at end of file; just to be sure, do not print "current" token. */
+
+ /* scanner is at EOF; just to be sure, don't print "current" token */
+ else {
IMCC_warning(interp, "error:imcc:%s", s);
IMCC_print_inc(interp);
}
Modified: branches/avl_string_cache/compilers/imcc/imclexer.c
==============================================================================
--- branches/avl_string_cache/compilers/imcc/imclexer.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/compilers/imcc/imclexer.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -385,125 +385,127 @@
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[1062] =
+static yyconst flex_int16_t yy_accept[1090] =
{ 0,
- 0, 0, 0, 0, 0, 0, 16, 16, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 3, 149, 135, 134, 10, 134, 135, 135, 11,
- 135, 135, 135, 135, 135, 135, 115, 135, 95, 135,
- 119, 119, 135, 87, 135, 89, 133, 133, 133, 133,
- 133, 133, 133, 133, 135, 135, 14, 134, 134, 135,
- 135, 135, 135, 133, 14, 147, 142, 137, 142, 147,
- 147, 147, 147, 147, 119, 119, 147, 145, 145, 145,
- 141, 141, 14, 16, 17, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 148, 135, 8, 8,
-
- 135, 135, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 5, 135, 9, 135, 135, 135, 135, 135,
- 119, 119, 135, 135, 135, 135, 12, 135, 135, 135,
- 135, 135, 119, 119, 135, 135, 135, 148, 1, 148,
- 148, 148, 148, 148, 119, 119, 148, 148, 148, 3,
- 2, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 134, 0, 10, 92, 0, 124, 0, 131, 131,
- 131, 131, 131, 100, 84, 103, 0, 93, 98, 0,
- 119, 96, 97, 118, 109, 117, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
+ 0, 1, 0, 1, 0, 1, 17, 1, 0, 1,
+ 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
+ 4, 1, 149, 136, 135, 11, 135, 136, 136, 12,
+ 136, 136, 136, 136, 136, 136, 116, 136, 96, 136,
+ 120, 120, 136, 88, 136, 90, 134, 134, 134, 134,
+ 134, 134, 134, 134, 136, 136, 1, 1, 15, 135,
+ 135, 136, 136, 136, 136, 134, 1, 1, 15, 147,
+ 142, 138, 142, 147, 147, 147, 147, 147, 120, 120,
+ 147, 145, 145, 145, 1, 1, 15, 17, 18, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 1,
+
+ 1, 17, 148, 136, 9, 9, 136, 136, 1, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 1,
+ 6, 136, 10, 136, 136, 136, 136, 136, 120, 120,
+ 136, 136, 136, 1, 1, 136, 13, 136, 136, 136,
+ 136, 136, 120, 120, 136, 136, 136, 1, 1, 148,
+ 2, 148, 148, 148, 148, 148, 120, 120, 148, 148,
+ 148, 1, 1, 4, 3, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 1, 1, 135, 0, 11,
+ 93, 0, 125, 0, 132, 132, 132, 132, 132, 101,
+ 85, 104, 0, 94, 99, 0, 120, 97, 98, 119,
+
+ 110, 118, 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118, 102, 100,
+ 119, 0, 0, 124, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 82, 89,
+ 92, 65, 91, 83, 115, 0, 134, 117, 133, 134,
+ 75, 134, 134, 134, 134, 134, 134, 105, 86, 106,
+ 87, 1, 0, 135, 118, 118, 118, 118, 118, 118,
+ 0, 0, 0, 0, 1, 142, 138, 142, 0, 0,
+ 0, 146, 146, 146, 146, 145, 0, 143, 145, 1,
+ 1, 17, 18, 17, 17, 17, 17, 17, 17, 17,
- 117, 117, 101, 99, 118, 0, 0, 123, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 81, 88, 91, 64, 90, 82, 114, 0,
- 133, 116, 132, 133, 74, 133, 133, 133, 133, 133,
- 133, 104, 85, 105, 86, 0, 134, 117, 117, 117,
- 117, 117, 117, 0, 0, 0, 0, 142, 137, 142,
- 0, 0, 0, 146, 146, 146, 146, 145, 0, 143,
- 145, 141, 141, 16, 17, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 0, 0, 8, 0, 4,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 1, 17, 0, 0, 9, 0, 1, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 1, 0, 10,
+ 0, 0, 0, 125, 0, 0, 0, 0, 120, 119,
+ 0, 0, 119, 0, 0, 124, 0, 0, 0, 0,
+ 0, 0, 1, 1, 0, 13, 0, 0, 0, 125,
+ 0, 0, 0, 0, 120, 119, 0, 0, 119, 0,
+ 0, 124, 0, 0, 0, 0, 0, 0, 1, 1,
+ 0, 2, 0, 0, 0, 125, 0, 0, 0, 0,
+ 120, 119, 0, 0, 119, 0, 0, 124, 0, 0,
+ 0, 0, 0, 0, 1, 1, 4, 3, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 0, 9, 0,
- 0, 0, 124, 0, 0, 0, 0, 119, 118, 0,
- 0, 118, 0, 0, 123, 0, 0, 0, 0, 0,
- 0, 0, 12, 0, 0, 0, 124, 0, 0, 0,
- 0, 119, 118, 0, 0, 118, 0, 0, 123, 0,
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 124, 0, 0, 0, 0, 119, 118, 0, 0, 118,
- 0, 0, 123, 0, 0, 0, 0, 0, 0, 3,
- 2, 3, 3, 3, 3, 3, 3, 3, 3, 3,
-
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 94, 127, 128, 130, 129, 0, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 102, 118, 121, 0, 118, 122, 120, 0, 0,
+ 4, 4, 4, 4, 4, 4, 4, 1, 95, 128,
+ 129, 131, 130, 0, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118, 118, 103,
+ 119, 122, 0, 119, 123, 121, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 107,
- 106, 83, 113, 0, 0, 132, 133, 77, 133, 78,
- 79, 133, 133, 133, 0, 117, 117, 0, 0, 138,
- 144, 140, 146, 146, 146, 146, 146, 145, 16, 16,
-
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 0, 0, 0, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 0, 0,
- 0, 118, 121, 0, 118, 122, 120, 0, 0, 0,
- 0, 0, 0, 0, 0, 118, 121, 0, 118, 122,
- 120, 0, 0, 0, 0, 0, 0, 0, 0, 118,
- 121, 0, 118, 122, 120, 0, 0, 0, 0, 0,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 0, 118, 68, 117, 117, 117,
- 117, 24, 117, 117, 117, 117, 117, 21, 117, 117,
+ 0, 0, 0, 0, 0, 0, 0, 108, 107, 84,
- 117, 117, 117, 117, 117, 117, 117, 117, 117, 23,
- 117, 117, 0, 0, 0, 0, 0, 0, 0, 45,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 125, 0, 0, 108, 0, 126,
- 0, 0, 0, 73, 76, 133, 133, 133, 133, 0,
- 140, 146, 146, 146, 146, 145, 145, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 0, 0, 0, 0, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 0, 118, 0,
- 0, 0, 0, 125, 0, 0, 0, 0, 0, 126,
-
- 0, 0, 0, 0, 0, 0, 118, 0, 0, 0,
- 0, 125, 0, 0, 0, 0, 0, 126, 0, 0,
- 0, 0, 0, 0, 118, 0, 0, 0, 0, 125,
- 0, 0, 0, 0, 0, 126, 0, 0, 0, 0,
- 0, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 117, 117, 27, 117,
- 117, 19, 117, 117, 117, 117, 18, 117, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 117, 43,
- 0, 59, 0, 40, 0, 0, 39, 38, 0, 0,
+ 114, 0, 0, 133, 134, 78, 134, 79, 80, 134,
+ 134, 134, 0, 118, 118, 0, 0, 139, 144, 141,
+ 146, 146, 146, 146, 146, 145, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 0, 0, 0, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 0, 0, 0, 119,
+ 122, 0, 119, 123, 121, 0, 0, 0, 0, 0,
+ 0, 0, 0, 119, 122, 0, 119, 123, 121, 0,
+ 0, 0, 0, 0, 0, 0, 0, 119, 122, 0,
+ 119, 123, 121, 0, 0, 0, 0, 0, 4, 4,
+
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 0, 119, 69, 118, 118, 118, 118, 25,
+ 118, 118, 118, 118, 118, 22, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 24, 118, 118,
+ 0, 0, 0, 0, 0, 0, 0, 46, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 126, 0, 0, 109, 0, 127, 0, 0,
+ 0, 74, 77, 134, 134, 134, 134, 0, 141, 146,
+ 146, 146, 146, 145, 145, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+
+ 17, 0, 0, 0, 0, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 0, 119, 0, 0, 0,
+ 0, 126, 0, 0, 0, 0, 0, 127, 0, 0,
+ 0, 0, 0, 0, 119, 0, 0, 0, 0, 126,
+ 0, 0, 0, 0, 0, 127, 0, 0, 0, 0,
+ 0, 0, 119, 0, 0, 0, 0, 126, 0, 0,
+ 0, 0, 0, 127, 0, 0, 0, 0, 0, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 118, 118, 28, 118, 118, 20,
+ 118, 118, 118, 118, 19, 118, 118, 118, 118, 118,
- 133, 133, 133, 133, 13, 0, 136, 19, 146, 18,
- 145, 145, 16, 16, 16, 16, 15, 16, 19, 18,
- 0, 0, 4, 4, 4, 4, 19, 18, 0, 0,
- 19, 18, 0, 0, 19, 18, 0, 0, 3, 3,
- 3, 3, 117, 117, 70, 117, 117, 117, 117, 117,
- 117, 117, 117, 69, 111, 117, 117, 117, 72, 117,
- 117, 117, 117, 117, 117, 53, 0, 0, 0, 0,
- 0, 37, 63, 0, 0, 0, 44, 0, 0, 50,
- 0, 0, 133, 133, 80, 75, 146, 145, 145, 16,
- 16, 0, 0, 4, 4, 0, 0, 0, 0, 0,
-
- 0, 3, 3, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 55, 117,
- 117, 117, 117, 0, 0, 0, 0, 36, 0, 0,
- 0, 0, 60, 0, 46, 133, 133, 139, 145, 145,
- 16, 16, 0, 0, 4, 4, 0, 0, 0, 0,
- 0, 0, 3, 3, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 112, 117, 58, 117, 117, 117, 117,
- 31, 22, 117, 117, 117, 0, 0, 0, 0, 47,
- 0, 0, 0, 0, 0, 7, 16, 7, 4, 4,
- 0, 7, 0, 7, 0, 7, 3, 3, 20, 117,
-
- 117, 117, 26, 117, 117, 117, 117, 30, 117, 117,
- 117, 28, 117, 117, 57, 66, 0, 0, 65, 62,
- 61, 42, 0, 6, 6, 6, 6, 6, 3, 117,
- 117, 117, 117, 35, 117, 117, 117, 29, 67, 117,
- 54, 41, 0, 0, 25, 117, 117, 33, 51, 117,
- 117, 56, 49, 48, 117, 34, 52, 71, 110, 32,
- 0
+ 118, 118, 118, 118, 118, 118, 118, 44, 0, 60,
+ 0, 41, 0, 0, 40, 39, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 134, 134,
+ 134, 134, 14, 0, 137, 20, 146, 19, 145, 145,
+ 17, 17, 17, 17, 16, 17, 20, 19, 0, 0,
+ 5, 5, 5, 5, 20, 19, 0, 0, 20, 19,
+ 0, 0, 20, 19, 0, 0, 4, 4, 4, 4,
+ 118, 118, 71, 118, 118, 118, 118, 118, 118, 118,
+ 118, 70, 112, 118, 118, 118, 73, 118, 118, 118,
+ 118, 118, 118, 54, 0, 0, 0, 0, 0, 38,
+
+ 64, 0, 0, 0, 45, 0, 0, 51, 0, 0,
+ 134, 134, 81, 76, 146, 145, 145, 17, 17, 0,
+ 0, 5, 5, 0, 0, 0, 0, 0, 0, 4,
+ 4, 118, 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 56, 118, 118, 118,
+ 118, 0, 0, 0, 0, 37, 0, 0, 0, 0,
+ 61, 0, 47, 134, 134, 140, 145, 145, 17, 17,
+ 0, 0, 5, 5, 0, 0, 0, 0, 0, 0,
+ 4, 4, 118, 118, 118, 118, 118, 118, 118, 118,
+ 118, 113, 118, 59, 118, 118, 118, 118, 32, 23,
+
+ 118, 118, 118, 0, 0, 0, 0, 48, 0, 0,
+ 0, 0, 0, 8, 17, 8, 5, 5, 0, 8,
+ 0, 8, 0, 8, 4, 4, 21, 118, 118, 118,
+ 27, 118, 118, 118, 118, 31, 118, 118, 118, 29,
+ 118, 118, 58, 67, 0, 0, 66, 63, 62, 43,
+ 0, 7, 7, 7, 7, 7, 4, 118, 118, 118,
+ 118, 36, 118, 118, 118, 30, 68, 118, 55, 42,
+ 0, 0, 26, 118, 118, 34, 52, 118, 118, 57,
+ 50, 49, 118, 35, 53, 72, 111, 33, 0
} ;
static yyconst flex_int32_t yy_ec[256] =
@@ -549,283 +551,287 @@
10, 10, 10, 1, 1
} ;
-static yyconst flex_int16_t yy_base[1213] =
+static yyconst flex_int16_t yy_base[1241] =
{ 0,
- 0, 4304, 64, 4303, 129, 81, 194, 4302, 259, 0,
- 324, 0, 72, 77, 389, 0, 454, 0, 519, 0,
- 584, 0, 4326, 6980, 98, 6980, 106, 4300, 64, 6980,
- 83, 4299, 102, 4311, 82, 633, 6980, 640, 647, 638,
- 694, 724, 729, 48, 100, 645, 703, 741, 711, 769,
- 709, 743, 777, 782, 704, 710, 771, 734, 799, 789,
- 812, 777, 4298, 798, 4277, 6980, 837, 6980, 843, 715,
- 816, 4308, 857, 863, 0, 869, 4291, 726, 885, 797,
- 890, 914, 4270, 0, 6980, 4310, 810, 4300, 903, 907,
- 942, 903, 4285, 1004, 1069, 4243, 6980, 928, 914, 1015,
-
- 4263, 641, 0, 0, 854, 970, 947, 1118, 941, 4261,
- 1180, 1245, 819, 821, 6980, 830, 934, 909, 1021, 1085,
- 1308, 1087, 927, 1370, 1435, 877, 6980, 893, 1050, 940,
- 1043, 1099, 1498, 1171, 996, 1560, 1625, 952, 6980, 979,
- 1156, 1047, 1209, 1273, 1688, 1180, 1093, 1750, 1815, 0,
- 6980, 4281, 933, 4271, 1091, 1123, 1864, 1236, 4258, 1926,
- 1991, 1151, 1096, 6980, 6980, 946, 6980, 0, 0, 1156,
- 1216, 1261, 1267, 6980, 6980, 6980, 4269, 6980, 6980, 1280,
- 1381, 6980, 6980, 1285, 6980, 0, 4246, 4226, 4232, 1013,
- 4224, 4223, 721, 4219, 947, 59, 709, 856, 4225, 671,
-
- 4228, 4219, 4239, 6980, 1313, 1105, 1336, 6980, 1108, 0,
- 4210, 4220, 4210, 1113, 977, 1006, 810, 739, 4206, 16,
- 4206, 4199, 1215, 6980, 6980, 6980, 6980, 1176, 4234, 4233,
- 1330, 4248, 1397, 1398, 1381, 1446, 1455, 1447, 1457, 1456,
- 1473, 6980, 6980, 6980, 6980, 4194, 1213, 4199, 4199, 1267,
- 4209, 4139, 4136, 1214, 4121, 4118, 995, 1361, 6980, 1420,
- 4154, 1409, 0, 0, 4123, 4125, 1049, 1010, 4167, 1526,
- 1451, 1481, 1490, 0, 6980, 1032, 0, 0, 4161, 1534,
- 1571, 1576, 4122, 4121, 1633, 1254, 1588, 0, 1348, 2038,
- 1155, 2085, 2150, 2215, 4110, 4119, 4118, 1639, 1099, 0,
-
- 1311, 0, 1560, 1682, 1750, 4117, 4116, 1762, 1277, 1599,
- 0, 1502, 2262, 1296, 2309, 2374, 2439, 1337, 6980, 1345,
- 1536, 1671, 1357, 1388, 1500, 1526, 1716, 2502, 1832, 1643,
- 1663, 1844, 1677, 1783, 1405, 1726, 2546, 1736, 2593, 2658,
- 2723, 1473, 6980, 1484, 1791, 1803, 1494, 1505, 1547, 1683,
- 1892, 2786, 1942, 1673, 1729, 1964, 1853, 1901, 1522, 1856,
- 2830, 1885, 2877, 2942, 3007, 1532, 6980, 1554, 1842, 1967,
- 1608, 1641, 1797, 1944, 1956, 3070, 2008, 1808, 1866, 2031,
- 1905, 2101, 1679, 2020, 3114, 2066, 3161, 3226, 3291, 0,
- 6980, 1192, 0, 0, 4153, 1960, 2107, 2215, 4114, 4113,
-
- 2227, 1695, 2124, 0, 1934, 3338, 1582, 3385, 3450, 3515,
- 1897, 1999, 2023, 2027, 2043, 2244, 0, 4128, 4108, 4112,
- 4108, 4104, 4111, 4104, 4095, 4099, 1070, 4090, 4098, 1014,
- 4106, 4090, 4096, 4097, 4089, 4101, 4081, 4080, 4095, 4087,
- 4088, 6980, 2232, 1706, 2111, 2248, 2055, 0, 4058, 4060,
- 4068, 4057, 1727, 4046, 4065, 4056, 4046, 4053, 4051, 4056,
- 4039, 4038, 4038, 4035, 4051, 4039, 4046, 1201, 4075, 6980,
- 6980, 4061, 6980, 1681, 4062, 2277, 2457, 2278, 2279, 2280,
- 2320, 2461, 2322, 2451, 4025, 4039, 4040, 4031, 4057, 6980,
- 2331, 0, 0, 4034, 4027, 4034, 4023, 2445, 2341, 3955,
-
- 3952, 2469, 1848, 2320, 2345, 2093, 3562, 1982, 3992, 2094,
- 3609, 3674, 3944, 3951, 3948, 1647, 2519, 3949, 3946, 2507,
- 1938, 2349, 2523, 2223, 3721, 2469, 3768, 3833, 2609, 2068,
- 2272, 2739, 2482, 2551, 2558, 2617, 3896, 2506, 2344, 2761,
- 3943, 4008, 2631, 2295, 2556, 2751, 2623, 2772, 2792, 2806,
- 4071, 2795, 2513, 2814, 4118, 4183, 2825, 2479, 2579, 2893,
- 2636, 2905, 2915, 2901, 4246, 2858, 2741, 3035, 4293, 4358,
- 3029, 3947, 3944, 3007, 2006, 2565, 2758, 2474, 4405, 2099,
- 3984, 2480, 4452, 4517, 2847, 2909, 0, 3941, 3944, 3942,
- 3934, 3950, 3944, 3948, 3945, 3936, 3932, 0, 3939, 3939,
-
- 3940, 3924, 3931, 3933, 3937, 3935, 3935, 3915, 3933, 0,
- 3922, 3921, 3918, 3919, 3906, 3918, 3904, 3903, 3905, 6980,
- 3892, 3883, 3886, 3875, 3887, 3879, 861, 3885, 3871, 3872,
- 3878, 3871, 3880, 2507, 6980, 0, 3910, 6980, 2511, 6980,
- 0, 3898, 3913, 2814, 2815, 3045, 3046, 3054, 2848, 2029,
- 0, 3867, 3868, 3867, 3866, 1821, 2484, 3037, 3059, 3865,
- 3864, 2524, 0, 0, 3897, 2574, 0, 0, 4582, 3901,
- 4647, 3857, 2132, 3860, 3859, 724, 1376, 3063, 3089, 3858,
- 3857, 2904, 0, 4712, 3895, 4777, 3851, 3102, 3109, 3094,
- 3099, 3143, 3148, 2144, 2268, 3032, 3177, 3321, 3323, 2355,
-
- 2455, 4842, 3134, 4907, 3790, 3187, 3191, 3150, 3307, 3329,
- 3331, 2553, 2645, 3211, 3309, 3336, 3338, 2747, 2753, 4972,
- 3195, 5037, 3781, 3200, 3401, 3316, 3319, 3545, 3547, 2763,
- 2780, 3403, 3414, 3553, 3555, 2839, 2852, 5102, 3344, 5167,
- 3780, 3353, 3408, 3783, 3782, 2779, 0, 0, 3815, 2808,
- 0, 0, 5232, 3819, 5297, 3775, 3765, 3770, 0, 3763,
- 3057, 0, 3764, 3778, 3759, 3774, 0, 3766, 3765, 3761,
- 3773, 3755, 3768, 3759, 3752, 3752, 3307, 3763, 3761, 6980,
- 3764, 6980, 3759, 6980, 3757, 3746, 6980, 6980, 3734, 3737,
- 3739, 3716, 3715, 3707, 3701, 3713, 3693, 3702, 3684, 3626,
-
- 3552, 3736, 3554, 3737, 6980, 3669, 0, 0, 3619, 0,
- 3396, 3519, 0, 0, 5362, 1118, 6980, 3661, 6980, 6980,
- 1128, 765, 0, 0, 5427, 1480, 2929, 3037, 3014, 1171,
- 3090, 3122, 3098, 1211, 3189, 3213, 3363, 1266, 0, 0,
- 3381, 1336, 3617, 3616, 0, 3614, 3608, 3602, 3604, 3596,
- 3600, 3596, 3581, 0, 3589, 3581, 3545, 3557, 0, 3534,
- 3535, 3529, 3527, 3519, 3523, 0, 3479, 3484, 3465, 3374,
- 3356, 6980, 6980, 3331, 3326, 3301, 6980, 3292, 3281, 6980,
- 3291, 3283, 3555, 3620, 3425, 3430, 3431, 2847, 3520, 1611,
- 1698, 1299, 1618, 2512, 2595, 1193, 1553, 1622, 1743, 1841,
-
- 1919, 2425, 2754, 3259, 3161, 3149, 3138, 3136, 3081, 3083,
- 3073, 3062, 3056, 3044, 3044, 3034, 3016, 3017, 0, 3004,
- 2987, 2988, 2972, 2860, 2794, 2730, 2709, 6980, 2689, 2697,
- 2612, 2592, 6980, 2511, 6980, 3632, 3635, 3438, 3623, 3637,
- 1400, 1463, 2254, 2817, 2564, 2848, 1937, 3127, 3302, 3374,
- 3526, 3539, 3548, 3562, 2432, 2427, 2409, 2396, 2293, 2277,
- 2277, 2256, 2243, 0, 2226, 0, 2202, 2199, 2187, 2167,
- 0, 0, 2082, 2056, 2037, 2031, 1977, 1967, 1914, 6980,
- 1881, 1868, 1851, 1793, 1609, 1837, 2111, 1829, 2617, 1808,
- 3658, 3542, 3664, 3751, 3793, 3798, 2933, 1786, 0, 1727,
-
- 1707, 1695, 0, 1649, 1655, 1633, 1570, 0, 1534, 1460,
- 1444, 0, 1397, 1388, 0, 6980, 1366, 1282, 6980, 6980,
- 6980, 6980, 1280, 6980, 0, 3434, 3441, 3593, 0, 1233,
- 1218, 1201, 1158, 0, 1128, 1115, 1027, 0, 0, 907,
- 0, 6980, 898, 839, 0, 816, 767, 0, 719, 662,
- 614, 0, 6980, 6980, 598, 0, 0, 0, 0, 0,
- 6980, 5492, 5498, 5508, 5516, 5520, 5528, 5535, 5546, 5557,
- 5568, 5579, 5586, 5597, 5608, 5619, 5630, 5641, 5652, 5663,
- 5674, 5685, 5696, 5707, 5718, 5729, 5740, 5751, 5762, 5773,
- 5784, 5795, 5801, 5811, 5817, 5823, 5828, 5836, 5845, 5851,
-
- 5855, 5861, 5868, 5879, 5890, 5901, 5912, 5923, 5934, 5945,
- 5956, 5967, 5978, 5989, 6000, 6011, 6022, 6033, 6044, 6055,
- 6066, 6077, 6088, 6099, 6110, 6121, 6127, 6132, 6138, 6147,
- 6158, 6169, 6176, 6184, 6190, 6196, 6202, 6209, 6220, 6231,
- 6242, 6253, 6264, 6271, 6282, 6293, 6304, 6315, 6326, 6337,
- 6348, 6359, 6370, 6381, 6392, 6403, 6414, 6425, 6436, 6447,
- 6458, 6469, 6480, 6491, 6502, 6513, 6524, 6530, 6541, 6552,
- 6563, 6570, 6578, 6584, 6590, 6597, 6608, 6619, 6630, 6641,
- 6652, 6659, 6670, 6681, 6692, 6703, 6714, 6725, 6736, 6747,
- 6758, 6769, 6780, 6791, 6802, 6813, 6824, 6835, 6846, 6857,
-
- 6868, 6879, 6890, 6901, 6912, 6918, 6926, 6932, 6939, 6950,
- 6957, 6968
+ 0, 64, 88, 70, 153, 75, 218, 82, 283, 113,
+ 348, 117, 109, 412, 434, 121, 499, 130, 564, 135,
+ 629, 140, 4564, 7041, 693, 7041, 697, 4538, 63, 7041,
+ 385, 4537, 56, 4549, 58, 686, 7041, 696, 703, 60,
+ 750, 780, 785, 72, 83, 124, 703, 797, 767, 825,
+ 765, 759, 769, 833, 63, 766, 848, 856, 837, 422,
+ 864, 863, 862, 846, 4536, 848, 803, 872, 4515, 7041,
+ 887, 7041, 924, 84, 897, 4546, 919, 924, 0, 930,
+ 4533, 405, 946, 908, 953, 975, 4512, 0, 7041, 4552,
+ 689, 4542, 964, 968, 1003, 964, 4528, 1065, 1130, 990,
+
+ 994, 4507, 7041, 989, 1008, 1076, 4527, 87, 1000, 0,
+ 0, 791, 1031, 1065, 1179, 1002, 4525, 1241, 1306, 1012,
+ 815, 426, 7041, 820, 1110, 899, 1104, 1159, 1369, 1128,
+ 1031, 1431, 1496, 1056, 1097, 919, 7041, 969, 1162, 1009,
+ 1217, 1275, 1559, 1299, 1148, 1621, 1686, 1156, 1181, 1040,
+ 7041, 1059, 1184, 1115, 1265, 1336, 1749, 1305, 1208, 1811,
+ 1876, 1224, 1258, 0, 7041, 4545, 897, 4535, 1253, 1355,
+ 1925, 1368, 4522, 1987, 2052, 1212, 1286, 1296, 1345, 7041,
+ 7041, 902, 7041, 0, 0, 1343, 1359, 1373, 1397, 7041,
+ 7041, 7041, 4533, 7041, 7041, 1405, 1442, 7041, 7041, 1447,
+
+ 7041, 0, 4510, 4490, 4496, 1050, 4488, 4490, 658, 4482,
+ 1143, 105, 851, 874, 4488, 727, 4491, 4482, 4504, 7041,
+ 1504, 1154, 1459, 7041, 1184, 0, 4463, 4465, 4455, 1178,
+ 907, 1291, 685, 946, 4451, 22, 4451, 4444, 1108, 7041,
+ 7041, 7041, 7041, 1251, 4479, 4478, 1405, 4493, 1524, 1532,
+ 1442, 1542, 1548, 1543, 1559, 1594, 1561, 7041, 7041, 7041,
+ 7041, 1513, 4439, 1364, 4444, 4444, 1436, 4451, 4450, 4447,
+ 1240, 4432, 4429, 1228, 1380, 1604, 7041, 1638, 4394, 1633,
+ 0, 0, 4363, 4365, 932, 828, 4407, 1643, 1468, 1665,
+ 1669, 0, 7041, 1264, 0, 0, 4401, 1656, 1697, 1703,
+
+ 4362, 4361, 1715, 1283, 1743, 0, 1518, 2099, 1389, 2146,
+ 2211, 2276, 1448, 4350, 4359, 4358, 1822, 1424, 1527, 0,
+ 1482, 0, 1660, 1828, 1754, 4357, 4356, 1884, 1390, 1777,
+ 0, 1553, 2323, 1480, 2370, 2435, 2500, 1581, 1550, 7041,
+ 1593, 1737, 1798, 1611, 1616, 1645, 1703, 1850, 2563, 1904,
+ 1680, 1717, 2003, 1735, 1917, 1725, 1892, 2607, 1945, 2654,
+ 2719, 2784, 1804, 1828, 1743, 7041, 1777, 1857, 1925, 1783,
+ 1786, 1906, 1963, 2015, 2847, 2025, 1959, 1966, 2069, 2011,
+ 2081, 1862, 2090, 2891, 1969, 2938, 3003, 3068, 1980, 2036,
+ 1974, 7041, 2017, 2127, 2133, 2039, 2076, 2101, 2120, 2162,
+
+ 3131, 2292, 2083, 2135, 2304, 2171, 2173, 2078, 2300, 3175,
+ 2193, 3222, 3287, 3352, 2199, 2204, 0, 7041, 1320, 0,
+ 0, 4393, 2308, 2381, 2386, 4354, 4353, 2500, 2087, 2340,
+ 0, 2159, 3399, 1604, 3446, 3511, 3576, 2313, 2344, 2370,
+ 2398, 2402, 2409, 2513, 0, 4368, 4348, 4352, 4348, 4345,
+ 4352, 4345, 4336, 4339, 786, 4330, 4338, 1067, 4346, 4330,
+ 4336, 4337, 4329, 4341, 4325, 4324, 4339, 4331, 4330, 7041,
+ 2517, 2106, 2522, 2529, 2312, 0, 4321, 4323, 4331, 4318,
+ 2248, 4286, 4305, 4296, 4286, 4293, 4291, 4296, 4282, 4281,
+ 4281, 4278, 4291, 4283, 4290, 1509, 4319, 7041, 7041, 4305,
+
+ 7041, 1597, 4302, 2545, 2546, 2563, 2565, 2578, 2580, 2583,
+ 2582, 2598, 4265, 4279, 4280, 4271, 4297, 7041, 2619, 0,
+ 0, 4274, 4267, 4274, 4263, 2596, 2667, 4264, 4261, 2654,
+ 2179, 2556, 2603, 2393, 3623, 1787, 4301, 1833, 3670, 3735,
+ 4253, 4191, 4188, 2505, 2676, 4189, 4186, 2784, 2317, 2682,
+ 2686, 2690, 3782, 2601, 3829, 3894, 2812, 2567, 2808, 2816,
+ 2836, 2838, 2867, 2871, 3957, 2814, 2841, 2869, 4004, 4069,
+ 2954, 2642, 2875, 3084, 2879, 2881, 2903, 2911, 4132, 3106,
+ 2893, 3114, 4179, 4244, 2963, 2914, 3086, 3137, 2968, 2977,
+ 3165, 3169, 4307, 3122, 2988, 3140, 4354, 4419, 3192, 4187,
+
+ 4184, 3077, 2338, 2693, 3179, 2974, 4466, 1852, 4224, 1920,
+ 4513, 4578, 3222, 3230, 0, 4181, 4184, 4182, 4174, 4190,
+ 4184, 4188, 4185, 4176, 4172, 0, 4179, 4179, 4181, 4165,
+ 4172, 4174, 4177, 4175, 4175, 4155, 4173, 0, 4162, 4161,
+ 4158, 4159, 4150, 4162, 4148, 4147, 4147, 7041, 4155, 4146,
+ 4149, 4136, 4127, 4119, 829, 4125, 4111, 4112, 4118, 4111,
+ 4123, 1946, 7041, 0, 4153, 7041, 2010, 7041, 0, 4141,
+ 4156, 3115, 3193, 3363, 3364, 3372, 3373, 2360, 0, 4107,
+ 4112, 4111, 4110, 1031, 3099, 3234, 3238, 4109, 4104, 2128,
+ 0, 0, 4137, 2550, 0, 0, 4643, 4141, 4708, 4097,
+
+ 2422, 4100, 4099, 1169, 1544, 3244, 3248, 4098, 4097, 3163,
+ 0, 4773, 4135, 4838, 4091, 3380, 3387, 2819, 2923, 3390,
+ 3433, 2713, 2956, 3108, 3133, 3474, 3606, 2986, 3097, 4903,
+ 3268, 4968, 4090, 3463, 3471, 3419, 3430, 3608, 3614, 3160,
+ 3178, 3270, 3273, 3616, 3621, 3188, 3275, 5033, 3277, 5098,
+ 4089, 3476, 3484, 3592, 3601, 3623, 3698, 3400, 3435, 3496,
+ 3594, 3810, 3816, 3498, 3604, 5163, 3629, 5228, 4088, 3638,
+ 3670, 4091, 4021, 2608, 0, 0, 4054, 2840, 0, 0,
+ 5293, 4058, 5358, 4014, 4004, 4009, 0, 4001, 3405, 0,
+ 4002, 4016, 3997, 4012, 0, 4004, 4003, 3999, 4011, 3993,
+
+ 4006, 3997, 3990, 3990, 2628, 4002, 4000, 7041, 4002, 7041,
+ 3997, 7041, 3999, 3996, 7041, 7041, 3985, 3987, 3991, 3976,
+ 3987, 3979, 3975, 3982, 3968, 3951, 3934, 3938, 3850, 3972,
+ 3842, 3799, 7041, 3889, 0, 0, 3835, 0, 3681, 3382,
+ 0, 0, 5423, 1124, 7041, 3877, 7041, 7041, 940, 1719,
+ 0, 0, 5488, 1292, 3646, 3695, 3656, 1096, 3705, 3708,
+ 3663, 1230, 3712, 3714, 3669, 1652, 0, 0, 3671, 2567,
+ 3822, 3821, 0, 3803, 3790, 3771, 3772, 3765, 3688, 3661,
+ 3623, 0, 3623, 3618, 3584, 3592, 0, 3571, 3576, 3565,
+ 3568, 3553, 3537, 0, 3451, 3457, 3441, 3447, 3387, 7041,
+
+ 7041, 3369, 3373, 3362, 7041, 3358, 3347, 7041, 3339, 3328,
+ 3974, 4015, 3851, 3852, 3721, 3946, 3947, 1662, 1905, 1489,
+ 1546, 1957, 2246, 1424, 1710, 1817, 1869, 2062, 2779, 2858,
+ 3678, 3312, 3819, 3317, 3224, 3215, 3157, 3166, 3161, 3118,
+ 3117, 3111, 3100, 3086, 3068, 3073, 0, 2953, 2927, 2908,
+ 2878, 2866, 2821, 2808, 2774, 7041, 2750, 2758, 2657, 2630,
+ 7041, 2561, 7041, 3959, 3975, 3725, 2381, 3079, 1349, 1753,
+ 772, 1912, 1975, 2063, 804, 1805, 1893, 2305, 3188, 3587,
+ 3650, 3681, 2549, 2531, 2507, 2495, 2480, 2456, 2456, 2373,
+ 2355, 0, 2340, 0, 2323, 2296, 2295, 2254, 0, 0,
+
+ 2219, 2163, 2137, 2114, 2090, 2076, 2037, 7041, 2035, 2023,
+ 1993, 1975, 1653, 1985, 2553, 1969, 2626, 1953, 3802, 3867,
+ 3874, 3880, 3884, 3962, 3169, 1852, 0, 1795, 1723, 1702,
+ 0, 1593, 1545, 1505, 1475, 0, 1407, 1378, 1374, 0,
+ 1356, 1291, 0, 7041, 1279, 1245, 7041, 7041, 7041, 7041,
+ 1211, 7041, 0, 3845, 3968, 3970, 0, 1197, 1163, 1156,
+ 1115, 0, 1069, 1045, 1036, 0, 0, 1015, 0, 7041,
+ 912, 900, 0, 776, 675, 0, 367, 356, 61, 0,
+ 7041, 7041, 23, 0, 0, 0, 0, 0, 7041, 5553,
+ 5559, 5569, 5577, 5581, 5589, 5596, 5607, 5618, 5629, 5640,
+
+ 5647, 5658, 5669, 5680, 5691, 5702, 5713, 5724, 5735, 5746,
+ 5757, 5768, 5779, 5790, 5801, 5812, 5823, 5834, 5845, 5856,
+ 5862, 5872, 5878, 5884, 5889, 5897, 5906, 5912, 5916, 5922,
+ 5929, 5940, 5951, 5962, 5973, 5984, 5995, 6006, 6017, 6028,
+ 6039, 6050, 6061, 6072, 6083, 6094, 6105, 6116, 6127, 6138,
+ 6149, 6160, 6171, 6182, 6188, 6193, 6199, 6208, 6219, 6230,
+ 6237, 6245, 6251, 6257, 6263, 6270, 6281, 6292, 6303, 6314,
+ 6325, 6332, 6343, 6354, 6365, 6376, 6387, 6398, 6409, 6420,
+ 6431, 6442, 6453, 6464, 6475, 6486, 6497, 6508, 6519, 6530,
+ 6541, 6552, 6563, 6574, 6585, 6591, 6602, 6613, 6624, 6631,
+
+ 6639, 6645, 6651, 6658, 6669, 6680, 6691, 6702, 6713, 6720,
+ 6731, 6742, 6753, 6764, 6775, 6786, 6797, 6808, 6819, 6830,
+ 6841, 6852, 6863, 6874, 6885, 6896, 6907, 6918, 6929, 6940,
+ 6951, 6962, 6973, 6979, 6987, 6993, 7000, 7011, 7018, 7029
} ;
-static yyconst flex_int16_t yy_def[1213] =
+static yyconst flex_int16_t yy_def[1241] =
{ 0,
- 1061, 1, 1, 3, 1061, 5, 1061, 7, 1061, 9,
- 1061, 11, 9, 9, 1061, 15, 1061, 17, 1061, 19,
- 1061, 21, 1061, 1061, 1061, 1061, 1061, 1061, 1062, 1061,
- 1063, 1061, 1061, 1064, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1065, 1065, 1065, 1065,
- 1065, 1065, 1065, 1065, 1061, 1061, 1061, 1061, 1061, 1061,
- 39, 1061, 1061, 1065, 1061, 1061, 1061, 1061, 1061, 1062,
- 1066, 1064, 1061, 1067, 41, 1061, 1061, 1068, 1068, 1068,
- 1061, 1061, 1061, 1069, 1061, 1069, 1070, 1071, 1069, 1069,
- 1069, 91, 1069, 1072, 1072, 1069, 1061, 1061, 41, 1061,
-
- 1073, 1073, 1074, 1074, 1075, 1074, 1074, 1074, 108, 1074,
- 1076, 1076, 1062, 1077, 1061, 1077, 1078, 1079, 1077, 1077,
- 1077, 121, 1077, 1080, 1080, 1081, 1061, 1081, 1082, 1083,
- 1081, 1081, 1081, 133, 1081, 1084, 1084, 1085, 1061, 1085,
- 1086, 1087, 1085, 1085, 1085, 145, 1085, 1088, 1088, 1089,
- 1061, 1089, 1090, 1091, 1089, 1089, 1089, 157, 1089, 1092,
- 1092, 1061, 1061, 1061, 1061, 1062, 1061, 1062, 1093, 1093,
- 1093, 1093, 1093, 1061, 1061, 1061, 1094, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1095, 1095, 1095, 1095, 1095,
- 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
-
- 1095, 1095, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1096,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1097,
- 1098, 1099, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098,
- 1098, 1061, 1061, 1061, 1061, 1061, 1061, 1095, 1095, 1095,
- 1095, 1095, 1095, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1100, 1100, 1101, 1102, 1102, 1102, 1102, 1103, 1099, 1103,
- 1103, 1061, 1061, 1104, 1061, 1105, 1104, 1105, 1106, 1104,
- 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104,
- 1104, 1107, 1061, 1107, 1104, 1061, 1061, 1061, 1097, 1108,
-
- 1109, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
- 1108, 1108, 1108, 1108, 1110, 1061, 1110, 1111, 1061, 1111,
- 1112, 1112, 1111, 1112, 1113, 1113, 1111, 1111, 1111, 1111,
- 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1114, 1061,
- 1114, 1115, 1061, 1115, 1116, 1116, 1115, 1116, 1117, 1117,
- 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
- 1115, 1115, 1118, 1061, 1118, 1119, 1061, 1119, 1120, 1120,
- 1119, 1120, 1121, 1121, 1119, 1119, 1119, 1119, 1119, 1119,
- 1119, 1119, 1119, 1119, 1119, 1119, 1122, 1061, 1122, 1123,
- 1061, 1124, 1123, 1124, 1125, 1123, 1123, 1123, 1123, 1123,
-
- 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1126, 1061, 1126,
- 1061, 1127, 1127, 1127, 1127, 1061, 1128, 1128, 1128, 1128,
- 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
- 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
- 1128, 1061, 1061, 1061, 1061, 1061, 1061, 1129, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1130, 1131, 1061,
- 1061, 1061, 1061, 1132, 1133, 1134, 1134, 1134, 1134, 1134,
- 1134, 1134, 1134, 1134, 1061, 1128, 1128, 1061, 1135, 1061,
- 1135, 1136, 1137, 1137, 1137, 1137, 1137, 1138, 1139, 1139,
-
- 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1140, 1141, 1142,
- 1143, 1061, 1139, 1061, 1061, 1144, 1145, 1145, 1145, 1145,
- 1145, 1145, 1145, 1145, 1145, 1146, 1147, 1061, 1148, 1148,
- 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1149, 1150, 1151,
- 1152, 1061, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1154, 1155, 1156, 1157, 1061, 1158, 1158, 1158, 1158,
- 1158, 1158, 1158, 1158, 1158, 1159, 1160, 1161, 1162, 1061,
- 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1164,
- 1165, 1166, 1167, 1061, 1061, 1061, 1168, 1168, 1168, 1168,
- 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168,
-
- 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168,
- 1168, 1168, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1169, 1061, 1169, 1170, 1061, 1171, 1061,
- 1171, 1172, 1061, 1173, 1173, 1173, 1173, 1173, 1173, 1061,
- 1174, 1175, 1175, 1175, 1175, 1176, 1176, 1177, 1177, 1177,
- 1177, 1178, 1177, 1178, 1179, 1180, 1177, 1180, 1181, 1177,
- 1061, 671, 1177, 1061, 1061, 1182, 1182, 1183, 1183, 1183,
- 1183, 1184, 1183, 1185, 1183, 1061, 686, 1186, 1186, 1186,
- 1186, 1187, 1187, 1186, 1187, 1188, 1188, 1189, 1189, 1186,
-
- 1189, 1190, 1186, 1061, 704, 1191, 1191, 1191, 1191, 1192,
- 1192, 1191, 1192, 1193, 1193, 1194, 1194, 1191, 1194, 1195,
- 1191, 1061, 722, 1196, 1196, 1196, 1196, 1197, 1197, 1196,
- 1197, 1198, 1198, 1199, 1199, 1196, 1199, 1200, 1196, 1061,
- 740, 1201, 1201, 1201, 1201, 1202, 1201, 1202, 1203, 1204,
- 1201, 1204, 1205, 1201, 1061, 755, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-
- 1207, 1207, 1207, 1207, 1061, 1061, 1208, 1208, 1208, 1208,
- 1209, 1209, 1210, 1210, 1061, 815, 1061, 1210, 1061, 1061,
- 1211, 1211, 1212, 1212, 1061, 825, 1186, 1186, 704, 704,
- 1191, 1191, 722, 722, 1196, 1196, 740, 740, 1201, 1201,
- 755, 755, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1207, 1207, 1207, 1207, 1208, 1209, 1209, 815,
- 815, 1211, 1211, 825, 825, 704, 704, 722, 722, 740,
-
- 740, 755, 755, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1207, 1207, 1061, 1209, 1209,
- 815, 815, 1211, 1211, 825, 825, 704, 704, 722, 722,
- 740, 740, 755, 755, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1210, 1210, 1212, 1212,
- 1186, 1186, 1191, 1191, 1196, 1196, 1201, 1201, 1206, 1206,
-
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1210, 1186, 1191, 1196, 1201, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1061, 1061, 1061, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1061, 1061, 1206, 1206, 1206, 1206, 1206, 1206,
- 0, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061
+ 1089, 1, 1, 3, 1089, 5, 1089, 7, 1089, 9,
+ 1089, 11, 9, 9, 1089, 15, 1089, 17, 1089, 19,
+ 1089, 21, 1089, 1089, 1089, 1089, 1089, 1089, 1090, 1089,
+ 1091, 1089, 1089, 1092, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 39, 1089, 1089, 1093, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1090, 1094, 1092, 1089, 1095, 41, 1089,
+ 1089, 1096, 1096, 1096, 1089, 1089, 1089, 1097, 1089, 1097,
+ 1098, 1099, 1097, 1097, 1097, 95, 1097, 1100, 1100, 1097,
+
+ 1097, 1097, 1089, 1089, 41, 1089, 1101, 1101, 1089, 1102,
+ 1102, 1103, 1102, 1102, 1102, 115, 1102, 1104, 1104, 1102,
+ 1090, 1105, 1089, 1105, 1106, 1107, 1105, 1105, 1105, 129,
+ 1105, 1108, 1108, 1105, 1105, 1109, 1089, 1109, 1110, 1111,
+ 1109, 1109, 1109, 143, 1109, 1112, 1112, 1109, 1109, 1113,
+ 1089, 1113, 1114, 1115, 1113, 1113, 1113, 157, 1113, 1116,
+ 1116, 1113, 1113, 1117, 1089, 1117, 1118, 1119, 1117, 1117,
+ 1117, 171, 1117, 1120, 1120, 1117, 1117, 1089, 1089, 1089,
+ 1089, 1090, 1089, 1090, 1121, 1121, 1121, 1121, 1121, 1089,
+ 1089, 1089, 1122, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+
+ 1089, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
+ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1124, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1125, 1126, 1127, 1126, 1126,
+ 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1123, 1123, 1123, 1123, 1123, 1123,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1128, 1128,
+ 1129, 1130, 1130, 1130, 1130, 1131, 1127, 1131, 1131, 1089,
+ 1089, 1132, 1089, 1133, 1132, 1133, 1134, 1132, 1132, 1132,
+
+ 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1135,
+ 1089, 1135, 1132, 1132, 1089, 1089, 1089, 1125, 1089, 1136,
+ 1137, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136,
+ 1136, 1136, 1136, 1136, 1138, 1089, 1138, 1136, 1139, 1089,
+ 1139, 1140, 1140, 1139, 1140, 1141, 1141, 1139, 1139, 1139,
+ 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1142,
+ 1089, 1142, 1139, 1139, 1143, 1089, 1143, 1144, 1144, 1143,
+ 1144, 1145, 1145, 1143, 1143, 1143, 1143, 1143, 1143, 1143,
+ 1143, 1143, 1143, 1143, 1143, 1146, 1089, 1146, 1143, 1143,
+ 1147, 1089, 1147, 1148, 1148, 1147, 1148, 1149, 1149, 1147,
+
+ 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147,
+ 1147, 1150, 1089, 1150, 1147, 1147, 1151, 1089, 1152, 1151,
+ 1152, 1153, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
+ 1151, 1151, 1151, 1151, 1154, 1089, 1154, 1151, 1089, 1155,
+ 1155, 1155, 1155, 1089, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1157, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1158, 1159, 1089, 1089, 1089,
+
+ 1089, 1160, 1161, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
+ 1162, 1162, 1089, 1156, 1156, 1089, 1163, 1089, 1163, 1164,
+ 1165, 1165, 1165, 1165, 1165, 1166, 1167, 1167, 1167, 1167,
+ 1167, 1167, 1167, 1167, 1167, 1168, 1169, 1170, 1171, 1089,
+ 1167, 1089, 1089, 1172, 1173, 1173, 1173, 1173, 1173, 1173,
+ 1173, 1173, 1173, 1174, 1175, 1089, 1176, 1176, 1176, 1176,
+ 1176, 1176, 1176, 1176, 1176, 1177, 1178, 1179, 1180, 1089,
+ 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1182,
+ 1183, 1184, 1185, 1089, 1186, 1186, 1186, 1186, 1186, 1186,
+ 1186, 1186, 1186, 1187, 1188, 1189, 1190, 1089, 1191, 1191,
+
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1192, 1193, 1194,
+ 1195, 1089, 1089, 1089, 1196, 1196, 1196, 1196, 1196, 1196,
+ 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+ 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1197, 1089, 1197, 1198, 1089, 1199, 1089, 1199, 1200,
+ 1089, 1201, 1201, 1201, 1201, 1201, 1201, 1089, 1202, 1203,
+ 1203, 1203, 1203, 1204, 1204, 1205, 1205, 1205, 1205, 1206,
+ 1205, 1206, 1207, 1208, 1205, 1208, 1209, 1205, 1089, 699,
+
+ 1205, 1089, 1089, 1210, 1210, 1211, 1211, 1211, 1211, 1212,
+ 1211, 1213, 1211, 1089, 714, 1214, 1214, 1214, 1214, 1215,
+ 1215, 1214, 1215, 1216, 1216, 1217, 1217, 1214, 1217, 1218,
+ 1214, 1089, 732, 1219, 1219, 1219, 1219, 1220, 1220, 1219,
+ 1220, 1221, 1221, 1222, 1222, 1219, 1222, 1223, 1219, 1089,
+ 750, 1224, 1224, 1224, 1224, 1225, 1225, 1224, 1225, 1226,
+ 1226, 1227, 1227, 1224, 1227, 1228, 1224, 1089, 768, 1229,
+ 1229, 1229, 1229, 1230, 1229, 1230, 1231, 1232, 1229, 1232,
+ 1233, 1229, 1089, 783, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1235, 1235,
+ 1235, 1235, 1089, 1089, 1236, 1236, 1236, 1236, 1237, 1237,
+ 1238, 1238, 1089, 843, 1089, 1238, 1089, 1089, 1239, 1239,
+ 1240, 1240, 1089, 853, 1214, 1214, 732, 732, 1219, 1219,
+ 750, 750, 1224, 1224, 768, 768, 1229, 1229, 783, 783,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1089, 1089, 1089, 1089, 1089, 1089,
+
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1235, 1235, 1235, 1235, 1236, 1237, 1237, 843, 843, 1239,
+ 1239, 853, 853, 732, 732, 750, 750, 768, 768, 783,
+ 783, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1235, 1235, 1089, 1237, 1237, 843, 843,
+ 1239, 1239, 853, 853, 732, 732, 750, 750, 768, 768,
+ 783, 783, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+
+ 1234, 1234, 1234, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1238, 1238, 1240, 1240, 1214, 1214,
+ 1219, 1219, 1224, 1224, 1229, 1229, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1238, 1214, 1219, 1224, 1229, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1089,
+ 1089, 1089, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1089, 1089, 1234, 1234, 1234, 1234, 1234, 1234, 0, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089
} ;
-static yyconst flex_int16_t yy_nxt[7046] =
+static yyconst flex_int16_t yy_nxt[7107] =
{ 0,
24, 25, 26, 27, 25, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
@@ -833,778 +839,785 @@
47, 47, 48, 47, 48, 47, 48, 48, 47, 24,
47, 47, 47, 47, 47, 47, 47, 49, 47, 50,
47, 47, 51, 47, 52, 47, 47, 53, 47, 54,
- 47, 47, 47, 55, 56, 58, 464, 59, 58, 24,
- 167, 223, 224, 24, 24, 465, 24, 60, 113, 60,
- 61, 24, 81, 113, 82, 81, 62, 63, 24, 24,
- 41, 42, 42, 42, 178, 41, 42, 42, 42, 162,
-
- 431, 162, 162, 168, 432, 83, 179, 162, 164, 162,
- 162, 47, 175, 47, 163, 170, 47, 171, 47, 172,
- 173, 64, 163, 47, 225, 226, 176, 24, 24, 66,
- 67, 68, 69, 67, 66, 70, 66, 71, 66, 66,
- 72, 66, 73, 66, 73, 74, 66, 75, 76, 76,
- 76, 66, 77, 66, 66, 78, 78, 78, 78, 78,
- 78, 79, 78, 79, 78, 79, 79, 78, 66, 78,
- 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
- 78, 78, 78, 78, 78, 78, 80, 78, 78, 78,
- 78, 78, 66, 66, 84, 84, 85, 86, 84, 84,
-
- 87, 84, 84, 84, 84, 88, 84, 89, 84, 89,
- 90, 84, 91, 92, 92, 92, 84, 93, 84, 84,
- 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
- 94, 94, 94, 84, 94, 94, 94, 94, 94, 94,
- 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
- 94, 95, 94, 94, 94, 94, 94, 84, 84, 24,
- 24, 97, 24, 24, 24, 29, 24, 24, 24, 24,
- 34, 24, 60, 24, 60, 98, 24, 99, 100, 100,
- 100, 24, 63, 24, 24, 101, 101, 101, 101, 101,
- 101, 101, 101, 101, 101, 101, 101, 101, 24, 101,
-
- 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
- 101, 101, 101, 101, 101, 101, 102, 101, 101, 101,
- 101, 101, 24, 24, 103, 103, 104, 103, 103, 103,
- 29, 103, 103, 103, 103, 105, 103, 106, 103, 106,
- 107, 103, 108, 109, 109, 109, 103, 110, 103, 103,
- 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
- 111, 111, 111, 103, 111, 111, 111, 111, 111, 111,
- 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
- 111, 112, 111, 111, 111, 111, 111, 103, 103, 114,
- 114, 115, 116, 114, 114, 117, 114, 114, 114, 114,
-
- 118, 114, 119, 114, 119, 120, 114, 121, 122, 122,
- 122, 114, 123, 114, 114, 124, 124, 124, 124, 124,
- 124, 124, 124, 124, 124, 124, 124, 124, 114, 124,
- 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
- 124, 124, 124, 124, 124, 124, 125, 124, 124, 124,
- 124, 124, 114, 114, 126, 126, 127, 128, 126, 126,
- 129, 126, 126, 126, 126, 130, 126, 131, 126, 131,
- 132, 126, 133, 134, 134, 134, 126, 135, 126, 126,
- 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
- 136, 136, 136, 126, 136, 136, 136, 136, 136, 136,
-
- 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
- 136, 137, 136, 136, 136, 136, 136, 126, 126, 138,
- 138, 139, 140, 138, 138, 141, 138, 138, 138, 138,
- 142, 138, 143, 138, 143, 144, 138, 145, 146, 146,
- 146, 138, 147, 138, 138, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 138, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 149, 148, 148, 148,
- 148, 148, 138, 138, 150, 150, 151, 152, 150, 150,
+ 47, 47, 47, 55, 56, 57, 191, 58, 57, 183,
+ 194, 67, 492, 68, 67, 1088, 85, 219, 86, 85,
+ 192, 493, 195, 100, 220, 101, 100, 258, 59, 60,
+ 183, 61, 60, 24, 69, 239, 240, 24, 24, 87,
+
+ 24, 62, 184, 62, 63, 24, 102, 241, 242, 287,
+ 64, 65, 24, 24, 109, 121, 109, 109, 120, 1087,
+ 120, 120, 134, 184, 135, 134, 259, 41, 42, 42,
+ 42, 148, 318, 149, 148, 47, 162, 47, 163, 162,
+ 47, 176, 47, 177, 176, 66, 459, 47, 243, 244,
+ 460, 24, 24, 70, 71, 72, 73, 71, 70, 74,
+ 70, 75, 70, 70, 76, 70, 77, 70, 77, 78,
+ 70, 79, 80, 80, 80, 70, 81, 70, 70, 82,
+ 82, 82, 82, 82, 82, 83, 82, 83, 82, 83,
+ 83, 82, 70, 82, 82, 82, 82, 82, 82, 82,
+
+ 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
+ 84, 82, 82, 82, 82, 82, 70, 70, 88, 88,
+ 89, 90, 88, 88, 91, 88, 88, 88, 88, 92,
+ 88, 93, 88, 93, 94, 88, 95, 96, 96, 96,
+ 88, 97, 88, 88, 98, 98, 98, 98, 98, 98,
+ 98, 98, 98, 98, 98, 98, 98, 88, 98, 98,
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
+ 98, 98, 98, 98, 98, 99, 98, 98, 98, 98,
+ 98, 88, 88, 24, 24, 103, 24, 24, 24, 29,
+ 24, 24, 24, 24, 34, 24, 62, 24, 62, 104,
+
+ 24, 105, 106, 106, 106, 24, 65, 24, 24, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 24, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 108, 107, 107, 107, 107, 107, 24, 24, 110, 110,
+ 111, 110, 110, 110, 29, 110, 110, 110, 110, 112,
+ 110, 113, 110, 113, 114, 110, 115, 116, 116, 116,
+ 110, 117, 110, 110, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 110, 118, 118,
+ 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
+
+ 118, 118, 118, 118, 118, 119, 118, 118, 118, 118,
+ 118, 110, 110, 109, 1086, 109, 109, 186, 121, 187,
+ 246, 188, 189, 264, 1085, 264, 264, 287, 340, 341,
+ 41, 42, 42, 42, 122, 122, 123, 124, 122, 122,
+ 125, 122, 122, 122, 122, 126, 122, 127, 122, 127,
+ 128, 122, 129, 130, 130, 130, 122, 131, 122, 122,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 122, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 133, 132, 132, 132, 132, 132, 122, 122, 136,
+
+ 136, 137, 138, 136, 136, 139, 136, 136, 136, 136,
+ 140, 136, 141, 136, 141, 142, 136, 143, 144, 144,
+ 144, 136, 145, 136, 136, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146, 136, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 147, 146, 146, 146,
+ 146, 146, 136, 136, 150, 150, 151, 152, 150, 150,
153, 150, 150, 150, 150, 154, 150, 155, 150, 155,
-
156, 150, 157, 158, 158, 158, 150, 159, 150, 150,
160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+
160, 160, 160, 150, 160, 160, 160, 160, 160, 160,
160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 161, 160, 160, 160, 160, 160, 150, 150, 180,
- 1060, 181, 181, 181, 181, 203, 180, 182, 181, 181,
- 181, 181, 204, 269, 183, 184, 184, 184, 184, 227,
- 228, 185, 1059, 186, 186, 186, 186, 186, 187, 186,
- 186, 186, 186, 186, 186, 186, 299, 186, 188, 189,
- 190, 186, 191, 192, 193, 186, 194, 195, 196, 197,
-
- 186, 198, 186, 199, 200, 201, 186, 186, 186, 202,
- 205, 229, 181, 181, 181, 181, 438, 229, 230, 229,
- 1058, 167, 206, 207, 230, 232, 230, 208, 242, 209,
- 439, 232, 210, 232, 244, 247, 206, 247, 247, 207,
- 205, 230, 181, 181, 181, 181, 269, 209, 269, 229,
- 433, 229, 434, 207, 168, 210, 230, 208, 230, 233,
- 233, 233, 233, 232, 234, 232, 425, 243, 237, 207,
- 211, 426, 212, 821, 245, 213, 1057, 229, 214, 215,
- 216, 217, 218, 219, 230, 229, 220, 269, 221, 222,
- 229, 232, 230, 461, 238, 225, 226, 230, 462, 232,
-
- 247, 164, 247, 247, 232, 180, 229, 181, 181, 181,
- 181, 1056, 230, 230, 246, 235, 277, 893, 211, 269,
- 232, 236, 239, 319, 320, 167, 254, 215, 216, 255,
- 256, 219, 319, 320, 241, 240, 1061, 222, 258, 259,
- 260, 258, 271, 239, 258, 259, 260, 258, 262, 278,
- 262, 459, 262, 262, 186, 248, 300, 186, 168, 186,
- 177, 249, 250, 251, 252, 302, 253, 460, 186, 186,
- 186, 263, 1055, 180, 186, 181, 181, 181, 181, 343,
- 344, 184, 184, 184, 184, 205, 1054, 181, 181, 181,
- 181, 272, 259, 273, 272, 343, 344, 435, 207, 436,
-
- 230, 793, 208, 270, 270, 270, 270, 269, 265, 266,
- 794, 319, 326, 267, 207, 272, 259, 273, 272, 280,
- 323, 281, 281, 281, 281, 282, 282, 282, 282, 319,
- 320, 274, 298, 298, 298, 298, 319, 322, 274, 393,
- 323, 274, 343, 350, 1053, 274, 184, 184, 184, 184,
- 338, 347, 167, 283, 367, 368, 274, 284, 285, 1052,
- 281, 281, 281, 281, 274, 305, 305, 305, 305, 300,
- 286, 287, 394, 324, 296, 288, 300, 289, 297, 300,
- 290, 367, 368, 300, 286, 168, 303, 287, 304, 304,
- 304, 304, 428, 306, 300, 289, 429, 307, 343, 344,
-
- 430, 468, 300, 290, 274, 274, 469, 274, 274, 274,
- 274, 274, 274, 274, 274, 274, 274, 274, 274, 362,
- 274, 274, 454, 319, 320, 230, 293, 274, 274, 274,
- 455, 205, 269, 298, 298, 298, 298, 327, 277, 328,
- 328, 328, 328, 274, 207, 343, 344, 456, 208, 367,
- 374, 457, 343, 346, 421, 600, 347, 601, 371, 351,
- 207, 352, 352, 352, 352, 458, 422, 274, 274, 274,
- 274, 278, 274, 274, 274, 274, 274, 274, 274, 274,
- 274, 274, 274, 274, 1051, 274, 274, 319, 320, 348,
- 496, 293, 274, 274, 274, 367, 368, 411, 497, 411,
-
- 411, 343, 344, 329, 329, 329, 329, 396, 274, 397,
- 397, 397, 397, 596, 294, 318, 386, 353, 353, 353,
- 353, 269, 318, 444, 444, 318, 447, 447, 447, 318,
- 597, 330, 274, 274, 308, 331, 304, 304, 304, 304,
- 318, 398, 398, 398, 398, 354, 309, 310, 318, 355,
- 269, 311, 162, 312, 162, 162, 313, 516, 367, 370,
- 309, 508, 371, 310, 452, 453, 509, 163, 292, 399,
- 891, 312, 1050, 400, 412, 412, 412, 412, 892, 313,
- 300, 300, 300, 300, 300, 300, 1049, 300, 300, 300,
- 300, 300, 300, 300, 300, 372, 300, 300, 393, 342,
-
- 471, 472, 316, 300, 300, 300, 342, 635, 366, 342,
- 1048, 367, 368, 342, 247, 366, 247, 247, 366, 300,
- 339, 468, 366, 897, 342, 375, 469, 376, 376, 376,
- 376, 394, 342, 366, 413, 413, 413, 413, 947, 470,
- 636, 366, 339, 300, 300, 300, 300, 300, 300, 300,
- 300, 1047, 300, 300, 300, 300, 300, 300, 300, 300,
- 363, 300, 300, 899, 390, 452, 488, 316, 300, 300,
- 300, 390, 503, 503, 390, 367, 368, 1046, 390, 414,
- 414, 414, 414, 1045, 300, 415, 415, 415, 415, 390,
- 317, 377, 377, 377, 377, 521, 521, 390, 184, 184,
-
- 184, 184, 468, 184, 184, 184, 184, 526, 300, 300,
- 319, 320, 428, 300, 416, 387, 429, 177, 901, 378,
- 487, 269, 302, 379, 332, 1044, 328, 328, 328, 328,
- 416, 443, 443, 443, 443, 1043, 333, 334, 229, 319,
- 320, 335, 416, 336, 943, 230, 337, 319, 320, 445,
- 333, 445, 232, 334, 446, 446, 446, 446, 416, 319,
- 320, 336, 258, 259, 260, 258, 506, 506, 506, 337,
- 318, 318, 319, 320, 318, 318, 318, 318, 318, 318,
- 318, 318, 318, 318, 318, 408, 318, 318, 903, 229,
- 319, 322, 340, 318, 318, 318, 230, 205, 269, 181,
-
- 181, 181, 181, 232, 987, 229, 229, 319, 320, 318,
- 207, 1042, 230, 230, 208, 476, 476, 476, 476, 232,
- 232, 258, 259, 260, 258, 822, 207, 491, 491, 491,
- 491, 490, 1041, 318, 318, 318, 318, 319, 320, 318,
- 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
- 292, 318, 318, 1040, 229, 229, 477, 340, 318, 318,
- 318, 230, 230, 229, 229, 229, 230, 988, 232, 232,
- 230, 230, 230, 269, 318, 343, 344, 232, 232, 232,
- 341, 229, 272, 259, 273, 272, 343, 344, 230, 1039,
- 481, 272, 259, 273, 272, 232, 343, 344, 318, 318,
-
- 343, 344, 319, 326, 478, 479, 480, 343, 346, 498,
- 1038, 323, 483, 292, 356, 482, 352, 352, 352, 352,
- 524, 524, 524, 484, 343, 344, 357, 358, 319, 326,
- 315, 359, 895, 360, 367, 368, 361, 323, 319, 322,
- 357, 230, 323, 358, 270, 270, 270, 270, 269, 343,
- 350, 360, 282, 282, 282, 282, 367, 368, 347, 361,
- 342, 342, 343, 344, 342, 342, 342, 342, 342, 342,
- 342, 342, 342, 342, 342, 324, 342, 342, 305, 305,
- 305, 305, 364, 342, 342, 342, 1037, 285, 580, 281,
- 281, 281, 281, 581, 282, 282, 282, 282, 948, 342,
-
- 287, 504, 339, 504, 288, 499, 505, 505, 505, 505,
- 367, 368, 522, 985, 522, 1024, 287, 523, 523, 523,
- 523, 499, 1036, 342, 342, 342, 342, 343, 344, 342,
- 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
- 269, 342, 342, 367, 370, 319, 320, 364, 342, 342,
- 342, 502, 502, 502, 502, 205, 941, 298, 298, 298,
- 298, 292, 499, 944, 342, 319, 320, 949, 207, 269,
- 365, 363, 208, 319, 322, 343, 344, 323, 499, 319,
- 320, 367, 368, 1035, 207, 343, 350, 640, 342, 342,
- 367, 368, 530, 676, 347, 533, 533, 677, 308, 1034,
-
- 304, 304, 304, 304, 380, 1033, 376, 376, 376, 376,
- 324, 310, 531, 575, 575, 311, 381, 382, 319, 320,
- 641, 383, 544, 384, 444, 444, 385, 310, 319, 320,
- 381, 343, 344, 382, 329, 329, 329, 329, 319, 320,
- 1032, 384, 538, 942, 536, 536, 536, 539, 292, 385,
- 366, 366, 367, 368, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 1031, 366, 366, 305, 305,
- 305, 305, 388, 366, 366, 366, 617, 1030, 545, 517,
- 520, 520, 520, 520, 618, 319, 320, 619, 950, 366,
- 998, 517, 363, 343, 346, 517, 534, 347, 534, 367,
-
- 374, 535, 535, 535, 535, 343, 346, 517, 371, 347,
- 367, 368, 990, 366, 366, 366, 366, 367, 368, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 348, 366, 366, 988, 319, 320, 230, 388, 366, 366,
- 366, 986, 348, 269, 367, 370, 319, 320, 371, 1023,
- 329, 329, 329, 329, 366, 343, 344, 558, 343, 344,
- 389, 529, 532, 532, 532, 532, 503, 503, 367, 368,
- 811, 547, 547, 529, 550, 550, 550, 529, 366, 366,
- 401, 372, 397, 397, 397, 397, 951, 343, 344, 529,
- 387, 552, 402, 403, 343, 344, 553, 404, 411, 405,
-
- 411, 411, 406, 343, 344, 1022, 402, 367, 368, 403,
- 353, 353, 353, 353, 548, 559, 548, 405, 1021, 549,
- 549, 549, 549, 561, 561, 406, 390, 390, 1020, 390,
- 390, 390, 390, 390, 390, 390, 390, 390, 390, 390,
- 390, 991, 390, 390, 343, 344, 367, 374, 409, 390,
- 390, 390, 578, 578, 578, 371, 521, 521, 367, 368,
- 353, 353, 353, 353, 952, 390, 343, 344, 387, 367,
- 370, 543, 1019, 371, 377, 377, 377, 377, 398, 398,
- 398, 398, 546, 546, 546, 546, 339, 543, 663, 390,
- 390, 390, 390, 543, 390, 390, 390, 390, 390, 390,
-
- 390, 390, 390, 390, 390, 390, 372, 390, 390, 543,
- 367, 368, 1018, 409, 390, 390, 390, 412, 412, 412,
- 412, 664, 367, 368, 575, 575, 377, 377, 377, 377,
- 390, 805, 806, 367, 368, 1017, 410, 557, 564, 564,
- 564, 413, 413, 413, 413, 414, 414, 414, 414, 560,
- 560, 560, 560, 557, 390, 390, 507, 507, 507, 507,
- 557, 415, 415, 415, 415, 507, 507, 507, 367, 368,
- 319, 320, 566, 447, 447, 447, 557, 567, 1016, 507,
- 507, 507, 507, 507, 507, 274, 274, 1015, 274, 274,
- 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
-
- 667, 274, 274, 367, 368, 747, 1014, 293, 274, 274,
- 274, 506, 506, 506, 562, 987, 562, 1025, 690, 563,
- 563, 563, 563, 401, 274, 397, 397, 397, 397, 446,
- 446, 446, 446, 668, 817, 818, 403, 576, 748, 576,
- 404, 1013, 577, 577, 577, 577, 319, 320, 274, 274,
- 274, 274, 403, 274, 274, 274, 510, 274, 274, 274,
- 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
- 274, 274, 274, 274, 274, 274, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 274,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
-
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 274, 274, 274, 274, 1012, 274, 274,
- 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
- 1011, 274, 274, 398, 398, 398, 398, 293, 274, 274,
- 274, 524, 524, 524, 571, 574, 574, 574, 574, 1010,
- 443, 443, 443, 443, 274, 1009, 571, 585, 985, 585,
- 571, 416, 586, 586, 586, 586, 446, 446, 446, 446,
- 319, 693, 571, 512, 319, 320, 269, 416, 274, 274,
- 525, 525, 525, 525, 1008, 229, 229, 229, 229, 525,
- 525, 525, 230, 230, 230, 230, 1007, 343, 344, 232,
-
- 232, 232, 232, 525, 525, 525, 525, 525, 525, 300,
- 300, 300, 300, 300, 300, 1006, 300, 300, 300, 300,
- 300, 300, 300, 300, 691, 300, 300, 1005, 229, 645,
- 229, 316, 300, 300, 300, 230, 1004, 230, 505, 505,
- 505, 505, 232, 1003, 232, 708, 319, 697, 300, 491,
- 491, 491, 491, 490, 658, 694, 658, 319, 320, 659,
- 659, 659, 659, 505, 505, 505, 505, 523, 523, 523,
- 523, 648, 300, 300, 300, 300, 300, 300, 300, 300,
- 474, 300, 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 300, 300, 300, 300, 300,
-
- 527, 527, 527, 527, 527, 527, 527, 527, 527, 527,
- 527, 527, 527, 300, 527, 527, 527, 527, 527, 527,
- 527, 527, 527, 527, 527, 527, 527, 527, 527, 527,
- 527, 527, 527, 527, 527, 527, 527, 300, 300, 300,
- 300, 300, 300, 300, 300, 1002, 300, 300, 300, 300,
- 300, 300, 300, 300, 1001, 300, 300, 319, 699, 229,
- 230, 316, 300, 300, 300, 229, 230, 269, 1000, 229,
- 953, 300, 230, 232, 408, 637, 230, 999, 300, 232,
- 683, 367, 368, 232, 319, 320, 751, 502, 502, 502,
- 502, 656, 578, 578, 578, 657, 649, 528, 499, 230,
-
- 533, 533, 300, 300, 319, 320, 269, 646, 319, 693,
- 644, 647, 694, 635, 499, 343, 715, 640, 332, 752,
- 328, 328, 328, 328, 712, 520, 520, 520, 520, 726,
- 663, 334, 678, 812, 678, 335, 517, 679, 679, 679,
- 679, 523, 523, 523, 523, 695, 636, 334, 319, 320,
- 641, 984, 517, 319, 320, 343, 344, 945, 343, 344,
- 319, 320, 315, 664, 537, 537, 537, 537, 989, 535,
- 535, 535, 535, 537, 537, 537, 535, 535, 535, 535,
- 667, 367, 368, 577, 577, 577, 577, 537, 537, 537,
- 537, 537, 537, 318, 318, 319, 320, 318, 318, 318,
-
- 318, 318, 318, 318, 318, 318, 318, 318, 709, 318,
- 318, 319, 320, 668, 315, 340, 318, 318, 318, 319,
- 320, 989, 688, 1024, 688, 343, 344, 689, 689, 689,
- 689, 727, 318, 343, 344, 536, 536, 536, 367, 368,
- 946, 547, 547, 983, 706, 315, 706, 343, 711, 707,
- 707, 707, 707, 982, 561, 561, 318, 318, 318, 318,
- 319, 320, 318, 318, 540, 318, 318, 318, 318, 318,
- 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
- 318, 318, 318, 318, 541, 541, 541, 541, 541, 541,
- 541, 541, 541, 541, 541, 541, 541, 318, 541, 541,
-
- 541, 541, 541, 541, 541, 541, 541, 541, 541, 541,
- 541, 541, 541, 541, 541, 541, 541, 541, 541, 541,
- 541, 318, 318, 318, 318, 319, 320, 318, 318, 318,
- 318, 318, 318, 318, 318, 318, 318, 318, 981, 318,
- 318, 319, 320, 367, 733, 340, 318, 318, 318, 343,
- 344, 980, 730, 343, 344, 343, 717, 532, 532, 532,
- 532, 979, 318, 319, 699, 367, 368, 700, 529, 546,
- 546, 546, 546, 978, 343, 344, 577, 577, 577, 577,
- 543, 542, 367, 729, 529, 747, 318, 318, 343, 344,
- 549, 549, 549, 549, 343, 344, 543, 343, 711, 954,
-
- 701, 712, 356, 408, 352, 352, 352, 352, 343, 344,
- 549, 549, 549, 549, 751, 358, 343, 717, 748, 359,
- 718, 986, 229, 229, 550, 550, 550, 367, 368, 230,
- 230, 358, 343, 344, 713, 977, 232, 232, 724, 269,
- 724, 367, 368, 725, 725, 725, 725, 752, 551, 551,
- 551, 551, 990, 719, 367, 735, 229, 551, 551, 551,
- 367, 729, 230, 230, 730, 586, 586, 586, 586, 269,
- 232, 551, 551, 551, 551, 551, 551, 342, 342, 343,
- 344, 342, 342, 342, 342, 342, 342, 342, 342, 342,
- 342, 342, 939, 342, 342, 367, 368, 731, 315, 364,
-
- 342, 342, 342, 367, 368, 804, 300, 367, 368, 976,
- 637, 560, 560, 560, 560, 683, 342, 367, 368, 564,
- 564, 564, 557, 563, 563, 563, 563, 586, 586, 586,
- 586, 319, 320, 563, 563, 563, 563, 997, 557, 1029,
- 342, 342, 342, 342, 343, 344, 342, 342, 554, 342,
- 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
- 342, 342, 342, 342, 342, 342, 342, 342, 555, 555,
- 555, 555, 555, 555, 555, 555, 555, 555, 555, 555,
- 555, 342, 555, 555, 555, 555, 555, 555, 555, 555,
- 555, 555, 555, 555, 555, 555, 555, 555, 555, 555,
+ 160, 161, 160, 160, 160, 160, 160, 150, 150, 164,
+ 164, 165, 166, 164, 164, 167, 164, 164, 164, 164,
+ 168, 164, 169, 164, 169, 170, 164, 171, 172, 172,
+ 172, 164, 173, 164, 164, 174, 174, 174, 174, 174,
+ 174, 174, 174, 174, 174, 174, 174, 174, 164, 174,
+ 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
+ 174, 174, 174, 174, 174, 174, 175, 174, 174, 174,
+ 174, 174, 164, 164, 178, 295, 178, 178, 178, 180,
+
+ 178, 178, 196, 453, 197, 197, 197, 197, 454, 179,
+ 198, 245, 196, 179, 197, 197, 197, 197, 246, 1084,
+ 199, 200, 200, 200, 200, 248, 487, 201, 296, 202,
+ 202, 202, 202, 202, 203, 202, 202, 202, 202, 202,
+ 202, 202, 488, 202, 204, 205, 206, 202, 207, 208,
+ 209, 202, 210, 211, 212, 213, 202, 214, 202, 215,
+ 216, 217, 202, 202, 202, 218, 221, 245, 197, 197,
+ 197, 197, 466, 245, 246, 245, 1013, 245, 222, 223,
+ 246, 248, 246, 224, 246, 225, 467, 248, 226, 248,
+ 260, 248, 222, 320, 287, 223, 221, 193, 197, 197,
+
+ 197, 197, 322, 225, 275, 245, 275, 275, 1019, 223,
+ 254, 226, 246, 224, 255, 249, 249, 249, 249, 248,
+ 250, 183, 340, 341, 253, 223, 227, 256, 228, 624,
+ 261, 229, 1083, 245, 230, 231, 232, 233, 234, 235,
+ 246, 245, 236, 246, 237, 238, 625, 248, 246, 262,
+ 287, 262, 262, 360, 184, 248, 245, 262, 180, 262,
+ 262, 241, 242, 246, 179, 264, 180, 264, 264, 821,
+ 248, 251, 179, 275, 180, 275, 275, 252, 822, 196,
+ 263, 197, 197, 197, 197, 257, 1089, 227, 276, 277,
+ 278, 276, 461, 255, 462, 271, 231, 232, 272, 273,
+
+ 235, 340, 347, 420, 202, 265, 238, 202, 183, 202,
+ 344, 266, 267, 268, 269, 463, 270, 464, 202, 202,
+ 202, 366, 367, 246, 202, 276, 277, 278, 276, 280,
+ 287, 280, 281, 280, 280, 196, 421, 197, 197, 197,
+ 197, 184, 200, 200, 200, 200, 221, 1082, 197, 197,
+ 197, 197, 482, 289, 290, 277, 291, 290, 1081, 223,
+ 483, 246, 287, 224, 288, 288, 288, 288, 287, 283,
+ 284, 366, 367, 524, 285, 223, 290, 277, 291, 290,
+ 298, 525, 299, 299, 299, 299, 300, 300, 300, 300,
+ 920, 313, 292, 313, 313, 313, 293, 313, 313, 292,
+
+ 489, 319, 292, 319, 319, 490, 292, 200, 200, 200,
+ 200, 366, 373, 338, 301, 338, 338, 292, 302, 303,
+ 370, 299, 299, 299, 299, 292, 317, 317, 317, 317,
+ 320, 304, 305, 340, 341, 315, 306, 320, 307, 316,
+ 320, 308, 392, 393, 320, 304, 246, 323, 305, 324,
+ 324, 324, 324, 287, 359, 320, 307, 363, 340, 364,
+ 363, 392, 393, 320, 308, 292, 292, 1080, 292, 292,
+ 292, 292, 292, 292, 292, 292, 292, 292, 292, 292,
+ 839, 292, 292, 325, 325, 325, 325, 311, 292, 292,
+ 292, 449, 221, 1079, 317, 317, 317, 317, 363, 340,
- 555, 555, 555, 555, 555, 342, 342, 342, 342, 343,
- 344, 342, 342, 342, 342, 342, 342, 342, 342, 342,
- 342, 342, 975, 342, 342, 574, 574, 574, 574, 364,
- 342, 342, 342, 974, 319, 697, 571, 367, 735, 319,
- 320, 736, 742, 694, 742, 973, 342, 743, 743, 743,
- 743, 972, 571, 229, 229, 659, 659, 659, 659, 971,
- 230, 230, 229, 339, 896, 556, 970, 232, 232, 230,
- 342, 342, 367, 368, 737, 969, 232, 659, 659, 659,
- 659, 679, 679, 679, 679, 968, 380, 967, 376, 376,
- 376, 376, 343, 344, 801, 802, 319, 320, 966, 382,
-
- 846, 319, 320, 383, 319, 320, 803, 679, 679, 679,
- 679, 319, 320, 847, 965, 382, 367, 368, 964, 848,
- 689, 689, 689, 689, 343, 344, 963, 689, 689, 689,
- 689, 992, 565, 565, 565, 565, 319, 320, 962, 827,
- 540, 565, 565, 565, 828, 319, 693, 363, 898, 694,
- 319, 693, 343, 344, 694, 565, 565, 565, 565, 565,
- 565, 366, 366, 367, 368, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 339, 366, 366, 319,
- 697, 961, 695, 388, 366, 366, 366, 695, 694, 343,
- 344, 367, 368, 343, 344, 831, 960, 343, 344, 959,
-
- 366, 554, 367, 368, 956, 707, 707, 707, 707, 707,
- 707, 707, 707, 343, 715, 367, 368, 957, 725, 725,
- 725, 725, 712, 958, 366, 366, 366, 366, 367, 368,
- 366, 366, 568, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 569, 569, 569, 569, 569, 569, 569, 569,
- 569, 569, 569, 569, 569, 366, 569, 569, 569, 569,
- 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
- 569, 569, 569, 569, 569, 569, 569, 569, 569, 366,
- 366, 366, 366, 367, 368, 366, 366, 366, 366, 366,
+ 364, 363, 1078, 450, 292, 223, 340, 341, 628, 224,
+ 629, 326, 340, 343, 496, 327, 344, 392, 399, 497,
+ 348, 223, 349, 349, 349, 349, 396, 1077, 292, 292,
+ 292, 292, 498, 292, 292, 292, 292, 292, 292, 292,
+ 292, 292, 292, 292, 292, 360, 292, 292, 925, 345,
+ 366, 367, 311, 292, 292, 292, 339, 389, 366, 390,
+ 389, 340, 341, 339, 366, 369, 339, 1076, 370, 292,
+ 339, 385, 472, 472, 310, 312, 919, 350, 350, 350,
+ 350, 339, 389, 366, 390, 389, 392, 395, 456, 339,
+ 396, 287, 457, 292, 292, 328, 458, 324, 324, 324,
+
+ 324, 371, 475, 475, 475, 351, 1075, 329, 330, 352,
+ 392, 393, 331, 438, 332, 438, 438, 333, 849, 366,
+ 367, 329, 1074, 397, 330, 415, 392, 416, 415, 480,
+ 481, 411, 332, 374, 496, 375, 375, 375, 375, 497,
+ 333, 320, 320, 320, 320, 320, 320, 1073, 320, 320,
+ 320, 320, 320, 320, 320, 320, 1072, 320, 320, 415,
+ 392, 416, 415, 336, 320, 320, 320, 392, 393, 423,
+ 295, 424, 424, 424, 424, 499, 500, 366, 367, 386,
+ 320, 400, 927, 401, 401, 401, 401, 438, 418, 438,
+ 438, 480, 516, 376, 376, 376, 376, 178, 1071, 178,
+
+ 178, 531, 531, 296, 320, 320, 320, 320, 320, 320,
+ 320, 320, 179, 320, 320, 320, 320, 320, 320, 320,
+ 320, 377, 320, 320, 1070, 378, 420, 365, 336, 320,
+ 320, 320, 484, 391, 365, 1069, 485, 365, 392, 393,
+ 391, 365, 335, 391, 923, 320, 439, 391, 439, 439,
+ 486, 337, 365, 1015, 402, 402, 402, 402, 391, 421,
+ 365, 440, 440, 440, 440, 264, 391, 264, 264, 320,
+ 320, 340, 341, 425, 425, 425, 425, 441, 441, 441,
+ 441, 275, 403, 275, 275, 353, 404, 349, 349, 349,
+ 349, 442, 442, 442, 442, 536, 417, 354, 355, 310,
+
+ 537, 426, 356, 417, 357, 427, 417, 358, 549, 549,
+ 417, 354, 1068, 245, 355, 443, 443, 443, 443, 1067,
+ 246, 417, 357, 200, 200, 200, 200, 248, 1066, 417,
+ 358, 339, 339, 340, 341, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 339, 339, 287, 339, 339, 313,
+ 245, 313, 313, 361, 339, 339, 339, 246, 221, 1065,
+ 197, 197, 197, 197, 248, 200, 200, 200, 200, 975,
+ 339, 223, 473, 360, 473, 224, 444, 474, 474, 474,
+ 474, 456, 544, 246, 320, 457, 496, 223, 193, 515,
+ 287, 554, 444, 322, 339, 339, 339, 339, 340, 341,
- 366, 366, 366, 366, 366, 366, 993, 366, 366, 343,
- 344, 343, 715, 388, 366, 366, 366, 955, 367, 368,
- 712, 367, 368, 319, 699, 319, 699, 700, 935, 700,
- 366, 343, 711, 343, 711, 712, 934, 712, 343, 717,
- 343, 717, 718, 933, 718, 932, 367, 368, 862, 570,
- 568, 363, 832, 931, 366, 366, 579, 579, 579, 579,
- 701, 835, 701, 863, 836, 579, 579, 579, 713, 864,
- 713, 743, 743, 743, 743, 719, 930, 719, 994, 579,
- 579, 579, 579, 579, 579, 390, 390, 929, 390, 390,
- 390, 390, 390, 390, 390, 390, 390, 390, 390, 390,
-
- 928, 390, 390, 367, 368, 367, 733, 409, 390, 390,
- 390, 230, 387, 900, 730, 927, 367, 733, 269, 725,
- 725, 725, 725, 363, 390, 730, 743, 743, 743, 743,
- 408, 902, 938, 229, 938, 938, 319, 320, 229, 938,
- 230, 938, 938, 343, 344, 230, 888, 232, 390, 390,
- 390, 390, 232, 390, 390, 390, 582, 390, 390, 390,
- 390, 390, 390, 390, 390, 390, 390, 390, 390, 390,
- 390, 390, 390, 390, 390, 390, 583, 583, 583, 583,
- 583, 583, 583, 583, 583, 583, 583, 583, 583, 390,
- 583, 583, 583, 583, 583, 583, 583, 583, 583, 583,
+ 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
+ 339, 287, 339, 339, 262, 663, 262, 262, 361, 339,
+ 339, 339, 471, 471, 471, 471, 526, 1064, 319, 179,
+ 319, 319, 245, 444, 971, 339, 534, 534, 534, 246,
+ 245, 362, 504, 504, 504, 504, 248, 246, 664, 444,
+ 245, 245, 340, 341, 248, 1063, 245, 246, 246, 339,
+ 339, 366, 367, 246, 248, 248, 287, 245, 287, 245,
+ 248, 552, 552, 552, 246, 379, 246, 375, 375, 375,
+ 375, 248, 338, 248, 338, 338, 509, 380, 381, 1062,
+ 505, 972, 382, 850, 383, 340, 341, 384, 507, 508,
+
+ 506, 380, 245, 668, 381, 276, 277, 278, 276, 246,
+ 608, 512, 383, 340, 341, 609, 248, 510, 340, 343,
+ 384, 365, 365, 366, 367, 365, 365, 365, 365, 365,
+ 365, 365, 365, 365, 365, 365, 669, 365, 365, 276,
+ 277, 278, 276, 387, 365, 365, 365, 340, 347, 1061,
+ 511, 519, 519, 519, 519, 518, 344, 1013, 246, 1052,
+ 365, 288, 288, 288, 288, 287, 290, 277, 291, 290,
+ 290, 277, 291, 290, 300, 300, 300, 300, 325, 325,
+ 325, 325, 340, 341, 365, 365, 365, 365, 366, 367,
+ 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
- 583, 583, 583, 583, 583, 583, 583, 583, 583, 583,
- 583, 583, 583, 390, 390, 390, 390, 926, 390, 390,
- 390, 390, 390, 390, 390, 390, 390, 390, 390, 390,
- 995, 390, 390, 925, 230, 230, 924, 409, 390, 390,
- 390, 269, 269, 996, 319, 320, 992, 367, 729, 367,
- 729, 730, 997, 730, 390, 367, 735, 367, 735, 736,
- 229, 736, 229, 229, 923, 940, 998, 230, 922, 230,
- 230, 889, 921, 584, 232, 387, 232, 232, 390, 390,
- 507, 507, 507, 507, 731, 920, 731, 919, 387, 507,
- 507, 507, 737, 918, 737, 367, 368, 408, 917, 916,
-
- 936, 885, 883, 507, 507, 507, 507, 507, 507, 274,
- 274, 408, 274, 274, 274, 274, 274, 274, 274, 274,
- 274, 274, 274, 274, 915, 274, 274, 985, 229, 914,
- 913, 670, 274, 274, 274, 230, 985, 912, 230, 986,
- 229, 986, 232, 229, 911, 269, 910, 230, 274, 909,
- 230, 908, 230, 907, 232, 906, 905, 232, 904, 269,
- 319, 320, 991, 817, 1026, 937, 343, 344, 993, 887,
- 1027, 805, 274, 274, 274, 274, 882, 274, 274, 274,
- 274, 274, 274, 274, 274, 274, 274, 274, 274, 292,
- 274, 274, 292, 292, 292, 292, 293, 274, 274, 274,
+ 365, 412, 365, 365, 929, 340, 347, 969, 387, 365,
+ 365, 365, 310, 303, 344, 299, 299, 299, 299, 340,
+ 341, 300, 300, 300, 300, 365, 305, 340, 341, 558,
+ 306, 388, 527, 530, 530, 530, 530, 340, 341, 340,
+ 343, 287, 305, 344, 527, 366, 367, 1060, 527, 365,
+ 365, 392, 393, 561, 561, 976, 532, 1016, 532, 360,
+ 527, 533, 533, 533, 533, 405, 559, 401, 401, 401,
+ 401, 921, 325, 325, 325, 325, 345, 406, 407, 366,
+ 367, 1059, 408, 545, 409, 366, 367, 410, 366, 369,
+ 550, 406, 550, 691, 407, 551, 551, 551, 551, 545,
+
+ 340, 343, 409, 310, 344, 363, 340, 364, 363, 1020,
+ 410, 391, 391, 392, 393, 391, 391, 391, 391, 391,
+ 391, 391, 391, 391, 391, 391, 692, 391, 391, 363,
+ 340, 364, 363, 413, 391, 391, 391, 345, 221, 695,
+ 317, 317, 317, 317, 328, 1058, 324, 324, 324, 324,
+ 391, 223, 340, 341, 360, 224, 1026, 330, 775, 366,
+ 369, 331, 977, 370, 366, 367, 386, 223, 350, 350,
+ 350, 350, 696, 330, 391, 391, 391, 391, 392, 393,
+ 391, 391, 391, 391, 391, 391, 391, 391, 391, 391,
+ 391, 776, 391, 391, 340, 341, 371, 1021, 413, 391,
+
+ 391, 391, 548, 548, 548, 548, 340, 341, 366, 373,
+ 564, 564, 564, 545, 978, 391, 1014, 370, 386, 340,
+ 341, 414, 350, 350, 350, 350, 779, 366, 369, 545,
+ 562, 370, 562, 557, 287, 563, 563, 563, 563, 391,
+ 391, 428, 386, 424, 424, 424, 424, 340, 341, 557,
+ 970, 566, 663, 429, 430, 310, 567, 1018, 431, 780,
+ 432, 366, 367, 433, 371, 366, 373, 429, 366, 367,
+ 430, 366, 367, 1016, 370, 580, 392, 393, 432, 1017,
+ 581, 389, 366, 390, 389, 664, 433, 417, 417, 1014,
+ 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
+
+ 417, 417, 973, 417, 417, 340, 341, 335, 572, 436,
+ 417, 417, 417, 366, 367, 573, 668, 366, 367, 392,
+ 393, 560, 560, 560, 560, 335, 417, 366, 367, 575,
+ 575, 1051, 557, 376, 376, 376, 376, 389, 366, 390,
+ 389, 392, 393, 376, 376, 376, 376, 1050, 557, 669,
+ 417, 417, 417, 417, 571, 417, 417, 417, 417, 417,
+ 417, 417, 417, 417, 417, 417, 417, 1018, 417, 417,
+ 571, 366, 367, 1049, 436, 417, 417, 417, 392, 395,
+ 392, 393, 1048, 366, 367, 392, 393, 574, 574, 574,
+ 574, 417, 366, 367, 576, 1047, 576, 437, 571, 577,
+
+ 577, 577, 577, 392, 399, 603, 603, 979, 578, 578,
+ 578, 412, 396, 335, 571, 417, 417, 535, 535, 535,
+ 535, 1046, 392, 399, 472, 472, 535, 535, 535, 392,
+ 395, 396, 586, 396, 691, 392, 395, 392, 393, 396,
+ 535, 535, 535, 535, 535, 535, 292, 292, 1045, 292,
+ 292, 292, 292, 292, 292, 292, 292, 292, 292, 292,
+ 292, 1044, 292, 292, 392, 393, 397, 692, 311, 292,
+ 292, 292, 397, 392, 393, 392, 393, 606, 606, 606,
+ 402, 402, 402, 402, 587, 292, 590, 1043, 590, 589,
+ 589, 591, 591, 591, 591, 392, 393, 531, 531, 594,
+ 415, 392, 416, 415, 595, 415, 392, 416, 415, 292,
+ 292, 292, 292, 1042, 292, 292, 292, 538, 292, 292,
292, 292, 292, 292, 292, 292, 292, 292, 292, 292,
- 292, 292, 292, 274, 292, 292, 292, 292, 292, 292,
- 671, 292, 292, 292, 672, 292, 292, 292, 292, 292,
- 292, 292, 292, 292, 292, 292, 292, 274, 274, 525,
- 525, 525, 525, 881, 229, 229, 880, 879, 525, 525,
- 525, 230, 230, 343, 344, 994, 878, 877, 232, 232,
- 876, 875, 525, 525, 525, 525, 525, 525, 300, 300,
- 300, 300, 300, 300, 874, 300, 300, 300, 300, 300,
- 300, 300, 300, 873, 300, 300, 872, 871, 884, 870,
- 685, 300, 300, 300, 886, 367, 368, 995, 869, 1028,
-
- 367, 368, 996, 868, 867, 866, 865, 300, 861, 860,
- 859, 858, 857, 856, 855, 854, 853, 852, 851, 850,
- 849, 845, 844, 843, 842, 582, 747, 840, 839, 838,
- 834, 300, 300, 300, 300, 300, 300, 300, 300, 830,
- 300, 300, 300, 300, 300, 300, 300, 300, 315, 300,
- 300, 315, 315, 315, 315, 316, 300, 300, 300, 315,
- 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
- 315, 315, 300, 315, 315, 315, 315, 315, 315, 686,
- 315, 315, 315, 687, 315, 315, 315, 315, 315, 315,
- 315, 315, 315, 315, 315, 315, 300, 300, 319, 320,
-
- 826, 474, 824, 823, 820, 819, 816, 510, 663, 814,
- 813, 810, 809, 808, 537, 537, 537, 537, 807, 474,
- 643, 635, 800, 537, 537, 537, 799, 798, 797, 796,
- 795, 792, 791, 790, 789, 788, 787, 537, 537, 537,
- 537, 537, 537, 318, 318, 319, 320, 318, 318, 318,
- 318, 318, 318, 318, 318, 318, 318, 318, 786, 318,
- 318, 785, 784, 783, 782, 703, 318, 318, 318, 781,
- 780, 779, 778, 777, 776, 775, 774, 773, 772, 771,
- 770, 769, 318, 768, 767, 766, 765, 764, 763, 762,
- 761, 760, 759, 758, 757, 747, 745, 744, 681, 680,
-
- 675, 674, 673, 663, 661, 660, 318, 318, 318, 318,
- 319, 320, 318, 318, 318, 318, 318, 318, 318, 318,
- 318, 318, 318, 339, 318, 318, 339, 339, 339, 339,
- 340, 318, 318, 318, 339, 339, 339, 339, 339, 339,
- 339, 339, 339, 339, 339, 339, 339, 318, 339, 339,
- 339, 339, 339, 339, 704, 339, 339, 339, 705, 339,
- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
- 339, 318, 318, 343, 344, 655, 654, 653, 652, 490,
- 617, 600, 596, 650, 643, 638, 635, 633, 632, 551,
- 551, 551, 551, 631, 630, 629, 628, 627, 551, 551,
-
- 551, 626, 625, 624, 623, 622, 621, 620, 616, 615,
- 614, 613, 551, 551, 551, 551, 551, 551, 342, 342,
- 343, 344, 342, 342, 342, 342, 342, 342, 342, 342,
- 342, 342, 342, 612, 342, 342, 611, 610, 609, 608,
- 721, 342, 342, 342, 607, 606, 605, 604, 603, 602,
- 599, 598, 595, 594, 593, 592, 591, 342, 590, 589,
- 588, 587, 573, 572, 393, 519, 518, 515, 514, 513,
- 501, 500, 277, 474, 495, 494, 490, 462, 460, 436,
- 433, 342, 342, 342, 342, 343, 344, 342, 342, 342,
- 342, 342, 342, 342, 342, 342, 342, 342, 363, 342,
-
- 342, 363, 363, 363, 363, 364, 342, 342, 342, 363,
- 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 342, 363, 363, 363, 363, 363, 363, 722,
- 363, 363, 363, 723, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 342, 342, 367, 368,
- 431, 486, 422, 485, 474, 269, 473, 467, 466, 463,
- 451, 450, 449, 442, 565, 565, 565, 565, 441, 440,
- 437, 427, 424, 565, 565, 565, 423, 420, 419, 418,
- 167, 407, 393, 391, 314, 269, 295, 565, 565, 565,
- 565, 565, 565, 366, 366, 367, 368, 366, 366, 366,
-
- 366, 366, 366, 366, 366, 366, 366, 366, 291, 366,
- 366, 277, 275, 246, 257, 739, 366, 366, 366, 167,
- 246, 257, 167, 174, 165, 1061, 96, 65, 57, 1061,
- 1061, 1061, 366, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 366, 366, 366, 366,
- 367, 368, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 387, 366, 366, 387, 387, 387, 387,
- 388, 366, 366, 366, 387, 387, 387, 387, 387, 387,
- 387, 387, 387, 387, 387, 387, 387, 366, 387, 387,
+ 292, 292, 292, 292, 292, 292, 292, 539, 539, 539,
+ 539, 539, 539, 539, 539, 539, 539, 539, 539, 539,
+ 292, 539, 539, 539, 539, 539, 539, 539, 539, 539,
+ 539, 539, 539, 539, 539, 539, 539, 539, 539, 539,
+ 539, 539, 539, 539, 292, 292, 292, 292, 1041, 292,
+ 292, 292, 292, 292, 292, 292, 292, 292, 292, 292,
+ 292, 974, 292, 292, 392, 393, 335, 645, 311, 292,
- 387, 387, 387, 387, 740, 387, 387, 387, 741, 387,
- 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
- 387, 366, 366, 579, 579, 579, 579, 1061, 1061, 1061,
- 1061, 1061, 579, 579, 579, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 579, 579, 579, 579,
- 579, 579, 390, 390, 1061, 390, 390, 390, 390, 390,
- 390, 390, 390, 390, 390, 390, 390, 1061, 390, 390,
- 1061, 1061, 1061, 1061, 754, 390, 390, 390, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 390, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 390, 390, 390, 390, 1061,
- 390, 390, 390, 390, 390, 390, 390, 390, 390, 390,
- 390, 390, 408, 390, 390, 408, 408, 408, 408, 409,
- 390, 390, 390, 408, 408, 408, 408, 408, 408, 408,
- 408, 408, 408, 408, 408, 408, 390, 408, 408, 408,
- 408, 408, 408, 755, 408, 408, 408, 756, 408, 408,
- 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
- 390, 390, 274, 274, 1061, 274, 274, 274, 274, 274,
- 274, 274, 274, 274, 274, 274, 274, 1061, 274, 274,
-
- 1061, 1061, 1061, 1061, 670, 274, 274, 274, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 274, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 274, 274, 274, 274, 1061,
- 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
- 274, 274, 292, 274, 274, 292, 292, 292, 292, 293,
- 274, 274, 274, 292, 292, 292, 292, 292, 292, 292,
- 292, 292, 292, 292, 292, 292, 274, 292, 292, 292,
- 292, 292, 292, 292, 292, 292, 815, 292, 292, 292,
+ 292, 292, 392, 393, 1040, 646, 392, 393, 647, 1022,
+ 402, 402, 402, 402, 438, 292, 438, 438, 592, 592,
+ 592, 585, 588, 588, 588, 588, 425, 425, 425, 425,
+ 475, 475, 475, 585, 540, 549, 549, 585, 1039, 292,
+ 292, 553, 553, 553, 553, 439, 1038, 439, 439, 585,
+ 553, 553, 553, 604, 386, 604, 603, 603, 605, 605,
+ 605, 605, 833, 834, 553, 553, 553, 553, 553, 553,
+ 320, 320, 320, 320, 320, 320, 1037, 320, 320, 320,
+ 320, 320, 320, 320, 320, 1013, 320, 320, 440, 440,
+ 440, 440, 336, 320, 320, 320, 246, 428, 1036, 424,
+
+ 424, 424, 424, 287, 425, 425, 425, 425, 1035, 320,
+ 430, 534, 534, 534, 431, 599, 441, 441, 441, 441,
+ 442, 442, 442, 442, 845, 846, 430, 443, 443, 443,
+ 443, 599, 1034, 320, 320, 320, 320, 320, 320, 320,
+ 320, 502, 320, 320, 320, 320, 320, 320, 320, 320,
+ 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
+ 320, 555, 555, 555, 555, 555, 555, 555, 555, 555,
+ 555, 555, 555, 555, 320, 555, 555, 555, 555, 555,
+ 555, 555, 555, 555, 555, 555, 555, 555, 555, 555,
+ 555, 555, 555, 555, 555, 555, 555, 555, 320, 320,
- 292, 292, 292, 292, 292, 292, 292, 292, 292, 292,
- 274, 274, 300, 300, 300, 300, 300, 300, 1061, 300,
- 300, 300, 300, 300, 300, 300, 300, 1061, 300, 300,
- 1061, 1061, 1061, 1061, 685, 300, 300, 300, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 300, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 300, 300, 300, 300, 300,
- 300, 300, 300, 1061, 300, 300, 300, 300, 300, 300,
- 300, 300, 315, 300, 300, 315, 315, 315, 315, 316,
-
- 300, 300, 300, 315, 315, 315, 315, 315, 315, 315,
- 315, 315, 315, 315, 315, 315, 300, 315, 315, 315,
- 315, 315, 315, 315, 315, 315, 825, 315, 315, 315,
- 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
- 300, 300, 318, 318, 319, 320, 318, 318, 318, 318,
- 318, 318, 318, 318, 318, 318, 318, 1061, 318, 318,
- 1061, 1061, 1061, 1061, 703, 318, 318, 318, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 318, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-
- 1061, 1061, 1061, 1061, 1061, 318, 318, 318, 318, 319,
- 320, 318, 318, 318, 318, 318, 318, 318, 318, 318,
- 318, 318, 339, 318, 318, 339, 339, 339, 339, 340,
- 318, 318, 318, 339, 339, 339, 339, 339, 339, 339,
- 339, 339, 339, 339, 339, 339, 318, 339, 339, 339,
- 339, 339, 339, 339, 339, 339, 829, 339, 339, 339,
+ 320, 320, 320, 320, 320, 320, 1033, 320, 320, 320,
+ 320, 320, 320, 320, 320, 1032, 320, 320, 602, 602,
+ 602, 602, 336, 320, 320, 320, 613, 287, 613, 599,
+ 1031, 614, 614, 614, 614, 471, 471, 471, 471, 320,
+ 474, 474, 474, 474, 1030, 599, 444, 474, 474, 474,
+ 474, 704, 1029, 245, 245, 705, 695, 1015, 556, 1053,
+ 246, 246, 444, 320, 320, 340, 341, 248, 248, 340,
+ 341, 245, 1028, 245, 533, 533, 533, 533, 246, 353,
+ 246, 349, 349, 349, 349, 248, 245, 248, 245, 696,
+ 245, 245, 355, 246, 1027, 246, 356, 246, 246, 672,
+
+ 248, 1012, 248, 320, 248, 248, 245, 665, 355, 340,
+ 341, 246, 711, 246, 775, 673, 435, 718, 287, 931,
+ 248, 533, 533, 533, 533, 565, 565, 565, 565, 674,
+ 1017, 676, 1052, 675, 565, 565, 565, 519, 519, 519,
+ 519, 518, 684, 677, 366, 367, 685, 776, 565, 565,
+ 565, 565, 565, 565, 339, 339, 340, 341, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 339, 890,
+ 339, 339, 530, 530, 530, 530, 361, 339, 339, 339,
+ 686, 1011, 686, 527, 891, 687, 687, 687, 687, 706,
+ 892, 706, 736, 339, 707, 707, 707, 707, 1010, 527,
+
+ 551, 551, 551, 551, 551, 551, 551, 551, 552, 552,
+ 552, 605, 605, 605, 605, 340, 341, 339, 339, 339,
+ 339, 340, 341, 339, 339, 568, 339, 339, 339, 339,
339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
- 318, 318, 342, 342, 343, 344, 342, 342, 342, 342,
- 342, 342, 342, 342, 342, 342, 342, 1061, 342, 342,
- 1061, 1061, 1061, 1061, 721, 342, 342, 342, 1061, 1061,
-
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 342, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 342, 342, 342, 342, 343,
- 344, 342, 342, 342, 342, 342, 342, 342, 342, 342,
- 342, 342, 363, 342, 342, 363, 363, 363, 363, 364,
- 342, 342, 342, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 342, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 833, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
-
- 342, 342, 366, 366, 367, 368, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 1061, 366, 366,
- 1061, 1061, 1061, 1061, 739, 366, 366, 366, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 366, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 366, 366, 366, 366, 367,
- 368, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 387, 366, 366, 387, 387, 387, 387, 388,
- 366, 366, 366, 387, 387, 387, 387, 387, 387, 387,
+ 339, 339, 339, 339, 339, 569, 569, 569, 569, 569,
+ 569, 569, 569, 569, 569, 569, 569, 569, 339, 569,
+ 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
+ 569, 569, 569, 569, 569, 569, 569, 569, 569, 569,
+ 569, 569, 339, 339, 339, 339, 340, 341, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 339, 1009,
- 387, 387, 387, 387, 387, 387, 366, 387, 387, 387,
- 387, 387, 387, 387, 387, 387, 837, 387, 387, 387,
- 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
- 366, 366, 390, 390, 1061, 390, 390, 390, 390, 390,
- 390, 390, 390, 390, 390, 390, 390, 1061, 390, 390,
- 1061, 1061, 1061, 1061, 754, 390, 390, 390, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 390, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 390, 390, 390, 390, 1061,
-
- 390, 390, 390, 390, 390, 390, 390, 390, 390, 390,
- 390, 390, 408, 390, 390, 408, 408, 408, 408, 409,
- 390, 390, 390, 408, 408, 408, 408, 408, 408, 408,
- 408, 408, 408, 408, 408, 408, 390, 408, 408, 408,
- 408, 408, 408, 408, 408, 408, 841, 408, 408, 408,
- 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
- 390, 390, 274, 274, 1061, 274, 274, 274, 274, 274,
- 274, 274, 274, 274, 274, 274, 274, 292, 274, 274,
- 292, 292, 292, 292, 293, 274, 274, 274, 292, 292,
- 292, 292, 292, 292, 292, 292, 292, 292, 292, 292,
+ 339, 339, 548, 548, 548, 548, 361, 339, 339, 339,
+ 340, 341, 1008, 545, 340, 341, 340, 721, 340, 341,
+ 722, 340, 341, 339, 980, 716, 1007, 716, 412, 545,
+ 717, 717, 717, 717, 560, 560, 560, 560, 340, 341,
+ 340, 341, 570, 340, 725, 557, 779, 339, 339, 366,
+ 367, 1006, 722, 723, 561, 561, 563, 563, 563, 563,
+ 719, 557, 1005, 379, 855, 375, 375, 375, 375, 340,
+ 341, 340, 727, 340, 341, 728, 381, 366, 367, 780,
+ 382, 366, 367, 366, 367, 563, 563, 563, 563, 564,
+ 564, 564, 381, 366, 367, 366, 743, 575, 575, 577,
+
+ 577, 577, 577, 981, 740, 366, 367, 435, 729, 579,
+ 579, 579, 579, 366, 367, 1004, 392, 393, 579, 579,
+ 579, 577, 577, 577, 577, 340, 341, 737, 1003, 578,
+ 578, 578, 579, 579, 579, 579, 579, 579, 365, 365,
+ 366, 367, 365, 365, 365, 365, 365, 365, 365, 365,
+ 365, 365, 365, 1002, 365, 365, 366, 367, 340, 721,
+ 387, 365, 365, 365, 754, 392, 393, 734, 856, 734,
+ 392, 393, 735, 735, 735, 735, 752, 365, 752, 392,
+ 393, 753, 753, 753, 753, 1001, 589, 589, 340, 341,
+ 392, 761, 606, 606, 606, 591, 591, 591, 591, 758,
- 292, 274, 292, 292, 292, 292, 292, 292, 292, 292,
- 292, 292, 890, 292, 292, 292, 292, 292, 292, 292,
- 292, 292, 292, 292, 292, 274, 274, 300, 300, 300,
- 300, 300, 300, 1061, 300, 300, 300, 300, 300, 300,
- 300, 300, 315, 300, 300, 315, 315, 315, 315, 316,
- 300, 300, 300, 315, 315, 315, 315, 315, 315, 315,
- 315, 315, 315, 315, 315, 315, 300, 315, 315, 315,
- 315, 315, 315, 315, 315, 315, 315, 894, 315, 315,
- 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
- 300, 300, 166, 1061, 166, 166, 166, 166, 166, 166,
-
- 166, 166, 166, 169, 1061, 1061, 169, 169, 177, 1061,
- 177, 177, 177, 177, 177, 177, 177, 177, 177, 231,
- 231, 231, 231, 231, 231, 231, 231, 261, 261, 261,
- 261, 264, 1061, 264, 1061, 264, 264, 264, 264, 268,
- 268, 268, 268, 268, 268, 268, 274, 1061, 274, 274,
- 274, 274, 274, 274, 274, 274, 274, 276, 1061, 276,
- 276, 276, 276, 276, 276, 276, 276, 276, 279, 1061,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 292,
- 1061, 292, 292, 292, 292, 292, 292, 292, 292, 292,
- 230, 230, 230, 230, 230, 230, 230, 300, 300, 1061,
-
- 300, 300, 300, 300, 300, 300, 300, 300, 301, 301,
- 301, 301, 301, 301, 301, 301, 301, 301, 301, 315,
- 315, 1061, 315, 315, 315, 315, 315, 315, 315, 315,
- 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
- 318, 321, 321, 321, 321, 321, 321, 321, 321, 321,
- 321, 321, 325, 325, 325, 325, 325, 325, 325, 325,
- 325, 325, 325, 339, 339, 339, 339, 339, 339, 339,
- 339, 339, 339, 339, 342, 342, 342, 342, 342, 342,
- 342, 342, 342, 342, 342, 345, 345, 345, 345, 345,
- 345, 345, 345, 345, 345, 345, 349, 349, 349, 349,
-
- 349, 349, 349, 349, 349, 349, 349, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 369,
- 369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
- 373, 373, 373, 373, 373, 373, 373, 373, 373, 373,
- 373, 387, 387, 387, 387, 387, 387, 387, 387, 387,
- 387, 387, 390, 1061, 390, 390, 390, 390, 390, 390,
- 390, 390, 390, 392, 1061, 392, 392, 392, 392, 392,
- 392, 392, 392, 392, 395, 1061, 395, 395, 395, 395,
- 395, 395, 395, 395, 395, 408, 1061, 408, 408, 408,
-
- 408, 408, 408, 408, 408, 408, 169, 1061, 1061, 169,
- 169, 177, 1061, 177, 177, 177, 177, 177, 177, 177,
- 177, 177, 417, 1061, 1061, 417, 417, 417, 448, 1061,
- 1061, 448, 230, 230, 230, 230, 230, 230, 230, 231,
- 231, 231, 231, 231, 231, 231, 231, 475, 1061, 1061,
- 1061, 1061, 475, 475, 475, 475, 489, 489, 489, 489,
- 489, 489, 492, 492, 492, 492, 493, 1061, 493, 493,
- 493, 493, 268, 268, 268, 268, 268, 268, 268, 274,
- 1061, 274, 274, 274, 274, 274, 274, 274, 274, 274,
- 276, 1061, 276, 276, 276, 276, 276, 276, 276, 276,
-
- 276, 279, 1061, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 292, 1061, 292, 292, 292, 292, 292, 292,
- 292, 292, 292, 300, 300, 1061, 300, 300, 300, 300,
- 300, 300, 300, 300, 301, 301, 301, 301, 301, 301,
- 301, 301, 301, 301, 301, 315, 315, 1061, 315, 315,
- 315, 315, 315, 315, 315, 315, 318, 318, 318, 318,
- 318, 318, 318, 318, 318, 318, 318, 321, 321, 321,
- 321, 321, 321, 321, 321, 321, 321, 321, 325, 325,
- 325, 325, 325, 325, 325, 325, 325, 325, 325, 339,
- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
+ 1000, 365, 365, 365, 365, 366, 367, 365, 365, 582,
+ 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
+ 365, 365, 365, 365, 365, 365, 365, 365, 365, 583,
+ 583, 583, 583, 583, 583, 583, 583, 583, 583, 583,
+ 583, 583, 365, 583, 583, 583, 583, 583, 583, 583,
+ 583, 583, 583, 583, 583, 583, 583, 583, 583, 583,
+ 583, 583, 583, 583, 583, 583, 365, 365, 365, 365,
+ 366, 367, 365, 365, 365, 365, 365, 365, 365, 365,
+ 365, 365, 365, 1014, 365, 365, 366, 367, 392, 393,
+ 387, 365, 365, 365, 246, 602, 602, 602, 602, 340,
+
+ 727, 287, 574, 574, 574, 574, 599, 365, 366, 739,
+ 340, 725, 740, 571, 246, 999, 366, 745, 998, 722,
+ 746, 287, 599, 245, 392, 757, 584, 997, 758, 571,
+ 246, 365, 365, 392, 393, 340, 725, 248, 755, 392,
+ 393, 996, 392, 763, 722, 741, 764, 405, 840, 401,
+ 401, 401, 401, 747, 995, 588, 588, 588, 588, 994,
+ 407, 759, 366, 367, 408, 320, 585, 392, 393, 665,
+ 993, 392, 393, 1025, 711, 1057, 407, 392, 393, 765,
+ 366, 739, 585, 591, 591, 591, 591, 592, 592, 592,
+ 366, 367, 1023, 593, 593, 593, 593, 605, 605, 605,
+
+ 605, 245, 593, 593, 593, 770, 992, 770, 246, 991,
+ 771, 771, 771, 771, 990, 248, 593, 593, 593, 593,
+ 593, 593, 391, 391, 392, 393, 391, 391, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 412, 391, 391,
+ 614, 614, 614, 614, 413, 391, 391, 391, 614, 614,
+ 614, 614, 687, 687, 687, 687, 687, 687, 687, 687,
+ 989, 391, 707, 707, 707, 707, 707, 707, 707, 707,
+ 340, 341, 366, 743, 568, 366, 743, 366, 745, 366,
+ 367, 740, 988, 582, 740, 391, 391, 391, 391, 392,
+ 393, 391, 391, 596, 391, 391, 391, 391, 391, 391,
+
+ 391, 391, 391, 391, 391, 391, 391, 391, 391, 391,
+ 391, 391, 391, 597, 597, 597, 597, 597, 597, 597,
+ 597, 597, 597, 597, 597, 597, 391, 597, 597, 597,
+ 597, 597, 597, 597, 597, 597, 597, 597, 597, 597,
+ 597, 597, 597, 597, 597, 597, 597, 597, 597, 597,
+ 391, 391, 391, 391, 392, 393, 391, 391, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 987, 391, 391,
+ 983, 245, 245, 963, 413, 391, 391, 391, 246, 246,
+ 245, 245, 340, 341, 962, 248, 248, 246, 246, 340,
+ 341, 391, 340, 721, 248, 248, 722, 246, 717, 717,
+
+ 717, 717, 392, 393, 287, 717, 717, 717, 717, 961,
+ 598, 960, 829, 830, 959, 391, 391, 607, 607, 607,
+ 607, 366, 367, 958, 831, 957, 607, 607, 607, 723,
+ 832, 956, 366, 367, 917, 340, 721, 392, 757, 722,
+ 607, 607, 607, 607, 607, 607, 417, 417, 874, 417,
+ 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
+ 417, 875, 417, 417, 859, 366, 367, 876, 436, 417,
+ 417, 417, 723, 366, 367, 860, 340, 727, 392, 393,
+ 728, 735, 735, 735, 735, 417, 392, 393, 955, 735,
+ 735, 735, 735, 954, 753, 753, 753, 753, 392, 761,
+
+ 392, 393, 753, 753, 753, 753, 953, 758, 952, 417,
+ 417, 417, 417, 729, 417, 417, 417, 610, 417, 417,
+ 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
+ 417, 417, 417, 417, 417, 417, 417, 611, 611, 611,
+ 611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+ 417, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+ 611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+ 611, 611, 611, 611, 417, 417, 417, 417, 951, 417,
+ 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
+ 417, 1024, 417, 417, 392, 393, 392, 761, 436, 417,
+
+ 417, 417, 950, 392, 393, 758, 392, 763, 340, 727,
+ 366, 739, 728, 949, 740, 417, 366, 739, 366, 745,
+ 740, 948, 746, 366, 745, 392, 757, 746, 947, 758,
+ 946, 392, 393, 945, 612, 596, 412, 863, 944, 417,
+ 417, 535, 535, 535, 535, 729, 864, 741, 340, 341,
+ 535, 535, 535, 741, 1025, 747, 771, 771, 771, 771,
+ 747, 943, 759, 942, 535, 535, 535, 535, 535, 535,
+ 292, 292, 941, 292, 292, 292, 292, 292, 292, 292,
+ 292, 292, 292, 292, 292, 1026, 292, 292, 771, 771,
+ 771, 771, 698, 292, 292, 292, 246, 340, 341, 435,
+
+ 392, 757, 940, 287, 758, 360, 924, 366, 367, 292,
+ 366, 367, 386, 926, 392, 393, 392, 393, 412, 928,
+ 435, 930, 966, 982, 966, 966, 966, 435, 966, 966,
+ 435, 916, 939, 292, 292, 292, 292, 759, 292, 292,
+ 292, 292, 292, 292, 292, 292, 292, 292, 292, 292,
+ 310, 292, 292, 310, 310, 310, 310, 311, 292, 292,
+ 292, 310, 310, 310, 310, 310, 310, 310, 310, 310,
+ 310, 310, 310, 310, 292, 310, 310, 310, 310, 310,
+ 310, 699, 310, 310, 310, 700, 310, 310, 310, 310,
+ 310, 310, 310, 310, 310, 310, 310, 310, 292, 292,
+
+ 553, 553, 553, 553, 340, 341, 1019, 245, 1054, 553,
+ 553, 553, 392, 763, 246, 938, 764, 937, 392, 763,
+ 936, 248, 764, 553, 553, 553, 553, 553, 553, 320,
+ 320, 320, 320, 320, 320, 935, 320, 320, 320, 320,
+ 320, 320, 320, 320, 934, 320, 320, 340, 341, 765,
+ 245, 713, 320, 320, 320, 765, 914, 246, 245, 245,
+ 245, 933, 984, 932, 248, 246, 246, 246, 320, 340,
+ 341, 1020, 248, 248, 248, 985, 366, 367, 1021, 845,
+ 1055, 986, 366, 367, 1022, 915, 392, 393, 1023, 913,
+ 1056, 833, 320, 320, 320, 320, 320, 320, 320, 320,
+
+ 911, 320, 320, 320, 320, 320, 320, 320, 320, 335,
+ 320, 320, 335, 335, 335, 335, 336, 320, 320, 320,
+ 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
+ 335, 335, 335, 320, 335, 335, 335, 335, 335, 335,
+ 714, 335, 335, 335, 715, 335, 335, 335, 335, 335,
+ 335, 335, 335, 335, 335, 335, 335, 320, 320, 340,
+ 341, 246, 246, 1013, 392, 393, 1024, 245, 287, 287,
+ 366, 367, 392, 393, 246, 565, 565, 565, 565, 1014,
+ 245, 248, 245, 245, 565, 565, 565, 246, 910, 246,
+ 246, 967, 968, 909, 248, 908, 248, 248, 565, 565,
+
+ 565, 565, 565, 565, 339, 339, 340, 341, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 339, 964,
+ 339, 339, 907, 245, 912, 906, 731, 339, 339, 339,
+ 246, 905, 904, 903, 902, 901, 900, 248, 899, 898,
+ 897, 896, 895, 339, 894, 893, 889, 888, 887, 886,
+ 885, 884, 883, 882, 881, 880, 879, 878, 877, 873,
+ 965, 872, 871, 870, 610, 775, 868, 339, 339, 339,
+ 339, 340, 341, 339, 339, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 360, 339, 339, 360, 360, 360,
+ 360, 361, 339, 339, 339, 360, 360, 360, 360, 360,
+
+ 360, 360, 360, 360, 360, 360, 360, 360, 339, 360,
+ 360, 360, 360, 360, 360, 732, 360, 360, 360, 733,
+ 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
+ 360, 360, 339, 339, 366, 367, 867, 866, 862, 858,
+ 854, 502, 852, 851, 848, 847, 844, 538, 691, 842,
+ 579, 579, 579, 579, 841, 838, 837, 836, 835, 579,
+ 579, 579, 502, 671, 663, 828, 827, 826, 825, 824,
+ 823, 820, 819, 579, 579, 579, 579, 579, 579, 365,
+ 365, 366, 367, 365, 365, 365, 365, 365, 365, 365,
+ 365, 365, 365, 365, 818, 365, 365, 817, 816, 815,
+
+ 814, 749, 365, 365, 365, 813, 812, 811, 810, 809,
+ 808, 807, 806, 805, 804, 803, 802, 801, 365, 800,
+ 799, 798, 797, 796, 795, 794, 793, 792, 791, 790,
+ 789, 788, 787, 786, 785, 775, 773, 772, 709, 708,
+ 703, 702, 365, 365, 365, 365, 366, 367, 365, 365,
+ 365, 365, 365, 365, 365, 365, 365, 365, 365, 386,
+ 365, 365, 386, 386, 386, 386, 387, 365, 365, 365,
+ 386, 386, 386, 386, 386, 386, 386, 386, 386, 386,
+ 386, 386, 386, 365, 386, 386, 386, 386, 386, 386,
+ 750, 386, 386, 386, 751, 386, 386, 386, 386, 386,
+
+ 386, 386, 386, 386, 386, 386, 386, 365, 365, 392,
+ 393, 701, 691, 689, 688, 683, 682, 681, 680, 518,
+ 645, 628, 624, 678, 671, 593, 593, 593, 593, 666,
+ 663, 661, 660, 659, 593, 593, 593, 658, 657, 656,
+ 655, 654, 653, 652, 651, 650, 649, 648, 593, 593,
+ 593, 593, 593, 593, 391, 391, 392, 393, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 391, 391, 644,
+ 391, 391, 643, 642, 641, 640, 767, 391, 391, 391,
+ 639, 638, 637, 636, 635, 634, 633, 632, 631, 630,
+ 627, 626, 623, 391, 622, 621, 620, 619, 618, 617,
+
+ 616, 615, 601, 600, 420, 547, 546, 543, 542, 541,
+ 529, 528, 295, 502, 523, 522, 518, 391, 391, 391,
+ 391, 392, 393, 391, 391, 391, 391, 391, 391, 391,
+ 391, 391, 391, 391, 412, 391, 391, 412, 412, 412,
+ 412, 413, 391, 391, 391, 412, 412, 412, 412, 412,
+ 412, 412, 412, 412, 412, 412, 412, 412, 391, 412,
+ 412, 412, 412, 412, 412, 768, 412, 412, 412, 769,
+ 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
+ 412, 412, 391, 391, 607, 607, 607, 607, 490, 488,
+ 464, 461, 459, 607, 607, 607, 514, 450, 513, 502,
+
+ 287, 501, 495, 494, 491, 479, 478, 607, 607, 607,
+ 607, 607, 607, 417, 417, 477, 417, 417, 417, 417,
+ 417, 417, 417, 417, 417, 417, 417, 417, 470, 417,
+ 417, 469, 468, 465, 455, 782, 417, 417, 417, 452,
+ 451, 448, 447, 446, 183, 434, 420, 418, 334, 287,
+ 314, 309, 417, 295, 293, 263, 274, 183, 263, 274,
+ 183, 190, 181, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 417, 417, 417, 417,
+ 1089, 417, 417, 417, 417, 417, 417, 417, 417, 417,
+ 417, 417, 417, 435, 417, 417, 435, 435, 435, 435,
+
+ 436, 417, 417, 417, 435, 435, 435, 435, 435, 435,
+ 435, 435, 435, 435, 435, 435, 435, 417, 435, 435,
+ 435, 435, 435, 435, 783, 435, 435, 435, 784, 435,
+ 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
+ 435, 417, 417, 292, 292, 1089, 292, 292, 292, 292,
+ 292, 292, 292, 292, 292, 292, 292, 292, 1089, 292,
+ 292, 1089, 1089, 1089, 1089, 698, 292, 292, 292, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 292, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+
+ 1089, 1089, 1089, 1089, 1089, 1089, 292, 292, 292, 292,
+ 1089, 292, 292, 292, 292, 292, 292, 292, 292, 292,
+ 292, 292, 292, 310, 292, 292, 310, 310, 310, 310,
+ 311, 292, 292, 292, 310, 310, 310, 310, 310, 310,
+ 310, 310, 310, 310, 310, 310, 310, 292, 310, 310,
+ 310, 310, 310, 310, 310, 310, 310, 843, 310, 310,
+ 310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
+ 310, 292, 292, 320, 320, 320, 320, 320, 320, 1089,
+ 320, 320, 320, 320, 320, 320, 320, 320, 1089, 320,
+ 320, 1089, 1089, 1089, 1089, 713, 320, 320, 320, 1089,
+
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 320, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 320, 320, 320, 320,
+ 320, 320, 320, 320, 1089, 320, 320, 320, 320, 320,
+ 320, 320, 320, 335, 320, 320, 335, 335, 335, 335,
+ 336, 320, 320, 320, 335, 335, 335, 335, 335, 335,
+ 335, 335, 335, 335, 335, 335, 335, 320, 335, 335,
+ 335, 335, 335, 335, 335, 335, 335, 853, 335, 335,
+ 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
+
+ 335, 320, 320, 339, 339, 340, 341, 339, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 1089, 339,
+ 339, 1089, 1089, 1089, 1089, 731, 339, 339, 339, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 339, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 339, 339, 339, 339,
+ 340, 341, 339, 339, 339, 339, 339, 339, 339, 339,
+ 339, 339, 339, 360, 339, 339, 360, 360, 360, 360,
+ 361, 339, 339, 339, 360, 360, 360, 360, 360, 360,
+
+ 360, 360, 360, 360, 360, 360, 360, 339, 360, 360,
+ 360, 360, 360, 360, 360, 360, 360, 857, 360, 360,
+ 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
+ 360, 339, 339, 365, 365, 366, 367, 365, 365, 365,
+ 365, 365, 365, 365, 365, 365, 365, 365, 1089, 365,
+ 365, 1089, 1089, 1089, 1089, 749, 365, 365, 365, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 365, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 365, 365, 365, 365,
+
+ 366, 367, 365, 365, 365, 365, 365, 365, 365, 365,
+ 365, 365, 365, 386, 365, 365, 386, 386, 386, 386,
+ 387, 365, 365, 365, 386, 386, 386, 386, 386, 386,
+ 386, 386, 386, 386, 386, 386, 386, 365, 386, 386,
+ 386, 386, 386, 386, 386, 386, 386, 861, 386, 386,
+ 386, 386, 386, 386, 386, 386, 386, 386, 386, 386,
+ 386, 365, 365, 391, 391, 392, 393, 391, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 391, 1089, 391,
+ 391, 1089, 1089, 1089, 1089, 767, 391, 391, 391, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+
+ 1089, 1089, 391, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 391, 391, 391, 391,
+ 392, 393, 391, 391, 391, 391, 391, 391, 391, 391,
+ 391, 391, 391, 412, 391, 391, 412, 412, 412, 412,
+ 413, 391, 391, 391, 412, 412, 412, 412, 412, 412,
+ 412, 412, 412, 412, 412, 412, 412, 391, 412, 412,
+ 412, 412, 412, 412, 412, 412, 412, 865, 412, 412,
+ 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
+ 412, 391, 391, 417, 417, 1089, 417, 417, 417, 417,
+
+ 417, 417, 417, 417, 417, 417, 417, 417, 1089, 417,
+ 417, 1089, 1089, 1089, 1089, 782, 417, 417, 417, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 417, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 417, 417, 417, 417,
+ 1089, 417, 417, 417, 417, 417, 417, 417, 417, 417,
+ 417, 417, 417, 435, 417, 417, 435, 435, 435, 435,
+ 436, 417, 417, 417, 435, 435, 435, 435, 435, 435,
+ 435, 435, 435, 435, 435, 435, 435, 417, 435, 435,
+
+ 435, 435, 435, 435, 435, 435, 435, 869, 435, 435,
+ 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
+ 435, 417, 417, 292, 292, 1089, 292, 292, 292, 292,
+ 292, 292, 292, 292, 292, 292, 292, 292, 310, 292,
+ 292, 310, 310, 310, 310, 311, 292, 292, 292, 310,
+ 310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
+ 310, 310, 292, 310, 310, 310, 310, 310, 310, 310,
+ 310, 310, 310, 918, 310, 310, 310, 310, 310, 310,
+ 310, 310, 310, 310, 310, 310, 292, 292, 320, 320,
+ 320, 320, 320, 320, 1089, 320, 320, 320, 320, 320,
+
+ 320, 320, 320, 335, 320, 320, 335, 335, 335, 335,
+ 336, 320, 320, 320, 335, 335, 335, 335, 335, 335,
+ 335, 335, 335, 335, 335, 335, 335, 320, 335, 335,
+ 335, 335, 335, 335, 335, 335, 335, 335, 922, 335,
+ 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
+ 335, 320, 320, 182, 1089, 182, 182, 182, 182, 182,
+ 182, 182, 182, 182, 185, 1089, 1089, 185, 185, 193,
+ 1089, 193, 193, 193, 193, 193, 193, 193, 193, 193,
+ 247, 247, 247, 247, 247, 247, 247, 247, 279, 279,
+ 279, 279, 282, 1089, 282, 1089, 282, 282, 282, 282,
+
+ 286, 286, 286, 286, 286, 286, 286, 292, 1089, 292,
+ 292, 292, 292, 292, 292, 292, 292, 292, 294, 1089,
+ 294, 294, 294, 294, 294, 294, 294, 294, 294, 297,
+ 1089, 297, 297, 297, 297, 297, 297, 297, 297, 297,
+ 310, 1089, 310, 310, 310, 310, 310, 310, 310, 310,
+ 310, 246, 246, 246, 246, 246, 246, 246, 320, 320,
+ 1089, 320, 320, 320, 320, 320, 320, 320, 320, 321,
+ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
+ 335, 335, 1089, 335, 335, 335, 335, 335, 335, 335,
+ 335, 339, 339, 339, 339, 339, 339, 339, 339, 339,
+
+ 339, 339, 342, 342, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 346, 346, 346, 346, 346, 346, 346,
+ 346, 346, 346, 346, 360, 360, 360, 360, 360, 360,
+ 360, 360, 360, 360, 360, 365, 365, 365, 365, 365,
+ 365, 365, 365, 365, 365, 365, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 372, 372, 372,
+ 372, 372, 372, 372, 372, 372, 372, 372, 386, 386,
+ 386, 386, 386, 386, 386, 386, 386, 386, 386, 391,
+ 391, 391, 391, 391, 391, 391, 391, 391, 391, 391,
+ 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
+
+ 394, 398, 398, 398, 398, 398, 398, 398, 398, 398,
+ 398, 398, 412, 412, 412, 412, 412, 412, 412, 412,
+ 412, 412, 412, 417, 1089, 417, 417, 417, 417, 417,
+ 417, 417, 417, 417, 419, 1089, 419, 419, 419, 419,
+ 419, 419, 419, 419, 419, 422, 1089, 422, 422, 422,
+ 422, 422, 422, 422, 422, 422, 435, 1089, 435, 435,
+ 435, 435, 435, 435, 435, 435, 435, 185, 1089, 1089,
+ 185, 185, 193, 1089, 193, 193, 193, 193, 193, 193,
+ 193, 193, 193, 445, 1089, 1089, 445, 445, 445, 476,
+ 1089, 1089, 476, 246, 246, 246, 246, 246, 246, 246,
+
+ 247, 247, 247, 247, 247, 247, 247, 247, 503, 1089,
+ 1089, 1089, 1089, 503, 503, 503, 503, 517, 517, 517,
+ 517, 517, 517, 520, 520, 520, 520, 521, 1089, 521,
+ 521, 521, 521, 286, 286, 286, 286, 286, 286, 286,
+ 292, 1089, 292, 292, 292, 292, 292, 292, 292, 292,
+ 292, 294, 1089, 294, 294, 294, 294, 294, 294, 294,
+ 294, 294, 297, 1089, 297, 297, 297, 297, 297, 297,
+ 297, 297, 297, 310, 1089, 310, 310, 310, 310, 310,
+ 310, 310, 310, 310, 320, 320, 1089, 320, 320, 320,
+ 320, 320, 320, 320, 320, 321, 321, 321, 321, 321,
+
+ 321, 321, 321, 321, 321, 321, 335, 335, 1089, 335,
+ 335, 335, 335, 335, 335, 335, 335, 339, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 342, 342,
+ 342, 342, 342, 342, 342, 342, 342, 342, 342, 346,
+ 346, 346, 346, 346, 346, 346, 346, 346, 346, 346,
+ 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
+ 360, 365, 365, 365, 365, 365, 365, 365, 365, 365,
+ 365, 365, 368, 368, 368, 368, 368, 368, 368, 368,
+ 368, 368, 368, 372, 372, 372, 372, 372, 372, 372,
+ 372, 372, 372, 372, 386, 386, 386, 386, 386, 386,
+
+ 386, 386, 386, 386, 386, 391, 391, 391, 391, 391,
+ 391, 391, 391, 391, 391, 391, 394, 394, 394, 394,
+ 394, 394, 394, 394, 394, 394, 394, 398, 398, 398,
+ 398, 398, 398, 398, 398, 398, 398, 398, 412, 412,
+ 412, 412, 412, 412, 412, 412, 412, 412, 412, 417,
+ 1089, 417, 417, 417, 417, 417, 417, 417, 417, 417,
+ 419, 1089, 419, 419, 419, 419, 419, 419, 419, 419,
+ 419, 422, 1089, 422, 422, 422, 422, 422, 422, 422,
+ 422, 422, 435, 1089, 435, 435, 435, 435, 435, 435,
+ 435, 435, 435, 185, 1089, 1089, 185, 185, 445, 1089,
+
+ 1089, 445, 445, 445, 476, 1089, 1089, 476, 662, 1089,
+ 662, 662, 662, 662, 662, 662, 662, 662, 662, 665,
+ 1089, 665, 665, 665, 665, 665, 665, 665, 665, 665,
+ 667, 1089, 667, 667, 667, 667, 667, 667, 667, 667,
+ 667, 670, 670, 670, 670, 670, 670, 670, 247, 247,
+ 247, 247, 247, 247, 247, 247, 517, 517, 517, 517,
+ 517, 517, 679, 1089, 679, 679, 679, 679, 521, 1089,
+ 521, 521, 521, 521, 286, 286, 286, 286, 286, 286,
+ 286, 292, 1089, 292, 292, 292, 292, 292, 292, 292,
+ 292, 292, 690, 1089, 690, 690, 690, 690, 690, 690,
+
+ 690, 690, 690, 693, 1089, 693, 693, 693, 693, 693,
+ 693, 693, 693, 693, 694, 1089, 694, 694, 694, 694,
+ 694, 694, 694, 694, 694, 697, 1089, 697, 697, 697,
+ 697, 697, 697, 697, 697, 697, 246, 246, 246, 246,
+ 246, 246, 246, 320, 320, 1089, 320, 320, 320, 320,
+ 320, 320, 320, 320, 710, 710, 710, 710, 710, 710,
+ 710, 710, 710, 710, 710, 712, 712, 1089, 712, 712,
+ 712, 712, 712, 712, 712, 712, 339, 339, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 720, 720, 720,
+ 720, 720, 720, 720, 720, 720, 720, 720, 724, 724,
+
+ 724, 724, 724, 724, 724, 724, 724, 724, 724, 726,
+ 726, 726, 726, 726, 726, 726, 726, 726, 726, 726,
+ 730, 730, 730, 730, 730, 730, 730, 730, 730, 730,
+ 730, 365, 365, 365, 365, 365, 365, 365, 365, 365,
+ 365, 365, 738, 738, 738, 738, 738, 738, 738, 738,
+ 738, 738, 738, 742, 742, 742, 742, 742, 742, 742,
+ 742, 742, 742, 742, 744, 744, 744, 744, 744, 744,
+ 744, 744, 744, 744, 744, 748, 748, 748, 748, 748,
+ 748, 748, 748, 748, 748, 748, 391, 391, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 756, 756, 756,
+
+ 756, 756, 756, 756, 756, 756, 756, 756, 760, 760,
+ 760, 760, 760, 760, 760, 760, 760, 760, 760, 762,
+ 762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
+ 766, 766, 766, 766, 766, 766, 766, 766, 766, 766,
+ 766, 417, 1089, 417, 417, 417, 417, 417, 417, 417,
+ 417, 417, 774, 1089, 774, 774, 774, 774, 774, 774,
+ 774, 774, 774, 777, 1089, 777, 777, 777, 777, 777,
+ 777, 777, 777, 777, 778, 1089, 778, 778, 778, 778,
+ 778, 778, 778, 778, 778, 781, 1089, 781, 781, 781,
+ 781, 781, 781, 781, 781, 781, 445, 1089, 1089, 445,
+
+ 445, 445, 662, 1089, 662, 662, 662, 662, 662, 662,
+ 662, 662, 662, 665, 1089, 665, 665, 665, 665, 665,
+ 665, 665, 665, 665, 667, 1089, 667, 667, 667, 667,
+ 667, 667, 667, 667, 667, 670, 670, 670, 670, 670,
+ 670, 670, 247, 247, 247, 247, 247, 247, 247, 247,
+ 679, 1089, 679, 679, 679, 679, 521, 1089, 521, 521,
+ 521, 521, 286, 286, 286, 286, 286, 286, 286, 292,
+ 1089, 292, 292, 292, 292, 292, 292, 292, 292, 292,
+ 690, 1089, 690, 690, 690, 690, 690, 690, 690, 690,
+ 690, 693, 1089, 693, 693, 693, 693, 693, 693, 693,
+
+ 693, 693, 694, 1089, 694, 694, 694, 694, 694, 694,
+ 694, 694, 694, 697, 1089, 697, 697, 697, 697, 697,
+ 697, 697, 697, 697, 246, 246, 246, 246, 246, 246,
+ 246, 320, 320, 1089, 320, 320, 320, 320, 320, 320,
+ 320, 320, 710, 710, 710, 710, 710, 710, 710, 710,
+ 710, 710, 710, 712, 712, 1089, 712, 712, 712, 712,
+ 712, 712, 712, 712, 339, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 339, 720, 720, 720, 720, 720,
+ 720, 720, 720, 720, 720, 720, 724, 724, 724, 724,
+ 724, 724, 724, 724, 724, 724, 724, 726, 726, 726,
- 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
- 342, 345, 345, 345, 345, 345, 345, 345, 345, 345,
- 345, 345, 349, 349, 349, 349, 349, 349, 349, 349,
- 349, 349, 349, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 363, 363, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 369, 369, 369, 369, 369,
- 369, 369, 369, 369, 369, 369, 373, 373, 373, 373,
- 373, 373, 373, 373, 373, 373, 373, 387, 387, 387,
- 387, 387, 387, 387, 387, 387, 387, 387, 390, 1061,
- 390, 390, 390, 390, 390, 390, 390, 390, 390, 392,
-
- 1061, 392, 392, 392, 392, 392, 392, 392, 392, 392,
- 395, 1061, 395, 395, 395, 395, 395, 395, 395, 395,
- 395, 408, 1061, 408, 408, 408, 408, 408, 408, 408,
- 408, 408, 169, 1061, 1061, 169, 169, 417, 1061, 1061,
- 417, 417, 417, 448, 1061, 1061, 448, 634, 1061, 634,
- 634, 634, 634, 634, 634, 634, 634, 634, 637, 1061,
- 637, 637, 637, 637, 637, 637, 637, 637, 637, 639,
- 1061, 639, 639, 639, 639, 639, 639, 639, 639, 639,
- 642, 642, 642, 642, 642, 642, 642, 231, 231, 231,
- 231, 231, 231, 231, 231, 489, 489, 489, 489, 489,
-
- 489, 651, 1061, 651, 651, 651, 651, 493, 1061, 493,
- 493, 493, 493, 268, 268, 268, 268, 268, 268, 268,
- 274, 1061, 274, 274, 274, 274, 274, 274, 274, 274,
- 274, 662, 1061, 662, 662, 662, 662, 662, 662, 662,
- 662, 662, 665, 1061, 665, 665, 665, 665, 665, 665,
- 665, 665, 665, 666, 1061, 666, 666, 666, 666, 666,
- 666, 666, 666, 666, 669, 1061, 669, 669, 669, 669,
- 669, 669, 669, 669, 669, 230, 230, 230, 230, 230,
- 230, 230, 300, 300, 1061, 300, 300, 300, 300, 300,
- 300, 300, 300, 682, 682, 682, 682, 682, 682, 682,
-
- 682, 682, 682, 682, 684, 684, 1061, 684, 684, 684,
- 684, 684, 684, 684, 684, 318, 318, 318, 318, 318,
- 318, 318, 318, 318, 318, 318, 692, 692, 692, 692,
- 692, 692, 692, 692, 692, 692, 692, 696, 696, 696,
- 696, 696, 696, 696, 696, 696, 696, 696, 698, 698,
- 698, 698, 698, 698, 698, 698, 698, 698, 698, 702,
- 702, 702, 702, 702, 702, 702, 702, 702, 702, 702,
- 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
- 342, 710, 710, 710, 710, 710, 710, 710, 710, 710,
- 710, 710, 714, 714, 714, 714, 714, 714, 714, 714,
-
- 714, 714, 714, 716, 716, 716, 716, 716, 716, 716,
- 716, 716, 716, 716, 720, 720, 720, 720, 720, 720,
- 720, 720, 720, 720, 720, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 728, 728, 728, 728,
- 728, 728, 728, 728, 728, 728, 728, 732, 732, 732,
- 732, 732, 732, 732, 732, 732, 732, 732, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734, 734, 738,
+ 726, 726, 726, 726, 726, 726, 726, 726, 730, 730,
+ 730, 730, 730, 730, 730, 730, 730, 730, 730, 365,
+ 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
738, 738, 738, 738, 738, 738, 738, 738, 738, 738,
- 390, 1061, 390, 390, 390, 390, 390, 390, 390, 390,
- 390, 746, 1061, 746, 746, 746, 746, 746, 746, 746,
+ 738, 742, 742, 742, 742, 742, 742, 742, 742, 742,
+ 742, 742, 744, 744, 744, 744, 744, 744, 744, 744,
+ 744, 744, 744, 748, 748, 748, 748, 748, 748, 748,
+ 748, 748, 748, 748, 391, 391, 391, 391, 391, 391,
+ 391, 391, 391, 391, 391, 756, 756, 756, 756, 756,
+ 756, 756, 756, 756, 756, 756, 760, 760, 760, 760,
+
+ 760, 760, 760, 760, 760, 760, 760, 762, 762, 762,
+ 762, 762, 762, 762, 762, 762, 762, 762, 766, 766,
+ 766, 766, 766, 766, 766, 766, 766, 766, 766, 417,
+ 1089, 417, 417, 417, 417, 417, 417, 417, 417, 417,
+ 774, 1089, 774, 774, 774, 774, 774, 774, 774, 774,
+ 774, 777, 1089, 777, 777, 777, 777, 777, 777, 777,
+ 777, 777, 778, 1089, 778, 778, 778, 778, 778, 778,
+ 778, 778, 778, 781, 1089, 781, 781, 781, 781, 781,
+ 781, 781, 781, 781, 445, 1089, 1089, 445, 445, 445,
+ 247, 247, 247, 247, 247, 247, 247, 247, 521, 1089,
+
+ 521, 521, 521, 521, 286, 286, 286, 286, 286, 286,
+ 286, 292, 1089, 292, 292, 292, 292, 292, 292, 292,
+ 292, 292, 246, 246, 246, 246, 246, 246, 246, 320,
+ 320, 1089, 320, 320, 320, 320, 320, 320, 320, 320,
+ 23, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
- 746, 746, 749, 1061, 749, 749, 749, 749, 749, 749,
- 749, 749, 749, 750, 1061, 750, 750, 750, 750, 750,
- 750, 750, 750, 750, 753, 1061, 753, 753, 753, 753,
- 753, 753, 753, 753, 753, 417, 1061, 1061, 417, 417,
- 417, 634, 1061, 634, 634, 634, 634, 634, 634, 634,
- 634, 634, 637, 1061, 637, 637, 637, 637, 637, 637,
- 637, 637, 637, 639, 1061, 639, 639, 639, 639, 639,
- 639, 639, 639, 639, 642, 642, 642, 642, 642, 642,
- 642, 231, 231, 231, 231, 231, 231, 231, 231, 651,
- 1061, 651, 651, 651, 651, 493, 1061, 493, 493, 493,
-
- 493, 268, 268, 268, 268, 268, 268, 268, 274, 1061,
- 274, 274, 274, 274, 274, 274, 274, 274, 274, 662,
- 1061, 662, 662, 662, 662, 662, 662, 662, 662, 662,
- 665, 1061, 665, 665, 665, 665, 665, 665, 665, 665,
- 665, 666, 1061, 666, 666, 666, 666, 666, 666, 666,
- 666, 666, 669, 1061, 669, 669, 669, 669, 669, 669,
- 669, 669, 669, 230, 230, 230, 230, 230, 230, 230,
- 300, 300, 1061, 300, 300, 300, 300, 300, 300, 300,
- 300, 682, 682, 682, 682, 682, 682, 682, 682, 682,
- 682, 682, 684, 684, 1061, 684, 684, 684, 684, 684,
-
- 684, 684, 684, 318, 318, 318, 318, 318, 318, 318,
- 318, 318, 318, 318, 692, 692, 692, 692, 692, 692,
- 692, 692, 692, 692, 692, 696, 696, 696, 696, 696,
- 696, 696, 696, 696, 696, 696, 698, 698, 698, 698,
- 698, 698, 698, 698, 698, 698, 698, 702, 702, 702,
- 702, 702, 702, 702, 702, 702, 702, 702, 342, 342,
- 342, 342, 342, 342, 342, 342, 342, 342, 342, 710,
- 710, 710, 710, 710, 710, 710, 710, 710, 710, 710,
- 714, 714, 714, 714, 714, 714, 714, 714, 714, 714,
- 714, 716, 716, 716, 716, 716, 716, 716, 716, 716,
-
- 716, 716, 720, 720, 720, 720, 720, 720, 720, 720,
- 720, 720, 720, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 728, 728, 728, 728, 728, 728,
- 728, 728, 728, 728, 728, 732, 732, 732, 732, 732,
- 732, 732, 732, 732, 732, 732, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 738, 738, 738,
- 738, 738, 738, 738, 738, 738, 738, 738, 390, 1061,
- 390, 390, 390, 390, 390, 390, 390, 390, 390, 746,
- 1061, 746, 746, 746, 746, 746, 746, 746, 746, 746,
- 749, 1061, 749, 749, 749, 749, 749, 749, 749, 749,
-
- 749, 750, 1061, 750, 750, 750, 750, 750, 750, 750,
- 750, 750, 753, 1061, 753, 753, 753, 753, 753, 753,
- 753, 753, 753, 417, 1061, 1061, 417, 417, 417, 231,
- 231, 231, 231, 231, 231, 231, 231, 493, 1061, 493,
- 493, 493, 493, 268, 268, 268, 268, 268, 268, 268,
- 274, 1061, 274, 274, 274, 274, 274, 274, 274, 274,
- 274, 230, 230, 230, 230, 230, 230, 230, 300, 300,
- 1061, 300, 300, 300, 300, 300, 300, 300, 300, 23,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061
+ 1089, 1089, 1089, 1089, 1089, 1089
} ;
-static yyconst flex_int16_t yy_chk[7046] =
+static yyconst flex_int16_t yy_chk[7107] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -1612,775 +1625,782 @@
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 3, 220, 3, 3, 3,
- 29, 44, 44, 3, 3, 220, 3, 3, 13, 3,
- 3, 3, 6, 14, 6, 6, 3, 3, 3, 3,
- 13, 13, 13, 13, 35, 14, 14, 14, 14, 25,
-
- 196, 25, 25, 29, 196, 6, 35, 27, 27, 27,
- 27, 3, 33, 3, 25, 31, 3, 31, 3, 31,
- 31, 3, 27, 3, 45, 45, 33, 3, 3, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 1, 1, 1, 1, 1, 2, 33, 2, 2, 29,
+ 35, 4, 236, 4, 4, 1083, 6, 40, 6, 6,
+ 33, 236, 35, 8, 40, 8, 8, 55, 2, 3,
+ 74, 3, 3, 3, 4, 44, 44, 3, 3, 6,
+
+ 3, 3, 29, 3, 3, 3, 8, 45, 45, 108,
+ 3, 3, 3, 3, 10, 13, 10, 10, 12, 1079,
+ 12, 12, 16, 74, 16, 16, 55, 13, 13, 13,
+ 13, 18, 108, 18, 18, 3, 20, 3, 20, 20,
+ 3, 22, 3, 22, 22, 3, 212, 3, 46, 46,
+ 212, 3, 3, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 7, 7, 7, 7, 7, 7,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
-
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 11, 11, 11, 11, 11, 11,
+ 9, 9, 9, 9, 9, 9, 9, 9, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 14, 1078, 14, 14, 31, 14, 31,
+ 82, 31, 31, 60, 1077, 60, 60, 82, 122, 122,
+ 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 17, 17, 17, 17, 17, 17,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 17,
+
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
-
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+
19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 21, 21, 21, 21, 21, 21,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
-
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 36,
- 1055, 36, 36, 36, 36, 40, 38, 36, 38, 38,
- 38, 38, 40, 102, 38, 39, 39, 39, 39, 46,
- 46, 39, 1051, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 102, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 25, 91, 25, 25, 27, 27,
+ 27, 27, 36, 209, 36, 36, 36, 36, 209, 25,
+ 36, 47, 38, 27, 38, 38, 38, 38, 47, 1075,
+ 38, 39, 39, 39, 39, 47, 233, 39, 91, 39,
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 41, 47, 41, 41, 41, 41, 200, 51, 47, 49,
- 1050, 70, 41, 41, 51, 47, 49, 41, 55, 41,
- 200, 51, 41, 49, 56, 58, 41, 58, 58, 41,
- 42, 78, 42, 42, 42, 42, 676, 41, 78, 48,
- 197, 52, 197, 42, 70, 41, 48, 42, 52, 48,
- 48, 48, 48, 48, 49, 52, 193, 55, 51, 42,
- 43, 193, 43, 676, 56, 43, 1049, 50, 43, 43,
- 43, 43, 43, 43, 50, 53, 43, 822, 43, 43,
- 54, 50, 53, 218, 52, 57, 57, 54, 218, 53,
-
- 59, 59, 59, 59, 54, 60, 64, 60, 60, 60,
- 60, 1047, 80, 64, 57, 50, 87, 822, 62, 80,
- 64, 50, 53, 114, 114, 113, 62, 62, 62, 62,
- 62, 62, 116, 116, 54, 53, 61, 62, 67, 67,
- 67, 67, 80, 64, 69, 69, 69, 69, 71, 87,
- 71, 217, 71, 71, 61, 61, 105, 61, 113, 61,
- 105, 61, 61, 61, 61, 105, 61, 217, 61, 61,
- 61, 74, 1046, 73, 61, 73, 73, 73, 73, 126,
- 126, 74, 74, 74, 74, 76, 1044, 76, 76, 76,
- 76, 81, 81, 81, 81, 128, 128, 198, 76, 198,
-
- 79, 627, 76, 79, 79, 79, 79, 79, 74, 74,
- 627, 118, 118, 74, 76, 82, 82, 82, 82, 89,
- 118, 89, 89, 89, 89, 90, 90, 90, 90, 123,
- 123, 92, 99, 99, 99, 99, 117, 117, 92, 153,
- 117, 92, 130, 130, 1043, 92, 98, 98, 98, 98,
- 123, 130, 166, 90, 138, 138, 92, 90, 91, 1040,
- 91, 91, 91, 91, 92, 107, 107, 107, 107, 109,
- 91, 91, 153, 117, 98, 91, 109, 91, 98, 109,
- 91, 140, 140, 109, 91, 166, 106, 91, 106, 106,
- 106, 106, 195, 107, 109, 91, 195, 107, 135, 135,
-
- 195, 257, 109, 91, 94, 94, 257, 94, 94, 94,
- 94, 94, 94, 94, 94, 94, 94, 94, 94, 135,
- 94, 94, 215, 119, 119, 268, 94, 94, 94, 94,
- 215, 100, 268, 100, 100, 100, 100, 119, 276, 119,
- 119, 119, 119, 94, 100, 131, 131, 216, 100, 142,
- 142, 216, 129, 129, 190, 430, 129, 430, 142, 131,
- 100, 131, 131, 131, 131, 216, 190, 94, 94, 95,
- 95, 276, 95, 95, 95, 95, 95, 95, 95, 95,
- 95, 95, 95, 95, 1037, 95, 95, 120, 120, 129,
- 267, 95, 95, 95, 95, 147, 147, 163, 267, 163,
-
- 163, 132, 132, 120, 120, 120, 120, 155, 95, 155,
- 155, 155, 155, 427, 95, 122, 147, 132, 132, 132,
- 132, 299, 122, 206, 206, 122, 209, 209, 209, 122,
- 427, 120, 95, 95, 108, 120, 108, 108, 108, 108,
- 122, 156, 156, 156, 156, 132, 108, 108, 122, 132,
- 821, 108, 162, 108, 162, 162, 108, 299, 141, 141,
- 108, 291, 141, 108, 214, 214, 291, 162, 816, 156,
- 816, 108, 1036, 156, 170, 170, 170, 170, 821, 108,
- 111, 111, 111, 111, 111, 111, 1035, 111, 111, 111,
- 111, 111, 111, 111, 111, 141, 111, 111, 392, 134,
-
- 228, 228, 111, 111, 111, 111, 134, 468, 146, 134,
- 1033, 143, 143, 134, 247, 146, 247, 247, 146, 111,
- 830, 223, 146, 830, 134, 143, 223, 143, 143, 143,
- 143, 392, 134, 146, 171, 171, 171, 171, 896, 223,
- 468, 146, 896, 111, 111, 112, 112, 112, 112, 112,
- 112, 1032, 112, 112, 112, 112, 112, 112, 112, 112,
- 834, 112, 112, 834, 158, 254, 254, 112, 112, 112,
- 112, 158, 286, 286, 158, 144, 144, 1031, 158, 172,
- 172, 172, 172, 1030, 112, 173, 173, 173, 173, 158,
- 112, 144, 144, 144, 144, 309, 309, 158, 180, 180,
-
- 180, 180, 314, 184, 184, 184, 184, 314, 112, 112,
- 121, 121, 250, 301, 184, 838, 250, 301, 838, 144,
- 250, 892, 301, 144, 121, 1023, 121, 121, 121, 121,
- 184, 205, 205, 205, 205, 1018, 121, 121, 231, 318,
- 318, 121, 205, 121, 892, 231, 121, 320, 320, 207,
- 121, 207, 231, 121, 207, 207, 207, 207, 205, 323,
- 323, 121, 258, 258, 258, 258, 289, 289, 289, 121,
- 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
- 124, 124, 124, 124, 124, 842, 124, 124, 842, 235,
- 324, 324, 124, 124, 124, 124, 235, 181, 677, 181,
-
- 181, 181, 181, 235, 941, 233, 234, 335, 335, 124,
- 181, 1017, 233, 234, 181, 233, 233, 233, 233, 233,
- 234, 260, 260, 260, 260, 677, 181, 262, 262, 262,
- 262, 262, 1014, 124, 124, 125, 125, 125, 125, 125,
- 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
- 941, 125, 125, 1013, 236, 238, 234, 125, 125, 125,
- 125, 236, 238, 237, 240, 239, 271, 942, 236, 238,
- 237, 240, 239, 271, 125, 342, 342, 237, 240, 239,
- 125, 241, 272, 272, 272, 272, 344, 344, 241, 1011,
- 238, 273, 273, 273, 273, 241, 347, 347, 125, 125,
-
- 133, 133, 325, 325, 236, 237, 237, 348, 348, 271,
- 1010, 325, 240, 942, 133, 239, 133, 133, 133, 133,
- 312, 312, 312, 241, 359, 359, 133, 133, 326, 326,
- 826, 133, 826, 133, 366, 366, 133, 326, 321, 321,
- 133, 270, 321, 133, 270, 270, 270, 270, 270, 349,
- 349, 133, 280, 280, 280, 280, 368, 368, 349, 133,
- 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
- 136, 136, 136, 136, 136, 321, 136, 136, 303, 303,
- 303, 303, 136, 136, 136, 136, 1009, 281, 407, 281,
- 281, 281, 281, 407, 282, 282, 282, 282, 897, 136,
-
- 281, 287, 897, 287, 281, 282, 287, 287, 287, 287,
- 371, 371, 310, 985, 310, 985, 281, 310, 310, 310,
- 310, 282, 1007, 136, 136, 137, 137, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 893, 137, 137, 372, 372, 330, 330, 137, 137, 137,
- 137, 285, 285, 285, 285, 298, 890, 298, 298, 298,
- 298, 890, 285, 893, 137, 331, 331, 898, 298, 516,
- 137, 898, 298, 322, 322, 354, 354, 322, 285, 333,
- 333, 383, 383, 1006, 298, 350, 350, 474, 137, 137,
- 145, 145, 330, 516, 350, 333, 333, 516, 304, 1005,
-
- 304, 304, 304, 304, 145, 1004, 145, 145, 145, 145,
- 322, 304, 331, 402, 402, 304, 145, 145, 327, 327,
- 474, 145, 354, 145, 444, 444, 145, 304, 336, 336,
- 145, 355, 355, 145, 327, 327, 327, 327, 338, 338,
- 1002, 145, 338, 891, 336, 336, 336, 338, 891, 145,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 1001, 148, 148, 305, 305,
- 305, 305, 148, 148, 148, 148, 453, 1000, 355, 305,
- 308, 308, 308, 308, 453, 334, 334, 453, 899, 148,
- 998, 308, 899, 345, 345, 305, 334, 345, 334, 373,
-
- 373, 334, 334, 334, 334, 346, 346, 308, 373, 346,
- 378, 378, 990, 148, 148, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 345, 149, 149, 988, 329, 329, 656, 149, 149, 149,
- 149, 986, 346, 656, 369, 369, 332, 332, 369, 984,
- 329, 329, 329, 329, 149, 357, 357, 378, 360, 360,
- 149, 329, 332, 332, 332, 332, 503, 503, 379, 379,
- 656, 357, 357, 332, 360, 360, 360, 329, 149, 149,
- 157, 369, 157, 157, 157, 157, 900, 362, 362, 332,
- 900, 362, 157, 157, 351, 351, 362, 157, 411, 157,
-
- 411, 411, 157, 358, 358, 983, 157, 381, 381, 157,
- 351, 351, 351, 351, 358, 379, 358, 157, 982, 358,
- 358, 358, 358, 381, 381, 157, 160, 160, 981, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 947, 160, 160, 353, 353, 374, 374, 160, 160,
- 160, 160, 405, 405, 405, 374, 521, 521, 375, 375,
- 353, 353, 353, 353, 901, 160, 356, 356, 901, 370,
- 370, 353, 979, 370, 375, 375, 375, 375, 396, 396,
- 396, 396, 356, 356, 356, 356, 947, 353, 508, 160,
- 160, 161, 161, 356, 161, 161, 161, 161, 161, 161,
-
- 161, 161, 161, 161, 161, 161, 370, 161, 161, 356,
- 377, 377, 978, 161, 161, 161, 161, 412, 412, 412,
- 412, 508, 384, 384, 575, 575, 377, 377, 377, 377,
- 161, 650, 650, 380, 380, 977, 161, 377, 384, 384,
- 384, 413, 413, 413, 413, 414, 414, 414, 414, 380,
- 380, 380, 380, 377, 161, 161, 290, 290, 290, 290,
- 380, 415, 415, 415, 415, 290, 290, 290, 386, 386,
- 530, 530, 386, 447, 447, 447, 380, 386, 976, 290,
- 290, 290, 290, 290, 290, 292, 292, 975, 292, 292,
- 292, 292, 292, 292, 292, 292, 292, 292, 292, 292,
-
- 510, 292, 292, 382, 382, 580, 974, 292, 292, 292,
- 292, 506, 506, 506, 382, 987, 382, 987, 530, 382,
- 382, 382, 382, 397, 292, 397, 397, 397, 397, 445,
- 445, 445, 445, 510, 673, 673, 397, 403, 580, 403,
- 397, 973, 403, 403, 403, 403, 694, 694, 292, 292,
- 293, 293, 397, 293, 293, 293, 293, 293, 293, 293,
- 293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
- 293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
- 293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
- 293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
-
- 293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
- 293, 293, 293, 293, 293, 294, 294, 970, 294, 294,
- 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
- 969, 294, 294, 398, 398, 398, 398, 294, 294, 294,
- 294, 524, 524, 524, 398, 401, 401, 401, 401, 968,
- 443, 443, 443, 443, 294, 967, 401, 416, 943, 416,
- 398, 443, 416, 416, 416, 416, 446, 446, 446, 446,
- 695, 695, 401, 294, 531, 531, 943, 443, 294, 294,
- 313, 313, 313, 313, 965, 476, 478, 479, 480, 313,
- 313, 313, 476, 478, 479, 480, 963, 544, 544, 476,
-
- 478, 479, 480, 313, 313, 313, 313, 313, 313, 315,
- 315, 315, 315, 315, 315, 962, 315, 315, 315, 315,
- 315, 315, 315, 315, 531, 315, 315, 961, 481, 479,
- 483, 315, 315, 315, 315, 481, 960, 483, 504, 504,
- 504, 504, 481, 959, 483, 544, 539, 539, 315, 491,
- 491, 491, 491, 491, 499, 539, 499, 700, 700, 499,
- 499, 499, 499, 505, 505, 505, 505, 522, 522, 522,
- 522, 483, 315, 315, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
-
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 317,
- 317, 317, 317, 317, 317, 958, 317, 317, 317, 317,
- 317, 317, 317, 317, 957, 317, 317, 701, 701, 484,
- 498, 317, 317, 317, 317, 477, 484, 498, 956, 482,
- 902, 526, 477, 484, 902, 526, 482, 955, 317, 477,
- 526, 558, 558, 482, 533, 533, 582, 502, 502, 502,
- 502, 498, 578, 578, 578, 498, 484, 317, 502, 657,
-
- 533, 533, 317, 317, 328, 328, 657, 482, 538, 538,
- 477, 482, 538, 634, 502, 553, 553, 639, 328, 582,
- 328, 328, 328, 328, 553, 520, 520, 520, 520, 558,
- 662, 328, 517, 657, 517, 328, 520, 517, 517, 517,
- 517, 523, 523, 523, 523, 538, 634, 328, 337, 337,
- 639, 934, 520, 534, 534, 712, 712, 894, 545, 545,
- 535, 535, 894, 662, 337, 337, 337, 337, 945, 534,
- 534, 534, 534, 337, 337, 337, 535, 535, 535, 535,
- 666, 559, 559, 576, 576, 576, 576, 337, 337, 337,
- 337, 337, 337, 339, 339, 339, 339, 339, 339, 339,
-
- 339, 339, 339, 339, 339, 339, 339, 339, 545, 339,
- 339, 529, 529, 666, 945, 339, 339, 339, 339, 536,
- 536, 989, 529, 989, 529, 547, 547, 529, 529, 529,
- 529, 559, 339, 543, 543, 536, 536, 536, 561, 561,
- 895, 547, 547, 932, 543, 895, 543, 713, 713, 543,
- 543, 543, 543, 931, 561, 561, 339, 339, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
-
- 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 341, 341, 341, 341, 341, 341, 341,
- 341, 341, 341, 341, 341, 341, 341, 341, 930, 341,
- 341, 532, 532, 567, 567, 341, 341, 341, 341, 718,
- 718, 929, 567, 546, 546, 719, 719, 532, 532, 532,
- 532, 927, 341, 540, 540, 730, 730, 540, 532, 546,
- 546, 546, 546, 926, 548, 548, 577, 577, 577, 577,
- 546, 341, 731, 731, 532, 746, 341, 341, 352, 352,
- 548, 548, 548, 548, 549, 549, 546, 552, 552, 903,
-
- 540, 552, 352, 903, 352, 352, 352, 352, 550, 550,
- 549, 549, 549, 549, 750, 352, 554, 554, 746, 352,
- 554, 944, 644, 645, 550, 550, 550, 557, 557, 644,
- 645, 352, 361, 361, 552, 925, 644, 645, 557, 944,
- 557, 736, 736, 557, 557, 557, 557, 750, 361, 361,
- 361, 361, 946, 554, 737, 737, 649, 361, 361, 361,
- 566, 566, 888, 649, 566, 585, 585, 585, 585, 888,
- 649, 361, 361, 361, 361, 361, 361, 363, 363, 363,
- 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
- 363, 363, 888, 363, 363, 560, 560, 566, 946, 363,
-
- 363, 363, 363, 564, 564, 649, 682, 562, 562, 924,
- 682, 560, 560, 560, 560, 682, 363, 563, 563, 564,
- 564, 564, 560, 562, 562, 562, 562, 586, 586, 586,
- 586, 827, 827, 563, 563, 563, 563, 997, 560, 997,
- 363, 363, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
+ 39, 39, 233, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 41, 52, 41, 41,
+ 41, 41, 216, 51, 52, 49, 971, 53, 41, 41,
+ 51, 52, 49, 41, 53, 41, 216, 51, 41, 49,
+ 56, 53, 41, 112, 971, 41, 42, 112, 42, 42,
+
+ 42, 42, 112, 41, 67, 48, 67, 67, 975, 42,
+ 52, 41, 48, 42, 53, 48, 48, 48, 48, 48,
+ 49, 121, 124, 124, 51, 42, 43, 53, 43, 455,
+ 56, 43, 1074, 50, 43, 43, 43, 43, 43, 43,
+ 50, 54, 43, 286, 43, 43, 455, 50, 54, 57,
+ 286, 57, 57, 975, 121, 54, 66, 58, 58, 58,
+ 58, 59, 59, 66, 57, 61, 61, 61, 61, 655,
+ 66, 50, 58, 68, 68, 68, 68, 50, 655, 62,
+ 59, 62, 62, 62, 62, 54, 63, 64, 71, 71,
+ 71, 71, 213, 66, 213, 64, 64, 64, 64, 64,
+
+ 64, 126, 126, 167, 63, 63, 64, 63, 182, 63,
+ 126, 63, 63, 63, 63, 214, 63, 214, 63, 63,
+ 63, 136, 136, 84, 63, 73, 73, 73, 73, 75,
+ 84, 75, 78, 75, 75, 77, 167, 77, 77, 77,
+ 77, 182, 78, 78, 78, 78, 80, 1072, 80, 80,
+ 80, 80, 231, 84, 85, 85, 85, 85, 1071, 80,
+ 231, 83, 849, 80, 83, 83, 83, 83, 83, 78,
+ 78, 138, 138, 285, 78, 80, 86, 86, 86, 86,
+ 93, 285, 93, 93, 93, 93, 94, 94, 94, 94,
+ 849, 100, 96, 100, 100, 101, 101, 101, 101, 96,
+
+ 234, 109, 96, 109, 109, 234, 96, 104, 104, 104,
+ 104, 140, 140, 120, 94, 120, 120, 96, 94, 95,
+ 140, 95, 95, 95, 95, 96, 105, 105, 105, 105,
+ 116, 95, 95, 131, 131, 104, 95, 116, 95, 104,
+ 116, 95, 150, 150, 116, 95, 684, 113, 95, 113,
+ 113, 113, 113, 684, 131, 116, 95, 134, 134, 134,
+ 134, 152, 152, 116, 95, 98, 98, 1068, 98, 98,
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
+ 684, 98, 98, 114, 114, 114, 114, 98, 98, 98,
+ 98, 206, 106, 1065, 106, 106, 106, 106, 135, 135,
+
+ 135, 135, 1064, 206, 98, 106, 127, 127, 458, 106,
+ 458, 114, 125, 125, 239, 114, 125, 154, 154, 239,
+ 127, 106, 127, 127, 127, 127, 154, 1063, 98, 98,
+ 99, 99, 239, 99, 99, 99, 99, 99, 99, 99,
+ 99, 99, 99, 99, 99, 858, 99, 99, 858, 125,
+ 145, 145, 99, 99, 99, 99, 130, 148, 148, 148,
+ 148, 128, 128, 130, 139, 139, 130, 1061, 139, 99,
+ 130, 145, 222, 222, 844, 99, 844, 128, 128, 128,
+ 128, 130, 149, 149, 149, 149, 153, 153, 211, 130,
+ 153, 704, 211, 99, 99, 115, 211, 115, 115, 115,
+
+ 115, 139, 225, 225, 225, 128, 1060, 115, 115, 128,
+ 159, 159, 115, 176, 115, 176, 176, 115, 704, 141,
+ 141, 115, 1059, 153, 115, 162, 162, 162, 162, 230,
+ 230, 159, 115, 141, 274, 141, 141, 141, 141, 274,
+ 115, 118, 118, 118, 118, 118, 118, 1058, 118, 118,
+ 118, 118, 118, 118, 118, 118, 1051, 118, 118, 163,
+ 163, 163, 163, 118, 118, 118, 118, 155, 155, 169,
+ 294, 169, 169, 169, 169, 244, 244, 142, 142, 862,
+ 118, 155, 862, 155, 155, 155, 155, 177, 177, 177,
+ 177, 271, 271, 142, 142, 142, 142, 178, 1046, 178,
+
+ 178, 304, 304, 294, 118, 118, 119, 119, 119, 119,
+ 119, 119, 178, 119, 119, 119, 119, 119, 119, 119,
+ 119, 142, 119, 119, 1045, 142, 419, 144, 119, 119,
+ 119, 119, 232, 158, 144, 1042, 232, 144, 156, 156,
+ 158, 144, 854, 158, 854, 119, 179, 158, 179, 179,
+ 232, 119, 144, 969, 156, 156, 156, 156, 158, 419,
+ 144, 186, 186, 186, 186, 264, 158, 264, 264, 119,
+ 119, 129, 129, 170, 170, 170, 170, 187, 187, 187,
+ 187, 275, 156, 275, 275, 129, 156, 129, 129, 129,
+ 129, 188, 188, 188, 188, 309, 172, 129, 129, 969,
+
+ 309, 170, 129, 172, 129, 170, 172, 129, 329, 329,
+ 172, 129, 1041, 247, 129, 189, 189, 189, 189, 1039,
+ 247, 172, 129, 196, 196, 196, 196, 247, 1038, 172,
+ 129, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 318, 132, 132, 313,
+ 251, 313, 313, 132, 132, 132, 132, 251, 197, 1037,
+ 197, 197, 197, 197, 251, 200, 200, 200, 200, 924,
+ 132, 197, 223, 924, 223, 197, 200, 223, 223, 223,
+ 223, 267, 318, 289, 321, 267, 334, 197, 321, 267,
+ 289, 334, 200, 321, 132, 132, 133, 133, 133, 133,
+
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 920, 133, 133, 262, 496, 262, 262, 133, 133,
+ 133, 133, 221, 221, 221, 221, 289, 1035, 319, 262,
+ 319, 319, 249, 221, 920, 133, 307, 307, 307, 249,
+ 250, 133, 249, 249, 249, 249, 249, 250, 496, 221,
+ 252, 254, 339, 339, 250, 1034, 253, 252, 254, 133,
+ 133, 143, 143, 253, 252, 254, 705, 255, 921, 257,
+ 253, 332, 332, 332, 255, 143, 257, 143, 143, 143,
+ 143, 255, 338, 257, 338, 338, 254, 143, 143, 1033,
+ 250, 921, 143, 705, 143, 341, 341, 143, 253, 253,
+
+ 252, 143, 256, 502, 143, 276, 276, 276, 276, 256,
+ 434, 257, 143, 344, 344, 434, 256, 255, 345, 345,
+ 143, 146, 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 502, 146, 146, 278,
+ 278, 278, 278, 146, 146, 146, 146, 346, 346, 1032,
+ 256, 280, 280, 280, 280, 280, 346, 1013, 288, 1013,
+ 146, 288, 288, 288, 288, 288, 290, 290, 290, 290,
+ 291, 291, 291, 291, 298, 298, 298, 298, 323, 323,
+ 323, 323, 351, 351, 146, 146, 147, 147, 147, 147,
+ 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
+
+ 147, 866, 147, 147, 866, 347, 347, 918, 147, 147,
+ 147, 147, 918, 299, 347, 299, 299, 299, 299, 352,
+ 352, 300, 300, 300, 300, 147, 299, 356, 356, 351,
+ 299, 147, 300, 303, 303, 303, 303, 354, 354, 342,
+ 342, 850, 299, 342, 303, 365, 365, 1030, 300, 147,
+ 147, 157, 157, 354, 354, 925, 305, 970, 305, 925,
+ 303, 305, 305, 305, 305, 157, 352, 157, 157, 157,
+ 157, 850, 325, 325, 325, 325, 342, 157, 157, 367,
+ 367, 1029, 157, 325, 157, 370, 370, 157, 371, 371,
+ 330, 157, 330, 536, 157, 330, 330, 330, 330, 325,
+
+ 343, 343, 157, 970, 343, 363, 363, 363, 363, 976,
+ 157, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 536, 160, 160, 364,
+ 364, 364, 364, 160, 160, 160, 160, 343, 317, 538,
+ 317, 317, 317, 317, 324, 1028, 324, 324, 324, 324,
+ 160, 317, 348, 348, 976, 317, 1026, 324, 608, 368,
+ 368, 324, 926, 368, 382, 382, 926, 317, 348, 348,
+ 348, 348, 538, 324, 160, 160, 161, 161, 161, 161,
+ 161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
+ 161, 608, 161, 161, 357, 357, 368, 977, 161, 161,
+
+ 161, 161, 328, 328, 328, 328, 350, 350, 372, 372,
+ 357, 357, 357, 328, 927, 161, 972, 372, 927, 355,
+ 355, 161, 350, 350, 350, 350, 610, 369, 369, 328,
+ 355, 369, 355, 350, 972, 355, 355, 355, 355, 161,
+ 161, 171, 977, 171, 171, 171, 171, 359, 359, 350,
+ 919, 359, 662, 171, 171, 919, 359, 1018, 171, 610,
+ 171, 377, 377, 171, 369, 373, 373, 171, 378, 378,
+ 171, 385, 385, 1016, 373, 385, 391, 391, 171, 973,
+ 385, 389, 389, 389, 389, 662, 171, 174, 174, 1014,
+ 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
+
+ 174, 174, 922, 174, 174, 353, 353, 922, 377, 174,
+ 174, 174, 174, 380, 380, 378, 667, 374, 374, 393,
+ 393, 353, 353, 353, 353, 973, 174, 376, 376, 380,
+ 380, 1012, 353, 374, 374, 374, 374, 390, 390, 390,
+ 390, 396, 396, 376, 376, 376, 376, 1011, 353, 667,
+ 174, 174, 175, 175, 376, 175, 175, 175, 175, 175,
+ 175, 175, 175, 175, 175, 175, 175, 974, 175, 175,
+ 376, 379, 379, 1010, 175, 175, 175, 175, 397, 397,
+ 408, 408, 1009, 381, 381, 403, 403, 379, 379, 379,
+ 379, 175, 383, 383, 381, 1007, 381, 175, 379, 381,
+
+ 381, 381, 381, 398, 398, 429, 429, 928, 383, 383,
+ 383, 928, 398, 974, 379, 175, 175, 308, 308, 308,
+ 308, 1006, 399, 399, 472, 472, 308, 308, 308, 394,
+ 394, 399, 403, 394, 690, 395, 395, 404, 404, 395,
+ 308, 308, 308, 308, 308, 308, 310, 310, 1005, 310,
+ 310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
+ 310, 1004, 310, 310, 400, 400, 394, 690, 310, 310,
+ 310, 310, 395, 406, 406, 407, 407, 432, 432, 432,
+ 400, 400, 400, 400, 404, 310, 407, 1003, 407, 406,
+ 406, 407, 407, 407, 407, 411, 411, 531, 531, 411,
+
+ 415, 415, 415, 415, 411, 416, 416, 416, 416, 310,
+ 310, 311, 311, 1002, 311, 311, 311, 311, 311, 311,
+ 311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
+ 311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
+ 311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
+ 311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
+ 311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
+ 311, 311, 311, 311, 311, 311, 312, 312, 1001, 312,
+ 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
+ 312, 923, 312, 312, 402, 402, 923, 481, 312, 312,
+
+ 312, 312, 409, 409, 998, 481, 405, 405, 481, 978,
+ 402, 402, 402, 402, 438, 312, 438, 438, 409, 409,
+ 409, 402, 405, 405, 405, 405, 423, 423, 423, 423,
+ 475, 475, 475, 405, 312, 549, 549, 402, 997, 312,
+ 312, 333, 333, 333, 333, 439, 996, 439, 439, 405,
+ 333, 333, 333, 430, 978, 430, 603, 603, 430, 430,
+ 430, 430, 678, 678, 333, 333, 333, 333, 333, 333,
+ 335, 335, 335, 335, 335, 335, 995, 335, 335, 335,
+ 335, 335, 335, 335, 335, 967, 335, 335, 440, 440,
+ 440, 440, 335, 335, 335, 335, 967, 424, 993, 424,
+
+ 424, 424, 424, 967, 425, 425, 425, 425, 991, 335,
+ 424, 534, 534, 534, 424, 425, 441, 441, 441, 441,
+ 442, 442, 442, 442, 701, 701, 424, 443, 443, 443,
+ 443, 425, 990, 335, 335, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+
+ 337, 337, 337, 337, 337, 337, 989, 337, 337, 337,
+ 337, 337, 337, 337, 337, 988, 337, 337, 428, 428,
+ 428, 428, 337, 337, 337, 337, 444, 544, 444, 428,
+ 987, 444, 444, 444, 444, 471, 471, 471, 471, 337,
+ 473, 473, 473, 473, 986, 428, 471, 474, 474, 474,
+ 474, 544, 985, 504, 505, 544, 694, 1015, 337, 1015,
+ 504, 505, 471, 337, 337, 349, 349, 504, 505, 558,
+ 558, 506, 984, 507, 532, 532, 532, 532, 506, 349,
+ 507, 349, 349, 349, 349, 506, 508, 507, 509, 694,
+ 511, 510, 349, 508, 983, 509, 349, 511, 510, 505,
+
+ 508, 962, 509, 554, 511, 510, 512, 554, 349, 358,
+ 358, 526, 554, 512, 774, 507, 870, 558, 526, 870,
+ 512, 533, 533, 533, 533, 358, 358, 358, 358, 510,
+ 1017, 511, 1017, 510, 358, 358, 358, 519, 519, 519,
+ 519, 519, 526, 512, 572, 572, 526, 774, 358, 358,
+ 358, 358, 358, 358, 360, 360, 360, 360, 360, 360,
+ 360, 360, 360, 360, 360, 360, 360, 360, 360, 805,
+ 360, 360, 530, 530, 530, 530, 360, 360, 360, 360,
+ 527, 960, 527, 530, 805, 527, 527, 527, 527, 545,
+ 805, 545, 572, 360, 545, 545, 545, 545, 959, 530,
+
+ 550, 550, 550, 550, 551, 551, 551, 551, 552, 552,
+ 552, 604, 604, 604, 604, 722, 722, 360, 360, 361,
+ 361, 361, 361, 361, 361, 361, 361, 361, 361, 361,
+ 361, 361, 361, 361, 361, 361, 361, 361, 361, 361,
+ 361, 361, 361, 361, 361, 361, 361, 361, 361, 361,
+ 361, 361, 361, 361, 361, 361, 361, 361, 361, 361,
+ 361, 361, 361, 361, 361, 361, 361, 361, 361, 361,
+ 361, 361, 361, 361, 361, 361, 361, 361, 361, 361,
+ 361, 361, 361, 361, 362, 362, 362, 362, 362, 362,
+ 362, 362, 362, 362, 362, 362, 362, 362, 362, 958,
+
+ 362, 362, 548, 548, 548, 548, 362, 362, 362, 362,
+ 559, 559, 957, 548, 557, 557, 566, 566, 560, 560,
+ 566, 718, 718, 362, 929, 557, 955, 557, 929, 548,
+ 557, 557, 557, 557, 560, 560, 560, 560, 561, 561,
+ 562, 562, 362, 567, 567, 560, 778, 362, 362, 375,
+ 375, 954, 567, 566, 561, 561, 562, 562, 562, 562,
+ 559, 560, 953, 375, 718, 375, 375, 375, 375, 563,
+ 563, 568, 568, 564, 564, 568, 375, 573, 573, 778,
+ 375, 575, 575, 576, 576, 563, 563, 563, 563, 564,
+ 564, 564, 375, 384, 384, 581, 581, 575, 575, 576,
+
+ 576, 576, 576, 930, 581, 577, 577, 930, 568, 384,
+ 384, 384, 384, 578, 578, 952, 586, 586, 384, 384,
+ 384, 577, 577, 577, 577, 719, 719, 573, 951, 578,
+ 578, 578, 384, 384, 384, 384, 384, 384, 386, 386,
+ 386, 386, 386, 386, 386, 386, 386, 386, 386, 386,
+ 386, 386, 386, 950, 386, 386, 571, 571, 723, 723,
+ 386, 386, 386, 386, 586, 585, 585, 571, 719, 571,
+ 589, 589, 571, 571, 571, 571, 585, 386, 585, 590,
+ 590, 585, 585, 585, 585, 949, 589, 589, 728, 728,
+ 595, 595, 606, 606, 606, 590, 590, 590, 590, 595,
- 364, 364, 364, 364, 364, 364, 364, 365, 365, 365,
- 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
- 365, 365, 923, 365, 365, 574, 574, 574, 574, 365,
- 365, 365, 365, 922, 696, 696, 574, 568, 568, 828,
- 828, 568, 571, 696, 571, 921, 365, 571, 571, 571,
- 571, 920, 574, 646, 647, 658, 658, 658, 658, 918,
- 646, 647, 648, 829, 829, 365, 917, 646, 647, 648,
- 365, 365, 376, 376, 568, 916, 648, 659, 659, 659,
- 659, 678, 678, 678, 678, 915, 376, 914, 376, 376,
- 376, 376, 831, 831, 646, 647, 690, 690, 913, 376,
-
- 761, 691, 691, 376, 688, 688, 648, 679, 679, 679,
- 679, 689, 689, 761, 912, 376, 385, 385, 911, 761,
- 688, 688, 688, 688, 832, 832, 910, 689, 689, 689,
- 689, 948, 385, 385, 385, 385, 703, 703, 909, 690,
- 703, 385, 385, 385, 691, 692, 692, 833, 833, 692,
- 693, 693, 708, 708, 693, 385, 385, 385, 385, 385,
- 385, 387, 387, 387, 387, 387, 387, 387, 387, 387,
- 387, 387, 387, 387, 387, 387, 948, 387, 387, 697,
- 697, 908, 692, 387, 387, 387, 387, 693, 697, 706,
- 706, 835, 835, 707, 707, 708, 907, 721, 721, 906,
-
- 387, 721, 724, 724, 905, 706, 706, 706, 706, 707,
- 707, 707, 707, 714, 714, 836, 836, 905, 724, 724,
- 724, 724, 714, 905, 387, 387, 388, 388, 388, 388,
- 388, 388, 388, 388, 388, 388, 388, 388, 388, 388,
- 388, 388, 388, 388, 388, 388, 388, 388, 388, 388,
- 388, 388, 388, 388, 388, 388, 388, 388, 388, 388,
- 388, 388, 388, 388, 388, 388, 388, 388, 388, 388,
- 388, 388, 388, 388, 388, 388, 388, 388, 388, 388,
+ 948, 386, 386, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 388, 388,
388, 388, 388, 388, 388, 388, 388, 388, 388, 388,
- 388, 389, 389, 389, 389, 389, 389, 389, 389, 389,
+ 388, 388, 388, 968, 388, 388, 574, 574, 587, 587,
+ 388, 388, 388, 388, 968, 602, 602, 602, 602, 729,
- 389, 389, 389, 389, 389, 389, 949, 389, 389, 709,
- 709, 715, 715, 389, 389, 389, 389, 904, 726, 726,
- 715, 727, 727, 698, 698, 699, 699, 698, 882, 699,
- 389, 710, 710, 711, 711, 710, 881, 711, 716, 716,
- 717, 717, 716, 879, 717, 878, 739, 739, 777, 389,
- 739, 949, 709, 876, 389, 389, 406, 406, 406, 406,
- 698, 726, 699, 777, 727, 406, 406, 406, 710, 777,
- 711, 742, 742, 742, 742, 716, 875, 717, 950, 406,
- 406, 406, 406, 406, 406, 408, 408, 874, 408, 408,
- 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
-
- 871, 408, 408, 725, 725, 732, 732, 408, 408, 408,
- 408, 811, 837, 837, 732, 870, 733, 733, 811, 725,
- 725, 725, 725, 950, 408, 733, 743, 743, 743, 743,
- 841, 841, 887, 885, 887, 887, 1026, 1026, 886, 938,
- 885, 938, 938, 1027, 1027, 886, 811, 885, 408, 408,
- 409, 409, 886, 409, 409, 409, 409, 409, 409, 409,
- 409, 409, 409, 409, 409, 409, 409, 409, 409, 409,
- 409, 409, 409, 409, 409, 409, 409, 409, 409, 409,
- 409, 409, 409, 409, 409, 409, 409, 409, 409, 409,
- 409, 409, 409, 409, 409, 409, 409, 409, 409, 409,
-
- 409, 409, 409, 409, 409, 409, 409, 409, 409, 409,
- 409, 409, 409, 409, 409, 410, 410, 869, 410, 410,
- 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
- 951, 410, 410, 868, 812, 889, 867, 410, 410, 410,
- 410, 812, 889, 952, 992, 992, 992, 728, 728, 729,
- 729, 728, 953, 729, 410, 734, 734, 735, 735, 734,
- 801, 735, 803, 883, 865, 889, 954, 801, 864, 803,
- 883, 812, 863, 410, 801, 951, 803, 883, 410, 410,
- 507, 507, 507, 507, 728, 862, 729, 861, 952, 507,
- 507, 507, 734, 860, 735, 1028, 1028, 953, 858, 857,
-
- 883, 803, 801, 507, 507, 507, 507, 507, 507, 511,
- 511, 954, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 856, 511, 511, 939, 884, 855,
- 853, 511, 511, 511, 511, 884, 936, 852, 939, 937,
- 936, 940, 884, 937, 851, 939, 850, 936, 511, 849,
- 937, 848, 940, 847, 936, 846, 844, 937, 843, 940,
- 991, 991, 991, 818, 991, 884, 993, 993, 993, 809,
- 993, 806, 511, 511, 512, 512, 800, 512, 512, 512,
- 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
- 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
-
- 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
- 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
- 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
- 512, 512, 512, 512, 512, 512, 512, 512, 512, 525,
- 525, 525, 525, 799, 802, 804, 798, 797, 525, 525,
- 525, 802, 804, 994, 994, 994, 796, 795, 802, 804,
- 794, 793, 525, 525, 525, 525, 525, 525, 527, 527,
- 527, 527, 527, 527, 792, 527, 527, 527, 527, 527,
- 527, 527, 527, 791, 527, 527, 790, 789, 802, 786,
- 527, 527, 527, 527, 804, 995, 995, 995, 785, 995,
-
- 996, 996, 996, 783, 781, 779, 778, 527, 776, 775,
- 774, 773, 772, 771, 770, 769, 768, 766, 765, 764,
- 763, 760, 758, 757, 756, 754, 749, 745, 744, 741,
- 723, 527, 527, 528, 528, 528, 528, 528, 528, 705,
- 528, 528, 528, 528, 528, 528, 528, 528, 528, 528,
- 528, 528, 528, 528, 528, 528, 528, 528, 528, 528,
- 528, 528, 528, 528, 528, 528, 528, 528, 528, 528,
- 528, 528, 528, 528, 528, 528, 528, 528, 528, 528,
- 528, 528, 528, 528, 528, 528, 528, 528, 528, 528,
- 528, 528, 528, 528, 528, 528, 528, 528, 537, 537,
-
- 687, 685, 681, 680, 675, 674, 672, 670, 665, 661,
- 660, 655, 654, 653, 537, 537, 537, 537, 652, 643,
- 642, 637, 633, 537, 537, 537, 632, 631, 630, 629,
- 628, 626, 625, 624, 623, 622, 621, 537, 537, 537,
- 537, 537, 537, 541, 541, 541, 541, 541, 541, 541,
- 541, 541, 541, 541, 541, 541, 541, 541, 619, 541,
- 541, 618, 617, 616, 615, 541, 541, 541, 541, 614,
- 613, 612, 611, 609, 608, 607, 606, 605, 604, 603,
- 602, 601, 541, 600, 599, 597, 596, 595, 594, 593,
- 592, 591, 590, 589, 588, 581, 573, 572, 519, 518,
-
- 515, 514, 513, 509, 501, 500, 541, 541, 542, 542,
- 542, 542, 542, 542, 542, 542, 542, 542, 542, 542,
- 542, 542, 542, 542, 542, 542, 542, 542, 542, 542,
- 542, 542, 542, 542, 542, 542, 542, 542, 542, 542,
- 542, 542, 542, 542, 542, 542, 542, 542, 542, 542,
- 542, 542, 542, 542, 542, 542, 542, 542, 542, 542,
- 542, 542, 542, 542, 542, 542, 542, 542, 542, 542,
- 542, 542, 542, 551, 551, 497, 496, 495, 494, 489,
- 488, 487, 486, 485, 475, 472, 469, 467, 466, 551,
- 551, 551, 551, 465, 464, 463, 462, 461, 551, 551,
+ 729, 968, 574, 574, 574, 574, 602, 388, 580, 580,
+ 724, 724, 580, 574, 685, 946, 582, 582, 945, 724,
+ 582, 685, 602, 672, 594, 594, 388, 944, 594, 574,
+ 672, 388, 388, 401, 401, 725, 725, 672, 587, 588,
+ 588, 943, 596, 596, 725, 580, 596, 401, 685, 401,
+ 401, 401, 401, 582, 942, 588, 588, 588, 588, 941,
+ 401, 594, 740, 740, 401, 710, 588, 591, 591, 710,
+ 940, 592, 592, 1025, 710, 1025, 401, 410, 410, 596,
+ 741, 741, 588, 591, 591, 591, 591, 592, 592, 592,
+ 746, 746, 979, 410, 410, 410, 410, 605, 605, 605,
+
+ 605, 673, 410, 410, 410, 599, 939, 599, 673, 938,
+ 599, 599, 599, 599, 937, 673, 410, 410, 410, 410,
+ 410, 410, 412, 412, 412, 412, 412, 412, 412, 412,
+ 412, 412, 412, 412, 412, 412, 412, 979, 412, 412,
+ 613, 613, 613, 613, 412, 412, 412, 412, 614, 614,
+ 614, 614, 686, 686, 686, 686, 687, 687, 687, 687,
+ 936, 412, 706, 706, 706, 706, 707, 707, 707, 707,
+ 731, 731, 742, 742, 731, 743, 743, 747, 747, 749,
+ 749, 742, 935, 749, 743, 412, 412, 413, 413, 413,
+ 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
+
+ 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 934, 414, 414,
+ 932, 674, 675, 910, 414, 414, 414, 414, 674, 675,
+ 676, 677, 716, 716, 909, 674, 675, 676, 677, 717,
+ 717, 414, 720, 720, 676, 677, 720, 840, 716, 716,
+
+ 716, 716, 758, 758, 840, 717, 717, 717, 717, 907,
+ 414, 906, 674, 675, 904, 414, 414, 433, 433, 433,
+ 433, 736, 736, 903, 676, 902, 433, 433, 433, 720,
+ 677, 899, 737, 737, 840, 721, 721, 759, 759, 721,
+ 433, 433, 433, 433, 433, 433, 435, 435, 789, 435,
+ 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
+ 435, 789, 435, 435, 736, 734, 734, 789, 435, 435,
+ 435, 435, 721, 735, 735, 737, 726, 726, 752, 752,
+ 726, 734, 734, 734, 734, 435, 753, 753, 898, 735,
+ 735, 735, 735, 897, 752, 752, 752, 752, 760, 760,
+
+ 764, 764, 753, 753, 753, 753, 896, 760, 895, 435,
+ 435, 436, 436, 726, 436, 436, 436, 436, 436, 436,
+ 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
+ 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
+ 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
+ 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
+ 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
+ 436, 436, 436, 436, 436, 436, 437, 437, 893, 437,
+ 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
+ 437, 980, 437, 437, 754, 754, 761, 761, 437, 437,
+
+ 437, 437, 892, 755, 755, 761, 765, 765, 727, 727,
+ 738, 738, 727, 891, 738, 437, 739, 739, 744, 744,
+ 739, 890, 744, 745, 745, 756, 756, 745, 889, 756,
+ 888, 767, 767, 886, 437, 767, 980, 754, 885, 437,
+ 437, 535, 535, 535, 535, 727, 755, 738, 855, 855,
+ 535, 535, 535, 739, 981, 744, 770, 770, 770, 770,
+ 745, 884, 756, 883, 535, 535, 535, 535, 535, 535,
+ 539, 539, 881, 539, 539, 539, 539, 539, 539, 539,
+ 539, 539, 539, 539, 539, 982, 539, 539, 771, 771,
+ 771, 771, 539, 539, 539, 539, 839, 856, 856, 981,
+
+ 757, 757, 880, 839, 757, 857, 857, 859, 859, 539,
+ 860, 860, 861, 861, 863, 863, 864, 864, 865, 865,
+ 869, 869, 915, 931, 915, 915, 966, 931, 966, 966,
+ 982, 839, 879, 539, 539, 540, 540, 757, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
+
+ 553, 553, 553, 553, 1019, 1019, 1019, 832, 1019, 553,
+ 553, 553, 762, 762, 832, 878, 762, 877, 763, 763,
+ 876, 832, 763, 553, 553, 553, 553, 553, 553, 555,
+ 555, 555, 555, 555, 555, 875, 555, 555, 555, 555,
+ 555, 555, 555, 555, 874, 555, 555, 1054, 1054, 762,
+ 831, 555, 555, 555, 555, 763, 832, 831, 829, 913,
+ 914, 872, 933, 871, 831, 829, 913, 914, 555, 1020,
+ 1020, 1020, 829, 913, 914, 933, 1021, 1021, 1021, 846,
+ 1021, 933, 1022, 1022, 1022, 837, 1023, 1023, 1023, 831,
+ 1023, 834, 555, 555, 556, 556, 556, 556, 556, 556,
- 551, 460, 459, 458, 457, 456, 455, 454, 452, 451,
- 450, 449, 551, 551, 551, 551, 551, 551, 555, 555,
- 555, 555, 555, 555, 555, 555, 555, 555, 555, 555,
- 555, 555, 555, 441, 555, 555, 440, 439, 438, 437,
- 555, 555, 555, 555, 436, 435, 434, 433, 432, 431,
- 429, 428, 426, 425, 424, 423, 422, 555, 421, 420,
- 419, 418, 400, 399, 395, 307, 306, 297, 296, 295,
- 284, 283, 279, 269, 266, 265, 261, 256, 255, 253,
- 252, 555, 555, 556, 556, 556, 556, 556, 556, 556,
+ 829, 556, 556, 556, 556, 556, 556, 556, 556, 556,
556, 556, 556, 556, 556, 556, 556, 556, 556, 556,
-
556, 556, 556, 556, 556, 556, 556, 556, 556, 556,
556, 556, 556, 556, 556, 556, 556, 556, 556, 556,
556, 556, 556, 556, 556, 556, 556, 556, 556, 556,
- 556, 556, 556, 556, 556, 556, 556, 556, 556, 556,
- 556, 556, 556, 556, 556, 556, 556, 556, 565, 565,
- 251, 249, 248, 246, 232, 230, 229, 222, 221, 219,
- 213, 212, 211, 203, 565, 565, 565, 565, 202, 201,
- 199, 194, 192, 565, 565, 565, 191, 189, 188, 187,
- 177, 159, 154, 152, 110, 101, 96, 565, 565, 565,
- 565, 565, 565, 569, 569, 569, 569, 569, 569, 569,
-
- 569, 569, 569, 569, 569, 569, 569, 569, 93, 569,
- 569, 88, 86, 83, 77, 569, 569, 569, 569, 72,
- 65, 63, 34, 32, 28, 23, 8, 4, 2, 0,
- 0, 0, 569, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 569, 569, 570, 570,
- 570, 570, 570, 570, 570, 570, 570, 570, 570, 570,
+ 556, 556, 556, 556, 556, 556, 556, 556, 556, 565,
+ 565, 916, 917, 964, 1024, 1024, 1024, 964, 916, 917,
+ 1055, 1055, 1056, 1056, 964, 565, 565, 565, 565, 965,
+ 830, 964, 911, 965, 565, 565, 565, 830, 828, 911,
+ 965, 916, 917, 827, 830, 826, 911, 965, 565, 565,
+
+ 565, 565, 565, 565, 569, 569, 569, 569, 569, 569,
+ 569, 569, 569, 569, 569, 569, 569, 569, 569, 911,
+ 569, 569, 825, 912, 830, 824, 569, 569, 569, 569,
+ 912, 823, 822, 821, 820, 819, 818, 912, 817, 814,
+ 813, 811, 809, 569, 807, 806, 804, 803, 802, 801,
+ 800, 799, 798, 797, 796, 794, 793, 792, 791, 788,
+ 912, 786, 785, 784, 782, 777, 773, 569, 569, 570,
570, 570, 570, 570, 570, 570, 570, 570, 570, 570,
570, 570, 570, 570, 570, 570, 570, 570, 570, 570,
570, 570, 570, 570, 570, 570, 570, 570, 570, 570,
570, 570, 570, 570, 570, 570, 570, 570, 570, 570,
570, 570, 570, 570, 570, 570, 570, 570, 570, 570,
- 570, 570, 570, 579, 579, 579, 579, 0, 0, 0,
- 0, 0, 579, 579, 579, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 579, 579, 579, 579,
- 579, 579, 583, 583, 0, 583, 583, 583, 583, 583,
- 583, 583, 583, 583, 583, 583, 583, 0, 583, 583,
- 0, 0, 0, 0, 583, 583, 583, 583, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 583, 0, 0, 0, 0, 0, 0, 0, 0,
+ 570, 570, 570, 570, 570, 570, 570, 570, 570, 570,
+ 570, 570, 570, 570, 579, 579, 772, 769, 751, 733,
+ 715, 713, 709, 708, 703, 702, 700, 698, 693, 689,
+ 579, 579, 579, 579, 688, 683, 682, 681, 680, 579,
+ 579, 579, 671, 670, 665, 661, 660, 659, 658, 657,
+ 656, 654, 653, 579, 579, 579, 579, 579, 579, 583,
+ 583, 583, 583, 583, 583, 583, 583, 583, 583, 583,
+ 583, 583, 583, 583, 652, 583, 583, 651, 650, 649,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 583, 583, 584, 584, 0,
- 584, 584, 584, 584, 584, 584, 584, 584, 584, 584,
+ 647, 583, 583, 583, 583, 646, 645, 644, 643, 642,
+ 641, 640, 639, 637, 636, 635, 634, 633, 583, 632,
+ 631, 630, 629, 628, 627, 625, 624, 623, 622, 621,
+ 620, 619, 618, 617, 616, 609, 601, 600, 547, 546,
+ 543, 542, 583, 583, 584, 584, 584, 584, 584, 584,
584, 584, 584, 584, 584, 584, 584, 584, 584, 584,
584, 584, 584, 584, 584, 584, 584, 584, 584, 584,
584, 584, 584, 584, 584, 584, 584, 584, 584, 584,
584, 584, 584, 584, 584, 584, 584, 584, 584, 584,
584, 584, 584, 584, 584, 584, 584, 584, 584, 584,
- 584, 584, 669, 669, 0, 669, 669, 669, 669, 669,
- 669, 669, 669, 669, 669, 669, 669, 0, 669, 669,
- 0, 0, 0, 0, 669, 669, 669, 669, 0, 0,
+ 584, 584, 584, 584, 584, 584, 584, 584, 584, 593,
+ 593, 541, 537, 529, 528, 525, 524, 523, 522, 517,
+ 516, 515, 514, 513, 503, 593, 593, 593, 593, 500,
+ 497, 495, 494, 493, 593, 593, 593, 492, 491, 490,
+ 489, 488, 487, 486, 485, 484, 483, 482, 593, 593,
+ 593, 593, 593, 593, 597, 597, 597, 597, 597, 597,
+ 597, 597, 597, 597, 597, 597, 597, 597, 597, 480,
+ 597, 597, 479, 478, 477, 469, 597, 597, 597, 597,
+ 468, 467, 466, 465, 464, 463, 462, 461, 460, 459,
+ 457, 456, 454, 597, 453, 452, 451, 450, 449, 448,
+
+ 447, 446, 427, 426, 422, 327, 326, 316, 315, 314,
+ 302, 301, 297, 287, 284, 283, 279, 597, 597, 598,
+ 598, 598, 598, 598, 598, 598, 598, 598, 598, 598,
+ 598, 598, 598, 598, 598, 598, 598, 598, 598, 598,
+ 598, 598, 598, 598, 598, 598, 598, 598, 598, 598,
+ 598, 598, 598, 598, 598, 598, 598, 598, 598, 598,
+ 598, 598, 598, 598, 598, 598, 598, 598, 598, 598,
+ 598, 598, 598, 598, 598, 598, 598, 598, 598, 598,
+ 598, 598, 598, 598, 607, 607, 607, 607, 273, 272,
+ 270, 269, 268, 607, 607, 607, 266, 265, 263, 248,
+
+ 246, 245, 238, 237, 235, 229, 228, 607, 607, 607,
+ 607, 607, 607, 611, 611, 227, 611, 611, 611, 611,
+ 611, 611, 611, 611, 611, 611, 611, 611, 219, 611,
+ 611, 218, 217, 215, 210, 611, 611, 611, 611, 208,
+ 207, 205, 204, 203, 193, 173, 168, 166, 117, 107,
+ 102, 97, 611, 92, 90, 87, 81, 76, 69, 65,
+ 34, 32, 28, 23, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 611, 611, 612, 612,
+ 0, 612, 612, 612, 612, 612, 612, 612, 612, 612,
+ 612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
+
+ 612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
+ 612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
+ 612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
+ 612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
+ 612, 612, 612, 697, 697, 0, 697, 697, 697, 697,
+ 697, 697, 697, 697, 697, 697, 697, 697, 0, 697,
+ 697, 0, 0, 0, 0, 697, 697, 697, 697, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 669, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 697, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 669, 669, 671, 671, 0,
- 671, 671, 671, 671, 671, 671, 671, 671, 671, 671,
- 671, 671, 671, 671, 671, 671, 671, 671, 671, 671,
- 671, 671, 671, 671, 671, 671, 671, 671, 671, 671,
- 671, 671, 671, 671, 671, 671, 671, 671, 671, 671,
- 671, 671, 671, 671, 671, 671, 671, 671, 671, 671,
-
- 671, 671, 671, 671, 671, 671, 671, 671, 671, 671,
- 671, 671, 684, 684, 684, 684, 684, 684, 0, 684,
- 684, 684, 684, 684, 684, 684, 684, 0, 684, 684,
- 0, 0, 0, 0, 684, 684, 684, 684, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 684, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 684, 684, 686, 686, 686,
- 686, 686, 686, 0, 686, 686, 686, 686, 686, 686,
- 686, 686, 686, 686, 686, 686, 686, 686, 686, 686,
-
- 686, 686, 686, 686, 686, 686, 686, 686, 686, 686,
- 686, 686, 686, 686, 686, 686, 686, 686, 686, 686,
- 686, 686, 686, 686, 686, 686, 686, 686, 686, 686,
- 686, 686, 686, 686, 686, 686, 686, 686, 686, 686,
- 686, 686, 702, 702, 702, 702, 702, 702, 702, 702,
- 702, 702, 702, 702, 702, 702, 702, 0, 702, 702,
- 0, 0, 0, 0, 702, 702, 702, 702, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 697, 697, 699, 699,
+ 0, 699, 699, 699, 699, 699, 699, 699, 699, 699,
+ 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
+ 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
+ 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
+ 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
+ 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
+ 699, 699, 699, 712, 712, 712, 712, 712, 712, 0,
+ 712, 712, 712, 712, 712, 712, 712, 712, 0, 712,
+ 712, 0, 0, 0, 0, 712, 712, 712, 712, 0,
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 702, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 712, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 712, 712, 714, 714,
+ 714, 714, 714, 714, 0, 714, 714, 714, 714, 714,
+ 714, 714, 714, 714, 714, 714, 714, 714, 714, 714,
+ 714, 714, 714, 714, 714, 714, 714, 714, 714, 714,
+ 714, 714, 714, 714, 714, 714, 714, 714, 714, 714,
+ 714, 714, 714, 714, 714, 714, 714, 714, 714, 714,
+ 714, 714, 714, 714, 714, 714, 714, 714, 714, 714,
- 0, 0, 0, 0, 0, 702, 702, 704, 704, 704,
- 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
- 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
- 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
- 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
- 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
- 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
- 704, 704, 720, 720, 720, 720, 720, 720, 720, 720,
- 720, 720, 720, 720, 720, 720, 720, 0, 720, 720,
- 0, 0, 0, 0, 720, 720, 720, 720, 0, 0,
-
+ 714, 714, 714, 730, 730, 730, 730, 730, 730, 730,
+ 730, 730, 730, 730, 730, 730, 730, 730, 0, 730,
+ 730, 0, 0, 0, 0, 730, 730, 730, 730, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 720, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 730, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 720, 720, 722, 722, 722,
- 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
- 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
- 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
- 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
- 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
- 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
-
- 722, 722, 738, 738, 738, 738, 738, 738, 738, 738,
- 738, 738, 738, 738, 738, 738, 738, 0, 738, 738,
- 0, 0, 0, 0, 738, 738, 738, 738, 0, 0,
+ 0, 0, 0, 0, 0, 0, 730, 730, 732, 732,
+ 732, 732, 732, 732, 732, 732, 732, 732, 732, 732,
+ 732, 732, 732, 732, 732, 732, 732, 732, 732, 732,
+ 732, 732, 732, 732, 732, 732, 732, 732, 732, 732,
+
+ 732, 732, 732, 732, 732, 732, 732, 732, 732, 732,
+ 732, 732, 732, 732, 732, 732, 732, 732, 732, 732,
+ 732, 732, 732, 732, 732, 732, 732, 732, 732, 732,
+ 732, 732, 732, 748, 748, 748, 748, 748, 748, 748,
+ 748, 748, 748, 748, 748, 748, 748, 748, 0, 748,
+ 748, 0, 0, 0, 0, 748, 748, 748, 748, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 738, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 748, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 738, 738, 740, 740, 740,
- 740, 740, 740, 740, 740, 740, 740, 740, 740, 740,
- 740, 740, 740, 740, 740, 740, 740, 740, 740, 740,
- 740, 740, 740, 740, 740, 740, 740, 740, 740, 740,
-
- 740, 740, 740, 740, 740, 740, 740, 740, 740, 740,
- 740, 740, 740, 740, 740, 740, 740, 740, 740, 740,
- 740, 740, 740, 740, 740, 740, 740, 740, 740, 740,
- 740, 740, 753, 753, 0, 753, 753, 753, 753, 753,
- 753, 753, 753, 753, 753, 753, 753, 0, 753, 753,
- 0, 0, 0, 0, 753, 753, 753, 753, 0, 0,
+ 0, 0, 0, 0, 0, 0, 748, 748, 750, 750,
+
+ 750, 750, 750, 750, 750, 750, 750, 750, 750, 750,
+ 750, 750, 750, 750, 750, 750, 750, 750, 750, 750,
+ 750, 750, 750, 750, 750, 750, 750, 750, 750, 750,
+ 750, 750, 750, 750, 750, 750, 750, 750, 750, 750,
+ 750, 750, 750, 750, 750, 750, 750, 750, 750, 750,
+ 750, 750, 750, 750, 750, 750, 750, 750, 750, 750,
+ 750, 750, 750, 766, 766, 766, 766, 766, 766, 766,
+ 766, 766, 766, 766, 766, 766, 766, 766, 0, 766,
+ 766, 0, 0, 0, 0, 766, 766, 766, 766, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 753, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 766, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 753, 753, 755, 755, 0,
+ 0, 0, 0, 0, 0, 0, 766, 766, 768, 768,
+ 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
+ 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
+ 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
+ 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
+ 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
+ 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
+ 768, 768, 768, 781, 781, 0, 781, 781, 781, 781,
- 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
- 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
- 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
- 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
- 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
- 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
- 755, 755, 815, 815, 0, 815, 815, 815, 815, 815,
- 815, 815, 815, 815, 815, 815, 815, 815, 815, 815,
- 815, 815, 815, 815, 815, 815, 815, 815, 815, 815,
- 815, 815, 815, 815, 815, 815, 815, 815, 815, 815,
-
- 815, 815, 815, 815, 815, 815, 815, 815, 815, 815,
- 815, 815, 815, 815, 815, 815, 815, 815, 815, 815,
- 815, 815, 815, 815, 815, 815, 815, 825, 825, 825,
- 825, 825, 825, 0, 825, 825, 825, 825, 825, 825,
- 825, 825, 825, 825, 825, 825, 825, 825, 825, 825,
- 825, 825, 825, 825, 825, 825, 825, 825, 825, 825,
- 825, 825, 825, 825, 825, 825, 825, 825, 825, 825,
- 825, 825, 825, 825, 825, 825, 825, 825, 825, 825,
- 825, 825, 825, 825, 825, 825, 825, 825, 825, 825,
- 825, 825, 1062, 0, 1062, 1062, 1062, 1062, 1062, 1062,
-
- 1062, 1062, 1062, 1063, 0, 0, 1063, 1063, 1064, 0,
- 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1065,
- 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1066, 1066, 1066,
- 1066, 1067, 0, 1067, 0, 1067, 1067, 1067, 1067, 1068,
- 1068, 1068, 1068, 1068, 1068, 1068, 1069, 0, 1069, 1069,
- 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1070, 0, 1070,
- 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1071, 0,
- 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1072,
- 0, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072,
- 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1074, 1074, 0,
-
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1075, 1075,
- 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1076,
- 1076, 0, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
- 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
- 1077, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
- 1078, 1078, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
- 1079, 1079, 1079, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
- 1080, 1080, 1080, 1080, 1081, 1081, 1081, 1081, 1081, 1081,
- 1081, 1081, 1081, 1081, 1081, 1082, 1082, 1082, 1082, 1082,
- 1082, 1082, 1082, 1082, 1082, 1082, 1083, 1083, 1083, 1083,
-
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1084, 1084, 1084,
- 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1086,
- 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
- 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
- 1087, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088,
- 1088, 1088, 1089, 0, 1089, 1089, 1089, 1089, 1089, 1089,
- 1089, 1089, 1089, 1090, 0, 1090, 1090, 1090, 1090, 1090,
- 1090, 1090, 1090, 1090, 1091, 0, 1091, 1091, 1091, 1091,
- 1091, 1091, 1091, 1091, 1091, 1092, 0, 1092, 1092, 1092,
-
- 1092, 1092, 1092, 1092, 1092, 1092, 1093, 0, 0, 1093,
- 1093, 1094, 0, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1095, 0, 0, 1095, 1095, 1095, 1096, 0,
- 0, 1096, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1098,
- 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099, 0, 0,
- 0, 0, 1099, 1099, 1099, 1099, 1100, 1100, 1100, 1100,
- 1100, 1100, 1101, 1101, 1101, 1101, 1102, 0, 1102, 1102,
- 1102, 1102, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1104,
- 0, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104,
- 1105, 0, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
-
- 1105, 1106, 0, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1107, 0, 1107, 1107, 1107, 1107, 1107, 1107,
- 1107, 1107, 1107, 1108, 1108, 0, 1108, 1108, 1108, 1108,
- 1108, 1108, 1108, 1108, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 1109, 1109, 1109, 1110, 1110, 0, 1110, 1110,
- 1110, 1110, 1110, 1110, 1110, 1110, 1111, 1111, 1111, 1111,
- 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1112, 1112, 1112,
- 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1114,
+ 781, 781, 781, 781, 781, 781, 781, 781, 0, 781,
+ 781, 0, 0, 0, 0, 781, 781, 781, 781, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 781, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 781, 781, 783, 783,
+ 0, 783, 783, 783, 783, 783, 783, 783, 783, 783,
+ 783, 783, 783, 783, 783, 783, 783, 783, 783, 783,
+ 783, 783, 783, 783, 783, 783, 783, 783, 783, 783,
+ 783, 783, 783, 783, 783, 783, 783, 783, 783, 783,
+
+ 783, 783, 783, 783, 783, 783, 783, 783, 783, 783,
+ 783, 783, 783, 783, 783, 783, 783, 783, 783, 783,
+ 783, 783, 783, 843, 843, 0, 843, 843, 843, 843,
+ 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
+ 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
+ 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
+ 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
+ 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
+ 843, 843, 843, 843, 843, 843, 843, 843, 853, 853,
+ 853, 853, 853, 853, 0, 853, 853, 853, 853, 853,
+
+ 853, 853, 853, 853, 853, 853, 853, 853, 853, 853,
+ 853, 853, 853, 853, 853, 853, 853, 853, 853, 853,
+ 853, 853, 853, 853, 853, 853, 853, 853, 853, 853,
+ 853, 853, 853, 853, 853, 853, 853, 853, 853, 853,
+ 853, 853, 853, 853, 853, 853, 853, 853, 853, 853,
+ 853, 853, 853, 1090, 0, 1090, 1090, 1090, 1090, 1090,
+ 1090, 1090, 1090, 1090, 1091, 0, 0, 1091, 1091, 1092,
+ 0, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1094, 1094,
+ 1094, 1094, 1095, 0, 1095, 0, 1095, 1095, 1095, 1095,
+
+ 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1097, 0, 1097,
+ 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1098, 0,
+ 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099,
+ 0, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
+ 1100, 0, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
+ 1100, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1102, 1102,
+ 0, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1103,
+ 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
+ 1104, 1104, 0, 1104, 1104, 1104, 1104, 1104, 1104, 1104,
+ 1104, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
+
+ 1105, 1105, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1108, 1108, 1108, 1108, 1108, 1108,
+ 1108, 1108, 1108, 1108, 1108, 1109, 1109, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 1109, 1110, 1110, 1110, 1110,
+ 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1111, 1111, 1111,
+ 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1112, 1112,
+ 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114,
- 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
- 1115, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
- 1116, 1116, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
- 1117, 1117, 1117, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1119, 1119, 1119, 1119, 1119, 1119,
- 1119, 1119, 1119, 1119, 1119, 1120, 1120, 1120, 1120, 1120,
- 1120, 1120, 1120, 1120, 1120, 1120, 1121, 1121, 1121, 1121,
- 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1122, 1122, 1122,
- 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1123, 0,
- 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1124,
-
- 0, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
- 1125, 0, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125,
- 1125, 1126, 0, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
- 1126, 1126, 1127, 0, 0, 1127, 1127, 1128, 0, 0,
- 1128, 1128, 1128, 1129, 0, 0, 1129, 1130, 0, 1130,
- 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1131, 0,
- 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1132,
- 0, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
- 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1134, 1134, 1134,
- 1134, 1134, 1134, 1134, 1134, 1135, 1135, 1135, 1135, 1135,
-
- 1135, 1136, 0, 1136, 1136, 1136, 1136, 1137, 0, 1137,
- 1137, 1137, 1137, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
- 1139, 0, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
- 1139, 1140, 0, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1141, 0, 1141, 1141, 1141, 1141, 1141, 1141,
- 1141, 1141, 1141, 1142, 0, 1142, 1142, 1142, 1142, 1142,
- 1142, 1142, 1142, 1142, 1143, 0, 1143, 1143, 1143, 1143,
- 1143, 1143, 1143, 1143, 1143, 1144, 1144, 1144, 1144, 1144,
- 1144, 1144, 1145, 1145, 0, 1145, 1145, 1145, 1145, 1145,
- 1145, 1145, 1145, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
-
- 1146, 1146, 1146, 1146, 1147, 1147, 0, 1147, 1147, 1147,
- 1147, 1147, 1147, 1147, 1147, 1148, 1148, 1148, 1148, 1148,
- 1148, 1148, 1148, 1148, 1148, 1148, 1149, 1149, 1149, 1149,
- 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1152,
- 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154,
- 1154, 1154, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
-
- 1155, 1155, 1155, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
- 1156, 1156, 1156, 1156, 1157, 1157, 1157, 1157, 1157, 1157,
- 1157, 1157, 1157, 1157, 1157, 1158, 1158, 1158, 1158, 1158,
- 1158, 1158, 1158, 1158, 1158, 1158, 1159, 1159, 1159, 1159,
- 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1161, 1161,
- 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1162,
- 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
- 1163, 0, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
- 1163, 1164, 0, 1164, 1164, 1164, 1164, 1164, 1164, 1164,
-
- 1164, 1164, 1165, 0, 1165, 1165, 1165, 1165, 1165, 1165,
- 1165, 1165, 1165, 1166, 0, 1166, 1166, 1166, 1166, 1166,
- 1166, 1166, 1166, 1166, 1167, 0, 1167, 1167, 1167, 1167,
- 1167, 1167, 1167, 1167, 1167, 1168, 0, 0, 1168, 1168,
- 1168, 1169, 0, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
- 1169, 1169, 1170, 0, 1170, 1170, 1170, 1170, 1170, 1170,
- 1170, 1170, 1170, 1171, 0, 1171, 1171, 1171, 1171, 1171,
- 1171, 1171, 1171, 1171, 1172, 1172, 1172, 1172, 1172, 1172,
- 1172, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1174,
- 0, 1174, 1174, 1174, 1174, 1175, 0, 1175, 1175, 1175,
-
- 1175, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1177, 0,
- 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1178,
- 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1179, 0, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
- 1179, 1180, 0, 1180, 1180, 1180, 1180, 1180, 1180, 1180,
- 1180, 1180, 1181, 0, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1182, 1182, 1182, 1182, 1182, 1182, 1182,
- 1183, 1183, 0, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
- 1183, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184,
- 1184, 1184, 1185, 1185, 0, 1185, 1185, 1185, 1185, 1185,
-
- 1185, 1185, 1185, 1186, 1186, 1186, 1186, 1186, 1186, 1186,
- 1186, 1186, 1186, 1186, 1187, 1187, 1187, 1187, 1187, 1187,
- 1187, 1187, 1187, 1187, 1187, 1188, 1188, 1188, 1188, 1188,
- 1188, 1188, 1188, 1188, 1188, 1188, 1189, 1189, 1189, 1189,
- 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1190, 1190, 1190,
- 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1192,
- 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192,
- 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
- 1193, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
-
- 1194, 1194, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
- 1195, 1195, 1195, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
- 1196, 1196, 1196, 1196, 1197, 1197, 1197, 1197, 1197, 1197,
- 1197, 1197, 1197, 1197, 1197, 1198, 1198, 1198, 1198, 1198,
- 1198, 1198, 1198, 1198, 1198, 1198, 1199, 1199, 1199, 1199,
- 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1200, 1200, 1200,
- 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201, 0,
- 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1202,
- 0, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202,
- 1203, 0, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
-
- 1203, 1204, 0, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
- 1204, 1204, 1205, 0, 1205, 1205, 1205, 1205, 1205, 1205,
- 1205, 1205, 1205, 1206, 0, 0, 1206, 1206, 1206, 1207,
- 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1208, 0, 1208,
- 1208, 1208, 1208, 1209, 1209, 1209, 1209, 1209, 1209, 1209,
- 1210, 0, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210,
- 1210, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1212, 1212,
- 0, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
-
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
- 1061, 1061, 1061, 1061, 1061
+ 1114, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
+ 1115, 1115, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
+ 1116, 1116, 1116, 1117, 0, 1117, 1117, 1117, 1117, 1117,
+ 1117, 1117, 1117, 1117, 1118, 0, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1119, 0, 1119, 1119, 1119,
+ 1119, 1119, 1119, 1119, 1119, 1119, 1120, 0, 1120, 1120,
+ 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1121, 0, 0,
+ 1121, 1121, 1122, 0, 1122, 1122, 1122, 1122, 1122, 1122,
+ 1122, 1122, 1122, 1123, 0, 0, 1123, 1123, 1123, 1124,
+ 0, 0, 1124, 1125, 1125, 1125, 1125, 1125, 1125, 1125,
+
+ 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1127, 0,
+ 0, 0, 0, 1127, 1127, 1127, 1127, 1128, 1128, 1128,
+ 1128, 1128, 1128, 1129, 1129, 1129, 1129, 1130, 0, 1130,
+ 1130, 1130, 1130, 1131, 1131, 1131, 1131, 1131, 1131, 1131,
+ 1132, 0, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
+ 1132, 1133, 0, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
+ 1133, 1133, 1134, 0, 1134, 1134, 1134, 1134, 1134, 1134,
+ 1134, 1134, 1134, 1135, 0, 1135, 1135, 1135, 1135, 1135,
+ 1135, 1135, 1135, 1135, 1136, 1136, 0, 1136, 1136, 1136,
+ 1136, 1136, 1136, 1136, 1136, 1137, 1137, 1137, 1137, 1137,
+
+ 1137, 1137, 1137, 1137, 1137, 1137, 1138, 1138, 0, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1139, 1139, 1139,
+ 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1140, 1140,
+ 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1141,
+ 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141,
+ 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142,
+ 1142, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143,
+ 1143, 1143, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
+ 1144, 1144, 1144, 1145, 1145, 1145, 1145, 1145, 1145, 1145,
+ 1145, 1145, 1145, 1145, 1146, 1146, 1146, 1146, 1146, 1146,
+
+ 1146, 1146, 1146, 1146, 1146, 1147, 1147, 1147, 1147, 1147,
+ 1147, 1147, 1147, 1147, 1147, 1147, 1148, 1148, 1148, 1148,
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1149, 1149, 1149,
+ 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1150, 1150,
+ 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1151,
+ 0, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
+ 1152, 0, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152,
+ 1152, 1153, 0, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1154, 0, 1154, 1154, 1154, 1154, 1154, 1154,
+ 1154, 1154, 1154, 1155, 0, 0, 1155, 1155, 1156, 0,
+
+ 0, 1156, 1156, 1156, 1157, 0, 0, 1157, 1158, 0,
+ 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1159,
+ 0, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
+ 1160, 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1162, 1162,
+ 1162, 1162, 1162, 1162, 1162, 1162, 1163, 1163, 1163, 1163,
+ 1163, 1163, 1164, 0, 1164, 1164, 1164, 1164, 1165, 0,
+ 1165, 1165, 1165, 1165, 1166, 1166, 1166, 1166, 1166, 1166,
+ 1166, 1167, 0, 1167, 1167, 1167, 1167, 1167, 1167, 1167,
+ 1167, 1167, 1168, 0, 1168, 1168, 1168, 1168, 1168, 1168,
+
+ 1168, 1168, 1168, 1169, 0, 1169, 1169, 1169, 1169, 1169,
+ 1169, 1169, 1169, 1169, 1170, 0, 1170, 1170, 1170, 1170,
+ 1170, 1170, 1170, 1170, 1170, 1171, 0, 1171, 1171, 1171,
+ 1171, 1171, 1171, 1171, 1171, 1171, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1173, 1173, 0, 1173, 1173, 1173, 1173,
+ 1173, 1173, 1173, 1173, 1174, 1174, 1174, 1174, 1174, 1174,
+ 1174, 1174, 1174, 1174, 1174, 1175, 1175, 0, 1175, 1175,
+ 1175, 1175, 1175, 1175, 1175, 1175, 1176, 1176, 1176, 1176,
+ 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1178, 1178,
+
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1179,
+ 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
+ 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180,
+ 1180, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
+ 1181, 1181, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182,
+ 1182, 1182, 1182, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
+ 1183, 1183, 1183, 1183, 1184, 1184, 1184, 1184, 1184, 1184,
+ 1184, 1184, 1184, 1184, 1184, 1185, 1185, 1185, 1185, 1185,
+ 1185, 1185, 1185, 1185, 1185, 1185, 1186, 1186, 1186, 1186,
+ 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1187, 1187, 1187,
+
+ 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1188, 1188,
+ 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1191, 0, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1192, 0, 1192, 1192, 1192, 1192, 1192, 1192,
+ 1192, 1192, 1192, 1193, 0, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1194, 0, 1194, 1194, 1194, 1194,
+ 1194, 1194, 1194, 1194, 1194, 1195, 0, 1195, 1195, 1195,
+ 1195, 1195, 1195, 1195, 1195, 1195, 1196, 0, 0, 1196,
+
+ 1196, 1196, 1197, 0, 1197, 1197, 1197, 1197, 1197, 1197,
+ 1197, 1197, 1197, 1198, 0, 1198, 1198, 1198, 1198, 1198,
+ 1198, 1198, 1198, 1198, 1199, 0, 1199, 1199, 1199, 1199,
+ 1199, 1199, 1199, 1199, 1199, 1200, 1200, 1200, 1200, 1200,
+ 1200, 1200, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201,
+ 1202, 0, 1202, 1202, 1202, 1202, 1203, 0, 1203, 1203,
+ 1203, 1203, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1205,
+ 0, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
+ 1206, 0, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
+ 1206, 1207, 0, 1207, 1207, 1207, 1207, 1207, 1207, 1207,
+
+ 1207, 1207, 1208, 0, 1208, 1208, 1208, 1208, 1208, 1208,
+ 1208, 1208, 1208, 1209, 0, 1209, 1209, 1209, 1209, 1209,
+ 1209, 1209, 1209, 1209, 1210, 1210, 1210, 1210, 1210, 1210,
+ 1210, 1211, 1211, 0, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 1211, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1213, 1213, 0, 1213, 1213, 1213, 1213,
+ 1213, 1213, 1213, 1213, 1214, 1214, 1214, 1214, 1214, 1214,
+ 1214, 1214, 1214, 1214, 1214, 1215, 1215, 1215, 1215, 1215,
+ 1215, 1215, 1215, 1215, 1215, 1215, 1216, 1216, 1216, 1216,
+ 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1217, 1217, 1217,
+
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1218, 1218,
+ 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1219,
+ 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219,
+ 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
+ 1220, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221,
+ 1221, 1221, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
+ 1222, 1222, 1222, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1224, 1224, 1224, 1224, 1224, 1224,
+ 1224, 1224, 1224, 1224, 1224, 1225, 1225, 1225, 1225, 1225,
+ 1225, 1225, 1225, 1225, 1225, 1225, 1226, 1226, 1226, 1226,
+
+ 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1227, 1227, 1227,
+ 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1228, 1228,
+ 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1229,
+ 0, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229,
+ 1230, 0, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
+ 1230, 1231, 0, 1231, 1231, 1231, 1231, 1231, 1231, 1231,
+ 1231, 1231, 1232, 0, 1232, 1232, 1232, 1232, 1232, 1232,
+ 1232, 1232, 1232, 1233, 0, 1233, 1233, 1233, 1233, 1233,
+ 1233, 1233, 1233, 1233, 1234, 0, 0, 1234, 1234, 1234,
+ 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1236, 0,
+
+ 1236, 1236, 1236, 1236, 1237, 1237, 1237, 1237, 1237, 1237,
+ 1237, 1238, 0, 1238, 1238, 1238, 1238, 1238, 1238, 1238,
+ 1238, 1238, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1240,
+ 1240, 0, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+ 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
+
+ 1089, 1089, 1089, 1089, 1089, 1089
} ;
/* The intent behind this definition is that it'll catch
@@ -2460,6 +2480,8 @@
static void include_file(PARROT_INTERP, char *file_name, ARGMOD(void *yyscanner));
+static int handle_identifier(PARROT_INTERP, YYSTYPE *valp, ARGIN(const char *id));
+
#define YY_DECL int yylex(YYSTYPE *valp,yyscan_t yyscanner,PARROT_INTERP)
#define YYCHOP() (yytext[--yyleng] = '\0')
@@ -2489,7 +2511,7 @@
-#line 2493 "compilers/imcc/imclexer.c"
+#line 2515 "compilers/imcc/imclexer.c"
#define INITIAL 0
#define emit 1
@@ -2734,7 +2756,7 @@
register int yy_act;
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-#line 152 "compilers/imcc/imcc.l"
+#line 154 "compilers/imcc/imcc.l"
/* for emacs "*/
if (IMCC_INFO(interp)->expect_pasm == 1 && !IMCC_INFO(interp)->in_pod) {
@@ -2753,7 +2775,7 @@
return 0;
}
-#line 2757 "compilers/imcc/imclexer.c"
+#line 2779 "compilers/imcc/imclexer.c"
if ( !yyg->yy_init )
{
@@ -2807,13 +2829,13 @@
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1062 )
+ if ( yy_current_state >= 1090 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_current_state != 1061 );
+ while ( yy_current_state != 1089 );
yy_cp = yyg->yy_last_accepting_cpos;
yy_current_state = yyg->yy_last_accepting_state;
@@ -2834,24 +2856,29 @@
goto yy_find_action;
case 1:
-/* rule 1 can match eol */
YY_RULE_SETUP
-#line 170 "compilers/imcc/imcc.l"
+#line 172 "compilers/imcc/imcc.l"
+{ IMCC_INFO(interp)->line++; }
+ YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 174 "compilers/imcc/imcc.l"
{
+ IMCC_INFO(interp)->line++;
IMCC_INFO(interp)->frames->heredoc_rest = mem_sys_strdup(yytext);
BEGIN(heredoc2);
}
YY_BREAK
-case 2:
-/* rule 2 can match eol */
+case 3:
+/* rule 3 can match eol */
YY_RULE_SETUP
-#line 175 "compilers/imcc/imcc.l"
+#line 180 "compilers/imcc/imcc.l"
{
/* heredocs have highest priority
* arrange them before all wildcard state matches */
/* Newline in the heredoc. Realloc and cat on. */
- IMCC_INFO(interp)->line++;
IMCC_INFO(interp)->heredoc_content =
(char*)mem_sys_realloc(IMCC_INFO(interp)->heredoc_content,
strlen(IMCC_INFO(interp)->heredoc_content) +
@@ -2860,10 +2887,11 @@
strlen(IMCC_INFO(interp)->heredoc_content), yytext);
}
YY_BREAK
-case 3:
+case 4:
YY_RULE_SETUP
-#line 189 "compilers/imcc/imcc.l"
+#line 193 "compilers/imcc/imcc.l"
{
+ IMCC_INFO(interp)->line++;
/* Are we at the end of the heredoc? */
if (STREQ(IMCC_INFO(interp)->heredoc_end, yytext)) {
/* End of the heredoc. */
@@ -2886,7 +2914,7 @@
yy_pop_state(yyscanner);
yy_scan_string(IMCC_INFO(interp)->frames->heredoc_rest,yyscanner);
- /* the EOF rule will increment the line number; decrement here */
+ /* not sure we need this decrement; more testing needed */
IMCC_INFO(interp)->line--;
return STRINGC;
}
@@ -2901,10 +2929,10 @@
}
}
YY_BREAK
-case 4:
-/* rule 4 can match eol */
+case 5:
+/* rule 5 can match eol */
YY_RULE_SETUP
-#line 227 "compilers/imcc/imcc.l"
+#line 232 "compilers/imcc/imcc.l"
{
yy_pop_state(yyscanner);
yy_push_state(cmt3, yyscanner);
@@ -2915,27 +2943,27 @@
return FILECOMMENT;
}
YY_BREAK
-case 5:
+case 6:
YY_RULE_SETUP
-#line 237 "compilers/imcc/imcc.l"
+#line 242 "compilers/imcc/imcc.l"
{
yy_pop_state(yyscanner);
yy_push_state(cmt4, yyscanner);
}
YY_BREAK
-case 6:
+case 7:
YY_RULE_SETUP
-#line 242 "compilers/imcc/imcc.l"
+#line 247 "compilers/imcc/imcc.l"
{ yy_push_state(cmt2, yyscanner); }
YY_BREAK
-case 7:
+case 8:
YY_RULE_SETUP
-#line 244 "compilers/imcc/imcc.l"
+#line 249 "compilers/imcc/imcc.l"
{ yy_push_state(cmt1, yyscanner); }
YY_BREAK
-case 8:
+case 9:
YY_RULE_SETUP
-#line 246 "compilers/imcc/imcc.l"
+#line 251 "compilers/imcc/imcc.l"
{
IMCC_INFO(interp)->line = atoi(yytext);
yy_pop_state(yyscanner);
@@ -2943,40 +2971,38 @@
return LINECOMMENT;
}
YY_BREAK
-case 9:
-/* rule 9 can match eol */
+case 10:
+/* rule 10 can match eol */
YY_RULE_SETUP
-#line 253 "compilers/imcc/imcc.l"
+#line 258 "compilers/imcc/imcc.l"
{
yy_pop_state(yyscanner);
- IMCC_INFO(interp)->line++;
}
YY_BREAK
-case 10:
-/* rule 10 can match eol */
+case 11:
+/* rule 11 can match eol */
YY_RULE_SETUP
-#line 258 "compilers/imcc/imcc.l"
+#line 262 "compilers/imcc/imcc.l"
{
if (IMCC_INFO(interp)->expect_pasm == 2)
BEGIN(INITIAL);
IMCC_INFO(interp)->expect_pasm = 0;
- IMCC_INFO(interp)->line++;
return '\n';
}
YY_BREAK
-case 11:
+case 12:
YY_RULE_SETUP
-#line 268 "compilers/imcc/imcc.l"
+#line 271 "compilers/imcc/imcc.l"
{
yy_push_state(cmt5, yyscanner);
}
YY_BREAK
-case 12:
-/* rule 12 can match eol */
+case 13:
+/* rule 13 can match eol */
YY_RULE_SETUP
-#line 272 "compilers/imcc/imcc.l"
+#line 275 "compilers/imcc/imcc.l"
{
if (IMCC_INFO(interp)->expect_pasm == 2)
BEGIN(INITIAL);
@@ -2984,512 +3010,512 @@
yy_pop_state(yyscanner);
IMCC_INFO(interp)->expect_pasm = 0;
- IMCC_INFO(interp)->line++;
return '\n';
}
YY_BREAK
-case 13:
-/* rule 13 can match eol */
+case 14:
+/* rule 14 can match eol */
YY_RULE_SETUP
-#line 285 "compilers/imcc/imcc.l"
+#line 287 "compilers/imcc/imcc.l"
{
/* this is a stand-alone =cut, but we're not in POD mode, so ignore. */
IMCC_INFO(interp)->line++;
}
YY_BREAK
-case 14:
+case 15:
YY_RULE_SETUP
-#line 290 "compilers/imcc/imcc.l"
+#line 292 "compilers/imcc/imcc.l"
{
+ IMCC_INFO(interp)->line++;
IMCC_INFO(interp)->in_pod = 1;
yy_push_state(pod, yyscanner);
}
YY_BREAK
-case 15:
-/* rule 15 can match eol */
+case 16:
+/* rule 16 can match eol */
YY_RULE_SETUP
-#line 295 "compilers/imcc/imcc.l"
+#line 298 "compilers/imcc/imcc.l"
{
+ IMCC_INFO(interp)->line++;
IMCC_INFO(interp)->in_pod = 0;
yy_pop_state(yyscanner);
- IMCC_INFO(interp)->line++;
}
YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 301 "compilers/imcc/imcc.l"
-{ /*ignore*/ }
- YY_BREAK
case 17:
-/* rule 17 can match eol */
YY_RULE_SETUP
-#line 303 "compilers/imcc/imcc.l"
+#line 304 "compilers/imcc/imcc.l"
{ IMCC_INFO(interp)->line++; }
YY_BREAK
case 18:
+/* rule 18 can match eol */
YY_RULE_SETUP
-#line 305 "compilers/imcc/imcc.l"
-return TK_LINE;
+#line 306 "compilers/imcc/imcc.l"
+{ /* ignore */ }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 306 "compilers/imcc/imcc.l"
-return TK_FILE;
+#line 308 "compilers/imcc/imcc.l"
+return TK_LINE;
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 307 "compilers/imcc/imcc.l"
-return ANNOTATE;
+#line 309 "compilers/imcc/imcc.l"
+return TK_FILE;
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 308 "compilers/imcc/imcc.l"
-return LEXICAL;
+#line 310 "compilers/imcc/imcc.l"
+return ANNOTATE;
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 309 "compilers/imcc/imcc.l"
-return ARG;
+#line 311 "compilers/imcc/imcc.l"
+return LEXICAL;
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 310 "compilers/imcc/imcc.l"
-return SUB;
+#line 312 "compilers/imcc/imcc.l"
+return ARG;
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 311 "compilers/imcc/imcc.l"
-return ESUB;
+#line 313 "compilers/imcc/imcc.l"
+return SUB;
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 312 "compilers/imcc/imcc.l"
-return PCC_BEGIN;
+#line 314 "compilers/imcc/imcc.l"
+return ESUB;
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 313 "compilers/imcc/imcc.l"
-return PCC_END;
+#line 315 "compilers/imcc/imcc.l"
+return PCC_BEGIN;
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 314 "compilers/imcc/imcc.l"
-return PCC_CALL;
+#line 316 "compilers/imcc/imcc.l"
+return PCC_END;
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 315 "compilers/imcc/imcc.l"
-return NCI_CALL;
+#line 317 "compilers/imcc/imcc.l"
+return PCC_CALL;
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 316 "compilers/imcc/imcc.l"
-return METH_CALL;
+#line 318 "compilers/imcc/imcc.l"
+return NCI_CALL;
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 317 "compilers/imcc/imcc.l"
-return INVOCANT;
+#line 319 "compilers/imcc/imcc.l"
+return METH_CALL;
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 318 "compilers/imcc/imcc.l"
-return PCC_SUB;
+#line 320 "compilers/imcc/imcc.l"
+return INVOCANT;
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 319 "compilers/imcc/imcc.l"
-return PCC_BEGIN_RETURN;
+#line 321 "compilers/imcc/imcc.l"
+return PCC_SUB;
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 320 "compilers/imcc/imcc.l"
-return PCC_END_RETURN;
+#line 322 "compilers/imcc/imcc.l"
+return PCC_BEGIN_RETURN;
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 321 "compilers/imcc/imcc.l"
-return PCC_BEGIN_YIELD;
+#line 323 "compilers/imcc/imcc.l"
+return PCC_END_RETURN;
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 322 "compilers/imcc/imcc.l"
-return PCC_END_YIELD;
+#line 324 "compilers/imcc/imcc.l"
+return PCC_BEGIN_YIELD;
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 324 "compilers/imcc/imcc.l"
-return METHOD;
+#line 325 "compilers/imcc/imcc.l"
+return PCC_END_YIELD;
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 325 "compilers/imcc/imcc.l"
-return MULTI;
+#line 327 "compilers/imcc/imcc.l"
+return METHOD;
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 326 "compilers/imcc/imcc.l"
-return MAIN;
+#line 328 "compilers/imcc/imcc.l"
+return MULTI;
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 327 "compilers/imcc/imcc.l"
-return LOAD;
+#line 329 "compilers/imcc/imcc.l"
+return MAIN;
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 328 "compilers/imcc/imcc.l"
-return INIT;
+#line 330 "compilers/imcc/imcc.l"
+return LOAD;
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 329 "compilers/imcc/imcc.l"
-return IMMEDIATE;
+#line 331 "compilers/imcc/imcc.l"
+return INIT;
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 330 "compilers/imcc/imcc.l"
-return POSTCOMP;
+#line 332 "compilers/imcc/imcc.l"
+return IMMEDIATE;
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 331 "compilers/imcc/imcc.l"
-return ANON;
+#line 333 "compilers/imcc/imcc.l"
+return POSTCOMP;
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 332 "compilers/imcc/imcc.l"
-return OUTER;
+#line 334 "compilers/imcc/imcc.l"
+return ANON;
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 333 "compilers/imcc/imcc.l"
-return NEED_LEX;
+#line 335 "compilers/imcc/imcc.l"
+return OUTER;
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 334 "compilers/imcc/imcc.l"
-return VTABLE_METHOD;
+#line 336 "compilers/imcc/imcc.l"
+return NEED_LEX;
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 335 "compilers/imcc/imcc.l"
-return NS_ENTRY;
+#line 337 "compilers/imcc/imcc.l"
+return VTABLE_METHOD;
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 336 "compilers/imcc/imcc.l"
-return UNIQUE_REG;
+#line 338 "compilers/imcc/imcc.l"
+return NS_ENTRY;
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 337 "compilers/imcc/imcc.l"
-return SUB_INSTANCE_OF;
+#line 339 "compilers/imcc/imcc.l"
+return UNIQUE_REG;
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 338 "compilers/imcc/imcc.l"
-return SUBID;
+#line 340 "compilers/imcc/imcc.l"
+return SUB_INSTANCE_OF;
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 340 "compilers/imcc/imcc.l"
-return RESULT;
+#line 341 "compilers/imcc/imcc.l"
+return SUBID;
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 341 "compilers/imcc/imcc.l"
-return GET_RESULTS;
+#line 343 "compilers/imcc/imcc.l"
+return RESULT;
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 342 "compilers/imcc/imcc.l"
-return YIELDT;
+#line 344 "compilers/imcc/imcc.l"
+return GET_RESULTS;
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 343 "compilers/imcc/imcc.l"
-return SET_YIELD;
+#line 345 "compilers/imcc/imcc.l"
+return YIELDT;
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 344 "compilers/imcc/imcc.l"
-return RETURN;
+#line 346 "compilers/imcc/imcc.l"
+return SET_YIELD;
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 345 "compilers/imcc/imcc.l"
-return SET_RETURN;
+#line 347 "compilers/imcc/imcc.l"
+return RETURN;
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 346 "compilers/imcc/imcc.l"
-return TAILCALL;
+#line 348 "compilers/imcc/imcc.l"
+return SET_RETURN;
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 347 "compilers/imcc/imcc.l"
-return LOADLIB;
+#line 349 "compilers/imcc/imcc.l"
+return TAILCALL;
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 349 "compilers/imcc/imcc.l"
-return ADV_FLAT;
+#line 350 "compilers/imcc/imcc.l"
+return LOADLIB;
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 350 "compilers/imcc/imcc.l"
-return ADV_SLURPY;
+#line 352 "compilers/imcc/imcc.l"
+return ADV_FLAT;
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 351 "compilers/imcc/imcc.l"
-return ADV_OPTIONAL;
+#line 353 "compilers/imcc/imcc.l"
+return ADV_SLURPY;
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 352 "compilers/imcc/imcc.l"
-return ADV_OPT_FLAG;
+#line 354 "compilers/imcc/imcc.l"
+return ADV_OPTIONAL;
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 353 "compilers/imcc/imcc.l"
-return ADV_NAMED;
+#line 355 "compilers/imcc/imcc.l"
+return ADV_OPT_FLAG;
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 354 "compilers/imcc/imcc.l"
-return ADV_ARROW;
+#line 356 "compilers/imcc/imcc.l"
+return ADV_NAMED;
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 355 "compilers/imcc/imcc.l"
-return ADV_INVOCANT;
+#line 357 "compilers/imcc/imcc.l"
+return ADV_ARROW;
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 356 "compilers/imcc/imcc.l"
-return ADV_CALL_SIG;
+#line 358 "compilers/imcc/imcc.l"
+return ADV_INVOCANT;
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 358 "compilers/imcc/imcc.l"
-return NAMESPACE;
+#line 359 "compilers/imcc/imcc.l"
+return ADV_CALL_SIG;
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 359 "compilers/imcc/imcc.l"
-return HLL;
+#line 361 "compilers/imcc/imcc.l"
+return NAMESPACE;
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 361 "compilers/imcc/imcc.l"
+#line 362 "compilers/imcc/imcc.l"
+return HLL;
+ YY_BREAK
+case 70:
+YY_RULE_SETUP
+#line 364 "compilers/imcc/imcc.l"
return LOCAL;
YY_BREAK
-case 70:
+case 71:
YY_RULE_SETUP
-#line 362 "compilers/imcc/imcc.l"
+#line 365 "compilers/imcc/imcc.l"
return CONST;
YY_BREAK
-case 71:
+case 72:
YY_RULE_SETUP
-#line 363 "compilers/imcc/imcc.l"
+#line 366 "compilers/imcc/imcc.l"
return GLOBAL_CONST;
YY_BREAK
-case 72:
+case 73:
YY_RULE_SETUP
-#line 364 "compilers/imcc/imcc.l"
+#line 367 "compilers/imcc/imcc.l"
return PARAM;
YY_BREAK
-case 73:
+case 74:
YY_RULE_SETUP
-#line 365 "compilers/imcc/imcc.l"
+#line 368 "compilers/imcc/imcc.l"
return GOTO;
YY_BREAK
-case 74:
+case 75:
YY_RULE_SETUP
-#line 366 "compilers/imcc/imcc.l"
+#line 369 "compilers/imcc/imcc.l"
return IF;
YY_BREAK
-case 75:
+case 76:
YY_RULE_SETUP
-#line 367 "compilers/imcc/imcc.l"
+#line 370 "compilers/imcc/imcc.l"
return UNLESS;
YY_BREAK
-case 76:
+case 77:
YY_RULE_SETUP
-#line 368 "compilers/imcc/imcc.l"
+#line 371 "compilers/imcc/imcc.l"
return PNULL;
YY_BREAK
-case 77:
+case 78:
YY_RULE_SETUP
-#line 369 "compilers/imcc/imcc.l"
+#line 372 "compilers/imcc/imcc.l"
return INTV;
YY_BREAK
-case 78:
+case 79:
YY_RULE_SETUP
-#line 370 "compilers/imcc/imcc.l"
+#line 373 "compilers/imcc/imcc.l"
return FLOATV;
YY_BREAK
-case 79:
+case 80:
YY_RULE_SETUP
-#line 372 "compilers/imcc/imcc.l"
+#line 375 "compilers/imcc/imcc.l"
return PMCV;
YY_BREAK
-case 80:
+case 81:
YY_RULE_SETUP
-#line 373 "compilers/imcc/imcc.l"
+#line 376 "compilers/imcc/imcc.l"
return STRINGV;
YY_BREAK
-case 81:
+case 82:
YY_RULE_SETUP
-#line 374 "compilers/imcc/imcc.l"
+#line 377 "compilers/imcc/imcc.l"
return SHIFT_LEFT;
YY_BREAK
-case 82:
+case 83:
YY_RULE_SETUP
-#line 375 "compilers/imcc/imcc.l"
+#line 378 "compilers/imcc/imcc.l"
return SHIFT_RIGHT;
YY_BREAK
-case 83:
+case 84:
YY_RULE_SETUP
-#line 376 "compilers/imcc/imcc.l"
+#line 379 "compilers/imcc/imcc.l"
return SHIFT_RIGHT_U;
YY_BREAK
-case 84:
+case 85:
YY_RULE_SETUP
-#line 377 "compilers/imcc/imcc.l"
+#line 380 "compilers/imcc/imcc.l"
return LOG_AND;
YY_BREAK
-case 85:
+case 86:
YY_RULE_SETUP
-#line 378 "compilers/imcc/imcc.l"
+#line 381 "compilers/imcc/imcc.l"
return LOG_OR;
YY_BREAK
-case 86:
+case 87:
YY_RULE_SETUP
-#line 379 "compilers/imcc/imcc.l"
+#line 382 "compilers/imcc/imcc.l"
return LOG_XOR;
YY_BREAK
-case 87:
+case 88:
YY_RULE_SETUP
-#line 380 "compilers/imcc/imcc.l"
+#line 383 "compilers/imcc/imcc.l"
return RELOP_LT;
YY_BREAK
-case 88:
+case 89:
YY_RULE_SETUP
-#line 381 "compilers/imcc/imcc.l"
+#line 384 "compilers/imcc/imcc.l"
return RELOP_LTE;
YY_BREAK
-case 89:
+case 90:
YY_RULE_SETUP
-#line 382 "compilers/imcc/imcc.l"
+#line 385 "compilers/imcc/imcc.l"
return RELOP_GT;
YY_BREAK
-case 90:
+case 91:
YY_RULE_SETUP
-#line 383 "compilers/imcc/imcc.l"
+#line 386 "compilers/imcc/imcc.l"
return RELOP_GTE;
YY_BREAK
-case 91:
+case 92:
YY_RULE_SETUP
-#line 384 "compilers/imcc/imcc.l"
+#line 387 "compilers/imcc/imcc.l"
return RELOP_EQ;
YY_BREAK
-case 92:
+case 93:
YY_RULE_SETUP
-#line 385 "compilers/imcc/imcc.l"
+#line 388 "compilers/imcc/imcc.l"
return RELOP_NE;
YY_BREAK
-case 93:
+case 94:
YY_RULE_SETUP
-#line 386 "compilers/imcc/imcc.l"
+#line 389 "compilers/imcc/imcc.l"
return POW;
YY_BREAK
-case 94:
+case 95:
YY_RULE_SETUP
-#line 388 "compilers/imcc/imcc.l"
+#line 391 "compilers/imcc/imcc.l"
return CONCAT;
YY_BREAK
-case 95:
+case 96:
YY_RULE_SETUP
-#line 389 "compilers/imcc/imcc.l"
+#line 392 "compilers/imcc/imcc.l"
return DOT;
YY_BREAK
-case 96:
+case 97:
YY_RULE_SETUP
-#line 391 "compilers/imcc/imcc.l"
+#line 394 "compilers/imcc/imcc.l"
return PLUS_ASSIGN;
YY_BREAK
-case 97:
+case 98:
YY_RULE_SETUP
-#line 392 "compilers/imcc/imcc.l"
+#line 395 "compilers/imcc/imcc.l"
return MINUS_ASSIGN;
YY_BREAK
-case 98:
+case 99:
YY_RULE_SETUP
-#line 393 "compilers/imcc/imcc.l"
+#line 396 "compilers/imcc/imcc.l"
return MUL_ASSIGN;
YY_BREAK
-case 99:
+case 100:
YY_RULE_SETUP
-#line 394 "compilers/imcc/imcc.l"
+#line 397 "compilers/imcc/imcc.l"
return DIV_ASSIGN;
YY_BREAK
-case 100:
+case 101:
YY_RULE_SETUP
-#line 395 "compilers/imcc/imcc.l"
+#line 398 "compilers/imcc/imcc.l"
return MOD_ASSIGN;
YY_BREAK
-case 101:
+case 102:
YY_RULE_SETUP
-#line 396 "compilers/imcc/imcc.l"
+#line 399 "compilers/imcc/imcc.l"
return FDIV;
YY_BREAK
-case 102:
+case 103:
YY_RULE_SETUP
-#line 397 "compilers/imcc/imcc.l"
+#line 400 "compilers/imcc/imcc.l"
return FDIV_ASSIGN;
YY_BREAK
-case 103:
+case 104:
YY_RULE_SETUP
-#line 398 "compilers/imcc/imcc.l"
+#line 401 "compilers/imcc/imcc.l"
return BAND_ASSIGN;
YY_BREAK
-case 104:
+case 105:
YY_RULE_SETUP
-#line 399 "compilers/imcc/imcc.l"
+#line 402 "compilers/imcc/imcc.l"
return BOR_ASSIGN;
YY_BREAK
-case 105:
+case 106:
YY_RULE_SETUP
-#line 400 "compilers/imcc/imcc.l"
+#line 403 "compilers/imcc/imcc.l"
return BXOR_ASSIGN;
YY_BREAK
-case 106:
+case 107:
YY_RULE_SETUP
-#line 401 "compilers/imcc/imcc.l"
+#line 404 "compilers/imcc/imcc.l"
return SHR_ASSIGN;
YY_BREAK
-case 107:
+case 108:
YY_RULE_SETUP
-#line 402 "compilers/imcc/imcc.l"
+#line 405 "compilers/imcc/imcc.l"
return SHL_ASSIGN;
YY_BREAK
-case 108:
+case 109:
YY_RULE_SETUP
-#line 403 "compilers/imcc/imcc.l"
+#line 406 "compilers/imcc/imcc.l"
return SHR_U_ASSIGN;
YY_BREAK
-case 109:
+case 110:
YY_RULE_SETUP
-#line 404 "compilers/imcc/imcc.l"
+#line 407 "compilers/imcc/imcc.l"
return CONCAT_ASSIGN;
YY_BREAK
-case 110:
+case 111:
YY_RULE_SETUP
-#line 406 "compilers/imcc/imcc.l"
+#line 409 "compilers/imcc/imcc.l"
{
char *macro_name = NULL;
int start_cond = YY_START;
@@ -3533,16 +3559,18 @@
return MACRO;
}
YY_BREAK
-case 111:
+case 112:
YY_RULE_SETUP
-#line 449 "compilers/imcc/imcc.l"
+#line 452 "compilers/imcc/imcc.l"
{
+ /* the initial whitespace catcher misses this one */
+ IMCC_INFO(interp)->line++;
return read_macro(valp, interp, yyscanner);
}
YY_BREAK
-case 112:
+case 113:
YY_RULE_SETUP
-#line 453 "compilers/imcc/imcc.l"
+#line 458 "compilers/imcc/imcc.l"
{
const int c = yylex(valp,yyscanner,interp);
@@ -3555,9 +3583,9 @@
include_file(interp, yytext + 1, yyscanner);
}
YY_BREAK
-case 113:
+case 114:
YY_RULE_SETUP
-#line 465 "compilers/imcc/imcc.l"
+#line 470 "compilers/imcc/imcc.l"
{
if (valp) {
char *label;
@@ -3580,11 +3608,10 @@
return LABEL;
}
YY_BREAK
-case 114:
+case 115:
YY_RULE_SETUP
-#line 487 "compilers/imcc/imcc.l"
+#line 492 "compilers/imcc/imcc.l"
{
-
if (valp) {
char *label;
size_t len;
@@ -3604,14 +3631,14 @@
return IDENTIFIER;
}
YY_BREAK
-case 115:
+case 116:
YY_RULE_SETUP
-#line 508 "compilers/imcc/imcc.l"
+#line 512 "compilers/imcc/imcc.l"
return COMMA;
YY_BREAK
-case 116:
+case 117:
YY_RULE_SETUP
-#line 510 "compilers/imcc/imcc.l"
+#line 514 "compilers/imcc/imcc.l"
{
/* trim last ':' */
YYCHOP();
@@ -3622,9 +3649,9 @@
return LABEL;
}
YY_BREAK
-case 117:
+case 118:
YY_RULE_SETUP
-#line 520 "compilers/imcc/imcc.l"
+#line 524 "compilers/imcc/imcc.l"
{
char * const macro_name = mem_sys_strdup(yytext + 1);
int failed = expand_macro(interp, macro_name, yyscanner);
@@ -3635,34 +3662,34 @@
}
}
YY_BREAK
-case 118:
-YY_RULE_SETUP
-#line 532 "compilers/imcc/imcc.l"
-DUP_AND_RET(valp, FLOATC);
- YY_BREAK
case 119:
YY_RULE_SETUP
-#line 533 "compilers/imcc/imcc.l"
-DUP_AND_RET(valp, INTC);
+#line 536 "compilers/imcc/imcc.l"
+DUP_AND_RET(valp, FLOATC);
YY_BREAK
case 120:
YY_RULE_SETUP
-#line 534 "compilers/imcc/imcc.l"
+#line 537 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, INTC);
YY_BREAK
case 121:
YY_RULE_SETUP
-#line 535 "compilers/imcc/imcc.l"
+#line 538 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, INTC);
YY_BREAK
case 122:
YY_RULE_SETUP
-#line 536 "compilers/imcc/imcc.l"
+#line 539 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, INTC);
YY_BREAK
case 123:
YY_RULE_SETUP
-#line 538 "compilers/imcc/imcc.l"
+#line 540 "compilers/imcc/imcc.l"
+DUP_AND_RET(valp, INTC);
+ YY_BREAK
+case 124:
+YY_RULE_SETUP
+#line 542 "compilers/imcc/imcc.l"
{
valp->s = mem_sys_strdup(yytext);
@@ -3673,18 +3700,18 @@
return STRINGC;
}
YY_BREAK
-case 124:
+case 125:
YY_RULE_SETUP
-#line 548 "compilers/imcc/imcc.l"
+#line 552 "compilers/imcc/imcc.l"
{
valp->s = mem_sys_strdup(yytext);
return STRINGC;
}
YY_BREAK
-case 125:
+case 126:
YY_RULE_SETUP
-#line 554 "compilers/imcc/imcc.l"
+#line 558 "compilers/imcc/imcc.l"
{
macro_frame_t *frame;
@@ -3713,9 +3740,9 @@
yy_push_state(heredoc1, yyscanner);
}
YY_BREAK
-case 126:
+case 127:
YY_RULE_SETUP
-#line 582 "compilers/imcc/imcc.l"
+#line 586 "compilers/imcc/imcc.l"
{
/* charset:"..." */
valp->s = mem_sys_strdup(yytext);
@@ -3724,9 +3751,9 @@
return USTRINGC;
}
YY_BREAK
-case 127:
+case 128:
YY_RULE_SETUP
-#line 590 "compilers/imcc/imcc.l"
+#line 594 "compilers/imcc/imcc.l"
{
if (valp) (valp)->s = yytext;
if (IMCC_INFO(interp)->state->pasm_file)
@@ -3735,9 +3762,9 @@
return IREG;
}
YY_BREAK
-case 128:
+case 129:
YY_RULE_SETUP
-#line 598 "compilers/imcc/imcc.l"
+#line 602 "compilers/imcc/imcc.l"
{
if (valp) (valp)->s = yytext;
if (IMCC_INFO(interp)->state->pasm_file)
@@ -3746,9 +3773,9 @@
return NREG;
}
YY_BREAK
-case 129:
+case 130:
YY_RULE_SETUP
-#line 606 "compilers/imcc/imcc.l"
+#line 610 "compilers/imcc/imcc.l"
{
if (valp) (valp)->s = yytext;
if (IMCC_INFO(interp)->state->pasm_file)
@@ -3757,9 +3784,9 @@
return SREG;
}
YY_BREAK
-case 130:
+case 131:
YY_RULE_SETUP
-#line 614 "compilers/imcc/imcc.l"
+#line 618 "compilers/imcc/imcc.l"
{
if (valp) (valp)->s = yytext;
if (IMCC_INFO(interp)->state->pasm_file)
@@ -3768,17 +3795,17 @@
return PREG;
}
YY_BREAK
-case 131:
+case 132:
YY_RULE_SETUP
-#line 622 "compilers/imcc/imcc.l"
+#line 626 "compilers/imcc/imcc.l"
{
IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
"'%s' is not a valid register name", yytext);
}
YY_BREAK
-case 132:
+case 133:
YY_RULE_SETUP
-#line 627 "compilers/imcc/imcc.l"
+#line 631 "compilers/imcc/imcc.l"
{
if (IMCC_INFO(interp)->state->pasm_file == 0)
IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
@@ -3790,52 +3817,26 @@
return REG;
}
YY_BREAK
-case 133:
+case 134:
YY_RULE_SETUP
-#line 638 "compilers/imcc/imcc.l"
-{
- if (!IMCC_INFO(interp)->is_def) {
- SymReg *r = find_sym(interp, yytext);
-
- if (r && (r->type & (VTIDENTIFIER|VT_CONSTP))) {
- valp->sr = r;
- return VAR;
- }
-
- if (IMCC_INFO(interp)->cur_unit
- && IMCC_INFO(interp)->cur_unit->instructions
- && (r = IMCC_INFO(interp)->cur_unit->instructions->symregs[0])
- && r->pcc_sub)
- {
- if (((r->pcc_sub->pragma & P_METHOD)
- || (IMCC_INFO(interp)->cur_unit->is_vtable_method))
- && !strcmp(yytext, "self")) {
- valp->sr = mk_ident(interp, "self", 'P');
- IMCC_INFO(interp)->cur_unit->type |= IMC_HAS_SELF;
- return VAR;
- }
- }
- }
-
- valp->s = mem_sys_strdup(yytext);
- return (!IMCC_INFO(interp)->is_def && is_op(interp, valp->s) ? PARROT_OP : IDENTIFIER);
- }
+#line 643 "compilers/imcc/imcc.l"
+{ return handle_identifier(interp, valp, yytext); }
YY_BREAK
-case 134:
+case 135:
YY_RULE_SETUP
-#line 667 "compilers/imcc/imcc.l"
+#line 645 "compilers/imcc/imcc.l"
/* skip */;
YY_BREAK
-case 135:
+case 136:
YY_RULE_SETUP
-#line 669 "compilers/imcc/imcc.l"
+#line 647 "compilers/imcc/imcc.l"
{
/* catch all except for state macro */
return yytext[0];
}
YY_BREAK
case YY_STATE_EOF(emit):
-#line 674 "compilers/imcc/imcc.l"
+#line 652 "compilers/imcc/imcc.l"
{
BEGIN(INITIAL);
@@ -3848,31 +3849,34 @@
}
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 685 "compilers/imcc/imcc.l"
+#line 663 "compilers/imcc/imcc.l"
yyterminate();
YY_BREAK
-case 136:
-YY_RULE_SETUP
-#line 687 "compilers/imcc/imcc.l"
-DUP_AND_RET(valp, ENDM);
- YY_BREAK
case 137:
-/* rule 137 can match eol */
YY_RULE_SETUP
-#line 689 "compilers/imcc/imcc.l"
+#line 665 "compilers/imcc/imcc.l"
{
+ /* the initial whitespace catcher misses this one */
IMCC_INFO(interp)->line++;
+ DUP_AND_RET(valp, ENDM);
+}
+ YY_BREAK
+case 138:
+/* rule 138 can match eol */
+YY_RULE_SETUP
+#line 671 "compilers/imcc/imcc.l"
+{
DUP_AND_RET(valp, '\n');
}
YY_BREAK
-case 138:
+case 139:
YY_RULE_SETUP
-#line 694 "compilers/imcc/imcc.l"
+#line 675 "compilers/imcc/imcc.l"
return LABEL;
YY_BREAK
-case 139:
+case 140:
YY_RULE_SETUP
-#line 696 "compilers/imcc/imcc.l"
+#line 677 "compilers/imcc/imcc.l"
{
if (yylex(valp,yyscanner,interp) != LABEL)
@@ -3897,9 +3901,9 @@
return LABEL;
}
YY_BREAK
-case 140:
+case 141:
YY_RULE_SETUP
-#line 720 "compilers/imcc/imcc.l"
+#line 701 "compilers/imcc/imcc.l"
{
if (valp) {
if (!IMCC_INFO(interp)->cur_macro_name) {
@@ -3928,51 +3932,46 @@
return IDENTIFIER;
}
YY_BREAK
-case 141:
-YY_RULE_SETUP
-#line 748 "compilers/imcc/imcc.l"
-/* skip leading ws */;
- YY_BREAK
case 142:
YY_RULE_SETUP
-#line 749 "compilers/imcc/imcc.l"
+#line 729 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, ' ');
YY_BREAK
case 143:
YY_RULE_SETUP
-#line 750 "compilers/imcc/imcc.l"
+#line 730 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, REG);
YY_BREAK
case 144:
YY_RULE_SETUP
-#line 751 "compilers/imcc/imcc.l"
+#line 731 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, REG);
YY_BREAK
case 145:
YY_RULE_SETUP
-#line 752 "compilers/imcc/imcc.l"
+#line 732 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, IDENTIFIER);
YY_BREAK
case 146:
YY_RULE_SETUP
-#line 753 "compilers/imcc/imcc.l"
+#line 733 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, MACRO);
YY_BREAK
case 147:
YY_RULE_SETUP
-#line 754 "compilers/imcc/imcc.l"
+#line 734 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, yytext[0]);
YY_BREAK
case YY_STATE_EOF(macro):
-#line 755 "compilers/imcc/imcc.l"
+#line 735 "compilers/imcc/imcc.l"
yyterminate();
YY_BREAK
case 148:
YY_RULE_SETUP
-#line 757 "compilers/imcc/imcc.l"
+#line 737 "compilers/imcc/imcc.l"
ECHO;
YY_BREAK
-#line 3976 "compilers/imcc/imclexer.c"
+#line 3975 "compilers/imcc/imclexer.c"
case YY_STATE_EOF(pod):
case YY_STATE_EOF(cmt1):
case YY_STATE_EOF(cmt2):
@@ -4275,7 +4274,7 @@
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1062 )
+ if ( yy_current_state >= 1090 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -4304,11 +4303,11 @@
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1062 )
+ if ( yy_current_state >= 1090 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 1061);
+ yy_is_jam = (yy_current_state == 1089);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -5174,7 +5173,7 @@
#define YYTABLES_NAME "yytables"
-#line 757 "compilers/imcc/imcc.l"
+#line 737 "compilers/imcc/imcc.l"
@@ -5236,6 +5235,9 @@
frame->s.next = (parser_state_t *)IMCC_INFO(interp)->frames;
IMCC_INFO(interp)->frames = frame;
+ /* start at the effective *starting line* of the macro */
+ IMCC_INFO(interp)->line = frame->s.line - 2;
+
yy_scan_string(expansion,yyscanner);
}
@@ -5491,9 +5493,6 @@
IMCC_INFO(interp)->macro_buffer = NULL;
IMCC_INFO(interp)->cur_macro_name = NULL;
- /* the ENDM rule doesn't set the line number */
- IMCC_INFO(interp)->line--;
-
return MACRO;
}
@@ -5654,8 +5653,6 @@
}
}
- /* let the normal EOF rules match line numbers */
- IMCC_INFO(interp)->line = m->line - 1;
scan_string(frame, m->expansion, yyscanner);
return 1;
@@ -5710,7 +5707,8 @@
IMCC_INFO(interp)->frames = frame;
IMCC_INFO(interp)->state = (parser_state_t *)IMCC_INFO(interp)->frames;
- IMCC_INFO(interp)->line = 1;
+ /* let the start of line rule increment this to 1 */
+ IMCC_INFO(interp)->line = 0;
yy_switch_to_buffer(yy_create_buffer(file,YY_BUF_SIZE,yyscanner),yyscanner);
}
@@ -5889,6 +5887,36 @@
return yyg->yy_hold_char == '\0';
}
+static int
+handle_identifier(PARROT_INTERP, YYSTYPE *valp, const char *text)
+{
+ if (!IMCC_INFO(interp)->is_def) {
+ SymReg *r = find_sym(interp, text);
+
+ if (r && (r->type & (VTIDENTIFIER|VT_CONSTP))) {
+ valp->sr = r;
+ return VAR;
+ }
+
+ if (IMCC_INFO(interp)->cur_unit
+ && IMCC_INFO(interp)->cur_unit->instructions
+ && (r = IMCC_INFO(interp)->cur_unit->instructions->symregs[0])
+ && r->pcc_sub)
+ {
+ if (((r->pcc_sub->pragma & P_METHOD)
+ || (IMCC_INFO(interp)->cur_unit->is_vtable_method))
+ && !strcmp(text, "self")) {
+ valp->sr = mk_ident(interp, "self", 'P');
+ IMCC_INFO(interp)->cur_unit->type |= IMC_HAS_SELF;
+ return VAR;
+ }
+ }
+ }
+
+ valp->s = mem_sys_strdup(text);
+ return (!IMCC_INFO(interp)->is_def && is_op(interp, valp->s) ? PARROT_OP : IDENTIFIER);
+}
+
/*
* Local variables:
* c-file-style: "parrot"
Modified: branches/avl_string_cache/compilers/imcc/imcparser.c
==============================================================================
--- branches/avl_string_cache/compilers/imcc/imcparser.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/compilers/imcc/imcparser.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1184,125 +1184,248 @@
enum yytokentype {
LOW_PREC = 258,
PARAM = 259,
- HLL = 260,
- TK_LINE = 261,
- TK_FILE = 262,
- GOTO = 263,
- ARG = 264,
- IF = 265,
- UNLESS = 266,
- PNULL = 267,
- SET_RETURN = 268,
- SET_YIELD = 269,
- ADV_FLAT = 270,
- ADV_SLURPY = 271,
- ADV_OPTIONAL = 272,
- ADV_OPT_FLAG = 273,
- ADV_NAMED = 274,
- ADV_ARROW = 275,
- NEW = 276,
- ADV_INVOCANT = 277,
- ADV_CALL_SIG = 278,
- NAMESPACE = 279,
- DOT_METHOD = 280,
- SUB = 281,
- SYM = 282,
- LOCAL = 283,
- LEXICAL = 284,
- CONST = 285,
- ANNOTATE = 286,
- INC = 287,
- DEC = 288,
- GLOBAL_CONST = 289,
- PLUS_ASSIGN = 290,
- MINUS_ASSIGN = 291,
- MUL_ASSIGN = 292,
- DIV_ASSIGN = 293,
- CONCAT_ASSIGN = 294,
- BAND_ASSIGN = 295,
- BOR_ASSIGN = 296,
- BXOR_ASSIGN = 297,
- FDIV = 298,
- FDIV_ASSIGN = 299,
- MOD_ASSIGN = 300,
- SHR_ASSIGN = 301,
- SHL_ASSIGN = 302,
- SHR_U_ASSIGN = 303,
- SHIFT_LEFT = 304,
- SHIFT_RIGHT = 305,
- INTV = 306,
- FLOATV = 307,
- STRINGV = 308,
- PMCV = 309,
- LOG_XOR = 310,
- RELOP_EQ = 311,
- RELOP_NE = 312,
- RELOP_GT = 313,
- RELOP_GTE = 314,
- RELOP_LT = 315,
- RELOP_LTE = 316,
- RESULT = 317,
- RETURN = 318,
- TAILCALL = 319,
- YIELDT = 320,
- GET_RESULTS = 321,
- POW = 322,
- SHIFT_RIGHT_U = 323,
- LOG_AND = 324,
- LOG_OR = 325,
- COMMA = 326,
- ESUB = 327,
- DOTDOT = 328,
- PCC_BEGIN = 329,
- PCC_END = 330,
- PCC_CALL = 331,
- PCC_SUB = 332,
- PCC_BEGIN_RETURN = 333,
- PCC_END_RETURN = 334,
- PCC_BEGIN_YIELD = 335,
- PCC_END_YIELD = 336,
- NCI_CALL = 337,
- METH_CALL = 338,
- INVOCANT = 339,
- MAIN = 340,
- LOAD = 341,
- INIT = 342,
- IMMEDIATE = 343,
- POSTCOMP = 344,
- METHOD = 345,
- ANON = 346,
- OUTER = 347,
- NEED_LEX = 348,
- MULTI = 349,
- VTABLE_METHOD = 350,
- LOADLIB = 351,
- SUB_INSTANCE_OF = 352,
- SUBID = 353,
- NS_ENTRY = 354,
- UNIQUE_REG = 355,
- LABEL = 356,
- EMIT = 357,
- EOM = 358,
- IREG = 359,
- NREG = 360,
- SREG = 361,
- PREG = 362,
- IDENTIFIER = 363,
- REG = 364,
- MACRO = 365,
- ENDM = 366,
- STRINGC = 367,
- INTC = 368,
- FLOATC = 369,
- USTRINGC = 370,
- PARROT_OP = 371,
- VAR = 372,
- LINECOMMENT = 373,
- FILECOMMENT = 374,
- DOT = 375,
- CONCAT = 376
+ SOL = 260,
+ HLL = 261,
+ TK_LINE = 262,
+ TK_FILE = 263,
+ GOTO = 264,
+ ARG = 265,
+ IF = 266,
+ UNLESS = 267,
+ PNULL = 268,
+ SET_RETURN = 269,
+ SET_YIELD = 270,
+ ADV_FLAT = 271,
+ ADV_SLURPY = 272,
+ ADV_OPTIONAL = 273,
+ ADV_OPT_FLAG = 274,
+ ADV_NAMED = 275,
+ ADV_ARROW = 276,
+ NEW = 277,
+ ADV_INVOCANT = 278,
+ ADV_CALL_SIG = 279,
+ NAMESPACE = 280,
+ DOT_METHOD = 281,
+ SUB = 282,
+ SYM = 283,
+ LOCAL = 284,
+ LEXICAL = 285,
+ CONST = 286,
+ ANNOTATE = 287,
+ INC = 288,
+ DEC = 289,
+ GLOBAL_CONST = 290,
+ PLUS_ASSIGN = 291,
+ MINUS_ASSIGN = 292,
+ MUL_ASSIGN = 293,
+ DIV_ASSIGN = 294,
+ CONCAT_ASSIGN = 295,
+ BAND_ASSIGN = 296,
+ BOR_ASSIGN = 297,
+ BXOR_ASSIGN = 298,
+ FDIV = 299,
+ FDIV_ASSIGN = 300,
+ MOD_ASSIGN = 301,
+ SHR_ASSIGN = 302,
+ SHL_ASSIGN = 303,
+ SHR_U_ASSIGN = 304,
+ SHIFT_LEFT = 305,
+ SHIFT_RIGHT = 306,
+ INTV = 307,
+ FLOATV = 308,
+ STRINGV = 309,
+ PMCV = 310,
+ LOG_XOR = 311,
+ RELOP_EQ = 312,
+ RELOP_NE = 313,
+ RELOP_GT = 314,
+ RELOP_GTE = 315,
+ RELOP_LT = 316,
+ RELOP_LTE = 317,
+ RESULT = 318,
+ RETURN = 319,
+ TAILCALL = 320,
+ YIELDT = 321,
+ GET_RESULTS = 322,
+ POW = 323,
+ SHIFT_RIGHT_U = 324,
+ LOG_AND = 325,
+ LOG_OR = 326,
+ COMMA = 327,
+ ESUB = 328,
+ DOTDOT = 329,
+ PCC_BEGIN = 330,
+ PCC_END = 331,
+ PCC_CALL = 332,
+ PCC_SUB = 333,
+ PCC_BEGIN_RETURN = 334,
+ PCC_END_RETURN = 335,
+ PCC_BEGIN_YIELD = 336,
+ PCC_END_YIELD = 337,
+ NCI_CALL = 338,
+ METH_CALL = 339,
+ INVOCANT = 340,
+ MAIN = 341,
+ LOAD = 342,
+ INIT = 343,
+ IMMEDIATE = 344,
+ POSTCOMP = 345,
+ METHOD = 346,
+ ANON = 347,
+ OUTER = 348,
+ NEED_LEX = 349,
+ MULTI = 350,
+ VTABLE_METHOD = 351,
+ LOADLIB = 352,
+ SUB_INSTANCE_OF = 353,
+ SUBID = 354,
+ NS_ENTRY = 355,
+ UNIQUE_REG = 356,
+ LABEL = 357,
+ EMIT = 358,
+ EOM = 359,
+ IREG = 360,
+ NREG = 361,
+ SREG = 362,
+ PREG = 363,
+ IDENTIFIER = 364,
+ REG = 365,
+ MACRO = 366,
+ ENDM = 367,
+ STRINGC = 368,
+ INTC = 369,
+ FLOATC = 370,
+ USTRINGC = 371,
+ PARROT_OP = 372,
+ VAR = 373,
+ LINECOMMENT = 374,
+ FILECOMMENT = 375,
+ DOT = 376,
+ CONCAT = 377
};
#endif
+/* Tokens. */
+#define LOW_PREC 258
+#define PARAM 259
+#define SOL 260
+#define HLL 261
+#define TK_LINE 262
+#define TK_FILE 263
+#define GOTO 264
+#define ARG 265
+#define IF 266
+#define UNLESS 267
+#define PNULL 268
+#define SET_RETURN 269
+#define SET_YIELD 270
+#define ADV_FLAT 271
+#define ADV_SLURPY 272
+#define ADV_OPTIONAL 273
+#define ADV_OPT_FLAG 274
+#define ADV_NAMED 275
+#define ADV_ARROW 276
+#define NEW 277
+#define ADV_INVOCANT 278
+#define ADV_CALL_SIG 279
+#define NAMESPACE 280
+#define DOT_METHOD 281
+#define SUB 282
+#define SYM 283
+#define LOCAL 284
+#define LEXICAL 285
+#define CONST 286
+#define ANNOTATE 287
+#define INC 288
+#define DEC 289
+#define GLOBAL_CONST 290
+#define PLUS_ASSIGN 291
+#define MINUS_ASSIGN 292
+#define MUL_ASSIGN 293
+#define DIV_ASSIGN 294
+#define CONCAT_ASSIGN 295
+#define BAND_ASSIGN 296
+#define BOR_ASSIGN 297
+#define BXOR_ASSIGN 298
+#define FDIV 299
+#define FDIV_ASSIGN 300
+#define MOD_ASSIGN 301
+#define SHR_ASSIGN 302
+#define SHL_ASSIGN 303
+#define SHR_U_ASSIGN 304
+#define SHIFT_LEFT 305
+#define SHIFT_RIGHT 306
+#define INTV 307
+#define FLOATV 308
+#define STRINGV 309
+#define PMCV 310
+#define LOG_XOR 311
+#define RELOP_EQ 312
+#define RELOP_NE 313
+#define RELOP_GT 314
+#define RELOP_GTE 315
+#define RELOP_LT 316
+#define RELOP_LTE 317
+#define RESULT 318
+#define RETURN 319
+#define TAILCALL 320
+#define YIELDT 321
+#define GET_RESULTS 322
+#define POW 323
+#define SHIFT_RIGHT_U 324
+#define LOG_AND 325
+#define LOG_OR 326
+#define COMMA 327
+#define ESUB 328
+#define DOTDOT 329
+#define PCC_BEGIN 330
+#define PCC_END 331
+#define PCC_CALL 332
+#define PCC_SUB 333
+#define PCC_BEGIN_RETURN 334
+#define PCC_END_RETURN 335
+#define PCC_BEGIN_YIELD 336
+#define PCC_END_YIELD 337
+#define NCI_CALL 338
+#define METH_CALL 339
+#define INVOCANT 340
+#define MAIN 341
+#define LOAD 342
+#define INIT 343
+#define IMMEDIATE 344
+#define POSTCOMP 345
+#define METHOD 346
+#define ANON 347
+#define OUTER 348
+#define NEED_LEX 349
+#define MULTI 350
+#define VTABLE_METHOD 351
+#define LOADLIB 352
+#define SUB_INSTANCE_OF 353
+#define SUBID 354
+#define NS_ENTRY 355
+#define UNIQUE_REG 356
+#define LABEL 357
+#define EMIT 358
+#define EOM 359
+#define IREG 360
+#define NREG 361
+#define SREG 362
+#define PREG 363
+#define IDENTIFIER 364
+#define REG 365
+#define MACRO 366
+#define ENDM 367
+#define STRINGC 368
+#define INTC 369
+#define FLOATC 370
+#define USTRINGC 371
+#define PARROT_OP 372
+#define VAR 373
+#define LINECOMMENT 374
+#define FILECOMMENT 375
+#define DOT 376
+#define CONCAT 377
+
@@ -1310,7 +1433,7 @@
typedef union YYSTYPE
{
-/* Line 222 of yacc.c */
+/* Line 214 of yacc.c */
#line 1075 "compilers/imcc/imcc.y"
IdList * idlist;
@@ -1321,8 +1444,8 @@
-/* Line 222 of yacc.c */
-#line 1315 "compilers/imcc/imcparser.c"
+/* Line 214 of yacc.c */
+#line 1438 "compilers/imcc/imcparser.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -1334,7 +1457,7 @@
/* Line 264 of yacc.c */
-#line 1327 "compilers/imcc/imcparser.c"
+#line 1450 "compilers/imcc/imcparser.c"
#ifdef short
# undef short
@@ -1549,10 +1672,10 @@
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 31
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 659
+#define YYLAST 686
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 139
+#define YYNTOKENS 140
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 126
/* YYNRULES -- Number of rules. */
@@ -1562,7 +1685,7 @@
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 376
+#define YYMAXUTOK 377
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -1573,16 +1696,16 @@
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
4, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 129, 2, 2, 2, 135, 136, 2,
- 126, 127, 133, 132, 2, 131, 2, 134, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 138,
- 2, 123, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 130, 2, 2, 2, 136, 137, 2,
+ 127, 128, 134, 133, 2, 132, 2, 135, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 139,
+ 2, 124, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 124, 2, 125, 2, 2, 2, 2, 2, 2,
+ 2, 125, 2, 126, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 128, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 137, 2, 130, 2, 2, 2,
+ 129, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 138, 2, 131, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -1607,7 +1730,7 @@
86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
- 116, 117, 118, 119, 120, 121, 122
+ 116, 117, 118, 119, 120, 121, 122, 123
};
#if YYDEBUG
@@ -1654,102 +1777,102 @@
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
- 140, 0, -1, 141, -1, 142, -1, 141, 142, -1,
- 162, -1, 147, -1, 164, -1, 159, -1, 111, 4,
- -1, 143, -1, 144, -1, 4, -1, 146, 4, -1,
- 97, 113, 4, -1, 7, 114, 72, 113, 4, -1,
- 8, 113, 4, -1, 32, 113, 72, 264, -1, 6,
- 113, -1, -1, 31, 148, 223, 109, 123, 264, -1,
- -1, 31, 150, 114, 255, 123, 152, -1, -1, 31,
- 151, 113, 255, 123, 152, -1, 113, -1, 116, -1,
- 154, -1, 153, 154, -1, 212, 155, 4, -1, 111,
- 4, -1, 120, -1, 119, -1, 162, -1, 149, -1,
- 143, -1, -1, 156, 117, 158, -1, -1, 78, 157,
- 186, 102, -1, 13, 256, -1, 30, 113, 72, 110,
- -1, -1, 249, -1, -1, 103, 160, 161, 104, -1,
- -1, 153, -1, 25, 163, 4, -1, 124, 257, 125,
- -1, 124, 125, -1, -1, -1, -1, 27, 165, 252,
- 166, 186, 4, 167, 168, 181, 73, -1, -1, 4,
- -1, 168, 169, 4, -1, -1, 5, 170, 171, -1,
- 223, 109, 195, -1, 95, 126, 179, 127, -1, 93,
- 126, 113, 127, -1, 93, 126, 109, 127, -1, 96,
- -1, 96, 126, 113, 127, -1, 91, -1, 91, 126,
- 152, 127, -1, 100, -1, 100, 126, 152, 127, -1,
- 98, 126, 113, 127, -1, 99, -1, 99, 126, 152,
- 127, -1, -1, 179, 72, 180, -1, 180, -1, 52,
- -1, 53, -1, 55, -1, 54, -1, 109, -1, 113,
- -1, 124, 257, 125, -1, -1, 209, -1, -1, 75,
- 4, 183, 190, 185, 189, 184, 192, 76, -1, -1,
- 214, 4, -1, -1, 85, 256, 4, -1, -1, 187,
- -1, 188, -1, 187, 188, -1, 87, -1, 88, -1,
- 86, -1, 89, -1, 90, -1, 92, -1, 94, -1,
- 172, -1, 173, -1, 174, -1, 175, -1, 176, -1,
- 177, -1, 178, -1, 77, 256, 72, 256, 4, -1,
- 77, 256, 4, -1, 83, 256, 4, -1, 84, 248,
- 4, -1, 84, 113, 4, -1, 84, 248, 72, 256,
- 4, -1, 84, 113, 72, 256, 4, -1, -1, 190,
- 191, 4, -1, 10, 238, -1, -1, 192, 193, 4,
- -1, 63, 248, 195, -1, -1, 29, 194, 223, 217,
- -1, -1, 195, 196, -1, 17, -1, 18, -1, 19,
- -1, 20, -1, 20, 126, 113, 127, -1, 20, 126,
- 116, 127, -1, 101, -1, 24, -1, -1, 79, 4,
- 198, 201, 80, -1, 205, -1, -1, 81, 4, 200,
- 202, 82, -1, -1, 201, 4, -1, 201, 203, 4,
- -1, -1, 202, 4, -1, 202, 204, 4, -1, 14,
- 256, 239, -1, 15, 256, 239, -1, -1, 207, 126,
- 206, 208, 127, -1, 64, -1, 66, -1, -1, 238,
- -1, 113, 21, 256, -1, 208, 72, 238, -1, 208,
- 72, 113, 21, 256, -1, 211, -1, 209, 211, -1,
- -1, 210, 215, -1, 111, 4, -1, 120, -1, 119,
- -1, 144, -1, 145, -1, -1, 213, -1, 213, 214,
- -1, 214, -1, 102, -1, 212, 219, 4, -1, 1,
- 4, -1, 217, -1, 216, 72, 217, -1, 109, 218,
- -1, -1, 101, -1, 225, -1, 243, -1, -1, 29,
- 220, 223, 216, -1, 30, 113, 72, 248, -1, 30,
- 116, 72, 248, -1, -1, 31, 221, 223, 109, 123,
- 264, -1, 149, -1, -1, 35, 222, 223, 109, 123,
- 264, -1, 65, 235, -1, 9, 254, -1, 117, 249,
- -1, 13, 256, -1, 235, -1, 182, -1, 197, -1,
- 199, -1, -1, 52, -1, 53, -1, 54, -1, 55,
- -1, 109, -1, 248, 123, 256, -1, 248, 123, 227,
- 256, -1, 248, 123, 256, 228, 256, -1, 248, 123,
- 256, 124, 257, 125, -1, 248, 124, 257, 125, 123,
- 256, -1, 248, 123, 128, 224, 124, 257, 125, -1,
- 248, 123, 235, -1, -1, 126, 226, 242, 127, 123,
- 234, 126, 237, 127, -1, 229, -1, 231, -1, 233,
- -1, 248, 123, 13, -1, 129, -1, 130, -1, 131,
- -1, 131, -1, 132, -1, 133, -1, 134, -1, 135,
- -1, 44, -1, 68, -1, 122, -1, 57, -1, 58,
- -1, 59, -1, 60, -1, 61, -1, 62, -1, 50,
- -1, 51, -1, 69, -1, 70, -1, 71, -1, 56,
- -1, 136, -1, 137, -1, 130, -1, -1, 67, 230,
- 126, 242, 127, -1, 248, 232, 256, -1, 36, -1,
- 37, -1, 38, -1, 39, -1, 46, -1, 45, -1,
- 40, -1, 41, -1, 42, -1, 43, -1, 47, -1,
- 48, -1, 49, -1, 248, 123, 117, 158, -1, 109,
- -1, 113, -1, 116, -1, 248, -1, 248, 121, 253,
- -1, 248, 121, 116, -1, 248, 121, 113, -1, 248,
- 121, 248, -1, -1, 234, 236, 126, 237, 127, -1,
- -1, 237, 72, 238, -1, 238, -1, 237, 72, 113,
- 21, 256, -1, 256, 21, 256, -1, 113, 21, 256,
- -1, 256, 239, -1, -1, 239, 240, -1, 16, -1,
- 20, -1, 24, -1, 20, 126, 116, 127, -1, 20,
- 126, 113, 127, -1, 248, 195, -1, 242, 72, 241,
- -1, 242, 72, 113, 21, 248, -1, 241, -1, 113,
- 21, 248, -1, -1, 245, -1, 244, -1, 12, 256,
- 247, 256, 9, 254, -1, 12, 13, 256, 9, 254,
- -1, 12, 256, 246, 254, -1, 11, 256, 246, 254,
- -1, 11, 256, 247, 256, 9, 254, -1, 11, 13,
- 256, 9, 254, -1, 72, -1, 9, -1, 57, -1,
- 58, -1, 59, -1, 60, -1, 61, -1, 62, -1,
- 118, -1, 263, -1, -1, 250, -1, 250, 72, 251,
- -1, 251, -1, 255, -1, 248, 124, 257, 125, -1,
- 124, 259, 125, -1, 253, -1, 113, -1, 116, -1,
- 109, -1, 117, -1, 109, -1, 117, -1, 254, -1,
- 256, -1, 248, -1, 264, -1, -1, 258, 261, -1,
- -1, 260, 261, -1, 262, -1, 261, 138, 262, -1,
- 256, -1, 105, -1, 106, -1, 107, -1, 108, -1,
- 110, -1, 114, -1, 115, -1, 113, -1, 116, -1
+ 141, 0, -1, 142, -1, 143, -1, 142, 143, -1,
+ 163, -1, 148, -1, 165, -1, 160, -1, 112, 4,
+ -1, 144, -1, 145, -1, 4, -1, 147, 4, -1,
+ 98, 114, 4, -1, 8, 115, 73, 114, 4, -1,
+ 9, 114, 4, -1, 33, 114, 73, 265, -1, 7,
+ 114, -1, -1, 32, 149, 224, 110, 124, 265, -1,
+ -1, 32, 151, 115, 256, 124, 153, -1, -1, 32,
+ 152, 114, 256, 124, 153, -1, 114, -1, 117, -1,
+ 155, -1, 154, 155, -1, 213, 156, 4, -1, 112,
+ 4, -1, 121, -1, 120, -1, 163, -1, 150, -1,
+ 144, -1, -1, 157, 118, 159, -1, -1, 79, 158,
+ 187, 103, -1, 14, 257, -1, 31, 114, 73, 111,
+ -1, -1, 250, -1, -1, 104, 161, 162, 105, -1,
+ -1, 154, -1, 26, 164, 4, -1, 125, 258, 126,
+ -1, 125, 126, -1, -1, -1, -1, 28, 166, 253,
+ 167, 187, 4, 168, 169, 182, 74, -1, -1, 4,
+ -1, 169, 170, 4, -1, -1, 5, 171, 172, -1,
+ 224, 110, 196, -1, 96, 127, 180, 128, -1, 94,
+ 127, 114, 128, -1, 94, 127, 110, 128, -1, 97,
+ -1, 97, 127, 114, 128, -1, 92, -1, 92, 127,
+ 153, 128, -1, 101, -1, 101, 127, 153, 128, -1,
+ 99, 127, 114, 128, -1, 100, -1, 100, 127, 153,
+ 128, -1, -1, 180, 73, 181, -1, 181, -1, 53,
+ -1, 54, -1, 56, -1, 55, -1, 110, -1, 114,
+ -1, 125, 258, 126, -1, -1, 210, -1, -1, 76,
+ 4, 184, 191, 186, 190, 185, 193, 77, -1, -1,
+ 215, 4, -1, -1, 86, 257, 4, -1, -1, 188,
+ -1, 189, -1, 188, 189, -1, 88, -1, 89, -1,
+ 87, -1, 90, -1, 91, -1, 93, -1, 95, -1,
+ 173, -1, 174, -1, 175, -1, 176, -1, 177, -1,
+ 178, -1, 179, -1, 78, 257, 73, 257, 4, -1,
+ 78, 257, 4, -1, 84, 257, 4, -1, 85, 249,
+ 4, -1, 85, 114, 4, -1, 85, 249, 73, 257,
+ 4, -1, 85, 114, 73, 257, 4, -1, -1, 191,
+ 192, 4, -1, 11, 239, -1, -1, 193, 194, 4,
+ -1, 64, 249, 196, -1, -1, 30, 195, 224, 218,
+ -1, -1, 196, 197, -1, 18, -1, 19, -1, 20,
+ -1, 21, -1, 21, 127, 114, 128, -1, 21, 127,
+ 117, 128, -1, 102, -1, 25, -1, -1, 80, 4,
+ 199, 202, 81, -1, 206, -1, -1, 82, 4, 201,
+ 203, 83, -1, -1, 202, 4, -1, 202, 204, 4,
+ -1, -1, 203, 4, -1, 203, 205, 4, -1, 15,
+ 257, 240, -1, 16, 257, 240, -1, -1, 208, 127,
+ 207, 209, 128, -1, 65, -1, 67, -1, -1, 239,
+ -1, 114, 22, 257, -1, 209, 73, 239, -1, 209,
+ 73, 114, 22, 257, -1, 212, -1, 210, 212, -1,
+ -1, 211, 216, -1, 112, 4, -1, 121, -1, 120,
+ -1, 145, -1, 146, -1, -1, 214, -1, 214, 215,
+ -1, 215, -1, 103, -1, 213, 220, 4, -1, 1,
+ 4, -1, 218, -1, 217, 73, 218, -1, 110, 219,
+ -1, -1, 102, -1, 226, -1, 244, -1, -1, 30,
+ 221, 224, 217, -1, 31, 114, 73, 249, -1, 31,
+ 117, 73, 249, -1, -1, 32, 222, 224, 110, 124,
+ 265, -1, 150, -1, -1, 36, 223, 224, 110, 124,
+ 265, -1, 66, 236, -1, 10, 255, -1, 118, 250,
+ -1, 14, 257, -1, 236, -1, 183, -1, 198, -1,
+ 200, -1, -1, 53, -1, 54, -1, 55, -1, 56,
+ -1, 110, -1, 249, 124, 257, -1, 249, 124, 228,
+ 257, -1, 249, 124, 257, 229, 257, -1, 249, 124,
+ 257, 125, 258, 126, -1, 249, 125, 258, 126, 124,
+ 257, -1, 249, 124, 129, 225, 125, 258, 126, -1,
+ 249, 124, 236, -1, -1, 127, 227, 243, 128, 124,
+ 235, 127, 238, 128, -1, 230, -1, 232, -1, 234,
+ -1, 249, 124, 14, -1, 130, -1, 131, -1, 132,
+ -1, 132, -1, 133, -1, 134, -1, 135, -1, 136,
+ -1, 45, -1, 69, -1, 123, -1, 58, -1, 59,
+ -1, 60, -1, 61, -1, 62, -1, 63, -1, 51,
+ -1, 52, -1, 70, -1, 71, -1, 72, -1, 57,
+ -1, 137, -1, 138, -1, 131, -1, -1, 68, 231,
+ 127, 243, 128, -1, 249, 233, 257, -1, 37, -1,
+ 38, -1, 39, -1, 40, -1, 47, -1, 46, -1,
+ 41, -1, 42, -1, 43, -1, 44, -1, 48, -1,
+ 49, -1, 50, -1, 249, 124, 118, 159, -1, 110,
+ -1, 114, -1, 117, -1, 249, -1, 249, 122, 254,
+ -1, 249, 122, 117, -1, 249, 122, 114, -1, 249,
+ 122, 249, -1, -1, 235, 237, 127, 238, 128, -1,
+ -1, 238, 73, 239, -1, 239, -1, 238, 73, 114,
+ 22, 257, -1, 257, 22, 257, -1, 114, 22, 257,
+ -1, 257, 240, -1, -1, 240, 241, -1, 17, -1,
+ 21, -1, 25, -1, 21, 127, 117, 128, -1, 21,
+ 127, 114, 128, -1, 249, 196, -1, 243, 73, 242,
+ -1, 243, 73, 114, 22, 249, -1, 242, -1, 114,
+ 22, 249, -1, -1, 246, -1, 245, -1, 13, 257,
+ 248, 257, 10, 255, -1, 13, 14, 257, 10, 255,
+ -1, 13, 257, 247, 255, -1, 12, 257, 247, 255,
+ -1, 12, 257, 248, 257, 10, 255, -1, 12, 14,
+ 257, 10, 255, -1, 73, -1, 10, -1, 58, -1,
+ 59, -1, 60, -1, 61, -1, 62, -1, 63, -1,
+ 119, -1, 264, -1, -1, 251, -1, 251, 73, 252,
+ -1, 252, -1, 256, -1, 249, 125, 258, 126, -1,
+ 125, 260, 126, -1, 254, -1, 114, -1, 117, -1,
+ 110, -1, 118, -1, 110, -1, 118, -1, 255, -1,
+ 257, -1, 249, -1, 265, -1, -1, 259, 262, -1,
+ -1, 261, 262, -1, 263, -1, 262, 139, 263, -1,
+ 257, -1, 106, -1, 107, -1, 108, -1, 109, -1,
+ 111, -1, 115, -1, 116, -1, 114, -1, 117, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -1797,8 +1920,8 @@
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
- "$end", "error", "$undefined", "LOW_PREC", "'\\n'", "PARAM", "HLL",
- "TK_LINE", "TK_FILE", "GOTO", "ARG", "IF", "UNLESS", "PNULL",
+ "$end", "error", "$undefined", "LOW_PREC", "'\\n'", "PARAM", "SOL",
+ "HLL", "TK_LINE", "TK_FILE", "GOTO", "ARG", "IF", "UNLESS", "PNULL",
"SET_RETURN", "SET_YIELD", "ADV_FLAT", "ADV_SLURPY", "ADV_OPTIONAL",
"ADV_OPT_FLAG", "ADV_NAMED", "ADV_ARROW", "NEW", "ADV_INVOCANT",
"ADV_CALL_SIG", "NAMESPACE", "DOT_METHOD", "SUB", "SYM", "LOCAL",
@@ -1863,48 +1986,48 @@
344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
- 374, 375, 376, 61, 91, 93, 40, 41, 110, 33,
- 126, 45, 43, 42, 47, 37, 38, 124, 59
+ 374, 375, 376, 377, 61, 91, 93, 40, 41, 110,
+ 33, 126, 45, 43, 42, 47, 37, 38, 124, 59
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint16 yyr1[] =
{
- 0, 139, 140, 141, 141, 142, 142, 142, 142, 142,
- 142, 142, 142, 143, 143, 144, 144, 145, 146, 148,
- 147, 150, 149, 151, 149, 152, 152, 153, 153, 154,
- 154, 154, 154, 154, 154, 154, 156, 155, 157, 155,
- 155, 155, 155, 158, 160, 159, 161, 161, 162, 163,
- 163, 165, 166, 167, 164, 168, 168, 168, 170, 169,
- 171, 172, 173, 173, 174, 174, 175, 175, 176, 176,
- 177, 178, 178, 179, 179, 179, 180, 180, 180, 180,
- 180, 180, 180, 181, 181, 183, 182, 184, 184, 185,
- 185, 186, 186, 187, 187, 188, 188, 188, 188, 188,
- 188, 188, 188, 188, 188, 188, 188, 188, 188, 189,
- 189, 189, 189, 189, 189, 189, 190, 190, 191, 192,
- 192, 193, 194, 193, 195, 195, 196, 196, 196, 196,
- 196, 196, 196, 196, 198, 197, 197, 200, 199, 201,
- 201, 201, 202, 202, 202, 203, 204, 206, 205, 207,
- 207, 208, 208, 208, 208, 208, 209, 209, 210, 211,
- 211, 211, 211, 211, 211, 212, 212, 213, 213, 214,
- 215, 215, 216, 216, 217, 218, 218, 219, 219, 220,
- 219, 219, 219, 221, 219, 219, 222, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 223, 223, 223,
- 223, 224, 225, 225, 225, 225, 225, 225, 225, 226,
- 225, 225, 225, 225, 225, 227, 227, 227, 228, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 230, 229, 231, 232, 232, 232, 232, 232, 232,
- 232, 232, 232, 232, 232, 232, 232, 233, 234, 234,
- 234, 234, 234, 234, 234, 234, 236, 235, 237, 237,
- 237, 237, 237, 237, 238, 239, 239, 240, 240, 240,
- 240, 240, 241, 242, 242, 242, 242, 242, 243, 243,
- 244, 244, 244, 245, 245, 245, 246, 246, 247, 247,
- 247, 247, 247, 247, 248, 248, 249, 249, 250, 250,
- 251, 251, 251, 252, 252, 252, 253, 253, 254, 254,
- 255, 255, 256, 256, 258, 257, 260, 259, 261, 261,
- 262, 263, 263, 263, 263, 263, 264, 264, 264, 264
+ 0, 140, 141, 142, 142, 143, 143, 143, 143, 143,
+ 143, 143, 143, 144, 144, 145, 145, 146, 147, 149,
+ 148, 151, 150, 152, 150, 153, 153, 154, 154, 155,
+ 155, 155, 155, 155, 155, 155, 157, 156, 158, 156,
+ 156, 156, 156, 159, 161, 160, 162, 162, 163, 164,
+ 164, 166, 167, 168, 165, 169, 169, 169, 171, 170,
+ 172, 173, 174, 174, 175, 175, 176, 176, 177, 177,
+ 178, 179, 179, 180, 180, 180, 181, 181, 181, 181,
+ 181, 181, 181, 182, 182, 184, 183, 185, 185, 186,
+ 186, 187, 187, 188, 188, 189, 189, 189, 189, 189,
+ 189, 189, 189, 189, 189, 189, 189, 189, 189, 190,
+ 190, 190, 190, 190, 190, 190, 191, 191, 192, 193,
+ 193, 194, 195, 194, 196, 196, 197, 197, 197, 197,
+ 197, 197, 197, 197, 199, 198, 198, 201, 200, 202,
+ 202, 202, 203, 203, 203, 204, 205, 207, 206, 208,
+ 208, 209, 209, 209, 209, 209, 210, 210, 211, 212,
+ 212, 212, 212, 212, 212, 213, 213, 214, 214, 215,
+ 216, 216, 217, 217, 218, 219, 219, 220, 220, 221,
+ 220, 220, 220, 222, 220, 220, 223, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 224, 224, 224,
+ 224, 225, 226, 226, 226, 226, 226, 226, 226, 227,
+ 226, 226, 226, 226, 226, 228, 228, 228, 229, 229,
+ 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
+ 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
+ 229, 231, 230, 232, 233, 233, 233, 233, 233, 233,
+ 233, 233, 233, 233, 233, 233, 233, 234, 235, 235,
+ 235, 235, 235, 235, 235, 235, 237, 236, 238, 238,
+ 238, 238, 238, 238, 239, 240, 240, 241, 241, 241,
+ 241, 241, 242, 243, 243, 243, 243, 243, 244, 244,
+ 245, 245, 245, 246, 246, 246, 247, 247, 248, 248,
+ 248, 248, 248, 248, 249, 249, 250, 250, 251, 251,
+ 252, 252, 252, 253, 253, 253, 254, 254, 255, 255,
+ 256, 256, 257, 257, 259, 258, 261, 260, 262, 262,
+ 263, 264, 264, 264, 264, 264, 265, 265, 265, 265
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -2031,79 +2154,79 @@
#define YYPACT_NINF -424
static const yytype_int16 yypact[] =
{
- 219, -424, -86, -55, -62, -58, -424, -424, -8, -424,
- 82, 163, 219, -424, -424, -424, 169, -424, -424, -424,
- -424, -424, 93, 171, 58, 184, 95, 166, 188, 70,
- -424, -424, -424, -424, 90, -424, -424, 81, 439, -424,
+ 212, -424, -90, -80, -21, -28, -424, -424, 9, -424,
+ 118, 151, 212, -424, -424, -424, 149, -424, -424, -424,
+ -424, -424, 93, 153, 32, 163, 154, 125, 171, 180,
+ -424, -424, -424, -424, 68, -424, -424, 66, 441, -424,
-424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
- 100, -424, 109, -424, 220, -424, -424, -424, -424, 160,
- -424, 129, -424, 67, 133, -424, 232, -424, -424, -424,
+ 94, -424, 89, -424, 204, -424, -424, -424, -424, 247,
+ -424, 104, -424, 13, 108, -424, 209, -424, -424, -424,
-424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
- 99, -424, -424, -424, 421, 117, 131, 135, -424, -424,
- -424, 439, 136, -424, 250, 134, -424, -424, 439, -424,
- -424, -424, -424, -424, 130, -424, 132, -424, 137, 142,
- 146, 147, 149, -424, -424, -424, -424, -424, -424, -424,
- 251, 421, -424, 115, 425, 425, -424, 204, 421, -424,
- 350, -424, 48, -19, 161, 164, 165, 48, 48, -424,
- -424, -424, -424, -424, -424, 159, -424, 177, 182, 200,
- -424, -424, 179, -424, 234, -424, -424, -424, -424, 180,
- 181, 183, -424, -424, -424, -424, -424, -424, -424, -64,
- -424, 186, 190, 191, 192, 300, 48, 48, -424, -424,
- 196, 439, -424, 350, -424, -424, -424, 198, 161, -424,
- -424, -424, -424, -424, -424, 49, -424, -424, -424, 99,
- 199, -424, -424, -424, -424, 213, 323, -424, -424, -424,
- -424, 324, 256, 60, 8, -424, -424, 166, 259, -424,
- -424, -424, -424, 328, 230, -424, -424, 224, 115, -424,
- -67, 253, 270, 439, -424, 71, 42, -424, -424, 509,
- -424, -424, 330, 337, 338, -424, -424, -424, 350, -424,
- -424, -424, -424, -424, -424, 223, 341, -424, -424, -424,
- -424, -424, -424, -424, -424, -424, 405, -424, -424, -424,
- 439, 229, 439, 229, -424, 166, 278, 290, 166, 166,
- -424, 243, 244, -424, -424, -424, -424, 523, -424, -424,
- 246, -424, -424, -424, -424, -424, -424, -424, -424, -424,
- -424, -424, -424, -424, 379, 22, -424, 439, 5, 364,
- -424, -424, -424, -424, -424, -424, -424, -424, -67, 439,
- 365, -67, 439, 272, 247, 247, 280, 281, 523, -424,
- -424, -424, 358, -424, -39, -424, 453, 467, -424, -424,
- -424, -424, -424, 261, 265, 350, 283, -424, -424, -424,
- 439, -424, 28, 369, 268, -424, -424, -424, -424, 271,
- -424, -424, -424, -67, -424, 385, -67, -424, 389, 298,
- 329, -424, -424, -424, 282, 284, -36, 0, 27, 11,
- 247, 532, 285, 5, 382, -27, -424, -424, 388, -24,
- -424, 393, -424, -424, 293, -424, -424, -424, -424, -424,
+ 75, -424, -424, -424, 483, 91, 103, 114, -424, -424,
+ -424, 441, 115, -424, 226, 113, -424, -424, 441, -424,
+ -424, -424, -424, -424, 106, -424, 109, -424, 119, 121,
+ 122, 123, 124, -424, -424, -424, -424, -424, -424, -424,
+ 231, 483, -424, 74, 255, 255, -424, 172, 483, -424,
+ 426, -424, -40, -69, 387, 141, 142, -40, -40, -424,
+ -424, -424, -424, -424, -424, 133, -424, 134, 152, 159,
+ -424, -424, 145, -424, 193, -424, -424, -424, -424, 146,
+ 147, 148, -424, -424, -424, -424, -424, -424, -424, -58,
+ -424, 160, 161, 162, 174, 273, -40, -40, -424, -424,
+ 156, 441, -424, 426, -424, -424, -424, 165, 387, -424,
+ -424, -424, -424, -424, -424, 29, -424, -424, -424, 75,
+ 177, -424, -424, -424, -424, 166, 283, -424, -424, -424,
+ -424, 300, 232, 34, 18, -424, -424, 125, 234, -424,
+ -424, -424, -424, 304, 229, -424, -424, 203, 74, -424,
+ -85, 272, 320, 441, -424, -7, 24, -424, -424, 535,
+ -424, -424, 313, 314, 315, -424, -424, -424, 426, -424,
+ -424, -424, -424, -424, -424, 194, 318, -424, -424, -424,
+ -424, -424, -424, -424, -424, -424, 444, -424, -424, -424,
+ 441, 164, 441, 164, -424, 125, 250, 253, 125, 125,
+ -424, 205, 215, -424, -424, -424, -424, 549, -424, -424,
+ 227, -424, -424, -424, -424, -424, -424, -424, -424, -424,
+ -424, -424, -424, -424, 396, 54, -424, 441, 38, 322,
+ -424, -424, -424, -424, -424, -424, -424, -424, -85, 441,
+ 339, -85, 441, 243, 222, 222, 245, 248, 549, -424,
+ -424, -424, 335, -424, -47, -424, 479, 493, -424, -424,
+ -424, -424, -424, 233, 249, 426, 265, -424, -424, -424,
+ 441, -424, -18, 393, 251, -424, -424, -424, -424, 257,
+ -424, -424, -424, -85, -424, 375, -85, -424, 380, 290,
+ 321, -424, -424, -424, 269, 274, -37, 2, 8, 4,
+ 222, 558, 275, 38, 379, -33, -424, -424, 381, -27,
+ -424, 383, -424, -424, 281, -424, -424, -424, -424, -424,
-424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
-424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
- 439, 301, 85, -424, -67, -424, -67, -424, -424, 272,
- 115, 115, -424, 439, 439, -37, 402, -424, 439, -424,
- 417, -424, 439, -424, 419, -424, 413, -424, 509, 439,
- 481, -424, 162, 439, 495, -424, 439, -424, 310, -424,
- 439, 309, 322, -424, -424, -424, -424, -424, -424, 457,
- 439, 439, 541, 133, -424, -424, -424, -424, -424, 247,
- 336, -424, 450, -424, -424, 347, -424, -424, -424, 455,
- -424, -424, 352, -424, -424, -424, -424, -424, 10, 475,
- 12, 26, -424, 477, 162, 162, -424, 467, 439, 86,
- 439, -424, -424, 439, -424, -424, 439, -424, 439, 94,
- -424, -23, -424, 355, 356, -424, 486, 490, 494, -424,
- 247, -424, 514, -424, -424, -424, -424, -424, -424, 166,
- -424, -424, 272, 5, -424
+ 441, 284, 84, -424, -85, -424, -85, -424, -424, 243,
+ 74, 74, -424, 441, 441, -12, 403, -424, 441, -424,
+ 405, -424, 441, -424, 409, -424, 392, -424, 535, 441,
+ 507, -424, 131, 441, 521, -424, 441, -424, 271, -424,
+ 441, 289, 291, -424, -424, -424, -424, -424, -424, 416,
+ 441, 441, 567, 108, -424, -424, -424, -424, -424, 222,
+ 294, -424, 401, -424, -424, 297, -424, -424, -424, 408,
+ -424, -424, 299, -424, -424, -424, -424, -424, 5, 442,
+ 6, 17, -424, 443, 131, 131, -424, 493, 441, 85,
+ 441, -424, -424, 441, -424, -424, 441, -424, 441, 41,
+ -424, -22, -424, 329, 330, -424, 445, 455, 456, -424,
+ 222, -424, 457, -424, -424, -424, -424, -424, -424, 125,
+ -424, -424, 243, 38, -424
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -424, -424, -424, 510, -1, -161, -424, -424, -424, -424,
- 299, -424, -424, -68, -424, 465, -424, -424, -424, 203,
- -424, -424, -424, 3, -424, -424, -424, -424, -424, -424,
+ -424, -424, -424, 436, 10, -166, -424, -424, -424, -424,
+ 242, -424, -424, -62, -424, 412, -424, -424, -424, 128,
+ -424, -424, -424, 23, -424, -424, -424, -424, -424, -424,
-424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
- -424, 339, -424, -424, -424, -424, -424, 397, -424, 415,
+ -424, 279, -424, -424, -424, -424, -424, 340, -424, 353,
-424, -424, -424, -424, -424, -424, -330, -424, -424, -424,
-424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
- -424, -424, 343, 348, -424, -63, -424, -424, -423, -424,
+ -424, -424, 263, 282, -424, -63, -424, -424, -423, -424,
-424, -424, -424, -424, -214, -424, -424, -424, -424, -424,
- -424, -424, -424, -424, -424, 89, -226, -424, 43, -292,
- -329, -424, 170, 236, -424, -424, -424, 292, 297, -128,
- 331, -424, 395, -424, 286, -219, -47, -38, -164, -424,
- -424, -424, 403, 478, -424, -116
+ -424, -424, -424, -424, -424, 31, -225, -424, -30, -320,
+ -344, -424, 117, 167, -424, -424, -424, 216, 235, -128,
+ 252, -424, 316, -424, 207, -219, -8, -38, -164, -424,
+ -424, -424, 328, 419, -424, -116
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -2113,203 +2236,209 @@
#define YYTABLE_NINF -262
static const yytype_int16 yytable[] =
{
- 79, 96, 152, 227, 187, 383, 465, 141, 188, 223,
- 433, 269, -165, 280, 512, 441, 515, -165, 200, -165,
- -165, -165, 356, 357, 358, 359, 442, 21, 57, 360,
- 517, 437, 62, 381, 209, 342, 381, -165, -165, -165,
- 470, 438, 142, -165, 386, 450, 471, 472, 454, 454,
- 143, 23, 209, 126, 204, 152, 3, 4, 57, 22,
- 79, 323, 62, 189, 326, 327, 24, 3, 4, 173,
- 174, -42, -165, -165, -165, -165, 2, 145, 147, 351,
- 91, 205, 513, -165, 516, 434, 30, -165, 382, -165,
- 160, 432, 205, 443, 161, 5, 266, 92, 518, 364,
- 451, 52, 367, 455, 533, 28, 361, 439, 196, 197,
- 53, 281, 268, -165, -165, -165, -165, -165, -165, 544,
- 152, -165, -83, 529, -165, -165, -165, 68, 69, 70,
- 71, 245, 72, -84, -165, 343, 74, 75, 344, 345,
- 77, 468, 354, 79, 423, 93, 504, 425, 505, 304,
- 346, 347, 348, 349, -261, -23, -21, 530, 483, 335,
- 206, 157, 490, 31, 158, 34, 2, 8, 207, 208,
- 531, 206, 53, 33, -46, 35, 340, 352, 484, 207,
- 208, 54, 485, 36, 276, 5, 486, 277, 39, 55,
- 56, 52, 51, 271, 273, 274, 372, 373, 461, 523,
- 335, 462, 524, 66, 40, 463, 67, 464, 41, 85,
- 543, 42, 43, 162, 163, 164, 165, 152, 46, 47,
- 48, 49, -23, 1, 88, 2, 3, 4, 73, 74,
- 75, 76, 309, 90, 320, 53, 97, 98, 310, 230,
- 123, 231, 232, 233, 5, 124, 6, 458, 125, 127,
- 7, 130, 445, 335, 129, 139, 132, 8, 133, 234,
- 235, 236, 53, 134, -47, 237, 270, 353, 135, 355,
- 166, 54, 136, 137, 167, 138, 148, 171, 172, 55,
- 56, 365, 176, 272, 368, 168, 311, 312, 313, 314,
- 315, 316, 178, 492, 238, 239, 240, 241, 387, 391,
- 177, 317, 179, 182, 194, 242, 183, 184, 185, 243,
- 186, 244, 395, 190, 466, 467, 8, 191, 192, 193,
- 281, 198, 9, 202, 216, 542, 218, 219, 220, 221,
- 10, 228, 229, 267, 283, 68, 69, 70, 71, 245,
- 72, 284, 285, 246, 501, 289, 247, 248, 77, 288,
- 324, 506, 68, 69, 70, 71, 249, 72, 68, 69,
- 70, 71, 325, 72, 304, 77, 73, 74, 75, 76,
- 328, 77, 337, 363, 366, 68, 69, 70, 71, 380,
- 72, 369, 459, 73, 74, 75, 76, -259, 77, 374,
- 375, -260, 393, 421, 424, 387, 469, 422, 426, 427,
- 475, 429, 540, 449, 477, 430, 474, 431, 448, 453,
- 503, 481, 387, 396, 456, 488, 387, 457, 491, 397,
- 398, 476, 494, 478, 460, 399, 400, 401, 402, 403,
- 404, 405, 498, 499, 479, 493, 495, 406, 407, 408,
- 409, 291, 292, 293, 294, 295, 296, 297, 298, 496,
- 299, 300, 301, 302, 303, 68, 69, 70, 71, 142,
- 72, 497, 507, 73, 74, 75, 76, 143, 77, 391,
- 522, 508, 525, 509, 150, 526, 510, 511, 527, 514,
- 528, 520, 534, 535, 68, 69, 70, 71, 40, 72,
- 536, 410, 338, 411, 537, 339, 43, 77, 538, 412,
- 413, 414, 415, 416, 417, 418, 419, 99, 100, 101,
- 102, 103, 104, 105, 106, 107, 108, 109, 541, 110,
- 111, 112, 32, 250, 89, 149, 304, 203, 305, 306,
- 68, 69, 70, 71, 142, 72, 140, 480, 73, 74,
- 75, 76, 143, 77, 68, 69, 70, 71, 392, 72,
- 521, 447, 73, 74, 75, 76, 222, 77, 68, 69,
- 70, 71, 224, 72, 376, 321, 384, 74, 75, 76,
- 322, 77, 68, 69, 70, 71, 131, 72, 201, 286,
- 388, 74, 75, 76, 199, 77, 68, 69, 70, 71,
- 341, 72, 0, 0, 482, 74, 75, 76, 0, 77,
- 68, 69, 70, 71, 0, 72, 0, 0, 489, 74,
- 75, 76, 0, 77, 68, 69, 70, 71, 245, 72,
- 0, 0, 246, 0, 0, 247, 0, 77, 68, 69,
- 70, 71, 0, 72, 0, 0, 332, 68, 69, 70,
- 71, 77, 72, 0, 0, 446, 68, 69, 70, 71,
- 77, 72, 0, 0, 500, 0, 0, 0, 0, 77
+ 79, 96, 152, 227, 187, 383, 465, 141, 441, 512,
+ 515, 269, 437, 433, 280, 188, 386, -42, 200, 223,
+ 442, 517, -165, 438, 21, 142, 381, 91, -165, 209,
+ -165, -165, -165, 143, 204, 22, 381, 3, 4, 57,
+ 450, 160, 3, 4, 92, 161, 454, 209, -165, -165,
+ -165, 454, 62, 126, -165, 152, 356, 357, 358, 359,
+ 79, 323, 205, 360, 326, 327, 470, 205, 342, 57,
+ 189, 529, 471, 472, 157, 173, 174, 158, 513, 516,
+ 351, 382, 62, -165, -165, -165, -165, 443, 434, 439,
+ 518, 432, 93, 23, -165, 451, 266, 24, -165, 364,
+ -165, 455, 367, -83, 304, 530, 533, 276, -84, -261,
+ 277, 281, 268, 468, 196, 197, 145, 147, 531, 544,
+ 152, 53, 30, 28, -165, -165, -165, -165, -165, -165,
+ 483, 504, -165, 505, 490, -165, -165, -165, -23, -21,
+ 361, 206, 354, 79, 423, -165, 206, 425, 484, 207,
+ 208, 31, 485, 33, 207, 208, 486, 35, 36, 335,
+ 68, 69, 70, 71, 245, 72, 34, 39, 343, 74,
+ 75, 344, 345, 77, 310, 51, 340, 352, 46, 47,
+ 48, 49, 66, 346, 347, 348, 349, 2, 73, 74,
+ 75, 76, 67, 271, 273, 274, 372, 373, 461, 523,
+ 335, 462, 524, -23, 85, 463, 5, 464, 88, 90,
+ 543, 53, 52, 97, 98, 123, 1, 152, 124, 2,
+ 3, 4, 311, 312, 313, 314, 315, 316, 125, 127,
+ 129, 130, 309, 132, 320, 139, 133, 317, 5, 230,
+ 6, 231, 232, 233, 7, 148, 134, 458, 135, 136,
+ 137, 138, 445, 335, 2, 171, 172, 176, 177, 234,
+ 235, 236, 179, 178, 40, 237, 183, 353, 41, 355,
+ 182, 42, 43, 5, 184, 185, 186, 194, 8, 52,
+ 218, 365, 198, 53, 368, -46, 270, 219, 190, 191,
+ 192, 202, 54, 492, 238, 239, 240, 241, 387, 391,
+ 55, 56, 193, 216, 220, 242, 221, 228, 229, 243,
+ 8, 244, 395, 267, 466, 467, 9, 283, 284, 285,
+ 281, 288, 289, 324, 10, 542, 325, 304, 68, 69,
+ 70, 71, 363, 72, 272, 68, 69, 70, 71, 245,
+ 72, 77, 328, 246, 501, 8, 247, 248, 77, 366,
+ 53, 506, -47, 369, 337, 374, 249, 380, 375, 54,
+ -259, 68, 69, 70, 71, 142, 72, 55, 56, 73,
+ 74, 75, 76, 143, 77, 393, -260, 421, 68, 69,
+ 70, 71, 459, 72, 422, 424, 73, 74, 75, 76,
+ 426, 77, 427, 430, 429, 387, 469, 493, 431, 448,
+ 475, 449, 540, 453, 477, 456, 457, 474, 460, 476,
+ 503, 481, 387, 478, 479, 488, 387, 495, 491, 496,
+ 497, 507, 494, 508, 509, 511, 68, 69, 70, 71,
+ 510, 72, 498, 499, 73, 74, 75, 76, 396, 77,
+ 162, 163, 164, 165, 397, 398, 514, 520, 32, 536,
+ 399, 400, 401, 402, 403, 404, 405, 534, 535, 537,
+ 538, 541, 406, 407, 408, 409, 250, 203, 149, 391,
+ 522, 89, 525, 392, 140, 526, 222, 521, 527, 480,
+ 528, 291, 292, 293, 294, 295, 296, 297, 298, 321,
+ 299, 300, 301, 302, 303, 376, 224, 166, 447, 201,
+ 286, 167, 68, 69, 70, 71, 40, 72, 322, 199,
+ 338, 341, 168, 339, 43, 77, 410, 131, 411, 0,
+ 0, 0, 0, 0, 412, 413, 414, 415, 416, 417,
+ 418, 419, 68, 69, 70, 71, 142, 72, 0, 0,
+ 73, 74, 75, 76, 143, 77, 0, 68, 69, 70,
+ 71, 150, 72, 0, 0, 73, 74, 75, 76, 0,
+ 77, 0, 0, 0, 0, 0, 304, 0, 305, 306,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
+ 109, 0, 110, 111, 112, 68, 69, 70, 71, 0,
+ 72, 0, 0, 384, 74, 75, 76, 0, 77, 68,
+ 69, 70, 71, 0, 72, 0, 0, 388, 74, 75,
+ 76, 0, 77, 68, 69, 70, 71, 0, 72, 0,
+ 0, 482, 74, 75, 76, 0, 77, 68, 69, 70,
+ 71, 0, 72, 0, 0, 489, 74, 75, 76, 0,
+ 77, 68, 69, 70, 71, 245, 72, 0, 0, 246,
+ 0, 0, 247, 0, 77, 68, 69, 70, 71, 0,
+ 72, 0, 0, 332, 68, 69, 70, 71, 77, 72,
+ 0, 0, 446, 68, 69, 70, 71, 77, 72, 0,
+ 0, 500, 0, 0, 0, 0, 77
};
static const yytype_int16 yycheck[] =
{
- 38, 64, 130, 217, 168, 335, 429, 123, 72, 1,
- 10, 230, 4, 239, 4, 4, 4, 9, 182, 11,
- 12, 13, 17, 18, 19, 20, 15, 113, 29, 24,
- 4, 4, 29, 72, 195, 13, 72, 29, 30, 31,
- 77, 14, 109, 35, 336, 72, 83, 84, 72, 72,
- 117, 113, 213, 91, 5, 183, 7, 8, 59, 114,
- 98, 275, 59, 127, 278, 279, 124, 7, 8, 137,
- 138, 4, 64, 65, 66, 67, 6, 124, 125, 305,
- 13, 32, 72, 75, 72, 85, 4, 79, 127, 81,
- 109, 127, 32, 82, 113, 25, 224, 30, 72, 318,
- 127, 31, 321, 127, 127, 113, 101, 80, 176, 177,
- 102, 239, 228, 105, 106, 107, 108, 109, 110, 542,
- 248, 113, 73, 29, 116, 117, 118, 105, 106, 107,
- 108, 109, 110, 73, 126, 113, 114, 115, 116, 117,
- 118, 433, 306, 181, 363, 78, 475, 366, 477, 121,
- 128, 129, 130, 131, 126, 113, 114, 63, 450, 287,
- 111, 113, 454, 0, 116, 72, 6, 97, 119, 120,
- 76, 111, 102, 4, 104, 4, 304, 305, 16, 119,
- 120, 111, 20, 125, 113, 25, 24, 116, 4, 119,
- 120, 31, 4, 231, 232, 233, 324, 325, 113, 113,
- 328, 116, 116, 113, 109, 424, 125, 426, 113, 109,
- 540, 116, 117, 52, 53, 54, 55, 345, 52, 53,
- 54, 55, 113, 4, 4, 6, 7, 8, 113, 114,
- 115, 116, 270, 104, 272, 102, 4, 138, 9, 9,
- 123, 11, 12, 13, 25, 114, 27, 411, 113, 113,
- 31, 117, 380, 381, 4, 4, 126, 97, 126, 29,
- 30, 31, 102, 126, 104, 35, 13, 305, 126, 307,
- 109, 111, 126, 126, 113, 126, 72, 113, 113, 119,
- 120, 319, 123, 13, 322, 124, 57, 58, 59, 60,
- 61, 62, 110, 457, 64, 65, 66, 67, 336, 337,
- 123, 72, 102, 124, 4, 75, 72, 127, 127, 79,
- 127, 81, 350, 127, 430, 431, 97, 127, 127, 127,
- 448, 125, 103, 125, 125, 539, 113, 4, 4, 73,
- 111, 72, 4, 109, 4, 105, 106, 107, 108, 109,
- 110, 4, 4, 113, 472, 4, 116, 117, 118, 126,
- 72, 479, 105, 106, 107, 108, 126, 110, 105, 106,
- 107, 108, 72, 110, 121, 118, 113, 114, 115, 116,
- 126, 118, 126, 9, 9, 105, 106, 107, 108, 21,
- 110, 109, 420, 113, 114, 115, 116, 126, 118, 109,
- 109, 126, 109, 125, 9, 433, 434, 126, 9, 101,
- 438, 72, 530, 21, 442, 123, 4, 123, 123, 21,
- 473, 449, 450, 44, 21, 453, 454, 124, 456, 50,
- 51, 4, 460, 4, 123, 56, 57, 58, 59, 60,
- 61, 62, 470, 471, 21, 125, 127, 68, 69, 70,
- 71, 36, 37, 38, 39, 40, 41, 42, 43, 127,
- 45, 46, 47, 48, 49, 105, 106, 107, 108, 109,
- 110, 4, 126, 113, 114, 115, 116, 117, 118, 507,
- 508, 21, 510, 126, 124, 513, 21, 125, 516, 4,
- 518, 4, 127, 127, 105, 106, 107, 108, 109, 110,
- 4, 122, 113, 124, 4, 116, 117, 118, 4, 130,
- 131, 132, 133, 134, 135, 136, 137, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96, 4, 98,
- 99, 100, 12, 224, 59, 128, 121, 188, 123, 124,
- 105, 106, 107, 108, 109, 110, 121, 448, 113, 114,
- 115, 116, 117, 118, 105, 106, 107, 108, 345, 110,
- 507, 381, 113, 114, 115, 116, 213, 118, 105, 106,
- 107, 108, 214, 110, 328, 273, 113, 114, 115, 116,
- 273, 118, 105, 106, 107, 108, 98, 110, 183, 248,
- 113, 114, 115, 116, 181, 118, 105, 106, 107, 108,
- 304, 110, -1, -1, 113, 114, 115, 116, -1, 118,
- 105, 106, 107, 108, -1, 110, -1, -1, 113, 114,
- 115, 116, -1, 118, 105, 106, 107, 108, 109, 110,
- -1, -1, 113, -1, -1, 116, -1, 118, 105, 106,
- 107, 108, -1, 110, -1, -1, 113, 105, 106, 107,
- 108, 118, 110, -1, -1, 113, 105, 106, 107, 108,
- 118, 110, -1, -1, 113, -1, -1, -1, -1, 118
+ 38, 64, 130, 217, 168, 335, 429, 123, 4, 4,
+ 4, 230, 4, 11, 239, 73, 336, 4, 182, 1,
+ 16, 4, 4, 15, 114, 110, 73, 14, 10, 195,
+ 12, 13, 14, 118, 5, 115, 73, 8, 9, 29,
+ 73, 110, 8, 9, 31, 114, 73, 213, 30, 31,
+ 32, 73, 29, 91, 36, 183, 18, 19, 20, 21,
+ 98, 275, 33, 25, 278, 279, 78, 33, 14, 59,
+ 128, 30, 84, 85, 114, 137, 138, 117, 73, 73,
+ 305, 128, 59, 65, 66, 67, 68, 83, 86, 81,
+ 73, 128, 79, 114, 76, 128, 224, 125, 80, 318,
+ 82, 128, 321, 74, 122, 64, 128, 114, 74, 127,
+ 117, 239, 228, 433, 176, 177, 124, 125, 77, 542,
+ 248, 103, 4, 114, 106, 107, 108, 109, 110, 111,
+ 450, 475, 114, 477, 454, 117, 118, 119, 114, 115,
+ 102, 112, 306, 181, 363, 127, 112, 366, 17, 120,
+ 121, 0, 21, 4, 120, 121, 25, 4, 126, 287,
+ 106, 107, 108, 109, 110, 111, 73, 4, 114, 115,
+ 116, 117, 118, 119, 10, 4, 304, 305, 53, 54,
+ 55, 56, 114, 129, 130, 131, 132, 7, 114, 115,
+ 116, 117, 126, 231, 232, 233, 324, 325, 114, 114,
+ 328, 117, 117, 114, 110, 424, 26, 426, 4, 105,
+ 540, 103, 32, 4, 139, 124, 4, 345, 115, 7,
+ 8, 9, 58, 59, 60, 61, 62, 63, 114, 114,
+ 4, 118, 270, 127, 272, 4, 127, 73, 26, 10,
+ 28, 12, 13, 14, 32, 73, 127, 411, 127, 127,
+ 127, 127, 380, 381, 7, 114, 114, 124, 124, 30,
+ 31, 32, 103, 111, 110, 36, 73, 305, 114, 307,
+ 125, 117, 118, 26, 128, 128, 128, 4, 98, 32,
+ 114, 319, 126, 103, 322, 105, 14, 4, 128, 128,
+ 128, 126, 112, 457, 65, 66, 67, 68, 336, 337,
+ 120, 121, 128, 126, 4, 76, 74, 73, 4, 80,
+ 98, 82, 350, 110, 430, 431, 104, 4, 4, 4,
+ 448, 127, 4, 73, 112, 539, 73, 122, 106, 107,
+ 108, 109, 10, 111, 14, 106, 107, 108, 109, 110,
+ 111, 119, 127, 114, 472, 98, 117, 118, 119, 10,
+ 103, 479, 105, 110, 127, 110, 127, 22, 110, 112,
+ 127, 106, 107, 108, 109, 110, 111, 120, 121, 114,
+ 115, 116, 117, 118, 119, 110, 127, 126, 106, 107,
+ 108, 109, 420, 111, 127, 10, 114, 115, 116, 117,
+ 10, 119, 102, 124, 73, 433, 434, 126, 124, 124,
+ 438, 22, 530, 22, 442, 22, 125, 4, 124, 4,
+ 473, 449, 450, 4, 22, 453, 454, 128, 456, 128,
+ 4, 127, 460, 22, 127, 126, 106, 107, 108, 109,
+ 22, 111, 470, 471, 114, 115, 116, 117, 45, 119,
+ 53, 54, 55, 56, 51, 52, 4, 4, 12, 4,
+ 57, 58, 59, 60, 61, 62, 63, 128, 128, 4,
+ 4, 4, 69, 70, 71, 72, 224, 188, 128, 507,
+ 508, 59, 510, 345, 121, 513, 213, 507, 516, 448,
+ 518, 37, 38, 39, 40, 41, 42, 43, 44, 273,
+ 46, 47, 48, 49, 50, 328, 214, 110, 381, 183,
+ 248, 114, 106, 107, 108, 109, 110, 111, 273, 181,
+ 114, 304, 125, 117, 118, 119, 123, 98, 125, -1,
+ -1, -1, -1, -1, 131, 132, 133, 134, 135, 136,
+ 137, 138, 106, 107, 108, 109, 110, 111, -1, -1,
+ 114, 115, 116, 117, 118, 119, -1, 106, 107, 108,
+ 109, 125, 111, -1, -1, 114, 115, 116, 117, -1,
+ 119, -1, -1, -1, -1, -1, 122, -1, 124, 125,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+ 97, -1, 99, 100, 101, 106, 107, 108, 109, -1,
+ 111, -1, -1, 114, 115, 116, 117, -1, 119, 106,
+ 107, 108, 109, -1, 111, -1, -1, 114, 115, 116,
+ 117, -1, 119, 106, 107, 108, 109, -1, 111, -1,
+ -1, 114, 115, 116, 117, -1, 119, 106, 107, 108,
+ 109, -1, 111, -1, -1, 114, 115, 116, 117, -1,
+ 119, 106, 107, 108, 109, 110, 111, -1, -1, 114,
+ -1, -1, 117, -1, 119, 106, 107, 108, 109, -1,
+ 111, -1, -1, 114, 106, 107, 108, 109, 119, 111,
+ -1, -1, 114, 106, 107, 108, 109, 119, 111, -1,
+ -1, 114, -1, -1, -1, -1, 119
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint16 yystos[] =
{
- 0, 4, 6, 7, 8, 25, 27, 31, 97, 103,
- 111, 140, 141, 142, 143, 144, 146, 147, 159, 162,
- 164, 113, 114, 113, 124, 163, 165, 148, 113, 160,
- 4, 0, 142, 4, 72, 4, 125, 257, 258, 4,
- 109, 113, 116, 117, 252, 253, 52, 53, 54, 55,
- 223, 4, 31, 102, 111, 119, 120, 143, 149, 153,
- 154, 161, 162, 212, 213, 214, 113, 125, 105, 106,
- 107, 108, 110, 113, 114, 115, 116, 118, 248, 256,
- 261, 262, 263, 264, 166, 109, 150, 151, 4, 154,
- 104, 13, 30, 78, 155, 156, 214, 4, 138, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
- 98, 99, 100, 172, 173, 174, 175, 176, 177, 178,
- 186, 187, 188, 123, 114, 113, 256, 113, 157, 4,
- 117, 262, 126, 126, 126, 126, 126, 126, 126, 4,
- 188, 264, 109, 117, 254, 255, 256, 255, 72, 186,
- 124, 158, 248, 249, 250, 251, 255, 113, 116, 152,
- 109, 113, 52, 53, 54, 55, 109, 113, 124, 179,
- 180, 113, 113, 152, 152, 167, 123, 123, 110, 102,
- 259, 260, 124, 72, 127, 127, 127, 257, 72, 127,
- 127, 127, 127, 127, 4, 168, 152, 152, 125, 261,
- 257, 251, 125, 180, 5, 32, 111, 119, 120, 144,
- 145, 169, 181, 209, 210, 211, 125, 170, 113, 4,
- 4, 73, 211, 1, 212, 215, 171, 223, 72, 4,
- 9, 11, 12, 13, 29, 30, 31, 35, 64, 65,
- 66, 67, 75, 79, 81, 109, 113, 116, 117, 126,
- 149, 182, 197, 199, 205, 207, 219, 225, 229, 231,
- 233, 234, 235, 243, 244, 245, 248, 109, 264, 254,
- 13, 256, 13, 256, 256, 220, 113, 116, 221, 222,
- 235, 248, 230, 4, 4, 4, 249, 226, 126, 4,
- 236, 36, 37, 38, 39, 40, 41, 42, 43, 45,
- 46, 47, 48, 49, 121, 123, 124, 232, 195, 256,
- 9, 57, 58, 59, 60, 61, 62, 72, 246, 247,
- 256, 246, 247, 223, 72, 72, 223, 223, 126, 183,
- 198, 200, 113, 241, 242, 248, 206, 126, 113, 116,
- 248, 253, 13, 113, 116, 117, 128, 129, 130, 131,
- 227, 235, 248, 256, 257, 256, 17, 18, 19, 20,
- 24, 101, 196, 9, 254, 256, 9, 254, 256, 109,
- 216, 217, 248, 248, 109, 109, 242, 190, 201, 202,
- 21, 72, 127, 195, 113, 208, 238, 256, 113, 237,
- 238, 256, 158, 109, 224, 256, 44, 50, 51, 56,
- 57, 58, 59, 60, 61, 62, 68, 69, 70, 71,
- 122, 124, 130, 131, 132, 133, 134, 135, 136, 137,
- 228, 125, 126, 254, 9, 254, 9, 101, 218, 72,
- 123, 123, 127, 10, 85, 185, 191, 4, 14, 80,
- 203, 4, 15, 82, 204, 248, 113, 241, 123, 21,
- 72, 127, 239, 21, 72, 127, 21, 124, 257, 256,
- 123, 113, 116, 254, 254, 217, 264, 264, 238, 256,
- 77, 83, 84, 189, 4, 256, 4, 256, 4, 21,
- 234, 256, 113, 238, 16, 20, 24, 240, 256, 113,
- 238, 256, 257, 125, 256, 127, 127, 4, 256, 256,
- 113, 248, 184, 214, 239, 239, 248, 126, 21, 126,
- 21, 125, 4, 72, 4, 4, 72, 4, 72, 192,
- 4, 237, 256, 113, 116, 256, 256, 256, 256, 29,
- 63, 76, 193, 127, 127, 127, 4, 4, 4, 194,
- 248, 4, 223, 195, 217
+ 0, 4, 7, 8, 9, 26, 28, 32, 98, 104,
+ 112, 141, 142, 143, 144, 145, 147, 148, 160, 163,
+ 165, 114, 115, 114, 125, 164, 166, 149, 114, 161,
+ 4, 0, 143, 4, 73, 4, 126, 258, 259, 4,
+ 110, 114, 117, 118, 253, 254, 53, 54, 55, 56,
+ 224, 4, 32, 103, 112, 120, 121, 144, 150, 154,
+ 155, 162, 163, 213, 214, 215, 114, 126, 106, 107,
+ 108, 109, 111, 114, 115, 116, 117, 119, 249, 257,
+ 262, 263, 264, 265, 167, 110, 151, 152, 4, 155,
+ 105, 14, 31, 79, 156, 157, 215, 4, 139, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 99, 100, 101, 173, 174, 175, 176, 177, 178, 179,
+ 187, 188, 189, 124, 115, 114, 257, 114, 158, 4,
+ 118, 263, 127, 127, 127, 127, 127, 127, 127, 4,
+ 189, 265, 110, 118, 255, 256, 257, 256, 73, 187,
+ 125, 159, 249, 250, 251, 252, 256, 114, 117, 153,
+ 110, 114, 53, 54, 55, 56, 110, 114, 125, 180,
+ 181, 114, 114, 153, 153, 168, 124, 124, 111, 103,
+ 260, 261, 125, 73, 128, 128, 128, 258, 73, 128,
+ 128, 128, 128, 128, 4, 169, 153, 153, 126, 262,
+ 258, 252, 126, 181, 5, 33, 112, 120, 121, 145,
+ 146, 170, 182, 210, 211, 212, 126, 171, 114, 4,
+ 4, 74, 212, 1, 213, 216, 172, 224, 73, 4,
+ 10, 12, 13, 14, 30, 31, 32, 36, 65, 66,
+ 67, 68, 76, 80, 82, 110, 114, 117, 118, 127,
+ 150, 183, 198, 200, 206, 208, 220, 226, 230, 232,
+ 234, 235, 236, 244, 245, 246, 249, 110, 265, 255,
+ 14, 257, 14, 257, 257, 221, 114, 117, 222, 223,
+ 236, 249, 231, 4, 4, 4, 250, 227, 127, 4,
+ 237, 37, 38, 39, 40, 41, 42, 43, 44, 46,
+ 47, 48, 49, 50, 122, 124, 125, 233, 196, 257,
+ 10, 58, 59, 60, 61, 62, 63, 73, 247, 248,
+ 257, 247, 248, 224, 73, 73, 224, 224, 127, 184,
+ 199, 201, 114, 242, 243, 249, 207, 127, 114, 117,
+ 249, 254, 14, 114, 117, 118, 129, 130, 131, 132,
+ 228, 236, 249, 257, 258, 257, 18, 19, 20, 21,
+ 25, 102, 197, 10, 255, 257, 10, 255, 257, 110,
+ 217, 218, 249, 249, 110, 110, 243, 191, 202, 203,
+ 22, 73, 128, 196, 114, 209, 239, 257, 114, 238,
+ 239, 257, 159, 110, 225, 257, 45, 51, 52, 57,
+ 58, 59, 60, 61, 62, 63, 69, 70, 71, 72,
+ 123, 125, 131, 132, 133, 134, 135, 136, 137, 138,
+ 229, 126, 127, 255, 10, 255, 10, 102, 219, 73,
+ 124, 124, 128, 11, 86, 186, 192, 4, 15, 81,
+ 204, 4, 16, 83, 205, 249, 114, 242, 124, 22,
+ 73, 128, 240, 22, 73, 128, 22, 125, 258, 257,
+ 124, 114, 117, 255, 255, 218, 265, 265, 239, 257,
+ 78, 84, 85, 190, 4, 257, 4, 257, 4, 22,
+ 235, 257, 114, 239, 17, 21, 25, 241, 257, 114,
+ 239, 257, 258, 126, 257, 128, 128, 4, 257, 257,
+ 114, 249, 185, 215, 240, 240, 249, 127, 22, 127,
+ 22, 126, 4, 73, 4, 4, 73, 4, 73, 193,
+ 4, 238, 257, 114, 117, 257, 257, 257, 257, 30,
+ 64, 77, 194, 128, 128, 128, 4, 4, 4, 195,
+ 249, 4, 224, 196, 218
};
#define yyerrok (yyerrstatus = 0)
@@ -3136,21 +3265,21 @@
/* Line 1455 of yacc.c */
#line 1170 "compilers/imcc/imcc.y"
- { if (yynerrs) YYABORT; (yyval.i) = 0; ;}
+ { if (yynerrs) YYABORT; (yyval.i) = 0; }
break;
case 5:
/* Line 1455 of yacc.c */
#line 1179 "compilers/imcc/imcc.y"
- { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
+ { (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 6:
/* Line 1455 of yacc.c */
#line 1180 "compilers/imcc/imcc.y"
- { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
+ { (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 7:
@@ -3161,7 +3290,7 @@
(yyval.i) = (yyvsp[(1) - (1)].i);
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
IMCC_INFO(interp)->cur_unit = 0;
- ;}
+ }
break;
case 8:
@@ -3172,42 +3301,42 @@
(yyval.i) = (yyvsp[(1) - (1)].i);
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
IMCC_INFO(interp)->cur_unit = 0;
- ;}
+ }
break;
case 9:
/* Line 1455 of yacc.c */
#line 1193 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; ;}
+ { (yyval.i) = 0; }
break;
case 10:
/* Line 1455 of yacc.c */
#line 1194 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; ;}
+ { (yyval.i) = 0; }
break;
case 11:
/* Line 1455 of yacc.c */
#line 1195 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; ;}
+ { (yyval.i) = 0; }
break;
case 12:
/* Line 1455 of yacc.c */
#line 1196 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; ;}
+ { (yyval.i) = 0; }
break;
case 13:
/* Line 1455 of yacc.c */
#line 1200 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; ;}
+ { (yyval.i) = 0; }
break;
case 14:
@@ -3218,7 +3347,7 @@
(yyval.i) = 0;
do_loadlib(interp, (yyvsp[(2) - (3)].s));
mem_sys_free((yyvsp[(2) - (3)].s));
- ;}
+ }
break;
case 15:
@@ -3229,7 +3358,7 @@
IMCC_INFO(interp)->line = atoi((yyvsp[(2) - (5)].s));
/* set_filename() frees the STRINGC */
set_filename(interp, (yyvsp[(4) - (5)].s));
- ;}
+ }
break;
case 16:
@@ -3239,7 +3368,7 @@
{
/* set_filename() frees the STRINGC */
set_filename(interp, (yyvsp[(2) - (3)].s));
- ;}
+ }
break;
case 17:
@@ -3252,7 +3381,7 @@
SymReg * const key = mk_const(interp, (yyvsp[(2) - (4)].s), 'S');
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, ".annotate", 2, key, (yyvsp[(4) - (4)].sr));
mem_sys_free((yyvsp[(2) - (4)].s));
- ;}
+ }
break;
case 18:
@@ -3267,14 +3396,14 @@
IMCC_INFO(interp)->cur_namespace = NULL;
mem_sys_free((yyvsp[(2) - (2)].s));
(yyval.t) = 0;
- ;}
+ }
break;
case 19:
/* Line 1455 of yacc.c */
#line 1249 "compilers/imcc/imcc.y"
- { IMCC_INFO(interp)->is_def = 1; ;}
+ { IMCC_INFO(interp)->is_def = 1; }
break;
case 20:
@@ -3285,14 +3414,14 @@
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
mem_sys_free((yyvsp[(4) - (6)].s));
IMCC_INFO(interp)->is_def = 0;
- ;}
+ }
break;
case 21:
/* Line 1455 of yacc.c */
#line 1258 "compilers/imcc/imcc.y"
- { IMCC_INFO(interp)->is_def = 1; ;}
+ { IMCC_INFO(interp)->is_def = 1; }
break;
case 22:
@@ -3303,14 +3432,14 @@
(yyval.i) = mk_pmc_const(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
mem_sys_free((yyvsp[(6) - (6)].s));
IMCC_INFO(interp)->is_def = 0;
- ;}
+ }
break;
case 23:
/* Line 1455 of yacc.c */
#line 1265 "compilers/imcc/imcc.y"
- { IMCC_INFO(interp)->is_def = 1; ;}
+ { IMCC_INFO(interp)->is_def = 1; }
break;
case 24:
@@ -3322,49 +3451,49 @@
mem_sys_free((yyvsp[(3) - (6)].s));
mem_sys_free((yyvsp[(6) - (6)].s));
IMCC_INFO(interp)->is_def = 0;
- ;}
+ }
break;
case 29:
/* Line 1455 of yacc.c */
#line 1284 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; ;}
+ { (yyval.i) = 0; }
break;
case 30:
/* Line 1455 of yacc.c */
#line 1285 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; ;}
+ { (yyval.i) = 0; }
break;
case 31:
/* Line 1455 of yacc.c */
#line 1286 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; ;}
+ { (yyval.i) = 0; }
break;
case 32:
/* Line 1455 of yacc.c */
#line 1287 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; ;}
+ { (yyval.i) = 0; }
break;
case 33:
/* Line 1455 of yacc.c */
#line 1288 "compilers/imcc/imcc.y"
- { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
+ { (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 36:
/* Line 1455 of yacc.c */
#line 1293 "compilers/imcc/imcc.y"
- { clear_state(interp); ;}
+ { clear_state(interp); }
break;
case 37:
@@ -3376,7 +3505,7 @@
(yyvsp[(2) - (3)].s), 0, IMCC_INFO(interp)->regs,
IMCC_INFO(interp)->nargs, IMCC_INFO(interp) -> keyvec, 1);
mem_sys_free((yyvsp[(2) - (3)].s));
- ;}
+ }
break;
case 38:
@@ -3386,7 +3515,7 @@
{
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM);
- ;}
+ }
break;
case 39:
@@ -3399,7 +3528,7 @@
mk_sub_label(interp, (yyvsp[(4) - (4)].s)));
IMCC_INFO(interp)->cur_call->pcc_sub->pragma = (yyvsp[(3) - (4)].t);
mem_sys_free((yyvsp[(4) - (4)].s));
- ;}
+ }
break;
case 40:
@@ -3408,7 +3537,7 @@
#line 1315 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr));
- ;}
+ }
break;
case 41:
@@ -3426,21 +3555,21 @@
mem_sys_free(name);
mem_sys_free((yyvsp[(2) - (4)].s));
mem_sys_free((yyvsp[(4) - (4)].s));
- ;}
+ }
break;
case 42:
/* Line 1455 of yacc.c */
#line 1331 "compilers/imcc/imcc.y"
- { (yyval.i) = 0;;}
+ { (yyval.i) = 0;}
break;
case 44:
/* Line 1455 of yacc.c */
#line 1339 "compilers/imcc/imcc.y"
- { IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); ;}
+ { IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); }
break;
case 45:
@@ -3453,7 +3582,7 @@
emit_flush(interp);
*/
(yyval.i) = 0;
- ;}
+ }
break;
case 48:
@@ -3470,7 +3599,7 @@
IMCC_INFO(interp)->cur_namespace = (yyvsp[(2) - (3)].sr);
if (re_open)
IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM);
- ;}
+ }
break;
case 49:
@@ -3479,14 +3608,14 @@
#line 1373 "compilers/imcc/imcc.y"
{
(yyval.sr) = (yyvsp[(2) - (3)].sr);
- ;}
+ }
break;
case 50:
/* Line 1455 of yacc.c */
#line 1376 "compilers/imcc/imcc.y"
- { (yyval.sr) = NULL; ;}
+ { (yyval.sr) = NULL; }
break;
case 51:
@@ -3495,7 +3624,7 @@
#line 1381 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PCCSUB);
- ;}
+ }
break;
case 52:
@@ -3504,7 +3633,7 @@
#line 1385 "compilers/imcc/imcc.y"
{
iSUBROUTINE(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (3)].sr));
- ;}
+ }
break;
case 53:
@@ -3517,28 +3646,28 @@
IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->subid = mem_sys_strdup(
IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->name);
}
- ;}
+ }
break;
case 54:
/* Line 1455 of yacc.c */
#line 1397 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; ;}
+ { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 55:
/* Line 1455 of yacc.c */
#line 1401 "compilers/imcc/imcc.y"
- { (yyval.sr) = 0; ;}
+ { (yyval.sr) = 0; }
break;
case 56:
/* Line 1455 of yacc.c */
#line 1402 "compilers/imcc/imcc.y"
- { (yyval.sr) = 0; ;}
+ { (yyval.sr) = 0; }
break;
case 57:
@@ -3553,21 +3682,21 @@
}
else
add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
- ;}
+ }
break;
case 58:
/* Line 1455 of yacc.c */
#line 1416 "compilers/imcc/imcc.y"
- { IMCC_INFO(interp)->is_def = 1; ;}
+ { IMCC_INFO(interp)->is_def = 1; }
break;
case 59:
/* Line 1455 of yacc.c */
#line 1416 "compilers/imcc/imcc.y"
- { (yyval.sr) = (yyvsp[(3) - (3)].sr); IMCC_INFO(interp)->is_def = 0; ;}
+ { (yyval.sr) = (yyvsp[(3) - (3)].sr); IMCC_INFO(interp)->is_def = 0; }
break;
case 60:
@@ -3593,14 +3722,14 @@
(yyval.sr) = mk_ident(interp, (yyvsp[(2) - (3)].s), (yyvsp[(1) - (3)].t));
(yyval.sr)->type |= (yyvsp[(3) - (3)].t);
mem_sys_free((yyvsp[(2) - (3)].s));
- ;}
+ }
break;
case 61:
/* Line 1455 of yacc.c */
#line 1446 "compilers/imcc/imcc.y"
- { (yyval.t) = 0; ;}
+ { (yyval.t) = 0; }
break;
case 62:
@@ -3611,7 +3740,7 @@
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->outer = mk_sub_address_fromc(interp, (yyvsp[(3) - (4)].s));
mem_sys_free((yyvsp[(3) - (4)].s));
- ;}
+ }
break;
case 63:
@@ -3622,7 +3751,7 @@
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->outer = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
mem_sys_free((yyvsp[(3) - (4)].s));
- ;}
+ }
break;
case 64:
@@ -3633,7 +3762,7 @@
(yyval.t) = P_VTABLE;
IMCC_INFO(interp)->cur_unit->vtable_name = NULL;
IMCC_INFO(interp)->cur_unit->is_vtable_method = 1;
- ;}
+ }
break;
case 65:
@@ -3644,7 +3773,7 @@
(yyval.t) = P_VTABLE;
IMCC_INFO(interp)->cur_unit->vtable_name = (yyvsp[(3) - (4)].s);
IMCC_INFO(interp)->cur_unit->is_vtable_method = 1;
- ;}
+ }
break;
case 66:
@@ -3655,7 +3784,7 @@
(yyval.t) = P_METHOD;
IMCC_INFO(interp)->cur_unit->method_name = NULL;
IMCC_INFO(interp)->cur_unit->is_method = 1;
- ;}
+ }
break;
case 67:
@@ -3666,7 +3795,7 @@
(yyval.t) = P_METHOD;
IMCC_INFO(interp)->cur_unit->method_name = (yyvsp[(3) - (4)].s);
IMCC_INFO(interp)->cur_unit->is_method = 1;
- ;}
+ }
break;
case 68:
@@ -3674,10 +3803,10 @@
/* Line 1455 of yacc.c */
#line 1496 "compilers/imcc/imcc.y"
{
- (yyval.t) = 0;
+ (yyval.t) = P_NSENTRY;
IMCC_INFO(interp)->cur_unit->ns_entry_name = NULL;
IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
- ;}
+ }
break;
case 69:
@@ -3685,10 +3814,10 @@
/* Line 1455 of yacc.c */
#line 1502 "compilers/imcc/imcc.y"
{
- (yyval.t) = 0;
+ (yyval.t) = P_NSENTRY;
IMCC_INFO(interp)->cur_unit->ns_entry_name = (yyvsp[(3) - (4)].s);
IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
- ;}
+ }
break;
case 70:
@@ -3698,7 +3827,7 @@
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->instance_of = (yyvsp[(3) - (4)].s);
- ;}
+ }
break;
case 71:
@@ -3708,7 +3837,7 @@
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->subid = NULL;
- ;}
+ }
break;
case 72:
@@ -3720,7 +3849,7 @@
IMCC_INFO(interp)->cur_unit->subid = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->subid = str_dup_remove_quotes((yyvsp[(3) - (4)].s));
mem_sys_free((yyvsp[(3) - (4)].s));
- ;}
+ }
break;
case 73:
@@ -3729,7 +3858,7 @@
#line 1534 "compilers/imcc/imcc.y"
{
add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, NULL);
- ;}
+ }
break;
case 74:
@@ -3739,7 +3868,7 @@
{
(yyval.t) = 0;
add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
- ;}
+ }
break;
case 75:
@@ -3749,35 +3878,35 @@
{
(yyval.t) = 0;
add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
- ;}
+ }
break;
case 76:
/* Line 1455 of yacc.c */
#line 1550 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_const(interp, "INTVAL", 'S'); ;}
+ { (yyval.sr) = mk_const(interp, "INTVAL", 'S'); }
break;
case 77:
/* Line 1455 of yacc.c */
#line 1551 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); ;}
+ { (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); }
break;
case 78:
/* Line 1455 of yacc.c */
#line 1552 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_const(interp, "PMC", 'S'); ;}
+ { (yyval.sr) = mk_const(interp, "PMC", 'S'); }
break;
case 79:
/* Line 1455 of yacc.c */
#line 1553 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_const(interp, "STRING", 'S'); ;}
+ { (yyval.sr) = mk_const(interp, "STRING", 'S'); }
break;
case 80:
@@ -3793,7 +3922,7 @@
}
mem_sys_free((yyvsp[(1) - (1)].s));
(yyval.sr) = r;
- ;}
+ }
break;
case 81:
@@ -3809,14 +3938,14 @@
}
mem_sys_free((yyvsp[(1) - (1)].s));
(yyval.sr) = r;
- ;}
+ }
break;
case 82:
/* Line 1455 of yacc.c */
#line 1576 "compilers/imcc/imcc.y"
- { (yyval.sr) = (yyvsp[(2) - (3)].sr); ;}
+ { (yyval.sr) = (yyvsp[(2) - (3)].sr); }
break;
case 85:
@@ -3845,112 +3974,112 @@
r1 = IMCC_INFO(interp)->cur_unit->instructions->symregs[0];
if (r1 && r1->pcc_sub)
r1->pcc_sub->calls_a_sub |= 1;
- ;}
+ }
break;
case 86:
/* Line 1455 of yacc.c */
#line 1614 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; ;}
+ { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 87:
/* Line 1455 of yacc.c */
#line 1618 "compilers/imcc/imcc.y"
- { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; ;}
+ { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; }
break;
case 88:
/* Line 1455 of yacc.c */
#line 1619 "compilers/imcc/imcc.y"
- { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; ;}
+ { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; }
break;
case 89:
/* Line 1455 of yacc.c */
#line 1623 "compilers/imcc/imcc.y"
- { (yyval.i) = NULL; ;}
+ { (yyval.i) = NULL; }
break;
case 90:
/* Line 1455 of yacc.c */
#line 1624 "compilers/imcc/imcc.y"
- { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); ;}
+ { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); }
break;
case 91:
/* Line 1455 of yacc.c */
#line 1628 "compilers/imcc/imcc.y"
- { (yyval.t) = 0; ;}
+ { (yyval.t) = 0; }
break;
case 93:
/* Line 1455 of yacc.c */
#line 1633 "compilers/imcc/imcc.y"
- { (yyval.t) = (yyvsp[(1) - (1)].t); ;}
+ { (yyval.t) = (yyvsp[(1) - (1)].t); }
break;
case 94:
/* Line 1455 of yacc.c */
#line 1634 "compilers/imcc/imcc.y"
- { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); ;}
+ { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 95:
/* Line 1455 of yacc.c */
#line 1638 "compilers/imcc/imcc.y"
- { (yyval.t) = P_LOAD; ;}
+ { (yyval.t) = P_LOAD; }
break;
case 96:
/* Line 1455 of yacc.c */
#line 1639 "compilers/imcc/imcc.y"
- { (yyval.t) = P_INIT; ;}
+ { (yyval.t) = P_INIT; }
break;
case 97:
/* Line 1455 of yacc.c */
#line 1640 "compilers/imcc/imcc.y"
- { (yyval.t) = P_MAIN; ;}
+ { (yyval.t) = P_MAIN; }
break;
case 98:
/* Line 1455 of yacc.c */
#line 1641 "compilers/imcc/imcc.y"
- { (yyval.t) = P_IMMEDIATE; ;}
+ { (yyval.t) = P_IMMEDIATE; }
break;
case 99:
/* Line 1455 of yacc.c */
#line 1642 "compilers/imcc/imcc.y"
- { (yyval.t) = P_POSTCOMP; ;}
+ { (yyval.t) = P_POSTCOMP; }
break;
case 100:
/* Line 1455 of yacc.c */
#line 1643 "compilers/imcc/imcc.y"
- { (yyval.t) = P_ANON; ;}
+ { (yyval.t) = P_ANON; }
break;
case 101:
/* Line 1455 of yacc.c */
#line 1644 "compilers/imcc/imcc.y"
- { (yyval.t) = P_NEED_LEX; ;}
+ { (yyval.t) = P_NEED_LEX; }
break;
case 109:
@@ -3960,7 +4089,7 @@
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
- ;}
+ }
break;
case 110:
@@ -3969,7 +4098,7 @@
#line 1661 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
- ;}
+ }
break;
case 111:
@@ -3979,7 +4108,7 @@
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isNCI;
- ;}
+ }
break;
case 112:
@@ -3988,7 +4117,7 @@
#line 1670 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
- ;}
+ }
break;
case 113:
@@ -3997,7 +4126,7 @@
#line 1674 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S'));
- ;}
+ }
break;
case 114:
@@ -4007,7 +4136,7 @@
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
- ;}
+ }
break;
case 115:
@@ -4017,35 +4146,35 @@
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (5)].s), 'S'));
add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
- ;}
+ }
break;
case 116:
/* Line 1455 of yacc.c */
#line 1691 "compilers/imcc/imcc.y"
- { (yyval.sr) = 0; ;}
+ { (yyval.sr) = 0; }
break;
case 117:
/* Line 1455 of yacc.c */
#line 1692 "compilers/imcc/imcc.y"
- { add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); ;}
+ { add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); }
break;
case 118:
/* Line 1455 of yacc.c */
#line 1696 "compilers/imcc/imcc.y"
- { (yyval.sr) = (yyvsp[(2) - (2)].sr); ;}
+ { (yyval.sr) = (yyvsp[(2) - (2)].sr); }
break;
case 119:
/* Line 1455 of yacc.c */
#line 1701 "compilers/imcc/imcc.y"
- { (yyval.sr) = 0; ;}
+ { (yyval.sr) = 0; }
break;
case 120:
@@ -4055,21 +4184,21 @@
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
- ;}
+ }
break;
case 121:
/* Line 1455 of yacc.c */
#line 1710 "compilers/imcc/imcc.y"
- { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); ;}
+ { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 122:
/* Line 1455 of yacc.c */
#line 1711 "compilers/imcc/imcc.y"
- { IMCC_INFO(interp)->is_def = 1; ;}
+ { IMCC_INFO(interp)->is_def = 1; }
break;
case 123:
@@ -4086,91 +4215,91 @@
UNUSED(ignored);
IMCC_INFO(interp)->is_def = 0;
(yyval.sr) = 0;
- ;}
+ }
break;
case 124:
/* Line 1455 of yacc.c */
#line 1726 "compilers/imcc/imcc.y"
- { (yyval.t) = 0; ;}
+ { (yyval.t) = 0; }
break;
case 125:
/* Line 1455 of yacc.c */
#line 1727 "compilers/imcc/imcc.y"
- { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); ;}
+ { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 126:
/* Line 1455 of yacc.c */
#line 1731 "compilers/imcc/imcc.y"
- { (yyval.t) = VT_FLAT; ;}
+ { (yyval.t) = VT_FLAT; }
break;
case 127:
/* Line 1455 of yacc.c */
#line 1732 "compilers/imcc/imcc.y"
- { (yyval.t) = VT_OPTIONAL; ;}
+ { (yyval.t) = VT_OPTIONAL; }
break;
case 128:
/* Line 1455 of yacc.c */
#line 1733 "compilers/imcc/imcc.y"
- { (yyval.t) = VT_OPT_FLAG; ;}
+ { (yyval.t) = VT_OPT_FLAG; }
break;
case 129:
/* Line 1455 of yacc.c */
#line 1734 "compilers/imcc/imcc.y"
- { (yyval.t) = VT_NAMED; ;}
+ { (yyval.t) = VT_NAMED; }
break;
case 130:
/* Line 1455 of yacc.c */
#line 1735 "compilers/imcc/imcc.y"
- { adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); ;}
+ { adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); }
break;
case 131:
/* Line 1455 of yacc.c */
#line 1736 "compilers/imcc/imcc.y"
- { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); ;}
+ { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); }
break;
case 132:
/* Line 1455 of yacc.c */
#line 1737 "compilers/imcc/imcc.y"
- { (yyval.t) = VT_UNIQUE_REG; ;}
+ { (yyval.t) = VT_UNIQUE_REG; }
break;
case 133:
/* Line 1455 of yacc.c */
#line 1738 "compilers/imcc/imcc.y"
- { (yyval.t) = VT_CALL_SIG; ;}
+ { (yyval.t) = VT_CALL_SIG; }
break;
case 134:
/* Line 1455 of yacc.c */
#line 1743 "compilers/imcc/imcc.y"
- { begin_return_or_yield(interp, 0); ;}
+ { begin_return_or_yield(interp, 0); }
break;
case 135:
/* Line 1455 of yacc.c */
#line 1745 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; ;}
+ { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 136:
@@ -4180,28 +4309,28 @@
{
IMCC_INFO(interp)->asm_state = AsmDefault;
(yyval.i) = 0;
- ;}
+ }
break;
case 137:
/* Line 1455 of yacc.c */
#line 1754 "compilers/imcc/imcc.y"
- { begin_return_or_yield(interp, 1); ;}
+ { begin_return_or_yield(interp, 1); }
break;
case 138:
/* Line 1455 of yacc.c */
#line 1756 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; ;}
+ { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 139:
/* Line 1455 of yacc.c */
#line 1760 "compilers/imcc/imcc.y"
- { (yyval.sr) = 0; ;}
+ { (yyval.sr) = 0; }
break;
case 140:
@@ -4211,7 +4340,7 @@
{
if ((yyvsp[(1) - (2)].sr))
add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
- ;}
+ }
break;
case 141:
@@ -4221,14 +4350,14 @@
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
- ;}
+ }
break;
case 142:
/* Line 1455 of yacc.c */
#line 1774 "compilers/imcc/imcc.y"
- { (yyval.sr) = 0; ;}
+ { (yyval.sr) = 0; }
break;
case 143:
@@ -4238,7 +4367,7 @@
{
if ((yyvsp[(1) - (2)].sr))
add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
- ;}
+ }
break;
case 144:
@@ -4248,21 +4377,21 @@
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
- ;}
+ }
break;
case 145:
/* Line 1455 of yacc.c */
#line 1788 "compilers/imcc/imcc.y"
- { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); ;}
+ { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 146:
/* Line 1455 of yacc.c */
#line 1792 "compilers/imcc/imcc.y"
- { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); ;}
+ { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 147:
@@ -4272,7 +4401,7 @@
{
if (IMCC_INFO(interp)->asm_state == AsmDefault)
begin_return_or_yield(interp, (yyvsp[(1) - (2)].t));
- ;}
+ }
break;
case 148:
@@ -4282,28 +4411,28 @@
{
IMCC_INFO(interp)->asm_state = AsmDefault;
(yyval.t) = 0;
- ;}
+ }
break;
case 149:
/* Line 1455 of yacc.c */
#line 1809 "compilers/imcc/imcc.y"
- { (yyval.t) = 0; ;}
+ { (yyval.t) = 0; }
break;
case 150:
/* Line 1455 of yacc.c */
#line 1810 "compilers/imcc/imcc.y"
- { (yyval.t) = 1; ;}
+ { (yyval.t) = 1; }
break;
case 151:
/* Line 1455 of yacc.c */
#line 1814 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; ;}
+ { (yyval.i) = 0; }
break;
case 152:
@@ -4318,7 +4447,7 @@
}
else
add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (1)].sr));
- ;}
+ }
break;
case 153:
@@ -4328,7 +4457,7 @@
{
SymReg * const name = mk_const(interp, (yyvsp[(1) - (3)].s), 'S');
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, (yyvsp[(3) - (3)].sr));
- ;}
+ }
break;
case 154:
@@ -4343,7 +4472,7 @@
}
else
add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(3) - (3)].sr));
- ;}
+ }
break;
case 155:
@@ -4353,63 +4482,63 @@
{
SymReg * const name = mk_const(interp, (yyvsp[(3) - (5)].s), 'S');
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, (yyvsp[(5) - (5)].sr));
- ;}
+ }
break;
case 158:
/* Line 1455 of yacc.c */
#line 1862 "compilers/imcc/imcc.y"
- { clear_state(interp); ;}
+ { clear_state(interp); }
break;
case 159:
/* Line 1455 of yacc.c */
#line 1867 "compilers/imcc/imcc.y"
- { (yyval.i) = (yyvsp[(2) - (2)].i); ;}
+ { (yyval.i) = (yyvsp[(2) - (2)].i); }
break;
case 160:
/* Line 1455 of yacc.c */
#line 1868 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; ;}
+ { (yyval.i) = 0; }
break;
case 161:
/* Line 1455 of yacc.c */
#line 1869 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; ;}
+ { (yyval.i) = 0; }
break;
case 162:
/* Line 1455 of yacc.c */
#line 1870 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; ;}
+ { (yyval.i) = 0; }
break;
case 163:
/* Line 1455 of yacc.c */
#line 1871 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; ;}
+ { (yyval.i) = 0; }
break;
case 164:
/* Line 1455 of yacc.c */
#line 1872 "compilers/imcc/imcc.y"
- { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
+ { (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 165:
/* Line 1455 of yacc.c */
#line 1876 "compilers/imcc/imcc.y"
- { (yyval.i) = NULL; ;}
+ { (yyval.i) = NULL; }
break;
case 169:
@@ -4420,14 +4549,14 @@
Instruction * const i = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s)));
mem_sys_free((yyvsp[(1) - (1)].s));
(yyval.i) = i;
- ;}
+ }
break;
case 170:
/* Line 1455 of yacc.c */
#line 1897 "compilers/imcc/imcc.y"
- { (yyval.i) = (yyvsp[(2) - (3)].i); ;}
+ { (yyval.i) = (yyvsp[(2) - (3)].i); }
break;
case 171:
@@ -4440,7 +4569,7 @@
YYABORT;
}
yyerrok;
- ;}
+ }
break;
case 172:
@@ -4451,7 +4580,7 @@
IdList* const l = (yyvsp[(1) - (1)].idlist);
l->next = NULL;
(yyval.idlist) = l;
- ;}
+ }
break;
case 173:
@@ -4462,7 +4591,7 @@
IdList* const l = (yyvsp[(3) - (3)].idlist);
l->next = (yyvsp[(1) - (3)].idlist);
(yyval.idlist) = l;
- ;}
+ }
break;
case 174:
@@ -4474,28 +4603,28 @@
l->id = (yyvsp[(1) - (2)].s);
l->unique_reg = (yyvsp[(2) - (2)].t);
(yyval.idlist) = l;
- ;}
+ }
break;
case 175:
/* Line 1455 of yacc.c */
#line 1935 "compilers/imcc/imcc.y"
- { (yyval.t) = 0; ;}
+ { (yyval.t) = 0; }
break;
case 176:
/* Line 1455 of yacc.c */
#line 1936 "compilers/imcc/imcc.y"
- { (yyval.t) = 1; ;}
+ { (yyval.t) = 1; }
break;
case 179:
/* Line 1455 of yacc.c */
#line 1943 "compilers/imcc/imcc.y"
- { IMCC_INFO(interp)->is_def = 1; ;}
+ { IMCC_INFO(interp)->is_def = 1; }
break;
case 180:
@@ -4516,7 +4645,7 @@
mem_sys_free(l1);
}
IMCC_INFO(interp)->is_def = 0; (yyval.i) = 0;
- ;}
+ }
break;
case 181:
@@ -4538,7 +4667,7 @@
mem_sys_free((yyvsp[(2) - (4)].s));
mem_sys_free(name);
}
- ;}
+ }
break;
case 182:
@@ -4556,14 +4685,14 @@
set_lexical(interp, (yyvsp[(4) - (4)].sr), n); (yyval.i) = 0;
mem_sys_free((yyvsp[(2) - (4)].s));
}
- ;}
+ }
break;
case 183:
/* Line 1455 of yacc.c */
#line 1989 "compilers/imcc/imcc.y"
- { IMCC_INFO(interp)->is_def = 1; ;}
+ { IMCC_INFO(interp)->is_def = 1; }
break;
case 184:
@@ -4574,14 +4703,14 @@
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 0);
IMCC_INFO(interp)->is_def = 0;
mem_sys_free((yyvsp[(4) - (6)].s));
- ;}
+ }
break;
case 186:
/* Line 1455 of yacc.c */
#line 1997 "compilers/imcc/imcc.y"
- { IMCC_INFO(interp)->is_def = 1; ;}
+ { IMCC_INFO(interp)->is_def = 1; }
break;
case 187:
@@ -4592,7 +4721,7 @@
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
IMCC_INFO(interp)->is_def = 0;
mem_sys_free((yyvsp[(4) - (6)].s));
- ;}
+ }
break;
case 188:
@@ -4603,7 +4732,7 @@
(yyval.i) = NULL;
IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isTAIL_CALL;
IMCC_INFO(interp)->cur_call = NULL;
- ;}
+ }
break;
case 189:
@@ -4612,7 +4741,7 @@
#line 2010 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr));
- ;}
+ }
break;
case 190:
@@ -4629,63 +4758,63 @@
IMCC_INFO(interp)->keyvec,
1);
mem_sys_free((yyvsp[(1) - (2)].s));
- ;}
+ }
break;
case 191:
/* Line 1455 of yacc.c */
#line 2025 "compilers/imcc/imcc.y"
- { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); ;}
+ { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); }
break;
case 192:
/* Line 1455 of yacc.c */
#line 2026 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; ;}
+ { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 193:
/* Line 1455 of yacc.c */
#line 2027 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; ;}
+ { (yyval.i) = 0; }
break;
case 196:
/* Line 1455 of yacc.c */
#line 2030 "compilers/imcc/imcc.y"
- { (yyval.i) = 0;;}
+ { (yyval.i) = 0;}
break;
case 197:
/* Line 1455 of yacc.c */
#line 2034 "compilers/imcc/imcc.y"
- { (yyval.t) = 'I'; ;}
+ { (yyval.t) = 'I'; }
break;
case 198:
/* Line 1455 of yacc.c */
#line 2035 "compilers/imcc/imcc.y"
- { (yyval.t) = 'N'; ;}
+ { (yyval.t) = 'N'; }
break;
case 199:
/* Line 1455 of yacc.c */
#line 2036 "compilers/imcc/imcc.y"
- { (yyval.t) = 'S'; ;}
+ { (yyval.t) = 'S'; }
break;
case 200:
/* Line 1455 of yacc.c */
#line 2037 "compilers/imcc/imcc.y"
- { (yyval.t) = 'P'; ;}
+ { (yyval.t) = 'P'; }
break;
case 201:
@@ -4700,49 +4829,49 @@
IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
"Unknown PMC type '%s'\n", (yyvsp[(1) - (1)].s));
}
- ;}
+ }
break;
case 202:
/* Line 1455 of yacc.c */
#line 2055 "compilers/imcc/imcc.y"
- { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); ;}
+ { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); }
break;
case 203:
/* Line 1455 of yacc.c */
#line 2057 "compilers/imcc/imcc.y"
- { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (4)].s), 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr)); ;}
+ { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (4)].s), 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
break;
case 204:
/* Line 1455 of yacc.c */
#line 2059 "compilers/imcc/imcc.y"
- { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(4) - (5)].s), 3, (yyvsp[(1) - (5)].sr), (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr)); ;}
+ { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(4) - (5)].s), 3, (yyvsp[(1) - (5)].sr), (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr)); }
break;
case 205:
/* Line 1455 of yacc.c */
#line 2061 "compilers/imcc/imcc.y"
- { (yyval.i) = iINDEXFETCH(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(5) - (6)].sr)); ;}
+ { (yyval.i) = iINDEXFETCH(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(5) - (6)].sr)); }
break;
case 206:
/* Line 1455 of yacc.c */
#line 2063 "compilers/imcc/imcc.y"
- { (yyval.i) = iINDEXSET(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(6) - (6)].sr)); ;}
+ { (yyval.i) = iINDEXSET(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
break;
case 207:
/* Line 1455 of yacc.c */
#line 2068 "compilers/imcc/imcc.y"
- { (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (7)].sr), (yyvsp[(4) - (7)].s), (yyvsp[(6) - (7)].sr), 1); ;}
+ { (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (7)].sr), (yyvsp[(4) - (7)].s), (yyvsp[(6) - (7)].sr), 1); }
break;
case 208:
@@ -4753,7 +4882,7 @@
add_pcc_result(interp, (yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr));
IMCC_INFO(interp)->cur_call = NULL;
(yyval.i) = 0;
- ;}
+ }
break;
case 209:
@@ -4762,7 +4891,7 @@
#line 2077 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
- ;}
+ }
break;
case 210:
@@ -4772,7 +4901,7 @@
{
IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr));
IMCC_INFO(interp)->cur_call = NULL;
- ;}
+ }
break;
case 214:
@@ -4781,189 +4910,189 @@
#line 2089 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr));
- ;}
+ }
break;
case 215:
/* Line 1455 of yacc.c */
#line 2096 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"not"; ;}
+ { (yyval.s) = (char *)"not"; }
break;
case 216:
/* Line 1455 of yacc.c */
#line 2097 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"bnot"; ;}
+ { (yyval.s) = (char *)"bnot"; }
break;
case 217:
/* Line 1455 of yacc.c */
#line 2098 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"neg"; ;}
+ { (yyval.s) = (char *)"neg"; }
break;
case 218:
/* Line 1455 of yacc.c */
#line 2102 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"sub"; ;}
+ { (yyval.s) = (char *)"sub"; }
break;
case 219:
/* Line 1455 of yacc.c */
#line 2103 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"add"; ;}
+ { (yyval.s) = (char *)"add"; }
break;
case 220:
/* Line 1455 of yacc.c */
#line 2104 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"mul"; ;}
+ { (yyval.s) = (char *)"mul"; }
break;
case 221:
/* Line 1455 of yacc.c */
#line 2105 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"div"; ;}
+ { (yyval.s) = (char *)"div"; }
break;
case 222:
/* Line 1455 of yacc.c */
#line 2106 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"mod"; ;}
+ { (yyval.s) = (char *)"mod"; }
break;
case 223:
/* Line 1455 of yacc.c */
#line 2107 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"fdiv"; ;}
+ { (yyval.s) = (char *)"fdiv"; }
break;
case 224:
/* Line 1455 of yacc.c */
#line 2108 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"pow"; ;}
+ { (yyval.s) = (char *)"pow"; }
break;
case 225:
/* Line 1455 of yacc.c */
#line 2109 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"concat"; ;}
+ { (yyval.s) = (char *)"concat"; }
break;
case 226:
/* Line 1455 of yacc.c */
#line 2110 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"iseq"; ;}
+ { (yyval.s) = (char *)"iseq"; }
break;
case 227:
/* Line 1455 of yacc.c */
#line 2111 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"isne"; ;}
+ { (yyval.s) = (char *)"isne"; }
break;
case 228:
/* Line 1455 of yacc.c */
#line 2112 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"isgt"; ;}
+ { (yyval.s) = (char *)"isgt"; }
break;
case 229:
/* Line 1455 of yacc.c */
#line 2113 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"isge"; ;}
+ { (yyval.s) = (char *)"isge"; }
break;
case 230:
/* Line 1455 of yacc.c */
#line 2114 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"islt"; ;}
+ { (yyval.s) = (char *)"islt"; }
break;
case 231:
/* Line 1455 of yacc.c */
#line 2115 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"isle"; ;}
+ { (yyval.s) = (char *)"isle"; }
break;
case 232:
/* Line 1455 of yacc.c */
#line 2116 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"shl"; ;}
+ { (yyval.s) = (char *)"shl"; }
break;
case 233:
/* Line 1455 of yacc.c */
#line 2117 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"shr"; ;}
+ { (yyval.s) = (char *)"shr"; }
break;
case 234:
/* Line 1455 of yacc.c */
#line 2118 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"lsr"; ;}
+ { (yyval.s) = (char *)"lsr"; }
break;
case 235:
/* Line 1455 of yacc.c */
#line 2119 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"and"; ;}
+ { (yyval.s) = (char *)"and"; }
break;
case 236:
/* Line 1455 of yacc.c */
#line 2120 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"or"; ;}
+ { (yyval.s) = (char *)"or"; }
break;
case 237:
/* Line 1455 of yacc.c */
#line 2121 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"xor"; ;}
+ { (yyval.s) = (char *)"xor"; }
break;
case 238:
/* Line 1455 of yacc.c */
#line 2122 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"band"; ;}
+ { (yyval.s) = (char *)"band"; }
break;
case 239:
/* Line 1455 of yacc.c */
#line 2123 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"bor"; ;}
+ { (yyval.s) = (char *)"bor"; }
break;
case 240:
/* Line 1455 of yacc.c */
#line 2124 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"bxor"; ;}
+ { (yyval.s) = (char *)"bxor"; }
break;
case 241:
@@ -4974,112 +5103,112 @@
(yyval.i) = IMCC_create_itcall_label(interp);
(yyval.i)->type &= ~ITCALL;
(yyval.i)->type |= ITRESULT;
- ;}
+ }
break;
case 242:
/* Line 1455 of yacc.c */
#line 2135 "compilers/imcc/imcc.y"
- { (yyval.i) = 0; ;}
+ { (yyval.i) = 0; }
break;
case 243:
/* Line 1455 of yacc.c */
#line 2142 "compilers/imcc/imcc.y"
- { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(2) - (3)].s), 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); ;}
+ { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(2) - (3)].s), 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); }
break;
case 244:
/* Line 1455 of yacc.c */
#line 2146 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"add"; ;}
+ { (yyval.s) = (char *)"add"; }
break;
case 245:
/* Line 1455 of yacc.c */
#line 2147 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"sub"; ;}
+ { (yyval.s) = (char *)"sub"; }
break;
case 246:
/* Line 1455 of yacc.c */
#line 2148 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"mul"; ;}
+ { (yyval.s) = (char *)"mul"; }
break;
case 247:
/* Line 1455 of yacc.c */
#line 2149 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"div"; ;}
+ { (yyval.s) = (char *)"div"; }
break;
case 248:
/* Line 1455 of yacc.c */
#line 2150 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"mod"; ;}
+ { (yyval.s) = (char *)"mod"; }
break;
case 249:
/* Line 1455 of yacc.c */
#line 2151 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"fdiv"; ;}
+ { (yyval.s) = (char *)"fdiv"; }
break;
case 250:
/* Line 1455 of yacc.c */
#line 2152 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"concat"; ;}
+ { (yyval.s) = (char *)"concat"; }
break;
case 251:
/* Line 1455 of yacc.c */
#line 2153 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"band"; ;}
+ { (yyval.s) = (char *)"band"; }
break;
case 252:
/* Line 1455 of yacc.c */
#line 2154 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"bor"; ;}
+ { (yyval.s) = (char *)"bor"; }
break;
case 253:
/* Line 1455 of yacc.c */
#line 2155 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"bxor"; ;}
+ { (yyval.s) = (char *)"bxor"; }
break;
case 254:
/* Line 1455 of yacc.c */
#line 2156 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"shr"; ;}
+ { (yyval.s) = (char *)"shr"; }
break;
case 255:
/* Line 1455 of yacc.c */
#line 2157 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"shl"; ;}
+ { (yyval.s) = (char *)"shl"; }
break;
case 256:
/* Line 1455 of yacc.c */
#line 2158 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"lsr"; ;}
+ { (yyval.s) = (char *)"lsr"; }
break;
case 257:
@@ -5092,28 +5221,28 @@
IMCC_INFO(interp) -> nargs,
IMCC_INFO(interp) -> keyvec, 1);
mem_sys_free((yyvsp[(3) - (4)].s));
- ;}
+ }
break;
case 258:
/* Line 1455 of yacc.c */
#line 2174 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+ { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 259:
/* Line 1455 of yacc.c */
#line 2175 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+ { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 260:
/* Line 1455 of yacc.c */
#line 2176 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+ { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 261:
@@ -5124,7 +5253,7 @@
(yyval.sr) = (yyvsp[(1) - (1)].sr);
if ((yyvsp[(1) - (1)].sr)->set != 'P')
IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR, "Sub isn't a PMC");
- ;}
+ }
break;
case 262:
@@ -5143,7 +5272,7 @@
IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
(yyval.sr) = (yyvsp[(3) - (3)].sr);
- ;}
+ }
break;
case 263:
@@ -5154,7 +5283,7 @@
IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
(yyval.sr) = mk_const(interp, (yyvsp[(3) - (3)].s), 'U');
mem_sys_free((yyvsp[(3) - (3)].s));
- ;}
+ }
break;
case 264:
@@ -5165,14 +5294,14 @@
IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
(yyval.sr) = mk_const(interp, (yyvsp[(3) - (3)].s), 'S');
mem_sys_free((yyvsp[(3) - (3)].s));
- ;}
+ }
break;
case 265:
/* Line 1455 of yacc.c */
#line 2209 "compilers/imcc/imcc.y"
- { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); ;}
+ { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); }
break;
case 266:
@@ -5182,21 +5311,21 @@
{
(yyval.i) = IMCC_create_itcall_label(interp);
IMCC_itcall_sub(interp, (yyvsp[(1) - (1)].sr));
- ;}
+ }
break;
case 267:
/* Line 1455 of yacc.c */
#line 2219 "compilers/imcc/imcc.y"
- { (yyval.i) = (yyvsp[(2) - (5)].i); ;}
+ { (yyval.i) = (yyvsp[(2) - (5)].i); }
break;
case 268:
/* Line 1455 of yacc.c */
#line 2223 "compilers/imcc/imcc.y"
- { (yyval.sr) = 0; ;}
+ { (yyval.sr) = 0; }
break;
case 269:
@@ -5211,7 +5340,7 @@
}
else
add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
- ;}
+ }
break;
case 270:
@@ -5226,7 +5355,7 @@
}
else
add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
- ;}
+ }
break;
case 271:
@@ -5238,7 +5367,7 @@
add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call,
mk_const(interp, (yyvsp[(3) - (5)].s), 'S'), (yyvsp[(5) - (5)].sr));
mem_sys_free((yyvsp[(3) - (5)].s));
- ;}
+ }
break;
case 272:
@@ -5248,7 +5377,7 @@
{
(yyval.sr) = 0;
add_pcc_named_arg_var(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));
- ;}
+ }
break;
case 273:
@@ -5260,70 +5389,70 @@
add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call,
mk_const(interp, (yyvsp[(1) - (3)].s), 'S'), (yyvsp[(3) - (3)].sr));
mem_sys_free((yyvsp[(1) - (3)].s));
- ;}
+ }
break;
case 274:
/* Line 1455 of yacc.c */
#line 2266 "compilers/imcc/imcc.y"
- { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); ;}
+ { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
case 275:
/* Line 1455 of yacc.c */
#line 2270 "compilers/imcc/imcc.y"
- { (yyval.t) = 0; ;}
+ { (yyval.t) = 0; }
break;
case 276:
/* Line 1455 of yacc.c */
#line 2271 "compilers/imcc/imcc.y"
- { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); ;}
+ { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 277:
/* Line 1455 of yacc.c */
#line 2275 "compilers/imcc/imcc.y"
- { (yyval.t) = VT_FLAT; ;}
+ { (yyval.t) = VT_FLAT; }
break;
case 278:
/* Line 1455 of yacc.c */
#line 2276 "compilers/imcc/imcc.y"
- { (yyval.t) = VT_NAMED; ;}
+ { (yyval.t) = VT_NAMED; }
break;
case 279:
/* Line 1455 of yacc.c */
#line 2277 "compilers/imcc/imcc.y"
- { (yyval.t) = VT_CALL_SIG; ;}
+ { (yyval.t) = VT_CALL_SIG; }
break;
case 280:
/* Line 1455 of yacc.c */
#line 2280 "compilers/imcc/imcc.y"
- { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; ;}
+ { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 281:
/* Line 1455 of yacc.c */
#line 2281 "compilers/imcc/imcc.y"
- { adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; ;}
+ { adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 282:
/* Line 1455 of yacc.c */
#line 2285 "compilers/imcc/imcc.y"
- { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); ;}
+ { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
case 283:
@@ -5338,7 +5467,7 @@
}
else
add_pcc_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
- ;}
+ }
break;
case 284:
@@ -5349,7 +5478,7 @@
add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call,
mk_const(interp, (yyvsp[(3) - (5)].s), 'S'), (yyvsp[(5) - (5)].sr));
mem_sys_free((yyvsp[(3) - (5)].s));
- ;}
+ }
break;
case 285:
@@ -5364,7 +5493,7 @@
}
else
add_pcc_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
- ;}
+ }
break;
case 286:
@@ -5374,28 +5503,28 @@
{
add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(1) - (3)].s), 'S'), (yyvsp[(3) - (3)].sr));
mem_sys_free((yyvsp[(1) - (3)].s));
- ;}
+ }
break;
case 287:
/* Line 1455 of yacc.c */
#line 2320 "compilers/imcc/imcc.y"
- { (yyval.sr) = 0; ;}
+ { (yyval.sr) = 0; }
break;
case 288:
/* Line 1455 of yacc.c */
#line 2324 "compilers/imcc/imcc.y"
- { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
+ { (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 289:
/* Line 1455 of yacc.c */
#line 2325 "compilers/imcc/imcc.y"
- { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
+ { (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 290:
@@ -5404,7 +5533,7 @@
#line 2330 "compilers/imcc/imcc.y"
{
(yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, inv_op((yyvsp[(3) - (6)].s)), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
- ;}
+ }
break;
case 291:
@@ -5413,7 +5542,7 @@
#line 2334 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
- ;}
+ }
break;
case 292:
@@ -5422,7 +5551,7 @@
#line 2338 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
- ;}
+ }
break;
case 293:
@@ -5431,7 +5560,7 @@
#line 2345 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
- ;}
+ }
break;
case 294:
@@ -5440,7 +5569,7 @@
#line 2349 "compilers/imcc/imcc.y"
{
(yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
- ;}
+ }
break;
case 295:
@@ -5449,91 +5578,91 @@
#line 2353 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
- ;}
+ }
break;
case 296:
/* Line 1455 of yacc.c */
#line 2359 "compilers/imcc/imcc.y"
- { (yyval.t) = 0; ;}
+ { (yyval.t) = 0; }
break;
case 297:
/* Line 1455 of yacc.c */
#line 2360 "compilers/imcc/imcc.y"
- { (yyval.t) = 0; ;}
+ { (yyval.t) = 0; }
break;
case 298:
/* Line 1455 of yacc.c */
#line 2364 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"eq"; ;}
+ { (yyval.s) = (char *)"eq"; }
break;
case 299:
/* Line 1455 of yacc.c */
#line 2365 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"ne"; ;}
+ { (yyval.s) = (char *)"ne"; }
break;
case 300:
/* Line 1455 of yacc.c */
#line 2366 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"gt"; ;}
+ { (yyval.s) = (char *)"gt"; }
break;
case 301:
/* Line 1455 of yacc.c */
#line 2367 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"ge"; ;}
+ { (yyval.s) = (char *)"ge"; }
break;
case 302:
/* Line 1455 of yacc.c */
#line 2368 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"lt"; ;}
+ { (yyval.s) = (char *)"lt"; }
break;
case 303:
/* Line 1455 of yacc.c */
#line 2369 "compilers/imcc/imcc.y"
- { (yyval.s) = (char *)"le"; ;}
+ { (yyval.s) = (char *)"le"; }
break;
case 306:
/* Line 1455 of yacc.c */
#line 2378 "compilers/imcc/imcc.y"
- { (yyval.sr) = NULL; ;}
+ { (yyval.sr) = NULL; }
break;
case 307:
/* Line 1455 of yacc.c */
#line 2379 "compilers/imcc/imcc.y"
- { (yyval.sr) = (yyvsp[(1) - (1)].sr); ;}
+ { (yyval.sr) = (yyvsp[(1) - (1)].sr); }
break;
case 308:
/* Line 1455 of yacc.c */
#line 2383 "compilers/imcc/imcc.y"
- { (yyval.sr) = IMCC_INFO(interp)->regs[0]; ;}
+ { (yyval.sr) = IMCC_INFO(interp)->regs[0]; }
break;
case 310:
/* Line 1455 of yacc.c */
#line 2388 "compilers/imcc/imcc.y"
- { IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); ;}
+ { IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); }
break;
case 311:
@@ -5545,7 +5674,7 @@
IMCC_INFO(interp) -> keyvec |= KEY_BIT(IMCC_INFO(interp)->nargs);
IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(3) - (4)].sr);
(yyval.sr) = (yyvsp[(1) - (4)].sr);
- ;}
+ }
break;
case 312:
@@ -5555,49 +5684,49 @@
{
IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr);
(yyval.sr) = (yyvsp[(2) - (3)].sr);
- ;}
+ }
break;
case 314:
/* Line 1455 of yacc.c */
#line 2404 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+ { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 315:
/* Line 1455 of yacc.c */
#line 2405 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+ { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 316:
/* Line 1455 of yacc.c */
#line 2409 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+ { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 317:
/* Line 1455 of yacc.c */
#line 2410 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+ { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 318:
/* Line 1455 of yacc.c */
#line 2414 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+ { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 319:
/* Line 1455 of yacc.c */
#line 2415 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+ { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 324:
@@ -5606,7 +5735,7 @@
#line 2429 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
- ;}
+ }
break;
case 325:
@@ -5617,7 +5746,7 @@
(yyval.sr) = link_keys(interp,
IMCC_INFO(interp)->nkeys,
IMCC_INFO(interp)->keys, 0);
- ;}
+ }
break;
case 326:
@@ -5626,7 +5755,7 @@
#line 2441 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
- ;}
+ }
break;
case 327:
@@ -5637,14 +5766,14 @@
(yyval.sr) = link_keys(interp,
IMCC_INFO(interp)->nkeys,
IMCC_INFO(interp)->keys, 1);
- ;}
+ }
break;
case 328:
/* Line 1455 of yacc.c */
#line 2453 "compilers/imcc/imcc.y"
- { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); ;}
+ { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
break;
case 329:
@@ -5654,7 +5783,7 @@
{
IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
(yyval.sr) = IMCC_INFO(interp)->keys[0];
- ;}
+ }
break;
case 330:
@@ -5663,76 +5792,76 @@
#line 2463 "compilers/imcc/imcc.y"
{
(yyval.sr) = (yyvsp[(1) - (1)].sr);
- ;}
+ }
break;
case 331:
/* Line 1455 of yacc.c */
#line 2469 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); ;}
+ { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); }
break;
case 332:
/* Line 1455 of yacc.c */
#line 2470 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); ;}
+ { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); }
break;
case 333:
/* Line 1455 of yacc.c */
#line 2471 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); ;}
+ { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); }
break;
case 334:
/* Line 1455 of yacc.c */
#line 2472 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); ;}
+ { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); }
break;
case 335:
/* Line 1455 of yacc.c */
#line 2473 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+ { (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 336:
/* Line 1455 of yacc.c */
#line 2477 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+ { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 337:
/* Line 1455 of yacc.c */
#line 2478 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+ { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 338:
/* Line 1455 of yacc.c */
#line 2479 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+ { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 339:
/* Line 1455 of yacc.c */
#line 2480 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
+ { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
/* Line 1455 of yacc.c */
-#line 5725 "compilers/imcc/imcparser.c"
+#line 5854 "compilers/imcc/imcparser.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -5972,26 +6101,19 @@
* before the newline, and thus, line is the line *after* the
* error. Instead of duplicating code for both cases (the 'newline' and
* non-newline case, do the test twice; efficiency is not important when
- * we have an error anyway.
- */
+ * we have an error anyway. */
if (!at_eof(yyscanner)) {
- if (*chr == '\n') {
- IMCC_INFO(interp)->line--;
- }
-
IMCC_warning(interp, "error:imcc:%s", s);
+
/* don't print the current token if it is a newline */
- if (*chr != '\n') {
+ if (*chr != '\n')
IMCC_warning(interp, " ('%s')", chr);
- }
- IMCC_print_inc(interp);
-
- if (*chr == '\n') {
- IMCC_INFO(interp)->line++;
- }
+ IMCC_print_inc(interp);
}
- else { /* scanner is at end of file; just to be sure, do not print "current" token. */
+
+ /* scanner is at EOF; just to be sure, don't print "current" token */
+ else {
IMCC_warning(interp, "error:imcc:%s", s);
IMCC_print_inc(interp);
}
Modified: branches/avl_string_cache/compilers/imcc/imcparser.h
==============================================================================
--- branches/avl_string_cache/compilers/imcc/imcparser.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/compilers/imcc/imcparser.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -52,125 +52,248 @@
enum yytokentype {
LOW_PREC = 258,
PARAM = 259,
- HLL = 260,
- TK_LINE = 261,
- TK_FILE = 262,
- GOTO = 263,
- ARG = 264,
- IF = 265,
- UNLESS = 266,
- PNULL = 267,
- SET_RETURN = 268,
- SET_YIELD = 269,
- ADV_FLAT = 270,
- ADV_SLURPY = 271,
- ADV_OPTIONAL = 272,
- ADV_OPT_FLAG = 273,
- ADV_NAMED = 274,
- ADV_ARROW = 275,
- NEW = 276,
- ADV_INVOCANT = 277,
- ADV_CALL_SIG = 278,
- NAMESPACE = 279,
- DOT_METHOD = 280,
- SUB = 281,
- SYM = 282,
- LOCAL = 283,
- LEXICAL = 284,
- CONST = 285,
- ANNOTATE = 286,
- INC = 287,
- DEC = 288,
- GLOBAL_CONST = 289,
- PLUS_ASSIGN = 290,
- MINUS_ASSIGN = 291,
- MUL_ASSIGN = 292,
- DIV_ASSIGN = 293,
- CONCAT_ASSIGN = 294,
- BAND_ASSIGN = 295,
- BOR_ASSIGN = 296,
- BXOR_ASSIGN = 297,
- FDIV = 298,
- FDIV_ASSIGN = 299,
- MOD_ASSIGN = 300,
- SHR_ASSIGN = 301,
- SHL_ASSIGN = 302,
- SHR_U_ASSIGN = 303,
- SHIFT_LEFT = 304,
- SHIFT_RIGHT = 305,
- INTV = 306,
- FLOATV = 307,
- STRINGV = 308,
- PMCV = 309,
- LOG_XOR = 310,
- RELOP_EQ = 311,
- RELOP_NE = 312,
- RELOP_GT = 313,
- RELOP_GTE = 314,
- RELOP_LT = 315,
- RELOP_LTE = 316,
- RESULT = 317,
- RETURN = 318,
- TAILCALL = 319,
- YIELDT = 320,
- GET_RESULTS = 321,
- POW = 322,
- SHIFT_RIGHT_U = 323,
- LOG_AND = 324,
- LOG_OR = 325,
- COMMA = 326,
- ESUB = 327,
- DOTDOT = 328,
- PCC_BEGIN = 329,
- PCC_END = 330,
- PCC_CALL = 331,
- PCC_SUB = 332,
- PCC_BEGIN_RETURN = 333,
- PCC_END_RETURN = 334,
- PCC_BEGIN_YIELD = 335,
- PCC_END_YIELD = 336,
- NCI_CALL = 337,
- METH_CALL = 338,
- INVOCANT = 339,
- MAIN = 340,
- LOAD = 341,
- INIT = 342,
- IMMEDIATE = 343,
- POSTCOMP = 344,
- METHOD = 345,
- ANON = 346,
- OUTER = 347,
- NEED_LEX = 348,
- MULTI = 349,
- VTABLE_METHOD = 350,
- LOADLIB = 351,
- SUB_INSTANCE_OF = 352,
- SUBID = 353,
- NS_ENTRY = 354,
- UNIQUE_REG = 355,
- LABEL = 356,
- EMIT = 357,
- EOM = 358,
- IREG = 359,
- NREG = 360,
- SREG = 361,
- PREG = 362,
- IDENTIFIER = 363,
- REG = 364,
- MACRO = 365,
- ENDM = 366,
- STRINGC = 367,
- INTC = 368,
- FLOATC = 369,
- USTRINGC = 370,
- PARROT_OP = 371,
- VAR = 372,
- LINECOMMENT = 373,
- FILECOMMENT = 374,
- DOT = 375,
- CONCAT = 376
+ SOL = 260,
+ HLL = 261,
+ TK_LINE = 262,
+ TK_FILE = 263,
+ GOTO = 264,
+ ARG = 265,
+ IF = 266,
+ UNLESS = 267,
+ PNULL = 268,
+ SET_RETURN = 269,
+ SET_YIELD = 270,
+ ADV_FLAT = 271,
+ ADV_SLURPY = 272,
+ ADV_OPTIONAL = 273,
+ ADV_OPT_FLAG = 274,
+ ADV_NAMED = 275,
+ ADV_ARROW = 276,
+ NEW = 277,
+ ADV_INVOCANT = 278,
+ ADV_CALL_SIG = 279,
+ NAMESPACE = 280,
+ DOT_METHOD = 281,
+ SUB = 282,
+ SYM = 283,
+ LOCAL = 284,
+ LEXICAL = 285,
+ CONST = 286,
+ ANNOTATE = 287,
+ INC = 288,
+ DEC = 289,
+ GLOBAL_CONST = 290,
+ PLUS_ASSIGN = 291,
+ MINUS_ASSIGN = 292,
+ MUL_ASSIGN = 293,
+ DIV_ASSIGN = 294,
+ CONCAT_ASSIGN = 295,
+ BAND_ASSIGN = 296,
+ BOR_ASSIGN = 297,
+ BXOR_ASSIGN = 298,
+ FDIV = 299,
+ FDIV_ASSIGN = 300,
+ MOD_ASSIGN = 301,
+ SHR_ASSIGN = 302,
+ SHL_ASSIGN = 303,
+ SHR_U_ASSIGN = 304,
+ SHIFT_LEFT = 305,
+ SHIFT_RIGHT = 306,
+ INTV = 307,
+ FLOATV = 308,
+ STRINGV = 309,
+ PMCV = 310,
+ LOG_XOR = 311,
+ RELOP_EQ = 312,
+ RELOP_NE = 313,
+ RELOP_GT = 314,
+ RELOP_GTE = 315,
+ RELOP_LT = 316,
+ RELOP_LTE = 317,
+ RESULT = 318,
+ RETURN = 319,
+ TAILCALL = 320,
+ YIELDT = 321,
+ GET_RESULTS = 322,
+ POW = 323,
+ SHIFT_RIGHT_U = 324,
+ LOG_AND = 325,
+ LOG_OR = 326,
+ COMMA = 327,
+ ESUB = 328,
+ DOTDOT = 329,
+ PCC_BEGIN = 330,
+ PCC_END = 331,
+ PCC_CALL = 332,
+ PCC_SUB = 333,
+ PCC_BEGIN_RETURN = 334,
+ PCC_END_RETURN = 335,
+ PCC_BEGIN_YIELD = 336,
+ PCC_END_YIELD = 337,
+ NCI_CALL = 338,
+ METH_CALL = 339,
+ INVOCANT = 340,
+ MAIN = 341,
+ LOAD = 342,
+ INIT = 343,
+ IMMEDIATE = 344,
+ POSTCOMP = 345,
+ METHOD = 346,
+ ANON = 347,
+ OUTER = 348,
+ NEED_LEX = 349,
+ MULTI = 350,
+ VTABLE_METHOD = 351,
+ LOADLIB = 352,
+ SUB_INSTANCE_OF = 353,
+ SUBID = 354,
+ NS_ENTRY = 355,
+ UNIQUE_REG = 356,
+ LABEL = 357,
+ EMIT = 358,
+ EOM = 359,
+ IREG = 360,
+ NREG = 361,
+ SREG = 362,
+ PREG = 363,
+ IDENTIFIER = 364,
+ REG = 365,
+ MACRO = 366,
+ ENDM = 367,
+ STRINGC = 368,
+ INTC = 369,
+ FLOATC = 370,
+ USTRINGC = 371,
+ PARROT_OP = 372,
+ VAR = 373,
+ LINECOMMENT = 374,
+ FILECOMMENT = 375,
+ DOT = 376,
+ CONCAT = 377
};
#endif
+/* Tokens. */
+#define LOW_PREC 258
+#define PARAM 259
+#define SOL 260
+#define HLL 261
+#define TK_LINE 262
+#define TK_FILE 263
+#define GOTO 264
+#define ARG 265
+#define IF 266
+#define UNLESS 267
+#define PNULL 268
+#define SET_RETURN 269
+#define SET_YIELD 270
+#define ADV_FLAT 271
+#define ADV_SLURPY 272
+#define ADV_OPTIONAL 273
+#define ADV_OPT_FLAG 274
+#define ADV_NAMED 275
+#define ADV_ARROW 276
+#define NEW 277
+#define ADV_INVOCANT 278
+#define ADV_CALL_SIG 279
+#define NAMESPACE 280
+#define DOT_METHOD 281
+#define SUB 282
+#define SYM 283
+#define LOCAL 284
+#define LEXICAL 285
+#define CONST 286
+#define ANNOTATE 287
+#define INC 288
+#define DEC 289
+#define GLOBAL_CONST 290
+#define PLUS_ASSIGN 291
+#define MINUS_ASSIGN 292
+#define MUL_ASSIGN 293
+#define DIV_ASSIGN 294
+#define CONCAT_ASSIGN 295
+#define BAND_ASSIGN 296
+#define BOR_ASSIGN 297
+#define BXOR_ASSIGN 298
+#define FDIV 299
+#define FDIV_ASSIGN 300
+#define MOD_ASSIGN 301
+#define SHR_ASSIGN 302
+#define SHL_ASSIGN 303
+#define SHR_U_ASSIGN 304
+#define SHIFT_LEFT 305
+#define SHIFT_RIGHT 306
+#define INTV 307
+#define FLOATV 308
+#define STRINGV 309
+#define PMCV 310
+#define LOG_XOR 311
+#define RELOP_EQ 312
+#define RELOP_NE 313
+#define RELOP_GT 314
+#define RELOP_GTE 315
+#define RELOP_LT 316
+#define RELOP_LTE 317
+#define RESULT 318
+#define RETURN 319
+#define TAILCALL 320
+#define YIELDT 321
+#define GET_RESULTS 322
+#define POW 323
+#define SHIFT_RIGHT_U 324
+#define LOG_AND 325
+#define LOG_OR 326
+#define COMMA 327
+#define ESUB 328
+#define DOTDOT 329
+#define PCC_BEGIN 330
+#define PCC_END 331
+#define PCC_CALL 332
+#define PCC_SUB 333
+#define PCC_BEGIN_RETURN 334
+#define PCC_END_RETURN 335
+#define PCC_BEGIN_YIELD 336
+#define PCC_END_YIELD 337
+#define NCI_CALL 338
+#define METH_CALL 339
+#define INVOCANT 340
+#define MAIN 341
+#define LOAD 342
+#define INIT 343
+#define IMMEDIATE 344
+#define POSTCOMP 345
+#define METHOD 346
+#define ANON 347
+#define OUTER 348
+#define NEED_LEX 349
+#define MULTI 350
+#define VTABLE_METHOD 351
+#define LOADLIB 352
+#define SUB_INSTANCE_OF 353
+#define SUBID 354
+#define NS_ENTRY 355
+#define UNIQUE_REG 356
+#define LABEL 357
+#define EMIT 358
+#define EOM 359
+#define IREG 360
+#define NREG 361
+#define SREG 362
+#define PREG 363
+#define IDENTIFIER 364
+#define REG 365
+#define MACRO 366
+#define ENDM 367
+#define STRINGC 368
+#define INTC 369
+#define FLOATC 370
+#define USTRINGC 371
+#define PARROT_OP 372
+#define VAR 373
+#define LINECOMMENT 374
+#define FILECOMMENT 375
+#define DOT 376
+#define CONCAT 377
+
@@ -178,7 +301,7 @@
typedef union YYSTYPE
{
-/* Line 1740 of yacc.c */
+/* Line 1676 of yacc.c */
#line 1075 "compilers/imcc/imcc.y"
IdList * idlist;
@@ -189,8 +312,8 @@
-/* Line 1740 of yacc.c */
-#line 183 "compilers/imcc/imcparser.h"
+/* Line 1676 of yacc.c */
+#line 306 "compilers/imcc/imcparser.h"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
Modified: branches/avl_string_cache/compilers/imcc/instructions.c
==============================================================================
--- branches/avl_string_cache/compilers/imcc/instructions.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/compilers/imcc/instructions.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -813,6 +813,8 @@
=item C<static int e_file_close(PARROT_INTERP, void *param)>
+Close STDOUT
+
=cut
*/
@@ -832,6 +834,8 @@
=item C<static int e_file_emit(PARROT_INTERP, void *param, const IMC_Unit *unit,
const Instruction *ins)>
+emit the Instruction C<ins> to the given IMC_Unit C<unit>, passing C<param>
+
=cut
*/
Modified: branches/avl_string_cache/compilers/imcc/main.c
==============================================================================
--- branches/avl_string_cache/compilers/imcc/main.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/compilers/imcc/main.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -78,7 +78,7 @@
int obj_file,
ARGIN_NULLOK(const char *output_file),
int argc,
- ARGIN(char **argv))
+ ARGIN(const char **argv))
__attribute__nonnull__(1)
__attribute__nonnull__(5);
@@ -462,7 +462,7 @@
/*
=item C<static void imcc_run_pbc(PARROT_INTERP, int obj_file, const char
-*output_file, int argc, char **argv)>
+*output_file, int argc, const char **argv)>
Write out or run Parrot bytecode.
@@ -472,7 +472,7 @@
static void
imcc_run_pbc(PARROT_INTERP, int obj_file, ARGIN_NULLOK(const char *output_file),
- int argc, ARGIN(char **argv))
+ int argc, ARGIN(const char **argv))
{
ASSERT_ARGS(imcc_run_pbc)
if (IMCC_INFO(interp)->imcc_warn)
@@ -692,7 +692,7 @@
/*
-=item C<int imcc_run(PARROT_INTERP, const char *sourcefile, int argc, char
+=item C<int imcc_run(PARROT_INTERP, const char *sourcefile, int argc, const char
**argv)>
Entry point of IMCC, as invoked by Parrot's main function.
@@ -705,7 +705,7 @@
int
imcc_run(PARROT_INTERP, ARGIN(const char *sourcefile), int argc,
- ARGIN(char **argv))
+ ARGIN(const char **argv))
{
int obj_file;
yyscan_t yyscanner = IMCC_INFO(interp)->yyscanner;
Modified: branches/avl_string_cache/compilers/imcc/optimizer.c
==============================================================================
--- branches/avl_string_cache/compilers/imcc/optimizer.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/compilers/imcc/optimizer.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,6 +1,6 @@
/*
* $Id$
- * Copyright (C) 2002-2009, Parrot Foundation.
+ * Copyright (C) 2002-2010, Parrot Foundation.
*/
/*
@@ -256,6 +256,10 @@
=item C<int optimize(PARROT_INTERP, IMC_Unit *unit)>
+Runs after the CFG is built and handles constant propogation.
+
+used_once ... deletes assignments, when LHS is unused
+
=cut
*/
@@ -1225,6 +1229,11 @@
=item C<static int branch_cond_loop_swap(PARROT_INTERP, IMC_Unit *unit,
Instruction *branch, Instruction *start, Instruction *cond)>
+Converts conditional loops to post-test
+
+Returns TRUE if any optimizations were performed. Otherwise, returns
+FALSE.
+
=cut
*/
@@ -1461,6 +1470,10 @@
=item C<static int dead_code_remove(PARROT_INTERP, IMC_Unit *unit)>
+dead code elimination
+... unreachable blocks
+... unreachable instructions
+
=cut
*/
@@ -1541,6 +1554,8 @@
=item C<static int used_once(PARROT_INTERP, IMC_Unit *unit)>
+used_once ... deletes assignments, when LHS is unused
+
=cut
*/
Modified: branches/avl_string_cache/compilers/imcc/parser_util.c
==============================================================================
--- branches/avl_string_cache/compilers/imcc/parser_util.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/compilers/imcc/parser_util.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -708,7 +708,7 @@
sub_data->seg = new_cs;
sub_data->start_offs = 0;
sub_data->end_offs = new_cs->base.size;
- sub_data->name = Parrot_str_copy(interp, name);
+ sub_data->name = name;
*error_message = NULL;
}
@@ -935,11 +935,13 @@
IMCC_push_parser_state(interp);
{
/* Store a copy, in order to know how to free it later */
- char *copyname = mem_sys_strdup(fullname);
+ char *copyname = mem_sys_strdup(fullname);
IMCC_INFO(interp)->state->file = copyname;
ext = strrchr(copyname, '.');
}
- IMCC_INFO(interp)->line = 1;
+
+ /* start over; let the start of line rule increment this to 1 */
+ IMCC_INFO(interp)->line = 0;
/*
* the Parrot_str_compare() called from pmc_type() triggers GC
Modified: branches/avl_string_cache/compilers/imcc/pbc.c
==============================================================================
--- branches/avl_string_cache/compilers/imcc/pbc.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/compilers/imcc/pbc.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1064,8 +1064,7 @@
if (!pcc_sub->multi[0])
return Parrot_pmc_new(interp, enum_class_FixedIntegerArray);
- multi_sig = Parrot_pmc_new(interp, enum_class_FixedPMCArray);
- VTABLE_set_integer_native(interp, multi_sig, n);
+ multi_sig = Parrot_pmc_new_init_int(interp, enum_class_FixedPMCArray, n);
ct = interp->code->const_table;
for (i = 0; i < n; ++i) {
@@ -1337,8 +1336,10 @@
unit->subid = r;
else {
/* trim the quotes */
+ char *oldname = unit->subid->name;
unit->subid->name = mem_sys_strdup(unit->subid->name + 1);
unit->subid->name[strlen(unit->subid->name) - 1] = 0;
+ mem_sys_free(oldname);
/* create string constant for it. */
unit->subid->color = add_const_str(interp, unit->subid);
@@ -1541,7 +1542,7 @@
SymReg *reg;
char s_key[KEYLEN * 10];
- opcode_t key[KEYLEN];
+ opcode_t key[KEYLEN + 1]; /* [0] -> length, [1..] -> keys */
opcode_t size;
int key_length; /* P0["hi;there"; S0; 2] has length 3 */
int k;
Modified: branches/avl_string_cache/compilers/imcc/symreg.h
==============================================================================
--- branches/avl_string_cache/compilers/imcc/symreg.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/compilers/imcc/symreg.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -456,14 +456,15 @@
typedef enum {
P_NONE = 0x00, /* 0<<0 */
P_NEED_LEX = 0x01, /* 1<<0 */
- P_VTABLE = 0x02, /* 1<<1 */
- P_METHOD = 0x04, /* 1<<2 */
+ P_VTABLE = SUB_COMP_FLAG_VTABLE, /* 1<<1 0x2 */
+ P_METHOD = SUB_COMP_FLAG_METHOD, /* 1<<2 0x4 */
P_ANON = SUB_FLAG_PF_ANON, /* 1<<3 0x8 - private3 */
P_MAIN = SUB_FLAG_PF_MAIN, /* 1<<4 0x10 - private4 */
P_LOAD = SUB_FLAG_PF_LOAD, /* 1<<5 0x20 - private5 */
P_IMMEDIATE = SUB_FLAG_PF_IMMEDIATE, /* 1<<6 0x40 - private6 */
P_POSTCOMP = SUB_FLAG_PF_POSTCOMP, /* 1<<7 0x80 - private7 */
- P_INIT = SUB_COMP_FLAG_PF_INIT /* 1<<10 0x400 - 10 */
+ P_INIT = SUB_COMP_FLAG_PF_INIT, /* 1<<10 0x400 - 10 */
+ P_NSENTRY = SUB_COMP_FLAG_NSENTRY /* 1<<11 0x800 - 11 */
} pragma_enum_t;
typedef enum {
Modified: branches/avl_string_cache/compilers/pge/PGE/Exp.pir
==============================================================================
--- branches/avl_string_cache/compilers/pge/PGE/Exp.pir Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/compilers/pge/PGE/Exp.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -163,7 +163,7 @@
.local string returnop
returnop = '.yield'
code.'emit'(<<" CODE", name, pirflags, namecorou, .INTERPINFO_CURRENT_SUB)
- .sub %0 :method %1
+ .sub %0 :method :nsentry %1
.param pmc adverbs :slurpy :named
.local pmc mob
.const 'Sub' corou = %2
@@ -192,7 +192,7 @@
## Initial code for a rule that cannot be backtracked into.
returnop = '.return'
code.'emit'(<<" CODE", name, pirflags)
- .sub %0 :method %1
+ .sub %0 :method :nsentry %1
.param pmc adverbs :unique_reg :slurpy :named
.local pmc mob
.local string target :unique_reg
@@ -718,7 +718,7 @@
.namespace [ 'PGE';'Exp';'CGroup' ]
-.sub 'pir' :method
+.sub 'pir' :method :nsentry
.param pmc code
.param string label
.param string next
Modified: branches/avl_string_cache/compilers/pge/PGE/Regex.pir
==============================================================================
--- branches/avl_string_cache/compilers/pge/PGE/Regex.pir Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/compilers/pge/PGE/Regex.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -37,7 +37,7 @@
=cut
-.sub 'ident' :method
+.sub 'ident' :method :nsentry('ident')
.param pmc adverbs :slurpy :named
.local string target
.local pmc mob, mfrom, mpos
Modified: branches/avl_string_cache/config/auto/arch.pm
==============================================================================
--- branches/avl_string_cache/config/auto/arch.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/config/auto/arch.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -29,6 +29,13 @@
my %data;
$data{description} = q{Determine CPU architecture and OS};
$data{result} = q{};
+ my $unamep;
+ eval {
+ chomp( $unamep = `uname -p` ) unless ($^O eq 'MSWin32');
+ };
+ $data{unamep} = (! $@ and $unamep)
+ ? $unamep
+ : undef;
return \%data;
}
@@ -60,12 +67,9 @@
# the above split fails because archname is "darwin-thread-multi-2level".
if ( $cpuarch =~ /darwin/ ) {
$osname = 'darwin';
- if ( $conf->data->get('byteorder') =~ /^1234/ ) {
- $cpuarch = 'i386';
- }
- else {
- $cpuarch = 'ppc';
- }
+ $cpuarch = ( $self->{unamep} eq 'powerpc' )
+ ? 'ppc'
+ : 'i386';
}
# cpuarch and osname are reversed in archname on windows
Modified: branches/avl_string_cache/config/auto/attributes.pm
==============================================================================
--- branches/avl_string_cache/config/auto/attributes.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/config/auto/attributes.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -40,8 +40,11 @@
HASATTRIBUTE_PURE
HASATTRIBUTE_UNUSED
HASATTRIBUTE_WARN_UNUSED_RESULT
+ HASATTRIBUTE_HOT
+ HASATTRIBUTE_COLD
HASATTRIBUTE_NEVER_WORKS
);
+# HASATTRIBUTE_NEVER_WORKS is at the end just to prove that it's possible to fail.
sub runstep {
my ( $self, $conf ) = @_;
Modified: branches/avl_string_cache/config/auto/attributes/test_c.in
==============================================================================
--- branches/avl_string_cache/config/auto/attributes/test_c.in Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/config/auto/attributes/test_c.in Thu Apr 22 09:55:26 2010 (r45889)
@@ -32,6 +32,16 @@
purefunc(int x);
+__attribute__hot__
+int
+hotfunc(int x);
+
+
+__attribute__cold__
+int
+coldfunc(int x);
+
+
static int
useless(void) { int x __attribute__unused__; return 0; }
Deleted: branches/avl_string_cache/config/auto/crypto.pm
==============================================================================
--- branches/avl_string_cache/config/auto/crypto.pm Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,93 +0,0 @@
-# Copyright (C) 2008, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-config/auto/crypto.pm - Test for crypto library (libssl)
-
-=head1 DESCRIPTION
-
-This library is linked to a dynamic PMC.
-
-See L<http://www.openssl.org>
-
-=cut
-
-package auto::crypto;
-
-use strict;
-use warnings;
-
-use base qw(Parrot::Configure::Step);
-
-use Parrot::Configure::Utils ':auto';
-
-
-sub _init {
- my $self = shift;
- my %data;
- $data{description} = q{Does your platform support crypto};
- $data{result} = q{};
- return \%data;
-}
-
-sub runstep {
- my ( $self, $conf ) = @_;
-
- my ( $verbose, $without ) = $conf->options->get(
- qw|
- verbose
- without-crypto
- |
- );
-
- if ($without) {
- $conf->data->set( has_crypto => 0 );
- $self->set_result('no');
- return 1;
- }
-
- my $osname = $conf->data->get('osname');
-
- my $extra_libs = $self->_select_lib( {
- conf => $conf,
- osname => $osname,
- cc => $conf->data->get('cc'),
- win32_nongcc => 'libcrypto.lib',
- default => '-lcrypto',
- } );
-
- $conf->cc_gen('config/auto/crypto/crypto_c.in');
- eval { $conf->cc_build( q{}, $extra_libs); };
- my $has_crypto = 0;
- if ( !$@ ) {
- my $test = $conf->cc_run();
- $has_crypto = $self->_evaluate_cc_run($conf, $test, $has_crypto, $verbose);
- }
- $conf->data->set( has_crypto => $has_crypto ); # for dynpmc.in & digest.t
- $self->set_result($has_crypto ? 'yes' : 'no');
-
- return 1;
-}
-
-sub _evaluate_cc_run {
- my $self = shift;
- my ($conf, $test, $has_crypto, $verbose) = @_;
- if ( $test =~ m/^OpenSSL (\d\.\d\.\d\w?)/ ) {
- my $version = $1;
- $has_crypto = 1;
- $conf->data->set( openssl_version => $version );
- print " (yes) " if $verbose;
- $self->set_result("yes, $version");
- }
- return $has_crypto;
-}
-
-1;
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Deleted: branches/avl_string_cache/config/auto/crypto/crypto_c.in
==============================================================================
--- branches/avl_string_cache/config/auto/crypto/crypto_c.in Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,26 +0,0 @@
-/*
- Copyright (C) 2008, Parrot Foundation.
- $Id$
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <openssl/opensslv.h>
-#include <openssl/err.h>
-
-int
-main(int argc, char *argv[])
-{
- unsigned long dummy = ERR_get_error();
-
- printf("%s\n", OPENSSL_VERSION_TEXT);
-
- return EXIT_SUCCESS;
-}
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Deleted: branches/avl_string_cache/config/auto/gdbm.pm
==============================================================================
--- branches/avl_string_cache/config/auto/gdbm.pm Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,96 +0,0 @@
-# Copyright (C) 2001-2005, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-config/auto/gdbm.pm - Test for GNU dbm (gdbm) library
-
-=head1 DESCRIPTION
-
-Determines whether the platform supports gdbm. This is needed for the dynamic
-GDBMHash PMC.
-
-From L<http://www.gnu.org/software/gdbm/>: "GNU dbm is a set of database
-routines that use extensible hashing. It works similar to the standard Unix
-dbm routines."
-
-=cut
-
-package auto::gdbm;
-
-use strict;
-use warnings;
-
-use base qw(Parrot::Configure::Step);
-
-use Parrot::Configure::Utils ':auto';
-
-
-sub _init {
- my $self = shift;
- my %data;
- $data{description} = q{Does your platform support gdbm};
- $data{result} = q{};
- return \%data;
-}
-
-sub runstep {
- my ( $self, $conf ) = @_;
-
- my ( $verbose, $without ) = $conf->options->get(
- qw|
- verbose
- without-gdbm
- |
- );
-
- if ($without) {
- $conf->data->set( has_gdbm => 0 );
- $self->set_result('no');
- return 1;
- }
-
- my $osname = $conf->data->get('osname');
-
- my $extra_libs = $self->_select_lib( {
- conf => $conf,
- osname => $osname,
- cc => $conf->data->get('cc'),
- win32_gcc => '-llibgdbm',
- win32_nongcc => 'gdbm.lib',
- default => '-lgdbm',
- } );
-
- $conf->cc_gen('config/auto/gdbm/gdbm_c.in');
- eval { $conf->cc_build( q{}, $extra_libs ); };
- my $has_gdbm = 0;
- if ( !$@ ) {
- my $test = $conf->cc_run();
- unlink "gdbm_test_db";
- $has_gdbm = $self->_evaluate_cc_run($test, $has_gdbm, $verbose);
- }
- $conf->data->set( has_gdbm => $has_gdbm ); # for gdbmhash.t and dynpmc.in
- $self->set_result($has_gdbm ? 'yes' : 'no');
-
- return 1;
-}
-
-sub _evaluate_cc_run {
- my $self = shift;
- my ($test, $has_gdbm, $verbose) = @_;
- if ( $test eq "gdbm is working.\n" ) {
- $has_gdbm = 1;
- print " (yes) " if $verbose;
- $self->set_result('yes');
- }
- return $has_gdbm;
-}
-
-1;
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Deleted: branches/avl_string_cache/config/auto/gdbm/gdbm_c.in
==============================================================================
--- branches/avl_string_cache/config/auto/gdbm/gdbm_c.in Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,48 +0,0 @@
-/*
- Copyright (C) 2001-2009, Parrot Foundation.
- $Id$
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <gdbm.h>
-
-int
-main(int argc, char *argv[])
-{
- GDBM_FILE dbf;
- datum key, val_in, val_out;
-
- dbf = gdbm_open("gdbm_test_db", 0, GDBM_NEWDB, 0666, 0);
- if (!dbf) {
- fprintf(stderr, "File %s could not be created.\n", argv[1]);
- exit(2);
- }
-
- key.dptr = "Is gdbm funktional?";
- key.dsize = 19;
- val_in.dptr = "gdbm is working.";
- val_in.dsize = 17;
-
- gdbm_store(dbf, key, val_in, GDBM_INSERT);
-
- val_out = gdbm_fetch(dbf, key);
-
- if (val_out.dsize > 0) {
- printf("%s\n", val_out.dptr);
- free(val_out.dptr);
- }
- else {
- printf("Key not found.\n");
- }
- gdbm_close(dbf);
-
- return EXIT_SUCCESS;
-}
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Modified: branches/avl_string_cache/config/auto/warnings.pm
==============================================================================
--- branches/avl_string_cache/config/auto/warnings.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/config/auto/warnings.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -113,6 +113,7 @@
-Wcomment
-Wdisabled-optimization
-Wdiv-by-zero
+ -Wenum-compare
-Wendif-labels
-Wextra
-Wformat
@@ -125,6 +126,7 @@
-Winit-self
-Winline
-Winvalid-pch
+ -Wjump-misses-init
-Wlogical-op
-Wmissing-braces
-Wmissing-field-initializers
@@ -252,6 +254,11 @@
'-diag-disable 1572', # floating-point equality and inequality comparisons are unreliable
'-diag-disable 2259', # non-pointer conversion from "typeA" to "typeB" may lose significant bits
];
+ $icc->{'cage'} = [
+ # http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/lin/compiler_c/bldaps_cls/common/bldaps_svover.htm
+ '-diag-enable sc3',
+ '-diag-enable sc-include',
+ ];
$data->{'warnings'}{'gcc'} = $gcc;
$data->{'warnings'}{'g++'} = $gpp;
Modified: branches/avl_string_cache/config/gen/config_pm.pm
==============================================================================
--- branches/avl_string_cache/config/gen/config_pm.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/config/gen/config_pm.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -33,7 +33,7 @@
myconfig => 'config/gen/config_pm/myconfig.in',
config_pir => 'config/gen/config_pm/config_pir.in',
Config_pm => 'config/gen/config_pm/Config_pm.in',
- config_lib => 'config/gen/config_pm/config_lib_pasm.in',
+ config_lib => 'config/gen/config_pm/config_lib_pir.in',
};
return \%data;
}
@@ -84,9 +84,9 @@
$template = $self->{templates}->{config_lib};
open( $IN, "<", $template ) or die "Can't open '$template': $!";
- my $c_l_pasm = q{config_lib.pasm};
- $conf->append_configure_log($c_l_pasm);
- open( $OUT, ">", $c_l_pasm ) or die "Can't open $c_l_pasm: $!";
+ my $c_l_pir = q{config_lib.pir};
+ $conf->append_configure_log($c_l_pir);
+ open( $OUT, ">", $c_l_pir ) or die "Can't open $c_l_pir: $!";
print {$OUT} <<"END";
# ex: set ro:
@@ -115,14 +115,14 @@
if ( $type ) {
die "type of '$k' is not supported : $type\n";
}
- # Scalar
+ # String
$v =~ s/(["\\])/\\$1/g;
$v =~ s/\n/\\n/g;
- print {$OUT} qq( set P0["$k"], "$v"\n);
+ print {$OUT} qq( set \$P0["$k"], "$v"\n);
}
else {
- # Undef
- print {$OUT} qq( set P0["$k"], P1\n);
+ # Null
+ print {$OUT} qq( set \$P0["$k"], \$S2\n);
}
}
}
@@ -135,7 +135,7 @@
}
close $IN or die "Can't close $template: $!";
- close $OUT or die "Can't close $c_l_pasm: $!";
+ close $OUT or die "Can't close $c_l_pir: $!";
return 1;
}
Deleted: branches/avl_string_cache/config/gen/config_pm/config_lib_pasm.in
==============================================================================
--- branches/avl_string_cache/config/gen/config_pm/config_lib_pasm.in Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,35 +0,0 @@
-# Copyright (C) 2004-2009, Parrot Foundation.
-# $Id$
-
-.pcc_sub main:
- get_params "(0)", P5
- set I10, P5 # argv
- set I11, 0 # flag
- le I10, 1, no_arg
- set S10, P5[1]
- ne S10, "--install", no_arg
- set I11, 1 # install flag
-no_arg:
- new P0, 'Hash'
- new P1, 'Undef'
-
- @PCONFIG@
-
- if I11, is_install
- set S1, "@PWD@"
- set P0["prefix"], S1
- set P0["installed"], "0"
- branch freeze_config
-is_install:
- set P0["installed"], "1"
-freeze_config:
-
- freeze S0, P0
- print S0
- end
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
Added: branches/avl_string_cache/config/gen/config_pm/config_lib_pir.in
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/avl_string_cache/config/gen/config_pm/config_lib_pir.in Thu Apr 22 09:55:26 2010 (r45889)
@@ -0,0 +1,38 @@
+# Copyright (C) 2004-2009, Parrot Foundation.
+# $Id$
+
+.include 'datatypes.pasm'
+
+.sub 'main'
+ get_params "(0)", $P5
+ set $I10, $P5 # argv
+ set $I11, 0 # flag
+ le $I10, 1, no_arg
+ set $S10, $P5[1]
+ ne $S10, "--install", no_arg
+ set $I11, 1 # install flag
+no_arg:
+ new $P0, 'Hash'
+ $P0.'set_value_type'(.DATATYPE_STRING)
+ $S2 = null
+
+ @PCONFIG@
+
+ if $I11, is_install
+ set $S1, "@PWD@"
+ set $P0["prefix"], $S1
+ set $P0["installed"], "0"
+ branch freeze_config
+is_install:
+ set $P0["installed"], "1"
+freeze_config:
+
+ freeze $S0, $P0
+ print $S0
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/avl_string_cache/config/gen/config_pm/config_pir.in
==============================================================================
--- branches/avl_string_cache/config/gen/config_pm/config_pir.in Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/config/gen/config_pm/config_pir.in Thu Apr 22 09:55:26 2010 (r45889)
@@ -12,9 +12,9 @@
# store the config data into $P0
$P0 = _config()
# Retrieve and print a key
- $P1 = $P0["cc"]
+ $S1 = $P0["cc"]
print "Your C compiler is "
- print $P1
+ print $S1
print "\n"
...
@@ -25,14 +25,14 @@
config.pir is a mechanism for accessing most of the data collected by
Configure. It's roughly equivalent to Perl5's C<Config.pm> module.
-At the end of a successful C<make> of Parrot, a PASM file generated by
+At the end of a successful C<make> of Parrot, a PIR file generated by
Configure is run to put a file, F<config.fpmc>, into the library with a
frozen Hash of the configuration data. This library provides a
function, C<_config>, to unpack and return that file's data.
C<_config> does not take any parameters. It returns a single Hash
containing the data. Keys that were C<undef> in Configure contain a
-C<None> PMC; otherwise they contain a C<String>.
+null string; otherwise they contain a non-null, possibly empty, string.
Note that the behavior of that hash when writing to any value (especially
undefined values) is undefined, and may be rather funky.
Modified: branches/avl_string_cache/config/gen/core_pmcs.pm
==============================================================================
--- branches/avl_string_cache/config/gen/core_pmcs.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/config/gen/core_pmcs.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -103,6 +103,8 @@
/* HEADERIZER STOP */
#include "parrot/parrot.h"
+#include "parrot/global_setup.h"
+
END_C
@@ -110,15 +112,6 @@
print {$OUT} <<'END_C';
-/* This isn't strictly true, but the headerizer should not bother */
-
-void Parrot_register_core_pmcs(PARROT_INTERP, ARGIN(PMC *registry))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-extern void Parrot_initialize_core_pmcs(PARROT_INTERP, int pass)
- __attribute__nonnull__(1);
-
void Parrot_initialize_core_pmcs(PARROT_INTERP, int pass)
{
/* first the PMC with the highest enum
Deleted: branches/avl_string_cache/config/gen/crypto.pm
==============================================================================
--- branches/avl_string_cache/config/gen/crypto.pm Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,110 +0,0 @@
-# Copyright (C) 2008, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-config/gen/crypto.pm - Digest PMC Files
-
-=head1 DESCRIPTION
-
-Generates Digest PMC files.
-
-=cut
-
-package gen::crypto;
-
-use strict;
-use warnings;
-
-
-use base qw(Parrot::Configure::Step);
-
-use Parrot::Configure::Utils ':gen';
-
-sub _init {
- my $self = shift;
- my %data;
- $data{description} = q{Generate Digest PMC files};
- $data{result} = q{};
- $data{digest} = {
- MD2 => {
- md_result => 'ab4f496bfb2a530b219ff33031fe06b0',
- },
- MD4 => {
- md_result => 'd9130a8164549fe818874806e1c7014b',
- },
- MD5 => {
- md_result => 'f96b697d7cb7938d525a2f31aaf161d0',
- },
- RIPEMD160 => {
- md_result => '5d0689ef49d2fae572b881b123a85ffa21595f36',
- md_inc => 'ripemd',
- },
- SHA => {
- md_result => 'c1b0f222d150ebb9aa36a40cafdc8bcbed830b14',,
- },
- SHA1 => {
- md_result => 'c12252ceda8be8994d5fa0290a47231c1d16aae3',
- md_inc => 'sha',
- md_ctx => 'SHA_CTX',
- md_digest => 'SHA_DIGEST',
- },
- SHA256 => {
- md_result => 'f7846f55cf23e14eebeab5b4e1550cad5b509e3348fbc4efa3a1413d393cb650',
- md_inc => 'sha',
- version_needed => '0.9.8a',
- },
- SHA512 => {
- md_result => '107dbf389d9e9f71a3a95f6c055b9251bc5268c2be16d6c13492ea45b0199f3309e16455ab1e96118e8a905d5597b72038ddb372a89826046de66687bb420e7c',
- md_inc => 'sha',
- version_needed => '0.9.8a',
- },
- };
- $data{digest_pmc_template} = 'config/gen/crypto/digest_pmc.in';
- $data{digest_t_template} = 'config/gen/crypto/digest_t.in';
- return \%data;
-}
-
-sub runstep {
- my ( $self, $conf ) = @_;
-
- if ( ! $conf->data->get('has_crypto') ) {
- $self->set_result('skipped');
- return 1;
- }
-
- my $openssl_version = $conf->data->get('openssl_version');
-
- while (my ($md, $val) = each %{ $self->{digest} } ) {
- my $file = lc $md;
- $conf->data->set( TEMP_md_name => $md );
- $conf->data->set( TEMP_md_file => $file );
- $conf->data->set( TEMP_md_inc => $val->{md_inc} || $file );
- $conf->data->set( TEMP_md_ctx => $val->{md_ctx} || $md . '_CTX' );
- $conf->data->set( TEMP_md_digest => $val->{md_digest} || $md . '_DIGEST' );
- $conf->data->set( TEMP_md_guard => (
- ( exists $val->{version_needed} )
- and
- ( $openssl_version lt $val->{version_needed} )
- )
- ? '#if 0'
- : '#ifndef OPENSSL_NO_' . $md
- );
- $conf->data->set( TEMP_md_skip => $val->{version_needed} || '0.9' );
- $conf->data->set( TEMP_md_result => $val->{md_result} );
- $conf->genfile( $self->{digest_pmc_template} => "src/dynpmc/${file}.pmc" );
- $conf->genfile( $self->{digest_t_template} => "t/dynpmc/${file}.t" );
- }
- $conf->cc_clean();
-
- return 1;
-}
-
-1;
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Deleted: branches/avl_string_cache/config/gen/crypto/digest_pmc.in
==============================================================================
--- branches/avl_string_cache/config/gen/crypto/digest_pmc.in Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,161 +0,0 @@
-/*
-Copyright (C) 2008-2010, Parrot Foundation.
-$Id$
-
-=head1 NAME
-
-src/dynpmc/@TEMP_md_file at .pmc - @TEMP_md_name@ wrapper of libcrypto (libssl)
-
-=head1 DESCRIPTION
-
-See L<www.openssl.org>
-
-=head2 Methods
-
-=over 4
-
-=cut
-
-*/
-
-#include <openssl/@TEMP_md_inc at .h>
-
-pmclass @TEMP_md_name@
- dynpmc
- group digest_group
- lib crypto {
-
-/*
-
-=item C<void init()>
-
-=cut
-
-*/
- VTABLE void init() {
- at TEMP_md_guard@
- @TEMP_md_ctx@ *c = mem_gc_allocate_zeroed_typed(INTERP, @TEMP_md_ctx@);
- PMC_data(SELF) = c;
- PObj_custom_destroy_SET(SELF);
-#else
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_ILL_INHERIT,
- "@TEMP_md_name@ is disabled");
-#endif
- }
-
-/*
-
-=item C<void destroy()>
-
-=cut
-
-*/
- VTABLE void destroy() {
- at TEMP_md_guard@
- @TEMP_md_ctx@ *c = PMC_data_typed(SELF, @TEMP_md_ctx@ *);
- if (c) {
- mem_gc_free(INTERP, c);
- PMC_data(SELF) = NULL;
- }
-#endif
- }
-
-/*
-
-=item C<PMC* clone()>
-
-=cut
-
-*/
- VTABLE PMC* clone() {
- at TEMP_md_guard@
- PMC *retval = Parrot_pmc_new_noinit(INTERP, SELF->vtable->base_type);
- @TEMP_md_ctx@ *c = mem_allocate_zeroed_typed(@TEMP_md_ctx@);
-
- memcpy(c, PMC_data(SELF), sizeof (@TEMP_md_ctx@));
- PMC_data(retval) = c;
-
- PObj_custom_destroy_SET(retval);
- return retval;
-#else
- return NULL;
-#endif
- }
-
-
-/*
-
-=back
-
-=head2 Specific Methods
-
-=over 4
-
-=item C<void Init()>
-
-=cut
-
-*/
- METHOD void Init() {
- at TEMP_md_guard@
- @TEMP_md_ctx@ *c = PMC_data_typed(SELF, @TEMP_md_ctx@ *);
- (void)@TEMP_md_name at _Init(c);
-#endif
- }
-
-/*
-
-=item C<void Update(STRING *buf)>
-
-=cut
-
-*/
- METHOD void Update(STRING *buf) {
- at TEMP_md_guard@
- @TEMP_md_ctx@ *c = PMC_data_typed(SELF, @TEMP_md_ctx@ *);
- (void)@TEMP_md_name at _Update(c, (const unsigned char *)Buffer_bufstart(buf), buf->bufused);
-#endif
- }
-
-/*
-
-=item C<STRING* Final()>
-
-=cut
-
-*/
- METHOD STRING* Final() {
- at TEMP_md_guard@
- unsigned char digest[@TEMP_md_digest at _LENGTH];
- @TEMP_md_ctx@ *c = PMC_data_typed(SELF, @TEMP_md_ctx@ *);
- STRING *retval;
-
- (void)@TEMP_md_name at _Final(digest, c);
- retval = Parrot_str_new(INTERP, (char *)digest, @TEMP_md_digest at _LENGTH);
-
- RETURN(STRING *retval);
-#else
- return;
-#endif
- }
-
-}
-
-/*
-
-=back
-
-=head1 AUTHORS
-
-Francois Perrad
-
-=cut
-
-*/
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Deleted: branches/avl_string_cache/config/gen/crypto/digest_t.in
==============================================================================
--- branches/avl_string_cache/config/gen/crypto/digest_t.in Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,79 +0,0 @@
-#! parrot
-# Copyright (C) 2009, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-t/dynpmc/@TEMP_md_file at .t - test the @TEMP_md_name@ PMC (part of digest_group)
-
-=head1 SYNOPSIS
-
- % parrot -Ilib t/dynpmc/@TEMP_md_file at .t
-
-=head1 DESCRIPTION
-
-Tests the C<digest_group> a libcrypto wrapper.
-
-=cut
-
-.sub main :main
- .include 'test_more.pir'
- .include 'iglobals.pasm'
- .local pmc config_hash, interp
-
- plan(2)
- interp = getinterp
- config_hash = interp[.IGLOBALS_CONFIG_HASH]
- $S0 = config_hash['has_crypto']
- $S1 = config_hash['openssl_version']
- unless $S0 goto no_crypto
- if $S1 < '@TEMP_md_skip@' goto old_openssl
-
- test_typeof()
- test_digest()
- .return()
- no_crypto:
- skip(2, 'No crypto library available')
- .return()
- old_openssl:
- skip(2, 'Too old openssl library, needs at least @TEMP_md_skip@')
-.end
-
-
-.sub test_typeof
- $P0 = loadlib 'digest_group'
- .local pmc md
- md = new '@TEMP_md_name@'
- $S0 = typeof md
- is($S0, '@TEMP_md_name@', '@TEMP_md_name@ typeof')
-.end
-
-.sub test_digest
- $P0 = loadlib 'digest_group'
- .local pmc md
- md = new '@TEMP_md_name@'
- md.'Init'()
- $S0 = 'message digest'
- md.'Update'($S0)
- $S0 = md.'Final'()
- $P0 = split '', $S0
- new $P1, 'FixedPMCArray'
- set $P1, 1
- $S3 = ''
- L1:
- unless $P0 goto L2
- $S1 = shift $P0
- $I1 = ord $S1
- $P1[0] = $I1
- $S2 = sprintf '%02x', $P1
- $S3 .= $S2
- goto L1
- L2:
- is($S3, '@TEMP_md_result@', '@TEMP_md_name@ digest')
-.end
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/avl_string_cache/config/gen/makefiles/docs.in
==============================================================================
--- branches/avl_string_cache/config/gen/makefiles/docs.in Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/config/gen/makefiles/docs.in Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2006, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
# Setup of some commands
@@ -11,6 +11,9 @@
PERLDOC_BIN = @perldoc@
VERSION = @VERSION@@DEVEL@
+# chapters in the generated PDF parrot book
+CHAPTERS = $(PERL) ../tools/docs/filename_and_chapter.pl --b_out
+
# long list of .pod files
POD = @TEMP_pod@
@@ -50,6 +53,21 @@
html: all
$(PERL) -I../lib ../tools/docs/write_docs.pl --silent --version=$(VERSION)
+# The pdf target is to generate a parrot PDF document.
+# It will not work on Windows. It call a script which use a specific Unix
+# command. May be that will be changed.
+pdf: ../tools/docs/book-to-latex.pl ../tools/docs/filename_and_chapter.pl
+ $(MKPATH) build/modified_pod
+ $(PERL) ../tools/docs/filename_and_chapter.pl
+ $(PERL) ../tools/docs/book-to-latex.pl `$(CHAPTERS)` > build/parrot-book.tex
+ cd build && pdflatex parrot-book.tex && pdflatex parrot-book.tex
+
+#pdf-release: build/parrot-book.pdf
+# cp build/parrot-book.pdf build/parrot-book-$$(date +"%Y.%m").pdf
+
+pdf-clean:
+ $(RM_RF) build
+
html-clean:
$(RM_RF) html
Modified: branches/avl_string_cache/config/gen/makefiles/dynpmc.in
==============================================================================
--- branches/avl_string_cache/config/gen/makefiles/dynpmc.in Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/config/gen/makefiles/dynpmc.in Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2009, Parrot Foundation.
+# Copyright (C) 2003-2010, Parrot Foundation.
# $Id$
PERL = @perl@
@@ -32,31 +32,9 @@
foo_group$(LOAD_EXT) \
pccmethod_test$(LOAD_EXT) \
rotest$(LOAD_EXT) \
-#IF(has_gdbm): gdbmhash$(LOAD_EXT) \
rational$(LOAD_EXT) \
-#IF(has_crypto): digest_group$(LOAD_EXT) \
subproxy$(LOAD_EXT)
-PMCS_DIGEST = \
- md2.pmc \
- md4.pmc \
- md5.pmc \
- ripemd160.pmc \
- sha.pmc \
- sha1.pmc \
- sha256.pmc \
- sha512.pmc
-
-OBJS_DIGEST = \
- md2$(O) \
- md4$(O) \
- md5$(O) \
- ripemd160$(O) \
- sha$(O) \
- sha1$(O) \
- sha256$(O) \
- sha512$(O)
-
PMCS_FOO = \
foo.pmc \
foo2.pmc
@@ -65,14 +43,6 @@
foo$(O) \
foo2$(O)
-#IF(win32 and cc==gcc):LIB_GDBM = -llibgdbm
-#ELSIF(win32):LIB_GDBM = libgdbm.lib
-#ELSE:LIB_GDBM = -lgdbm
-
-#IF(win32 and cc==gcc):LIB_CRYPTO = -lcrypto
-#ELSIF(win32):LIB_CRYPTO = libcrypto.lib
-#ELSE:LIB_CRYPTO = -lcrypto
-
CLEANUPS = \
"*.c" \
"pmc_*.h" \
@@ -165,19 +135,6 @@
rotest.dump: rotest.pmc
$(PMC2CD) rotest.pmc
-gdbmhash$(LOAD_EXT): gdbmhash$(O)
- $(LD) @ld_out at gdbmhash$(LOAD_EXT) gdbmhash$(O) $(LINKARGS) $(LIB_GDBM)
-#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-
-gdbmhash$(O): gdbmhash.c
- $(CC) -c @cc_o_out at gdbmhash$(O) $(INCLUDES) $(CFLAGS) gdbmhash.c
-
-gdbmhash.c: gdbmhash.dump
- $(PMC2CC) gdbmhash.pmc
-
-gdbmhash.dump: gdbmhash.pmc
- $(PMC2CD) gdbmhash.pmc
-
rational$(LOAD_EXT): rational$(O)
$(LD) @ld_out at rational$(LOAD_EXT) rational$(O) $(LINKARGS)
#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
@@ -191,88 +148,6 @@
rational.dump: rational.pmc
$(PMC2CD) rational.pmc
-digest_group$(LOAD_EXT): $(OBJS_DIGEST) lib-digest_group$(O)
- $(LD) @ld_out at digest_group$(LOAD_EXT) lib-digest_group$(O) $(OBJS_DIGEST) $(LINKARGS) $(LIB_CRYPTO)
-#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-
-lib-digest_group$(O): digest_group.c
- $(CC) -c @cc_o_out at lib-digest_group$(O) $(INCLUDES) $(CFLAGS) digest_group.c
-
-digest_group.c: $(OBJS_DIGEST)
- $(PMC2C) --library digest_group --c $(PMCS_DIGEST)
-
-md2$(O): md2.c
- $(CC) -c @cc_o_out at md2$(O) $(INCLUDES) $(CFLAGS) md2.c
-
-md2.c: md2.dump
- $(PMC2CC) md2.pmc
-
-md2.dump: md2.pmc
- $(PMC2CD) md2.pmc
-
-md4$(O): md4.c
- $(CC) -c @cc_o_out at md4$(O) $(INCLUDES) $(CFLAGS) md4.c
-
-md4.c: md4.dump
- $(PMC2CC) md4.pmc
-
-md4.dump: md4.pmc
- $(PMC2CD) md4.pmc
-
-md5$(O): md5.c
- $(CC) -c @cc_o_out at md5$(O) $(INCLUDES) $(CFLAGS) md5.c
-
-md5.c: md5.dump
- $(PMC2CC) md5.pmc
-
-md5.dump: md5.pmc
- $(PMC2CD) md5.pmc
-
-ripemd160$(O): ripemd160.c
- $(CC) -c @cc_o_out at ripemd160$(O) $(INCLUDES) $(CFLAGS) ripemd160.c
-
-ripemd160.c: ripemd160.dump
- $(PMC2CC) ripemd160.pmc
-
-ripemd160.dump: ripemd160.pmc
- $(PMC2CD) ripemd160.pmc
-
-sha$(O): sha.c
- $(CC) -c @cc_o_out at sha$(O) $(INCLUDES) $(CFLAGS) sha.c
-
-sha.c: sha.dump
- $(PMC2CC) sha.pmc
-
-sha.dump: sha.pmc
- $(PMC2CD) sha.pmc
-
-sha1$(O): sha1.c
- $(CC) -c @cc_o_out at sha1$(O) $(INCLUDES) $(CFLAGS) sha1.c
-
-sha1.c: sha1.dump
- $(PMC2CC) sha1.pmc
-
-sha1.dump: sha1.pmc
- $(PMC2CD) sha1.pmc
-
-sha256$(O): sha256.c
- $(CC) -c @cc_o_out at sha256$(O) $(INCLUDES) $(CFLAGS) sha256.c
-
-sha256.c: sha256.dump
- $(PMC2CC) sha256.pmc
-
-sha256.dump: sha256.pmc
- $(PMC2CD) sha256.pmc
-
-sha512$(O): sha512.c
- $(CC) -c @cc_o_out at sha512$(O) $(INCLUDES) $(CFLAGS) sha512.c
-
-sha512.c: sha512.dump
- $(PMC2CC) sha512.pmc
-
-sha512.dump: sha512.pmc
- $(PMC2CD) sha512.pmc
-
subproxy$(LOAD_EXT): subproxy$(O)
$(LD) @ld_out at subproxy$(LOAD_EXT) subproxy$(O) $(LINKARGS)
#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
Modified: branches/avl_string_cache/config/gen/makefiles/root.in
==============================================================================
--- branches/avl_string_cache/config/gen/makefiles/root.in Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/config/gen/makefiles/root.in Thu Apr 22 09:55:26 2010 (r45889)
@@ -166,23 +166,7 @@
#IF(has_opengl): src/glut_nci_thunks.nci \
#IF(has_glut): src/glut_callbacks.c \
src/core_pmcs.c \
-#IF(has_crypto): src/dynpmc/md2.pmc \
-#IF(has_crypto): src/dynpmc/md4.pmc \
-#IF(has_crypto): src/dynpmc/md5.pmc \
-#IF(has_crypto): src/dynpmc/ripemd160.pmc \
-#IF(has_crypto): src/dynpmc/sha.pmc \
-#IF(has_crypto): src/dynpmc/sha1.pmc \
-#IF(has_crypto): src/dynpmc/sha256.pmc \
-#IF(has_crypto): src/dynpmc/sha512.pmc \
-#IF(has_crypto): t/dynpmc/md2.t \
-#IF(has_crypto): t/dynpmc/md4.t \
-#IF(has_crypto): t/dynpmc/md5.t \
-#IF(has_crypto): t/dynpmc/ripemd160.t \
-#IF(has_crypto): t/dynpmc/sha.t \
-#IF(has_crypto): t/dynpmc/sha1.t \
-#IF(has_crypto): t/dynpmc/sha256.t \
-#IF(has_crypto): t/dynpmc/sha512.t \
- config_lib.pasm \
+ config_lib.pir \
parrot.pc \
compilers/imcc/imcc.y.flag \
compilers/imcc/imcc.l.flag \
@@ -294,12 +278,13 @@
#IF(has_opengl): $(LIBRARY_DIR)/OpenGL.pbc \
#IF(has_opengl): $(LIBRARY_DIR)/OpenGL_funcs.pbc \
#IF(has_opengl): $(LIBRARY_DIR)/OpenGL/Math.pbc \
+ $(LIBRARY_DIR)/osutils.pbc \
$(LIBRARY_DIR)/P6object.pbc \
$(LIBRARY_DIR)/ProfTest.pbc \
- $(LIBRARY_DIR)/ProfTest/PIRProfile.pir \
- $(LIBRARY_DIR)/ProfTest/NQPProfile.pir \
- $(LIBRARY_DIR)/ProfTest/Matcher.pir \
- $(LIBRARY_DIR)/ProfTest/Want.pir \
+ $(LIBRARY_DIR)/ProfTest/PIRProfile.pir \
+ $(LIBRARY_DIR)/ProfTest/NQPProfile.pir \
+ $(LIBRARY_DIR)/ProfTest/Matcher.pir \
+ $(LIBRARY_DIR)/ProfTest/Want.pir \
$(LIBRARY_DIR)/parrotlib.pbc \
$(LIBRARY_DIR)/pcore.pbc \
$(LIBRARY_DIR)/pcre.pbc \
@@ -322,6 +307,9 @@
$(LIBRARY_DIR)/Stream/Sub.pbc \
$(LIBRARY_DIR)/Stream/Writer.pbc \
$(LIBRARY_DIR)/String/Utils.pbc \
+ $(LIBRARY_DIR)/TAP/Formatter.pbc \
+ $(LIBRARY_DIR)/TAP/Harness.pbc \
+ $(LIBRARY_DIR)/TAP/Parser.pbc \
$(LIBRARY_DIR)/Test/Builder/Output.pbc \
$(LIBRARY_DIR)/Test/Builder/Test.pbc \
$(LIBRARY_DIR)/Test/Builder/Tester.pbc \
@@ -347,6 +335,10 @@
FLUID_FILES_2 = \
$(GEN_LIBRARY) \
+ $(LIBRARY_DIR)/ProfTest/PIRProfile.pbc \
+ $(LIBRARY_DIR)/ProfTest/NQPProfile.pbc \
+ $(LIBRARY_DIR)/ProfTest/Matcher.pbc \
+ $(LIBRARY_DIR)/ProfTest/Want.pbc \
runtime/parrot/include/parrotlib.pbc
@@ -531,6 +523,7 @@
PIRC = . at slash@pirc$(EXE)
NQP_RX = . at slash@parrot-nqp$(EXE)
NCI_THUNK_GEN = . at slash@parrot_nci_thunk_gen$(EXE)
+TAPIR = . at slash@tapir$(EXE)
# Installable executables
INSTALLABLEPARROT = . at slash@installable_parrot$(EXE)
@@ -542,6 +535,7 @@
INSTALLABLECONFIG = . at slash@installable_parrot_config$(EXE)
INSTALLABLENQP = . at slash@installable_parrot-nqp$(EXE)
INSTALLABLENCITHUNKGEN = . at slash@installable_parrot_nci_thunk_gen$(EXE)
+INSTALLABLETAPIR = . at slash@installable_tapir$(EXE)
# Libraries
LIBPARROT_STATIC = @blib_dir@/@libparrot_static@
@@ -551,7 +545,7 @@
# This line controls whether a static or shared library is built
# by Parrot's make. It is not useful otherwise (e.g., in
-# lib/Parrot/Config/Generated.pm or config_lib.pasm).
+# lib/Parrot/Config/Generated.pm or config_lib.pir).
LIBPARROT = @libparrot_for_makefile_only@
#IF(has_icu):ICU_SHARED = @icu_shared@
@@ -582,10 +576,8 @@
.c$(O) : # suffix rule (limited support)
$(CC) $(CFLAGS) @optimize@ $(CC_WARN) -I$(@D) @cc_o_out@$@ -c $<
-.s$(O) : # suffix rule (limited support)
- $(CC) $(CFLAGS) @optimize@ $(CC_WARN) -I$(@D) @cc_o_out@$@ -c $<
-#UNLESS(win32).S$(O) : # suffix rule (limited support)
-#UNLESS(win32) $(CC) $(CFLAGS) @optimize@ $(CC_WARN) -I$(@D) @cc_o_out@$@ -c $<
+#UNLESS(win32):.s$(O) : # suffix rule (limited support)
+#UNLESS(win32): $(CC) $(CFLAGS) @optimize@ $(CC_WARN) -I$(@D) @cc_o_out@$@ -c $<
.pir.pbc : # suffix rule (limited support)
$(PARROT) -o $@ $<
@@ -808,16 +800,17 @@
world : all parrot_utils
-parrot_utils : $(PDUMP) $(DIS) $(PDB) $(PBC_MERGE) $(PBC_TO_EXE) $(PARROT_CONFIG) src/install_config$(O)
+parrot_utils : $(PDUMP) $(DIS) $(PDB) $(PBC_MERGE) $(PBC_TO_EXE) $(PARROT_CONFIG) src/install_config$(O) $(TAPIR)
-installable: all $(INSTALLABLEPARROT) $(INSTALLABLEPDUMP) $(INSTALLABLEDIS) $(INSTALLABLEPDB) $(INSTALLABLEPBC_MERGE) $(INSTALLABLEPBCTOEXE) $(INSTALLABLECONFIG) $(INSTALLABLENQP) $(INSTALLABLENCITHUNKGEN)
+installable: all $(INSTALLABLEPARROT) $(INSTALLABLEPDUMP) $(INSTALLABLEDIS) $(INSTALLABLEPDB) $(INSTALLABLEPBC_MERGE) $(INSTALLABLEPBCTOEXE) $(INSTALLABLECONFIG) $(INSTALLABLENQP) $(INSTALLABLENCITHUNKGEN) $(INSTALLABLETAPIR)
runtime/parrot/include/parrotlib.pbc: runtime/parrot/library/parrotlib.pir $(PARROT) $(GEN_PASM_INCLUDES)
$(PARROT) -o $@ runtime/parrot/library/parrotlib.pir
-runtime/parrot/include/config.fpmc : myconfig config_lib.pasm $(MINIPARROT)
- $(MINIPARROT) config_lib.pasm > $@
+runtime/parrot/include/config.fpmc : myconfig config_lib.pir \
+ runtime/parrot/include/datatypes.pasm $(MINIPARROT)
+ $(MINIPARROT) -Iruntime/parrot/include config_lib.pir > $@
$(PARROT) : src/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
lib/Parrot/OpLib/core.pm src/parrot_config$(O) \
@@ -837,6 +830,12 @@
$(NCI_THUNK_GEN) : parrot_nci_thunk_gen.pbc $(PBC_TO_EXE)
$(PBC_TO_EXE) parrot_nci_thunk_gen.pbc
+tapir.pbc : tools/dev/tapir.pir $(PARROT)
+ $(PARROT) -o tapir.pbc tools/dev/tapir.pir
+
+$(TAPIR) : tapir.pbc $(PARROT) $(PBC_TO_EXE)
+ $(PBC_TO_EXE) tapir.pbc
+
$(PARROT_CONFIG) : tools/util/parrot-config.pir $(PARROT) $(PBC_TO_EXE)
$(PARROT) -o parrot_config.pbc tools/util/parrot-config.pir
$(PARROT) pbc_to_exe.pbc parrot_config.pbc
@@ -857,7 +856,7 @@
$(INC_DIR)/context.h : include/pmc/pmc_callcontext.h
-$(INC_DIR)/pbcversion.h :
+$(INC_DIR)/pbcversion.h : PBC_COMPAT
$(PERL) $(BUILD_TOOLS_DIR)/pbcversion_h.pl > $(INC_DIR)/pbcversion.h
src/parrot_config.c : runtime/parrot/include/config.fpmc \
@@ -874,9 +873,9 @@
$(PERL) $(BUILD_TOOLS_DIR)/parrot_config_c.pl --mini > \
src/null_config.c
-install_config.fpmc : myconfig config_lib.pasm $(PARROT)
+install_config.fpmc : myconfig config_lib.pir $(PARROT)
@echo "Invoking Parrot to generate install_config.fpmc"
- $(PARROT) config_lib.pasm --install > $@
+ $(PARROT) config_lib.pir --install > $@
src/parrot_config$(O) : $(PARROT_H_HEADERS)
@@ -952,6 +951,9 @@
$(INSTALLABLENCITHUNKGEN) : parrot_nci_thunk_gen.pbc $(PBC_TO_EXE) src/install_config$(O)
$(PBC_TO_EXE) parrot_nci_thunk_gen.pbc --install
+$(INSTALLABLETAPIR) : tapir.pbc $(PBC_TO_EXE)
+ $(PBC_TO_EXE) tapir.pbc --install
+
#
# Parrot Debugger
#
@@ -1617,6 +1619,12 @@
htmlhelp-clean :
$(MAKE) docs htmlhelp-clean
+#UNLESS(win32):pdf:
+#UNLESS(win32): $(MAKE) docs pdf
+
+pdf-clean:
+ $(MAKE) docs pdf-clean
+
###############################################################################
#
# dynamic PMC targets:
@@ -1897,8 +1905,10 @@
$(INSTALLABLECONFIG) \
$(INSTALLABLENQP) \
$(INSTALLABLENCITHUNKGEN) \
+ $(INSTALLABLETAPIR) \
pbc_to_exe.pbc pbc_to_exe.c pbc_to_exe$(O) pbc_to_exe$(EXE) \
$(NCI_THUNK_GEN) parrot_nci_thunk_gen.c parrot_nci_thunk_gen$(O) parrot_nci_thunk_gen.pbc \
+ tapir.pbc tapir.c tapir$(O) tapir$(EXE) \
parrot_config$(EXE) parrot_config.c parrot_config$(O) parrot_config.pbc \
compilers/imcc/main$(O) \
$(PDUMP) src/pbc_dump$(O) src/packdump$(O) \
@@ -2135,7 +2145,8 @@
rm -f *.ln
$(LINT) $(CC_INC) "-Iinclude/pmc" $(BSD_LINT_FLAGS) $(BSD_LINT_EXCLUSIONS) $(LINTABLE_CFILES)
-# For checking with splint see also http:////www.perlfoundation.org//parrot//index.cgi?splint
+# For checking with splint see also
+# http:////trac.parrot.org/parrot/wiki/splint
# Splint: http:////splint.org
SPLINT = splint
@@ -2147,7 +2158,7 @@
# The dashes in the names don't make any difference to Splint, but I've
# made them match how they are in the manual. Otherwise, you might be
# looking for "declundef", except that it's "decl-undef" in the docs.
-SPLINTFLAGS = \
+SPLINTFLAGS_BASE = \
+standard \
-hints \
\
@@ -2169,14 +2180,16 @@
+show-scan \
+time-dist \
\
+ +cpp-names \
+ansi-reserved \
+ansi-reserved-internal \
-iso-reserved \
-iso-reserved-internal \
- -include-nest 10
+ -include-nest 10 \
# Memory safety checks
-SPLINTFLAGS = $(SPLINTFLAGS) \
+# Transfer errors (-mem-trans) are too tough for us right now
+SPLINTFLAGS_MEMORY_SAFETY = \
+bufferoverflow \
+bufferoverflowhigh \
+read-only-strings \
@@ -2184,9 +2197,19 @@
+strict-destroy \
+strict-use-released \
+use-released \
+ -must-free \
+ -mustfreefresh \
+ -mustfreeonly \
+ +null \
+ +nullptrarith \
+ +nullret \
+ -ptr-arith \
+ +ptr-negate \
+ -zero-ptr \
+ -mem-trans
# Macro safety checks
-SPLINTFLAGS = $(SPLINTFLAGS) \
+SPLINTFLAGS_MACRO_SAFETY = \
+macro-assign \
+macro-empty \
+macro-parens \
@@ -2195,63 +2218,44 @@
+macro-unrecog \
# Watch for unsafe comparisons
-SPLINTFLAGS = $(SPLINTFLAGS) \
+SPLINTFLAGS_UNSAFE_COMPARISONS = \
+bool-compare \
+ptr-compare \
+real-compare \
+unsigned-compare
# But allow us some slop in boolean comparisons
-SPLINTFLAGS = $(SPLINTFLAGS) \
+SPLINTFLAGS_BOOLEAN_SLOP = \
-pred-bool-int \
-pred-bool-ptr \
-pred-bool-others \
-boolops \
-# Report qualifier mismatches only if dangerous
-SPLINTFLAGS = $(SPLINTFLAGS) \
+# const and other qualifiers
+# Report qualifier mismatches only if dangerous (+relax-quals)
+SPLINTFLAGS_QUALIFIERS = \
+relax-quals
-# Memory checking
-SPLINTFLAGS = $(SPLINTFLAGS) \
- -must-free \
- -mustfreefresh \
- -mustfreeonly \
- +null \
- +nullptrarith \
- +nullret \
- -ptr-arith \
- +ptr-negate \
- -zero-ptr \
-
-# Transfer errors are too tough for us right now
-SPLINTFLAGS = $(SPLINTFLAGS) \
- -mem-trans
-
# Symbol definitions
-SPLINTFLAGS = $(SPLINTFLAGS) \
+SPLINTFLAGS_SYMBOL_DEFINITIONS = \
+decl-undef \
+incon-defs \
+incon-defs-lib \
-# Check for conflicts with C++ compilers
-SPLINTFLAGS = $(SPLINTFLAGS) \
- +cpp-names \
-
# Format codes
-SPLINTFLAGS = $(SPLINTFLAGS) \
+SPLINTFLAGS_FORMAT = \
+format-code \
+format-type \
# Problems with evaluation and control structions
-SPLINTFLAGS = $(SPLINTFLAGS) \
+SPLINTFLAGS_EVALUATION = \
+controlnestdepth 15 \
- +duplicate-case \
+ +duplicate-quals \
+eval-order \
+eval-order-uncon \
# Types and stuff
-SPLINTFLAGS = $(SPLINTFLAGS) \
+SPLINTFLAGS_TYPES = \
+char-index \
+char-int \
+enum-members \
@@ -2270,13 +2274,27 @@
# added to splint target to simplify experimentation,
# example: make SPLINTFLAGS_TEST='-posixstrictlib +posixlib' splint
+SPLINTFLAGS_TEST =
+
+SPLINTFLAGS = \
+ $(SPLINTFLAGS_BASE) \
+ $(SPLINTFLAGS_MEMORY_SAFETY) \
+ $(SPLINTFLAGS_MACRO_SAFETY) \
+ $(SPLINTFLAGS_UNSAFE_COMPARISONS) \
+ $(SPLINTFLAGS_BOOLEAN_SLOP) \
+ $(SPLINTFLAGS_QUALIFIERS) \
+ $(SPLINTFLAGS_SYMBOL_DEFINITIONS) \
+ $(SPLINTFLAGS_FORMAT) \
+ $(SPLINTFLAGS_EVALUATION) \
+ $(SPLINTFLAGS_TYPES) \
+
SPLINT_SOURCE = `echo $(O_FILES) | $(PERL) -pe @PQ at s/\.o/\.c/g at PQ@`
splint-all : $(PARROT)
$(MKPATH) $(SPLINT_TMP)
- $(SPLINT) $(CC_INC) "-Iinclude/pmc" "-Icompilers/ast" $(SPLINTFLAGS) $(SPLINTFLAGS_TEST) \
+ $(SPLINT) $(CC_INC) "-Iinclude/pmc" "-Icompilers/ast" $(SPLINTFLAGS) \
$(SPLINT_SOURCE) \
- $(SPLINT) $(CC_INC) $(SPLINTFLAGS) $(SPLINTFLAGS_TEST) compilers/imcc/main.c
+ $(SPLINT) $(CC_INC) $(SPLINTFLAGS) compilers/imcc/main.c
# "splint" is the less-thorough splint target. For cage cleaning work,
# you'll probably want to specify SPLINT_SOURCE rather than work on the
@@ -2285,7 +2303,7 @@
splint : all
$(MKPATH) $(SPLINT_TMP)
- $(SPLINT) $(CC_INC) "-Iinclude/pmc" "-Icompilers/ast" $(SPLINTFLAGS) $(SPLINTFLAGS_TEST) \
+ $(SPLINT) $(CC_INC) "-Iinclude/pmc" "-Icompilers/ast" $(SPLINTFLAGS) \
+partial -DNDEBUG \
$(SPLINT_SOURCE) \
| grep -v 'Source code error generation point'
@@ -2524,7 +2542,7 @@
--links=no --totals \
-R --exclude=blib --exclude=.svn \
--languages=c,perl --langmap=c:+.h,c:+.pmc,c:+.ops \
- -I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK \
+ -I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK,ARGFREE,ARGFREE_NOTNULL \
.
# this works with an old etags (XEmacs 21.5*)
@@ -2541,11 +2559,11 @@
tags-vi: tags.vi.dummy
$(RM_F) tags
@ctags@ \
- --links=no --totals \
- -R --exclude=blib --exclude=.svn \
- --languages=c,perl --langmap=c:+.h,c:+.pmc,c:+.ops \
- -I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK \
- .
+ --links=no --totals \
+ -R --exclude=blib --exclude=.svn \
+ --languages=c,perl --langmap=c:+.h,c:+.pmc,c:+.ops \
+ -I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK,ARGFREE,ARGFREE_NOTNULL \
+ .
$(PERL) $(BUILD_TOOLS_DIR)/addopstags.pl $(OPS_FILES)
tags.vi.dummy:
@@ -2557,6 +2575,7 @@
# Andy's extra-cranky Perl::Critic checking for cage cleaners
cagecritic:
+ @perl -MPerl::Critic::Bangs -e'$$min=q{1.04};die qq{You need Bangs $$min} unless $$Perl::Critic::Bangs::VERSION ge $$min'
perlcritic -1 --profile tools/util/perlcritic-cage.conf $(CRITIC_FILES)
# This target will eventually create all the headers automatically. If you
Modified: branches/avl_string_cache/config/gen/opengl.pm
==============================================================================
--- branches/avl_string_cache/config/gen/opengl.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/config/gen/opengl.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -516,6 +516,7 @@
# "$ENV{HOME}/src/osx-insane/usr/X11/include/GL/*.h",
# "$ENV{HOME}/src/osx-insane/usr/X11/include/GL/internal/*.h",
# "$ENV{HOME}/src/osx-insane/usr/X11R6 1/include/GL/*.h",
+# "$ENV{HOME}/src/osx-10.6.3/Headers/*.h",
);
# X freeglut only if DISPLAY is set, otherwise use native w32api GLUT
@@ -663,6 +664,9 @@
next if /^#/;
next if /\btypedef\b/;
+ # Work around bug in Mac OS X headers (glext.h as of 10.6.3, at least)
+ next if /^\s*extern\s+\w+\s+\(\*\s+/;
+
# Skip where we are explicitly told to do so
next if /\bFGUNUSED\b/;
Modified: branches/avl_string_cache/config/gen/platform/generic/env.c
==============================================================================
--- branches/avl_string_cache/config/gen/platform/generic/env.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/config/gen/platform/generic/env.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -74,7 +74,7 @@
void
Parrot_unsetenv(PARROT_INTERP, STRING *str_name)
{
- char *name = Parrot_str_to_cstring(interp, str_name);
+ char * const name = Parrot_str_to_cstring(interp, str_name);
#ifdef PARROT_HAS_UNSETENV
unsetenv(name);
#else
Modified: branches/avl_string_cache/config/init/defaults.pm
==============================================================================
--- branches/avl_string_cache/config/init/defaults.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/config/init/defaults.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -94,9 +94,9 @@
# Compiler -- used to turn .c files into object files.
# (Usually cc or cl, or something like that.)
cc => $cc_option ? $cc_option : $Config{cc},
- # If we specify a compiler, we can't use existing ccflags and ccwarn.
+ # If we specify a compiler, we can't use existing ccflags.
ccflags => $cc_option ? '' : $Config{ccflags},
- ccwarn => $cc_option ? '' : $Config{ccwarn},
+ ccwarn => '',
# Flags used to indicate this object file is to be compiled
# with position-independent code suitable for dynamic loading.
Modified: branches/avl_string_cache/config/init/hints/cygwin.pm
==============================================================================
--- branches/avl_string_cache/config/init/hints/cygwin.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/config/init/hints/cygwin.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -36,6 +36,7 @@
# this later causes problems, it might be worth revisiting. A. Dougherty
# 9/9/2002
$conf->data->set(
+ cp => '/bin/cp', # ExtUtils::Command::cp broken cpan #56666
build_dir => $build_dir,
ld => $conf->data->get('ld') eq 'ld2'
? 'gcc' # do not use old perl5 linker helper
Modified: branches/avl_string_cache/docs/embed.pod
==============================================================================
--- branches/avl_string_cache/docs/embed.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/embed.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1551,8 +1551,6 @@
=item C<Parrot_store_sub_in_namespace>
-=item C<Parrot_str_append>
-
=item C<Parrot_str_boolean>
=item C<Parrot_str_byte_length>
Modified: branches/avl_string_cache/docs/parrothist.pod
==============================================================================
--- branches/avl_string_cache/docs/parrothist.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/parrothist.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -105,4 +105,6 @@
chromatic 2.0.0 * 2010-Jan-19 "Inevitable"
darbelo 2.1.0 2010-Feb-16 "As Scheduled"
cotto 2.2.0 2010-Mar-16 "Like Clockwork"
+
+ Gerd 2.3.0 * 2010-Apr-20 "Samoan Lory"
=cut
Modified: branches/avl_string_cache/docs/pdds/draft/pdd01_overview.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/draft/pdd01_overview.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/draft/pdd01_overview.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 [DRAFT] PDD 1: Overview
@@ -190,7 +190,7 @@
bytecode and save it for later use. Essentially, we would compile a program as
normal, but then simply freeze the bytecode to disk for later loading.
-=head3 Your HLL in, Java, CLI, or whatever out
+=head3 Your HLL in; Java, CLI, or whatever out
The previous section assumes that we will be emitting Parrot bytecode.
However, there are other possibilities: we could translate the bytecode
@@ -200,7 +200,7 @@
=head2 References
-To come.
+None.
=cut
Modified: branches/avl_string_cache/docs/pdds/draft/pdd05_opfunc.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/draft/pdd05_opfunc.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/draft/pdd05_opfunc.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 [DRAFT] PDD 5: Opcodes
@@ -13,6 +13,10 @@
{{ NOTE: standardize on underscores or no underscores? }}
+=head2 Version
+
+$Revision$
+
=head2 Description
The opcode functions are the workhorse of the Parrot engine. They control
@@ -169,34 +173,7 @@
=head2 References
-Oploop PDD, PDD 4 (Internal types)
-
-=head2 Footnotes
-
-None.
-
-=head2 Version
-
-1.0
-
-=head3 Current
-
- Maintainer: Dan Sugalski <dan at sidhe.org>
- Class: Internals
- PDD Number: 5
- Version: 1.0
- Status: Developing
- Last Modified: 16 Jul 2001
- PDD Format: 1
- Language: English
-
-=head3 History
-
-None. First version
-
-=head2 Changes
-
-None. First version
+Oploop PDD, PDD 4 (Internal types).
=cut
Modified: branches/avl_string_cache/docs/pdds/draft/pdd06_pasm.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/draft/pdd06_pasm.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/draft/pdd06_pasm.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -7,6 +7,10 @@
The format of Parrot's bytecode assembly language.
+=head2 Version
+
+$Revision$
+
=head2 Description
Parrot's bytecode can be thought of as a form of machine language for a
@@ -1006,186 +1010,10 @@
=back
-=head2 Attachments
-
-None.
-
=head2 References
None.
-=head2 Version
-
-1.9
-
-=head3 Current
-
- Maintainer: Dan Sugalski
- Class: Internals
- PDD Number: 6
- Version: 1.9
- Status: Developing
- Last Modified: 28 February 2007
- PDD Format: 1
- Language: English
-
-=head3 History
-
-=over 4
-
-=item Version 1.9
-
-February 28, 2007
-
-=item Version 1.8
-
-December 11, 2002
-
-=item Version 1.7
-
-December 02, 2002
-
-=item Version 1.6
-
-November 05, 2001
-
-=item Version 1.5
-
-October 12, 2001
-
-=item Version 1.4
-
-September 24, 2001
-
-=item Version 1.3
-
-September 12, 2001
-
-=item Version 1.2
-
-August 25, 2001
-
-=item Version 1.1
-
-August 8, 2001
-
-=item version 1
-
-None. First version
-
-=back
-
-=head2 Changes
-
-=over 4
-
-=item Version 1.9
-
-=over 4
-
-=item * Removed remark on "upper case names reserved for directives"
-
-=item * Fixed ".sub" directive, should be ".pcc_sub"
-
-=item * Added constant directive in description.
-
-=item * Added grammar overview.
-
-=back
-
-=item Version 1.8
-
-=over 4
-
-=item * Added property ops
-
-=item * Fixed some bad register designations
-
-=item * Opened up opcode name character list to include numbers
-
-=back
-
-=item Version 1.7
-
-=over 4
-
-=item * Fixed stack ops; push, pop, and clear properly documented according to
-the engine's behaviour now.
-
-=back
-
-=item Version 1.6
-
-=over 4
-
-=item * Added GC opcodes
-
-=back
-
-=item Version 1.5
-
-=over 4
-
-=item * Now have a bsr in addition to a jsr
-
-=item * return is now ret
-
-=item * Added save and restore ops for saving and restoring individual
-registers
-
-=back
-
-=item Version 1.4
-
-=over 4
-
-=item * Conditional branches have just a true destination now
-
-=item * Added the I/O ops
-
-=item * Added in the threading ops
-
-=item * Added in the interpreter ops
-
-=back
-
-=item Version 1.3
-
-=over 4
-
-=item * Added in the low-level module loading ops
-
-=item * Added in transcendental functions and modulo
-
-=item * Finished the pad/global variable fetching bits
-
-=back
-
-=item Version 1.2
-
-We have an interpreter now! Yay! (Okay, a simple one, but still...) Changes
-made to reflect that.
-
-=item Version 1.1
-
-=over 4
-
-=item * Added in object
-
-=item * Changed remnants of "perl" to "Parrot"
-
-=item * Branch destination may be integer constant
-
-=item * Added L<Assembly Syntax> section
-
-=back
-
-=item Version 1.0
-
-None. First version
-
-=back
-
=cut
__END__
Modified: branches/avl_string_cache/docs/pdds/draft/pdd08_keys.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/draft/pdd08_keys.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/draft/pdd08_keys.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -8,6 +8,10 @@
This PDD aims to clear up the confusion regarding the implementation of keyed
access to PMCs in Parrot.
+=head2 Version
+
+$Revision$
+
=head2 Description
First, let's define some terminology. An C<aggregate PMC> is one which stores
@@ -265,44 +269,9 @@
The type values shown above are actually the C<PARROT_ARG_*> values taken from
F<include/parrot/op.h>.
-=head2 Version
-
-=head3 Current
-
- Maintainer: Simon Cozens <simon at netthink.co.uk>
- Class: Internals
- PDD Number: 8
- Version: 1.3
- Status: Developing
- Last Modified: 25 August, 2002
- PDD Format: 1
- Language: English
-
-=head3 History
-
-=over 4
-
-=item Sun Aug 25 11:14:43 GMT 2002 : Version 1.3
-
-Updated to reflect Dan's decision to change keys to use PMCs instead of a
-custom data structure. Also corrects documentation of multi-level keys and how
-they are compiled and work. tom at compton.nu.
-
-=item Thu Apr 25 18:30:36 UTC 2002 : Version 1.2
-
-Renamed C<KEY_PAIR> to C<KEY_ATOM>, updated to reflect changeover to linked
-list. - steve at fink.com
-
-=item Fri Mar 8 18:47:34 GMT 2002 : Version 1.1
-
-updated to reflect Dan's comments that non-aggregates also support C<_keyed>
-variant vtable functions.
-
-=back
-
=head2 References
-To come.
+None.
=cut
Modified: branches/avl_string_cache/docs/pdds/draft/pdd10_embedding.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/draft/pdd10_embedding.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/draft/pdd10_embedding.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (c) 2001-2009, Parrot Foundation.
+# Copyright (c) 2001-2010, Parrot Foundation.
# $Id$
=head1 [DRAFT] PDD10: Embedding and Extending
@@ -219,8 +219,9 @@
Compiling source code generated or read from the host application is also
possible:
- Parrot_PMC Parrot_compile_string( Parrot_Interp, const char *compiler,
- const char *code );
+ Parrot_PMC Parrot_compile_string( Parrot_Interp, Parrot_String compiler,
+ const char *code,
+ Parrot_String error );
The potential return values are the same as for loading code from disk.
@@ -244,17 +245,9 @@
such that it is possible to load source code written in that language or pass
source code to an interpreter successfully.
-=head2 Attachments
-
-Any associated documents.
-
-=head2 Footnotes
-
-List of footnotes to the text.
-
=head2 References
-List of references.
+None.
=cut
Modified: branches/avl_string_cache/docs/pdds/draft/pdd11_extending.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/draft/pdd11_extending.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/draft/pdd11_extending.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 [DRAFT] PDD 11: Extending
@@ -9,6 +9,10 @@
Parrot for code written in C or other compiled languages. It provides about
the same level of access to Parrot that bytecode programs have.
+=head2 Version
+
+$Revision$
+
=head2 Description
The API presents to C programs roughly the same interface presented to
@@ -349,51 +353,10 @@
=back
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
=head2 References
F<docs/glossary.pod>
-=head2 Version
-
-=head3 Current
-
- Maintainer:
- Class: Internals
- PDD Number: 11
- Version: 1.0
- Status: Developing
- Last Modified: February 20, 2004
- PDD Format: 1
- Language: English
-
-=head3 History
-
-=over 4
-
-=item Version 1
-
-None. First version
-
-=back
-
-=head2 Changes
-
-=over 4
-
-=item Version 1.0
-
-None. First version
-
-=back
-
=cut
__END__
Modified: branches/avl_string_cache/docs/pdds/draft/pdd14_numbers.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/draft/pdd14_numbers.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/draft/pdd14_numbers.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 [DRAFT] PDD 14: Numbers
@@ -574,10 +574,6 @@
suitable opcodes. Conversion to and from Parrot strings, conversion to and
from floating point types, sprintf output of bignumbers.
-=head2 Attachments
-
-=head2 Footnotes
-
=head2 References
IBM's Standard Decimal Arithmetic, with tests
Modified: branches/avl_string_cache/docs/pdds/draft/pdd16_native_call.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/draft/pdd16_native_call.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/draft/pdd16_native_call.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 [DRAFT] PDD 16: Native Call Interface (NCI)
@@ -8,6 +8,10 @@
This PDD describes the native call interface, and the function signatures used
to describe those functions.
+=head2 Version
+
+$Revision$
+
=head2 Description
The NCI is designed to allow Parrot to interface to I<most> of the functions
@@ -313,50 +317,15 @@
}
The file containing this C code should be compiled as a shared library
-(specifying the C<include> directory so C<<parrot/parrot.h>> can be found.)
+(specifying the C<include> directory so F<parrot/parrot.h> can be found.)
=head2 References
-L<pdd06_pasm.pod>
+F<pdd06_pasm.pod>
=head2 See Also
-L<t/pmc/nci.t>, L<src/nci_test.c>
-
-=head2 Version
-
-=head3 Current
-
- Maintainer: Dan Sugalski
- Class: Internals
- PDD Number: 16
- Version: 1.3
- Status: Developing
- Last Modified: Feb 26, 2007
- PDD Format: 1
- Language: English
-
-=head3 History
-
-=over 4
-
-=item version 1.3
-
-Updated with example for callbacks
-
-=item version 1.2
-
-Updated with basic example for NCI.
-
-=item version 1.1
-
-Changed callback section to reflect current status.
-
-=item version 1
-
-None. First version
-
-=back
+F<t/pmc/nci.t>, F<src/nci_test.c>
=cut
Modified: branches/avl_string_cache/docs/pdds/draft/pdd29_compiler_tools.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/draft/pdd29_compiler_tools.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/draft/pdd29_compiler_tools.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,16 +1,15 @@
-# Copyright (C) 2008-2009, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
# $Id$
=head1 [DRAFT] PDD 29: Compiler Tools
-=head2 Version
+=head2 Abstract
-$Revision$
+This PDD specifies the Parrot Compiler Tools (PCT).
-=head2 Maintainer
+=head2 Version
-Will "Coke" Coleda
-Klaas-Jan Stol
+$Revision$
=head2 Definitions
@@ -23,10 +22,6 @@
A High-Level Language. Examples are: Perl, Ruby, Python, Lua, Tcl, etc.
-=head2 Abstract
-
-This PDD specifies the Parrot Compiler Tools (PCT).
-
=head2 Synopsis
Creating a PCT-based compiler can be done as follows:
@@ -356,15 +351,9 @@
=back
-=head2 Attachments
-
-None.
-
=head2 References
-docs/pdd26_ast.pod
-
-http://dev.perl.org/perl6/doc/design/syn/S05.html
+F<docs/pdd26_ast.pod>, L<http://dev.perl.org/perl6/doc/design/syn/S05.html>
=cut
Modified: branches/avl_string_cache/docs/pdds/draft/pdd31_hll.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/draft/pdd31_hll.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/draft/pdd31_hll.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,17 +1,17 @@
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
=head1 [DRAFT] PDD 31: HLL Compilers and Libraries
-=head2 Version
-
-$Revision$
-
=head2 Abstract
This PDD describes the standard compiler API and support for
cross-library communication between high-level languages (HLLs).
+=head2 Version
+
+$Revision$
+
=head2 Description
Parrot's support for HLL interoperability is primarily focused on
@@ -299,7 +299,7 @@
=head2 References
-L<pdd21_namespaces.pod>
+F<pdd21_namespaces.pod>
=cut
Modified: branches/avl_string_cache/docs/pdds/draft/pdd31_hll_interop.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/draft/pdd31_hll_interop.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/draft/pdd31_hll_interop.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,18 +1,18 @@
-# Copyright (C) 2008-2009, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
# $Id$
=head1 [DRAFT] PDD 31: Inter-Language Calling
-=head2 Version
-
-$Revision$
-
=head2 Abstract
This PDD describes Parrot's conventions and support for communication between
high-level languages (HLLs). It is focused mostly on what implementors should
do in order to provide this capability to their users.
+=head2 Version
+
+$Revision$
+
=head2 Description
The ability to mix different high-level languages at runtime has always been
Modified: branches/avl_string_cache/docs/pdds/pdd00_pdd.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd00_pdd.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd00_pdd.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,17 +1,17 @@
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 PDD 0: Design Document Format
-=head2 Version
-
-$Revision$
-
=head2 Abstract
This document defines the content and format of Parrot Design Documents
(PDDs).
+=head2 Version
+
+$Revision$
+
=head2 Synopsis
Not applicable.
@@ -99,13 +99,6 @@
Document version. Since Parrot is currently kept in a Subversion repository,
the $$-delimited keyword "Revision" will do nicely.
-=item Maintainer I<(optional)>:
-
-The name and current email address for the point of contact for the PDD. This
-is the person to whom questions, comments, and patches should generally be
-addressed. This need not be the author of the document. By default, all PDDs
-are maintained by the Parrot Architect.
-
=item Abstract:
A quick blurb explaining the purpose of the PDD.
@@ -149,6 +142,7 @@
Proposed PDDs should be submitted to the parrot-dev mailing list (located
at parrot-dev at lists.parrot.org) for discussion, criticism and general
kibitzing.
+
Acceptance of a particular PDD is ultimately up to the Parrot Architect.
=head3 PDD Translations
@@ -159,22 +153,14 @@
=item *
-The C<Maintainer> section should record who made the translation.
-
-=item *
-
-The C<Version> section should include an additional note of the translation
+The C<Version> section should include an additional note of the translated
version.
=back
-=head2 Attachments
-
-(none)
-
=head2 References
-(none)
+None.
=cut
Modified: branches/avl_string_cache/docs/pdds/pdd03_calling_conventions.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd03_calling_conventions.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd03_calling_conventions.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 PDD 3: Calling Conventions
@@ -391,13 +391,9 @@
=end PIR_FRAGMENT
-=head2 Attachments
-
-None.
-
=head2 References
-L<pdd23_exceptions.pod>
+F<pdd23_exceptions.pod>
=cut
Modified: branches/avl_string_cache/docs/pdds/pdd07_codingstd.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd07_codingstd.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd07_codingstd.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 PDD 7: Conventions and Guidelines for Parrot Source Code
@@ -1006,7 +1006,7 @@
=head2 References
-none
+None.
=cut
Modified: branches/avl_string_cache/docs/pdds/pdd09_gc.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd09_gc.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd09_gc.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -602,36 +602,28 @@
=back
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
=head2 References
"Uniprocessor Garbage Collection Techniques"
-http://www.cs.rice.edu/~javaplt/311/Readings/wilson92uniprocessor.pdf
+L<http://www.cs.rice.edu/~javaplt/311/Readings/wilson92uniprocessor.pdf>
"A unified theory of garbage collection":
-http://portal.acm.org/citation.cfm?id=1028982
+L<http://portal.acm.org/citation.cfm?id=1028982>
"Scalable Locality-Conscious Multithreaded Memory Allocation":
-http://people.cs.vt.edu/~scschnei/papers/ismm06.pdf
+L<http://people.cs.vt.edu/~scschnei/papers/ismm06.pdf>
"Parallel and concurrent garbage collectors":
-http://chaoticjava.com/posts/parallel-and-concurrent-garbage-collectors/
+L<http://chaoticjava.com/posts/parallel-and-concurrent-garbage-collectors/>
"Region-Based Memory Management":
-http://www.irisa.fr/prive/talpin/papers/ic97.pdf
+L<http://www.irisa.fr/prive/talpin/papers/ic97.pdf>
Dan's first musings on the GC subsystem:
-http://www.mail-archive.com/perl6-all@perl.org/msg14072.html
+L<http://www.mail-archive.com/perl6-all@perl.org/msg14072.html>
Semi-timely and ordered destruction:
-http://www.sidhe.org/~dan/blog/archives/000199.html
+L<http://www.sidhe.org/~dan/blog/archives/000199.html>
=cut
Modified: branches/avl_string_cache/docs/pdds/pdd15_objects.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd15_objects.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd15_objects.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2007, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 PDD 15: Objects and Classes
@@ -1630,11 +1630,6 @@
=end html
-
-=head2 Footnotes
-
-None.
-
=head2 References
None.
Modified: branches/avl_string_cache/docs/pdds/pdd17_pmc.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd17_pmc.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd17_pmc.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -3,15 +3,15 @@
=head1 PDD 17: Polymorphic Containers
-=head2 Version
-
-$Revision$
-
=head2 Abstract
This PDD describes the internal structure and behavior of the Polymorphic
Container (PMC) data type.
+=head2 Version
+
+$Revision$
+
=head2 Description
PMCs implement all internal data types more complex than a simple integer,
@@ -1809,17 +1809,9 @@
=back
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
=head2 References
- docs/pmc2c.pod
+F<docs/pmc2c.pod>
=cut
Modified: branches/avl_string_cache/docs/pdds/pdd18_security.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd18_security.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd18_security.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2008, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
=head1 PDD 18: Security Model
@@ -217,19 +217,13 @@
form is standard across high-level languages running on Parrot, the tools can
be written once and applied to many languages.
-=head2 Attachments
-
-
-=head2 Footnotes
-
-
=head2 References
-"Exploring the Broken Web": http://talks.php.net/show/osdc07
+"Exploring the Broken Web": L<http://talks.php.net/show/osdc07>
-"Safe ERB": http://agilewebdevelopment.com/plugins/safe_erb
+"Safe ERB": L<http://agilewebdevelopment.com/plugins/safe_erb>
-pecl/filter: http://us2.php.net/filter
+pecl/filter: L<http://us2.php.net/filter>
Rasmus Lerdorf for the term "data firewall".
Modified: branches/avl_string_cache/docs/pdds/pdd19_pir.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd19_pir.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd19_pir.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,18 +1,17 @@
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
=head1 PDD 19: Parrot Intermediate Representation (PIR)
-=head2 Version
-
-$Revision$
-
-
=head2 Abstract
This document outlines the architecture and core syntax of Parrot
Intermediate Representation (PIR).
+=head2 Version
+
+$Revision$
+
=head2 Description
PIR is a stable, middle-level language intended both as a target for the
@@ -1444,18 +1443,9 @@
=back
-
-=head2 Attachments
-
-N/A
-
-=head2 Footnotes
-
-N/A
-
=head2 References
-N/A
+None.
=cut
Modified: branches/avl_string_cache/docs/pdds/pdd20_lexical_vars.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd20_lexical_vars.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd20_lexical_vars.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,17 +1,17 @@
-# Copyright (C) 2001-2006, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 PDD 20: Lexical Variables
-=head2 Version
-
-$Revision$
-
=head2 Abstract
This document defines the requirements and implementation strategy for
lexically scoped variables.
+=head2 Version
+
+$Revision$
+
=head2 Synopsis
=begin PIR
@@ -402,23 +402,9 @@
TK.
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
=head2 References
-=over 4
-
-=item [1]
-
-t/op/lexicals.t
-
-=back
+F<t/op/lexicals.t>
=cut
Modified: branches/avl_string_cache/docs/pdds/pdd21_namespaces.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd21_namespaces.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd21_namespaces.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,16 +1,16 @@
-# Copyright (C) 2005-2007, Parrot Foundation.
+# Copyright (C) 2005-2010, Parrot Foundation.
# $Id$
=head1 PDD 21: Namespaces
-=head2 Version
-
-$Revision$
-
=head2 Abstract
Description and implementation of Parrot namespaces.
+=head2 Version
+
+$Revision$
+
=head2 Description
=over 4
@@ -737,14 +737,6 @@
=end PIR
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
=head2 References
None.
Modified: branches/avl_string_cache/docs/pdds/pdd22_io.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd22_io.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd22_io.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 PDD 22: I/O
@@ -1038,14 +1038,6 @@
(http://www.ietf.org/rfc/rfc4038.txt) and "Basic Socket Interface
Extensions for IPv6" (http://www.ietf.org/rfc/rfc3493.txt).
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
=head2 Links
L<http://en.wikipedia.org/wiki/Asynchronous_I/O> for a relatively
@@ -1053,14 +1045,9 @@
=head2 References
- F<src/io/core.c>
- F<src/ops/io.ops>
- F<include/parrot/io.h>
- F<runtime/parrot/library/Stream/*>
- F<src/io/unix.c>
- F<src/io/win32.c>
- Perl 5's IO::AIO
- Perl 5's POE
+F<src/io/core.c>, F<src/ops/io.ops>, F<include/parrot/io.h>,
+F<runtime/parrot/library/Stream/*>, F<src/io/unix.c>, F<src/io/win32.c>,
+Perl 5's IO::AIO, and POE
=cut
Modified: branches/avl_string_cache/docs/pdds/pdd23_exceptions.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd23_exceptions.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd23_exceptions.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2007, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 PDD 23: Exceptions
@@ -447,20 +447,10 @@
=end PIR_FRAGMENT
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
=head2 References
- src/ops/core.ops
- src/exceptions.c
- src/pmc/exception.pmc
- src/pmc/exceptionhandler.pmc
+F<src/ops/core.ops>, F<src/exceptions.c>, F<src/pmc/exception.pmc>,
+F<src/pmc/exceptionhandler.pmc>
=cut
Modified: branches/avl_string_cache/docs/pdds/pdd24_events.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd24_events.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd24_events.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2007, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 PDD 24: Events
@@ -368,17 +368,9 @@
own implementations of timers, which may be used when performance on a
particular platform is more important than portability.
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
=head2 References
-src/events.c
+F<src/events.c>
L<http://www.seas.upenn.edu/~lipeng/homepage/unify.html>
Modified: branches/avl_string_cache/docs/pdds/pdd25_concurrency.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd25_concurrency.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd25_concurrency.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2007, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 PDD 25: Concurrency
@@ -422,40 +422,32 @@
=back
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
=head2 References
Dec 2003 - (Dan ponders threads based on POSIX and Perl 5 experience)
-<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/e64b22ab7de0a7a6/889b5d8c4cd267b7?lnk=gst&q=threads&rnum=3#889b5d8c4cd267b7>
+L<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/e64b22ab7de0a7a6/889b5d8c4cd267b7?lnk=gst&q=threads&rnum=3#889b5d8c4cd267b7>
Dec. 2003 - "threads and shared interpreter data structures"
-<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/e64ea4ff287e04fd/b71333e282d3d187?lnk=gst&q=threads&rnum=9#b71333e282d3d187>
+L<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/e64ea4ff287e04fd/b71333e282d3d187?lnk=gst&q=threads&rnum=9#b71333e282d3d187>
Jan. 2004 - "Threads Design. A Win32 perspective."
-<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/3209629b23306029/52ba9d37425ba015?lnk=gst&q=threads&rnum=8#52ba9d37425ba015>
+L<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/3209629b23306029/52ba9d37425ba015?lnk=gst&q=threads&rnum=8#52ba9d37425ba015>
Jan. 2004 - "Start of threads proposal"
-<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/4c7de440da84d5c6/04cfb70b0d81dfba?tvc=1&q=threads#04cfb70b0d81dfba>
+L<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/4c7de440da84d5c6/04cfb70b0d81dfba?tvc=1&q=threads#04cfb70b0d81dfba>
Sept. 2005 - "consider using OS threads"
-<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/40b50e3aa9255f8e/036a87b5d2b5ed2c?lnk=gst&q=threads&rnum=2#036a87b5d2b5ed2c>
+L<http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/40b50e3aa9255f8e/036a87b5d2b5ed2c?lnk=gst&q=threads&rnum=2#036a87b5d2b5ed2c>
Aug. 2007 - "multi-threading a work in progress"
-<http://perlmonks.org/?node_id=636466>
+L<http://perlmonks.org/?node_id=636466>
Concurrency as Futures -
-<http://www.cincomsmalltalk.com/userblogs/mls/blogView?showComments=true&entry=3336838959>
+L<http://www.cincomsmalltalk.com/userblogs/mls/blogView?showComments=true&entry=3336838959>
-Io language - <http://www.iolanguage.com/about/>
+Io language - L<http://www.iolanguage.com/about/>
-Java memory and concurrency - http://www.cs.umd.edu/~pugh/java/memoryModel/
+Java memory and concurrency - L<http://www.cs.umd.edu/~pugh/java/memoryModel/>
=cut
Modified: branches/avl_string_cache/docs/pdds/pdd26_ast.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd26_ast.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd26_ast.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007, Parrot Foundation
+# Copyright (C) 2007-2010, Parrot Foundation
# $Id$
=head1 PDD 26: Compiler Tools - Abstract Syntax Tree
@@ -561,7 +561,7 @@
=head2 References
-NA.
+None.
=cut
Modified: branches/avl_string_cache/docs/pdds/pdd27_multiple_dispatch.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd27_multiple_dispatch.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd27_multiple_dispatch.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
=head1 PDD 27: Multiple Dispatch
@@ -256,15 +256,9 @@
Multiple dispatch calls from within vtable functions call the
C<Parrot_mmd_invoke> routine from the public MMD API.
-=head2 Attachments
-
-None.
-
=head2 References
-docs/mmd.pod
-src/multidispatch.c
-src/pmc/multisub.pmc
+F<docs/mmd.pod>, F<src/multidispatch.c>, F<src/pmc/multisub.pmc>
=cut
Modified: branches/avl_string_cache/docs/pdds/pdd28_strings.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd28_strings.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd28_strings.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2009, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
# $Id$
=head1 PDD 28: Strings
@@ -379,13 +379,6 @@
value of flags. If both string arguments are null, return a new string created
according to the integer flags.
-=head4 Parrot_str_append (was string_append)
-
-Append one string to another and return the result. In the default case, the
-return value is the same as the first string argument (modifying that argument
-in place). If the first argument is COW or read-only, then the return value is
-a new string.
-
=head4 Parrot_str_new (was string_from_cstring)
Return a new string with the default encoding and character set. Accepts two
@@ -826,15 +819,15 @@
=head2 References
-http://sirviente.9grid.es/sources/plan9/sys/doc/utf.ps - Plan 9's Runes are
+L<http://sirviente.9grid.es/sources/plan9/sys/doc/utf.ps> - Plan 9's Runes are
not dissimilar to NFG strings, and this is a good introduction to the Unicode
world.
-http://www.unicode.org/reports/tr15/ - The Unicode Consortium's
+L<http://www.unicode.org/reports/tr15/> - The Unicode Consortium's
explanation of different normalization forms.
-http://unicode.org/reports/tr29/ - "grapheme clusters" in the Unicode Standard
-Annex
+L<http://unicode.org/reports/tr29/> - "grapheme clusters" in the Unicode
+Standard Annex
"Unicode: A Primer", Tony Graham - Arguably the most readable book on
how Unicode works.
Modified: branches/avl_string_cache/docs/pdds/pdd30_install.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd30_install.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd30_install.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -160,14 +160,6 @@
good choice, and can be combined with Autoconf, CMake, Perl, Python,
etc. for more complex conditional builds).
-=head2 Attachments
-
-None.
-
-=head2 Footnotes
-
-None.
-
=head2 References
None.
Modified: branches/avl_string_cache/docs/pdds/pdd_template.pod
==============================================================================
--- branches/avl_string_cache/docs/pdds/pdd_template.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/pdds/pdd_template.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,16 +1,16 @@
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 Design Document Template
-=head2 Version
-
-$Revision$
-
=head2 Abstract
Summary of the contents of the PDD.
+=head2 Version
+
+$Revision$
+
=head2 Synopsis I<(optional)>
Code snippets showing the semantics of the PDD (if applicable).
@@ -33,11 +33,11 @@
=head2 Attachments
-Any associated documents.
+Any associated documents. (optional)
=head2 Footnotes
-List of footnotes to the text.
+List of footnotes to the text. (optional)
=head2 References
Modified: branches/avl_string_cache/docs/project/release_manager_guide.pod
==============================================================================
--- branches/avl_string_cache/docs/project/release_manager_guide.pod Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/docs/project/release_manager_guide.pod Thu Apr 22 09:55:26 2010 (r45889)
@@ -213,10 +213,10 @@
$ mkdir ~/ftp/releases/devel/a.b.c
-If the release is in the stable series (L<Appendix 1 - Upcoming releases>)
-create the new directory in F<~/ftp/releases/stable> instead.
+If the release is in the supported series (L<Appendix 1 - Upcoming releases>)
+create the new directory in F<~/ftp/releases/supported> instead.
- $ mkdir ~/ftp/releases/stable/a.b.c
+ $ mkdir ~/ftp/releases/supported/a.b.c
Copy the different compressed tarballs from your machine into the new directory.
@@ -283,10 +283,10 @@
=item e
Under "Administer" -> "Site building" -> "URL Redirects", change the URL for
-"release/current" to the FTP directory for the new release (for example,
-F<ftp://ftp.parrot.org/pub/parrot/releases/devel/0.8.1>). Also update
-the URL for "release/developer" or "release/supported" depending on
-which type of release this is.
+"release/current" to the FTP file for the new release (for example,
+F<ftp://ftp.parrot.org/pub/parrot/releases/devel/0.8.1/parrot-0.8.1.tar.gz>).
+Also update the URL for "release/developer" or "release/supported" depending
+on which type of release this is.
=item f
@@ -294,9 +294,9 @@
the resources/ and html/ directories created in docs/.
ssh into the parrotvm, and in the
webroot for docs.parrot.org, expand these into a release directory (e.g.
-1.4.0). in <webroot>/parrot, there are symbolic links for latest, stable,
+1.4.0). in <webroot>/parrot, there are symbolic links for latest, supported,
and devel. Update the latest symlink to point to your new directory.
-If this is a stable release, also update the stable symlink. Do not delete
+If this is a supported release, also update the supported symlink. Do not delete
any old copies of the docs.
=back
@@ -394,10 +394,11 @@
visible at
L<http://www.google.com/calendar/render?cid=ldhctdamsgfg5a1cord52po9h8@group.calendar.google.com>.
- - Apr 20, 2010 - 2.3* - gerd
- May 18, 2010 - 2.4 - whiteknight
- Jun 15, 2010 - 2.5 - gerd
- Jul 20, 2010 - 2.6* - coke
+ - Aug 17, 2010 - 2.7 - ??
+ - Sep 21, 2010 - 2.8 - gerd
=cut
Modified: branches/avl_string_cache/examples/languages/abc/setup.pir
==============================================================================
--- branches/avl_string_cache/examples/languages/abc/setup.pir Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/examples/languages/abc/setup.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -40,7 +40,7 @@
$P1 = new 'Hash'
$P1['src/gen_grammar.pir'] = 'src/parser/grammar.nqp'
$P1['src/gen_actions.pir'] = 'src/parser/actions.nqp'
- $P0['pir_nqp-rx'] = $P1
+ $P0['pir_nqprx'] = $P1
$P2 = new 'Hash'
$P3 = split "\n", <<'SOURCES'
@@ -58,6 +58,9 @@
$P0['exe_pbc'] = $P4
$P0['installable_pbc'] = $P4
+ # test
+ $P0['test_exec'] = 'perl'
+
# dist
$P4 = glob('t/abc_*')
$P0['manifest_includes'] = $P4
Modified: branches/avl_string_cache/examples/pir/befunge/setup.pir
==============================================================================
--- branches/avl_string_cache/examples/pir/befunge/setup.pir Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/examples/pir/befunge/setup.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -55,6 +55,9 @@
$P0['exe_pbc'] = $P3
$P0['installable_pbc'] = $P3
+ # test
+ $P0['test_exec'] = 'perl'
+
# dist
$P4 = glob('*.bef')
$P0['manifest_includes'] = $P4
Deleted: branches/avl_string_cache/ext/SQLite3/DBDI.pm
==============================================================================
--- branches/avl_string_cache/ext/SQLite3/DBDI.pm Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,41 +0,0 @@
-# Basic Perl 6 database layer
-# $Id$
-# Copyright (C) 2008, Parrot Foundation.
-
-use v6;
-
-class DBDI::DriverManager {
- method getConnection($url, $login, $password) {
- my $c1 = $url.index(":");
- my $schema = substr($url, 0, $c1);
- if ($schema ne "dbdi") { die "Unknown schema "~$schema }
- my $rurl = substr($url, $c1+1);
- #say "Remainder was "~$rurl;
-
- my $c2 = $rurl.index(":");
- my $driver = "DBDI::Driver::"~substr($rurl, 0, $c2);
- eval "use "~$driver;
- if ($!) { die "Couldn't load "~$driver~": "~$!; }
-
- my $r = substr($rurl, $c2+1);
- return (eval $driver).getConnection($r, $login, $password);
- #return ::($driver).getConnection($r, $login, $password);
- }
-}
-
-class DBDI::Driver { }
-class DBDI::Statement { }
-class DBDI::PreparedStatement { }
-
-class DBDI::ResultSet {
- has $.statement;
- method next() { return $.statement.next(); }
- multi method getCol(Num $col) {
- $.statement.getCol($col);
- }
- multi method getCol(Str $col) {
- my $n = $.statement.lookupCol($col);
- if ($n > -1) { return self.getCol($n) }
- die "Couldn't find column "~$col;
- }
-}
Deleted: branches/avl_string_cache/ext/SQLite3/DBDI/Driver/SQLite3.pm
==============================================================================
--- branches/avl_string_cache/ext/SQLite3/DBDI/Driver/SQLite3.pm Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,96 +0,0 @@
-# SQLite3 Database Backend for DBDI
-# $Id$
-# Copyright (C) 2008, Parrot Foundation.
-
-use v6;
-
-use SQLite3;
-use DBDI;
-
-class DBDI::Driver::SQLite3 is DBDI::Driver {
- has $dbHandle;
- # This bit of hackery is to get around the fact that you can't use
- # $foo = <pointer>, only $foo := <pointer>
- method dbHandle { return $dbHandle }
-
- method getConnection ($db, $username, $password) {
- my $o = DBDI::Driver::SQLite3.new(:dbHandle(SQLite::open($db)));
- return $o;
- }
-
- method createStatement() {
- return DBDI::Statement::SQLite3.new(:connection(self));
- }
-
- method prepareStatement($sql) {
- my $sth := SQLite::prepare($.dbHandle, $sql);
- my $p = DBDI::PreparedStatement::SQLite3.new(:connection(self), :sql($sql), :stHandle($sth));
- return $p;
- }
-}
-
-class DBDI::Statement::SQLite3 is DBDI::Statement {
- has $connection;
-
- method executeQuery($sql) {
- my $temp_statement = $connection.prepareStatement($sql);
- return DBDI::ResultSet.new(:statement($temp_statement));
- }
-
- method executeUpdate($sql) {
- my $temp_statement = $connection.prepareStatement($sql);
- $temp_statement.next();
- $temp_statement.finalize();
- }
-}
-
-class DBDI::PreparedStatement::SQLite3 is DBDI::PreparedStatement {
- has $connection;
- has $stHandle;
- has @columns;
- has %columns;
- has @bind_params;
- has $!sql;
-
- method executeUpdate() {
- self.next();
- self.finalize();
- }
-
- my method errorCheck () {
- my $res = SQLite::errcode($connection.dbHandle);
- my $res_c = SQLite::errmsg($connection.dbHandle);
- if ($res > 0 and $res < 100) { die $res_c }
- return $res;
- }
-
- my method fillColumns () {
- # Won't work in any useful way at the moment
- my $cn; my $i =0;
- while ($cn = SQLite::column_name($stHandle, $i)) {
- %columns{$cn} = $i++;
- push @columns, $cn;
- }
- }
-
- method next () {
- SQLite::step($stHandle);
- if (! + at columns) { self!fillColumns(); }
- my $res = self!errorCheck();
- return $res == 100;
- }
- method finalize () {
- SQLite::finalize($stHandle);
- return self!errorCheck();
- }
-
- method bind($num, $data) {
- @bind_params[$num] = $data;
- SQLite::bind_text($stHandle, $num, $data, chars($data), -1);
- return self!errorCheck();
- }
-
- method lookupCol ($name) { return %columns{$name} // -1; }
-
- method getCol ($num) { return SQLite::column_text($stHandle, $num); }
-}
Deleted: branches/avl_string_cache/ext/SQLite3/Makefile.PL
==============================================================================
--- branches/avl_string_cache/ext/SQLite3/Makefile.PL Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,5 +0,0 @@
-use lib '../../lib';
-use Parrot::Configure;
-my $pc = Parrot::Configure->new();
-$pc->data->get_PConfig();
-$pc->genfile("Makefile.in" => "Makefile");
Deleted: branches/avl_string_cache/ext/SQLite3/Makefile.in
==============================================================================
--- branches/avl_string_cache/ext/SQLite3/Makefile.in Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,86 +0,0 @@
-# Copyright (C) 2001-2008, Parrot Foundation.
-
-TARGET_NAME = sqlite3s
-
-C_FILES = sqlite3s.c
-O_FILES = sqlite3s.o
-
-BUILDPREFIX =
-PARROT_ROOT = @build_dir@
-PREFIX = @prefix@
-EXEC_PREFIX = @exec_prefix@
-DESTDIR =
-BIN_DIR = @bindir@
-LIB_DIR = @libdir@
-INCLUDE_DIR = @includedir@
-DOC_DIR = @docdir@
-INC_DIR = @inc@
-RM_F = @rm_f@
-RM_RF = @rm_rf@
-AR_CR = @ar@ @ar_flags@
-RANLIB = @ranlib@
-PERL = @perl@
-CP = @cp@
-CHMOD = @chmod@
-TOUCH = @touch@
-YACC = @yacc@
-LEX = @lex@
-MKPATH = @mkpath@
-AS = @as@
-CC = @cc@
-CC_INC = @cc_inc@
-C_LIBS = @libs@
-CC_SHARED = @cc_shared@
-CFLAGS = $(CC_INC) @ccflags@ @cc_debug@ @ccwarn@ @cc_hasjit@ @cg_flag@ @gc_flag@ $(CC_SHARED)
-LINK_DYNAMIC = @link_dynamic@
-LINK = @link@
-LINKFLAGS = @linkflags@ @link_debug@ @ld_debug@
-LD = @ld@
-LDFLAGS = @ldflags@ @ld_debug@
-#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
-O = @o@
-EXE = @exe@
-SHARE_EXT = @share_ext@
-LOAD_EXT = @load_ext@
-A = @a@
-LD_SHARE_FLAGS = @ld_share_flags@
-LD_LOAD_FLAGS = @ld_load_flags@
-DYNEXT_DIR = runtime/parrot/dynext
-
- at make_set_make@
-MAKE = @make_c@
-SHARED_LIB = $(TARGET_NAME)$(SHARE_EXT)
-
-.SUFFIXES : .c .h .pmc .dump $(O) .str .pir .pbc
-
-# Passing an empty argument in @ARGV to cc_flags.pl to indicate where extra -Is
-# (etc) should go. Otherwise it will insert them after the first space, which
-# makes life go horribly wrong if $(CC) contains spaces but can't have -I
-# arguments (etc) injected in the middle.
-# There is probably a better way to do this, but I can't work it out right now.
-.c$(O) :
- @$(CC) "" $(CFLAGS) -I$(@D) @cc_o_out@$@ -c $<
-
-PERL6=../../parrot ../../languages/rakudo/perl6.pbc
-
-all :
- cd ../..; make all
- cd ../../compilers/ncigen; $(PERL6) ../../ext/SQLite3/gen_sqlite3.pl /usr/include/sqlite3.h > ../../ext/SQLite3/genSQLite3.pir
-
-test:
- $(RM_F) test.db t/test.db
- PERL6LIB=../../languages/rakudo $(PERL6) t/test.p6
-
-$(SHARED_LIB) : $(C_FILES)
- $(MKPATH) @blib_dir@
- $(CC) $(CC_INC) $(LD_SHARE_FLAGS) $(LDFLAGS) @ld_out@$@ \
-#IF(cygwin): -Wl,--out-implib=lib$(TARGET_NAME).dll.a \
-#IF(win32 and cc==gcc): -Wl,--out-implib=lib$(TARGET_NAME).lib \
- $(C_FILES) $(C_LIBS) $(ICU_SHARED)
-#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
-
-
-clean :
- $(RM_F) $(SHARED_LIB) @blib_dir@ $(O_FILES) Makefile
-#IF(cygwin): $(RM_F) lib$(TARGET_NAME).dll.a
-#IF(win32 and cc==gcc): $(RM_F) lib$(TARGET_NAME).lib
Deleted: branches/avl_string_cache/ext/SQLite3/SQLite3.pir
==============================================================================
--- branches/avl_string_cache/ext/SQLite3/SQLite3.pir Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,135 +0,0 @@
-# Copyright (C) 2008-2009, Parrot Foundation.
-# $Id$
-
-.namespace ['SQLite3']
-
-.const int SQLITE_OK = 0 # Successful result
-# beginning-of-error-codes
-.const int SQLITE_ERROR = 1 # SQL error or missing database
-.const int SQLITE_INTERNAL = 2 # Internal logic error in SQLite
-.const int SQLITE_PERM = 3 # Access permission denied
-.const int SQLITE_ABORT = 4 # Callback routine requested an abort
-.const int SQLITE_BUSY = 5 # The database file is locked
-.const int SQLITE_LOCKED = 6 # A table in the database is locked
-.const int SQLITE_NOMEM = 7 # A malloc() failed
-.const int SQLITE_READONLY = 8 # Attempt to write a readonly database
-.const int SQLITE_INTERRUPT = 9 # Operation terminated by sqlite3_interrupt()
-.const int SQLITE_IOERR = 10 # Some kind of disk I/O error occurred
-.const int SQLITE_CORRUPT = 11 # The database disk image is malformed
-.const int SQLITE_NOTFOUND = 12 # NOT USED. Table or record not found
-.const int SQLITE_FULL = 13 # Insertion failed because database is full
-.const int SQLITE_CANTOPEN = 14 # Unable to open the database file
-.const int SQLITE_PROTOCOL = 15 # NOT USED. Database lock protocol error
-.const int SQLITE_EMPTY = 16 # Database is empty
-.const int SQLITE_SCHEMA = 17 # The database schema changed
-.const int SQLITE_TOOBIG = 18 # String or BLOB exceeds size limit
-.const int SQLITE_CONSTRAINT = 19 # Abort due to constraint violation
-.const int SQLITE_MISMATCH = 20 # Data type mismatch
-.const int SQLITE_MISUSE = 21 # Library used incorrectly
-.const int SQLITE_NOLFS = 22 # Uses OS features not supported on host
-.const int SQLITE_AUTH = 23 # Authorization denied
-.const int SQLITE_FORMAT = 24 # Auxiliary database format error
-.const int SQLITE_RANGE = 25 # 2nd parameter to sqlite3_bind out of range
-.const int SQLITE_NOTADB = 26 # File opened that is not a database file
-.const int SQLITE_ROW = 100 # sqlite3_step() has another row ready
-.const int SQLITE_DONE = 101 # sqlite3_step() has finished executing
-
-.sub '_sqlite_init' :load
- .local pmc libname
- .local pmc function
- .local pmc sqlite_funcs
-
- libname = loadlib 'libsqlite3'
- set_global '_sqlite3', libname
-
- sqlite_funcs = new 'ResizableStringArray'
- push sqlite_funcs, 'step'
- push sqlite_funcs, 'ip'
- push sqlite_funcs, 'finalize'
- push sqlite_funcs, 'ip'
- push sqlite_funcs, 'close'
- push sqlite_funcs, 'ip'
- push sqlite_funcs, 'errmsg'
- push sqlite_funcs, 'tp'
- push sqlite_funcs, 'errcode'
- push sqlite_funcs, 'ip'
- push sqlite_funcs, 'bind_int'
- push sqlite_funcs, 'ipii'
- push sqlite_funcs, 'bind_double'
- push sqlite_funcs, 'ipid'
- push sqlite_funcs, 'bind_text'
- push sqlite_funcs, 'ipitii'
- push sqlite_funcs, 'column_name'
- push sqlite_funcs, 'tpi'
- push sqlite_funcs, 'column_count'
- push sqlite_funcs, 'ip'
- push sqlite_funcs, 'column_type'
- push sqlite_funcs, 'ipi'
- push sqlite_funcs, 'column_int'
- push sqlite_funcs, 'ipi'
- push sqlite_funcs, 'column_double'
- push sqlite_funcs, 'lpi'
- push sqlite_funcs, 'column_text'
- push sqlite_funcs, 'tpi'
-
- function = dlfunc libname, 'sqlite3_open', 'itV'
- set_global 'open_raw', function
-
- function = dlfunc libname, 'sqlite3_prepare_v2', 'iptiVp'
- set_global 'prepare_raw', function
-
- .local pmc list_iter
- list_iter = iter sqlite_funcs
- .local string func_name, signature
- .local pmc function
-
- list_loop:
- unless list_iter goto done
- func_name = shift list_iter
- signature = shift list_iter
- $S0 = concat 'sqlite3_', func_name
- function = dlfunc libname, $S0, signature
- set_global func_name, function
- goto list_loop
-
- done:
-
-.end
-
-.sub 'open'
- .param string connectstr
- .local pmc dbhandle
- .local pmc open_raw
- .local int rc
-
- open_raw = get_global 'open_raw'
- dbhandle = new 'Pointer'
- rc = open_raw(connectstr, dbhandle)
-
- .return(dbhandle)
-.end
-
-.sub 'prepare'
- .param pmc dbhandle
- .param string psstr
- .local int psstrlen
- .local pmc pshandle
- .local pmc dummy
- .local pmc prepare_raw
- .local int rc
-
- prepare_raw = get_global 'prepare_raw'
-
- pshandle = new 'Pointer'
- dummy = new 'Pointer'
- psstrlen = length psstr
- rc = prepare_raw(dbhandle, psstr, psstrlen, pshandle, dummy)
-
- .return(pshandle)
-.end
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
Deleted: branches/avl_string_cache/ext/SQLite3/gen_sqlite3.pl
==============================================================================
--- branches/avl_string_cache/ext/SQLite3/gen_sqlite3.pl Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,139 +0,0 @@
-#!/home/tewk/srcs/parrot/perl6
-
-# $Id$
-# Copyright (C) 2008, Parrot Foundation.
-
-use v6;
-use NCIGENP6;
-
-my $fn = @*ARGS[0];
-
-my %rename_table = (
- 'open' => 'open_raw',
- 'prepare_v2' => 'prepare_raw',
-);
-
-print preamble();
-
-for (parse_ast($fn).hash().kv) -> $k,$v {
- #dump_node($v);
- if ($v.WHAT eq "NCIGENAST::FuncDecl()") {
- my @result = pir($v);
- my $cname = @result[0];
- my $signature = @result[1];
- my $source = @result[2];
- my $suffix_name = @result[0];
- $suffix_name .= subst( /sqlite3_/, '' );
-
- my $pirname = %rename_table{$suffix_name} || $suffix_name;
-
- say " '_nci_init_symbol_'(lib, '$pirname', '$cname', '$signature')";
- }
-}
-print postamble();
-
-sub preamble() {
-qq{
-##GENERATED FILE DO NOT EDIT##
-##GENERATED BY gen_sqlite3.pl##
-.namespace ['SQLite3']
-
-.const int SQLITE_OK = 0 # Successful result
-# beginning-of-error-codes
-.const int SQLITE_ERROR = 1 # SQL error or missing database
-.const int SQLITE_INTERNAL = 2 # Internal logic error in SQLite
-.const int SQLITE_PERM = 3 # Access permission denied
-.const int SQLITE_ABORT = 4 # Callback routine requested an abort
-.const int SQLITE_BUSY = 5 # The database file is locked
-.const int SQLITE_LOCKED = 6 # A table in the database is locked
-.const int SQLITE_NOMEM = 7 # A malloc() failed
-.const int SQLITE_READONLY = 8 # Attempt to write a readonly database
-.const int SQLITE_INTERRUPT = 9 # Operation terminated by sqlite3_interrupt()
-.const int SQLITE_IOERR = 10 # Some kind of disk I/O error occurred
-.const int SQLITE_CORRUPT = 11 # The database disk image is malformed
-.const int SQLITE_NOTFOUND = 12 # NOT USED. Table or record not found
-.const int SQLITE_FULL = 13 # Insertion failed because database is full
-.const int SQLITE_CANTOPEN = 14 # Unable to open the database file
-.const int SQLITE_PROTOCOL = 15 # NOT USED. Database lock protocol error
-.const int SQLITE_EMPTY = 16 # Database is empty
-.const int SQLITE_SCHEMA = 17 # The database schema changed
-.const int SQLITE_TOOBIG = 18 # String or BLOB exceeds size limit
-.const int SQLITE_CONSTRAINT = 19 # Abort due to constraint violation
-.const int SQLITE_MISMATCH = 20 # Data type mismatch
-.const int SQLITE_MISUSE = 21 # Library used incorrectly
-.const int SQLITE_NOLFS = 22 # Uses OS features not supported on host
-.const int SQLITE_AUTH = 23 # Authorization denied
-.const int SQLITE_FORMAT = 24 # Auxiliary database format error
-.const int SQLITE_RANGE = 25 # 2nd parameter to sqlite3_bind out of range
-.const int SQLITE_NOTADB = 26 # File opened that is not a database file
-.const int SQLITE_ROW = 100 # sqlite3_step() has another row ready
-.const int SQLITE_DONE = 101 # sqlite3_step() has finished executing
-
-.sub '_nci_init_symbol_'
- .param pmc lib
- .param string pirname
- .param string cname
- .param string signature
- .local pmc function
-
- function = dlfunc lib, cname, signature
- set_global pirname, function
-.end
-
-.sub '_sqlite_init' :load
- .local pmc lib
-
- lib = loadlib 'libsqlite3'
- set_global '_sqlite3', lib
-};
-}
-
-sub postamble () {
-qq{.end
-
-.sub 'open'
- .param string connectstr
- .local pmc dbhandle
- .local pmc open_raw
- .local int rc
-
- open_raw = get_global 'open_raw'
- dbhandle = new 'Pointer'
- rc = open_raw(connectstr, dbhandle)
-
- .return(dbhandle)
-.end
-
-.sub 'prepare'
- .param pmc dbhandle
- .param string psstr
- .local int psstrlen
- .local pmc pshandle
- .local pmc dummy
- .local pmc prepare_raw
- .local int rc
-
- prepare_raw = get_global 'prepare_raw'
-
- pshandle = new 'Pointer'
- dummy = new 'Pointer'
- psstrlen = length psstr
- rc = prepare_raw(dbhandle, psstr, psstrlen, pshandle, dummy)
-
- .return(pshandle)
-.end
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
-};
-}
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=perl6:
-
Deleted: branches/avl_string_cache/ext/SQLite3/t/test.p6
==============================================================================
--- branches/avl_string_cache/ext/SQLite3/t/test.p6 Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,35 +0,0 @@
-use DBDI;
-use Test;
-
-plan 7;
-
-my $conn = DBDI::DriverManager.getConnection("dbdi:SQLite3:test.db", "", "");
-isa_ok($conn, DBDI::Driver::SQLite3);
-my $stm = $conn.createStatement();
-isa_ok($stm, DBDI::Statement);
-my $rs = $stm.executeUpdate("CREATE TABLE foo (bar, baz)");
-### I'd also add a test that a SELECT works and returns 0 rows
-
-try {
- $rs = $stm.executeUpdate("CREATE TABLE foo (bar, baz)");
-};
-ok($! eq "table foo already exists", "Can't create again (and did create first time)");
-my $stm = $conn.prepareStatement("INSERT INTO foo (bar, baz) VALUES (?, ?)");
-isa_ok( $stm, DBDI::PreparedStatement);
-$stm.bind(1, 123);
-$stm.bind(2, "Thingy");
-$stm.executeUpdate();
-### is( $stm->rowsAffected, 1, 'Inserted one row' );
-
-my $stm2 = $conn.createStatement();
-my $rs = $stm2.executeQuery("SELECT baz, bar FROM foo");
-while ($rs.next()) {
- ok(($rs.getCol("baz") eq "Thingy"), "baz == Thingy");
- ok(($rs.getCol(1) = 123), "col1 == 123");
- try {
- $rs.getCol("bas");
- };
- ok($! eq "Couldn't find column bas", "Non-existent columns");
-}
-
-# vim: ft=perl6:
Deleted: branches/avl_string_cache/ext/SQLite3/test.pir
==============================================================================
--- branches/avl_string_cache/ext/SQLite3/test.pir Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,25 +0,0 @@
-#../../parrot -t5 test.pir
-# Copyright (C) 2008-2009, Parrot Foundation.
-# $Id$
-
-.sub 'main'
-load_bytecode 'SQLite3.pir'
-
-$P0 = get_global [ 'SQLite' ], 'open'
-$P1 = $P0("test.db")
-
-$P2 = get_global [ 'SQLite' ], 'prepare'
-$P3 = $P2 ($P1, "CREATE TABLE foo (bar)")
-
-$P4 = get_global [ 'SQLite' ], 'step'
-$P5 = $P4 ($P3)
-
-$P6 = get_global [ 'SQLite' ], 'finalize'
-$P7 = $P6 ($P3)
-.end
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
Deleted: branches/avl_string_cache/ext/nqp-rx/.gitignore
==============================================================================
--- branches/avl_string_cache/ext/nqp-rx/.gitignore Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,15 +0,0 @@
-Makefile
-/parrot
-/parrot_install
-.*.swp
-*.c
-*.o
-Regex.pbc
-HLL.pbc
-P6Regex
-P6Regex.pbc
-nqp
-nqp.pbc
-src/gen/*.pir
-src/stage1
-src/stage2
Modified: branches/avl_string_cache/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- branches/avl_string_cache/ext/nqp-rx/src/stage0/HLL-s0.pir Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/ext/nqp-rx/src/stage0/HLL-s0.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -854,111 +854,119 @@
### .include 'gen/hllgrammar-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1267204683.33533")
+.sub "_block11" :anon :subid("10_1271336377.56964")
.annotate "line", 0
get_hll_global $P14, ["HLL";"Grammar"], "_block13"
capture_lex $P14
.annotate "line", 5
get_hll_global $P14, ["HLL";"Grammar"], "_block13"
capture_lex $P14
- $P296 = $P14()
+ $P344 = $P14()
.annotate "line", 1
- .return ($P296)
+ .return ($P344)
.end
.namespace []
-.sub "" :load :init :subid("post94") :outer("10_1267204683.33533")
+.sub "" :load :init :subid("post105") :outer("10_1271336377.56964")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1267204683.33533"
+ .const 'Sub' $P12 = "10_1271336377.56964"
.local pmc block
set block, $P12
- $P297 = get_root_global ["parrot"], "P6metaclass"
- $P297."new_class"("HLL::Grammar", "Regex::Cursor" :named("parent"))
+ $P345 = get_root_global ["parrot"], "P6metaclass"
+ $P345."new_class"("HLL::Grammar", "Regex::Cursor" :named("parent"))
.end
.namespace ["HLL";"Grammar"]
-.sub "_block13" :subid("11_1267204683.33533") :outer("10_1267204683.33533")
+.sub "_block13" :subid("11_1271336377.56964") :outer("10_1271336377.56964")
.annotate "line", 5
- .const 'Sub' $P286 = "92_1267204683.33533"
- capture_lex $P286
- .const 'Sub' $P279 = "90_1267204683.33533"
- capture_lex $P279
- .const 'Sub' $P266 = "87_1267204683.33533"
- capture_lex $P266
- .const 'Sub' $P261 = "85_1267204683.33533"
- capture_lex $P261
- .const 'Sub' $P255 = "83_1267204683.33533"
- capture_lex $P255
- .const 'Sub' $P249 = "81_1267204683.33533"
+ .const 'Sub' $P334 = "103_1271336377.56964"
+ capture_lex $P334
+ .const 'Sub' $P327 = "101_1271336377.56964"
+ capture_lex $P327
+ .const 'Sub' $P314 = "98_1271336377.56964"
+ capture_lex $P314
+ .const 'Sub' $P282 = "93_1271336377.56964"
+ capture_lex $P282
+ .const 'Sub' $P276 = "91_1271336377.56964"
+ capture_lex $P276
+ .const 'Sub' $P271 = "89_1271336377.56964"
+ capture_lex $P271
+ .const 'Sub' $P265 = "87_1271336377.56964"
+ capture_lex $P265
+ .const 'Sub' $P259 = "85_1271336377.56964"
+ capture_lex $P259
+ .const 'Sub' $P254 = "83_1271336377.56964"
+ capture_lex $P254
+ .const 'Sub' $P249 = "81_1271336377.56964"
capture_lex $P249
- .const 'Sub' $P244 = "79_1267204683.33533"
+ .const 'Sub' $P244 = "79_1271336377.56964"
capture_lex $P244
- .const 'Sub' $P239 = "77_1267204683.33533"
+ .const 'Sub' $P239 = "77_1271336377.56964"
capture_lex $P239
- .const 'Sub' $P234 = "75_1267204683.33533"
+ .const 'Sub' $P234 = "75_1271336377.56964"
capture_lex $P234
- .const 'Sub' $P229 = "73_1267204683.33533"
+ .const 'Sub' $P229 = "73_1271336377.56964"
capture_lex $P229
- .const 'Sub' $P224 = "71_1267204683.33533"
+ .const 'Sub' $P224 = "71_1271336377.56964"
capture_lex $P224
- .const 'Sub' $P219 = "69_1267204683.33533"
+ .const 'Sub' $P219 = "69_1271336377.56964"
capture_lex $P219
- .const 'Sub' $P208 = "65_1267204683.33533"
+ .const 'Sub' $P208 = "65_1271336377.56964"
capture_lex $P208
- .const 'Sub' $P195 = "63_1267204683.33533"
+ .const 'Sub' $P195 = "63_1271336377.56964"
capture_lex $P195
- .const 'Sub' $P183 = "61_1267204683.33533"
+ .const 'Sub' $P183 = "61_1271336377.56964"
capture_lex $P183
- .const 'Sub' $P176 = "59_1267204683.33533"
+ .const 'Sub' $P176 = "59_1271336377.56964"
capture_lex $P176
- .const 'Sub' $P167 = "57_1267204683.33533"
+ .const 'Sub' $P167 = "57_1271336377.56964"
capture_lex $P167
- .const 'Sub' $P160 = "55_1267204683.33533"
+ .const 'Sub' $P160 = "55_1271336377.56964"
capture_lex $P160
- .const 'Sub' $P151 = "53_1267204683.33533"
+ .const 'Sub' $P151 = "53_1271336377.56964"
capture_lex $P151
- .const 'Sub' $P144 = "51_1267204683.33533"
+ .const 'Sub' $P144 = "51_1271336377.56964"
capture_lex $P144
- .const 'Sub' $P135 = "49_1267204683.33533"
+ .const 'Sub' $P135 = "49_1271336377.56964"
capture_lex $P135
- .const 'Sub' $P128 = "47_1267204683.33533"
+ .const 'Sub' $P128 = "47_1271336377.56964"
capture_lex $P128
- .const 'Sub' $P121 = "45_1267204683.33533"
+ .const 'Sub' $P121 = "45_1271336377.56964"
capture_lex $P121
- .const 'Sub' $P111 = "43_1267204683.33533"
+ .const 'Sub' $P111 = "43_1271336377.56964"
capture_lex $P111
- .const 'Sub' $P103 = "41_1267204683.33533"
+ .const 'Sub' $P103 = "41_1271336377.56964"
capture_lex $P103
- .const 'Sub' $P93 = "40_1267204683.33533"
+ .const 'Sub' $P93 = "40_1271336377.56964"
capture_lex $P93
- .const 'Sub' $P87 = "38_1267204683.33533"
+ .const 'Sub' $P87 = "38_1271336377.56964"
capture_lex $P87
- .const 'Sub' $P82 = "36_1267204683.33533"
+ .const 'Sub' $P82 = "36_1271336377.56964"
capture_lex $P82
- .const 'Sub' $P74 = "34_1267204683.33533"
+ .const 'Sub' $P74 = "34_1271336377.56964"
capture_lex $P74
- .const 'Sub' $P68 = "32_1267204683.33533"
+ .const 'Sub' $P68 = "32_1271336377.56964"
capture_lex $P68
- .const 'Sub' $P62 = "30_1267204683.33533"
+ .const 'Sub' $P62 = "30_1271336377.56964"
capture_lex $P62
- .const 'Sub' $P56 = "28_1267204683.33533"
+ .const 'Sub' $P56 = "28_1271336377.56964"
capture_lex $P56
- .const 'Sub' $P23 = "14_1267204683.33533"
+ .const 'Sub' $P23 = "14_1271336377.56964"
capture_lex $P23
- .const 'Sub' $P15 = "12_1267204683.33533"
+ .const 'Sub' $P15 = "12_1271336377.56964"
capture_lex $P15
.annotate "line", 33
- .const 'Sub' $P286 = "92_1267204683.33533"
- capture_lex $P286
+ .const 'Sub' $P334 = "103_1271336377.56964"
+ capture_lex $P334
.annotate "line", 5
- .return ($P286)
+ .return ($P334)
.end
.namespace ["HLL";"Grammar"]
-.sub "ws" :subid("12_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "ws" :subid("12_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 5
.local string rx16_tgt
.local int rx16_pos
@@ -1042,7 +1050,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws" :subid("13_1267204683.33533") :method
+.sub "!PREFIX__ws" :subid("13_1271336377.56964") :method
.annotate "line", 5
new $P18, "ResizablePMCArray"
push $P18, ""
@@ -1051,7 +1059,7 @@
.namespace ["HLL";"Grammar"]
-.sub "termish" :subid("14_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "termish" :subid("14_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 5
.local string rx24_tgt
.local int rx24_pos
@@ -1061,7 +1069,7 @@
.local pmc rx24_cur
(rx24_cur, rx24_pos, rx24_tgt) = self."!cursor_start"()
rx24_cur."!cursor_debug"("START ", "termish")
- rx24_cur."!cursor_caparray"("prefixish", "postfixish")
+ rx24_cur."!cursor_caparray"("postfixish", "prefixish")
.lex unicode:"$\x{a2}", rx24_cur
.local pmc match
.lex "$/", match
@@ -1143,7 +1151,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish" :subid("15_1267204683.33533") :method
+.sub "!PREFIX__termish" :subid("15_1271336377.56964") :method
.annotate "line", 5
new $P26, "ResizablePMCArray"
push $P26, ""
@@ -1152,7 +1160,7 @@
.namespace ["HLL";"Grammar"]
-.sub "term" :subid("16_1267204683.33533") :method
+.sub "term" :subid("16_1271336377.56964") :method
.annotate "line", 13
$P33 = self."!protoregex"("term")
.return ($P33)
@@ -1160,7 +1168,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term" :subid("17_1267204683.33533") :method
+.sub "!PREFIX__term" :subid("17_1271336377.56964") :method
.annotate "line", 13
$P35 = self."!PREFIX__!protoregex"("term")
.return ($P35)
@@ -1168,7 +1176,7 @@
.namespace ["HLL";"Grammar"]
-.sub "infix" :subid("18_1267204683.33533") :method
+.sub "infix" :subid("18_1271336377.56964") :method
.annotate "line", 14
$P37 = self."!protoregex"("infix")
.return ($P37)
@@ -1176,7 +1184,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix" :subid("19_1267204683.33533") :method
+.sub "!PREFIX__infix" :subid("19_1271336377.56964") :method
.annotate "line", 14
$P39 = self."!PREFIX__!protoregex"("infix")
.return ($P39)
@@ -1184,7 +1192,7 @@
.namespace ["HLL";"Grammar"]
-.sub "prefix" :subid("20_1267204683.33533") :method
+.sub "prefix" :subid("20_1271336377.56964") :method
.annotate "line", 15
$P41 = self."!protoregex"("prefix")
.return ($P41)
@@ -1192,7 +1200,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix" :subid("21_1267204683.33533") :method
+.sub "!PREFIX__prefix" :subid("21_1271336377.56964") :method
.annotate "line", 15
$P43 = self."!PREFIX__!protoregex"("prefix")
.return ($P43)
@@ -1200,7 +1208,7 @@
.namespace ["HLL";"Grammar"]
-.sub "postfix" :subid("22_1267204683.33533") :method
+.sub "postfix" :subid("22_1271336377.56964") :method
.annotate "line", 16
$P45 = self."!protoregex"("postfix")
.return ($P45)
@@ -1208,7 +1216,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix" :subid("23_1267204683.33533") :method
+.sub "!PREFIX__postfix" :subid("23_1271336377.56964") :method
.annotate "line", 16
$P47 = self."!PREFIX__!protoregex"("postfix")
.return ($P47)
@@ -1216,7 +1224,7 @@
.namespace ["HLL";"Grammar"]
-.sub "circumfix" :subid("24_1267204683.33533") :method
+.sub "circumfix" :subid("24_1271336377.56964") :method
.annotate "line", 17
$P49 = self."!protoregex"("circumfix")
.return ($P49)
@@ -1224,7 +1232,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix" :subid("25_1267204683.33533") :method
+.sub "!PREFIX__circumfix" :subid("25_1271336377.56964") :method
.annotate "line", 17
$P51 = self."!PREFIX__!protoregex"("circumfix")
.return ($P51)
@@ -1232,7 +1240,7 @@
.namespace ["HLL";"Grammar"]
-.sub "postcircumfix" :subid("26_1267204683.33533") :method
+.sub "postcircumfix" :subid("26_1271336377.56964") :method
.annotate "line", 18
$P53 = self."!protoregex"("postcircumfix")
.return ($P53)
@@ -1240,7 +1248,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix" :subid("27_1267204683.33533") :method
+.sub "!PREFIX__postcircumfix" :subid("27_1271336377.56964") :method
.annotate "line", 18
$P55 = self."!PREFIX__!protoregex"("postcircumfix")
.return ($P55)
@@ -1248,7 +1256,7 @@
.namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>" :subid("28_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "term:sym<circumfix>" :subid("28_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 5
.local string rx57_tgt
.local int rx57_pos
@@ -1306,7 +1314,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>" :subid("29_1267204683.33533") :method
+.sub "!PREFIX__term:sym<circumfix>" :subid("29_1271336377.56964") :method
.annotate "line", 5
$P59 = self."!PREFIX__!subrule"("circumfix", "")
new $P60, "ResizablePMCArray"
@@ -1316,7 +1324,7 @@
.namespace ["HLL";"Grammar"]
-.sub "infixish" :subid("30_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "infixish" :subid("30_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 5
.local string rx63_tgt
.local int rx63_pos
@@ -1374,7 +1382,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish" :subid("31_1267204683.33533") :method
+.sub "!PREFIX__infixish" :subid("31_1271336377.56964") :method
.annotate "line", 5
$P65 = self."!PREFIX__!subrule"("OPER=infix", "")
new $P66, "ResizablePMCArray"
@@ -1384,7 +1392,7 @@
.namespace ["HLL";"Grammar"]
-.sub "prefixish" :subid("32_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "prefixish" :subid("32_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 5
.local string rx69_tgt
.local int rx69_pos
@@ -1447,7 +1455,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish" :subid("33_1267204683.33533") :method
+.sub "!PREFIX__prefixish" :subid("33_1271336377.56964") :method
.annotate "line", 5
$P71 = self."!PREFIX__!subrule"("OPER=prefix", "")
new $P72, "ResizablePMCArray"
@@ -1457,7 +1465,7 @@
.namespace ["HLL";"Grammar"]
-.sub "postfixish" :subid("34_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "postfixish" :subid("34_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 5
.local string rx75_tgt
.local int rx75_pos
@@ -1531,7 +1539,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish" :subid("35_1267204683.33533") :method
+.sub "!PREFIX__postfixish" :subid("35_1271336377.56964") :method
.annotate "line", 5
$P77 = self."!PREFIX__!subrule"("OPER=postcircumfix", "")
$P78 = self."!PREFIX__!subrule"("OPER=postfix", "")
@@ -1543,7 +1551,7 @@
.namespace ["HLL";"Grammar"]
-.sub "nullterm" :subid("36_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "nullterm" :subid("36_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 5
.local string rx83_tgt
.local int rx83_pos
@@ -1594,7 +1602,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm" :subid("37_1267204683.33533") :method
+.sub "!PREFIX__nullterm" :subid("37_1271336377.56964") :method
.annotate "line", 5
new $P85, "ResizablePMCArray"
push $P85, ""
@@ -1603,7 +1611,7 @@
.namespace ["HLL";"Grammar"]
-.sub "nullterm_alt" :subid("38_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "nullterm_alt" :subid("38_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 5
.local string rx88_tgt
.local int rx88_pos
@@ -1661,7 +1669,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt" :subid("39_1267204683.33533") :method
+.sub "!PREFIX__nullterm_alt" :subid("39_1271336377.56964") :method
.annotate "line", 5
$P90 = self."!PREFIX__!subrule"("term", "")
new $P91, "ResizablePMCArray"
@@ -1671,7 +1679,7 @@
.namespace ["HLL";"Grammar"]
-.sub "nulltermish" :subid("40_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "nulltermish" :subid("40_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
new $P95, 'ExceptionHandler'
set_addr $P95, control_94
@@ -1698,7 +1706,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_delimited" :subid("41_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_delimited" :subid("41_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx104_tgt
.local int rx104_pos
@@ -1780,7 +1788,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited" :subid("42_1267204683.33533") :method
+.sub "!PREFIX__quote_delimited" :subid("42_1271336377.56964") :method
.annotate "line", 33
$P106 = self."!PREFIX__!subrule"("starter", "")
new $P107, "ResizablePMCArray"
@@ -1790,7 +1798,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_atom" :subid("43_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_atom" :subid("43_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx112_tgt
.local int rx112_pos
@@ -1881,7 +1889,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom" :subid("44_1267204683.33533") :method
+.sub "!PREFIX__quote_atom" :subid("44_1271336377.56964") :method
.annotate "line", 33
new $P114, "ResizablePMCArray"
push $P114, ""
@@ -1890,7 +1898,7 @@
.namespace ["HLL";"Grammar"]
-.sub "decint" :subid("45_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "decint" :subid("45_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx122_tgt
.local int rx122_pos
@@ -1962,7 +1970,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint" :subid("46_1267204683.33533") :method
+.sub "!PREFIX__decint" :subid("46_1271336377.56964") :method
.annotate "line", 33
new $P124, "ResizablePMCArray"
push $P124, ""
@@ -1971,7 +1979,7 @@
.namespace ["HLL";"Grammar"]
-.sub "hexints" :subid("47_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "decints" :subid("47_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx129_tgt
.local int rx129_pos
@@ -1980,7 +1988,7 @@
.local int rx129_rep
.local pmc rx129_cur
(rx129_cur, rx129_pos, rx129_tgt) = self."!cursor_start"()
- rx129_cur."!cursor_debug"("START ", "hexints")
+ rx129_cur."!cursor_debug"("START ", "decints")
rx129_cur."!cursor_caparray"("decint")
.lex unicode:"$\x{a2}", rx129_cur
.local pmc match
@@ -2037,8 +2045,8 @@
goto rxquantr133_loop
rxquantr133_done:
# rx pass
- rx129_cur."!cursor_pass"(rx129_pos, "hexints")
- rx129_cur."!cursor_debug"("PASS ", "hexints", " at pos=", rx129_pos)
+ 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
@@ -2048,14 +2056,14 @@
jump $I10
rx129_done:
rx129_cur."!cursor_fail"()
- rx129_cur."!cursor_debug"("FAIL ", "hexints")
+ rx129_cur."!cursor_debug"("FAIL ", "decints")
.return (rx129_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints" :subid("48_1267204683.33533") :method
+.sub "!PREFIX__decints" :subid("48_1271336377.56964") :method
.annotate "line", 33
new $P131, "ResizablePMCArray"
push $P131, ""
@@ -2064,7 +2072,7 @@
.namespace ["HLL";"Grammar"]
-.sub "hexint" :subid("49_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "hexint" :subid("49_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx136_tgt
.local int rx136_pos
@@ -2145,7 +2153,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint" :subid("50_1267204683.33533") :method
+.sub "!PREFIX__hexint" :subid("50_1271336377.56964") :method
.annotate "line", 33
new $P138, "ResizablePMCArray"
push $P138, ""
@@ -2154,7 +2162,7 @@
.namespace ["HLL";"Grammar"]
-.sub "hexints" :subid("51_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "hexints" :subid("51_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx145_tgt
.local int rx145_pos
@@ -2238,7 +2246,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints" :subid("52_1267204683.33533") :method
+.sub "!PREFIX__hexints" :subid("52_1271336377.56964") :method
.annotate "line", 33
new $P147, "ResizablePMCArray"
push $P147, ""
@@ -2247,7 +2255,7 @@
.namespace ["HLL";"Grammar"]
-.sub "octint" :subid("53_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "octint" :subid("53_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx152_tgt
.local int rx152_pos
@@ -2328,7 +2336,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint" :subid("54_1267204683.33533") :method
+.sub "!PREFIX__octint" :subid("54_1271336377.56964") :method
.annotate "line", 33
new $P154, "ResizablePMCArray"
push $P154, ""
@@ -2337,7 +2345,7 @@
.namespace ["HLL";"Grammar"]
-.sub "octints" :subid("55_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "octints" :subid("55_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx161_tgt
.local int rx161_pos
@@ -2421,7 +2429,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints" :subid("56_1267204683.33533") :method
+.sub "!PREFIX__octints" :subid("56_1271336377.56964") :method
.annotate "line", 33
new $P163, "ResizablePMCArray"
push $P163, ""
@@ -2430,7 +2438,7 @@
.namespace ["HLL";"Grammar"]
-.sub "binint" :subid("57_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "binint" :subid("57_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx168_tgt
.local int rx168_pos
@@ -2511,7 +2519,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint" :subid("58_1267204683.33533") :method
+.sub "!PREFIX__binint" :subid("58_1271336377.56964") :method
.annotate "line", 33
new $P170, "ResizablePMCArray"
push $P170, ""
@@ -2520,7 +2528,7 @@
.namespace ["HLL";"Grammar"]
-.sub "binints" :subid("59_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "binints" :subid("59_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx177_tgt
.local int rx177_pos
@@ -2604,7 +2612,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints" :subid("60_1267204683.33533") :method
+.sub "!PREFIX__binints" :subid("60_1271336377.56964") :method
.annotate "line", 33
new $P179, "ResizablePMCArray"
push $P179, ""
@@ -2613,7 +2621,7 @@
.namespace ["HLL";"Grammar"]
-.sub "integer" :subid("61_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "integer" :subid("61_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx184_tgt
.local int rx184_pos
@@ -2761,7 +2769,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer" :subid("62_1267204683.33533") :method
+.sub "!PREFIX__integer" :subid("62_1271336377.56964") :method
.annotate "line", 33
$P186 = self."!PREFIX__!subrule"("VALUE=decint", "")
$P187 = self."!PREFIX__!subrule"("VALUE=decint", "0d")
@@ -2779,7 +2787,7 @@
.namespace ["HLL";"Grammar"]
-.sub "dec_number" :subid("63_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "dec_number" :subid("63_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx196_tgt
.local int rx196_pos
@@ -2958,7 +2966,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number" :subid("64_1267204683.33533") :method
+.sub "!PREFIX__dec_number" :subid("64_1271336377.56964") :method
.annotate "line", 33
new $P198, "ResizablePMCArray"
push $P198, ""
@@ -2969,7 +2977,7 @@
.namespace ["HLL";"Grammar"]
-.sub "escale" :subid("65_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "escale" :subid("65_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx209_tgt
.local int rx209_pos
@@ -3046,7 +3054,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale" :subid("66_1267204683.33533") :method
+.sub "!PREFIX__escale" :subid("66_1271336377.56964") :method
.annotate "line", 33
new $P211, "ResizablePMCArray"
push $P211, "e"
@@ -3056,7 +3064,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape" :subid("67_1267204683.33533") :method
+.sub "quote_escape" :subid("67_1271336377.56964") :method
.annotate "line", 79
$P216 = self."!protoregex"("quote_escape")
.return ($P216)
@@ -3064,7 +3072,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape" :subid("68_1267204683.33533") :method
+.sub "!PREFIX__quote_escape" :subid("68_1271336377.56964") :method
.annotate "line", 79
$P218 = self."!PREFIX__!protoregex"("quote_escape")
.return ($P218)
@@ -3072,7 +3080,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<backslash>" :subid("69_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<backslash>" :subid("69_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx220_tgt
.local int rx220_pos
@@ -3134,7 +3142,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>" :subid("70_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<backslash>" :subid("70_1271336377.56964") :method
.annotate "line", 33
new $P222, "ResizablePMCArray"
push $P222, "\\\\"
@@ -3143,7 +3151,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<stopper>" :subid("71_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<stopper>" :subid("71_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx225_tgt
.local int rx225_pos
@@ -3212,7 +3220,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>" :subid("72_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<stopper>" :subid("72_1271336377.56964") :method
.annotate "line", 33
new $P227, "ResizablePMCArray"
push $P227, "\\"
@@ -3221,7 +3229,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<bs>" :subid("73_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<bs>" :subid("73_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx230_tgt
.local int rx230_pos
@@ -3283,7 +3291,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>" :subid("74_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<bs>" :subid("74_1271336377.56964") :method
.annotate "line", 33
new $P232, "ResizablePMCArray"
push $P232, "\\b"
@@ -3292,7 +3300,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<nl>" :subid("75_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<nl>" :subid("75_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx235_tgt
.local int rx235_pos
@@ -3354,7 +3362,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>" :subid("76_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<nl>" :subid("76_1271336377.56964") :method
.annotate "line", 33
new $P237, "ResizablePMCArray"
push $P237, "\\n"
@@ -3363,7 +3371,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<cr>" :subid("77_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<cr>" :subid("77_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx240_tgt
.local int rx240_pos
@@ -3425,7 +3433,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>" :subid("78_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<cr>" :subid("78_1271336377.56964") :method
.annotate "line", 33
new $P242, "ResizablePMCArray"
push $P242, "\\r"
@@ -3434,7 +3442,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<tab>" :subid("79_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<tab>" :subid("79_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx245_tgt
.local int rx245_pos
@@ -3496,7 +3504,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>" :subid("80_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<tab>" :subid("80_1271336377.56964") :method
.annotate "line", 33
new $P247, "ResizablePMCArray"
push $P247, "\\t"
@@ -3505,7 +3513,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<hex>" :subid("81_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<ff>" :subid("81_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
.local string rx250_tgt
.local int rx250_pos
@@ -3514,7 +3522,7 @@
.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<hex>")
+ rx250_cur."!cursor_debug"("START ", "quote_escape:sym<ff>")
.lex unicode:"$\x{a2}", rx250_cur
.local pmc match
.lex "$/", match
@@ -3536,57 +3544,21 @@
set_addr $I10, rxscan253_loop
rx250_cur."!mark_push"(0, rx250_pos, $I10)
rxscan253_done:
-.annotate "line", 88
- # rx literal unicode:"\\x"
+.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, unicode:"\\x", rx250_fail
+ ne $S10, "\\f", rx250_fail
add rx250_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
- alt254_0:
-.annotate "line", 89
- set_addr $I10, alt254_1
- rx250_cur."!mark_push"(0, rx250_pos, $I10)
- # rx subrule "hexint" subtype=capture negate=
- rx250_cur."!cursor_pos"(rx250_pos)
- $P10 = rx250_cur."hexint"()
- unless $P10, rx250_fail
- rx250_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("hexint")
- rx250_pos = $P10."pos"()
- goto alt254_end
- alt254_1:
- # rx literal "["
- add $I11, rx250_pos, 1
- gt $I11, rx250_eos, rx250_fail
- sub $I11, rx250_pos, rx250_off
- substr $S10, rx250_tgt, $I11, 1
- ne $S10, "[", rx250_fail
- add rx250_pos, 1
- # rx subrule "hexints" subtype=capture negate=
- rx250_cur."!cursor_pos"(rx250_pos)
- $P10 = rx250_cur."hexints"()
- unless $P10, rx250_fail
- rx250_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("hexints")
- rx250_pos = $P10."pos"()
- # rx literal "]"
- add $I11, rx250_pos, 1
- gt $I11, rx250_eos, rx250_fail
- sub $I11, rx250_pos, rx250_off
- substr $S10, rx250_tgt, $I11, 1
- ne $S10, "]", rx250_fail
- add rx250_pos, 1
- alt254_end:
-.annotate "line", 87
# rx pass
- rx250_cur."!cursor_pass"(rx250_pos, "quote_escape:sym<hex>")
- rx250_cur."!cursor_debug"("PASS ", "quote_escape:sym<hex>", " at pos=", rx250_pos)
+ 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
@@ -3596,376 +3568,387 @@
jump $I10
rx250_done:
rx250_cur."!cursor_fail"()
- rx250_cur."!cursor_debug"("FAIL ", "quote_escape:sym<hex>")
+ rx250_cur."!cursor_debug"("FAIL ", "quote_escape:sym<ff>")
.return (rx250_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>" :subid("82_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<ff>" :subid("82_1271336377.56964") :method
.annotate "line", 33
new $P252, "ResizablePMCArray"
- push $P252, unicode:"\\x"
+ push $P252, "\\f"
.return ($P252)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<oct>" :subid("83_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<esc>" :subid("83_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
- .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 ", "quote_escape:sym<oct>")
- .lex unicode:"$\x{a2}", rx256_cur
+ .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 pmc match
.lex "$/", match
- length rx256_eos, rx256_tgt
- set rx256_off, 0
- lt rx256_pos, 2, rx256_start
- sub rx256_off, rx256_pos, 1
- substr rx256_tgt, rx256_tgt, rx256_off
- rx256_start:
+ length rx255_eos, rx255_tgt
+ set rx255_off, 0
+ lt rx255_pos, 2, rx255_start
+ sub rx255_off, rx255_pos, 1
+ substr rx255_tgt, rx255_tgt, rx255_off
+ rx255_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan259_done
- goto rxscan259_scan
- rxscan259_loop:
- ($P10) = rx256_cur."from"()
+ ne $I10, -1, rxscan258_done
+ goto rxscan258_scan
+ rxscan258_loop:
+ ($P10) = rx255_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", 92
- # rx literal "\\o"
- add $I11, rx256_pos, 2
- gt $I11, rx256_eos, rx256_fail
- sub $I11, rx256_pos, rx256_off
- substr $S10, rx256_tgt, $I11, 2
- ne $S10, "\\o", rx256_fail
- add rx256_pos, 2
+ 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:
+.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
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx256_cur."!cursor_pos"(rx256_pos)
- $P10 = rx256_cur."quotemod_check"("b")
- unless $P10, rx256_fail
- alt260_0:
-.annotate "line", 93
- set_addr $I10, alt260_1
- rx256_cur."!mark_push"(0, rx256_pos, $I10)
- # rx subrule "octint" subtype=capture negate=
- rx256_cur."!cursor_pos"(rx256_pos)
- $P10 = rx256_cur."octint"()
- unless $P10, rx256_fail
- rx256_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("octint")
- rx256_pos = $P10."pos"()
- goto alt260_end
- alt260_1:
+ rx255_cur."!cursor_pos"(rx255_pos)
+ $P10 = rx255_cur."quotemod_check"("b")
+ unless $P10, rx255_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
+ jump $I10
+ rx255_done:
+ rx255_cur."!cursor_fail"()
+ rx255_cur."!cursor_debug"("FAIL ", "quote_escape:sym<esc>")
+ .return (rx255_cur)
+ .return ()
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "!PREFIX__quote_escape:sym<esc>" :subid("84_1271336377.56964") :method
+.annotate "line", 33
+ new $P257, "ResizablePMCArray"
+ push $P257, "\\e"
+ .return ($P257)
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "quote_escape:sym<hex>" :subid("85_1271336377.56964") :method :outer("11_1271336377.56964")
+.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 pmc match
+ .lex "$/", match
+ length rx260_eos, rx260_tgt
+ set rx260_off, 0
+ lt rx260_pos, 2, rx260_start
+ sub rx260_off, rx260_pos, 1
+ substr rx260_tgt, rx260_tgt, rx260_off
+ rx260_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan263_done
+ goto rxscan263_scan
+ rxscan263_loop:
+ ($P10) = rx260_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", 90
+ # rx literal unicode:"\\x"
+ add $I11, rx260_pos, 2
+ gt $I11, rx260_eos, rx260_fail
+ sub $I11, rx260_pos, rx260_off
+ substr $S10, rx260_tgt, $I11, 2
+ ne $S10, unicode:"\\x", rx260_fail
+ add rx260_pos, 2
+ # rx subrule "quotemod_check" subtype=zerowidth negate=
+ rx260_cur."!cursor_pos"(rx260_pos)
+ $P10 = rx260_cur."quotemod_check"("b")
+ unless $P10, rx260_fail
+ alt264_0:
+.annotate "line", 91
+ set_addr $I10, alt264_1
+ rx260_cur."!mark_push"(0, rx260_pos, $I10)
+ # rx subrule "hexint" subtype=capture negate=
+ rx260_cur."!cursor_pos"(rx260_pos)
+ $P10 = rx260_cur."hexint"()
+ unless $P10, rx260_fail
+ rx260_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("hexint")
+ rx260_pos = $P10."pos"()
+ goto alt264_end
+ alt264_1:
# rx literal "["
- add $I11, rx256_pos, 1
- gt $I11, rx256_eos, rx256_fail
- sub $I11, rx256_pos, rx256_off
- substr $S10, rx256_tgt, $I11, 1
- ne $S10, "[", rx256_fail
- add rx256_pos, 1
- # rx subrule "octints" subtype=capture negate=
- rx256_cur."!cursor_pos"(rx256_pos)
- $P10 = rx256_cur."octints"()
- unless $P10, rx256_fail
- rx256_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("octints")
- rx256_pos = $P10."pos"()
+ add $I11, rx260_pos, 1
+ gt $I11, rx260_eos, rx260_fail
+ sub $I11, rx260_pos, rx260_off
+ substr $S10, rx260_tgt, $I11, 1
+ ne $S10, "[", rx260_fail
+ add rx260_pos, 1
+ # rx subrule "hexints" subtype=capture negate=
+ rx260_cur."!cursor_pos"(rx260_pos)
+ $P10 = rx260_cur."hexints"()
+ unless $P10, rx260_fail
+ rx260_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("hexints")
+ rx260_pos = $P10."pos"()
# rx literal "]"
- add $I11, rx256_pos, 1
- gt $I11, rx256_eos, rx256_fail
- sub $I11, rx256_pos, rx256_off
- substr $S10, rx256_tgt, $I11, 1
- ne $S10, "]", rx256_fail
- add rx256_pos, 1
- alt260_end:
-.annotate "line", 91
+ add $I11, rx260_pos, 1
+ gt $I11, rx260_eos, rx260_fail
+ sub $I11, rx260_pos, rx260_off
+ substr $S10, rx260_tgt, $I11, 1
+ ne $S10, "]", rx260_fail
+ add rx260_pos, 1
+ alt264_end:
+.annotate "line", 89
# rx pass
- rx256_cur."!cursor_pass"(rx256_pos, "quote_escape:sym<oct>")
- rx256_cur."!cursor_debug"("PASS ", "quote_escape:sym<oct>", " at pos=", rx256_pos)
- .return (rx256_cur)
- rx256_fail:
-.annotate "line", 33
- (rx256_rep, rx256_pos, $I10, $P10) = rx256_cur."!mark_fail"(0)
- lt rx256_pos, -1, rx256_done
- eq rx256_pos, -1, rx256_fail
+ rx260_cur."!cursor_pass"(rx260_pos, "quote_escape:sym<hex>")
+ rx260_cur."!cursor_debug"("PASS ", "quote_escape:sym<hex>", " at pos=", rx260_pos)
+ .return (rx260_cur)
+ rx260_fail:
+.annotate "line", 33
+ (rx260_rep, rx260_pos, $I10, $P10) = rx260_cur."!mark_fail"(0)
+ lt rx260_pos, -1, rx260_done
+ eq rx260_pos, -1, rx260_fail
jump $I10
- rx256_done:
- rx256_cur."!cursor_fail"()
- rx256_cur."!cursor_debug"("FAIL ", "quote_escape:sym<oct>")
- .return (rx256_cur)
+ rx260_done:
+ rx260_cur."!cursor_fail"()
+ rx260_cur."!cursor_debug"("FAIL ", "quote_escape:sym<hex>")
+ .return (rx260_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>" :subid("84_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<hex>" :subid("86_1271336377.56964") :method
.annotate "line", 33
- new $P258, "ResizablePMCArray"
- push $P258, "\\o"
- .return ($P258)
+ new $P262, "ResizablePMCArray"
+ push $P262, unicode:"\\x"
+ .return ($P262)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<chr>" :subid("85_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<oct>" :subid("87_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
- .local string rx262_tgt
- .local int rx262_pos
- .local int rx262_off
- .local int rx262_eos
- .local int rx262_rep
- .local pmc rx262_cur
- (rx262_cur, rx262_pos, rx262_tgt) = self."!cursor_start"()
- rx262_cur."!cursor_debug"("START ", "quote_escape:sym<chr>")
- .lex unicode:"$\x{a2}", rx262_cur
+ .local string rx266_tgt
+ .local int rx266_pos
+ .local int rx266_off
+ .local int rx266_eos
+ .local int rx266_rep
+ .local pmc rx266_cur
+ (rx266_cur, rx266_pos, rx266_tgt) = self."!cursor_start"()
+ rx266_cur."!cursor_debug"("START ", "quote_escape:sym<oct>")
+ .lex unicode:"$\x{a2}", rx266_cur
.local pmc match
.lex "$/", match
- length rx262_eos, rx262_tgt
- set rx262_off, 0
- lt rx262_pos, 2, rx262_start
- sub rx262_off, rx262_pos, 1
- substr rx262_tgt, rx262_tgt, rx262_off
- rx262_start:
+ length rx266_eos, rx266_tgt
+ set rx266_off, 0
+ lt rx266_pos, 2, rx266_start
+ sub rx266_off, rx266_pos, 1
+ substr rx266_tgt, rx266_tgt, rx266_off
+ rx266_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan265_done
- goto rxscan265_scan
- rxscan265_loop:
- ($P10) = rx262_cur."from"()
+ ne $I10, -1, rxscan269_done
+ goto rxscan269_scan
+ rxscan269_loop:
+ ($P10) = rx266_cur."from"()
inc $P10
- set rx262_pos, $P10
- ge rx262_pos, rx262_eos, rxscan265_done
- rxscan265_scan:
- set_addr $I10, rxscan265_loop
- rx262_cur."!mark_push"(0, rx262_pos, $I10)
- rxscan265_done:
-.annotate "line", 95
- # rx literal "\\c"
- add $I11, rx262_pos, 2
- gt $I11, rx262_eos, rx262_fail
- sub $I11, rx262_pos, rx262_off
- substr $S10, rx262_tgt, $I11, 2
- ne $S10, "\\c", rx262_fail
- add rx262_pos, 2
+ set rx266_pos, $P10
+ ge rx266_pos, rx266_eos, rxscan269_done
+ rxscan269_scan:
+ set_addr $I10, rxscan269_loop
+ rx266_cur."!mark_push"(0, rx266_pos, $I10)
+ rxscan269_done:
+.annotate "line", 94
+ # rx literal "\\o"
+ add $I11, rx266_pos, 2
+ gt $I11, rx266_eos, rx266_fail
+ sub $I11, rx266_pos, rx266_off
+ substr $S10, rx266_tgt, $I11, 2
+ ne $S10, "\\o", rx266_fail
+ add rx266_pos, 2
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx262_cur."!cursor_pos"(rx262_pos)
- $P10 = rx262_cur."quotemod_check"("b")
- unless $P10, rx262_fail
- # rx subrule "charspec" subtype=capture negate=
- rx262_cur."!cursor_pos"(rx262_pos)
- $P10 = rx262_cur."charspec"()
- unless $P10, rx262_fail
- rx262_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("charspec")
- rx262_pos = $P10."pos"()
+ rx266_cur."!cursor_pos"(rx266_pos)
+ $P10 = rx266_cur."quotemod_check"("b")
+ unless $P10, rx266_fail
+ alt270_0:
+.annotate "line", 95
+ set_addr $I10, alt270_1
+ rx266_cur."!mark_push"(0, rx266_pos, $I10)
+ # rx subrule "octint" subtype=capture negate=
+ rx266_cur."!cursor_pos"(rx266_pos)
+ $P10 = rx266_cur."octint"()
+ unless $P10, rx266_fail
+ rx266_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("octint")
+ rx266_pos = $P10."pos"()
+ goto alt270_end
+ alt270_1:
+ # rx literal "["
+ add $I11, rx266_pos, 1
+ gt $I11, rx266_eos, rx266_fail
+ sub $I11, rx266_pos, rx266_off
+ substr $S10, rx266_tgt, $I11, 1
+ ne $S10, "[", rx266_fail
+ add rx266_pos, 1
+ # rx subrule "octints" subtype=capture negate=
+ rx266_cur."!cursor_pos"(rx266_pos)
+ $P10 = rx266_cur."octints"()
+ unless $P10, rx266_fail
+ rx266_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("octints")
+ rx266_pos = $P10."pos"()
+ # rx literal "]"
+ add $I11, rx266_pos, 1
+ gt $I11, rx266_eos, rx266_fail
+ sub $I11, rx266_pos, rx266_off
+ substr $S10, rx266_tgt, $I11, 1
+ ne $S10, "]", rx266_fail
+ add rx266_pos, 1
+ alt270_end:
+.annotate "line", 93
# rx pass
- rx262_cur."!cursor_pass"(rx262_pos, "quote_escape:sym<chr>")
- rx262_cur."!cursor_debug"("PASS ", "quote_escape:sym<chr>", " at pos=", rx262_pos)
- .return (rx262_cur)
- rx262_fail:
-.annotate "line", 33
- (rx262_rep, rx262_pos, $I10, $P10) = rx262_cur."!mark_fail"(0)
- lt rx262_pos, -1, rx262_done
- eq rx262_pos, -1, rx262_fail
+ rx266_cur."!cursor_pass"(rx266_pos, "quote_escape:sym<oct>")
+ rx266_cur."!cursor_debug"("PASS ", "quote_escape:sym<oct>", " at pos=", rx266_pos)
+ .return (rx266_cur)
+ rx266_fail:
+.annotate "line", 33
+ (rx266_rep, rx266_pos, $I10, $P10) = rx266_cur."!mark_fail"(0)
+ lt rx266_pos, -1, rx266_done
+ eq rx266_pos, -1, rx266_fail
jump $I10
- rx262_done:
- rx262_cur."!cursor_fail"()
- rx262_cur."!cursor_debug"("FAIL ", "quote_escape:sym<chr>")
- .return (rx262_cur)
+ rx266_done:
+ rx266_cur."!cursor_fail"()
+ rx266_cur."!cursor_debug"("FAIL ", "quote_escape:sym<oct>")
+ .return (rx266_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>" :subid("86_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<oct>" :subid("88_1271336377.56964") :method
.annotate "line", 33
- new $P264, "ResizablePMCArray"
- push $P264, "\\c"
- .return ($P264)
+ new $P268, "ResizablePMCArray"
+ push $P268, "\\o"
+ .return ($P268)
.end
.namespace ["HLL";"Grammar"]
-.sub "charname" :subid("87_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "quote_escape:sym<chr>" :subid("89_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
- .const 'Sub' $P276 = "89_1267204683.33533"
- capture_lex $P276
- .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 ", "charname")
- .lex unicode:"$\x{a2}", rx267_cur
+ .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 pmc match
.lex "$/", match
- length rx267_eos, rx267_tgt
- set rx267_off, 0
- lt rx267_pos, 2, rx267_start
- sub rx267_off, rx267_pos, 1
- substr rx267_tgt, rx267_tgt, rx267_off
- rx267_start:
+ length rx272_eos, rx272_tgt
+ 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:
$I10 = self.'from'()
- ne $I10, -1, rxscan271_done
- goto rxscan271_scan
- rxscan271_loop:
- ($P10) = rx267_cur."from"()
+ ne $I10, -1, rxscan275_done
+ goto rxscan275_scan
+ rxscan275_loop:
+ ($P10) = rx272_cur."from"()
inc $P10
- set rx267_pos, $P10
- ge rx267_pos, rx267_eos, rxscan271_done
- rxscan271_scan:
- set_addr $I10, rxscan271_loop
- rx267_cur."!mark_push"(0, rx267_pos, $I10)
- rxscan271_done:
- alt272_0:
-.annotate "line", 97
- set_addr $I10, alt272_1
- rx267_cur."!mark_push"(0, rx267_pos, $I10)
-.annotate "line", 98
- # rx subrule "integer" subtype=capture negate=
- rx267_cur."!cursor_pos"(rx267_pos)
- $P10 = rx267_cur."integer"()
- unless $P10, rx267_fail
- rx267_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("integer")
- rx267_pos = $P10."pos"()
- goto alt272_end
- alt272_1:
-.annotate "line", 99
- # rx enumcharlist negate=0
- ge rx267_pos, rx267_eos, rx267_fail
- sub $I10, rx267_pos, rx267_off
- substr $S10, rx267_tgt, $I10, 1
- index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", $S10
- lt $I11, 0, rx267_fail
- inc rx267_pos
- # rx rxquantf273 ** 0..*
- set_addr $I10, rxquantf273_loop
- rx267_cur."!mark_push"(0, rx267_pos, $I10)
- goto rxquantf273_done
- rxquantf273_loop:
- # rx enumcharlist negate=1
- ge rx267_pos, rx267_eos, rx267_fail
- sub $I10, rx267_pos, rx267_off
- substr $S10, rx267_tgt, $I10, 1
- index $I11, "],#", $S10
- ge $I11, 0, rx267_fail
- inc rx267_pos
- set_addr $I10, rxquantf273_loop
- rx267_cur."!mark_push"($I274, rx267_pos, $I10)
- rxquantf273_done:
- # rx enumcharlist negate=0
- ge rx267_pos, rx267_eos, rx267_fail
- sub $I10, rx267_pos, rx267_off
- substr $S10, rx267_tgt, $I10, 1
- index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)", $S10
- lt $I11, 0, rx267_fail
- inc rx267_pos
-.annotate "line", 100
- # rx subrule "before" subtype=zerowidth negate=
- rx267_cur."!cursor_pos"(rx267_pos)
- .const 'Sub' $P276 = "89_1267204683.33533"
- capture_lex $P276
- $P10 = rx267_cur."before"($P276)
- unless $P10, rx267_fail
- alt272_end:
+ 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:
.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
+ # rx subrule "quotemod_check" subtype=zerowidth negate=
+ rx272_cur."!cursor_pos"(rx272_pos)
+ $P10 = rx272_cur."quotemod_check"("b")
+ unless $P10, rx272_fail
+ # rx subrule "charspec" subtype=capture negate=
+ rx272_cur."!cursor_pos"(rx272_pos)
+ $P10 = rx272_cur."charspec"()
+ unless $P10, rx272_fail
+ rx272_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("charspec")
+ rx272_pos = $P10."pos"()
# rx pass
- rx267_cur."!cursor_pass"(rx267_pos, "charname")
- rx267_cur."!cursor_debug"("PASS ", "charname", " at pos=", rx267_pos)
- .return (rx267_cur)
- rx267_fail:
-.annotate "line", 33
- (rx267_rep, rx267_pos, $I10, $P10) = rx267_cur."!mark_fail"(0)
- lt rx267_pos, -1, rx267_done
- eq rx267_pos, -1, rx267_fail
+ 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
jump $I10
- rx267_done:
- rx267_cur."!cursor_fail"()
- rx267_cur."!cursor_debug"("FAIL ", "charname")
- .return (rx267_cur)
+ rx272_done:
+ rx272_cur."!cursor_fail"()
+ rx272_cur."!cursor_debug"("FAIL ", "quote_escape:sym<chr>")
+ .return (rx272_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname" :subid("88_1267204683.33533") :method
+.sub "!PREFIX__quote_escape:sym<chr>" :subid("90_1271336377.56964") :method
.annotate "line", 33
- $P269 = self."!PREFIX__!subrule"("integer", "")
- new $P270, "ResizablePMCArray"
- push $P270, "Z"
- push $P270, "Y"
- push $P270, "X"
- push $P270, "W"
- push $P270, "V"
- push $P270, "U"
- push $P270, "T"
- push $P270, "S"
- push $P270, "R"
- push $P270, "Q"
- push $P270, "P"
- push $P270, "O"
- push $P270, "N"
- push $P270, "M"
- push $P270, "L"
- push $P270, "K"
- push $P270, "J"
- push $P270, "I"
- push $P270, "H"
- push $P270, "G"
- push $P270, "F"
- push $P270, "E"
- push $P270, "D"
- push $P270, "C"
- push $P270, "B"
- push $P270, "A"
- push $P270, "z"
- push $P270, "y"
- push $P270, "x"
- push $P270, "w"
- push $P270, "v"
- push $P270, "u"
- push $P270, "t"
- push $P270, "s"
- push $P270, "r"
- push $P270, "q"
- push $P270, "p"
- push $P270, "o"
- push $P270, "n"
- push $P270, "m"
- push $P270, "l"
- push $P270, "k"
- push $P270, "j"
- push $P270, "i"
- push $P270, "h"
- push $P270, "g"
- push $P270, "f"
- push $P270, "e"
- push $P270, "d"
- push $P270, "c"
- push $P270, "b"
- push $P270, "a"
- push $P270, $P269
- .return ($P270)
+ new $P274, "ResizablePMCArray"
+ push $P274, "\\c"
+ .return ($P274)
.end
.namespace ["HLL";"Grammar"]
-.sub "_block275" :anon :subid("89_1267204683.33533") :method :outer("87_1267204683.33533")
-.annotate "line", 100
+.sub "quote_escape:sym<0>" :subid("91_1271336377.56964") :method :outer("11_1271336377.56964")
+.annotate "line", 33
.local string rx277_tgt
.local int rx277_pos
.local int rx277_off
@@ -3973,7 +3956,7 @@
.local int rx277_rep
.local pmc rx277_cur
(rx277_cur, rx277_pos, rx277_tgt) = self."!cursor_start"()
- rx277_cur."!cursor_debug"("START ", "")
+ rx277_cur."!cursor_debug"("START ", "quote_escape:sym<0>")
.lex unicode:"$\x{a2}", rx277_cur
.local pmc match
.lex "$/", match
@@ -3984,404 +3967,914 @@
substr rx277_tgt, rx277_tgt, rx277_off
rx277_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan278_done
- goto rxscan278_scan
- rxscan278_loop:
+ ne $I10, -1, rxscan280_done
+ goto rxscan280_scan
+ rxscan280_loop:
($P10) = rx277_cur."from"()
inc $P10
set rx277_pos, $P10
- ge rx277_pos, rx277_eos, rxscan278_done
- rxscan278_scan:
- set_addr $I10, rxscan278_loop
+ ge rx277_pos, rx277_eos, rxscan280_done
+ rxscan280_scan:
+ set_addr $I10, rxscan280_loop
rx277_cur."!mark_push"(0, rx277_pos, $I10)
- rxscan278_done:
- # rx charclass_q s r 0..-1
- sub $I10, rx277_pos, rx277_off
- find_not_cclass $I11, 32, rx277_tgt, $I10, rx277_eos
- add rx277_pos, rx277_off, $I11
- # rx enumcharlist negate=0
- ge rx277_pos, rx277_eos, rx277_fail
- sub $I10, rx277_pos, rx277_off
- substr $S10, rx277_tgt, $I10, 1
- index $I11, "],#", $S10
- lt $I11, 0, rx277_fail
- inc rx277_pos
+ rxscan280_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
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_281_fail
+ rx277_cur."!mark_push"(0, rx277_pos, $I10)
+ # rx literal "0"
+ add $I11, rx277_pos, 1
+ gt $I11, rx277_eos, rx277_fail
+ sub $I11, rx277_pos, rx277_off
+ substr $S10, rx277_tgt, $I11, 1
+ ne $S10, "0", rx277_fail
+ add rx277_pos, 1
+ set_addr $I10, rxcap_281_fail
+ ($I12, $I11) = rx277_cur."!mark_peek"($I10)
+ rx277_cur."!cursor_pos"($I11)
+ ($P10) = rx277_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx277_pos, "")
+ rx277_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_281_done
+ rxcap_281_fail:
+ goto rx277_fail
+ rxcap_281_done:
+ # rx subrule "quotemod_check" subtype=zerowidth negate=
+ rx277_cur."!cursor_pos"(rx277_pos)
+ $P10 = rx277_cur."quotemod_check"("b")
+ unless $P10, rx277_fail
# rx pass
- rx277_cur."!cursor_pass"(rx277_pos, "")
- rx277_cur."!cursor_debug"("PASS ", "", " at pos=", rx277_pos)
+ rx277_cur."!cursor_pass"(rx277_pos, "quote_escape:sym<0>")
+ rx277_cur."!cursor_debug"("PASS ", "quote_escape:sym<0>", " at pos=", rx277_pos)
.return (rx277_cur)
rx277_fail:
+.annotate "line", 33
(rx277_rep, rx277_pos, $I10, $P10) = rx277_cur."!mark_fail"(0)
lt rx277_pos, -1, rx277_done
eq rx277_pos, -1, rx277_fail
jump $I10
rx277_done:
rx277_cur."!cursor_fail"()
- rx277_cur."!cursor_debug"("FAIL ", "")
+ rx277_cur."!cursor_debug"("FAIL ", "quote_escape:sym<0>")
.return (rx277_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "charnames" :subid("90_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "!PREFIX__quote_escape:sym<0>" :subid("92_1271336377.56964") :method
.annotate "line", 33
- .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 ", "charnames")
- rx280_cur."!cursor_caparray"("charname")
- .lex unicode:"$\x{a2}", rx280_cur
+ new $P279, "ResizablePMCArray"
+ push $P279, "\\0"
+ .return ($P279)
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "quote_escape:sym<misc>" :subid("93_1271336377.56964") :method :outer("11_1271336377.56964")
+.annotate "line", 33
+ .const 'Sub' $P302 = "97_1271336377.56964"
+ capture_lex $P302
+ .const 'Sub' $P295 = "96_1271336377.56964"
+ capture_lex $P295
+ .const 'Sub' $P290 = "95_1271336377.56964"
+ capture_lex $P290
+ .local string rx283_tgt
+ .local int rx283_pos
+ .local int rx283_off
+ .local int rx283_eos
+ .local int rx283_rep
+ .local pmc rx283_cur
+ (rx283_cur, rx283_pos, rx283_tgt) = self."!cursor_start"()
+ rx283_cur."!cursor_debug"("START ", "quote_escape:sym<misc>")
+ .lex unicode:"$\x{a2}", rx283_cur
.local pmc match
.lex "$/", match
- length rx280_eos, rx280_tgt
- 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 rx283_eos, rx283_tgt
+ set rx283_off, 0
+ lt rx283_pos, 2, rx283_start
+ sub rx283_off, rx283_pos, 1
+ substr rx283_tgt, rx283_tgt, rx283_off
+ rx283_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan283_done
- goto rxscan283_scan
- rxscan283_loop:
- ($P10) = rx280_cur."from"()
+ ne $I10, -1, rxscan286_done
+ goto rxscan286_scan
+ rxscan286_loop:
+ ($P10) = rx283_cur."from"()
inc $P10
- set rx280_pos, $P10
- ge rx280_pos, rx280_eos, rxscan283_done
- rxscan283_scan:
- set_addr $I10, rxscan283_loop
- rx280_cur."!mark_push"(0, rx280_pos, $I10)
- rxscan283_done:
+ set rx283_pos, $P10
+ ge rx283_pos, rx283_eos, rxscan286_done
+ rxscan286_scan:
+ set_addr $I10, rxscan286_loop
+ rx283_cur."!mark_push"(0, rx283_pos, $I10)
+ rxscan286_done:
+.annotate "line", 99
+ rx283_cur."!cursor_pos"(rx283_pos)
+ find_lex $P287, unicode:"$\x{a2}"
+ $P288 = $P287."MATCH"()
+ store_lex "$/", $P288
+.annotate "line", 100
+ .const 'Sub' $P290 = "95_1271336377.56964"
+ capture_lex $P290
+ $P291 = $P290()
+ # rx literal "\\"
+ add $I11, rx283_pos, 1
+ gt $I11, rx283_eos, rx283_fail
+ sub $I11, rx283_pos, rx283_off
+ substr $S10, rx283_tgt, $I11, 1
+ ne $S10, "\\", rx283_fail
+ add rx283_pos, 1
+ alt292_0:
+.annotate "line", 101
+ set_addr $I10, alt292_1
+ rx283_cur."!mark_push"(0, rx283_pos, $I10)
.annotate "line", 102
- # rx rxquantr284 ** 1..*
- set_addr $I285, rxquantr284_done
- rx280_cur."!mark_push"(0, -1, $I285)
- rxquantr284_loop:
+ # rx subrule "quotemod_check" subtype=zerowidth negate=
+ rx283_cur."!cursor_pos"(rx283_pos)
+ $P10 = rx283_cur."quotemod_check"("b")
+ unless $P10, rx283_fail
+ alt293_0:
+.annotate "line", 103
+ set_addr $I10, alt293_1
+ rx283_cur."!mark_push"(0, rx283_pos, $I10)
+.annotate "line", 104
+ # rx subrule $P295 subtype=capture negate=
+ rx283_cur."!cursor_pos"(rx283_pos)
+ .const 'Sub' $P295 = "96_1271336377.56964"
+ capture_lex $P295
+ $P10 = rx283_cur.$P295()
+ unless $P10, rx283_fail
+ rx283_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("textqq")
+ rx283_pos = $P10."pos"()
+ goto alt293_end
+ alt293_1:
+.annotate "line", 105
+ # rx subcapture "x"
+ set_addr $I10, rxcap_298_fail
+ rx283_cur."!mark_push"(0, rx283_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)
+ $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_1271336377.56964"
+ capture_lex $P302
+ $P312 = $P302()
+ alt293_end:
+.annotate "line", 102
+ goto alt292_end
+ alt292_1:
+.annotate "line", 107
+ # rx subcapture "textq"
+ set_addr $I10, rxcap_313_fail
+ rx283_cur."!mark_push"(0, rx283_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)
+ $P10."!cursor_names"("textq")
+ goto rxcap_313_done
+ rxcap_313_fail:
+ goto rx283_fail
+ rxcap_313_done:
+ alt292_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
+ jump $I10
+ rx283_done:
+ rx283_cur."!cursor_fail"()
+ rx283_cur."!cursor_debug"("FAIL ", "quote_escape:sym<misc>")
+ .return (rx283_cur)
+ .return ()
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "!PREFIX__quote_escape:sym<misc>" :subid("94_1271336377.56964") :method
+.annotate "line", 33
+ new $P285, "ResizablePMCArray"
+ push $P285, ""
+ .return ($P285)
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "_block289" :anon :subid("95_1271336377.56964") :outer("93_1271336377.56964")
+.annotate "line", 100
+ .return ()
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "_block294" :anon :subid("96_1271336377.56964") :method :outer("93_1271336377.56964")
+.annotate "line", 104
+ .local string rx296_tgt
+ .local int rx296_pos
+ .local int rx296_off
+ .local int rx296_eos
+ .local int rx296_rep
+ .local pmc rx296_cur
+ (rx296_cur, rx296_pos, rx296_tgt) = self."!cursor_start"()
+ rx296_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx296_cur
+ .local pmc match
+ .lex "$/", match
+ length rx296_eos, rx296_tgt
+ set rx296_off, 0
+ lt rx296_pos, 2, rx296_start
+ sub rx296_off, rx296_pos, 1
+ substr rx296_tgt, rx296_tgt, rx296_off
+ rx296_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan297_done
+ goto rxscan297_scan
+ rxscan297_loop:
+ ($P10) = rx296_cur."from"()
+ inc $P10
+ set rx296_pos, $P10
+ ge rx296_pos, rx296_eos, rxscan297_done
+ rxscan297_scan:
+ set_addr $I10, rxscan297_loop
+ rx296_cur."!mark_push"(0, rx296_pos, $I10)
+ rxscan297_done:
+ # rx 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
+ # rx pass
+ rx296_cur."!cursor_pass"(rx296_pos, "")
+ rx296_cur."!cursor_debug"("PASS ", "", " at pos=", rx296_pos)
+ .return (rx296_cur)
+ rx296_fail:
+ (rx296_rep, rx296_pos, $I10, $P10) = rx296_cur."!mark_fail"(0)
+ lt rx296_pos, -1, rx296_done
+ eq rx296_pos, -1, rx296_fail
+ jump $I10
+ rx296_done:
+ rx296_cur."!cursor_fail"()
+ rx296_cur."!cursor_debug"("FAIL ", "")
+ .return (rx296_cur)
+ .return ()
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "_block301" :anon :subid("97_1271336377.56964") :outer("93_1271336377.56964")
+.annotate "line", 105
+ find_lex $P303, "$/"
+ $P304 = $P303."CURSOR"()
+ new $P305, "String"
+ assign $P305, "Unrecognized backslash sequence: '\\"
+ find_lex $P306, "$/"
+ unless_null $P306, vivify_106
+ $P306 = root_new ['parrot';'Hash']
+ vivify_106:
+ set $P307, $P306["x"]
+ unless_null $P307, vivify_107
+ new $P307, "Undef"
+ vivify_107:
+ $S308 = $P307."Str"()
+ concat $P309, $P305, $S308
+ concat $P310, $P309, "'"
+ $P311 = $P304."panic"($P310)
+ .return ($P311)
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "charname" :subid("98_1271336377.56964") :method :outer("11_1271336377.56964")
+.annotate "line", 33
+ .const 'Sub' $P324 = "100_1271336377.56964"
+ capture_lex $P324
+ .local string rx315_tgt
+ .local int rx315_pos
+ .local int rx315_off
+ .local int rx315_eos
+ .local int rx315_rep
+ .local pmc rx315_cur
+ (rx315_cur, rx315_pos, rx315_tgt) = self."!cursor_start"()
+ rx315_cur."!cursor_debug"("START ", "charname")
+ .lex unicode:"$\x{a2}", rx315_cur
+ .local pmc match
+ .lex "$/", match
+ length rx315_eos, rx315_tgt
+ set rx315_off, 0
+ lt rx315_pos, 2, rx315_start
+ sub rx315_off, rx315_pos, 1
+ substr rx315_tgt, rx315_tgt, rx315_off
+ rx315_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan319_done
+ goto rxscan319_scan
+ rxscan319_loop:
+ ($P10) = rx315_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:
+.annotate "line", 111
+ set_addr $I10, alt320_1
+ rx315_cur."!mark_push"(0, rx315_pos, $I10)
+.annotate "line", 112
+ # rx subrule "integer" subtype=capture negate=
+ rx315_cur."!cursor_pos"(rx315_pos)
+ $P10 = rx315_cur."integer"()
+ unless $P10, rx315_fail
+ rx315_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("integer")
+ rx315_pos = $P10."pos"()
+ goto alt320_end
+ alt320_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
+ 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:
+ # rx enumcharlist negate=1
+ ge rx315_pos, rx315_eos, rx315_fail
+ sub $I10, rx315_pos, rx315_off
+ substr $S10, rx315_tgt, $I10, 1
+ index $I11, "],#", $S10
+ ge $I11, 0, rx315_fail
+ inc rx315_pos
+ set_addr $I10, rxquantf321_loop
+ rx315_cur."!mark_push"($I322, rx315_pos, $I10)
+ rxquantf321_done:
+ # rx enumcharlist negate=0
+ ge rx315_pos, rx315_eos, rx315_fail
+ sub $I10, rx315_pos, rx315_off
+ substr $S10, rx315_tgt, $I10, 1
+ index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)", $S10
+ lt $I11, 0, rx315_fail
+ inc rx315_pos
+.annotate "line", 114
+ # rx subrule "before" subtype=zerowidth negate=
+ rx315_cur."!cursor_pos"(rx315_pos)
+ .const 'Sub' $P324 = "100_1271336377.56964"
+ capture_lex $P324
+ $P10 = rx315_cur."before"($P324)
+ unless $P10, rx315_fail
+ alt320_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
+ jump $I10
+ rx315_done:
+ rx315_cur."!cursor_fail"()
+ rx315_cur."!cursor_debug"("FAIL ", "charname")
+ .return (rx315_cur)
+ .return ()
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "!PREFIX__charname" :subid("99_1271336377.56964") :method
+.annotate "line", 33
+ $P317 = self."!PREFIX__!subrule"("integer", "")
+ new $P318, "ResizablePMCArray"
+ push $P318, "Z"
+ push $P318, "Y"
+ push $P318, "X"
+ push $P318, "W"
+ push $P318, "V"
+ push $P318, "U"
+ push $P318, "T"
+ push $P318, "S"
+ push $P318, "R"
+ push $P318, "Q"
+ push $P318, "P"
+ push $P318, "O"
+ push $P318, "N"
+ push $P318, "M"
+ push $P318, "L"
+ push $P318, "K"
+ push $P318, "J"
+ push $P318, "I"
+ push $P318, "H"
+ push $P318, "G"
+ push $P318, "F"
+ push $P318, "E"
+ push $P318, "D"
+ push $P318, "C"
+ push $P318, "B"
+ push $P318, "A"
+ push $P318, "z"
+ push $P318, "y"
+ push $P318, "x"
+ push $P318, "w"
+ push $P318, "v"
+ push $P318, "u"
+ push $P318, "t"
+ push $P318, "s"
+ push $P318, "r"
+ push $P318, "q"
+ push $P318, "p"
+ push $P318, "o"
+ push $P318, "n"
+ push $P318, "m"
+ push $P318, "l"
+ push $P318, "k"
+ push $P318, "j"
+ push $P318, "i"
+ push $P318, "h"
+ push $P318, "g"
+ push $P318, "f"
+ push $P318, "e"
+ push $P318, "d"
+ push $P318, "c"
+ push $P318, "b"
+ push $P318, "a"
+ push $P318, $P317
+ .return ($P318)
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "_block323" :anon :subid("100_1271336377.56964") :method :outer("98_1271336377.56964")
+.annotate "line", 114
+ .local string rx325_tgt
+ .local int rx325_pos
+ .local int rx325_off
+ .local int rx325_eos
+ .local int rx325_rep
+ .local pmc rx325_cur
+ (rx325_cur, rx325_pos, rx325_tgt) = self."!cursor_start"()
+ rx325_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx325_cur
+ .local pmc match
+ .lex "$/", match
+ length rx325_eos, rx325_tgt
+ set rx325_off, 0
+ lt rx325_pos, 2, rx325_start
+ sub rx325_off, rx325_pos, 1
+ substr rx325_tgt, rx325_tgt, rx325_off
+ rx325_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan326_done
+ goto rxscan326_scan
+ rxscan326_loop:
+ ($P10) = rx325_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:
+ # 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
+ # rx enumcharlist negate=0
+ ge rx325_pos, rx325_eos, rx325_fail
+ sub $I10, rx325_pos, rx325_off
+ substr $S10, rx325_tgt, $I10, 1
+ index $I11, "],#", $S10
+ lt $I11, 0, rx325_fail
+ inc rx325_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
+ jump $I10
+ rx325_done:
+ rx325_cur."!cursor_fail"()
+ rx325_cur."!cursor_debug"("FAIL ", "")
+ .return (rx325_cur)
+ .return ()
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "charnames" :subid("101_1271336377.56964") :method :outer("11_1271336377.56964")
+.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 pmc match
+ .lex "$/", match
+ length rx328_eos, rx328_tgt
+ set rx328_off, 0
+ lt rx328_pos, 2, rx328_start
+ sub rx328_off, rx328_pos, 1
+ substr rx328_tgt, rx328_tgt, rx328_off
+ rx328_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan331_done
+ goto rxscan331_scan
+ rxscan331_loop:
+ ($P10) = rx328_cur."from"()
+ inc $P10
+ set rx328_pos, $P10
+ ge rx328_pos, rx328_eos, rxscan331_done
+ rxscan331_scan:
+ set_addr $I10, rxscan331_loop
+ rx328_cur."!mark_push"(0, rx328_pos, $I10)
+ rxscan331_done:
+.annotate "line", 116
+ # rx rxquantr332 ** 1..*
+ set_addr $I333, rxquantr332_done
+ rx328_cur."!mark_push"(0, -1, $I333)
+ rxquantr332_loop:
# rx subrule "ws" subtype=method negate=
- rx280_cur."!cursor_pos"(rx280_pos)
- $P10 = rx280_cur."ws"()
- unless $P10, rx280_fail
- rx280_pos = $P10."pos"()
+ rx328_cur."!cursor_pos"(rx328_pos)
+ $P10 = rx328_cur."ws"()
+ unless $P10, rx328_fail
+ rx328_pos = $P10."pos"()
# rx subrule "charname" subtype=capture negate=
- rx280_cur."!cursor_pos"(rx280_pos)
- $P10 = rx280_cur."charname"()
- unless $P10, rx280_fail
- rx280_cur."!mark_push"(0, -1, 0, $P10)
+ rx328_cur."!cursor_pos"(rx328_pos)
+ $P10 = rx328_cur."charname"()
+ unless $P10, rx328_fail
+ rx328_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("charname")
- rx280_pos = $P10."pos"()
+ rx328_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx280_cur."!cursor_pos"(rx280_pos)
- $P10 = rx280_cur."ws"()
- unless $P10, rx280_fail
- rx280_pos = $P10."pos"()
- (rx280_rep) = rx280_cur."!mark_commit"($I285)
- rx280_cur."!mark_push"(rx280_rep, rx280_pos, $I285)
+ rx328_cur."!cursor_pos"(rx328_pos)
+ $P10 = rx328_cur."ws"()
+ unless $P10, rx328_fail
+ rx328_pos = $P10."pos"()
+ (rx328_rep) = rx328_cur."!mark_commit"($I333)
+ rx328_cur."!mark_push"(rx328_rep, rx328_pos, $I333)
# rx literal ","
- add $I11, rx280_pos, 1
- gt $I11, rx280_eos, rx280_fail
- sub $I11, rx280_pos, rx280_off
- substr $S10, rx280_tgt, $I11, 1
- ne $S10, ",", rx280_fail
- add rx280_pos, 1
- goto rxquantr284_loop
- rxquantr284_done:
+ add $I11, rx328_pos, 1
+ gt $I11, rx328_eos, rx328_fail
+ sub $I11, rx328_pos, rx328_off
+ substr $S10, rx328_tgt, $I11, 1
+ ne $S10, ",", rx328_fail
+ add rx328_pos, 1
+ goto rxquantr332_loop
+ rxquantr332_done:
# rx pass
- rx280_cur."!cursor_pass"(rx280_pos, "charnames")
- rx280_cur."!cursor_debug"("PASS ", "charnames", " at pos=", rx280_pos)
- .return (rx280_cur)
- rx280_fail:
-.annotate "line", 33
- (rx280_rep, rx280_pos, $I10, $P10) = rx280_cur."!mark_fail"(0)
- lt rx280_pos, -1, rx280_done
- eq rx280_pos, -1, rx280_fail
+ rx328_cur."!cursor_pass"(rx328_pos, "charnames")
+ rx328_cur."!cursor_debug"("PASS ", "charnames", " at pos=", rx328_pos)
+ .return (rx328_cur)
+ rx328_fail:
+.annotate "line", 33
+ (rx328_rep, rx328_pos, $I10, $P10) = rx328_cur."!mark_fail"(0)
+ lt rx328_pos, -1, rx328_done
+ eq rx328_pos, -1, rx328_fail
jump $I10
- rx280_done:
- rx280_cur."!cursor_fail"()
- rx280_cur."!cursor_debug"("FAIL ", "charnames")
- .return (rx280_cur)
+ rx328_done:
+ rx328_cur."!cursor_fail"()
+ rx328_cur."!cursor_debug"("FAIL ", "charnames")
+ .return (rx328_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames" :subid("91_1267204683.33533") :method
+.sub "!PREFIX__charnames" :subid("102_1271336377.56964") :method
.annotate "line", 33
- new $P282, "ResizablePMCArray"
- push $P282, ""
- .return ($P282)
+ new $P330, "ResizablePMCArray"
+ push $P330, ""
+ .return ($P330)
.end
.namespace ["HLL";"Grammar"]
-.sub "charspec" :subid("92_1267204683.33533") :method :outer("11_1267204683.33533")
+.sub "charspec" :subid("103_1271336377.56964") :method :outer("11_1271336377.56964")
.annotate "line", 33
- .local string rx287_tgt
- .local int rx287_pos
- .local int rx287_off
- .local int rx287_eos
- .local int rx287_rep
- .local pmc rx287_cur
- (rx287_cur, rx287_pos, rx287_tgt) = self."!cursor_start"()
- rx287_cur."!cursor_debug"("START ", "charspec")
- .lex unicode:"$\x{a2}", rx287_cur
+ .local string rx335_tgt
+ .local int rx335_pos
+ .local int rx335_off
+ .local int rx335_eos
+ .local int rx335_rep
+ .local pmc rx335_cur
+ (rx335_cur, rx335_pos, rx335_tgt) = self."!cursor_start"()
+ rx335_cur."!cursor_debug"("START ", "charspec")
+ .lex unicode:"$\x{a2}", rx335_cur
.local pmc match
.lex "$/", match
- length rx287_eos, rx287_tgt
- set rx287_off, 0
- lt rx287_pos, 2, rx287_start
- sub rx287_off, rx287_pos, 1
- substr rx287_tgt, rx287_tgt, rx287_off
- rx287_start:
+ length rx335_eos, rx335_tgt
+ set rx335_off, 0
+ lt rx335_pos, 2, rx335_start
+ sub rx335_off, rx335_pos, 1
+ substr rx335_tgt, rx335_tgt, rx335_off
+ rx335_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan292_done
- goto rxscan292_scan
- rxscan292_loop:
- ($P10) = rx287_cur."from"()
+ ne $I10, -1, rxscan340_done
+ goto rxscan340_scan
+ rxscan340_loop:
+ ($P10) = rx335_cur."from"()
inc $P10
- set rx287_pos, $P10
- ge rx287_pos, rx287_eos, rxscan292_done
- rxscan292_scan:
- set_addr $I10, rxscan292_loop
- rx287_cur."!mark_push"(0, rx287_pos, $I10)
- rxscan292_done:
- alt293_0:
-.annotate "line", 104
- set_addr $I10, alt293_1
- rx287_cur."!mark_push"(0, rx287_pos, $I10)
-.annotate "line", 105
+ set rx335_pos, $P10
+ ge rx335_pos, rx335_eos, rxscan340_done
+ rxscan340_scan:
+ set_addr $I10, rxscan340_loop
+ rx335_cur."!mark_push"(0, rx335_pos, $I10)
+ rxscan340_done:
+ alt341_0:
+.annotate "line", 118
+ set_addr $I10, alt341_1
+ rx335_cur."!mark_push"(0, rx335_pos, $I10)
+.annotate "line", 119
# rx literal "["
- add $I11, rx287_pos, 1
- gt $I11, rx287_eos, rx287_fail
- sub $I11, rx287_pos, rx287_off
- substr $S10, rx287_tgt, $I11, 1
- ne $S10, "[", rx287_fail
- add rx287_pos, 1
+ add $I11, rx335_pos, 1
+ gt $I11, rx335_eos, rx335_fail
+ sub $I11, rx335_pos, rx335_off
+ substr $S10, rx335_tgt, $I11, 1
+ ne $S10, "[", rx335_fail
+ add rx335_pos, 1
# rx subrule "charnames" subtype=capture negate=
- rx287_cur."!cursor_pos"(rx287_pos)
- $P10 = rx287_cur."charnames"()
- unless $P10, rx287_fail
- rx287_cur."!mark_push"(0, -1, 0, $P10)
+ rx335_cur."!cursor_pos"(rx335_pos)
+ $P10 = rx335_cur."charnames"()
+ unless $P10, rx335_fail
+ rx335_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("charnames")
- rx287_pos = $P10."pos"()
+ rx335_pos = $P10."pos"()
# rx literal "]"
- add $I11, rx287_pos, 1
- gt $I11, rx287_eos, rx287_fail
- sub $I11, rx287_pos, rx287_off
- substr $S10, rx287_tgt, $I11, 1
- ne $S10, "]", rx287_fail
- add rx287_pos, 1
- goto alt293_end
- alt293_1:
- set_addr $I10, alt293_2
- rx287_cur."!mark_push"(0, rx287_pos, $I10)
-.annotate "line", 106
+ add $I11, rx335_pos, 1
+ gt $I11, rx335_eos, rx335_fail
+ sub $I11, rx335_pos, rx335_off
+ substr $S10, rx335_tgt, $I11, 1
+ ne $S10, "]", rx335_fail
+ add rx335_pos, 1
+ goto alt341_end
+ alt341_1:
+ set_addr $I10, alt341_2
+ rx335_cur."!mark_push"(0, rx335_pos, $I10)
+.annotate "line", 120
# rx charclass_q d r 1..-1
- sub $I10, rx287_pos, rx287_off
- find_not_cclass $I11, 8, rx287_tgt, $I10, rx287_eos
+ sub $I10, rx335_pos, rx335_off
+ find_not_cclass $I11, 8, rx335_tgt, $I10, rx335_eos
add $I12, $I10, 1
- lt $I11, $I12, rx287_fail
- add rx287_pos, rx287_off, $I11
- # rx rxquantr294 ** 0..*
- set_addr $I295, rxquantr294_done
- rx287_cur."!mark_push"(0, rx287_pos, $I295)
- rxquantr294_loop:
+ lt $I11, $I12, rx335_fail
+ add rx335_pos, rx335_off, $I11
+ # rx rxquantr342 ** 0..*
+ set_addr $I343, rxquantr342_done
+ rx335_cur."!mark_push"(0, rx335_pos, $I343)
+ rxquantr342_loop:
# rx literal "_"
- add $I11, rx287_pos, 1
- gt $I11, rx287_eos, rx287_fail
- sub $I11, rx287_pos, rx287_off
- substr $S10, rx287_tgt, $I11, 1
- ne $S10, "_", rx287_fail
- add rx287_pos, 1
+ add $I11, rx335_pos, 1
+ gt $I11, rx335_eos, rx335_fail
+ sub $I11, rx335_pos, rx335_off
+ substr $S10, rx335_tgt, $I11, 1
+ ne $S10, "_", rx335_fail
+ add rx335_pos, 1
# rx charclass_q d r 1..-1
- sub $I10, rx287_pos, rx287_off
- find_not_cclass $I11, 8, rx287_tgt, $I10, rx287_eos
+ sub $I10, rx335_pos, rx335_off
+ find_not_cclass $I11, 8, rx335_tgt, $I10, rx335_eos
add $I12, $I10, 1
- lt $I11, $I12, rx287_fail
- add rx287_pos, rx287_off, $I11
- (rx287_rep) = rx287_cur."!mark_commit"($I295)
- rx287_cur."!mark_push"(rx287_rep, rx287_pos, $I295)
- goto rxquantr294_loop
- rxquantr294_done:
- goto alt293_end
- alt293_2:
- set_addr $I10, alt293_3
- rx287_cur."!mark_push"(0, rx287_pos, $I10)
-.annotate "line", 107
+ lt $I11, $I12, rx335_fail
+ add rx335_pos, rx335_off, $I11
+ (rx335_rep) = rx335_cur."!mark_commit"($I343)
+ rx335_cur."!mark_push"(rx335_rep, rx335_pos, $I343)
+ goto rxquantr342_loop
+ rxquantr342_done:
+ goto alt341_end
+ alt341_2:
+ set_addr $I10, alt341_3
+ rx335_cur."!mark_push"(0, rx335_pos, $I10)
+.annotate "line", 121
# rx enumcharlist negate=0
- ge rx287_pos, rx287_eos, rx287_fail
- sub $I10, rx287_pos, rx287_off
- substr $S10, rx287_tgt, $I10, 1
+ ge rx335_pos, rx335_eos, rx335_fail
+ sub $I10, rx335_pos, rx335_off
+ substr $S10, rx335_tgt, $I10, 1
index $I11, "?@ABCDEFGHIJKLMNOPQRSTUVWXYZ", $S10
- lt $I11, 0, rx287_fail
- inc rx287_pos
- goto alt293_end
- alt293_3:
-.annotate "line", 108
+ lt $I11, 0, rx335_fail
+ inc rx335_pos
+ goto alt341_end
+ alt341_3:
+.annotate "line", 122
# rx subrule "panic" subtype=method negate=
- rx287_cur."!cursor_pos"(rx287_pos)
- $P10 = rx287_cur."panic"("Unrecognized \\c character")
- unless $P10, rx287_fail
- rx287_pos = $P10."pos"()
- alt293_end:
-.annotate "line", 103
+ rx335_cur."!cursor_pos"(rx335_pos)
+ $P10 = rx335_cur."panic"("Unrecognized \\c character")
+ unless $P10, rx335_fail
+ rx335_pos = $P10."pos"()
+ alt341_end:
+.annotate "line", 117
# rx pass
- rx287_cur."!cursor_pass"(rx287_pos, "charspec")
- rx287_cur."!cursor_debug"("PASS ", "charspec", " at pos=", rx287_pos)
- .return (rx287_cur)
- rx287_fail:
-.annotate "line", 33
- (rx287_rep, rx287_pos, $I10, $P10) = rx287_cur."!mark_fail"(0)
- lt rx287_pos, -1, rx287_done
- eq rx287_pos, -1, rx287_fail
+ rx335_cur."!cursor_pass"(rx335_pos, "charspec")
+ rx335_cur."!cursor_debug"("PASS ", "charspec", " at pos=", rx335_pos)
+ .return (rx335_cur)
+ rx335_fail:
+.annotate "line", 33
+ (rx335_rep, rx335_pos, $I10, $P10) = rx335_cur."!mark_fail"(0)
+ lt rx335_pos, -1, rx335_done
+ eq rx335_pos, -1, rx335_fail
jump $I10
- rx287_done:
- rx287_cur."!cursor_fail"()
- rx287_cur."!cursor_debug"("FAIL ", "charspec")
- .return (rx287_cur)
+ rx335_done:
+ rx335_cur."!cursor_fail"()
+ rx335_cur."!cursor_debug"("FAIL ", "charspec")
+ .return (rx335_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec" :subid("93_1267204683.33533") :method
+.sub "!PREFIX__charspec" :subid("104_1271336377.56964") :method
.annotate "line", 33
- $P289 = self."!PREFIX__!subrule"("", "")
- $P290 = self."!PREFIX__!subrule"("charnames", "[")
- new $P291, "ResizablePMCArray"
- push $P291, $P289
- push $P291, "Z"
- push $P291, "Y"
- push $P291, "X"
- push $P291, "W"
- push $P291, "V"
- push $P291, "U"
- push $P291, "T"
- push $P291, "S"
- push $P291, "R"
- push $P291, "Q"
- push $P291, "P"
- push $P291, "O"
- push $P291, "N"
- push $P291, "M"
- push $P291, "L"
- push $P291, "K"
- push $P291, "J"
- push $P291, "I"
- push $P291, "H"
- push $P291, "G"
- push $P291, "F"
- push $P291, "E"
- push $P291, "D"
- push $P291, "C"
- push $P291, "B"
- push $P291, "A"
- push $P291, "@"
- push $P291, "?"
- push $P291, ""
- push $P291, $P290
- .return ($P291)
+ $P337 = self."!PREFIX__!subrule"("", "")
+ $P338 = self."!PREFIX__!subrule"("charnames", "[")
+ new $P339, "ResizablePMCArray"
+ push $P339, $P337
+ push $P339, "Z"
+ push $P339, "Y"
+ push $P339, "X"
+ push $P339, "W"
+ push $P339, "V"
+ push $P339, "U"
+ push $P339, "T"
+ push $P339, "S"
+ push $P339, "R"
+ push $P339, "Q"
+ push $P339, "P"
+ push $P339, "O"
+ push $P339, "N"
+ push $P339, "M"
+ push $P339, "L"
+ push $P339, "K"
+ push $P339, "J"
+ push $P339, "I"
+ push $P339, "H"
+ push $P339, "G"
+ push $P339, "F"
+ push $P339, "E"
+ push $P339, "D"
+ push $P339, "C"
+ push $P339, "B"
+ push $P339, "A"
+ push $P339, "@"
+ push $P339, "?"
+ push $P339, ""
+ push $P339, $P338
+ .return ($P339)
.end
### .include 'gen/hllgrammar-actions.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1267204685.44293")
+.sub "_block11" :anon :subid("10_1271336380.06238")
.annotate "line", 0
get_hll_global $P14, ["HLL";"Actions"], "_block13"
capture_lex $P14
.annotate "line", 3
get_hll_global $P14, ["HLL";"Actions"], "_block13"
capture_lex $P14
- $P538 = $P14()
+ $P578 = $P14()
.annotate "line", 1
- .return ($P538)
+ .return ($P578)
.end
.namespace []
-.sub "" :load :init :subid("post46") :outer("10_1267204685.44293")
+.sub "" :load :init :subid("post50") :outer("10_1271336380.06238")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1267204685.44293"
+ .const 'Sub' $P12 = "10_1271336380.06238"
.local pmc block
set block, $P12
- $P539 = get_root_global ["parrot"], "P6metaclass"
- $P539."new_class"("HLL::Actions")
+ $P579 = get_root_global ["parrot"], "P6metaclass"
+ $P579."new_class"("HLL::Actions")
.end
.namespace ["HLL";"Actions"]
-.sub "_block13" :subid("11_1267204685.44293") :outer("10_1267204685.44293")
+.sub "_block13" :subid("11_1271336380.06238") :outer("10_1271336380.06238")
.annotate "line", 3
- .const 'Sub' $P521 = "45_1267204685.44293"
- capture_lex $P521
- .const 'Sub' $P496 = "43_1267204685.44293"
- capture_lex $P496
- .const 'Sub' $P465 = "42_1267204685.44293"
- capture_lex $P465
- .const 'Sub' $P455 = "41_1267204685.44293"
- capture_lex $P455
- .const 'Sub' $P438 = "40_1267204685.44293"
- capture_lex $P438
- .const 'Sub' $P421 = "39_1267204685.44293"
+ .const 'Sub' $P561 = "49_1271336380.06238"
+ capture_lex $P561
+ .const 'Sub' $P536 = "47_1271336380.06238"
+ capture_lex $P536
+ .const 'Sub' $P505 = "46_1271336380.06238"
+ capture_lex $P505
+ .const 'Sub' $P486 = "45_1271336380.06238"
+ capture_lex $P486
+ .const 'Sub' $P479 = "44_1271336380.06238"
+ capture_lex $P479
+ .const 'Sub' $P469 = "43_1271336380.06238"
+ capture_lex $P469
+ .const 'Sub' $P452 = "42_1271336380.06238"
+ capture_lex $P452
+ .const 'Sub' $P435 = "41_1271336380.06238"
+ capture_lex $P435
+ .const 'Sub' $P428 = "40_1271336380.06238"
+ capture_lex $P428
+ .const 'Sub' $P421 = "39_1271336380.06238"
capture_lex $P421
- .const 'Sub' $P414 = "38_1267204685.44293"
+ .const 'Sub' $P414 = "38_1271336380.06238"
capture_lex $P414
- .const 'Sub' $P407 = "37_1267204685.44293"
+ .const 'Sub' $P407 = "37_1271336380.06238"
capture_lex $P407
- .const 'Sub' $P400 = "36_1267204685.44293"
+ .const 'Sub' $P400 = "36_1271336380.06238"
capture_lex $P400
- .const 'Sub' $P393 = "35_1267204685.44293"
+ .const 'Sub' $P393 = "35_1271336380.06238"
capture_lex $P393
- .const 'Sub' $P383 = "34_1267204685.44293"
+ .const 'Sub' $P383 = "34_1271336380.06238"
capture_lex $P383
- .const 'Sub' $P376 = "33_1267204685.44293"
+ .const 'Sub' $P376 = "33_1271336380.06238"
capture_lex $P376
- .const 'Sub' $P360 = "32_1267204685.44293"
+ .const 'Sub' $P360 = "32_1271336380.06238"
capture_lex $P360
- .const 'Sub' $P285 = "30_1267204685.44293"
+ .const 'Sub' $P285 = "30_1271336380.06238"
capture_lex $P285
- .const 'Sub' $P222 = "27_1267204685.44293"
+ .const 'Sub' $P222 = "27_1271336380.06238"
capture_lex $P222
- .const 'Sub' $P213 = "26_1267204685.44293"
+ .const 'Sub' $P213 = "26_1271336380.06238"
capture_lex $P213
- .const 'Sub' $P204 = "25_1267204685.44293"
+ .const 'Sub' $P204 = "25_1271336380.06238"
capture_lex $P204
- .const 'Sub' $P195 = "24_1267204685.44293"
+ .const 'Sub' $P195 = "24_1271336380.06238"
capture_lex $P195
- .const 'Sub' $P186 = "23_1267204685.44293"
+ .const 'Sub' $P186 = "23_1271336380.06238"
capture_lex $P186
- .const 'Sub' $P177 = "22_1267204685.44293"
+ .const 'Sub' $P177 = "22_1271336380.06238"
capture_lex $P177
- .const 'Sub' $P167 = "21_1267204685.44293"
+ .const 'Sub' $P167 = "21_1271336380.06238"
capture_lex $P167
- .const 'Sub' $P157 = "20_1267204685.44293"
+ .const 'Sub' $P157 = "20_1271336380.06238"
capture_lex $P157
- .const 'Sub' $P149 = "19_1267204685.44293"
+ .const 'Sub' $P149 = "19_1271336380.06238"
capture_lex $P149
- .const 'Sub' $P139 = "18_1267204685.44293"
+ .const 'Sub' $P139 = "18_1271336380.06238"
capture_lex $P139
- .const 'Sub' $P129 = "17_1267204685.44293"
+ .const 'Sub' $P129 = "17_1271336380.06238"
capture_lex $P129
- .const 'Sub' $P28 = "14_1267204685.44293"
+ .const 'Sub' $P28 = "14_1271336380.06238"
capture_lex $P28
- .const 'Sub' $P22 = "13_1267204685.44293"
+ .const 'Sub' $P22 = "13_1271336380.06238"
capture_lex $P22
- .const 'Sub' $P15 = "12_1267204685.44293"
+ .const 'Sub' $P15 = "12_1271336380.06238"
capture_lex $P15
-.annotate "line", 188
- .const 'Sub' $P521 = "45_1267204685.44293"
- capture_lex $P521
+.annotate "line", 198
+ .const 'Sub' $P561 = "49_1271336380.06238"
+ capture_lex $P561
.annotate "line", 3
- .return ($P521)
+ .return ($P561)
.end
.namespace ["HLL";"Actions"]
-.sub "string_to_int" :subid("12_1267204685.44293") :outer("11_1267204685.44293")
+.sub "string_to_int" :subid("12_1271336380.06238") :outer("11_1271336380.06238")
.param pmc param_18
.param pmc param_19
.annotate "line", 3
@@ -4434,7 +4927,7 @@
.namespace ["HLL";"Actions"]
-.sub "ints_to_string" :subid("13_1267204685.44293") :outer("11_1267204685.44293")
+.sub "ints_to_string" :subid("13_1271336380.06238") :outer("11_1271336380.06238")
.param pmc param_25
.annotate "line", 37
new $P24, 'ExceptionHandler'
@@ -4475,14 +4968,14 @@
.namespace ["HLL";"Actions"]
-.sub "EXPR" :subid("14_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "EXPR" :subid("14_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_31
.param pmc param_32 :optional
.param int has_param_32 :opt_flag
.annotate "line", 62
- .const 'Sub' $P111 = "16_1267204685.44293"
+ .const 'Sub' $P111 = "16_1271336380.06238"
capture_lex $P111
- .const 'Sub' $P78 = "15_1267204685.44293"
+ .const 'Sub' $P78 = "15_1271336380.06238"
capture_lex $P78
new $P30, 'ExceptionHandler'
set_addr $P30, control_29
@@ -4490,10 +4983,10 @@
push_eh $P30
.lex "self", self
.lex "$/", param_31
- if has_param_32, optparam_47
+ if has_param_32, optparam_51
new $P33, "Undef"
set param_32, $P33
- optparam_47:
+ optparam_51:
.lex "$key", param_32
.annotate "line", 64
new $P34, "Undef"
@@ -4515,13 +5008,13 @@
defined $I43, $P39
if $I43, default_42
find_lex $P44, "$/"
- unless_null $P44, vivify_48
+ unless_null $P44, vivify_52
$P44 = root_new ['parrot';'Hash']
- vivify_48:
+ vivify_52:
set $P45, $P44["OPER"]
- unless_null $P45, vivify_49
+ unless_null $P45, vivify_53
new $P45, "Undef"
- vivify_49:
+ vivify_53:
$P46 = $P45."ast"()
set $P39, $P46
default_42:
@@ -4536,57 +5029,57 @@
store_lex "$past", $P51
.annotate "line", 67
find_lex $P53, "$/"
- unless_null $P53, vivify_50
+ unless_null $P53, vivify_54
$P53 = root_new ['parrot';'Hash']
- vivify_50:
+ vivify_54:
set $P54, $P53["OPER"]
- unless_null $P54, vivify_51
+ unless_null $P54, vivify_55
$P54 = root_new ['parrot';'Hash']
- vivify_51:
+ vivify_55:
set $P55, $P54["O"]
- unless_null $P55, vivify_52
+ unless_null $P55, vivify_56
$P55 = root_new ['parrot';'Hash']
- vivify_52:
+ vivify_56:
set $P56, $P55["pasttype"]
- unless_null $P56, vivify_53
+ unless_null $P56, vivify_57
new $P56, "Undef"
- vivify_53:
+ vivify_57:
if $P56, if_52
.annotate "line", 68
find_lex $P64, "$/"
- unless_null $P64, vivify_54
+ unless_null $P64, vivify_58
$P64 = root_new ['parrot';'Hash']
- vivify_54:
+ vivify_58:
set $P65, $P64["OPER"]
- unless_null $P65, vivify_55
+ unless_null $P65, vivify_59
$P65 = root_new ['parrot';'Hash']
- vivify_55:
+ vivify_59:
set $P66, $P65["O"]
- unless_null $P66, vivify_56
+ unless_null $P66, vivify_60
$P66 = root_new ['parrot';'Hash']
- vivify_56:
+ vivify_60:
set $P67, $P66["pirop"]
- unless_null $P67, vivify_57
+ unless_null $P67, vivify_61
new $P67, "Undef"
- vivify_57:
+ vivify_61:
unless $P67, if_63_end
find_lex $P68, "$past"
find_lex $P69, "$/"
- unless_null $P69, vivify_58
+ unless_null $P69, vivify_62
$P69 = root_new ['parrot';'Hash']
- vivify_58:
+ vivify_62:
set $P70, $P69["OPER"]
- unless_null $P70, vivify_59
+ unless_null $P70, vivify_63
$P70 = root_new ['parrot';'Hash']
- vivify_59:
+ vivify_63:
set $P71, $P70["O"]
- unless_null $P71, vivify_60
+ unless_null $P71, vivify_64
$P71 = root_new ['parrot';'Hash']
- vivify_60:
+ vivify_64:
set $P72, $P71["pirop"]
- unless_null $P72, vivify_61
+ unless_null $P72, vivify_65
new $P72, "Undef"
- vivify_61:
+ vivify_65:
set $S73, $P72
$P68."pirop"($S73)
if_63_end:
@@ -4595,21 +5088,21 @@
.annotate "line", 67
find_lex $P57, "$past"
find_lex $P58, "$/"
- unless_null $P58, vivify_62
+ unless_null $P58, vivify_66
$P58 = root_new ['parrot';'Hash']
- vivify_62:
+ vivify_66:
set $P59, $P58["OPER"]
- unless_null $P59, vivify_63
+ unless_null $P59, vivify_67
$P59 = root_new ['parrot';'Hash']
- vivify_63:
+ vivify_67:
set $P60, $P59["O"]
- unless_null $P60, vivify_64
+ unless_null $P60, vivify_68
$P60 = root_new ['parrot';'Hash']
- vivify_64:
+ vivify_68:
set $P61, $P60["pasttype"]
- unless_null $P61, vivify_65
+ unless_null $P61, vivify_69
new $P61, "Undef"
- vivify_65:
+ vivify_69:
set $S62, $P61
$P57."pasttype"($S62)
if_52_end:
@@ -4617,7 +5110,7 @@
find_lex $P75, "$past"
$P76 = $P75."name"()
if $P76, unless_74_end
- .const 'Sub' $P78 = "15_1267204685.44293"
+ .const 'Sub' $P78 = "15_1271336380.06238"
capture_lex $P78
$P78()
unless_74_end:
@@ -4631,7 +5124,7 @@
find_lex $P106, "$/"
$P107 = $P106."list"()
defined $I108, $P107
- unless $I108, for_undef_69
+ unless $I108, for_undef_73
iter $P105, $P107
new $P123, 'ExceptionHandler'
set_addr $P123, loop122_handler
@@ -4641,7 +5134,7 @@
unless $P105, loop122_done
shift $P109, $P105
loop122_redo:
- .const 'Sub' $P111 = "16_1267204685.44293"
+ .const 'Sub' $P111 = "16_1271336380.06238"
capture_lex $P111
$P111($P109)
loop122_next:
@@ -4654,20 +5147,20 @@
eq $P124, 67, loop122_redo
loop122_done:
pop_eh
- for_undef_69:
+ for_undef_73:
.annotate "line", 81
goto if_97_end
if_97:
.annotate "line", 80
find_lex $P101, "$past"
find_lex $P102, "$/"
- unless_null $P102, vivify_70
+ unless_null $P102, vivify_74
$P102 = root_new ['parrot';'ResizablePMCArray']
- vivify_70:
+ vivify_74:
set $P103, $P102[0]
- unless_null $P103, vivify_71
+ unless_null $P103, vivify_75
new $P103, "Undef"
- vivify_71:
+ vivify_75:
$P104 = $P103."ast"()
$P101."unshift"($P104)
if_97_end:
@@ -4686,7 +5179,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block77" :anon :subid("15_1267204685.44293") :outer("14_1267204685.44293")
+.sub "_block77" :anon :subid("15_1271336380.06238") :outer("14_1271336380.06238")
.annotate "line", 71
new $P79, "Undef"
.lex "$name", $P79
@@ -4709,17 +5202,17 @@
concat $P86, $P85, ":<"
.annotate "line", 76
find_lex $P87, "$/"
- unless_null $P87, vivify_66
+ unless_null $P87, vivify_70
$P87 = root_new ['parrot';'Hash']
- vivify_66:
+ vivify_70:
set $P88, $P87["OPER"]
- unless_null $P88, vivify_67
+ unless_null $P88, vivify_71
$P88 = root_new ['parrot';'Hash']
- vivify_67:
+ vivify_71:
set $P89, $P88["sym"]
- unless_null $P89, vivify_68
+ unless_null $P89, vivify_72
new $P89, "Undef"
- vivify_68:
+ vivify_72:
concat $P90, $P86, $P89
concat $P91, $P90, ">"
store_lex "$name", $P91
@@ -4736,7 +5229,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block110" :anon :subid("16_1267204685.44293") :outer("14_1267204685.44293")
+.sub "_block110" :anon :subid("16_1271336380.06238") :outer("14_1271336380.06238")
.param pmc param_112
.annotate "line", 82
.lex "$_", param_112
@@ -4759,7 +5252,7 @@
.namespace ["HLL";"Actions"]
-.sub "term:sym<circumfix>" :subid("17_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "term:sym<circumfix>" :subid("17_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_132
.annotate "line", 87
new $P131, 'ExceptionHandler'
@@ -4770,13 +5263,13 @@
.lex "$/", param_132
find_lex $P133, "$/"
find_lex $P134, "$/"
- unless_null $P134, vivify_72
+ unless_null $P134, vivify_76
$P134 = root_new ['parrot';'Hash']
- vivify_72:
+ vivify_76:
set $P135, $P134["circumfix"]
- unless_null $P135, vivify_73
+ unless_null $P135, vivify_77
new $P135, "Undef"
- vivify_73:
+ vivify_77:
$P136 = $P135."ast"()
$P137 = $P133."!make"($P136)
.return ($P137)
@@ -4789,7 +5282,7 @@
.namespace ["HLL";"Actions"]
-.sub "termish" :subid("18_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "termish" :subid("18_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_142
.annotate "line", 89
new $P141, 'ExceptionHandler'
@@ -4800,13 +5293,13 @@
.lex "$/", param_142
find_lex $P143, "$/"
find_lex $P144, "$/"
- unless_null $P144, vivify_74
+ unless_null $P144, vivify_78
$P144 = root_new ['parrot';'Hash']
- vivify_74:
+ vivify_78:
set $P145, $P144["term"]
- unless_null $P145, vivify_75
+ unless_null $P145, vivify_79
new $P145, "Undef"
- vivify_75:
+ vivify_79:
$P146 = $P145."ast"()
$P147 = $P143."!make"($P146)
.return ($P147)
@@ -4819,7 +5312,7 @@
.namespace ["HLL";"Actions"]
-.sub "nullterm" :subid("19_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "nullterm" :subid("19_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_152
.annotate "line", 90
new $P151, 'ExceptionHandler'
@@ -4841,7 +5334,7 @@
.namespace ["HLL";"Actions"]
-.sub "nullterm_alt" :subid("20_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "nullterm_alt" :subid("20_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_160
.annotate "line", 91
new $P159, 'ExceptionHandler'
@@ -4852,13 +5345,13 @@
.lex "$/", param_160
find_lex $P161, "$/"
find_lex $P162, "$/"
- unless_null $P162, vivify_76
+ unless_null $P162, vivify_80
$P162 = root_new ['parrot';'Hash']
- vivify_76:
+ vivify_80:
set $P163, $P162["term"]
- unless_null $P163, vivify_77
+ unless_null $P163, vivify_81
new $P163, "Undef"
- vivify_77:
+ vivify_81:
$P164 = $P163."ast"()
$P165 = $P161."!make"($P164)
.return ($P165)
@@ -4871,7 +5364,7 @@
.namespace ["HLL";"Actions"]
-.sub "integer" :subid("21_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "integer" :subid("21_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_170
.annotate "line", 93
new $P169, 'ExceptionHandler'
@@ -4882,13 +5375,13 @@
.lex "$/", param_170
find_lex $P171, "$/"
find_lex $P172, "$/"
- unless_null $P172, vivify_78
+ unless_null $P172, vivify_82
$P172 = root_new ['parrot';'Hash']
- vivify_78:
+ vivify_82:
set $P173, $P172["VALUE"]
- unless_null $P173, vivify_79
+ unless_null $P173, vivify_83
new $P173, "Undef"
- vivify_79:
+ vivify_83:
$P174 = $P173."ast"()
$P175 = $P171."!make"($P174)
.return ($P175)
@@ -4901,7 +5394,7 @@
.namespace ["HLL";"Actions"]
-.sub "dec_number" :subid("22_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "dec_number" :subid("22_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_180
.annotate "line", 95
new $P179, 'ExceptionHandler'
@@ -4924,7 +5417,7 @@
.namespace ["HLL";"Actions"]
-.sub "decint" :subid("23_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "decint" :subid("23_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_189
.annotate "line", 97
new $P188, 'ExceptionHandler'
@@ -4947,7 +5440,7 @@
.namespace ["HLL";"Actions"]
-.sub "hexint" :subid("24_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "hexint" :subid("24_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_198
.annotate "line", 98
new $P197, 'ExceptionHandler'
@@ -4970,7 +5463,7 @@
.namespace ["HLL";"Actions"]
-.sub "octint" :subid("25_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "octint" :subid("25_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_207
.annotate "line", 99
new $P206, 'ExceptionHandler'
@@ -4993,7 +5486,7 @@
.namespace ["HLL";"Actions"]
-.sub "binint" :subid("26_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "binint" :subid("26_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_216
.annotate "line", 100
new $P215, 'ExceptionHandler'
@@ -5016,10 +5509,10 @@
.namespace ["HLL";"Actions"]
-.sub "quote_EXPR" :subid("27_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_EXPR" :subid("27_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_225
.annotate "line", 102
- .const 'Sub' $P241 = "28_1267204685.44293"
+ .const 'Sub' $P241 = "28_1271336380.06238"
capture_lex $P241
new $P224, 'ExceptionHandler'
set_addr $P224, control_223
@@ -5031,19 +5524,19 @@
new $P226, "Undef"
.lex "$past", $P226
find_lex $P227, "$/"
- unless_null $P227, vivify_80
+ unless_null $P227, vivify_84
$P227 = root_new ['parrot';'Hash']
- vivify_80:
+ vivify_84:
set $P228, $P227["quote_delimited"]
- unless_null $P228, vivify_81
+ unless_null $P228, vivify_85
new $P228, "Undef"
- vivify_81:
+ vivify_85:
$P229 = $P228."ast"()
store_lex "$past", $P229
.annotate "line", 104
- get_hll_global $P231, ["HLL";"Grammar"], "quotemod_check"
- find_lex $P232, "$/"
- $P233 = $P231($P232, "w")
+ find_lex $P231, "$/"
+ $P232 = $P231."CURSOR"()
+ $P233 = $P232."quotemod_check"("w")
unless $P233, if_230_end
.annotate "line", 105
get_hll_global $P235, ["PAST"], "Node"
@@ -5051,7 +5544,7 @@
$P237 = $P235."ACCEPTS"($P236)
if $P237, if_234
.annotate "line", 108
- .const 'Sub' $P241 = "28_1267204685.44293"
+ .const 'Sub' $P241 = "28_1271336380.06238"
capture_lex $P241
$P241()
goto if_234_end
@@ -5090,9 +5583,9 @@
.namespace ["HLL";"Actions"]
-.sub "_block240" :anon :subid("28_1267204685.44293") :outer("27_1267204685.44293")
+.sub "_block240" :anon :subid("28_1271336380.06238") :outer("27_1271336380.06238")
.annotate "line", 108
- .const 'Sub' $P260 = "29_1267204685.44293"
+ .const 'Sub' $P260 = "29_1271336380.06238"
capture_lex $P260
.annotate "line", 109
$P242 = root_new ['parrot';'ResizablePMCArray']
@@ -5109,13 +5602,13 @@
if $I251, if_248
.annotate "line", 115
find_lex $P268, "@words"
- unless_null $P268, vivify_82
+ unless_null $P268, vivify_86
$P268 = root_new ['parrot';'ResizablePMCArray']
- vivify_82:
+ vivify_86:
set $P269, $P268[0]
- unless_null $P269, vivify_83
+ unless_null $P269, vivify_87
new $P269, "Undef"
- vivify_83:
+ vivify_87:
set $S270, $P269
new $P271, 'String'
set $P271, $S270
@@ -5133,7 +5626,7 @@
.annotate "line", 112
find_lex $P256, "@words"
defined $I257, $P256
- unless $I257, for_undef_84
+ unless $I257, for_undef_88
iter $P255, $P256
new $P266, 'ExceptionHandler'
set_addr $P266, loop265_handler
@@ -5143,7 +5636,7 @@
unless $P255, loop265_done
shift $P258, $P255
loop265_redo:
- .const 'Sub' $P260 = "29_1267204685.44293"
+ .const 'Sub' $P260 = "29_1271336380.06238"
capture_lex $P260
$P260($P258)
loop265_next:
@@ -5156,7 +5649,7 @@
eq $P267, 67, loop265_redo
loop265_done:
pop_eh
- for_undef_84:
+ for_undef_88:
.annotate "line", 110
set $P247, $P255
if_248_end:
@@ -5166,7 +5659,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block259" :anon :subid("29_1267204685.44293") :outer("28_1267204685.44293")
+.sub "_block259" :anon :subid("29_1271336380.06238") :outer("28_1271336380.06238")
.param pmc param_261
.annotate "line", 112
.lex "$_", param_261
@@ -5178,10 +5671,10 @@
.namespace ["HLL";"Actions"]
-.sub "quote_delimited" :subid("30_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_delimited" :subid("30_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_288
.annotate "line", 125
- .const 'Sub' $P300 = "31_1267204685.44293"
+ .const 'Sub' $P300 = "31_1271336380.06238"
capture_lex $P300
new $P287, 'ExceptionHandler'
set_addr $P287, control_286
@@ -5206,15 +5699,15 @@
store_lex "$lastlit", $P293
.annotate "line", 128
find_lex $P295, "$/"
- unless_null $P295, vivify_85
+ unless_null $P295, vivify_89
$P295 = root_new ['parrot';'Hash']
- vivify_85:
+ vivify_89:
set $P296, $P295["quote_atom"]
- unless_null $P296, vivify_86
+ unless_null $P296, vivify_90
new $P296, "Undef"
- vivify_86:
+ vivify_90:
defined $I297, $P296
- unless $I297, for_undef_87
+ unless $I297, for_undef_91
iter $P294, $P296
new $P333, 'ExceptionHandler'
set_addr $P333, loop332_handler
@@ -5224,7 +5717,7 @@
unless $P294, loop332_done
shift $P298, $P294
loop332_redo:
- .const 'Sub' $P300 = "31_1267204685.44293"
+ .const 'Sub' $P300 = "31_1271336380.06238"
capture_lex $P300
$P300($P298)
loop332_next:
@@ -5237,7 +5730,7 @@
eq $P334, 67, loop332_redo
loop332_done:
pop_eh
- for_undef_87:
+ for_undef_91:
.annotate "line", 142
find_lex $P336, "$lastlit"
set $S337, $P336
@@ -5302,7 +5795,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block299" :anon :subid("31_1267204685.44293") :outer("30_1267204685.44293")
+.sub "_block299" :anon :subid("31_1271336380.06238") :outer("30_1271336380.06238")
.param pmc param_302
.annotate "line", 129
new $P301, "Undef"
@@ -5371,7 +5864,7 @@
.namespace ["HLL";"Actions"]
-.sub "quote_atom" :subid("32_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_atom" :subid("32_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_363
.annotate "line", 150
new $P362, 'ExceptionHandler'
@@ -5383,13 +5876,13 @@
.annotate "line", 151
find_lex $P364, "$/"
find_lex $P367, "$/"
- unless_null $P367, vivify_88
+ unless_null $P367, vivify_92
$P367 = root_new ['parrot';'Hash']
- vivify_88:
+ vivify_92:
set $P368, $P367["quote_escape"]
- unless_null $P368, vivify_89
+ unless_null $P368, vivify_93
new $P368, "Undef"
- vivify_89:
+ vivify_93:
if $P368, if_366
find_lex $P372, "$/"
set $S373, $P372
@@ -5398,13 +5891,13 @@
goto if_366_end
if_366:
find_lex $P369, "$/"
- unless_null $P369, vivify_90
+ unless_null $P369, vivify_94
$P369 = root_new ['parrot';'Hash']
- vivify_90:
+ vivify_94:
set $P370, $P369["quote_escape"]
- unless_null $P370, vivify_91
+ unless_null $P370, vivify_95
new $P370, "Undef"
- vivify_91:
+ vivify_95:
$P371 = $P370."ast"()
set $P365, $P371
if_366_end:
@@ -5420,7 +5913,7 @@
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<backslash>" :subid("33_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_escape:sym<backslash>" :subid("33_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_379
.annotate "line", 154
new $P378, 'ExceptionHandler'
@@ -5441,7 +5934,7 @@
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<stopper>" :subid("34_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_escape:sym<stopper>" :subid("34_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_386
.annotate "line", 155
new $P385, 'ExceptionHandler'
@@ -5452,13 +5945,13 @@
.lex "$/", param_386
find_lex $P387, "$/"
find_lex $P388, "$/"
- unless_null $P388, vivify_92
+ unless_null $P388, vivify_96
$P388 = root_new ['parrot';'Hash']
- vivify_92:
+ vivify_96:
set $P389, $P388["stopper"]
- unless_null $P389, vivify_93
+ unless_null $P389, vivify_97
new $P389, "Undef"
- vivify_93:
+ vivify_97:
set $S390, $P389
$P391 = $P387."!make"($S390)
.return ($P391)
@@ -5471,7 +5964,7 @@
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<bs>" :subid("35_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_escape:sym<bs>" :subid("35_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_396
.annotate "line", 157
new $P395, 'ExceptionHandler'
@@ -5492,7 +5985,7 @@
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<nl>" :subid("36_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_escape:sym<nl>" :subid("36_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_403
.annotate "line", 158
new $P402, 'ExceptionHandler'
@@ -5513,7 +6006,7 @@
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<cr>" :subid("37_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_escape:sym<cr>" :subid("37_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_410
.annotate "line", 159
new $P409, 'ExceptionHandler'
@@ -5534,7 +6027,7 @@
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<tab>" :subid("38_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_escape:sym<tab>" :subid("38_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_417
.annotate "line", 160
new $P416, 'ExceptionHandler'
@@ -5555,359 +6048,482 @@
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<hex>" :subid("39_1267204685.44293") :method :outer("11_1267204685.44293")
+.sub "quote_escape:sym<ff>" :subid("39_1271336380.06238") :method :outer("11_1271336380.06238")
.param pmc param_424
-.annotate "line", 162
+.annotate "line", 161
new $P423, 'ExceptionHandler'
set_addr $P423, control_422
$P423."handle_types"(58)
push_eh $P423
.lex "self", self
.lex "$/", param_424
-.annotate "line", 163
find_lex $P425, "$/"
- find_lex $P428, "$/"
- unless_null $P428, vivify_94
- $P428 = root_new ['parrot';'Hash']
- vivify_94:
- set $P429, $P428["hexint"]
- unless_null $P429, vivify_95
- new $P429, "Undef"
- vivify_95:
- if $P429, if_427
- find_lex $P432, "$/"
- unless_null $P432, vivify_96
- $P432 = root_new ['parrot';'Hash']
- vivify_96:
- set $P433, $P432["hexints"]
- unless_null $P433, vivify_97
- $P433 = root_new ['parrot';'Hash']
- vivify_97:
- set $P434, $P433["hexint"]
- unless_null $P434, vivify_98
- new $P434, "Undef"
- vivify_98:
- set $P426, $P434
- goto if_427_end
- if_427:
- find_lex $P430, "$/"
- unless_null $P430, vivify_99
- $P430 = root_new ['parrot';'Hash']
- vivify_99:
- set $P431, $P430["hexint"]
- unless_null $P431, vivify_100
- new $P431, "Undef"
- vivify_100:
- set $P426, $P431
- if_427_end:
- $P435 = "ints_to_string"($P426)
- $P436 = $P425."!make"($P435)
-.annotate "line", 162
- .return ($P436)
+ $P426 = $P425."!make"("\f")
+ .return ($P426)
control_422:
.local pmc exception
.get_results (exception)
- getattribute $P437, exception, "payload"
- .return ($P437)
+ getattribute $P427, exception, "payload"
+ .return ($P427)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<oct>" :subid("40_1267204685.44293") :method :outer("11_1267204685.44293")
- .param pmc param_441
-.annotate "line", 166
- new $P440, 'ExceptionHandler'
- set_addr $P440, control_439
- $P440."handle_types"(58)
- push_eh $P440
+.sub "quote_escape:sym<esc>" :subid("40_1271336380.06238") :method :outer("11_1271336380.06238")
+ .param pmc param_431
+.annotate "line", 162
+ new $P430, 'ExceptionHandler'
+ set_addr $P430, control_429
+ $P430."handle_types"(58)
+ push_eh $P430
.lex "self", self
- .lex "$/", param_441
-.annotate "line", 167
+ .lex "$/", param_431
+ find_lex $P432, "$/"
+ $P433 = $P432."!make"("\e")
+ .return ($P433)
+ control_429:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P434, exception, "payload"
+ .return ($P434)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.sub "quote_escape:sym<hex>" :subid("41_1271336380.06238") :method :outer("11_1271336380.06238")
+ .param pmc param_438
+.annotate "line", 164
+ new $P437, 'ExceptionHandler'
+ set_addr $P437, control_436
+ $P437."handle_types"(58)
+ push_eh $P437
+ .lex "self", self
+ .lex "$/", param_438
+.annotate "line", 165
+ find_lex $P439, "$/"
find_lex $P442, "$/"
- find_lex $P445, "$/"
- unless_null $P445, vivify_101
- $P445 = root_new ['parrot';'Hash']
+ unless_null $P442, vivify_98
+ $P442 = root_new ['parrot';'Hash']
+ vivify_98:
+ set $P443, $P442["hexint"]
+ unless_null $P443, vivify_99
+ new $P443, "Undef"
+ vivify_99:
+ if $P443, if_441
+ find_lex $P446, "$/"
+ unless_null $P446, vivify_100
+ $P446 = root_new ['parrot';'Hash']
+ vivify_100:
+ set $P447, $P446["hexints"]
+ unless_null $P447, vivify_101
+ $P447 = root_new ['parrot';'Hash']
vivify_101:
- set $P446, $P445["octint"]
- unless_null $P446, vivify_102
- new $P446, "Undef"
+ set $P448, $P447["hexint"]
+ unless_null $P448, vivify_102
+ new $P448, "Undef"
vivify_102:
- if $P446, if_444
- find_lex $P449, "$/"
- unless_null $P449, vivify_103
- $P449 = root_new ['parrot';'Hash']
+ set $P440, $P448
+ goto if_441_end
+ if_441:
+ find_lex $P444, "$/"
+ unless_null $P444, vivify_103
+ $P444 = root_new ['parrot';'Hash']
vivify_103:
- set $P450, $P449["octints"]
- unless_null $P450, vivify_104
- $P450 = root_new ['parrot';'Hash']
+ set $P445, $P444["hexint"]
+ unless_null $P445, vivify_104
+ new $P445, "Undef"
vivify_104:
- set $P451, $P450["octint"]
- unless_null $P451, vivify_105
- new $P451, "Undef"
- vivify_105:
- set $P443, $P451
- goto if_444_end
- if_444:
- find_lex $P447, "$/"
- unless_null $P447, vivify_106
- $P447 = root_new ['parrot';'Hash']
- vivify_106:
- set $P448, $P447["octint"]
- unless_null $P448, vivify_107
- new $P448, "Undef"
- vivify_107:
- set $P443, $P448
- if_444_end:
- $P452 = "ints_to_string"($P443)
- $P453 = $P442."!make"($P452)
-.annotate "line", 166
- .return ($P453)
- control_439:
+ set $P440, $P445
+ if_441_end:
+ $P449 = "ints_to_string"($P440)
+ $P450 = $P439."!make"($P449)
+.annotate "line", 164
+ .return ($P450)
+ control_436:
.local pmc exception
.get_results (exception)
- getattribute $P454, exception, "payload"
- .return ($P454)
+ getattribute $P451, exception, "payload"
+ .return ($P451)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<chr>" :subid("41_1267204685.44293") :method :outer("11_1267204685.44293")
- .param pmc param_458
-.annotate "line", 170
- new $P457, 'ExceptionHandler'
- set_addr $P457, control_456
- $P457."handle_types"(58)
- push_eh $P457
+.sub "quote_escape:sym<oct>" :subid("42_1271336380.06238") :method :outer("11_1271336380.06238")
+ .param pmc param_455
+.annotate "line", 168
+ new $P454, 'ExceptionHandler'
+ set_addr $P454, control_453
+ $P454."handle_types"(58)
+ push_eh $P454
.lex "self", self
- .lex "$/", param_458
-.annotate "line", 171
+ .lex "$/", param_455
+.annotate "line", 169
+ find_lex $P456, "$/"
find_lex $P459, "$/"
- find_lex $P460, "$/"
- unless_null $P460, vivify_108
- $P460 = root_new ['parrot';'Hash']
+ unless_null $P459, vivify_105
+ $P459 = root_new ['parrot';'Hash']
+ vivify_105:
+ set $P460, $P459["octint"]
+ unless_null $P460, vivify_106
+ new $P460, "Undef"
+ vivify_106:
+ if $P460, if_458
+ find_lex $P463, "$/"
+ unless_null $P463, vivify_107
+ $P463 = root_new ['parrot';'Hash']
+ vivify_107:
+ set $P464, $P463["octints"]
+ unless_null $P464, vivify_108
+ $P464 = root_new ['parrot';'Hash']
vivify_108:
- set $P461, $P460["charspec"]
- unless_null $P461, vivify_109
- new $P461, "Undef"
+ set $P465, $P464["octint"]
+ unless_null $P465, vivify_109
+ new $P465, "Undef"
vivify_109:
- $P462 = $P461."ast"()
- $P463 = $P459."!make"($P462)
-.annotate "line", 170
- .return ($P463)
- control_456:
+ set $P457, $P465
+ goto if_458_end
+ if_458:
+ find_lex $P461, "$/"
+ unless_null $P461, vivify_110
+ $P461 = root_new ['parrot';'Hash']
+ vivify_110:
+ set $P462, $P461["octint"]
+ unless_null $P462, vivify_111
+ new $P462, "Undef"
+ vivify_111:
+ set $P457, $P462
+ if_458_end:
+ $P466 = "ints_to_string"($P457)
+ $P467 = $P456."!make"($P466)
+.annotate "line", 168
+ .return ($P467)
+ control_453:
.local pmc exception
.get_results (exception)
- getattribute $P464, exception, "payload"
- .return ($P464)
+ getattribute $P468, exception, "payload"
+ .return ($P468)
.end
.namespace ["HLL";"Actions"]
-.sub "charname" :subid("42_1267204685.44293") :method :outer("11_1267204685.44293")
- .param pmc param_468
-.annotate "line", 174
- new $P467, 'ExceptionHandler'
- set_addr $P467, control_466
- $P467."handle_types"(58)
- push_eh $P467
+.sub "quote_escape:sym<chr>" :subid("43_1271336380.06238") :method :outer("11_1271336380.06238")
+ .param pmc param_472
+.annotate "line", 172
+ new $P471, 'ExceptionHandler'
+ set_addr $P471, control_470
+ $P471."handle_types"(58)
+ push_eh $P471
.lex "self", self
- .lex "$/", param_468
-.annotate "line", 175
- new $P469, "Undef"
- .lex "$codepoint", $P469
-.annotate "line", 176
- find_lex $P472, "$/"
- unless_null $P472, vivify_110
- $P472 = root_new ['parrot';'Hash']
- vivify_110:
- set $P473, $P472["integer"]
- unless_null $P473, vivify_111
- new $P473, "Undef"
- vivify_111:
- if $P473, if_471
-.annotate "line", 177
- $P477 = new ['CodeString']
- find_lex $P478, "$/"
- set $S479, $P478
- $P480 = $P477."charname_to_ord"($S479)
- set $P470, $P480
-.annotate "line", 176
- goto if_471_end
- if_471:
+ .lex "$/", param_472
+.annotate "line", 173
+ find_lex $P473, "$/"
find_lex $P474, "$/"
unless_null $P474, vivify_112
$P474 = root_new ['parrot';'Hash']
vivify_112:
- set $P475, $P474["integer"]
+ set $P475, $P474["charspec"]
unless_null $P475, vivify_113
new $P475, "Undef"
vivify_113:
$P476 = $P475."ast"()
- set $P470, $P476
- if_471_end:
- store_lex "$codepoint", $P470
-.annotate "line", 178
- find_lex $P482, "$codepoint"
- set $N483, $P482
- islt $I484, $N483, 0.0
- unless $I484, if_481_end
- find_lex $P485, "$/"
- $P486 = $P485."CURSOR"()
- new $P487, 'String'
- set $P487, "Unrecognized character name "
- find_lex $P488, "$/"
- concat $P489, $P487, $P488
- $P486."panic"($P489)
- if_481_end:
-.annotate "line", 179
- find_lex $P490, "$/"
- find_lex $P491, "$codepoint"
- set $I492, $P491
- chr $S493, $I492
- $P494 = $P490."!make"($S493)
-.annotate "line", 174
- .return ($P494)
- control_466:
+ $P477 = $P473."!make"($P476)
+.annotate "line", 172
+ .return ($P477)
+ control_470:
.local pmc exception
.get_results (exception)
- getattribute $P495, exception, "payload"
- .return ($P495)
+ getattribute $P478, exception, "payload"
+ .return ($P478)
.end
.namespace ["HLL";"Actions"]
-.sub "charnames" :subid("43_1267204685.44293") :method :outer("11_1267204685.44293")
- .param pmc param_499
-.annotate "line", 182
- .const 'Sub' $P508 = "44_1267204685.44293"
- capture_lex $P508
- new $P498, 'ExceptionHandler'
- set_addr $P498, control_497
- $P498."handle_types"(58)
- push_eh $P498
+.sub "quote_escape:sym<0>" :subid("44_1271336380.06238") :method :outer("11_1271336380.06238")
+ .param pmc param_482
+.annotate "line", 176
+ new $P481, 'ExceptionHandler'
+ set_addr $P481, control_480
+ $P481."handle_types"(58)
+ push_eh $P481
.lex "self", self
- .lex "$/", param_499
-.annotate "line", 183
- new $P500, "Undef"
- .lex "$str", $P500
- new $P501, "String"
- assign $P501, ""
- store_lex "$str", $P501
-.annotate "line", 184
- find_lex $P503, "$/"
- unless_null $P503, vivify_114
- $P503 = root_new ['parrot';'Hash']
- vivify_114:
- set $P504, $P503["charname"]
- unless_null $P504, vivify_115
- new $P504, "Undef"
- vivify_115:
- defined $I505, $P504
- unless $I505, for_undef_116
- iter $P502, $P504
- new $P515, 'ExceptionHandler'
- set_addr $P515, loop514_handler
- $P515."handle_types"(65, 67, 66)
- push_eh $P515
- loop514_test:
- unless $P502, loop514_done
- shift $P506, $P502
- loop514_redo:
- .const 'Sub' $P508 = "44_1267204685.44293"
- capture_lex $P508
- $P508($P506)
- loop514_next:
- goto loop514_test
- loop514_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P516, exception, 'type'
- eq $P516, 65, loop514_next
- eq $P516, 67, loop514_redo
- loop514_done:
- pop_eh
- for_undef_116:
-.annotate "line", 185
- find_lex $P517, "$/"
- find_lex $P518, "$str"
- $P519 = $P517."!make"($P518)
-.annotate "line", 182
- .return ($P519)
- control_497:
+ .lex "$/", param_482
+.annotate "line", 177
+ find_lex $P483, "$/"
+ $P484 = $P483."!make"(unicode:"\x{0}")
+.annotate "line", 176
+ .return ($P484)
+ control_480:
.local pmc exception
.get_results (exception)
- getattribute $P520, exception, "payload"
- .return ($P520)
+ getattribute $P485, exception, "payload"
+ .return ($P485)
.end
.namespace ["HLL";"Actions"]
-.sub "_block507" :anon :subid("44_1267204685.44293") :outer("43_1267204685.44293")
- .param pmc param_509
-.annotate "line", 184
- .lex "$_", param_509
- find_lex $P510, "$str"
- find_lex $P511, "$_"
- $S512 = $P511."ast"()
- concat $P513, $P510, $S512
- store_lex "$str", $P513
- .return ($P513)
+.sub "quote_escape:sym<misc>" :subid("45_1271336380.06238") :method :outer("11_1271336380.06238")
+ .param pmc param_489
+.annotate "line", 180
+ new $P488, 'ExceptionHandler'
+ set_addr $P488, control_487
+ $P488."handle_types"(58)
+ push_eh $P488
+ .lex "self", self
+ .lex "$/", param_489
+.annotate "line", 181
+ find_lex $P490, "$/"
+ find_lex $P493, "$/"
+ unless_null $P493, vivify_114
+ $P493 = root_new ['parrot';'Hash']
+ vivify_114:
+ set $P494, $P493["textq"]
+ unless_null $P494, vivify_115
+ new $P494, "Undef"
+ vivify_115:
+ if $P494, if_492
+ find_lex $P500, "$/"
+ unless_null $P500, vivify_116
+ $P500 = root_new ['parrot';'Hash']
+ vivify_116:
+ set $P501, $P500["textqq"]
+ unless_null $P501, vivify_117
+ new $P501, "Undef"
+ vivify_117:
+ $P502 = $P501."Str"()
+ set $P491, $P502
+ goto if_492_end
+ if_492:
+ new $P495, "String"
+ assign $P495, "\\"
+ find_lex $P496, "$/"
+ unless_null $P496, vivify_118
+ $P496 = root_new ['parrot';'Hash']
+ vivify_118:
+ set $P497, $P496["textq"]
+ unless_null $P497, vivify_119
+ new $P497, "Undef"
+ vivify_119:
+ $S498 = $P497."Str"()
+ concat $P499, $P495, $S498
+ set $P491, $P499
+ if_492_end:
+ $P503 = $P490."!make"($P491)
+.annotate "line", 180
+ .return ($P503)
+ control_487:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P504, exception, "payload"
+ .return ($P504)
.end
.namespace ["HLL";"Actions"]
-.sub "charspec" :subid("45_1267204685.44293") :method :outer("11_1267204685.44293")
- .param pmc param_524
-.annotate "line", 188
- new $P523, 'ExceptionHandler'
- set_addr $P523, control_522
- $P523."handle_types"(58)
- push_eh $P523
+.sub "charname" :subid("46_1271336380.06238") :method :outer("11_1271336380.06238")
+ .param pmc param_508
+.annotate "line", 184
+ new $P507, 'ExceptionHandler'
+ set_addr $P507, control_506
+ $P507."handle_types"(58)
+ push_eh $P507
.lex "self", self
- .lex "$/", param_524
-.annotate "line", 189
+ .lex "$/", param_508
+.annotate "line", 185
+ new $P509, "Undef"
+ .lex "$codepoint", $P509
+.annotate "line", 186
+ find_lex $P512, "$/"
+ unless_null $P512, vivify_120
+ $P512 = root_new ['parrot';'Hash']
+ vivify_120:
+ set $P513, $P512["integer"]
+ unless_null $P513, vivify_121
+ new $P513, "Undef"
+ vivify_121:
+ if $P513, if_511
+.annotate "line", 187
+ $P517 = new ['CodeString']
+ find_lex $P518, "$/"
+ set $S519, $P518
+ $P520 = $P517."charname_to_ord"($S519)
+ set $P510, $P520
+.annotate "line", 186
+ goto if_511_end
+ if_511:
+ find_lex $P514, "$/"
+ unless_null $P514, vivify_122
+ $P514 = root_new ['parrot';'Hash']
+ vivify_122:
+ set $P515, $P514["integer"]
+ unless_null $P515, vivify_123
+ new $P515, "Undef"
+ vivify_123:
+ $P516 = $P515."ast"()
+ set $P510, $P516
+ if_511_end:
+ store_lex "$codepoint", $P510
+.annotate "line", 188
+ find_lex $P522, "$codepoint"
+ set $N523, $P522
+ islt $I524, $N523, 0.0
+ unless $I524, if_521_end
find_lex $P525, "$/"
+ $P526 = $P525."CURSOR"()
+ new $P527, 'String'
+ set $P527, "Unrecognized character name "
find_lex $P528, "$/"
- unless_null $P528, vivify_117
- $P528 = root_new ['parrot';'Hash']
- vivify_117:
- set $P529, $P528["charnames"]
- unless_null $P529, vivify_118
- new $P529, "Undef"
- vivify_118:
- if $P529, if_527
- find_lex $P533, "$/"
- $I534 = "string_to_int"($P533, 10)
- chr $S535, $I534
- new $P526, 'String'
- set $P526, $S535
- goto if_527_end
- if_527:
+ concat $P529, $P527, $P528
+ $P526."panic"($P529)
+ if_521_end:
+.annotate "line", 189
find_lex $P530, "$/"
- unless_null $P530, vivify_119
- $P530 = root_new ['parrot';'Hash']
- vivify_119:
- set $P531, $P530["charnames"]
- unless_null $P531, vivify_120
- new $P531, "Undef"
- vivify_120:
- $P532 = $P531."ast"()
- set $P526, $P532
- if_527_end:
- $P536 = $P525."!make"($P526)
-.annotate "line", 188
- .return ($P536)
- control_522:
+ find_lex $P531, "$codepoint"
+ set $I532, $P531
+ chr $S533, $I532
+ $P534 = $P530."!make"($S533)
+.annotate "line", 184
+ .return ($P534)
+ control_506:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P535, exception, "payload"
+ .return ($P535)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.sub "charnames" :subid("47_1271336380.06238") :method :outer("11_1271336380.06238")
+ .param pmc param_539
+.annotate "line", 192
+ .const 'Sub' $P548 = "48_1271336380.06238"
+ capture_lex $P548
+ new $P538, 'ExceptionHandler'
+ set_addr $P538, control_537
+ $P538."handle_types"(58)
+ push_eh $P538
+ .lex "self", self
+ .lex "$/", param_539
+.annotate "line", 193
+ new $P540, "Undef"
+ .lex "$str", $P540
+ new $P541, "String"
+ assign $P541, ""
+ store_lex "$str", $P541
+.annotate "line", 194
+ find_lex $P543, "$/"
+ unless_null $P543, vivify_124
+ $P543 = root_new ['parrot';'Hash']
+ vivify_124:
+ set $P544, $P543["charname"]
+ unless_null $P544, vivify_125
+ new $P544, "Undef"
+ vivify_125:
+ defined $I545, $P544
+ unless $I545, for_undef_126
+ iter $P542, $P544
+ new $P555, 'ExceptionHandler'
+ set_addr $P555, loop554_handler
+ $P555."handle_types"(65, 67, 66)
+ push_eh $P555
+ loop554_test:
+ unless $P542, loop554_done
+ shift $P546, $P542
+ loop554_redo:
+ .const 'Sub' $P548 = "48_1271336380.06238"
+ capture_lex $P548
+ $P548($P546)
+ loop554_next:
+ goto loop554_test
+ loop554_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P556, exception, 'type'
+ eq $P556, 65, loop554_next
+ eq $P556, 67, loop554_redo
+ loop554_done:
+ pop_eh
+ for_undef_126:
+.annotate "line", 195
+ find_lex $P557, "$/"
+ find_lex $P558, "$str"
+ $P559 = $P557."!make"($P558)
+.annotate "line", 192
+ .return ($P559)
+ control_537:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P560, exception, "payload"
+ .return ($P560)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.sub "_block547" :anon :subid("48_1271336380.06238") :outer("47_1271336380.06238")
+ .param pmc param_549
+.annotate "line", 194
+ .lex "$_", param_549
+ find_lex $P550, "$str"
+ find_lex $P551, "$_"
+ $S552 = $P551."ast"()
+ concat $P553, $P550, $S552
+ store_lex "$str", $P553
+ .return ($P553)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.sub "charspec" :subid("49_1271336380.06238") :method :outer("11_1271336380.06238")
+ .param pmc param_564
+.annotate "line", 198
+ new $P563, 'ExceptionHandler'
+ set_addr $P563, control_562
+ $P563."handle_types"(58)
+ push_eh $P563
+ .lex "self", self
+ .lex "$/", param_564
+.annotate "line", 199
+ find_lex $P565, "$/"
+ find_lex $P568, "$/"
+ unless_null $P568, vivify_127
+ $P568 = root_new ['parrot';'Hash']
+ vivify_127:
+ set $P569, $P568["charnames"]
+ unless_null $P569, vivify_128
+ new $P569, "Undef"
+ vivify_128:
+ if $P569, if_567
+ find_lex $P573, "$/"
+ $I574 = "string_to_int"($P573, 10)
+ chr $S575, $I574
+ new $P566, 'String'
+ set $P566, $S575
+ goto if_567_end
+ if_567:
+ find_lex $P570, "$/"
+ unless_null $P570, vivify_129
+ $P570 = root_new ['parrot';'Hash']
+ vivify_129:
+ set $P571, $P570["charnames"]
+ unless_null $P571, vivify_130
+ new $P571, "Undef"
+ vivify_130:
+ $P572 = $P571."ast"()
+ set $P566, $P572
+ if_567_end:
+ $P576 = $P565."!make"($P566)
+.annotate "line", 198
+ .return ($P576)
+ control_562:
.local pmc exception
.get_results (exception)
- getattribute $P537, exception, "payload"
- .return ($P537)
+ getattribute $P577, exception, "payload"
+ .return ($P577)
.end
### .include 'gen/hllcompiler.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1267204686.55407")
+.sub "_block11" :anon :subid("10_1271336381.18625")
.annotate "line", 0
get_hll_global $P14, ["HLL";"Compiler"], "_block13"
capture_lex $P14
@@ -5921,9 +6537,9 @@
.namespace []
-.sub "" :load :init :subid("post25") :outer("10_1267204686.55407")
+.sub "" :load :init :subid("post25") :outer("10_1271336381.18625")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1267204686.55407"
+ .const 'Sub' $P12 = "10_1271336381.18625"
.local pmc block
set block, $P12
.annotate "line", 2
@@ -5937,28 +6553,28 @@
.namespace ["HLL";"Compiler"]
-.sub "_block13" :subid("11_1267204686.55407") :outer("10_1267204686.55407")
+.sub "_block13" :subid("11_1271336381.18625") :outer("10_1271336381.18625")
.annotate "line", 6
- .const 'Sub' $P187 = "20_1267204686.55407"
+ .const 'Sub' $P187 = "20_1271336381.18625"
capture_lex $P187
- .const 'Sub' $P152 = "18_1267204686.55407"
+ .const 'Sub' $P152 = "18_1271336381.18625"
capture_lex $P152
- .const 'Sub' $P137 = "17_1267204686.55407"
+ .const 'Sub' $P137 = "17_1271336381.18625"
capture_lex $P137
- .const 'Sub' $P121 = "16_1267204686.55407"
+ .const 'Sub' $P121 = "16_1271336381.18625"
capture_lex $P121
- .const 'Sub' $P32 = "13_1267204686.55407"
+ .const 'Sub' $P32 = "13_1271336381.18625"
capture_lex $P32
- .const 'Sub' $P15 = "12_1267204686.55407"
+ .const 'Sub' $P15 = "12_1271336381.18625"
capture_lex $P15
.annotate "line", 14
- .const 'Sub' $P15 = "12_1267204686.55407"
+ .const 'Sub' $P15 = "12_1271336381.18625"
capture_lex $P15
.lex "value_type", $P15
.annotate "line", 10
find_lex $P31, "value_type"
.annotate "line", 69
- .const 'Sub' $P187 = "20_1267204686.55407"
+ .const 'Sub' $P187 = "20_1271336381.18625"
capture_lex $P187
.annotate "line", 6
.return ($P187)
@@ -5966,7 +6582,7 @@
.namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post26") :outer("11_1267204686.55407")
+.sub "" :load :init :subid("post26") :outer("11_1271336381.18625")
.annotate "line", 6
get_hll_global $P14, ["HLL";"Compiler"], "_block13"
.local pmc block
@@ -5978,7 +6594,7 @@
.namespace ["HLL";"Compiler"]
-.sub "value_type" :subid("12_1267204686.55407") :outer("11_1267204686.55407")
+.sub "value_type" :subid("12_1271336381.18625") :outer("11_1271336381.18625")
.param pmc param_18
.annotate "line", 14
new $P17, 'ExceptionHandler'
@@ -6022,15 +6638,15 @@
.namespace ["HLL";"Compiler"]
-.sub "get_exports" :subid("13_1267204686.55407") :method :outer("11_1267204686.55407")
+.sub "get_exports" :subid("13_1271336381.18625") :method :outer("11_1271336381.18625")
.param pmc param_35
.param pmc param_38 :slurpy
.param pmc param_36 :optional :named("tagset")
.param int has_param_36 :opt_flag
.annotate "line", 20
- .const 'Sub' $P104 = "15_1267204686.55407"
+ .const 'Sub' $P104 = "15_1271336381.18625"
capture_lex $P104
- .const 'Sub' $P83 = "14_1267204686.55407"
+ .const 'Sub' $P83 = "14_1271336381.18625"
capture_lex $P83
new $P34, 'ExceptionHandler'
set_addr $P34, control_33
@@ -6136,7 +6752,7 @@
unless $P99, loop116_done
shift $P102, $P99
loop116_redo:
- .const 'Sub' $P104 = "15_1267204686.55407"
+ .const 'Sub' $P104 = "15_1271336381.18625"
capture_lex $P104
$P104($P102)
loop116_next:
@@ -6166,7 +6782,7 @@
unless $P78, loop96_done
shift $P81, $P78
loop96_redo:
- .const 'Sub' $P83 = "14_1267204686.55407"
+ .const 'Sub' $P83 = "14_1271336381.18625"
capture_lex $P83
$P83($P81)
loop96_next:
@@ -6194,7 +6810,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block103" :anon :subid("15_1267204686.55407") :outer("13_1267204686.55407")
+.sub "_block103" :anon :subid("15_1271336381.18625") :outer("13_1271336381.18625")
.param pmc param_106
.annotate "line", 40
new $P105, "Undef"
@@ -6226,7 +6842,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block82" :anon :subid("14_1267204686.55407") :outer("13_1267204686.55407")
+.sub "_block82" :anon :subid("14_1271336381.18625") :outer("13_1271336381.18625")
.param pmc param_85
.annotate "line", 34
new $P84, "Undef"
@@ -6265,7 +6881,7 @@
.namespace ["HLL";"Compiler"]
-.sub "get_module" :subid("16_1267204686.55407") :method :outer("11_1267204686.55407")
+.sub "get_module" :subid("16_1271336381.18625") :method :outer("11_1271336381.18625")
.param pmc param_124
.annotate "line", 47
new $P123, 'ExceptionHandler'
@@ -6305,7 +6921,7 @@
.namespace ["HLL";"Compiler"]
-.sub "language" :subid("17_1267204686.55407") :method :outer("11_1267204686.55407")
+.sub "language" :subid("17_1271336381.18625") :method :outer("11_1271336381.18625")
.param pmc param_140 :optional
.param int has_param_140 :opt_flag
.annotate "line", 53
@@ -6349,10 +6965,10 @@
.namespace ["HLL";"Compiler"]
-.sub "load_module" :subid("18_1267204686.55407") :method :outer("11_1267204686.55407")
+.sub "load_module" :subid("18_1271336381.18625") :method :outer("11_1271336381.18625")
.param pmc param_155
.annotate "line", 61
- .const 'Sub' $P165 = "19_1267204686.55407"
+ .const 'Sub' $P165 = "19_1271336381.18625"
capture_lex $P165
new $P154, 'ExceptionHandler'
set_addr $P154, control_153
@@ -6379,7 +6995,7 @@
assign $P163, 0
store_lex "$loaded", $P163
.annotate "line", 64
- .const 'Sub' $P165 = "19_1267204686.55407"
+ .const 'Sub' $P165 = "19_1271336381.18625"
capture_lex $P165
$P165()
.annotate "line", 65
@@ -6408,7 +7024,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block164" :anon :subid("19_1267204686.55407") :outer("18_1267204686.55407")
+.sub "_block164" :anon :subid("19_1271336381.18625") :outer("18_1271336381.18625")
.annotate "line", 64
new $P172, 'ExceptionHandler'
set_addr $P172, control_171
@@ -6441,11 +7057,11 @@
.namespace ["HLL";"Compiler"]
-.sub "import" :subid("20_1267204686.55407") :method :outer("11_1267204686.55407")
+.sub "import" :subid("20_1271336381.18625") :method :outer("11_1271336381.18625")
.param pmc param_190
.param pmc param_191
.annotate "line", 69
- .const 'Sub' $P197 = "21_1267204686.55407"
+ .const 'Sub' $P197 = "21_1271336381.18625"
capture_lex $P197
new $P189, 'ExceptionHandler'
set_addr $P189, control_188
@@ -6467,7 +7083,7 @@
unless $P192, loop278_done
shift $P195, $P192
loop278_redo:
- .const 'Sub' $P197 = "21_1267204686.55407"
+ .const 'Sub' $P197 = "21_1271336381.18625"
capture_lex $P197
$P197($P195)
loop278_next:
@@ -6492,14 +7108,14 @@
.namespace ["HLL";"Compiler"]
-.sub "_block196" :anon :subid("21_1267204686.55407") :outer("20_1267204686.55407")
+.sub "_block196" :anon :subid("21_1271336381.18625") :outer("20_1271336381.18625")
.param pmc param_200
.annotate "line", 70
- .const 'Sub' $P267 = "24_1267204686.55407"
+ .const 'Sub' $P267 = "24_1271336381.18625"
capture_lex $P267
- .const 'Sub' $P247 = "23_1267204686.55407"
+ .const 'Sub' $P247 = "23_1271336381.18625"
capture_lex $P247
- .const 'Sub' $P218 = "22_1267204686.55407"
+ .const 'Sub' $P218 = "22_1271336381.18625"
capture_lex $P218
.annotate "line", 71
new $P198, "Undef"
@@ -6547,7 +7163,7 @@
unless $P262, loop275_done
shift $P265, $P262
loop275_redo:
- .const 'Sub' $P267 = "24_1267204686.55407"
+ .const 'Sub' $P267 = "24_1271336381.18625"
capture_lex $P267
$P267($P265)
loop275_next:
@@ -6579,7 +7195,7 @@
unless $P242, loop259_done
shift $P245, $P242
loop259_redo:
- .const 'Sub' $P247 = "23_1267204686.55407"
+ .const 'Sub' $P247 = "23_1271336381.18625"
capture_lex $P247
$P247($P245)
loop259_next:
@@ -6613,7 +7229,7 @@
unless $P213, loop231_done
shift $P216, $P213
loop231_redo:
- .const 'Sub' $P218 = "22_1267204686.55407"
+ .const 'Sub' $P218 = "22_1271336381.18625"
capture_lex $P218
$P218($P216)
loop231_next:
@@ -6636,7 +7252,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block266" :anon :subid("24_1267204686.55407") :outer("21_1267204686.55407")
+.sub "_block266" :anon :subid("24_1271336381.18625") :outer("21_1271336381.18625")
.param pmc param_268
.annotate "line", 80
.lex "$_", param_268
@@ -6656,7 +7272,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block246" :anon :subid("23_1267204686.55407") :outer("21_1267204686.55407")
+.sub "_block246" :anon :subid("23_1271336381.18625") :outer("21_1271336381.18625")
.param pmc param_248
.annotate "line", 77
.lex "$_", param_248
@@ -6676,7 +7292,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block217" :anon :subid("22_1267204686.55407") :outer("21_1267204686.55407")
+.sub "_block217" :anon :subid("22_1271336381.18625") :outer("21_1271336381.18625")
.param pmc param_219
.annotate "line", 74
.lex "$_", param_219
Modified: branches/avl_string_cache/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- branches/avl_string_cache/ext/nqp-rx/src/stage0/NQP-s0.pir Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/ext/nqp-rx/src/stage0/NQP-s0.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -15,387 +15,387 @@
### .include 'gen/nqp-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1267204702.05125")
+.sub "_block11" :anon :subid("10_1271336396.90314")
.annotate "line", 0
get_hll_global $P14, ["NQP";"Grammar"], "_block13"
capture_lex $P14
.annotate "line", 4
get_hll_global $P14, ["NQP";"Grammar"], "_block13"
capture_lex $P14
- $P1296 = $P14()
+ $P1299 = $P14()
.annotate "line", 1
- .return ($P1296)
+ .return ($P1299)
.end
.namespace []
-.sub "" :load :init :subid("post331") :outer("10_1267204702.05125")
+.sub "" :load :init :subid("post331") :outer("10_1271336396.90314")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1267204702.05125"
+ .const 'Sub' $P12 = "10_1271336396.90314"
.local pmc block
set block, $P12
- $P1297 = get_root_global ["parrot"], "P6metaclass"
- $P1297."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
+ $P1300 = get_root_global ["parrot"], "P6metaclass"
+ $P1300."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
.end
.namespace ["NQP";"Grammar"]
-.sub "_block13" :subid("11_1267204702.05125") :outer("10_1267204702.05125")
+.sub "_block13" :subid("11_1271336396.90314") :outer("10_1271336396.90314")
.annotate "line", 4
- get_hll_global $P1240, ["NQP";"Regex"], "_block1239"
- capture_lex $P1240
- .const 'Sub' $P1226 = "317_1267204702.05125"
- capture_lex $P1226
- .const 'Sub' $P1220 = "315_1267204702.05125"
- capture_lex $P1220
- .const 'Sub' $P1214 = "313_1267204702.05125"
- capture_lex $P1214
- .const 'Sub' $P1207 = "311_1267204702.05125"
- capture_lex $P1207
- .const 'Sub' $P1200 = "309_1267204702.05125"
- capture_lex $P1200
- .const 'Sub' $P1193 = "307_1267204702.05125"
- capture_lex $P1193
- .const 'Sub' $P1186 = "305_1267204702.05125"
- capture_lex $P1186
- .const 'Sub' $P1180 = "303_1267204702.05125"
- capture_lex $P1180
- .const 'Sub' $P1173 = "301_1267204702.05125"
- capture_lex $P1173
- .const 'Sub' $P1166 = "299_1267204702.05125"
- capture_lex $P1166
- .const 'Sub' $P1159 = "297_1267204702.05125"
- capture_lex $P1159
- .const 'Sub' $P1152 = "295_1267204702.05125"
- capture_lex $P1152
- .const 'Sub' $P1145 = "293_1267204702.05125"
- capture_lex $P1145
- .const 'Sub' $P1138 = "291_1267204702.05125"
- capture_lex $P1138
- .const 'Sub' $P1131 = "289_1267204702.05125"
- capture_lex $P1131
- .const 'Sub' $P1124 = "287_1267204702.05125"
- capture_lex $P1124
- .const 'Sub' $P1117 = "285_1267204702.05125"
- capture_lex $P1117
- .const 'Sub' $P1110 = "283_1267204702.05125"
- capture_lex $P1110
- .const 'Sub' $P1103 = "281_1267204702.05125"
- capture_lex $P1103
- .const 'Sub' $P1096 = "279_1267204702.05125"
- capture_lex $P1096
- .const 'Sub' $P1089 = "277_1267204702.05125"
- capture_lex $P1089
- .const 'Sub' $P1082 = "275_1267204702.05125"
- capture_lex $P1082
- .const 'Sub' $P1075 = "273_1267204702.05125"
- capture_lex $P1075
- .const 'Sub' $P1068 = "271_1267204702.05125"
- capture_lex $P1068
- .const 'Sub' $P1061 = "269_1267204702.05125"
- capture_lex $P1061
- .const 'Sub' $P1054 = "267_1267204702.05125"
- capture_lex $P1054
- .const 'Sub' $P1047 = "265_1267204702.05125"
- capture_lex $P1047
- .const 'Sub' $P1040 = "263_1267204702.05125"
- capture_lex $P1040
- .const 'Sub' $P1033 = "261_1267204702.05125"
- capture_lex $P1033
- .const 'Sub' $P1026 = "259_1267204702.05125"
- capture_lex $P1026
- .const 'Sub' $P1019 = "257_1267204702.05125"
- capture_lex $P1019
- .const 'Sub' $P1012 = "255_1267204702.05125"
- capture_lex $P1012
- .const 'Sub' $P1005 = "253_1267204702.05125"
- capture_lex $P1005
- .const 'Sub' $P998 = "251_1267204702.05125"
- capture_lex $P998
- .const 'Sub' $P992 = "249_1267204702.05125"
- capture_lex $P992
- .const 'Sub' $P985 = "247_1267204702.05125"
- capture_lex $P985
- .const 'Sub' $P978 = "245_1267204702.05125"
- capture_lex $P978
- .const 'Sub' $P971 = "243_1267204702.05125"
- capture_lex $P971
- .const 'Sub' $P964 = "241_1267204702.05125"
- capture_lex $P964
- .const 'Sub' $P957 = "239_1267204702.05125"
- capture_lex $P957
- .const 'Sub' $P950 = "237_1267204702.05125"
- capture_lex $P950
- .const 'Sub' $P943 = "235_1267204702.05125"
- capture_lex $P943
- .const 'Sub' $P937 = "233_1267204702.05125"
- capture_lex $P937
- .const 'Sub' $P931 = "231_1267204702.05125"
- capture_lex $P931
- .const 'Sub' $P926 = "229_1267204702.05125"
- capture_lex $P926
- .const 'Sub' $P920 = "227_1267204702.05125"
- capture_lex $P920
- .const 'Sub' $P914 = "225_1267204702.05125"
- capture_lex $P914
- .const 'Sub' $P909 = "223_1267204702.05125"
- capture_lex $P909
- .const 'Sub' $P904 = "221_1267204702.05125"
- capture_lex $P904
- .const 'Sub' $P897 = "219_1267204702.05125"
- capture_lex $P897
- .const 'Sub' $P889 = "217_1267204702.05125"
- capture_lex $P889
- .const 'Sub' $P884 = "215_1267204702.05125"
- capture_lex $P884
- .const 'Sub' $P879 = "213_1267204702.05125"
- capture_lex $P879
- .const 'Sub' $P874 = "211_1267204702.05125"
- capture_lex $P874
- .const 'Sub' $P866 = "209_1267204702.05125"
- capture_lex $P866
- .const 'Sub' $P858 = "207_1267204702.05125"
- capture_lex $P858
- .const 'Sub' $P853 = "205_1267204702.05125"
- capture_lex $P853
- .const 'Sub' $P848 = "203_1267204702.05125"
- capture_lex $P848
- .const 'Sub' $P842 = "201_1267204702.05125"
- capture_lex $P842
- .const 'Sub' $P836 = "199_1267204702.05125"
- capture_lex $P836
- .const 'Sub' $P830 = "197_1267204702.05125"
- capture_lex $P830
- .const 'Sub' $P824 = "195_1267204702.05125"
- capture_lex $P824
- .const 'Sub' $P818 = "193_1267204702.05125"
- capture_lex $P818
- .const 'Sub' $P813 = "191_1267204702.05125"
- capture_lex $P813
- .const 'Sub' $P808 = "189_1267204702.05125"
- capture_lex $P808
- .const 'Sub' $P795 = "185_1267204702.05125"
- capture_lex $P795
- .const 'Sub' $P787 = "183_1267204702.05125"
- capture_lex $P787
- .const 'Sub' $P781 = "181_1267204702.05125"
- capture_lex $P781
- .const 'Sub' $P774 = "179_1267204702.05125"
- capture_lex $P774
- .const 'Sub' $P768 = "177_1267204702.05125"
- capture_lex $P768
- .const 'Sub' $P760 = "175_1267204702.05125"
- capture_lex $P760
- .const 'Sub' $P752 = "173_1267204702.05125"
- capture_lex $P752
- .const 'Sub' $P746 = "171_1267204702.05125"
- capture_lex $P746
- .const 'Sub' $P740 = "169_1267204702.05125"
- capture_lex $P740
- .const 'Sub' $P725 = "165_1267204702.05125"
- capture_lex $P725
- .const 'Sub' $P688 = "163_1267204702.05125"
- capture_lex $P688
- .const 'Sub' $P680 = "161_1267204702.05125"
- capture_lex $P680
- .const 'Sub' $P674 = "159_1267204702.05125"
- capture_lex $P674
- .const 'Sub' $P664 = "157_1267204702.05125"
- capture_lex $P664
- .const 'Sub' $P649 = "155_1267204702.05125"
- capture_lex $P649
- .const 'Sub' $P640 = "153_1267204702.05125"
- capture_lex $P640
- .const 'Sub' $P621 = "151_1267204702.05125"
- capture_lex $P621
- .const 'Sub' $P597 = "149_1267204702.05125"
- capture_lex $P597
- .const 'Sub' $P590 = "147_1267204702.05125"
- capture_lex $P590
- .const 'Sub' $P583 = "145_1267204702.05125"
- capture_lex $P583
- .const 'Sub' $P573 = "141_1267204702.05125"
- capture_lex $P573
- .const 'Sub' $P562 = "139_1267204702.05125"
- capture_lex $P562
- .const 'Sub' $P555 = "137_1267204702.05125"
- capture_lex $P555
- .const 'Sub' $P548 = "135_1267204702.05125"
- capture_lex $P548
- .const 'Sub' $P541 = "133_1267204702.05125"
- capture_lex $P541
- .const 'Sub' $P514 = "129_1267204702.05125"
- capture_lex $P514
- .const 'Sub' $P505 = "127_1267204702.05125"
- capture_lex $P505
- .const 'Sub' $P498 = "125_1267204702.05125"
- capture_lex $P498
- .const 'Sub' $P489 = "121_1267204702.05125"
- capture_lex $P489
- .const 'Sub' $P484 = "119_1267204702.05125"
- capture_lex $P484
- .const 'Sub' $P472 = "117_1267204702.05125"
- capture_lex $P472
- .const 'Sub' $P460 = "115_1267204702.05125"
- capture_lex $P460
- .const 'Sub' $P452 = "113_1267204702.05125"
- capture_lex $P452
- .const 'Sub' $P447 = "111_1267204702.05125"
- capture_lex $P447
- .const 'Sub' $P441 = "109_1267204702.05125"
- capture_lex $P441
- .const 'Sub' $P435 = "107_1267204702.05125"
- capture_lex $P435
- .const 'Sub' $P429 = "105_1267204702.05125"
- capture_lex $P429
- .const 'Sub' $P423 = "103_1267204702.05125"
- capture_lex $P423
- .const 'Sub' $P417 = "101_1267204702.05125"
- capture_lex $P417
- .const 'Sub' $P411 = "99_1267204702.05125"
- capture_lex $P411
- .const 'Sub' $P405 = "97_1267204702.05125"
- capture_lex $P405
- .const 'Sub' $P399 = "95_1267204702.05125"
- capture_lex $P399
- .const 'Sub' $P391 = "93_1267204702.05125"
- capture_lex $P391
- .const 'Sub' $P383 = "91_1267204702.05125"
- capture_lex $P383
- .const 'Sub' $P371 = "87_1267204702.05125"
- capture_lex $P371
- .const 'Sub' $P363 = "85_1267204702.05125"
- capture_lex $P363
- .const 'Sub' $P353 = "81_1267204702.05125"
- capture_lex $P353
- .const 'Sub' $P346 = "79_1267204702.05125"
- capture_lex $P346
- .const 'Sub' $P339 = "77_1267204702.05125"
- capture_lex $P339
- .const 'Sub' $P327 = "73_1267204702.05125"
- capture_lex $P327
- .const 'Sub' $P319 = "71_1267204702.05125"
- capture_lex $P319
- .const 'Sub' $P311 = "69_1267204702.05125"
- capture_lex $P311
- .const 'Sub' $P291 = "67_1267204702.05125"
- capture_lex $P291
- .const 'Sub' $P282 = "65_1267204702.05125"
- capture_lex $P282
- .const 'Sub' $P264 = "62_1267204702.05125"
- capture_lex $P264
- .const 'Sub' $P244 = "60_1267204702.05125"
- capture_lex $P244
- .const 'Sub' $P235 = "56_1267204702.05125"
- capture_lex $P235
- .const 'Sub' $P230 = "54_1267204702.05125"
- capture_lex $P230
- .const 'Sub' $P221 = "50_1267204702.05125"
- capture_lex $P221
- .const 'Sub' $P216 = "48_1267204702.05125"
- capture_lex $P216
- .const 'Sub' $P208 = "46_1267204702.05125"
- capture_lex $P208
- .const 'Sub' $P201 = "44_1267204702.05125"
- capture_lex $P201
- .const 'Sub' $P195 = "42_1267204702.05125"
- capture_lex $P195
- .const 'Sub' $P187 = "40_1267204702.05125"
- capture_lex $P187
- .const 'Sub' $P181 = "38_1267204702.05125"
- capture_lex $P181
- .const 'Sub' $P175 = "36_1267204702.05125"
- capture_lex $P175
- .const 'Sub' $P159 = "33_1267204702.05125"
- capture_lex $P159
- .const 'Sub' $P146 = "31_1267204702.05125"
- capture_lex $P146
- .const 'Sub' $P139 = "29_1267204702.05125"
- capture_lex $P139
- .const 'Sub' $P96 = "26_1267204702.05125"
+ get_hll_global $P1243, ["NQP";"Regex"], "_block1242"
+ capture_lex $P1243
+ .const 'Sub' $P1229 = "317_1271336396.90314"
+ capture_lex $P1229
+ .const 'Sub' $P1223 = "315_1271336396.90314"
+ capture_lex $P1223
+ .const 'Sub' $P1217 = "313_1271336396.90314"
+ capture_lex $P1217
+ .const 'Sub' $P1210 = "311_1271336396.90314"
+ capture_lex $P1210
+ .const 'Sub' $P1203 = "309_1271336396.90314"
+ capture_lex $P1203
+ .const 'Sub' $P1196 = "307_1271336396.90314"
+ capture_lex $P1196
+ .const 'Sub' $P1189 = "305_1271336396.90314"
+ capture_lex $P1189
+ .const 'Sub' $P1183 = "303_1271336396.90314"
+ capture_lex $P1183
+ .const 'Sub' $P1176 = "301_1271336396.90314"
+ capture_lex $P1176
+ .const 'Sub' $P1169 = "299_1271336396.90314"
+ capture_lex $P1169
+ .const 'Sub' $P1162 = "297_1271336396.90314"
+ capture_lex $P1162
+ .const 'Sub' $P1155 = "295_1271336396.90314"
+ capture_lex $P1155
+ .const 'Sub' $P1148 = "293_1271336396.90314"
+ capture_lex $P1148
+ .const 'Sub' $P1141 = "291_1271336396.90314"
+ capture_lex $P1141
+ .const 'Sub' $P1134 = "289_1271336396.90314"
+ capture_lex $P1134
+ .const 'Sub' $P1127 = "287_1271336396.90314"
+ capture_lex $P1127
+ .const 'Sub' $P1120 = "285_1271336396.90314"
+ capture_lex $P1120
+ .const 'Sub' $P1113 = "283_1271336396.90314"
+ capture_lex $P1113
+ .const 'Sub' $P1106 = "281_1271336396.90314"
+ capture_lex $P1106
+ .const 'Sub' $P1099 = "279_1271336396.90314"
+ capture_lex $P1099
+ .const 'Sub' $P1092 = "277_1271336396.90314"
+ capture_lex $P1092
+ .const 'Sub' $P1085 = "275_1271336396.90314"
+ capture_lex $P1085
+ .const 'Sub' $P1078 = "273_1271336396.90314"
+ capture_lex $P1078
+ .const 'Sub' $P1071 = "271_1271336396.90314"
+ capture_lex $P1071
+ .const 'Sub' $P1064 = "269_1271336396.90314"
+ capture_lex $P1064
+ .const 'Sub' $P1057 = "267_1271336396.90314"
+ capture_lex $P1057
+ .const 'Sub' $P1050 = "265_1271336396.90314"
+ capture_lex $P1050
+ .const 'Sub' $P1043 = "263_1271336396.90314"
+ capture_lex $P1043
+ .const 'Sub' $P1036 = "261_1271336396.90314"
+ capture_lex $P1036
+ .const 'Sub' $P1029 = "259_1271336396.90314"
+ capture_lex $P1029
+ .const 'Sub' $P1022 = "257_1271336396.90314"
+ capture_lex $P1022
+ .const 'Sub' $P1015 = "255_1271336396.90314"
+ capture_lex $P1015
+ .const 'Sub' $P1008 = "253_1271336396.90314"
+ capture_lex $P1008
+ .const 'Sub' $P1001 = "251_1271336396.90314"
+ capture_lex $P1001
+ .const 'Sub' $P995 = "249_1271336396.90314"
+ capture_lex $P995
+ .const 'Sub' $P988 = "247_1271336396.90314"
+ capture_lex $P988
+ .const 'Sub' $P981 = "245_1271336396.90314"
+ capture_lex $P981
+ .const 'Sub' $P974 = "243_1271336396.90314"
+ capture_lex $P974
+ .const 'Sub' $P967 = "241_1271336396.90314"
+ capture_lex $P967
+ .const 'Sub' $P960 = "239_1271336396.90314"
+ capture_lex $P960
+ .const 'Sub' $P953 = "237_1271336396.90314"
+ capture_lex $P953
+ .const 'Sub' $P946 = "235_1271336396.90314"
+ capture_lex $P946
+ .const 'Sub' $P940 = "233_1271336396.90314"
+ capture_lex $P940
+ .const 'Sub' $P934 = "231_1271336396.90314"
+ capture_lex $P934
+ .const 'Sub' $P929 = "229_1271336396.90314"
+ capture_lex $P929
+ .const 'Sub' $P923 = "227_1271336396.90314"
+ capture_lex $P923
+ .const 'Sub' $P917 = "225_1271336396.90314"
+ capture_lex $P917
+ .const 'Sub' $P912 = "223_1271336396.90314"
+ capture_lex $P912
+ .const 'Sub' $P907 = "221_1271336396.90314"
+ capture_lex $P907
+ .const 'Sub' $P900 = "219_1271336396.90314"
+ capture_lex $P900
+ .const 'Sub' $P892 = "217_1271336396.90314"
+ capture_lex $P892
+ .const 'Sub' $P887 = "215_1271336396.90314"
+ capture_lex $P887
+ .const 'Sub' $P882 = "213_1271336396.90314"
+ capture_lex $P882
+ .const 'Sub' $P877 = "211_1271336396.90314"
+ capture_lex $P877
+ .const 'Sub' $P869 = "209_1271336396.90314"
+ capture_lex $P869
+ .const 'Sub' $P861 = "207_1271336396.90314"
+ capture_lex $P861
+ .const 'Sub' $P856 = "205_1271336396.90314"
+ capture_lex $P856
+ .const 'Sub' $P851 = "203_1271336396.90314"
+ capture_lex $P851
+ .const 'Sub' $P845 = "201_1271336396.90314"
+ capture_lex $P845
+ .const 'Sub' $P839 = "199_1271336396.90314"
+ capture_lex $P839
+ .const 'Sub' $P833 = "197_1271336396.90314"
+ capture_lex $P833
+ .const 'Sub' $P827 = "195_1271336396.90314"
+ capture_lex $P827
+ .const 'Sub' $P821 = "193_1271336396.90314"
+ capture_lex $P821
+ .const 'Sub' $P816 = "191_1271336396.90314"
+ capture_lex $P816
+ .const 'Sub' $P811 = "189_1271336396.90314"
+ capture_lex $P811
+ .const 'Sub' $P798 = "185_1271336396.90314"
+ capture_lex $P798
+ .const 'Sub' $P790 = "183_1271336396.90314"
+ capture_lex $P790
+ .const 'Sub' $P784 = "181_1271336396.90314"
+ capture_lex $P784
+ .const 'Sub' $P777 = "179_1271336396.90314"
+ capture_lex $P777
+ .const 'Sub' $P771 = "177_1271336396.90314"
+ capture_lex $P771
+ .const 'Sub' $P763 = "175_1271336396.90314"
+ capture_lex $P763
+ .const 'Sub' $P755 = "173_1271336396.90314"
+ capture_lex $P755
+ .const 'Sub' $P749 = "171_1271336396.90314"
+ capture_lex $P749
+ .const 'Sub' $P743 = "169_1271336396.90314"
+ capture_lex $P743
+ .const 'Sub' $P728 = "165_1271336396.90314"
+ capture_lex $P728
+ .const 'Sub' $P691 = "163_1271336396.90314"
+ capture_lex $P691
+ .const 'Sub' $P683 = "161_1271336396.90314"
+ capture_lex $P683
+ .const 'Sub' $P677 = "159_1271336396.90314"
+ capture_lex $P677
+ .const 'Sub' $P667 = "157_1271336396.90314"
+ capture_lex $P667
+ .const 'Sub' $P652 = "155_1271336396.90314"
+ capture_lex $P652
+ .const 'Sub' $P643 = "153_1271336396.90314"
+ capture_lex $P643
+ .const 'Sub' $P624 = "151_1271336396.90314"
+ capture_lex $P624
+ .const 'Sub' $P600 = "149_1271336396.90314"
+ capture_lex $P600
+ .const 'Sub' $P593 = "147_1271336396.90314"
+ capture_lex $P593
+ .const 'Sub' $P586 = "145_1271336396.90314"
+ capture_lex $P586
+ .const 'Sub' $P576 = "141_1271336396.90314"
+ capture_lex $P576
+ .const 'Sub' $P565 = "139_1271336396.90314"
+ capture_lex $P565
+ .const 'Sub' $P558 = "137_1271336396.90314"
+ capture_lex $P558
+ .const 'Sub' $P551 = "135_1271336396.90314"
+ capture_lex $P551
+ .const 'Sub' $P544 = "133_1271336396.90314"
+ capture_lex $P544
+ .const 'Sub' $P517 = "129_1271336396.90314"
+ capture_lex $P517
+ .const 'Sub' $P508 = "127_1271336396.90314"
+ capture_lex $P508
+ .const 'Sub' $P501 = "125_1271336396.90314"
+ capture_lex $P501
+ .const 'Sub' $P492 = "121_1271336396.90314"
+ capture_lex $P492
+ .const 'Sub' $P487 = "119_1271336396.90314"
+ capture_lex $P487
+ .const 'Sub' $P475 = "117_1271336396.90314"
+ capture_lex $P475
+ .const 'Sub' $P463 = "115_1271336396.90314"
+ capture_lex $P463
+ .const 'Sub' $P455 = "113_1271336396.90314"
+ capture_lex $P455
+ .const 'Sub' $P450 = "111_1271336396.90314"
+ capture_lex $P450
+ .const 'Sub' $P444 = "109_1271336396.90314"
+ capture_lex $P444
+ .const 'Sub' $P438 = "107_1271336396.90314"
+ capture_lex $P438
+ .const 'Sub' $P432 = "105_1271336396.90314"
+ capture_lex $P432
+ .const 'Sub' $P426 = "103_1271336396.90314"
+ capture_lex $P426
+ .const 'Sub' $P420 = "101_1271336396.90314"
+ capture_lex $P420
+ .const 'Sub' $P414 = "99_1271336396.90314"
+ capture_lex $P414
+ .const 'Sub' $P408 = "97_1271336396.90314"
+ capture_lex $P408
+ .const 'Sub' $P402 = "95_1271336396.90314"
+ capture_lex $P402
+ .const 'Sub' $P394 = "93_1271336396.90314"
+ capture_lex $P394
+ .const 'Sub' $P386 = "91_1271336396.90314"
+ capture_lex $P386
+ .const 'Sub' $P374 = "87_1271336396.90314"
+ capture_lex $P374
+ .const 'Sub' $P366 = "85_1271336396.90314"
+ capture_lex $P366
+ .const 'Sub' $P356 = "81_1271336396.90314"
+ capture_lex $P356
+ .const 'Sub' $P349 = "79_1271336396.90314"
+ capture_lex $P349
+ .const 'Sub' $P342 = "77_1271336396.90314"
+ capture_lex $P342
+ .const 'Sub' $P330 = "73_1271336396.90314"
+ capture_lex $P330
+ .const 'Sub' $P322 = "71_1271336396.90314"
+ capture_lex $P322
+ .const 'Sub' $P314 = "69_1271336396.90314"
+ capture_lex $P314
+ .const 'Sub' $P294 = "67_1271336396.90314"
+ capture_lex $P294
+ .const 'Sub' $P285 = "65_1271336396.90314"
+ capture_lex $P285
+ .const 'Sub' $P267 = "62_1271336396.90314"
+ capture_lex $P267
+ .const 'Sub' $P247 = "60_1271336396.90314"
+ capture_lex $P247
+ .const 'Sub' $P238 = "56_1271336396.90314"
+ capture_lex $P238
+ .const 'Sub' $P233 = "54_1271336396.90314"
+ capture_lex $P233
+ .const 'Sub' $P224 = "50_1271336396.90314"
+ capture_lex $P224
+ .const 'Sub' $P219 = "48_1271336396.90314"
+ capture_lex $P219
+ .const 'Sub' $P211 = "46_1271336396.90314"
+ capture_lex $P211
+ .const 'Sub' $P204 = "44_1271336396.90314"
+ capture_lex $P204
+ .const 'Sub' $P198 = "42_1271336396.90314"
+ capture_lex $P198
+ .const 'Sub' $P190 = "40_1271336396.90314"
+ capture_lex $P190
+ .const 'Sub' $P184 = "38_1271336396.90314"
+ capture_lex $P184
+ .const 'Sub' $P178 = "36_1271336396.90314"
+ capture_lex $P178
+ .const 'Sub' $P162 = "33_1271336396.90314"
+ capture_lex $P162
+ .const 'Sub' $P149 = "31_1271336396.90314"
+ capture_lex $P149
+ .const 'Sub' $P142 = "29_1271336396.90314"
+ capture_lex $P142
+ .const 'Sub' $P96 = "26_1271336396.90314"
capture_lex $P96
- .const 'Sub' $P78 = "23_1267204702.05125"
+ .const 'Sub' $P78 = "23_1271336396.90314"
capture_lex $P78
- .const 'Sub' $P68 = "21_1267204702.05125"
+ .const 'Sub' $P68 = "21_1271336396.90314"
capture_lex $P68
- .const 'Sub' $P54 = "19_1267204702.05125"
+ .const 'Sub' $P54 = "19_1271336396.90314"
capture_lex $P54
- .const 'Sub' $P46 = "17_1267204702.05125"
+ .const 'Sub' $P46 = "17_1271336396.90314"
capture_lex $P46
- .const 'Sub' $P39 = "15_1267204702.05125"
+ .const 'Sub' $P39 = "15_1271336396.90314"
capture_lex $P39
- .const 'Sub' $P33 = "13_1267204702.05125"
+ .const 'Sub' $P33 = "13_1271336396.90314"
capture_lex $P33
- .const 'Sub' $P15 = "12_1267204702.05125"
+ .const 'Sub' $P15 = "12_1271336396.90314"
capture_lex $P15
-.annotate "line", 531
- get_hll_global $P1240, ["NQP";"Regex"], "_block1239"
- capture_lex $P1240
- $P1279 = $P1240()
+.annotate "line", 535
+ get_hll_global $P1243, ["NQP";"Regex"], "_block1242"
+ capture_lex $P1243
+ $P1282 = $P1243()
.annotate "line", 4
- .return ($P1279)
+ .return ($P1282)
.end
.namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post332") :outer("11_1267204702.05125")
+.sub "" :load :init :subid("post332") :outer("11_1271336396.90314")
.annotate "line", 4
get_hll_global $P14, ["NQP";"Grammar"], "_block13"
.local pmc block
set block, $P14
-.annotate "line", 418
- get_hll_global $P1280, ["NQP"], "Grammar"
- $P1280."O"(":prec<y=>, :assoc<unary>", "%methodop")
-.annotate "line", 419
- get_hll_global $P1281, ["NQP"], "Grammar"
- $P1281."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
-.annotate "line", 420
- get_hll_global $P1282, ["NQP"], "Grammar"
- $P1282."O"(":prec<w=>, :assoc<left>", "%exponentiation")
-.annotate "line", 421
- get_hll_global $P1283, ["NQP"], "Grammar"
- $P1283."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
.annotate "line", 422
- get_hll_global $P1284, ["NQP"], "Grammar"
- $P1284."O"(":prec<u=>, :assoc<left>", "%multiplicative")
+ get_hll_global $P1283, ["NQP"], "Grammar"
+ $P1283."O"(":prec<y=>, :assoc<unary>", "%methodop")
.annotate "line", 423
- get_hll_global $P1285, ["NQP"], "Grammar"
- $P1285."O"(":prec<t=>, :assoc<left>", "%additive")
+ get_hll_global $P1284, ["NQP"], "Grammar"
+ $P1284."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
.annotate "line", 424
- get_hll_global $P1286, ["NQP"], "Grammar"
- $P1286."O"(":prec<r=>, :assoc<left>", "%concatenation")
+ get_hll_global $P1285, ["NQP"], "Grammar"
+ $P1285."O"(":prec<w=>, :assoc<left>", "%exponentiation")
.annotate "line", 425
- get_hll_global $P1287, ["NQP"], "Grammar"
- $P1287."O"(":prec<m=>, :assoc<left>", "%relational")
+ get_hll_global $P1286, ["NQP"], "Grammar"
+ $P1286."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
.annotate "line", 426
- get_hll_global $P1288, ["NQP"], "Grammar"
- $P1288."O"(":prec<l=>, :assoc<left>", "%tight_and")
+ get_hll_global $P1287, ["NQP"], "Grammar"
+ $P1287."O"(":prec<u=>, :assoc<left>", "%multiplicative")
.annotate "line", 427
- get_hll_global $P1289, ["NQP"], "Grammar"
- $P1289."O"(":prec<k=>, :assoc<left>", "%tight_or")
+ get_hll_global $P1288, ["NQP"], "Grammar"
+ $P1288."O"(":prec<t=>, :assoc<left>", "%additive")
.annotate "line", 428
- get_hll_global $P1290, ["NQP"], "Grammar"
- $P1290."O"(":prec<j=>, :assoc<right>", "%conditional")
+ get_hll_global $P1289, ["NQP"], "Grammar"
+ $P1289."O"(":prec<r=>, :assoc<left>", "%concatenation")
.annotate "line", 429
- get_hll_global $P1291, ["NQP"], "Grammar"
- $P1291."O"(":prec<i=>, :assoc<right>", "%assignment")
+ get_hll_global $P1290, ["NQP"], "Grammar"
+ $P1290."O"(":prec<m=>, :assoc<left>", "%relational")
.annotate "line", 430
- get_hll_global $P1292, ["NQP"], "Grammar"
- $P1292."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
+ get_hll_global $P1291, ["NQP"], "Grammar"
+ $P1291."O"(":prec<l=>, :assoc<left>", "%tight_and")
.annotate "line", 431
- get_hll_global $P1293, ["NQP"], "Grammar"
- $P1293."O"(":prec<f=>, :assoc<list>", "%list_infix")
+ get_hll_global $P1292, ["NQP"], "Grammar"
+ $P1292."O"(":prec<k=>, :assoc<left>", "%tight_or")
.annotate "line", 432
+ get_hll_global $P1293, ["NQP"], "Grammar"
+ $P1293."O"(":prec<j=>, :assoc<right>", "%conditional")
+.annotate "line", 433
get_hll_global $P1294, ["NQP"], "Grammar"
- $P1294."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
-.annotate "line", 417
- $P1295 = get_root_global ["parrot"], "P6metaclass"
- $P1295."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
+ $P1294."O"(":prec<i=>, :assoc<right>", "%assignment")
+.annotate "line", 434
+ get_hll_global $P1295, ["NQP"], "Grammar"
+ $P1295."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
+.annotate "line", 435
+ get_hll_global $P1296, ["NQP"], "Grammar"
+ $P1296."O"(":prec<f=>, :assoc<list>", "%list_infix")
+.annotate "line", 436
+ get_hll_global $P1297, ["NQP"], "Grammar"
+ $P1297."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
+.annotate "line", 421
+ $P1298 = get_root_global ["parrot"], "P6metaclass"
+ $P1298."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
.end
.namespace ["NQP";"Grammar"]
-.sub "TOP" :subid("12_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "TOP" :subid("12_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
new $P17, 'ExceptionHandler'
set_addr $P17, control_16
@@ -478,7 +478,7 @@
.namespace ["NQP";"Grammar"]
-.sub "identifier" :subid("13_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "identifier" :subid("13_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
.local string rx34_tgt
.local int rx34_pos
@@ -536,7 +536,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier" :subid("14_1267204702.05125") :method
+.sub "!PREFIX__identifier" :subid("14_1271336396.90314") :method
.annotate "line", 4
$P36 = self."!PREFIX__!subrule"("ident", "")
new $P37, "ResizablePMCArray"
@@ -546,7 +546,7 @@
.namespace ["NQP";"Grammar"]
-.sub "name" :subid("15_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "name" :subid("15_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
.local string rx40_tgt
.local int rx40_pos
@@ -620,7 +620,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name" :subid("16_1267204702.05125") :method
+.sub "!PREFIX__name" :subid("16_1271336396.90314") :method
.annotate "line", 4
new $P42, "ResizablePMCArray"
push $P42, ""
@@ -629,7 +629,7 @@
.namespace ["NQP";"Grammar"]
-.sub "deflongname" :subid("17_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "deflongname" :subid("17_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
.local string rx47_tgt
.local int rx47_pos
@@ -702,7 +702,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname" :subid("18_1267204702.05125") :method
+.sub "!PREFIX__deflongname" :subid("18_1271336396.90314") :method
.annotate "line", 4
$P49 = self."!PREFIX__!subrule"("identifier", "")
new $P50, "ResizablePMCArray"
@@ -712,7 +712,7 @@
.namespace ["NQP";"Grammar"]
-.sub "ENDSTMT" :subid("19_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "ENDSTMT" :subid("19_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
.local string rx55_tgt
.local int rx55_pos
@@ -844,7 +844,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT" :subid("20_1267204702.05125") :method
+.sub "!PREFIX__ENDSTMT" :subid("20_1271336396.90314") :method
.annotate "line", 4
new $P57, "ResizablePMCArray"
push $P57, ""
@@ -853,7 +853,7 @@
.namespace ["NQP";"Grammar"]
-.sub "ws" :subid("21_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "ws" :subid("21_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
.local string rx69_tgt
.local int rx69_pos
@@ -979,7 +979,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws" :subid("22_1267204702.05125") :method
+.sub "!PREFIX__ws" :subid("22_1271336396.90314") :method
.annotate "line", 4
new $P71, "ResizablePMCArray"
push $P71, ""
@@ -989,9 +989,9 @@
.namespace ["NQP";"Grammar"]
-.sub "unv" :subid("23_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "unv" :subid("23_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .const 'Sub' $P86 = "25_1267204702.05125"
+ .const 'Sub' $P86 = "25_1271336396.90314"
capture_lex $P86
.local string rx79_tgt
.local int rx79_pos
@@ -1037,7 +1037,7 @@
rxanchor84_done:
# rx subrule "before" subtype=zerowidth negate=
rx79_cur."!cursor_pos"(rx79_pos)
- .const 'Sub' $P86 = "25_1267204702.05125"
+ .const 'Sub' $P86 = "25_1271336396.90314"
capture_lex $P86
$P10 = rx79_cur."before"($P86)
unless $P10, rx79_fail
@@ -1116,7 +1116,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv" :subid("24_1267204702.05125") :method
+.sub "!PREFIX__unv" :subid("24_1271336396.90314") :method
.annotate "line", 4
new $P81, "ResizablePMCArray"
push $P81, ""
@@ -1127,7 +1127,7 @@
.namespace ["NQP";"Grammar"]
-.sub "_block85" :anon :subid("25_1267204702.05125") :method :outer("23_1267204702.05125")
+.sub "_block85" :anon :subid("25_1271336396.90314") :method :outer("23_1271336396.90314")
.annotate "line", 44
.local string rx87_tgt
.local int rx87_pos
@@ -1217,10 +1217,10 @@
.namespace ["NQP";"Grammar"]
-.sub "pod_comment" :subid("26_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "pod_comment" :subid("26_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .const 'Sub' $P131 = "28_1267204702.05125"
- capture_lex $P131
+ .const 'Sub' $P133 = "28_1271336396.90314"
+ capture_lex $P133
.local string rx97_tgt
.local int rx97_pos
.local int rx97_off
@@ -1643,40 +1643,48 @@
.annotate "line", 60
goto alt104_end
alt104_3:
-.annotate "line", 68
- # rx rxquantr129 ** 0..1
- set_addr $I137, rxquantr129_done
- rx97_cur."!mark_push"(0, rx97_pos, $I137)
- rxquantr129_loop:
-.annotate "line", 67
- # rx subrule "before" subtype=zerowidth negate=
- rx97_cur."!cursor_pos"(rx97_pos)
- .const 'Sub' $P131 = "28_1267204702.05125"
- capture_lex $P131
- $P10 = rx97_cur."before"($P131)
- unless $P10, rx97_fail
-.annotate "line", 68
- # rx subrule "panic" subtype=method negate=
+ set_addr $I10, alt104_4
+ rx97_cur."!mark_push"(0, rx97_pos, $I10)
+.annotate "line", 66
+ # rx subrule "identifier" subtype=capture negate=
rx97_cur."!cursor_pos"(rx97_pos)
- $P10 = rx97_cur."panic"("Obsolete pod format, please use =begin/=end instead")
+ $P10 = rx97_cur."identifier"()
unless $P10, rx97_fail
+ rx97_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("identifier")
rx97_pos = $P10."pos"()
- (rx97_rep) = rx97_cur."!mark_commit"($I137)
- rxquantr129_done:
- alt138_0:
-.annotate "line", 69
- set_addr $I10, alt138_1
+.annotate "line", 67
+ # rx rxquantf129 ** 0..*
+ set_addr $I10, rxquantf129_loop
rx97_cur."!mark_push"(0, rx97_pos, $I10)
- # rx subrule "alpha" subtype=capture negate=
+ goto rxquantf129_done
+ rxquantf129_loop:
+ # rx charclass .
+ ge rx97_pos, rx97_eos, rx97_fail
+ inc rx97_pos
+ set_addr $I10, rxquantf129_loop
+ rx97_cur."!mark_push"($I130, rx97_pos, $I10)
+ rxquantf129_done:
+ # rxanchor bol
+ eq rx97_pos, 0, rxanchor131_done
+ ge rx97_pos, rx97_eos, rx97_fail
+ sub $I10, rx97_pos, rx97_off
+ dec $I10
+ is_cclass $I11, 4096, rx97_tgt, $I10
+ unless $I11, rx97_fail
+ rxanchor131_done:
+ # rx subrule "before" subtype=zerowidth negate=
rx97_cur."!cursor_pos"(rx97_pos)
- $P10 = rx97_cur."alpha"()
+ .const 'Sub' $P133 = "28_1271336396.90314"
+ capture_lex $P133
+ $P10 = rx97_cur."before"($P133)
unless $P10, rx97_fail
- rx97_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("alpha")
- rx97_pos = $P10."pos"()
- goto alt138_end
- alt138_1:
- set_addr $I10, alt138_2
+.annotate "line", 66
+ goto alt104_end
+ alt104_4:
+ alt141_0:
+.annotate "line", 73
+ set_addr $I10, alt141_1
rx97_cur."!mark_push"(0, rx97_pos, $I10)
# rx charclass s
ge rx97_pos, rx97_eos, rx97_fail
@@ -1684,15 +1692,15 @@
is_cclass $I11, 32, rx97_tgt, $I10
unless $I11, rx97_fail
inc rx97_pos
- goto alt138_end
- alt138_2:
+ goto alt141_end
+ alt141_1:
# rx subrule "panic" subtype=method negate=
rx97_cur."!cursor_pos"(rx97_pos)
$P10 = rx97_cur."panic"("Illegal pod directive")
unless $P10, rx97_fail
rx97_pos = $P10."pos"()
- alt138_end:
-.annotate "line", 70
+ alt141_end:
+.annotate "line", 74
# rx charclass_q N r 0..-1
sub $I10, rx97_pos, rx97_off
find_cclass $I11, 4096, rx97_tgt, $I10, rx97_eos
@@ -1718,7 +1726,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment" :subid("27_1267204702.05125") :method
+.sub "!PREFIX__pod_comment" :subid("27_1271336396.90314") :method
.annotate "line", 4
new $P99, "ResizablePMCArray"
push $P99, ""
@@ -1727,13585 +1735,13565 @@
.namespace ["NQP";"Grammar"]
-.sub "_block130" :anon :subid("28_1267204702.05125") :method :outer("26_1267204702.05125")
+.sub "_block132" :anon :subid("28_1271336396.90314") :method :outer("26_1271336396.90314")
.annotate "line", 67
- .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) = self."!cursor_start"()
- rx132_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx132_cur
- .local pmc match
- .lex "$/", match
- length rx132_eos, rx132_tgt
- 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:
- $I10 = self.'from'()
- ne $I10, -1, rxscan133_done
- goto rxscan133_scan
- rxscan133_loop:
- ($P10) = rx132_cur."from"()
- inc $P10
- set rx132_pos, $P10
- ge rx132_pos, rx132_eos, rxscan133_done
- rxscan133_scan:
- set_addr $I10, rxscan133_loop
- rx132_cur."!mark_push"(0, rx132_pos, $I10)
- rxscan133_done:
- # rx rxquantf134 ** 0..*
- set_addr $I10, rxquantf134_loop
- rx132_cur."!mark_push"(0, rx132_pos, $I10)
- goto rxquantf134_done
- rxquantf134_loop:
- # rx charclass .
- ge rx132_pos, rx132_eos, rx132_fail
- inc rx132_pos
- set_addr $I10, rxquantf134_loop
- rx132_cur."!mark_push"($I135, rx132_pos, $I10)
- rxquantf134_done:
- # rxanchor bol
- eq rx132_pos, 0, rxanchor136_done
- ge rx132_pos, rx132_eos, rx132_fail
- sub $I10, rx132_pos, rx132_off
- dec $I10
- is_cclass $I11, 4096, rx132_tgt, $I10
- unless $I11, rx132_fail
- rxanchor136_done:
- # rx literal "=cut"
- add $I11, rx132_pos, 4
- gt $I11, rx132_eos, rx132_fail
- sub $I11, rx132_pos, rx132_off
- substr $S10, rx132_tgt, $I11, 4
- ne $S10, "=cut", rx132_fail
- add rx132_pos, 4
+ .local string rx134_tgt
+ .local int rx134_pos
+ .local int rx134_off
+ .local int rx134_eos
+ .local int rx134_rep
+ .local pmc rx134_cur
+ (rx134_cur, rx134_pos, rx134_tgt) = self."!cursor_start"()
+ rx134_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx134_cur
+ .local pmc match
+ .lex "$/", match
+ length rx134_eos, rx134_tgt
+ set rx134_off, 0
+ lt rx134_pos, 2, rx134_start
+ sub rx134_off, rx134_pos, 1
+ substr rx134_tgt, rx134_tgt, rx134_off
+ rx134_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan135_done
+ goto rxscan135_scan
+ rxscan135_loop:
+ ($P10) = rx134_cur."from"()
+ inc $P10
+ set rx134_pos, $P10
+ ge rx134_pos, rx134_eos, rxscan135_done
+ rxscan135_scan:
+ set_addr $I10, rxscan135_loop
+ rx134_cur."!mark_push"(0, rx134_pos, $I10)
+ rxscan135_done:
+ # rx rxquantr136 ** 0..*
+ set_addr $I137, rxquantr136_done
+ rx134_cur."!mark_push"(0, rx134_pos, $I137)
+ rxquantr136_loop:
+ # rx enumcharlist negate=0
+ ge rx134_pos, rx134_eos, rx134_fail
+ sub $I10, rx134_pos, rx134_off
+ substr $S10, rx134_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, rx134_fail
+ inc rx134_pos
+ (rx134_rep) = rx134_cur."!mark_commit"($I137)
+ rx134_cur."!mark_push"(rx134_rep, rx134_pos, $I137)
+ goto rxquantr136_loop
+ rxquantr136_done:
+ alt138_0:
+ set_addr $I10, alt138_1
+ rx134_cur."!mark_push"(0, rx134_pos, $I10)
+.annotate "line", 68
+ # rx literal "="
+ add $I11, rx134_pos, 1
+ gt $I11, rx134_eos, rx134_fail
+ sub $I11, rx134_pos, rx134_off
+ substr $S10, rx134_tgt, $I11, 1
+ ne $S10, "=", rx134_fail
+ add rx134_pos, 1
+.annotate "line", 70
+ # rx rxquantr139 ** 0..1
+ set_addr $I140, rxquantr139_done
+ rx134_cur."!mark_push"(0, rx134_pos, $I140)
+ rxquantr139_loop:
+.annotate "line", 69
+ # rx literal "cut"
+ add $I11, rx134_pos, 3
+ gt $I11, rx134_eos, rx134_fail
+ sub $I11, rx134_pos, rx134_off
+ substr $S10, rx134_tgt, $I11, 3
+ ne $S10, "cut", rx134_fail
+ add rx134_pos, 3
# rxanchor rwb
- le rx132_pos, 0, rx132_fail
- sub $I10, rx132_pos, rx132_off
- is_cclass $I11, 8192, rx132_tgt, $I10
- if $I11, rx132_fail
+ le rx134_pos, 0, rx134_fail
+ sub $I10, rx134_pos, rx134_off
+ is_cclass $I11, 8192, rx134_tgt, $I10
+ if $I11, rx134_fail
dec $I10
- is_cclass $I11, 8192, rx132_tgt, $I10
- unless $I11, rx132_fail
+ is_cclass $I11, 8192, rx134_tgt, $I10
+ unless $I11, rx134_fail
+.annotate "line", 70
+ # rx subrule "panic" subtype=method negate=
+ rx134_cur."!cursor_pos"(rx134_pos)
+ $P10 = rx134_cur."panic"("Obsolete pod format, please use =begin/=end instead")
+ unless $P10, rx134_fail
+ rx134_pos = $P10."pos"()
+ (rx134_rep) = rx134_cur."!mark_commit"($I140)
+ rxquantr139_done:
+.annotate "line", 67
+ goto alt138_end
+ alt138_1:
+.annotate "line", 71
+ # rx charclass nl
+ ge rx134_pos, rx134_eos, rx134_fail
+ sub $I10, rx134_pos, rx134_off
+ is_cclass $I11, 4096, rx134_tgt, $I10
+ unless $I11, rx134_fail
+ substr $S10, rx134_tgt, $I10, 2
+ iseq $I11, $S10, "\r\n"
+ add rx134_pos, $I11
+ inc rx134_pos
+ alt138_end:
+.annotate "line", 67
# rx pass
- rx132_cur."!cursor_pass"(rx132_pos, "")
- rx132_cur."!cursor_debug"("PASS ", "", " at pos=", rx132_pos)
- .return (rx132_cur)
- 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 ", "")
- .return (rx132_cur)
+ rx134_cur."!cursor_pass"(rx134_pos, "")
+ rx134_cur."!cursor_debug"("PASS ", "", " at pos=", rx134_pos)
+ .return (rx134_cur)
+ rx134_fail:
+ (rx134_rep, rx134_pos, $I10, $P10) = rx134_cur."!mark_fail"(0)
+ lt rx134_pos, -1, rx134_done
+ eq rx134_pos, -1, rx134_fail
+ jump $I10
+ rx134_done:
+ rx134_cur."!cursor_fail"()
+ rx134_cur."!cursor_debug"("FAIL ", "")
+ .return (rx134_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "comp_unit" :subid("29_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 4
- .local string rx140_tgt
- .local int rx140_pos
- .local int rx140_off
- .local int rx140_eos
- .local int rx140_rep
- .local pmc rx140_cur
- (rx140_cur, rx140_pos, rx140_tgt) = self."!cursor_start"()
- rx140_cur."!cursor_debug"("START ", "comp_unit")
- .lex unicode:"$\x{a2}", rx140_cur
- .local pmc match
- .lex "$/", match
- length rx140_eos, rx140_tgt
- set rx140_off, 0
- lt rx140_pos, 2, rx140_start
- sub rx140_off, rx140_pos, 1
- substr rx140_tgt, rx140_tgt, rx140_off
- rx140_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan144_done
- goto rxscan144_scan
- rxscan144_loop:
- ($P10) = rx140_cur."from"()
- inc $P10
- set rx140_pos, $P10
- ge rx140_pos, rx140_eos, rxscan144_done
- rxscan144_scan:
- set_addr $I10, rxscan144_loop
- rx140_cur."!mark_push"(0, rx140_pos, $I10)
- rxscan144_done:
-.annotate "line", 78
+.sub "comp_unit" :subid("29_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 4
+ .local string rx143_tgt
+ .local int rx143_pos
+ .local int rx143_off
+ .local int rx143_eos
+ .local int rx143_rep
+ .local pmc rx143_cur
+ (rx143_cur, rx143_pos, rx143_tgt) = self."!cursor_start"()
+ rx143_cur."!cursor_debug"("START ", "comp_unit")
+ .lex unicode:"$\x{a2}", rx143_cur
+ .local pmc match
+ .lex "$/", match
+ length rx143_eos, rx143_tgt
+ set rx143_off, 0
+ lt rx143_pos, 2, rx143_start
+ sub rx143_off, rx143_pos, 1
+ substr rx143_tgt, rx143_tgt, rx143_off
+ rx143_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan147_done
+ goto rxscan147_scan
+ rxscan147_loop:
+ ($P10) = rx143_cur."from"()
+ inc $P10
+ set rx143_pos, $P10
+ ge rx143_pos, rx143_eos, rxscan147_done
+ rxscan147_scan:
+ set_addr $I10, rxscan147_loop
+ rx143_cur."!mark_push"(0, rx143_pos, $I10)
+ rxscan147_done:
+.annotate "line", 82
# rx subrule "newpad" subtype=method negate=
- rx140_cur."!cursor_pos"(rx140_pos)
- $P10 = rx140_cur."newpad"()
- unless $P10, rx140_fail
- rx140_pos = $P10."pos"()
-.annotate "line", 79
+ rx143_cur."!cursor_pos"(rx143_pos)
+ $P10 = rx143_cur."newpad"()
+ unless $P10, rx143_fail
+ rx143_pos = $P10."pos"()
+.annotate "line", 83
# rx subrule "statementlist" subtype=capture negate=
- rx140_cur."!cursor_pos"(rx140_pos)
- $P10 = rx140_cur."statementlist"()
- unless $P10, rx140_fail
- rx140_cur."!mark_push"(0, -1, 0, $P10)
+ rx143_cur."!cursor_pos"(rx143_pos)
+ $P10 = rx143_cur."statementlist"()
+ unless $P10, rx143_fail
+ rx143_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statementlist")
- rx140_pos = $P10."pos"()
- alt145_0:
-.annotate "line", 80
- set_addr $I10, alt145_1
- rx140_cur."!mark_push"(0, rx140_pos, $I10)
+ rx143_pos = $P10."pos"()
+ alt148_0:
+.annotate "line", 84
+ set_addr $I10, alt148_1
+ rx143_cur."!mark_push"(0, rx143_pos, $I10)
# rxanchor eos
- ne rx140_pos, rx140_eos, rx140_fail
- goto alt145_end
- alt145_1:
+ ne rx143_pos, rx143_eos, rx143_fail
+ goto alt148_end
+ alt148_1:
# rx subrule "panic" subtype=method negate=
- rx140_cur."!cursor_pos"(rx140_pos)
- $P10 = rx140_cur."panic"("Confused")
- unless $P10, rx140_fail
- rx140_pos = $P10."pos"()
- alt145_end:
-.annotate "line", 77
+ rx143_cur."!cursor_pos"(rx143_pos)
+ $P10 = rx143_cur."panic"("Confused")
+ unless $P10, rx143_fail
+ rx143_pos = $P10."pos"()
+ alt148_end:
+.annotate "line", 81
# rx pass
- rx140_cur."!cursor_pass"(rx140_pos, "comp_unit")
- rx140_cur."!cursor_debug"("PASS ", "comp_unit", " at pos=", rx140_pos)
- .return (rx140_cur)
- rx140_fail:
+ rx143_cur."!cursor_pass"(rx143_pos, "comp_unit")
+ rx143_cur."!cursor_debug"("PASS ", "comp_unit", " at pos=", rx143_pos)
+ .return (rx143_cur)
+ rx143_fail:
.annotate "line", 4
- (rx140_rep, rx140_pos, $I10, $P10) = rx140_cur."!mark_fail"(0)
- lt rx140_pos, -1, rx140_done
- eq rx140_pos, -1, rx140_fail
+ (rx143_rep, rx143_pos, $I10, $P10) = rx143_cur."!mark_fail"(0)
+ lt rx143_pos, -1, rx143_done
+ eq rx143_pos, -1, rx143_fail
jump $I10
- rx140_done:
- rx140_cur."!cursor_fail"()
- rx140_cur."!cursor_debug"("FAIL ", "comp_unit")
- .return (rx140_cur)
+ rx143_done:
+ rx143_cur."!cursor_fail"()
+ rx143_cur."!cursor_debug"("FAIL ", "comp_unit")
+ .return (rx143_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit" :subid("30_1267204702.05125") :method
+.sub "!PREFIX__comp_unit" :subid("30_1271336396.90314") :method
.annotate "line", 4
- $P142 = self."!PREFIX__!subrule"("", "")
- new $P143, "ResizablePMCArray"
- push $P143, $P142
- .return ($P143)
+ $P145 = self."!PREFIX__!subrule"("", "")
+ new $P146, "ResizablePMCArray"
+ push $P146, $P145
+ .return ($P146)
.end
.namespace ["NQP";"Grammar"]
-.sub "statementlist" :subid("31_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "statementlist" :subid("31_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx147_tgt
- .local int rx147_pos
- .local int rx147_off
- .local int rx147_eos
- .local int rx147_rep
- .local pmc rx147_cur
- (rx147_cur, rx147_pos, rx147_tgt) = self."!cursor_start"()
- rx147_cur."!cursor_debug"("START ", "statementlist")
- rx147_cur."!cursor_caparray"("statement")
- .lex unicode:"$\x{a2}", rx147_cur
+ .local string rx150_tgt
+ .local int rx150_pos
+ .local int rx150_off
+ .local int rx150_eos
+ .local int rx150_rep
+ .local pmc rx150_cur
+ (rx150_cur, rx150_pos, rx150_tgt) = self."!cursor_start"()
+ rx150_cur."!cursor_debug"("START ", "statementlist")
+ rx150_cur."!cursor_caparray"("statement")
+ .lex unicode:"$\x{a2}", rx150_cur
.local pmc match
.lex "$/", match
- length rx147_eos, rx147_tgt
- set rx147_off, 0
- lt rx147_pos, 2, rx147_start
- sub rx147_off, rx147_pos, 1
- substr rx147_tgt, rx147_tgt, rx147_off
- rx147_start:
+ length rx150_eos, rx150_tgt
+ set rx150_off, 0
+ lt rx150_pos, 2, rx150_start
+ sub rx150_off, rx150_pos, 1
+ substr rx150_tgt, rx150_tgt, rx150_off
+ rx150_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan150_done
- goto rxscan150_scan
- rxscan150_loop:
- ($P10) = rx147_cur."from"()
+ ne $I10, -1, rxscan153_done
+ goto rxscan153_scan
+ rxscan153_loop:
+ ($P10) = rx150_cur."from"()
inc $P10
- set rx147_pos, $P10
- ge rx147_pos, rx147_eos, rxscan150_done
- rxscan150_scan:
- set_addr $I10, rxscan150_loop
- rx147_cur."!mark_push"(0, rx147_pos, $I10)
- rxscan150_done:
- alt151_0:
-.annotate "line", 83
- set_addr $I10, alt151_1
- rx147_cur."!mark_push"(0, rx147_pos, $I10)
-.annotate "line", 84
+ set rx150_pos, $P10
+ ge rx150_pos, rx150_eos, rxscan153_done
+ rxscan153_scan:
+ set_addr $I10, rxscan153_loop
+ rx150_cur."!mark_push"(0, rx150_pos, $I10)
+ rxscan153_done:
+ alt154_0:
+.annotate "line", 87
+ set_addr $I10, alt154_1
+ rx150_cur."!mark_push"(0, rx150_pos, $I10)
+.annotate "line", 88
# rx subrule "ws" subtype=method negate=
- rx147_cur."!cursor_pos"(rx147_pos)
- $P10 = rx147_cur."ws"()
- unless $P10, rx147_fail
- rx147_pos = $P10."pos"()
+ rx150_cur."!cursor_pos"(rx150_pos)
+ $P10 = rx150_cur."ws"()
+ unless $P10, rx150_fail
+ rx150_pos = $P10."pos"()
# rxanchor eos
- ne rx147_pos, rx147_eos, rx147_fail
+ ne rx150_pos, rx150_eos, rx150_fail
# rx subrule "ws" subtype=method negate=
- rx147_cur."!cursor_pos"(rx147_pos)
- $P10 = rx147_cur."ws"()
- unless $P10, rx147_fail
- rx147_pos = $P10."pos"()
- goto alt151_end
- alt151_1:
-.annotate "line", 85
+ rx150_cur."!cursor_pos"(rx150_pos)
+ $P10 = rx150_cur."ws"()
+ unless $P10, rx150_fail
+ rx150_pos = $P10."pos"()
+ goto alt154_end
+ alt154_1:
+.annotate "line", 89
# rx subrule "ws" subtype=method negate=
- rx147_cur."!cursor_pos"(rx147_pos)
- $P10 = rx147_cur."ws"()
- unless $P10, rx147_fail
- rx147_pos = $P10."pos"()
- # rx rxquantr155 ** 0..*
- set_addr $I157, rxquantr155_done
- rx147_cur."!mark_push"(0, rx147_pos, $I157)
- rxquantr155_loop:
+ rx150_cur."!cursor_pos"(rx150_pos)
+ $P10 = rx150_cur."ws"()
+ unless $P10, rx150_fail
+ rx150_pos = $P10."pos"()
+ # rx rxquantr158 ** 0..*
+ set_addr $I160, rxquantr158_done
+ rx150_cur."!mark_push"(0, rx150_pos, $I160)
+ rxquantr158_loop:
# rx subrule "statement" subtype=capture negate=
- rx147_cur."!cursor_pos"(rx147_pos)
- $P10 = rx147_cur."statement"()
- unless $P10, rx147_fail
- rx147_cur."!mark_push"(0, -1, 0, $P10)
+ rx150_cur."!cursor_pos"(rx150_pos)
+ $P10 = rx150_cur."statement"()
+ unless $P10, rx150_fail
+ rx150_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement")
- rx147_pos = $P10."pos"()
+ rx150_pos = $P10."pos"()
# rx subrule "eat_terminator" subtype=method negate=
- rx147_cur."!cursor_pos"(rx147_pos)
- $P10 = rx147_cur."eat_terminator"()
- unless $P10, rx147_fail
- rx147_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx147_cur."!cursor_pos"(rx147_pos)
- $P10 = rx147_cur."ws"()
- unless $P10, rx147_fail
- rx147_pos = $P10."pos"()
- (rx147_rep) = rx147_cur."!mark_commit"($I157)
- rx147_cur."!mark_push"(rx147_rep, rx147_pos, $I157)
- goto rxquantr155_loop
- rxquantr155_done:
- # rx subrule "ws" subtype=method negate=
- rx147_cur."!cursor_pos"(rx147_pos)
- $P10 = rx147_cur."ws"()
- unless $P10, rx147_fail
- rx147_pos = $P10."pos"()
- alt151_end:
-.annotate "line", 83
+ rx150_cur."!cursor_pos"(rx150_pos)
+ $P10 = rx150_cur."eat_terminator"()
+ unless $P10, rx150_fail
+ rx150_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx150_cur."!cursor_pos"(rx150_pos)
+ $P10 = rx150_cur."ws"()
+ unless $P10, rx150_fail
+ rx150_pos = $P10."pos"()
+ (rx150_rep) = rx150_cur."!mark_commit"($I160)
+ rx150_cur."!mark_push"(rx150_rep, rx150_pos, $I160)
+ goto rxquantr158_loop
+ rxquantr158_done:
+ # rx subrule "ws" subtype=method negate=
+ rx150_cur."!cursor_pos"(rx150_pos)
+ $P10 = rx150_cur."ws"()
+ unless $P10, rx150_fail
+ rx150_pos = $P10."pos"()
+ alt154_end:
+.annotate "line", 87
# rx pass
- rx147_cur."!cursor_pass"(rx147_pos, "statementlist")
- rx147_cur."!cursor_debug"("PASS ", "statementlist", " at pos=", rx147_pos)
- .return (rx147_cur)
- rx147_fail:
+ rx150_cur."!cursor_pass"(rx150_pos, "statementlist")
+ rx150_cur."!cursor_debug"("PASS ", "statementlist", " at pos=", rx150_pos)
+ .return (rx150_cur)
+ rx150_fail:
.annotate "line", 4
- (rx147_rep, rx147_pos, $I10, $P10) = rx147_cur."!mark_fail"(0)
- lt rx147_pos, -1, rx147_done
- eq rx147_pos, -1, rx147_fail
+ (rx150_rep, rx150_pos, $I10, $P10) = rx150_cur."!mark_fail"(0)
+ lt rx150_pos, -1, rx150_done
+ eq rx150_pos, -1, rx150_fail
jump $I10
- rx147_done:
- rx147_cur."!cursor_fail"()
- rx147_cur."!cursor_debug"("FAIL ", "statementlist")
- .return (rx147_cur)
+ rx150_done:
+ rx150_cur."!cursor_fail"()
+ rx150_cur."!cursor_debug"("FAIL ", "statementlist")
+ .return (rx150_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist" :subid("32_1267204702.05125") :method
+.sub "!PREFIX__statementlist" :subid("32_1271336396.90314") :method
.annotate "line", 4
- new $P149, "ResizablePMCArray"
- push $P149, ""
- push $P149, ""
- .return ($P149)
+ new $P152, "ResizablePMCArray"
+ push $P152, ""
+ push $P152, ""
+ .return ($P152)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement" :subid("33_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "statement" :subid("33_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .const 'Sub' $P165 = "35_1267204702.05125"
- capture_lex $P165
- .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 ", "statement")
- rx160_cur."!cursor_caparray"("statement_mod_cond", "statement_mod_loop")
- .lex unicode:"$\x{a2}", rx160_cur
+ .const 'Sub' $P168 = "35_1271336396.90314"
+ capture_lex $P168
+ .local string rx163_tgt
+ .local int rx163_pos
+ .local int rx163_off
+ .local int rx163_eos
+ .local int rx163_rep
+ .local pmc rx163_cur
+ (rx163_cur, rx163_pos, rx163_tgt) = self."!cursor_start"()
+ rx163_cur."!cursor_debug"("START ", "statement")
+ rx163_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond")
+ .lex unicode:"$\x{a2}", rx163_cur
.local pmc match
.lex "$/", match
- length rx160_eos, rx160_tgt
- 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 rx163_eos, rx163_tgt
+ set rx163_off, 0
+ lt rx163_pos, 2, rx163_start
+ sub rx163_off, rx163_pos, 1
+ substr rx163_tgt, rx163_tgt, rx163_off
+ rx163_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan163_done
- goto rxscan163_scan
- rxscan163_loop:
- ($P10) = rx160_cur."from"()
+ ne $I10, -1, rxscan166_done
+ goto rxscan166_scan
+ rxscan166_loop:
+ ($P10) = rx163_cur."from"()
inc $P10
- set rx160_pos, $P10
- ge rx160_pos, rx160_eos, rxscan163_done
- rxscan163_scan:
- set_addr $I10, rxscan163_loop
- rx160_cur."!mark_push"(0, rx160_pos, $I10)
- rxscan163_done:
-.annotate "line", 89
+ set rx163_pos, $P10
+ ge rx163_pos, rx163_eos, rxscan166_done
+ rxscan166_scan:
+ set_addr $I10, rxscan166_loop
+ rx163_cur."!mark_push"(0, rx163_pos, $I10)
+ rxscan166_done:
+.annotate "line", 93
# rx subrule "before" subtype=zerowidth negate=1
- rx160_cur."!cursor_pos"(rx160_pos)
- .const 'Sub' $P165 = "35_1267204702.05125"
- capture_lex $P165
- $P10 = rx160_cur."before"($P165)
- if $P10, rx160_fail
- alt169_0:
-.annotate "line", 90
- set_addr $I10, alt169_1
- rx160_cur."!mark_push"(0, rx160_pos, $I10)
-.annotate "line", 91
+ rx163_cur."!cursor_pos"(rx163_pos)
+ .const 'Sub' $P168 = "35_1271336396.90314"
+ capture_lex $P168
+ $P10 = rx163_cur."before"($P168)
+ if $P10, rx163_fail
+ alt172_0:
+.annotate "line", 94
+ set_addr $I10, alt172_1
+ rx163_cur."!mark_push"(0, rx163_pos, $I10)
+.annotate "line", 95
# rx subrule "statement_control" subtype=capture negate=
- rx160_cur."!cursor_pos"(rx160_pos)
- $P10 = rx160_cur."statement_control"()
- unless $P10, rx160_fail
- rx160_cur."!mark_push"(0, -1, 0, $P10)
+ rx163_cur."!cursor_pos"(rx163_pos)
+ $P10 = rx163_cur."statement_control"()
+ unless $P10, rx163_fail
+ rx163_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement_control")
- rx160_pos = $P10."pos"()
- goto alt169_end
- alt169_1:
-.annotate "line", 92
+ rx163_pos = $P10."pos"()
+ goto alt172_end
+ alt172_1:
+.annotate "line", 96
# rx subrule "EXPR" subtype=capture negate=
- rx160_cur."!cursor_pos"(rx160_pos)
- $P10 = rx160_cur."EXPR"()
- unless $P10, rx160_fail
- rx160_cur."!mark_push"(0, -1, 0, $P10)
+ rx163_cur."!cursor_pos"(rx163_pos)
+ $P10 = rx163_cur."EXPR"()
+ unless $P10, rx163_fail
+ rx163_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx160_pos = $P10."pos"()
+ rx163_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"()
+ rx163_cur."!cursor_pos"(rx163_pos)
+ $P10 = rx163_cur."ws"()
+ unless $P10, rx163_fail
+ rx163_pos = $P10."pos"()
+.annotate "line", 101
+ # rx rxquantr173 ** 0..1
+ set_addr $I177, rxquantr173_done
+ rx163_cur."!mark_push"(0, rx163_pos, $I177)
+ rxquantr173_loop:
+ alt174_0:
.annotate "line", 97
- # rx rxquantr170 ** 0..1
- set_addr $I174, rxquantr170_done
- rx160_cur."!mark_push"(0, rx160_pos, $I174)
- rxquantr170_loop:
- alt171_0:
-.annotate "line", 93
- set_addr $I10, alt171_1
- rx160_cur."!mark_push"(0, rx160_pos, $I10)
-.annotate "line", 94
+ set_addr $I10, alt174_1
+ rx163_cur."!mark_push"(0, rx163_pos, $I10)
+.annotate "line", 98
# rx subrule "MARKED" subtype=zerowidth negate=
- rx160_cur."!cursor_pos"(rx160_pos)
- $P10 = rx160_cur."MARKED"("endstmt")
- unless $P10, rx160_fail
- goto alt171_end
- alt171_1:
- set_addr $I10, alt171_2
- rx160_cur."!mark_push"(0, rx160_pos, $I10)
-.annotate "line", 95
+ rx163_cur."!cursor_pos"(rx163_pos)
+ $P10 = rx163_cur."MARKED"("endstmt")
+ unless $P10, rx163_fail
+ goto alt174_end
+ alt174_1:
+ set_addr $I10, alt174_2
+ rx163_cur."!mark_push"(0, rx163_pos, $I10)
+.annotate "line", 99
# rx subrule "statement_mod_cond" subtype=capture negate=
- rx160_cur."!cursor_pos"(rx160_pos)
- $P10 = rx160_cur."statement_mod_cond"()
- unless $P10, rx160_fail
- rx160_cur."!mark_push"(0, -1, 0, $P10)
+ rx163_cur."!cursor_pos"(rx163_pos)
+ $P10 = rx163_cur."statement_mod_cond"()
+ unless $P10, rx163_fail
+ rx163_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement_mod_cond")
- rx160_pos = $P10."pos"()
- # rx rxquantr172 ** 0..1
- set_addr $I173, rxquantr172_done
- rx160_cur."!mark_push"(0, rx160_pos, $I173)
- rxquantr172_loop:
+ rx163_pos = $P10."pos"()
+ # rx rxquantr175 ** 0..1
+ set_addr $I176, rxquantr175_done
+ rx163_cur."!mark_push"(0, rx163_pos, $I176)
+ rxquantr175_loop:
# rx subrule "statement_mod_loop" subtype=capture negate=
- rx160_cur."!cursor_pos"(rx160_pos)
- $P10 = rx160_cur."statement_mod_loop"()
- unless $P10, rx160_fail
- rx160_cur."!mark_push"(0, -1, 0, $P10)
+ rx163_cur."!cursor_pos"(rx163_pos)
+ $P10 = rx163_cur."statement_mod_loop"()
+ unless $P10, rx163_fail
+ rx163_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement_mod_loop")
- rx160_pos = $P10."pos"()
- (rx160_rep) = rx160_cur."!mark_commit"($I173)
- rxquantr172_done:
- goto alt171_end
- alt171_2:
-.annotate "line", 96
+ rx163_pos = $P10."pos"()
+ (rx163_rep) = rx163_cur."!mark_commit"($I176)
+ rxquantr175_done:
+ goto alt174_end
+ alt174_2:
+.annotate "line", 100
# rx subrule "statement_mod_loop" subtype=capture negate=
- rx160_cur."!cursor_pos"(rx160_pos)
- $P10 = rx160_cur."statement_mod_loop"()
- unless $P10, rx160_fail
- rx160_cur."!mark_push"(0, -1, 0, $P10)
+ rx163_cur."!cursor_pos"(rx163_pos)
+ $P10 = rx163_cur."statement_mod_loop"()
+ unless $P10, rx163_fail
+ rx163_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement_mod_loop")
- rx160_pos = $P10."pos"()
- alt171_end:
-.annotate "line", 97
- (rx160_rep) = rx160_cur."!mark_commit"($I174)
- rxquantr170_done:
- alt169_end:
-.annotate "line", 88
+ rx163_pos = $P10."pos"()
+ alt174_end:
+.annotate "line", 101
+ (rx163_rep) = rx163_cur."!mark_commit"($I177)
+ rxquantr173_done:
+ alt172_end:
+.annotate "line", 92
# rx pass
- rx160_cur."!cursor_pass"(rx160_pos, "statement")
- rx160_cur."!cursor_debug"("PASS ", "statement", " at pos=", rx160_pos)
- .return (rx160_cur)
- rx160_fail:
+ rx163_cur."!cursor_pass"(rx163_pos, "statement")
+ rx163_cur."!cursor_debug"("PASS ", "statement", " at pos=", rx163_pos)
+ .return (rx163_cur)
+ rx163_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
+ (rx163_rep, rx163_pos, $I10, $P10) = rx163_cur."!mark_fail"(0)
+ lt rx163_pos, -1, rx163_done
+ eq rx163_pos, -1, rx163_fail
jump $I10
- rx160_done:
- rx160_cur."!cursor_fail"()
- rx160_cur."!cursor_debug"("FAIL ", "statement")
- .return (rx160_cur)
+ rx163_done:
+ rx163_cur."!cursor_fail"()
+ rx163_cur."!cursor_debug"("FAIL ", "statement")
+ .return (rx163_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement" :subid("34_1267204702.05125") :method
+.sub "!PREFIX__statement" :subid("34_1271336396.90314") :method
.annotate "line", 4
- new $P162, "ResizablePMCArray"
- push $P162, ""
- .return ($P162)
+ new $P165, "ResizablePMCArray"
+ push $P165, ""
+ .return ($P165)
.end
.namespace ["NQP";"Grammar"]
-.sub "_block164" :anon :subid("35_1267204702.05125") :method :outer("33_1267204702.05125")
-.annotate "line", 89
- .local string rx166_tgt
- .local int rx166_pos
- .local int rx166_off
- .local int rx166_eos
- .local int rx166_rep
- .local pmc rx166_cur
- (rx166_cur, rx166_pos, rx166_tgt) = self."!cursor_start"()
- rx166_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx166_cur
- .local pmc match
- .lex "$/", match
- length rx166_eos, rx166_tgt
- set rx166_off, 0
- lt rx166_pos, 2, rx166_start
- sub rx166_off, rx166_pos, 1
- substr rx166_tgt, rx166_tgt, rx166_off
- rx166_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan167_done
- goto rxscan167_scan
- rxscan167_loop:
- ($P10) = rx166_cur."from"()
- inc $P10
- set rx166_pos, $P10
- ge rx166_pos, rx166_eos, rxscan167_done
- rxscan167_scan:
- set_addr $I10, rxscan167_loop
- rx166_cur."!mark_push"(0, rx166_pos, $I10)
- rxscan167_done:
- alt168_0:
- set_addr $I10, alt168_1
- rx166_cur."!mark_push"(0, rx166_pos, $I10)
+.sub "_block167" :anon :subid("35_1271336396.90314") :method :outer("33_1271336396.90314")
+.annotate "line", 93
+ .local string rx169_tgt
+ .local int rx169_pos
+ .local int rx169_off
+ .local int rx169_eos
+ .local int rx169_rep
+ .local pmc rx169_cur
+ (rx169_cur, rx169_pos, rx169_tgt) = self."!cursor_start"()
+ rx169_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx169_cur
+ .local pmc match
+ .lex "$/", match
+ length rx169_eos, rx169_tgt
+ set rx169_off, 0
+ lt rx169_pos, 2, rx169_start
+ sub rx169_off, rx169_pos, 1
+ substr rx169_tgt, rx169_tgt, rx169_off
+ rx169_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan170_done
+ goto rxscan170_scan
+ rxscan170_loop:
+ ($P10) = rx169_cur."from"()
+ inc $P10
+ set rx169_pos, $P10
+ ge rx169_pos, rx169_eos, rxscan170_done
+ rxscan170_scan:
+ set_addr $I10, rxscan170_loop
+ rx169_cur."!mark_push"(0, rx169_pos, $I10)
+ rxscan170_done:
+ alt171_0:
+ set_addr $I10, alt171_1
+ rx169_cur."!mark_push"(0, rx169_pos, $I10)
# rx enumcharlist negate=0
- ge rx166_pos, rx166_eos, rx166_fail
- sub $I10, rx166_pos, rx166_off
- substr $S10, rx166_tgt, $I10, 1
+ ge rx169_pos, rx169_eos, rx169_fail
+ sub $I10, rx169_pos, rx169_off
+ substr $S10, rx169_tgt, $I10, 1
index $I11, "])}", $S10
- lt $I11, 0, rx166_fail
- inc rx166_pos
- goto alt168_end
- alt168_1:
+ lt $I11, 0, rx169_fail
+ inc rx169_pos
+ goto alt171_end
+ alt171_1:
# rxanchor eos
- ne rx166_pos, rx166_eos, rx166_fail
- alt168_end:
+ ne rx169_pos, rx169_eos, rx169_fail
+ alt171_end:
# rx pass
- rx166_cur."!cursor_pass"(rx166_pos, "")
- rx166_cur."!cursor_debug"("PASS ", "", " at pos=", rx166_pos)
- .return (rx166_cur)
- rx166_fail:
- (rx166_rep, rx166_pos, $I10, $P10) = rx166_cur."!mark_fail"(0)
- lt rx166_pos, -1, rx166_done
- eq rx166_pos, -1, rx166_fail
- jump $I10
- rx166_done:
- rx166_cur."!cursor_fail"()
- rx166_cur."!cursor_debug"("FAIL ", "")
- .return (rx166_cur)
+ rx169_cur."!cursor_pass"(rx169_pos, "")
+ rx169_cur."!cursor_debug"("PASS ", "", " at pos=", rx169_pos)
+ .return (rx169_cur)
+ rx169_fail:
+ (rx169_rep, rx169_pos, $I10, $P10) = rx169_cur."!mark_fail"(0)
+ lt rx169_pos, -1, rx169_done
+ eq rx169_pos, -1, rx169_fail
+ jump $I10
+ rx169_done:
+ rx169_cur."!cursor_fail"()
+ rx169_cur."!cursor_debug"("FAIL ", "")
+ .return (rx169_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "eat_terminator" :subid("36_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 4
- .local string rx176_tgt
- .local int rx176_pos
- .local int rx176_off
- .local int rx176_eos
- .local int rx176_rep
- .local pmc rx176_cur
- (rx176_cur, rx176_pos, rx176_tgt) = self."!cursor_start"()
- rx176_cur."!cursor_debug"("START ", "eat_terminator")
- .lex unicode:"$\x{a2}", rx176_cur
- .local pmc match
- .lex "$/", match
- length rx176_eos, rx176_tgt
- set rx176_off, 0
- lt rx176_pos, 2, rx176_start
- sub rx176_off, rx176_pos, 1
- substr rx176_tgt, rx176_tgt, rx176_off
- rx176_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan179_done
- goto rxscan179_scan
- rxscan179_loop:
- ($P10) = rx176_cur."from"()
- inc $P10
- set rx176_pos, $P10
- ge rx176_pos, rx176_eos, rxscan179_done
- rxscan179_scan:
- set_addr $I10, rxscan179_loop
- rx176_cur."!mark_push"(0, rx176_pos, $I10)
- rxscan179_done:
- alt180_0:
-.annotate "line", 101
- set_addr $I10, alt180_1
- rx176_cur."!mark_push"(0, rx176_pos, $I10)
-.annotate "line", 102
+.sub "eat_terminator" :subid("36_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 4
+ .local string rx179_tgt
+ .local int rx179_pos
+ .local int rx179_off
+ .local int rx179_eos
+ .local int rx179_rep
+ .local pmc rx179_cur
+ (rx179_cur, rx179_pos, rx179_tgt) = self."!cursor_start"()
+ rx179_cur."!cursor_debug"("START ", "eat_terminator")
+ .lex unicode:"$\x{a2}", rx179_cur
+ .local pmc match
+ .lex "$/", match
+ length rx179_eos, rx179_tgt
+ set rx179_off, 0
+ lt rx179_pos, 2, rx179_start
+ sub rx179_off, rx179_pos, 1
+ substr rx179_tgt, rx179_tgt, rx179_off
+ rx179_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan182_done
+ goto rxscan182_scan
+ rxscan182_loop:
+ ($P10) = rx179_cur."from"()
+ inc $P10
+ set rx179_pos, $P10
+ ge rx179_pos, rx179_eos, rxscan182_done
+ rxscan182_scan:
+ set_addr $I10, rxscan182_loop
+ rx179_cur."!mark_push"(0, rx179_pos, $I10)
+ rxscan182_done:
+ alt183_0:
+.annotate "line", 105
+ set_addr $I10, alt183_1
+ rx179_cur."!mark_push"(0, rx179_pos, $I10)
+.annotate "line", 106
# rx literal ";"
- add $I11, rx176_pos, 1
- gt $I11, rx176_eos, rx176_fail
- sub $I11, rx176_pos, rx176_off
- substr $S10, rx176_tgt, $I11, 1
- ne $S10, ";", rx176_fail
- add rx176_pos, 1
- goto alt180_end
- alt180_1:
- set_addr $I10, alt180_2
- rx176_cur."!mark_push"(0, rx176_pos, $I10)
-.annotate "line", 103
+ add $I11, rx179_pos, 1
+ gt $I11, rx179_eos, rx179_fail
+ sub $I11, rx179_pos, rx179_off
+ substr $S10, rx179_tgt, $I11, 1
+ ne $S10, ";", rx179_fail
+ add rx179_pos, 1
+ goto alt183_end
+ alt183_1:
+ set_addr $I10, alt183_2
+ rx179_cur."!mark_push"(0, rx179_pos, $I10)
+.annotate "line", 107
# rx subrule "MARKED" subtype=zerowidth negate=
- rx176_cur."!cursor_pos"(rx176_pos)
- $P10 = rx176_cur."MARKED"("endstmt")
- unless $P10, rx176_fail
- goto alt180_end
- alt180_2:
- set_addr $I10, alt180_3
- rx176_cur."!mark_push"(0, rx176_pos, $I10)
-.annotate "line", 104
+ rx179_cur."!cursor_pos"(rx179_pos)
+ $P10 = rx179_cur."MARKED"("endstmt")
+ unless $P10, rx179_fail
+ goto alt183_end
+ alt183_2:
+ set_addr $I10, alt183_3
+ rx179_cur."!mark_push"(0, rx179_pos, $I10)
+.annotate "line", 108
# rx subrule "terminator" subtype=zerowidth negate=
- rx176_cur."!cursor_pos"(rx176_pos)
- $P10 = rx176_cur."terminator"()
- unless $P10, rx176_fail
- goto alt180_end
- alt180_3:
-.annotate "line", 105
+ rx179_cur."!cursor_pos"(rx179_pos)
+ $P10 = rx179_cur."terminator"()
+ unless $P10, rx179_fail
+ goto alt183_end
+ alt183_3:
+.annotate "line", 109
# rxanchor eos
- ne rx176_pos, rx176_eos, rx176_fail
- alt180_end:
-.annotate "line", 101
+ ne rx179_pos, rx179_eos, rx179_fail
+ alt183_end:
+.annotate "line", 105
# rx pass
- rx176_cur."!cursor_pass"(rx176_pos, "eat_terminator")
- rx176_cur."!cursor_debug"("PASS ", "eat_terminator", " at pos=", rx176_pos)
- .return (rx176_cur)
- rx176_fail:
+ rx179_cur."!cursor_pass"(rx179_pos, "eat_terminator")
+ rx179_cur."!cursor_debug"("PASS ", "eat_terminator", " at pos=", rx179_pos)
+ .return (rx179_cur)
+ rx179_fail:
.annotate "line", 4
- (rx176_rep, rx176_pos, $I10, $P10) = rx176_cur."!mark_fail"(0)
- lt rx176_pos, -1, rx176_done
- eq rx176_pos, -1, rx176_fail
+ (rx179_rep, rx179_pos, $I10, $P10) = rx179_cur."!mark_fail"(0)
+ lt rx179_pos, -1, rx179_done
+ eq rx179_pos, -1, rx179_fail
jump $I10
- rx176_done:
- rx176_cur."!cursor_fail"()
- rx176_cur."!cursor_debug"("FAIL ", "eat_terminator")
- .return (rx176_cur)
+ rx179_done:
+ rx179_cur."!cursor_fail"()
+ rx179_cur."!cursor_debug"("FAIL ", "eat_terminator")
+ .return (rx179_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__eat_terminator" :subid("37_1267204702.05125") :method
+.sub "!PREFIX__eat_terminator" :subid("37_1271336396.90314") :method
.annotate "line", 4
- new $P178, "ResizablePMCArray"
- push $P178, ""
- push $P178, ""
- push $P178, ""
- push $P178, ";"
- .return ($P178)
+ new $P181, "ResizablePMCArray"
+ push $P181, ""
+ push $P181, ""
+ push $P181, ""
+ push $P181, ";"
+ .return ($P181)
.end
.namespace ["NQP";"Grammar"]
-.sub "xblock" :subid("38_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "xblock" :subid("38_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx182_tgt
- .local int rx182_pos
- .local int rx182_off
- .local int rx182_eos
- .local int rx182_rep
- .local pmc rx182_cur
- (rx182_cur, rx182_pos, rx182_tgt) = self."!cursor_start"()
- rx182_cur."!cursor_debug"("START ", "xblock")
- .lex unicode:"$\x{a2}", rx182_cur
+ .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) = self."!cursor_start"()
+ rx185_cur."!cursor_debug"("START ", "xblock")
+ .lex unicode:"$\x{a2}", rx185_cur
.local pmc match
.lex "$/", match
- length rx182_eos, rx182_tgt
- set rx182_off, 0
- lt rx182_pos, 2, rx182_start
- sub rx182_off, rx182_pos, 1
- substr rx182_tgt, rx182_tgt, rx182_off
- rx182_start:
+ length rx185_eos, rx185_tgt
+ 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:
$I10 = self.'from'()
- ne $I10, -1, rxscan186_done
- goto rxscan186_scan
- rxscan186_loop:
- ($P10) = rx182_cur."from"()
+ ne $I10, -1, rxscan189_done
+ goto rxscan189_scan
+ rxscan189_loop:
+ ($P10) = rx185_cur."from"()
inc $P10
- set rx182_pos, $P10
- ge rx182_pos, rx182_eos, rxscan186_done
- rxscan186_scan:
- set_addr $I10, rxscan186_loop
- rx182_cur."!mark_push"(0, rx182_pos, $I10)
- rxscan186_done:
-.annotate "line", 109
+ 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", 113
# rx subrule "EXPR" subtype=capture negate=
- rx182_cur."!cursor_pos"(rx182_pos)
- $P10 = rx182_cur."EXPR"()
- unless $P10, rx182_fail
- rx182_cur."!mark_push"(0, -1, 0, $P10)
+ rx185_cur."!cursor_pos"(rx185_pos)
+ $P10 = rx185_cur."EXPR"()
+ unless $P10, rx185_fail
+ rx185_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx182_pos = $P10."pos"()
+ rx185_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx182_cur."!cursor_pos"(rx182_pos)
- $P10 = rx182_cur."ws"()
- unless $P10, rx182_fail
- rx182_pos = $P10."pos"()
+ rx185_cur."!cursor_pos"(rx185_pos)
+ $P10 = rx185_cur."ws"()
+ unless $P10, rx185_fail
+ rx185_pos = $P10."pos"()
# rx subrule "pblock" subtype=capture negate=
- rx182_cur."!cursor_pos"(rx182_pos)
- $P10 = rx182_cur."pblock"()
- unless $P10, rx182_fail
- rx182_cur."!mark_push"(0, -1, 0, $P10)
+ rx185_cur."!cursor_pos"(rx185_pos)
+ $P10 = rx185_cur."pblock"()
+ unless $P10, rx185_fail
+ rx185_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("pblock")
- rx182_pos = $P10."pos"()
-.annotate "line", 108
+ rx185_pos = $P10."pos"()
+.annotate "line", 112
# rx pass
- rx182_cur."!cursor_pass"(rx182_pos, "xblock")
- rx182_cur."!cursor_debug"("PASS ", "xblock", " at pos=", rx182_pos)
- .return (rx182_cur)
- rx182_fail:
+ rx185_cur."!cursor_pass"(rx185_pos, "xblock")
+ rx185_cur."!cursor_debug"("PASS ", "xblock", " at pos=", rx185_pos)
+ .return (rx185_cur)
+ rx185_fail:
.annotate "line", 4
- (rx182_rep, rx182_pos, $I10, $P10) = rx182_cur."!mark_fail"(0)
- lt rx182_pos, -1, rx182_done
- eq rx182_pos, -1, rx182_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
- rx182_done:
- rx182_cur."!cursor_fail"()
- rx182_cur."!cursor_debug"("FAIL ", "xblock")
- .return (rx182_cur)
+ rx185_done:
+ rx185_cur."!cursor_fail"()
+ rx185_cur."!cursor_debug"("FAIL ", "xblock")
+ .return (rx185_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__xblock" :subid("39_1267204702.05125") :method
+.sub "!PREFIX__xblock" :subid("39_1271336396.90314") :method
.annotate "line", 4
- $P184 = self."!PREFIX__!subrule"("EXPR", "")
- new $P185, "ResizablePMCArray"
- push $P185, $P184
- .return ($P185)
+ $P187 = self."!PREFIX__!subrule"("EXPR", "")
+ new $P188, "ResizablePMCArray"
+ push $P188, $P187
+ .return ($P188)
.end
.namespace ["NQP";"Grammar"]
-.sub "pblock" :subid("40_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "pblock" :subid("40_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .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 ", "pblock")
- .lex unicode:"$\x{a2}", rx188_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) = self."!cursor_start"()
+ rx191_cur."!cursor_debug"("START ", "pblock")
+ .lex unicode:"$\x{a2}", rx191_cur
.local pmc match
.lex "$/", match
- length rx188_eos, rx188_tgt
- 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:
+ length rx191_eos, rx191_tgt
+ 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, rxscan193_done
- goto rxscan193_scan
- rxscan193_loop:
- ($P10) = rx188_cur."from"()
+ ne $I10, -1, rxscan196_done
+ goto rxscan196_scan
+ rxscan196_loop:
+ ($P10) = rx191_cur."from"()
inc $P10
- set rx188_pos, $P10
- ge rx188_pos, rx188_eos, rxscan193_done
- rxscan193_scan:
- set_addr $I10, rxscan193_loop
- rx188_cur."!mark_push"(0, rx188_pos, $I10)
- rxscan193_done:
- alt194_0:
-.annotate "line", 112
- set_addr $I10, alt194_1
- rx188_cur."!mark_push"(0, rx188_pos, $I10)
-.annotate "line", 113
+ set rx191_pos, $P10
+ ge rx191_pos, rx191_eos, rxscan196_done
+ rxscan196_scan:
+ set_addr $I10, rxscan196_loop
+ rx191_cur."!mark_push"(0, rx191_pos, $I10)
+ rxscan196_done:
+ alt197_0:
+.annotate "line", 116
+ set_addr $I10, alt197_1
+ rx191_cur."!mark_push"(0, rx191_pos, $I10)
+.annotate "line", 117
# rx subrule "lambda" subtype=method negate=
- rx188_cur."!cursor_pos"(rx188_pos)
- $P10 = rx188_cur."lambda"()
- unless $P10, rx188_fail
- rx188_pos = $P10."pos"()
-.annotate "line", 114
+ rx191_cur."!cursor_pos"(rx191_pos)
+ $P10 = rx191_cur."lambda"()
+ unless $P10, rx191_fail
+ rx191_pos = $P10."pos"()
+.annotate "line", 118
# rx subrule "newpad" subtype=method negate=
- rx188_cur."!cursor_pos"(rx188_pos)
- $P10 = rx188_cur."newpad"()
- unless $P10, rx188_fail
- rx188_pos = $P10."pos"()
-.annotate "line", 115
+ rx191_cur."!cursor_pos"(rx191_pos)
+ $P10 = rx191_cur."newpad"()
+ unless $P10, rx191_fail
+ rx191_pos = $P10."pos"()
+.annotate "line", 119
# rx subrule "signature" subtype=capture negate=
- rx188_cur."!cursor_pos"(rx188_pos)
- $P10 = rx188_cur."signature"()
- unless $P10, rx188_fail
- rx188_cur."!mark_push"(0, -1, 0, $P10)
+ rx191_cur."!cursor_pos"(rx191_pos)
+ $P10 = rx191_cur."signature"()
+ unless $P10, rx191_fail
+ rx191_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("signature")
- rx188_pos = $P10."pos"()
-.annotate "line", 116
+ rx191_pos = $P10."pos"()
+.annotate "line", 120
# rx subrule "blockoid" subtype=capture negate=
- rx188_cur."!cursor_pos"(rx188_pos)
- $P10 = rx188_cur."blockoid"()
- unless $P10, rx188_fail
- rx188_cur."!mark_push"(0, -1, 0, $P10)
+ rx191_cur."!cursor_pos"(rx191_pos)
+ $P10 = rx191_cur."blockoid"()
+ unless $P10, rx191_fail
+ rx191_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blockoid")
- rx188_pos = $P10."pos"()
-.annotate "line", 113
- goto alt194_end
- alt194_1:
- set_addr $I10, alt194_2
- rx188_cur."!mark_push"(0, rx188_pos, $I10)
+ rx191_pos = $P10."pos"()
.annotate "line", 117
+ goto alt197_end
+ alt197_1:
+ set_addr $I10, alt197_2
+ rx191_cur."!mark_push"(0, rx191_pos, $I10)
+.annotate "line", 121
# rx enumcharlist negate=0 zerowidth
- ge rx188_pos, rx188_eos, rx188_fail
- sub $I10, rx188_pos, rx188_off
- substr $S10, rx188_tgt, $I10, 1
+ ge rx191_pos, rx191_eos, rx191_fail
+ sub $I10, rx191_pos, rx191_off
+ substr $S10, rx191_tgt, $I10, 1
index $I11, "{", $S10
- lt $I11, 0, rx188_fail
-.annotate "line", 118
+ lt $I11, 0, rx191_fail
+.annotate "line", 122
# rx subrule "newpad" subtype=method negate=
- rx188_cur."!cursor_pos"(rx188_pos)
- $P10 = rx188_cur."newpad"()
- unless $P10, rx188_fail
- rx188_pos = $P10."pos"()
-.annotate "line", 119
+ rx191_cur."!cursor_pos"(rx191_pos)
+ $P10 = rx191_cur."newpad"()
+ unless $P10, rx191_fail
+ rx191_pos = $P10."pos"()
+.annotate "line", 123
# rx subrule "blockoid" subtype=capture negate=
- rx188_cur."!cursor_pos"(rx188_pos)
- $P10 = rx188_cur."blockoid"()
- unless $P10, rx188_fail
- rx188_cur."!mark_push"(0, -1, 0, $P10)
+ rx191_cur."!cursor_pos"(rx191_pos)
+ $P10 = rx191_cur."blockoid"()
+ unless $P10, rx191_fail
+ rx191_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blockoid")
- rx188_pos = $P10."pos"()
-.annotate "line", 117
- goto alt194_end
- alt194_2:
-.annotate "line", 120
+ rx191_pos = $P10."pos"()
+.annotate "line", 121
+ goto alt197_end
+ alt197_2:
+.annotate "line", 124
# rx subrule "panic" subtype=method negate=
- rx188_cur."!cursor_pos"(rx188_pos)
- $P10 = rx188_cur."panic"("Missing block")
- unless $P10, rx188_fail
- rx188_pos = $P10."pos"()
- alt194_end:
-.annotate "line", 112
+ rx191_cur."!cursor_pos"(rx191_pos)
+ $P10 = rx191_cur."panic"("Missing block")
+ unless $P10, rx191_fail
+ rx191_pos = $P10."pos"()
+ alt197_end:
+.annotate "line", 116
# rx pass
- rx188_cur."!cursor_pass"(rx188_pos, "pblock")
- rx188_cur."!cursor_debug"("PASS ", "pblock", " at pos=", rx188_pos)
- .return (rx188_cur)
- rx188_fail:
+ rx191_cur."!cursor_pass"(rx191_pos, "pblock")
+ rx191_cur."!cursor_debug"("PASS ", "pblock", " at pos=", rx191_pos)
+ .return (rx191_cur)
+ rx191_fail:
.annotate "line", 4
- (rx188_rep, rx188_pos, $I10, $P10) = rx188_cur."!mark_fail"(0)
- lt rx188_pos, -1, rx188_done
- eq rx188_pos, -1, rx188_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
- rx188_done:
- rx188_cur."!cursor_fail"()
- rx188_cur."!cursor_debug"("FAIL ", "pblock")
- .return (rx188_cur)
+ rx191_done:
+ rx191_cur."!cursor_fail"()
+ rx191_cur."!cursor_debug"("FAIL ", "pblock")
+ .return (rx191_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pblock" :subid("41_1267204702.05125") :method
+.sub "!PREFIX__pblock" :subid("41_1271336396.90314") :method
.annotate "line", 4
- $P190 = self."!PREFIX__!subrule"("", "")
- $P191 = self."!PREFIX__!subrule"("", "")
- new $P192, "ResizablePMCArray"
- push $P192, $P190
- push $P192, "{"
- push $P192, $P191
- .return ($P192)
+ $P193 = self."!PREFIX__!subrule"("", "")
+ $P194 = self."!PREFIX__!subrule"("", "")
+ new $P195, "ResizablePMCArray"
+ push $P195, $P193
+ push $P195, "{"
+ push $P195, $P194
+ .return ($P195)
.end
.namespace ["NQP";"Grammar"]
-.sub "lambda" :subid("42_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "lambda" :subid("42_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .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 ", "lambda")
- .lex unicode:"$\x{a2}", rx196_cur
+ .local string rx199_tgt
+ .local int rx199_pos
+ .local int rx199_off
+ .local int rx199_eos
+ .local int rx199_rep
+ .local pmc rx199_cur
+ (rx199_cur, rx199_pos, rx199_tgt) = self."!cursor_start"()
+ rx199_cur."!cursor_debug"("START ", "lambda")
+ .lex unicode:"$\x{a2}", rx199_cur
.local pmc match
.lex "$/", match
- length rx196_eos, rx196_tgt
- 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 rx199_eos, rx199_tgt
+ set rx199_off, 0
+ lt rx199_pos, 2, rx199_start
+ sub rx199_off, rx199_pos, 1
+ substr rx199_tgt, rx199_tgt, rx199_off
+ rx199_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan199_done
- goto rxscan199_scan
- rxscan199_loop:
- ($P10) = rx196_cur."from"()
+ ne $I10, -1, rxscan202_done
+ goto rxscan202_scan
+ rxscan202_loop:
+ ($P10) = rx199_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:
-.annotate "line", 123
- set_addr $I10, alt200_1
- rx196_cur."!mark_push"(0, rx196_pos, $I10)
+ set rx199_pos, $P10
+ ge rx199_pos, rx199_eos, rxscan202_done
+ rxscan202_scan:
+ set_addr $I10, rxscan202_loop
+ rx199_cur."!mark_push"(0, rx199_pos, $I10)
+ rxscan202_done:
+ alt203_0:
+.annotate "line", 127
+ set_addr $I10, alt203_1
+ rx199_cur."!mark_push"(0, rx199_pos, $I10)
# rx literal "->"
- add $I11, rx196_pos, 2
- gt $I11, rx196_eos, rx196_fail
- sub $I11, rx196_pos, rx196_off
- substr $S10, rx196_tgt, $I11, 2
- ne $S10, "->", rx196_fail
- add rx196_pos, 2
- goto alt200_end
- alt200_1:
+ add $I11, rx199_pos, 2
+ gt $I11, rx199_eos, rx199_fail
+ sub $I11, rx199_pos, rx199_off
+ substr $S10, rx199_tgt, $I11, 2
+ ne $S10, "->", rx199_fail
+ add rx199_pos, 2
+ goto alt203_end
+ alt203_1:
# rx literal "<->"
- add $I11, rx196_pos, 3
- gt $I11, rx196_eos, rx196_fail
- sub $I11, rx196_pos, rx196_off
- substr $S10, rx196_tgt, $I11, 3
- ne $S10, "<->", rx196_fail
- add rx196_pos, 3
- alt200_end:
+ add $I11, rx199_pos, 3
+ gt $I11, rx199_eos, rx199_fail
+ sub $I11, rx199_pos, rx199_off
+ substr $S10, rx199_tgt, $I11, 3
+ ne $S10, "<->", rx199_fail
+ add rx199_pos, 3
+ alt203_end:
# rx pass
- rx196_cur."!cursor_pass"(rx196_pos, "lambda")
- rx196_cur."!cursor_debug"("PASS ", "lambda", " at pos=", rx196_pos)
- .return (rx196_cur)
- rx196_fail:
+ rx199_cur."!cursor_pass"(rx199_pos, "lambda")
+ rx199_cur."!cursor_debug"("PASS ", "lambda", " at pos=", rx199_pos)
+ .return (rx199_cur)
+ rx199_fail:
.annotate "line", 4
- (rx196_rep, rx196_pos, $I10, $P10) = rx196_cur."!mark_fail"(0)
- lt rx196_pos, -1, rx196_done
- eq rx196_pos, -1, rx196_fail
+ (rx199_rep, rx199_pos, $I10, $P10) = rx199_cur."!mark_fail"(0)
+ lt rx199_pos, -1, rx199_done
+ eq rx199_pos, -1, rx199_fail
jump $I10
- rx196_done:
- rx196_cur."!cursor_fail"()
- rx196_cur."!cursor_debug"("FAIL ", "lambda")
- .return (rx196_cur)
+ rx199_done:
+ rx199_cur."!cursor_fail"()
+ rx199_cur."!cursor_debug"("FAIL ", "lambda")
+ .return (rx199_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__lambda" :subid("43_1267204702.05125") :method
+.sub "!PREFIX__lambda" :subid("43_1271336396.90314") :method
.annotate "line", 4
- new $P198, "ResizablePMCArray"
- push $P198, "<->"
- push $P198, "->"
- .return ($P198)
+ new $P201, "ResizablePMCArray"
+ push $P201, "<->"
+ push $P201, "->"
+ .return ($P201)
.end
.namespace ["NQP";"Grammar"]
-.sub "block" :subid("44_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "block" :subid("44_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx202_tgt
- .local int rx202_pos
- .local int rx202_off
- .local int rx202_eos
- .local int rx202_rep
- .local pmc rx202_cur
- (rx202_cur, rx202_pos, rx202_tgt) = self."!cursor_start"()
- rx202_cur."!cursor_debug"("START ", "block")
- .lex unicode:"$\x{a2}", rx202_cur
+ .local string rx205_tgt
+ .local int rx205_pos
+ .local int rx205_off
+ .local int rx205_eos
+ .local int rx205_rep
+ .local pmc rx205_cur
+ (rx205_cur, rx205_pos, rx205_tgt) = self."!cursor_start"()
+ rx205_cur."!cursor_debug"("START ", "block")
+ .lex unicode:"$\x{a2}", rx205_cur
.local pmc match
.lex "$/", match
- length rx202_eos, rx202_tgt
- set rx202_off, 0
- lt rx202_pos, 2, rx202_start
- sub rx202_off, rx202_pos, 1
- substr rx202_tgt, rx202_tgt, rx202_off
- rx202_start:
+ length rx205_eos, rx205_tgt
+ set rx205_off, 0
+ lt rx205_pos, 2, rx205_start
+ sub rx205_off, rx205_pos, 1
+ substr rx205_tgt, rx205_tgt, rx205_off
+ rx205_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan206_done
- goto rxscan206_scan
- rxscan206_loop:
- ($P10) = rx202_cur."from"()
+ ne $I10, -1, rxscan209_done
+ goto rxscan209_scan
+ rxscan209_loop:
+ ($P10) = rx205_cur."from"()
inc $P10
- set rx202_pos, $P10
- ge rx202_pos, rx202_eos, rxscan206_done
- rxscan206_scan:
- set_addr $I10, rxscan206_loop
- rx202_cur."!mark_push"(0, rx202_pos, $I10)
- rxscan206_done:
- alt207_0:
-.annotate "line", 126
- set_addr $I10, alt207_1
- rx202_cur."!mark_push"(0, rx202_pos, $I10)
+ set rx205_pos, $P10
+ ge rx205_pos, rx205_eos, rxscan209_done
+ rxscan209_scan:
+ set_addr $I10, rxscan209_loop
+ rx205_cur."!mark_push"(0, rx205_pos, $I10)
+ rxscan209_done:
+ alt210_0:
+.annotate "line", 130
+ set_addr $I10, alt210_1
+ rx205_cur."!mark_push"(0, rx205_pos, $I10)
# rx enumcharlist negate=0 zerowidth
- ge rx202_pos, rx202_eos, rx202_fail
- sub $I10, rx202_pos, rx202_off
- substr $S10, rx202_tgt, $I10, 1
+ ge rx205_pos, rx205_eos, rx205_fail
+ sub $I10, rx205_pos, rx205_off
+ substr $S10, rx205_tgt, $I10, 1
index $I11, "{", $S10
- lt $I11, 0, rx202_fail
- goto alt207_end
- alt207_1:
+ lt $I11, 0, rx205_fail
+ goto alt210_end
+ alt210_1:
# rx subrule "panic" subtype=method negate=
- rx202_cur."!cursor_pos"(rx202_pos)
- $P10 = rx202_cur."panic"("Missing block")
- unless $P10, rx202_fail
- rx202_pos = $P10."pos"()
- alt207_end:
-.annotate "line", 127
+ rx205_cur."!cursor_pos"(rx205_pos)
+ $P10 = rx205_cur."panic"("Missing block")
+ unless $P10, rx205_fail
+ rx205_pos = $P10."pos"()
+ alt210_end:
+.annotate "line", 131
# rx subrule "newpad" subtype=method negate=
- rx202_cur."!cursor_pos"(rx202_pos)
- $P10 = rx202_cur."newpad"()
- unless $P10, rx202_fail
- rx202_pos = $P10."pos"()
-.annotate "line", 128
+ rx205_cur."!cursor_pos"(rx205_pos)
+ $P10 = rx205_cur."newpad"()
+ unless $P10, rx205_fail
+ rx205_pos = $P10."pos"()
+.annotate "line", 132
# rx subrule "blockoid" subtype=capture negate=
- rx202_cur."!cursor_pos"(rx202_pos)
- $P10 = rx202_cur."blockoid"()
- unless $P10, rx202_fail
- rx202_cur."!mark_push"(0, -1, 0, $P10)
+ rx205_cur."!cursor_pos"(rx205_pos)
+ $P10 = rx205_cur."blockoid"()
+ unless $P10, rx205_fail
+ rx205_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blockoid")
- rx202_pos = $P10."pos"()
-.annotate "line", 125
+ rx205_pos = $P10."pos"()
+.annotate "line", 129
# rx pass
- rx202_cur."!cursor_pass"(rx202_pos, "block")
- rx202_cur."!cursor_debug"("PASS ", "block", " at pos=", rx202_pos)
- .return (rx202_cur)
- rx202_fail:
+ rx205_cur."!cursor_pass"(rx205_pos, "block")
+ rx205_cur."!cursor_debug"("PASS ", "block", " at pos=", rx205_pos)
+ .return (rx205_cur)
+ rx205_fail:
.annotate "line", 4
- (rx202_rep, rx202_pos, $I10, $P10) = rx202_cur."!mark_fail"(0)
- lt rx202_pos, -1, rx202_done
- eq rx202_pos, -1, rx202_fail
+ (rx205_rep, rx205_pos, $I10, $P10) = rx205_cur."!mark_fail"(0)
+ lt rx205_pos, -1, rx205_done
+ eq rx205_pos, -1, rx205_fail
jump $I10
- rx202_done:
- rx202_cur."!cursor_fail"()
- rx202_cur."!cursor_debug"("FAIL ", "block")
- .return (rx202_cur)
+ rx205_done:
+ rx205_cur."!cursor_fail"()
+ rx205_cur."!cursor_debug"("FAIL ", "block")
+ .return (rx205_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__block" :subid("45_1267204702.05125") :method
+.sub "!PREFIX__block" :subid("45_1271336396.90314") :method
.annotate "line", 4
- $P204 = self."!PREFIX__!subrule"("", "")
- new $P205, "ResizablePMCArray"
- push $P205, $P204
- push $P205, "{"
- .return ($P205)
+ $P207 = self."!PREFIX__!subrule"("", "")
+ new $P208, "ResizablePMCArray"
+ push $P208, $P207
+ push $P208, "{"
+ .return ($P208)
.end
.namespace ["NQP";"Grammar"]
-.sub "blockoid" :subid("46_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "blockoid" :subid("46_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .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 ", "blockoid")
- .lex unicode:"$\x{a2}", rx209_cur
+ .local string rx212_tgt
+ .local int rx212_pos
+ .local int rx212_off
+ .local int rx212_eos
+ .local int rx212_rep
+ .local pmc rx212_cur
+ (rx212_cur, rx212_pos, rx212_tgt) = self."!cursor_start"()
+ rx212_cur."!cursor_debug"("START ", "blockoid")
+ .lex unicode:"$\x{a2}", rx212_cur
.local pmc match
.lex "$/", match
- length rx209_eos, rx209_tgt
- 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 rx212_eos, rx212_tgt
+ set rx212_off, 0
+ lt rx212_pos, 2, rx212_start
+ sub rx212_off, rx212_pos, 1
+ substr rx212_tgt, rx212_tgt, rx212_off
+ rx212_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan213_done
- goto rxscan213_scan
- rxscan213_loop:
- ($P10) = rx209_cur."from"()
+ ne $I10, -1, rxscan216_done
+ goto rxscan216_scan
+ rxscan216_loop:
+ ($P10) = rx212_cur."from"()
inc $P10
- set rx209_pos, $P10
- ge rx209_pos, rx209_eos, rxscan213_done
- rxscan213_scan:
- set_addr $I10, rxscan213_loop
- rx209_cur."!mark_push"(0, rx209_pos, $I10)
- rxscan213_done:
-.annotate "line", 132
+ set rx212_pos, $P10
+ ge rx212_pos, rx212_eos, rxscan216_done
+ rxscan216_scan:
+ set_addr $I10, rxscan216_loop
+ rx212_cur."!mark_push"(0, rx212_pos, $I10)
+ rxscan216_done:
+.annotate "line", 136
# rx subrule "finishpad" subtype=method negate=
- rx209_cur."!cursor_pos"(rx209_pos)
- $P10 = rx209_cur."finishpad"()
- unless $P10, rx209_fail
- rx209_pos = $P10."pos"()
-.annotate "line", 133
+ rx212_cur."!cursor_pos"(rx212_pos)
+ $P10 = rx212_cur."finishpad"()
+ unless $P10, rx212_fail
+ rx212_pos = $P10."pos"()
+.annotate "line", 137
# rx literal "{"
- add $I11, rx209_pos, 1
- gt $I11, rx209_eos, rx209_fail
- sub $I11, rx209_pos, rx209_off
- substr $S10, rx209_tgt, $I11, 1
- ne $S10, "{", rx209_fail
- add rx209_pos, 1
+ add $I11, rx212_pos, 1
+ gt $I11, rx212_eos, rx212_fail
+ sub $I11, rx212_pos, rx212_off
+ substr $S10, rx212_tgt, $I11, 1
+ ne $S10, "{", rx212_fail
+ add rx212_pos, 1
# rx subrule "statementlist" subtype=capture negate=
- rx209_cur."!cursor_pos"(rx209_pos)
- $P10 = rx209_cur."statementlist"()
- unless $P10, rx209_fail
- rx209_cur."!mark_push"(0, -1, 0, $P10)
+ rx212_cur."!cursor_pos"(rx212_pos)
+ $P10 = rx212_cur."statementlist"()
+ unless $P10, rx212_fail
+ rx212_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statementlist")
- rx209_pos = $P10."pos"()
- alt214_0:
- set_addr $I10, alt214_1
- rx209_cur."!mark_push"(0, rx209_pos, $I10)
+ rx212_pos = $P10."pos"()
+ alt217_0:
+ set_addr $I10, alt217_1
+ rx212_cur."!mark_push"(0, rx212_pos, $I10)
# rx literal "}"
- add $I11, rx209_pos, 1
- gt $I11, rx209_eos, rx209_fail
- sub $I11, rx209_pos, rx209_off
- substr $S10, rx209_tgt, $I11, 1
- ne $S10, "}", rx209_fail
- add rx209_pos, 1
- goto alt214_end
- alt214_1:
+ add $I11, rx212_pos, 1
+ gt $I11, rx212_eos, rx212_fail
+ sub $I11, rx212_pos, rx212_off
+ substr $S10, rx212_tgt, $I11, 1
+ ne $S10, "}", rx212_fail
+ add rx212_pos, 1
+ goto alt217_end
+ alt217_1:
# rx subrule "FAILGOAL" subtype=method negate=
- rx209_cur."!cursor_pos"(rx209_pos)
- $P10 = rx209_cur."FAILGOAL"("'}'")
- unless $P10, rx209_fail
- rx209_pos = $P10."pos"()
- alt214_end:
-.annotate "line", 134
+ rx212_cur."!cursor_pos"(rx212_pos)
+ $P10 = rx212_cur."FAILGOAL"("'}'")
+ unless $P10, rx212_fail
+ rx212_pos = $P10."pos"()
+ alt217_end:
+.annotate "line", 138
# rx subrule "ENDSTMT" subtype=zerowidth negate=
- rx209_cur."!cursor_pos"(rx209_pos)
- $P10 = rx209_cur."ENDSTMT"()
- unless $P10, rx209_fail
-.annotate "line", 131
+ rx212_cur."!cursor_pos"(rx212_pos)
+ $P10 = rx212_cur."ENDSTMT"()
+ unless $P10, rx212_fail
+.annotate "line", 135
# rx pass
- rx209_cur."!cursor_pass"(rx209_pos, "blockoid")
- rx209_cur."!cursor_debug"("PASS ", "blockoid", " at pos=", rx209_pos)
- .return (rx209_cur)
- rx209_fail:
+ rx212_cur."!cursor_pass"(rx212_pos, "blockoid")
+ rx212_cur."!cursor_debug"("PASS ", "blockoid", " at pos=", rx212_pos)
+ .return (rx212_cur)
+ rx212_fail:
.annotate "line", 4
- (rx209_rep, rx209_pos, $I10, $P10) = rx209_cur."!mark_fail"(0)
- lt rx209_pos, -1, rx209_done
- eq rx209_pos, -1, rx209_fail
+ (rx212_rep, rx212_pos, $I10, $P10) = rx212_cur."!mark_fail"(0)
+ lt rx212_pos, -1, rx212_done
+ eq rx212_pos, -1, rx212_fail
jump $I10
- rx209_done:
- rx209_cur."!cursor_fail"()
- rx209_cur."!cursor_debug"("FAIL ", "blockoid")
- .return (rx209_cur)
+ rx212_done:
+ rx212_cur."!cursor_fail"()
+ rx212_cur."!cursor_debug"("FAIL ", "blockoid")
+ .return (rx212_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blockoid" :subid("47_1267204702.05125") :method
+.sub "!PREFIX__blockoid" :subid("47_1271336396.90314") :method
.annotate "line", 4
- $P211 = self."!PREFIX__!subrule"("", "")
- new $P212, "ResizablePMCArray"
- push $P212, $P211
- .return ($P212)
+ $P214 = self."!PREFIX__!subrule"("", "")
+ new $P215, "ResizablePMCArray"
+ push $P215, $P214
+ .return ($P215)
.end
.namespace ["NQP";"Grammar"]
-.sub "newpad" :subid("48_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "newpad" :subid("48_1271336396.90314") :method :outer("11_1271336396.90314")
.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 ", "newpad")
- .lex unicode:"$\x{a2}", rx217_cur
+ .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 ", "newpad")
+ .lex unicode:"$\x{a2}", rx220_cur
.local pmc match
.lex "$/", match
- length rx217_eos, rx217_tgt
- set rx217_off, 0
- lt rx217_pos, 2, rx217_start
- sub rx217_off, rx217_pos, 1
- substr rx217_tgt, rx217_tgt, rx217_off
- rx217_start:
+ length rx220_eos, rx220_tgt
+ set rx220_off, 0
+ lt rx220_pos, 2, rx220_start
+ sub rx220_off, rx220_pos, 1
+ substr rx220_tgt, rx220_tgt, rx220_off
+ rx220_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan220_done
- goto rxscan220_scan
- rxscan220_loop:
- ($P10) = rx217_cur."from"()
+ ne $I10, -1, rxscan223_done
+ goto rxscan223_scan
+ rxscan223_loop:
+ ($P10) = rx220_cur."from"()
inc $P10
- set rx217_pos, $P10
- ge rx217_pos, rx217_eos, rxscan220_done
- rxscan220_scan:
- set_addr $I10, rxscan220_loop
- rx217_cur."!mark_push"(0, rx217_pos, $I10)
- rxscan220_done:
-.annotate "line", 137
+ 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:
+.annotate "line", 141
# rx pass
- rx217_cur."!cursor_pass"(rx217_pos, "newpad")
- rx217_cur."!cursor_debug"("PASS ", "newpad", " at pos=", rx217_pos)
- .return (rx217_cur)
- rx217_fail:
+ rx220_cur."!cursor_pass"(rx220_pos, "newpad")
+ rx220_cur."!cursor_debug"("PASS ", "newpad", " at pos=", rx220_pos)
+ .return (rx220_cur)
+ rx220_fail:
.annotate "line", 4
- (rx217_rep, rx217_pos, $I10, $P10) = rx217_cur."!mark_fail"(0)
- lt rx217_pos, -1, rx217_done
- eq rx217_pos, -1, rx217_fail
+ (rx220_rep, rx220_pos, $I10, $P10) = rx220_cur."!mark_fail"(0)
+ lt rx220_pos, -1, rx220_done
+ eq rx220_pos, -1, rx220_fail
jump $I10
- rx217_done:
- rx217_cur."!cursor_fail"()
- rx217_cur."!cursor_debug"("FAIL ", "newpad")
- .return (rx217_cur)
+ rx220_done:
+ rx220_cur."!cursor_fail"()
+ rx220_cur."!cursor_debug"("FAIL ", "newpad")
+ .return (rx220_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__newpad" :subid("49_1267204702.05125") :method
+.sub "!PREFIX__newpad" :subid("49_1271336396.90314") :method
.annotate "line", 4
- new $P219, "ResizablePMCArray"
- push $P219, ""
- .return ($P219)
+ new $P222, "ResizablePMCArray"
+ push $P222, ""
+ .return ($P222)
.end
.namespace ["NQP";"Grammar"]
-.sub "finishpad" :subid("50_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "finishpad" :subid("50_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .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 ", "finishpad")
- .lex unicode:"$\x{a2}", rx222_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) = self."!cursor_start"()
+ rx225_cur."!cursor_debug"("START ", "finishpad")
+ .lex unicode:"$\x{a2}", rx225_cur
.local pmc match
.lex "$/", match
- length rx222_eos, rx222_tgt
- 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 rx225_eos, rx225_tgt
+ 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:
$I10 = self.'from'()
- ne $I10, -1, rxscan225_done
- goto rxscan225_scan
- rxscan225_loop:
- ($P10) = rx222_cur."from"()
+ ne $I10, -1, rxscan228_done
+ goto rxscan228_scan
+ rxscan228_loop:
+ ($P10) = rx225_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", 138
+ 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", 142
# rx pass
- rx222_cur."!cursor_pass"(rx222_pos, "finishpad")
- rx222_cur."!cursor_debug"("PASS ", "finishpad", " at pos=", rx222_pos)
- .return (rx222_cur)
- rx222_fail:
+ rx225_cur."!cursor_pass"(rx225_pos, "finishpad")
+ rx225_cur."!cursor_debug"("PASS ", "finishpad", " at pos=", rx225_pos)
+ .return (rx225_cur)
+ rx225_fail:
.annotate "line", 4
- (rx222_rep, rx222_pos, $I10, $P10) = rx222_cur."!mark_fail"(0)
- lt rx222_pos, -1, rx222_done
- eq rx222_pos, -1, rx222_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
- rx222_done:
- rx222_cur."!cursor_fail"()
- rx222_cur."!cursor_debug"("FAIL ", "finishpad")
- .return (rx222_cur)
+ rx225_done:
+ rx225_cur."!cursor_fail"()
+ rx225_cur."!cursor_debug"("FAIL ", "finishpad")
+ .return (rx225_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__finishpad" :subid("51_1267204702.05125") :method
+.sub "!PREFIX__finishpad" :subid("51_1271336396.90314") :method
.annotate "line", 4
- new $P224, "ResizablePMCArray"
- push $P224, ""
- .return ($P224)
+ new $P227, "ResizablePMCArray"
+ push $P227, ""
+ .return ($P227)
.end
.namespace ["NQP";"Grammar"]
-.sub "terminator" :subid("52_1267204702.05125") :method
-.annotate "line", 140
- $P227 = self."!protoregex"("terminator")
- .return ($P227)
+.sub "terminator" :subid("52_1271336396.90314") :method
+.annotate "line", 144
+ $P230 = self."!protoregex"("terminator")
+ .return ($P230)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator" :subid("53_1267204702.05125") :method
-.annotate "line", 140
- $P229 = self."!PREFIX__!protoregex"("terminator")
- .return ($P229)
+.sub "!PREFIX__terminator" :subid("53_1271336396.90314") :method
+.annotate "line", 144
+ $P232 = self."!PREFIX__!protoregex"("terminator")
+ .return ($P232)
.end
.namespace ["NQP";"Grammar"]
-.sub "terminator:sym<;>" :subid("54_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "terminator:sym<;>" :subid("54_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .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) = self."!cursor_start"()
- rx231_cur."!cursor_debug"("START ", "terminator:sym<;>")
- .lex unicode:"$\x{a2}", rx231_cur
- .local pmc match
- .lex "$/", match
- length rx231_eos, rx231_tgt
- 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:
- $I10 = self.'from'()
- ne $I10, -1, rxscan234_done
- goto rxscan234_scan
- rxscan234_loop:
- ($P10) = rx231_cur."from"()
- inc $P10
- set rx231_pos, $P10
- ge rx231_pos, rx231_eos, rxscan234_done
- rxscan234_scan:
- set_addr $I10, rxscan234_loop
- rx231_cur."!mark_push"(0, rx231_pos, $I10)
- rxscan234_done:
-.annotate "line", 142
+ .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 ", "terminator:sym<;>")
+ .lex unicode:"$\x{a2}", rx234_cur
+ .local pmc match
+ .lex "$/", match
+ length rx234_eos, rx234_tgt
+ set rx234_off, 0
+ lt rx234_pos, 2, rx234_start
+ sub rx234_off, rx234_pos, 1
+ substr rx234_tgt, rx234_tgt, rx234_off
+ rx234_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan237_done
+ goto rxscan237_scan
+ rxscan237_loop:
+ ($P10) = rx234_cur."from"()
+ inc $P10
+ set rx234_pos, $P10
+ ge rx234_pos, rx234_eos, rxscan237_done
+ rxscan237_scan:
+ set_addr $I10, rxscan237_loop
+ rx234_cur."!mark_push"(0, rx234_pos, $I10)
+ rxscan237_done:
+.annotate "line", 146
# rx enumcharlist negate=0 zerowidth
- ge rx231_pos, rx231_eos, rx231_fail
- sub $I10, rx231_pos, rx231_off
- substr $S10, rx231_tgt, $I10, 1
+ ge rx234_pos, rx234_eos, rx234_fail
+ sub $I10, rx234_pos, rx234_off
+ substr $S10, rx234_tgt, $I10, 1
index $I11, ";", $S10
- lt $I11, 0, rx231_fail
+ lt $I11, 0, rx234_fail
# rx pass
- rx231_cur."!cursor_pass"(rx231_pos, "terminator:sym<;>")
- rx231_cur."!cursor_debug"("PASS ", "terminator:sym<;>", " at pos=", rx231_pos)
- .return (rx231_cur)
- rx231_fail:
+ rx234_cur."!cursor_pass"(rx234_pos, "terminator:sym<;>")
+ rx234_cur."!cursor_debug"("PASS ", "terminator:sym<;>", " at pos=", rx234_pos)
+ .return (rx234_cur)
+ rx234_fail:
.annotate "line", 4
- (rx231_rep, rx231_pos, $I10, $P10) = rx231_cur."!mark_fail"(0)
- lt rx231_pos, -1, rx231_done
- eq rx231_pos, -1, rx231_fail
+ (rx234_rep, rx234_pos, $I10, $P10) = rx234_cur."!mark_fail"(0)
+ lt rx234_pos, -1, rx234_done
+ eq rx234_pos, -1, rx234_fail
jump $I10
- rx231_done:
- rx231_cur."!cursor_fail"()
- rx231_cur."!cursor_debug"("FAIL ", "terminator:sym<;>")
- .return (rx231_cur)
+ rx234_done:
+ rx234_cur."!cursor_fail"()
+ rx234_cur."!cursor_debug"("FAIL ", "terminator:sym<;>")
+ .return (rx234_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<;>" :subid("55_1267204702.05125") :method
+.sub "!PREFIX__terminator:sym<;>" :subid("55_1271336396.90314") :method
.annotate "line", 4
- new $P233, "ResizablePMCArray"
- push $P233, ";"
- .return ($P233)
+ new $P236, "ResizablePMCArray"
+ push $P236, ";"
+ .return ($P236)
.end
.namespace ["NQP";"Grammar"]
-.sub "terminator:sym<}>" :subid("56_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "terminator:sym<}>" :subid("56_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx236_tgt
- .local int rx236_pos
- .local int rx236_off
- .local int rx236_eos
- .local int rx236_rep
- .local pmc rx236_cur
- (rx236_cur, rx236_pos, rx236_tgt) = self."!cursor_start"()
- rx236_cur."!cursor_debug"("START ", "terminator:sym<}>")
- .lex unicode:"$\x{a2}", rx236_cur
+ .local string rx239_tgt
+ .local int rx239_pos
+ .local int rx239_off
+ .local int rx239_eos
+ .local int rx239_rep
+ .local pmc rx239_cur
+ (rx239_cur, rx239_pos, rx239_tgt) = self."!cursor_start"()
+ rx239_cur."!cursor_debug"("START ", "terminator:sym<}>")
+ .lex unicode:"$\x{a2}", rx239_cur
.local pmc match
.lex "$/", match
- length rx236_eos, rx236_tgt
- 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:
+ length rx239_eos, rx239_tgt
+ set rx239_off, 0
+ lt rx239_pos, 2, rx239_start
+ sub rx239_off, rx239_pos, 1
+ substr rx239_tgt, rx239_tgt, rx239_off
+ rx239_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan239_done
- goto rxscan239_scan
- rxscan239_loop:
- ($P10) = rx236_cur."from"()
+ ne $I10, -1, rxscan242_done
+ goto rxscan242_scan
+ rxscan242_loop:
+ ($P10) = rx239_cur."from"()
inc $P10
- 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", 143
+ set rx239_pos, $P10
+ ge rx239_pos, rx239_eos, rxscan242_done
+ rxscan242_scan:
+ set_addr $I10, rxscan242_loop
+ rx239_cur."!mark_push"(0, rx239_pos, $I10)
+ rxscan242_done:
+.annotate "line", 147
# rx enumcharlist negate=0 zerowidth
- ge rx236_pos, rx236_eos, rx236_fail
- sub $I10, rx236_pos, rx236_off
- substr $S10, rx236_tgt, $I10, 1
+ ge rx239_pos, rx239_eos, rx239_fail
+ sub $I10, rx239_pos, rx239_off
+ substr $S10, rx239_tgt, $I10, 1
index $I11, "}", $S10
- lt $I11, 0, rx236_fail
+ lt $I11, 0, rx239_fail
# rx pass
- rx236_cur."!cursor_pass"(rx236_pos, "terminator:sym<}>")
- rx236_cur."!cursor_debug"("PASS ", "terminator:sym<}>", " at pos=", rx236_pos)
- .return (rx236_cur)
- rx236_fail:
+ rx239_cur."!cursor_pass"(rx239_pos, "terminator:sym<}>")
+ rx239_cur."!cursor_debug"("PASS ", "terminator:sym<}>", " at pos=", rx239_pos)
+ .return (rx239_cur)
+ rx239_fail:
.annotate "line", 4
- (rx236_rep, rx236_pos, $I10, $P10) = rx236_cur."!mark_fail"(0)
- lt rx236_pos, -1, rx236_done
- eq rx236_pos, -1, rx236_fail
+ (rx239_rep, rx239_pos, $I10, $P10) = rx239_cur."!mark_fail"(0)
+ lt rx239_pos, -1, rx239_done
+ eq rx239_pos, -1, rx239_fail
jump $I10
- rx236_done:
- rx236_cur."!cursor_fail"()
- rx236_cur."!cursor_debug"("FAIL ", "terminator:sym<}>")
- .return (rx236_cur)
+ rx239_done:
+ rx239_cur."!cursor_fail"()
+ rx239_cur."!cursor_debug"("FAIL ", "terminator:sym<}>")
+ .return (rx239_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<}>" :subid("57_1267204702.05125") :method
+.sub "!PREFIX__terminator:sym<}>" :subid("57_1271336396.90314") :method
.annotate "line", 4
- new $P238, "ResizablePMCArray"
- push $P238, "}"
- .return ($P238)
+ new $P241, "ResizablePMCArray"
+ push $P241, "}"
+ .return ($P241)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control" :subid("58_1267204702.05125") :method
-.annotate "line", 147
- $P241 = self."!protoregex"("statement_control")
- .return ($P241)
+.sub "statement_control" :subid("58_1271336396.90314") :method
+.annotate "line", 151
+ $P244 = self."!protoregex"("statement_control")
+ .return ($P244)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control" :subid("59_1267204702.05125") :method
-.annotate "line", 147
- $P243 = self."!PREFIX__!protoregex"("statement_control")
- .return ($P243)
+.sub "!PREFIX__statement_control" :subid("59_1271336396.90314") :method
+.annotate "line", 151
+ $P246 = self."!PREFIX__!protoregex"("statement_control")
+ .return ($P246)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<if>" :subid("60_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "statement_control:sym<if>" :subid("60_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .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 ", "statement_control:sym<if>")
- rx245_cur."!cursor_caparray"("else", "xblock")
- .lex unicode:"$\x{a2}", rx245_cur
- .local pmc match
- .lex "$/", match
- length rx245_eos, rx245_tgt
- 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:
- $I10 = self.'from'()
- ne $I10, -1, rxscan248_done
- goto rxscan248_scan
- rxscan248_loop:
- ($P10) = rx245_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:
-.annotate "line", 150
+ .local string rx248_tgt
+ .local int rx248_pos
+ .local int rx248_off
+ .local int rx248_eos
+ .local int rx248_rep
+ .local pmc rx248_cur
+ (rx248_cur, rx248_pos, rx248_tgt) = self."!cursor_start"()
+ rx248_cur."!cursor_debug"("START ", "statement_control:sym<if>")
+ rx248_cur."!cursor_caparray"("else", "xblock")
+ .lex unicode:"$\x{a2}", rx248_cur
+ .local pmc match
+ .lex "$/", match
+ length rx248_eos, rx248_tgt
+ set rx248_off, 0
+ lt rx248_pos, 2, rx248_start
+ sub rx248_off, rx248_pos, 1
+ substr rx248_tgt, rx248_tgt, rx248_off
+ rx248_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan251_done
+ goto rxscan251_scan
+ rxscan251_loop:
+ ($P10) = rx248_cur."from"()
+ inc $P10
+ set rx248_pos, $P10
+ ge rx248_pos, rx248_eos, rxscan251_done
+ rxscan251_scan:
+ set_addr $I10, rxscan251_loop
+ rx248_cur."!mark_push"(0, rx248_pos, $I10)
+ rxscan251_done:
+.annotate "line", 154
# rx subcapture "sym"
- set_addr $I10, rxcap_249_fail
- rx245_cur."!mark_push"(0, rx245_pos, $I10)
+ set_addr $I10, rxcap_252_fail
+ rx248_cur."!mark_push"(0, rx248_pos, $I10)
# rx literal "if"
- 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, "if", rx245_fail
- add rx245_pos, 2
- set_addr $I10, rxcap_249_fail
- ($I12, $I11) = rx245_cur."!mark_peek"($I10)
- rx245_cur."!cursor_pos"($I11)
- ($P10) = rx245_cur."!cursor_start"()
- $P10."!cursor_pass"(rx245_pos, "")
- rx245_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx248_pos, 2
+ gt $I11, rx248_eos, rx248_fail
+ sub $I11, rx248_pos, rx248_off
+ substr $S10, rx248_tgt, $I11, 2
+ ne $S10, "if", rx248_fail
+ add rx248_pos, 2
+ set_addr $I10, rxcap_252_fail
+ ($I12, $I11) = rx248_cur."!mark_peek"($I10)
+ rx248_cur."!cursor_pos"($I11)
+ ($P10) = rx248_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx248_pos, "")
+ rx248_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_249_done
- rxcap_249_fail:
- goto rx245_fail
- rxcap_249_done:
+ goto rxcap_252_done
+ rxcap_252_fail:
+ goto rx248_fail
+ rxcap_252_done:
# rx charclass s
- ge rx245_pos, rx245_eos, rx245_fail
- sub $I10, rx245_pos, rx245_off
- is_cclass $I11, 32, rx245_tgt, $I10
- unless $I11, rx245_fail
- inc rx245_pos
- # rx subrule "ws" subtype=method negate=
- rx245_cur."!cursor_pos"(rx245_pos)
- $P10 = rx245_cur."ws"()
- unless $P10, rx245_fail
- rx245_pos = $P10."pos"()
-.annotate "line", 151
+ ge rx248_pos, rx248_eos, rx248_fail
+ sub $I10, rx248_pos, rx248_off
+ is_cclass $I11, 32, rx248_tgt, $I10
+ unless $I11, rx248_fail
+ inc rx248_pos
+ # rx subrule "ws" subtype=method negate=
+ rx248_cur."!cursor_pos"(rx248_pos)
+ $P10 = rx248_cur."ws"()
+ unless $P10, rx248_fail
+ rx248_pos = $P10."pos"()
+.annotate "line", 155
# rx subrule "xblock" subtype=capture negate=
- rx245_cur."!cursor_pos"(rx245_pos)
- $P10 = rx245_cur."xblock"()
- unless $P10, rx245_fail
- rx245_cur."!mark_push"(0, -1, 0, $P10)
+ rx248_cur."!cursor_pos"(rx248_pos)
+ $P10 = rx248_cur."xblock"()
+ unless $P10, rx248_fail
+ rx248_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("xblock")
- rx245_pos = $P10."pos"()
+ rx248_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx245_cur."!cursor_pos"(rx245_pos)
- $P10 = rx245_cur."ws"()
- unless $P10, rx245_fail
- rx245_pos = $P10."pos"()
-.annotate "line", 152
- # rx rxquantr252 ** 0..*
- set_addr $I256, rxquantr252_done
- rx245_cur."!mark_push"(0, rx245_pos, $I256)
- rxquantr252_loop:
- # rx subrule "ws" subtype=method negate=
- rx245_cur."!cursor_pos"(rx245_pos)
- $P10 = rx245_cur."ws"()
- unless $P10, rx245_fail
- rx245_pos = $P10."pos"()
+ rx248_cur."!cursor_pos"(rx248_pos)
+ $P10 = rx248_cur."ws"()
+ unless $P10, rx248_fail
+ rx248_pos = $P10."pos"()
+.annotate "line", 156
+ # rx rxquantr255 ** 0..*
+ set_addr $I259, rxquantr255_done
+ rx248_cur."!mark_push"(0, rx248_pos, $I259)
+ rxquantr255_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx248_cur."!cursor_pos"(rx248_pos)
+ $P10 = rx248_cur."ws"()
+ unless $P10, rx248_fail
+ rx248_pos = $P10."pos"()
# rx literal "elsif"
- add $I11, rx245_pos, 5
- gt $I11, rx245_eos, rx245_fail
- sub $I11, rx245_pos, rx245_off
- substr $S10, rx245_tgt, $I11, 5
- ne $S10, "elsif", rx245_fail
- add rx245_pos, 5
+ add $I11, rx248_pos, 5
+ gt $I11, rx248_eos, rx248_fail
+ sub $I11, rx248_pos, rx248_off
+ substr $S10, rx248_tgt, $I11, 5
+ ne $S10, "elsif", rx248_fail
+ add rx248_pos, 5
# rx charclass s
- ge rx245_pos, rx245_eos, rx245_fail
- sub $I10, rx245_pos, rx245_off
- is_cclass $I11, 32, rx245_tgt, $I10
- unless $I11, rx245_fail
- inc rx245_pos
- # rx subrule "ws" subtype=method negate=
- rx245_cur."!cursor_pos"(rx245_pos)
- $P10 = rx245_cur."ws"()
- unless $P10, rx245_fail
- rx245_pos = $P10."pos"()
+ ge rx248_pos, rx248_eos, rx248_fail
+ sub $I10, rx248_pos, rx248_off
+ is_cclass $I11, 32, rx248_tgt, $I10
+ unless $I11, rx248_fail
+ inc rx248_pos
+ # rx subrule "ws" subtype=method negate=
+ rx248_cur."!cursor_pos"(rx248_pos)
+ $P10 = rx248_cur."ws"()
+ unless $P10, rx248_fail
+ rx248_pos = $P10."pos"()
# rx subrule "xblock" subtype=capture negate=
- rx245_cur."!cursor_pos"(rx245_pos)
- $P10 = rx245_cur."xblock"()
- unless $P10, rx245_fail
- rx245_cur."!mark_push"(0, -1, 0, $P10)
+ rx248_cur."!cursor_pos"(rx248_pos)
+ $P10 = rx248_cur."xblock"()
+ unless $P10, rx248_fail
+ rx248_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("xblock")
- rx245_pos = $P10."pos"()
+ rx248_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx245_cur."!cursor_pos"(rx245_pos)
- $P10 = rx245_cur."ws"()
- unless $P10, rx245_fail
- rx245_pos = $P10."pos"()
- (rx245_rep) = rx245_cur."!mark_commit"($I256)
- rx245_cur."!mark_push"(rx245_rep, rx245_pos, $I256)
- goto rxquantr252_loop
- rxquantr252_done:
- # rx subrule "ws" subtype=method negate=
- rx245_cur."!cursor_pos"(rx245_pos)
- $P10 = rx245_cur."ws"()
- unless $P10, rx245_fail
- rx245_pos = $P10."pos"()
-.annotate "line", 153
- # rx rxquantr258 ** 0..1
- set_addr $I262, rxquantr258_done
- rx245_cur."!mark_push"(0, rx245_pos, $I262)
- rxquantr258_loop:
- # rx subrule "ws" subtype=method negate=
- rx245_cur."!cursor_pos"(rx245_pos)
- $P10 = rx245_cur."ws"()
- unless $P10, rx245_fail
- rx245_pos = $P10."pos"()
+ rx248_cur."!cursor_pos"(rx248_pos)
+ $P10 = rx248_cur."ws"()
+ unless $P10, rx248_fail
+ rx248_pos = $P10."pos"()
+ (rx248_rep) = rx248_cur."!mark_commit"($I259)
+ rx248_cur."!mark_push"(rx248_rep, rx248_pos, $I259)
+ goto rxquantr255_loop
+ rxquantr255_done:
+ # rx subrule "ws" subtype=method negate=
+ rx248_cur."!cursor_pos"(rx248_pos)
+ $P10 = rx248_cur."ws"()
+ unless $P10, rx248_fail
+ rx248_pos = $P10."pos"()
+.annotate "line", 157
+ # rx rxquantr261 ** 0..1
+ set_addr $I265, rxquantr261_done
+ rx248_cur."!mark_push"(0, rx248_pos, $I265)
+ rxquantr261_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx248_cur."!cursor_pos"(rx248_pos)
+ $P10 = rx248_cur."ws"()
+ unless $P10, rx248_fail
+ rx248_pos = $P10."pos"()
# rx literal "else"
- add $I11, rx245_pos, 4
- gt $I11, rx245_eos, rx245_fail
- sub $I11, rx245_pos, rx245_off
- substr $S10, rx245_tgt, $I11, 4
- ne $S10, "else", rx245_fail
- add rx245_pos, 4
+ add $I11, rx248_pos, 4
+ gt $I11, rx248_eos, rx248_fail
+ sub $I11, rx248_pos, rx248_off
+ substr $S10, rx248_tgt, $I11, 4
+ ne $S10, "else", rx248_fail
+ add rx248_pos, 4
# rx charclass s
- ge rx245_pos, rx245_eos, rx245_fail
- sub $I10, rx245_pos, rx245_off
- is_cclass $I11, 32, rx245_tgt, $I10
- unless $I11, rx245_fail
- inc rx245_pos
- # rx subrule "ws" subtype=method negate=
- rx245_cur."!cursor_pos"(rx245_pos)
- $P10 = rx245_cur."ws"()
- unless $P10, rx245_fail
- rx245_pos = $P10."pos"()
+ ge rx248_pos, rx248_eos, rx248_fail
+ sub $I10, rx248_pos, rx248_off
+ is_cclass $I11, 32, rx248_tgt, $I10
+ unless $I11, rx248_fail
+ inc rx248_pos
+ # rx subrule "ws" subtype=method negate=
+ rx248_cur."!cursor_pos"(rx248_pos)
+ $P10 = rx248_cur."ws"()
+ unless $P10, rx248_fail
+ rx248_pos = $P10."pos"()
# rx subrule "pblock" subtype=capture negate=
- rx245_cur."!cursor_pos"(rx245_pos)
- $P10 = rx245_cur."pblock"()
- unless $P10, rx245_fail
- rx245_cur."!mark_push"(0, -1, 0, $P10)
+ rx248_cur."!cursor_pos"(rx248_pos)
+ $P10 = rx248_cur."pblock"()
+ unless $P10, rx248_fail
+ rx248_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("else")
- rx245_pos = $P10."pos"()
+ rx248_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx245_cur."!cursor_pos"(rx245_pos)
- $P10 = rx245_cur."ws"()
- unless $P10, rx245_fail
- rx245_pos = $P10."pos"()
- (rx245_rep) = rx245_cur."!mark_commit"($I262)
- rxquantr258_done:
- # rx subrule "ws" subtype=method negate=
- rx245_cur."!cursor_pos"(rx245_pos)
- $P10 = rx245_cur."ws"()
- unless $P10, rx245_fail
- rx245_pos = $P10."pos"()
-.annotate "line", 149
+ rx248_cur."!cursor_pos"(rx248_pos)
+ $P10 = rx248_cur."ws"()
+ unless $P10, rx248_fail
+ rx248_pos = $P10."pos"()
+ (rx248_rep) = rx248_cur."!mark_commit"($I265)
+ rxquantr261_done:
+ # rx subrule "ws" subtype=method negate=
+ rx248_cur."!cursor_pos"(rx248_pos)
+ $P10 = rx248_cur."ws"()
+ unless $P10, rx248_fail
+ rx248_pos = $P10."pos"()
+.annotate "line", 153
# rx pass
- rx245_cur."!cursor_pass"(rx245_pos, "statement_control:sym<if>")
- rx245_cur."!cursor_debug"("PASS ", "statement_control:sym<if>", " at pos=", rx245_pos)
- .return (rx245_cur)
- rx245_fail:
+ rx248_cur."!cursor_pass"(rx248_pos, "statement_control:sym<if>")
+ rx248_cur."!cursor_debug"("PASS ", "statement_control:sym<if>", " at pos=", rx248_pos)
+ .return (rx248_cur)
+ rx248_fail:
.annotate "line", 4
- (rx245_rep, rx245_pos, $I10, $P10) = rx245_cur."!mark_fail"(0)
- lt rx245_pos, -1, rx245_done
- eq rx245_pos, -1, rx245_fail
+ (rx248_rep, rx248_pos, $I10, $P10) = rx248_cur."!mark_fail"(0)
+ lt rx248_pos, -1, rx248_done
+ eq rx248_pos, -1, rx248_fail
jump $I10
- rx245_done:
- rx245_cur."!cursor_fail"()
- rx245_cur."!cursor_debug"("FAIL ", "statement_control:sym<if>")
- .return (rx245_cur)
+ rx248_done:
+ rx248_cur."!cursor_fail"()
+ rx248_cur."!cursor_debug"("FAIL ", "statement_control:sym<if>")
+ .return (rx248_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<if>" :subid("61_1267204702.05125") :method
+.sub "!PREFIX__statement_control:sym<if>" :subid("61_1271336396.90314") :method
.annotate "line", 4
- new $P247, "ResizablePMCArray"
- push $P247, "if"
- .return ($P247)
+ new $P250, "ResizablePMCArray"
+ push $P250, "if"
+ .return ($P250)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<unless>" :subid("62_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "statement_control:sym<unless>" :subid("62_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .const 'Sub' $P275 = "64_1267204702.05125"
- capture_lex $P275
- .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<unless>")
- .lex unicode:"$\x{a2}", rx265_cur
+ .const 'Sub' $P278 = "64_1271336396.90314"
+ capture_lex $P278
+ .local string rx268_tgt
+ .local int rx268_pos
+ .local int rx268_off
+ .local int rx268_eos
+ .local int rx268_rep
+ .local pmc rx268_cur
+ (rx268_cur, rx268_pos, rx268_tgt) = self."!cursor_start"()
+ rx268_cur."!cursor_debug"("START ", "statement_control:sym<unless>")
+ .lex unicode:"$\x{a2}", rx268_cur
.local pmc match
.lex "$/", match
- length rx265_eos, rx265_tgt
- 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:
+ length rx268_eos, rx268_tgt
+ set rx268_off, 0
+ lt rx268_pos, 2, rx268_start
+ sub rx268_off, rx268_pos, 1
+ substr rx268_tgt, rx268_tgt, rx268_off
+ rx268_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan268_done
- goto rxscan268_scan
- rxscan268_loop:
- ($P10) = rx265_cur."from"()
+ ne $I10, -1, rxscan271_done
+ goto rxscan271_scan
+ rxscan271_loop:
+ ($P10) = rx268_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", 157
+ set rx268_pos, $P10
+ ge rx268_pos, rx268_eos, rxscan271_done
+ rxscan271_scan:
+ set_addr $I10, rxscan271_loop
+ rx268_cur."!mark_push"(0, rx268_pos, $I10)
+ rxscan271_done:
+.annotate "line", 161
# rx subcapture "sym"
- set_addr $I10, rxcap_269_fail
- rx265_cur."!mark_push"(0, rx265_pos, $I10)
+ set_addr $I10, rxcap_272_fail
+ rx268_cur."!mark_push"(0, rx268_pos, $I10)
# rx literal "unless"
- add $I11, rx265_pos, 6
- gt $I11, rx265_eos, rx265_fail
- sub $I11, rx265_pos, rx265_off
- substr $S10, rx265_tgt, $I11, 6
- ne $S10, "unless", rx265_fail
- add rx265_pos, 6
- set_addr $I10, rxcap_269_fail
- ($I12, $I11) = rx265_cur."!mark_peek"($I10)
- rx265_cur."!cursor_pos"($I11)
- ($P10) = rx265_cur."!cursor_start"()
- $P10."!cursor_pass"(rx265_pos, "")
- rx265_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx268_pos, 6
+ gt $I11, rx268_eos, rx268_fail
+ sub $I11, rx268_pos, rx268_off
+ substr $S10, rx268_tgt, $I11, 6
+ ne $S10, "unless", rx268_fail
+ add rx268_pos, 6
+ set_addr $I10, rxcap_272_fail
+ ($I12, $I11) = rx268_cur."!mark_peek"($I10)
+ rx268_cur."!cursor_pos"($I11)
+ ($P10) = rx268_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx268_pos, "")
+ rx268_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_269_done
- rxcap_269_fail:
- goto rx265_fail
- rxcap_269_done:
+ goto rxcap_272_done
+ rxcap_272_fail:
+ goto rx268_fail
+ rxcap_272_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", 158
+ ge rx268_pos, rx268_eos, rx268_fail
+ sub $I10, rx268_pos, rx268_off
+ is_cclass $I11, 32, rx268_tgt, $I10
+ unless $I11, rx268_fail
+ inc rx268_pos
+ # rx subrule "ws" subtype=method negate=
+ rx268_cur."!cursor_pos"(rx268_pos)
+ $P10 = rx268_cur."ws"()
+ unless $P10, rx268_fail
+ rx268_pos = $P10."pos"()
+.annotate "line", 162
# 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)
+ rx268_cur."!cursor_pos"(rx268_pos)
+ $P10 = rx268_cur."xblock"()
+ unless $P10, rx268_fail
+ rx268_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("xblock")
- rx265_pos = $P10."pos"()
+ rx268_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"()
- alt272_0:
-.annotate "line", 159
- set_addr $I10, alt272_1
- rx265_cur."!mark_push"(0, rx265_pos, $I10)
+ rx268_cur."!cursor_pos"(rx268_pos)
+ $P10 = rx268_cur."ws"()
+ unless $P10, rx268_fail
+ rx268_pos = $P10."pos"()
+ alt275_0:
+.annotate "line", 163
+ set_addr $I10, alt275_1
+ rx268_cur."!mark_push"(0, rx268_pos, $I10)
# rx subrule "ws" subtype=method negate=
- rx265_cur."!cursor_pos"(rx265_pos)
- $P10 = rx265_cur."ws"()
- unless $P10, rx265_fail
- rx265_pos = $P10."pos"()
+ rx268_cur."!cursor_pos"(rx268_pos)
+ $P10 = rx268_cur."ws"()
+ unless $P10, rx268_fail
+ rx268_pos = $P10."pos"()
# rx subrule "before" subtype=zerowidth negate=1
- rx265_cur."!cursor_pos"(rx265_pos)
- .const 'Sub' $P275 = "64_1267204702.05125"
- capture_lex $P275
- $P10 = rx265_cur."before"($P275)
- if $P10, rx265_fail
- # rx subrule "ws" subtype=method negate=
- rx265_cur."!cursor_pos"(rx265_pos)
- $P10 = rx265_cur."ws"()
- unless $P10, rx265_fail
- rx265_pos = $P10."pos"()
- goto alt272_end
- alt272_1:
- # rx subrule "ws" subtype=method negate=
- rx265_cur."!cursor_pos"(rx265_pos)
- $P10 = rx265_cur."ws"()
- unless $P10, rx265_fail
- rx265_pos = $P10."pos"()
+ rx268_cur."!cursor_pos"(rx268_pos)
+ .const 'Sub' $P278 = "64_1271336396.90314"
+ capture_lex $P278
+ $P10 = rx268_cur."before"($P278)
+ if $P10, rx268_fail
+ # rx subrule "ws" subtype=method negate=
+ rx268_cur."!cursor_pos"(rx268_pos)
+ $P10 = rx268_cur."ws"()
+ unless $P10, rx268_fail
+ rx268_pos = $P10."pos"()
+ goto alt275_end
+ alt275_1:
+ # rx subrule "ws" subtype=method negate=
+ rx268_cur."!cursor_pos"(rx268_pos)
+ $P10 = rx268_cur."ws"()
+ unless $P10, rx268_fail
+ rx268_pos = $P10."pos"()
# rx subrule "panic" subtype=method negate=
- rx265_cur."!cursor_pos"(rx265_pos)
- $P10 = rx265_cur."panic"("unless does not take \"else\", please rewrite using \"if\"")
- unless $P10, rx265_fail
- 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"()
- alt272_end:
- # 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", 156
+ rx268_cur."!cursor_pos"(rx268_pos)
+ $P10 = rx268_cur."panic"("unless does not take \"else\", please rewrite using \"if\"")
+ unless $P10, rx268_fail
+ rx268_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx268_cur."!cursor_pos"(rx268_pos)
+ $P10 = rx268_cur."ws"()
+ unless $P10, rx268_fail
+ rx268_pos = $P10."pos"()
+ alt275_end:
+ # rx subrule "ws" subtype=method negate=
+ rx268_cur."!cursor_pos"(rx268_pos)
+ $P10 = rx268_cur."ws"()
+ unless $P10, rx268_fail
+ rx268_pos = $P10."pos"()
+.annotate "line", 160
# rx pass
- rx265_cur."!cursor_pass"(rx265_pos, "statement_control:sym<unless>")
- rx265_cur."!cursor_debug"("PASS ", "statement_control:sym<unless>", " at pos=", rx265_pos)
- .return (rx265_cur)
- rx265_fail:
+ rx268_cur."!cursor_pass"(rx268_pos, "statement_control:sym<unless>")
+ rx268_cur."!cursor_debug"("PASS ", "statement_control:sym<unless>", " at pos=", rx268_pos)
+ .return (rx268_cur)
+ rx268_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
+ (rx268_rep, rx268_pos, $I10, $P10) = rx268_cur."!mark_fail"(0)
+ lt rx268_pos, -1, rx268_done
+ eq rx268_pos, -1, rx268_fail
jump $I10
- rx265_done:
- rx265_cur."!cursor_fail"()
- rx265_cur."!cursor_debug"("FAIL ", "statement_control:sym<unless>")
- .return (rx265_cur)
+ rx268_done:
+ rx268_cur."!cursor_fail"()
+ rx268_cur."!cursor_debug"("FAIL ", "statement_control:sym<unless>")
+ .return (rx268_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<unless>" :subid("63_1267204702.05125") :method
+.sub "!PREFIX__statement_control:sym<unless>" :subid("63_1271336396.90314") :method
.annotate "line", 4
- new $P267, "ResizablePMCArray"
- push $P267, "unless"
- .return ($P267)
+ new $P270, "ResizablePMCArray"
+ push $P270, "unless"
+ .return ($P270)
.end
.namespace ["NQP";"Grammar"]
-.sub "_block274" :anon :subid("64_1267204702.05125") :method :outer("62_1267204702.05125")
-.annotate "line", 159
- .local string rx276_tgt
- .local int rx276_pos
- .local int rx276_off
- .local int rx276_eos
- .local int rx276_rep
- .local pmc rx276_cur
- (rx276_cur, rx276_pos, rx276_tgt) = self."!cursor_start"()
- rx276_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx276_cur
- .local pmc match
- .lex "$/", match
- length rx276_eos, rx276_tgt
- set rx276_off, 0
- lt rx276_pos, 2, rx276_start
- sub rx276_off, rx276_pos, 1
- substr rx276_tgt, rx276_tgt, rx276_off
- rx276_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan277_done
- goto rxscan277_scan
- rxscan277_loop:
- ($P10) = rx276_cur."from"()
- inc $P10
- set rx276_pos, $P10
- ge rx276_pos, rx276_eos, rxscan277_done
- rxscan277_scan:
- set_addr $I10, rxscan277_loop
- rx276_cur."!mark_push"(0, rx276_pos, $I10)
- rxscan277_done:
+.sub "_block277" :anon :subid("64_1271336396.90314") :method :outer("62_1271336396.90314")
+.annotate "line", 163
+ .local string rx279_tgt
+ .local int rx279_pos
+ .local int rx279_off
+ .local int rx279_eos
+ .local int rx279_rep
+ .local pmc rx279_cur
+ (rx279_cur, rx279_pos, rx279_tgt) = self."!cursor_start"()
+ rx279_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx279_cur
+ .local pmc match
+ .lex "$/", match
+ length rx279_eos, rx279_tgt
+ set rx279_off, 0
+ lt rx279_pos, 2, rx279_start
+ sub rx279_off, rx279_pos, 1
+ substr rx279_tgt, rx279_tgt, rx279_off
+ rx279_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan280_done
+ goto rxscan280_scan
+ rxscan280_loop:
+ ($P10) = rx279_cur."from"()
+ inc $P10
+ set rx279_pos, $P10
+ ge rx279_pos, rx279_eos, rxscan280_done
+ rxscan280_scan:
+ set_addr $I10, rxscan280_loop
+ rx279_cur."!mark_push"(0, rx279_pos, $I10)
+ rxscan280_done:
# rx literal "else"
- add $I11, rx276_pos, 4
- gt $I11, rx276_eos, rx276_fail
- sub $I11, rx276_pos, rx276_off
- substr $S10, rx276_tgt, $I11, 4
- ne $S10, "else", rx276_fail
- add rx276_pos, 4
- # rx pass
- rx276_cur."!cursor_pass"(rx276_pos, "")
- rx276_cur."!cursor_debug"("PASS ", "", " at pos=", rx276_pos)
- .return (rx276_cur)
- rx276_fail:
- (rx276_rep, rx276_pos, $I10, $P10) = rx276_cur."!mark_fail"(0)
- lt rx276_pos, -1, rx276_done
- eq rx276_pos, -1, rx276_fail
- jump $I10
- rx276_done:
- rx276_cur."!cursor_fail"()
- rx276_cur."!cursor_debug"("FAIL ", "")
- .return (rx276_cur)
+ add $I11, rx279_pos, 4
+ gt $I11, rx279_eos, rx279_fail
+ sub $I11, rx279_pos, rx279_off
+ substr $S10, rx279_tgt, $I11, 4
+ ne $S10, "else", rx279_fail
+ add rx279_pos, 4
+ # rx pass
+ rx279_cur."!cursor_pass"(rx279_pos, "")
+ rx279_cur."!cursor_debug"("PASS ", "", " at pos=", rx279_pos)
+ .return (rx279_cur)
+ rx279_fail:
+ (rx279_rep, rx279_pos, $I10, $P10) = rx279_cur."!mark_fail"(0)
+ lt rx279_pos, -1, rx279_done
+ eq rx279_pos, -1, rx279_fail
+ jump $I10
+ rx279_done:
+ rx279_cur."!cursor_fail"()
+ rx279_cur."!cursor_debug"("FAIL ", "")
+ .return (rx279_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<while>" :subid("65_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 4
- .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 ", "statement_control:sym<while>")
- .lex unicode:"$\x{a2}", rx283_cur
- .local pmc match
- .lex "$/", match
- length rx283_eos, rx283_tgt
- set rx283_off, 0
- lt rx283_pos, 2, rx283_start
- sub rx283_off, rx283_pos, 1
- substr rx283_tgt, rx283_tgt, rx283_off
- rx283_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan286_done
- goto rxscan286_scan
- rxscan286_loop:
- ($P10) = rx283_cur."from"()
- inc $P10
- set rx283_pos, $P10
- ge rx283_pos, rx283_eos, rxscan286_done
- rxscan286_scan:
- set_addr $I10, rxscan286_loop
- rx283_cur."!mark_push"(0, rx283_pos, $I10)
- rxscan286_done:
-.annotate "line", 163
+.sub "statement_control:sym<while>" :subid("65_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 4
+ .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 ", "statement_control:sym<while>")
+ .lex unicode:"$\x{a2}", rx286_cur
+ .local pmc match
+ .lex "$/", match
+ length rx286_eos, rx286_tgt
+ set rx286_off, 0
+ lt rx286_pos, 2, rx286_start
+ sub rx286_off, rx286_pos, 1
+ substr rx286_tgt, rx286_tgt, rx286_off
+ rx286_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan289_done
+ goto rxscan289_scan
+ rxscan289_loop:
+ ($P10) = rx286_cur."from"()
+ inc $P10
+ set rx286_pos, $P10
+ ge rx286_pos, rx286_eos, rxscan289_done
+ rxscan289_scan:
+ set_addr $I10, rxscan289_loop
+ rx286_cur."!mark_push"(0, rx286_pos, $I10)
+ rxscan289_done:
+.annotate "line", 167
# rx subcapture "sym"
- set_addr $I10, rxcap_288_fail
- rx283_cur."!mark_push"(0, rx283_pos, $I10)
- alt287_0:
- set_addr $I10, alt287_1
- rx283_cur."!mark_push"(0, rx283_pos, $I10)
+ set_addr $I10, rxcap_291_fail
+ rx286_cur."!mark_push"(0, rx286_pos, $I10)
+ alt290_0:
+ set_addr $I10, alt290_1
+ rx286_cur."!mark_push"(0, rx286_pos, $I10)
# rx literal "while"
- add $I11, rx283_pos, 5
- gt $I11, rx283_eos, rx283_fail
- sub $I11, rx283_pos, rx283_off
- substr $S10, rx283_tgt, $I11, 5
- ne $S10, "while", rx283_fail
- add rx283_pos, 5
- goto alt287_end
- alt287_1:
+ add $I11, rx286_pos, 5
+ gt $I11, rx286_eos, rx286_fail
+ sub $I11, rx286_pos, rx286_off
+ substr $S10, rx286_tgt, $I11, 5
+ ne $S10, "while", rx286_fail
+ add rx286_pos, 5
+ goto alt290_end
+ alt290_1:
# rx literal "until"
- add $I11, rx283_pos, 5
- gt $I11, rx283_eos, rx283_fail
- sub $I11, rx283_pos, rx283_off
- substr $S10, rx283_tgt, $I11, 5
- ne $S10, "until", rx283_fail
- add rx283_pos, 5
- alt287_end:
- set_addr $I10, rxcap_288_fail
- ($I12, $I11) = rx283_cur."!mark_peek"($I10)
- rx283_cur."!cursor_pos"($I11)
- ($P10) = rx283_cur."!cursor_start"()
- $P10."!cursor_pass"(rx283_pos, "")
- rx283_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx286_pos, 5
+ gt $I11, rx286_eos, rx286_fail
+ sub $I11, rx286_pos, rx286_off
+ substr $S10, rx286_tgt, $I11, 5
+ ne $S10, "until", rx286_fail
+ add rx286_pos, 5
+ alt290_end:
+ set_addr $I10, rxcap_291_fail
+ ($I12, $I11) = rx286_cur."!mark_peek"($I10)
+ rx286_cur."!cursor_pos"($I11)
+ ($P10) = rx286_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx286_pos, "")
+ rx286_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_288_done
- rxcap_288_fail:
- goto rx283_fail
- rxcap_288_done:
+ goto rxcap_291_done
+ rxcap_291_fail:
+ goto rx286_fail
+ rxcap_291_done:
# rx charclass s
- ge rx283_pos, rx283_eos, rx283_fail
- sub $I10, rx283_pos, rx283_off
- is_cclass $I11, 32, rx283_tgt, $I10
- unless $I11, rx283_fail
- inc rx283_pos
- # rx subrule "ws" subtype=method negate=
- rx283_cur."!cursor_pos"(rx283_pos)
- $P10 = rx283_cur."ws"()
- unless $P10, rx283_fail
- rx283_pos = $P10."pos"()
-.annotate "line", 164
+ ge rx286_pos, rx286_eos, rx286_fail
+ sub $I10, rx286_pos, rx286_off
+ is_cclass $I11, 32, rx286_tgt, $I10
+ unless $I11, rx286_fail
+ inc rx286_pos
+ # rx subrule "ws" subtype=method negate=
+ rx286_cur."!cursor_pos"(rx286_pos)
+ $P10 = rx286_cur."ws"()
+ unless $P10, rx286_fail
+ rx286_pos = $P10."pos"()
+.annotate "line", 168
# rx subrule "xblock" subtype=capture negate=
- rx283_cur."!cursor_pos"(rx283_pos)
- $P10 = rx283_cur."xblock"()
- unless $P10, rx283_fail
- rx283_cur."!mark_push"(0, -1, 0, $P10)
+ rx286_cur."!cursor_pos"(rx286_pos)
+ $P10 = rx286_cur."xblock"()
+ unless $P10, rx286_fail
+ rx286_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("xblock")
- rx283_pos = $P10."pos"()
+ rx286_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx283_cur."!cursor_pos"(rx283_pos)
- $P10 = rx283_cur."ws"()
- unless $P10, rx283_fail
- rx283_pos = $P10."pos"()
-.annotate "line", 162
+ rx286_cur."!cursor_pos"(rx286_pos)
+ $P10 = rx286_cur."ws"()
+ unless $P10, rx286_fail
+ rx286_pos = $P10."pos"()
+.annotate "line", 166
# rx pass
- rx283_cur."!cursor_pass"(rx283_pos, "statement_control:sym<while>")
- rx283_cur."!cursor_debug"("PASS ", "statement_control:sym<while>", " at pos=", rx283_pos)
- .return (rx283_cur)
- rx283_fail:
+ rx286_cur."!cursor_pass"(rx286_pos, "statement_control:sym<while>")
+ rx286_cur."!cursor_debug"("PASS ", "statement_control:sym<while>", " at pos=", rx286_pos)
+ .return (rx286_cur)
+ rx286_fail:
.annotate "line", 4
- (rx283_rep, rx283_pos, $I10, $P10) = rx283_cur."!mark_fail"(0)
- lt rx283_pos, -1, rx283_done
- eq rx283_pos, -1, rx283_fail
+ (rx286_rep, rx286_pos, $I10, $P10) = rx286_cur."!mark_fail"(0)
+ lt rx286_pos, -1, rx286_done
+ eq rx286_pos, -1, rx286_fail
jump $I10
- rx283_done:
- rx283_cur."!cursor_fail"()
- rx283_cur."!cursor_debug"("FAIL ", "statement_control:sym<while>")
- .return (rx283_cur)
+ rx286_done:
+ rx286_cur."!cursor_fail"()
+ rx286_cur."!cursor_debug"("FAIL ", "statement_control:sym<while>")
+ .return (rx286_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<while>" :subid("66_1267204702.05125") :method
+.sub "!PREFIX__statement_control:sym<while>" :subid("66_1271336396.90314") :method
.annotate "line", 4
- new $P285, "ResizablePMCArray"
- push $P285, "until"
- push $P285, "while"
- .return ($P285)
+ new $P288, "ResizablePMCArray"
+ push $P288, "until"
+ push $P288, "while"
+ .return ($P288)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<repeat>" :subid("67_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "statement_control:sym<repeat>" :subid("67_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx292_tgt
- .local int rx292_pos
- .local int rx292_off
- .local int rx292_eos
- .local int rx292_rep
- .local pmc rx292_cur
- (rx292_cur, rx292_pos, rx292_tgt) = self."!cursor_start"()
- rx292_cur."!cursor_debug"("START ", "statement_control:sym<repeat>")
- .lex unicode:"$\x{a2}", rx292_cur
+ .local string rx295_tgt
+ .local int rx295_pos
+ .local int rx295_off
+ .local int rx295_eos
+ .local int rx295_rep
+ .local pmc rx295_cur
+ (rx295_cur, rx295_pos, rx295_tgt) = self."!cursor_start"()
+ rx295_cur."!cursor_debug"("START ", "statement_control:sym<repeat>")
+ .lex unicode:"$\x{a2}", rx295_cur
.local pmc match
.lex "$/", match
- length rx292_eos, rx292_tgt
- set rx292_off, 0
- lt rx292_pos, 2, rx292_start
- sub rx292_off, rx292_pos, 1
- substr rx292_tgt, rx292_tgt, rx292_off
- rx292_start:
+ length rx295_eos, rx295_tgt
+ set rx295_off, 0
+ lt rx295_pos, 2, rx295_start
+ sub rx295_off, rx295_pos, 1
+ substr rx295_tgt, rx295_tgt, rx295_off
+ rx295_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan295_done
- goto rxscan295_scan
- rxscan295_loop:
- ($P10) = rx292_cur."from"()
+ ne $I10, -1, rxscan298_done
+ goto rxscan298_scan
+ rxscan298_loop:
+ ($P10) = rx295_cur."from"()
inc $P10
- set rx292_pos, $P10
- ge rx292_pos, rx292_eos, rxscan295_done
- rxscan295_scan:
- set_addr $I10, rxscan295_loop
- rx292_cur."!mark_push"(0, rx292_pos, $I10)
- rxscan295_done:
-.annotate "line", 168
+ set rx295_pos, $P10
+ ge rx295_pos, rx295_eos, rxscan298_done
+ rxscan298_scan:
+ set_addr $I10, rxscan298_loop
+ rx295_cur."!mark_push"(0, rx295_pos, $I10)
+ rxscan298_done:
+.annotate "line", 172
# rx subcapture "sym"
- set_addr $I10, rxcap_296_fail
- rx292_cur."!mark_push"(0, rx292_pos, $I10)
+ set_addr $I10, rxcap_299_fail
+ rx295_cur."!mark_push"(0, rx295_pos, $I10)
# rx literal "repeat"
- add $I11, rx292_pos, 6
- gt $I11, rx292_eos, rx292_fail
- sub $I11, rx292_pos, rx292_off
- substr $S10, rx292_tgt, $I11, 6
- ne $S10, "repeat", rx292_fail
- add rx292_pos, 6
- set_addr $I10, rxcap_296_fail
- ($I12, $I11) = rx292_cur."!mark_peek"($I10)
- rx292_cur."!cursor_pos"($I11)
- ($P10) = rx292_cur."!cursor_start"()
- $P10."!cursor_pass"(rx292_pos, "")
- rx292_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx295_pos, 6
+ gt $I11, rx295_eos, rx295_fail
+ sub $I11, rx295_pos, rx295_off
+ substr $S10, rx295_tgt, $I11, 6
+ ne $S10, "repeat", rx295_fail
+ add rx295_pos, 6
+ set_addr $I10, rxcap_299_fail
+ ($I12, $I11) = rx295_cur."!mark_peek"($I10)
+ rx295_cur."!cursor_pos"($I11)
+ ($P10) = rx295_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx295_pos, "")
+ rx295_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_296_done
- rxcap_296_fail:
- goto rx292_fail
- rxcap_296_done:
+ goto rxcap_299_done
+ rxcap_299_fail:
+ goto rx295_fail
+ rxcap_299_done:
# rx charclass s
- ge rx292_pos, rx292_eos, rx292_fail
- sub $I10, rx292_pos, rx292_off
- is_cclass $I11, 32, rx292_tgt, $I10
- unless $I11, rx292_fail
- inc rx292_pos
- # rx subrule "ws" subtype=method negate=
- rx292_cur."!cursor_pos"(rx292_pos)
- $P10 = rx292_cur."ws"()
- unless $P10, rx292_fail
- rx292_pos = $P10."pos"()
- alt298_0:
-.annotate "line", 169
- set_addr $I10, alt298_1
- rx292_cur."!mark_push"(0, rx292_pos, $I10)
-.annotate "line", 170
- # rx subrule "ws" subtype=method negate=
- rx292_cur."!cursor_pos"(rx292_pos)
- $P10 = rx292_cur."ws"()
- unless $P10, rx292_fail
- rx292_pos = $P10."pos"()
+ ge rx295_pos, rx295_eos, rx295_fail
+ sub $I10, rx295_pos, rx295_off
+ is_cclass $I11, 32, rx295_tgt, $I10
+ unless $I11, rx295_fail
+ inc rx295_pos
+ # rx subrule "ws" subtype=method negate=
+ rx295_cur."!cursor_pos"(rx295_pos)
+ $P10 = rx295_cur."ws"()
+ unless $P10, rx295_fail
+ rx295_pos = $P10."pos"()
+ alt301_0:
+.annotate "line", 173
+ set_addr $I10, alt301_1
+ rx295_cur."!mark_push"(0, rx295_pos, $I10)
+.annotate "line", 174
+ # rx subrule "ws" subtype=method negate=
+ rx295_cur."!cursor_pos"(rx295_pos)
+ $P10 = rx295_cur."ws"()
+ unless $P10, rx295_fail
+ rx295_pos = $P10."pos"()
# rx subcapture "wu"
- set_addr $I10, rxcap_301_fail
- rx292_cur."!mark_push"(0, rx292_pos, $I10)
- alt300_0:
- set_addr $I10, alt300_1
- rx292_cur."!mark_push"(0, rx292_pos, $I10)
+ set_addr $I10, rxcap_304_fail
+ rx295_cur."!mark_push"(0, rx295_pos, $I10)
+ alt303_0:
+ set_addr $I10, alt303_1
+ rx295_cur."!mark_push"(0, rx295_pos, $I10)
# rx literal "while"
- add $I11, rx292_pos, 5
- gt $I11, rx292_eos, rx292_fail
- sub $I11, rx292_pos, rx292_off
- substr $S10, rx292_tgt, $I11, 5
- ne $S10, "while", rx292_fail
- add rx292_pos, 5
- goto alt300_end
- alt300_1:
+ add $I11, rx295_pos, 5
+ gt $I11, rx295_eos, rx295_fail
+ sub $I11, rx295_pos, rx295_off
+ substr $S10, rx295_tgt, $I11, 5
+ ne $S10, "while", rx295_fail
+ add rx295_pos, 5
+ goto alt303_end
+ alt303_1:
# rx literal "until"
- add $I11, rx292_pos, 5
- gt $I11, rx292_eos, rx292_fail
- sub $I11, rx292_pos, rx292_off
- substr $S10, rx292_tgt, $I11, 5
- ne $S10, "until", rx292_fail
- add rx292_pos, 5
- alt300_end:
- set_addr $I10, rxcap_301_fail
- ($I12, $I11) = rx292_cur."!mark_peek"($I10)
- rx292_cur."!cursor_pos"($I11)
- ($P10) = rx292_cur."!cursor_start"()
- $P10."!cursor_pass"(rx292_pos, "")
- rx292_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx295_pos, 5
+ gt $I11, rx295_eos, rx295_fail
+ sub $I11, rx295_pos, rx295_off
+ substr $S10, rx295_tgt, $I11, 5
+ ne $S10, "until", rx295_fail
+ add rx295_pos, 5
+ alt303_end:
+ set_addr $I10, rxcap_304_fail
+ ($I12, $I11) = rx295_cur."!mark_peek"($I10)
+ rx295_cur."!cursor_pos"($I11)
+ ($P10) = rx295_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx295_pos, "")
+ rx295_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("wu")
- goto rxcap_301_done
- rxcap_301_fail:
- goto rx292_fail
- rxcap_301_done:
+ goto rxcap_304_done
+ rxcap_304_fail:
+ goto rx295_fail
+ rxcap_304_done:
# rx charclass s
- ge rx292_pos, rx292_eos, rx292_fail
- sub $I10, rx292_pos, rx292_off
- is_cclass $I11, 32, rx292_tgt, $I10
- unless $I11, rx292_fail
- inc rx292_pos
- # rx subrule "ws" subtype=method negate=
- rx292_cur."!cursor_pos"(rx292_pos)
- $P10 = rx292_cur."ws"()
- unless $P10, rx292_fail
- rx292_pos = $P10."pos"()
+ ge rx295_pos, rx295_eos, rx295_fail
+ sub $I10, rx295_pos, rx295_off
+ is_cclass $I11, 32, rx295_tgt, $I10
+ unless $I11, rx295_fail
+ inc rx295_pos
+ # rx subrule "ws" subtype=method negate=
+ rx295_cur."!cursor_pos"(rx295_pos)
+ $P10 = rx295_cur."ws"()
+ unless $P10, rx295_fail
+ rx295_pos = $P10."pos"()
# rx subrule "xblock" subtype=capture negate=
- rx292_cur."!cursor_pos"(rx292_pos)
- $P10 = rx292_cur."xblock"()
- unless $P10, rx292_fail
- rx292_cur."!mark_push"(0, -1, 0, $P10)
+ rx295_cur."!cursor_pos"(rx295_pos)
+ $P10 = rx295_cur."xblock"()
+ unless $P10, rx295_fail
+ rx295_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("xblock")
- rx292_pos = $P10."pos"()
+ rx295_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx292_cur."!cursor_pos"(rx292_pos)
- $P10 = rx292_cur."ws"()
- unless $P10, rx292_fail
- rx292_pos = $P10."pos"()
- goto alt298_end
- alt298_1:
-.annotate "line", 171
+ rx295_cur."!cursor_pos"(rx295_pos)
+ $P10 = rx295_cur."ws"()
+ unless $P10, rx295_fail
+ rx295_pos = $P10."pos"()
+ goto alt301_end
+ alt301_1:
+.annotate "line", 175
# rx subrule "ws" subtype=method negate=
- rx292_cur."!cursor_pos"(rx292_pos)
- $P10 = rx292_cur."ws"()
- unless $P10, rx292_fail
- rx292_pos = $P10."pos"()
+ rx295_cur."!cursor_pos"(rx295_pos)
+ $P10 = rx295_cur."ws"()
+ unless $P10, rx295_fail
+ rx295_pos = $P10."pos"()
# rx subrule "pblock" subtype=capture negate=
- rx292_cur."!cursor_pos"(rx292_pos)
- $P10 = rx292_cur."pblock"()
- unless $P10, rx292_fail
- rx292_cur."!mark_push"(0, -1, 0, $P10)
+ rx295_cur."!cursor_pos"(rx295_pos)
+ $P10 = rx295_cur."pblock"()
+ unless $P10, rx295_fail
+ rx295_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("pblock")
- rx292_pos = $P10."pos"()
+ rx295_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx292_cur."!cursor_pos"(rx292_pos)
- $P10 = rx292_cur."ws"()
- unless $P10, rx292_fail
- rx292_pos = $P10."pos"()
+ rx295_cur."!cursor_pos"(rx295_pos)
+ $P10 = rx295_cur."ws"()
+ unless $P10, rx295_fail
+ rx295_pos = $P10."pos"()
# rx subcapture "wu"
- set_addr $I10, rxcap_307_fail
- rx292_cur."!mark_push"(0, rx292_pos, $I10)
- alt306_0:
- set_addr $I10, alt306_1
- rx292_cur."!mark_push"(0, rx292_pos, $I10)
+ set_addr $I10, rxcap_310_fail
+ rx295_cur."!mark_push"(0, rx295_pos, $I10)
+ alt309_0:
+ set_addr $I10, alt309_1
+ rx295_cur."!mark_push"(0, rx295_pos, $I10)
# rx literal "while"
- add $I11, rx292_pos, 5
- gt $I11, rx292_eos, rx292_fail
- sub $I11, rx292_pos, rx292_off
- substr $S10, rx292_tgt, $I11, 5
- ne $S10, "while", rx292_fail
- add rx292_pos, 5
- goto alt306_end
- alt306_1:
+ add $I11, rx295_pos, 5
+ gt $I11, rx295_eos, rx295_fail
+ sub $I11, rx295_pos, rx295_off
+ substr $S10, rx295_tgt, $I11, 5
+ ne $S10, "while", rx295_fail
+ add rx295_pos, 5
+ goto alt309_end
+ alt309_1:
# rx literal "until"
- add $I11, rx292_pos, 5
- gt $I11, rx292_eos, rx292_fail
- sub $I11, rx292_pos, rx292_off
- substr $S10, rx292_tgt, $I11, 5
- ne $S10, "until", rx292_fail
- add rx292_pos, 5
- alt306_end:
- set_addr $I10, rxcap_307_fail
- ($I12, $I11) = rx292_cur."!mark_peek"($I10)
- rx292_cur."!cursor_pos"($I11)
- ($P10) = rx292_cur."!cursor_start"()
- $P10."!cursor_pass"(rx292_pos, "")
- rx292_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx295_pos, 5
+ gt $I11, rx295_eos, rx295_fail
+ sub $I11, rx295_pos, rx295_off
+ substr $S10, rx295_tgt, $I11, 5
+ ne $S10, "until", rx295_fail
+ add rx295_pos, 5
+ alt309_end:
+ set_addr $I10, rxcap_310_fail
+ ($I12, $I11) = rx295_cur."!mark_peek"($I10)
+ rx295_cur."!cursor_pos"($I11)
+ ($P10) = rx295_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx295_pos, "")
+ rx295_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("wu")
- goto rxcap_307_done
- rxcap_307_fail:
- goto rx292_fail
- rxcap_307_done:
+ goto rxcap_310_done
+ rxcap_310_fail:
+ goto rx295_fail
+ rxcap_310_done:
# rx charclass s
- ge rx292_pos, rx292_eos, rx292_fail
- sub $I10, rx292_pos, rx292_off
- is_cclass $I11, 32, rx292_tgt, $I10
- unless $I11, rx292_fail
- inc rx292_pos
- # rx subrule "ws" subtype=method negate=
- rx292_cur."!cursor_pos"(rx292_pos)
- $P10 = rx292_cur."ws"()
- unless $P10, rx292_fail
- rx292_pos = $P10."pos"()
+ ge rx295_pos, rx295_eos, rx295_fail
+ sub $I10, rx295_pos, rx295_off
+ is_cclass $I11, 32, rx295_tgt, $I10
+ unless $I11, rx295_fail
+ inc rx295_pos
+ # rx subrule "ws" subtype=method negate=
+ rx295_cur."!cursor_pos"(rx295_pos)
+ $P10 = rx295_cur."ws"()
+ unless $P10, rx295_fail
+ rx295_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx292_cur."!cursor_pos"(rx292_pos)
- $P10 = rx292_cur."EXPR"()
- unless $P10, rx292_fail
- rx292_cur."!mark_push"(0, -1, 0, $P10)
+ rx295_cur."!cursor_pos"(rx295_pos)
+ $P10 = rx295_cur."EXPR"()
+ unless $P10, rx295_fail
+ rx295_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx292_pos = $P10."pos"()
+ rx295_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx292_cur."!cursor_pos"(rx292_pos)
- $P10 = rx292_cur."ws"()
- unless $P10, rx292_fail
- rx292_pos = $P10."pos"()
- alt298_end:
-.annotate "line", 172
+ rx295_cur."!cursor_pos"(rx295_pos)
+ $P10 = rx295_cur."ws"()
+ unless $P10, rx295_fail
+ rx295_pos = $P10."pos"()
+ alt301_end:
+.annotate "line", 176
# rx subrule "ws" subtype=method negate=
- rx292_cur."!cursor_pos"(rx292_pos)
- $P10 = rx292_cur."ws"()
- unless $P10, rx292_fail
- rx292_pos = $P10."pos"()
-.annotate "line", 167
+ rx295_cur."!cursor_pos"(rx295_pos)
+ $P10 = rx295_cur."ws"()
+ unless $P10, rx295_fail
+ rx295_pos = $P10."pos"()
+.annotate "line", 171
# rx pass
- rx292_cur."!cursor_pass"(rx292_pos, "statement_control:sym<repeat>")
- rx292_cur."!cursor_debug"("PASS ", "statement_control:sym<repeat>", " at pos=", rx292_pos)
- .return (rx292_cur)
- rx292_fail:
+ rx295_cur."!cursor_pass"(rx295_pos, "statement_control:sym<repeat>")
+ rx295_cur."!cursor_debug"("PASS ", "statement_control:sym<repeat>", " at pos=", rx295_pos)
+ .return (rx295_cur)
+ rx295_fail:
.annotate "line", 4
- (rx292_rep, rx292_pos, $I10, $P10) = rx292_cur."!mark_fail"(0)
- lt rx292_pos, -1, rx292_done
- eq rx292_pos, -1, rx292_fail
+ (rx295_rep, rx295_pos, $I10, $P10) = rx295_cur."!mark_fail"(0)
+ lt rx295_pos, -1, rx295_done
+ eq rx295_pos, -1, rx295_fail
jump $I10
- rx292_done:
- rx292_cur."!cursor_fail"()
- rx292_cur."!cursor_debug"("FAIL ", "statement_control:sym<repeat>")
- .return (rx292_cur)
+ rx295_done:
+ rx295_cur."!cursor_fail"()
+ rx295_cur."!cursor_debug"("FAIL ", "statement_control:sym<repeat>")
+ .return (rx295_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<repeat>" :subid("68_1267204702.05125") :method
+.sub "!PREFIX__statement_control:sym<repeat>" :subid("68_1271336396.90314") :method
.annotate "line", 4
- new $P294, "ResizablePMCArray"
- push $P294, "repeat"
- .return ($P294)
+ new $P297, "ResizablePMCArray"
+ push $P297, "repeat"
+ .return ($P297)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<for>" :subid("69_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "statement_control:sym<for>" :subid("69_1271336396.90314") :method :outer("11_1271336396.90314")
.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<for>")
- .lex unicode:"$\x{a2}", rx312_cur
- .local pmc match
- .lex "$/", match
- length rx312_eos, rx312_tgt
- set rx312_off, 0
- lt rx312_pos, 2, rx312_start
- sub rx312_off, rx312_pos, 1
- substr rx312_tgt, rx312_tgt, rx312_off
- rx312_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan315_done
- goto rxscan315_scan
- rxscan315_loop:
- ($P10) = rx312_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:
-.annotate "line", 176
+ .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 ", "statement_control:sym<for>")
+ .lex unicode:"$\x{a2}", rx315_cur
+ .local pmc match
+ .lex "$/", match
+ length rx315_eos, rx315_tgt
+ set rx315_off, 0
+ lt rx315_pos, 2, rx315_start
+ sub rx315_off, rx315_pos, 1
+ substr rx315_tgt, rx315_tgt, rx315_off
+ rx315_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan318_done
+ goto rxscan318_scan
+ rxscan318_loop:
+ ($P10) = rx315_cur."from"()
+ inc $P10
+ set rx315_pos, $P10
+ ge rx315_pos, rx315_eos, rxscan318_done
+ rxscan318_scan:
+ set_addr $I10, rxscan318_loop
+ rx315_cur."!mark_push"(0, rx315_pos, $I10)
+ rxscan318_done:
+.annotate "line", 180
# rx subcapture "sym"
- set_addr $I10, rxcap_316_fail
- rx312_cur."!mark_push"(0, rx312_pos, $I10)
+ set_addr $I10, rxcap_319_fail
+ rx315_cur."!mark_push"(0, rx315_pos, $I10)
# rx literal "for"
- add $I11, rx312_pos, 3
- gt $I11, rx312_eos, rx312_fail
- sub $I11, rx312_pos, rx312_off
- substr $S10, rx312_tgt, $I11, 3
- ne $S10, "for", rx312_fail
- add rx312_pos, 3
- 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, rx315_pos, 3
+ gt $I11, rx315_eos, rx315_fail
+ sub $I11, rx315_pos, rx315_off
+ substr $S10, rx315_tgt, $I11, 3
+ ne $S10, "for", rx315_fail
+ add rx315_pos, 3
+ set_addr $I10, rxcap_319_fail
+ ($I12, $I11) = rx315_cur."!mark_peek"($I10)
+ rx315_cur."!cursor_pos"($I11)
+ ($P10) = rx315_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx315_pos, "")
+ rx315_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_319_done
+ rxcap_319_fail:
+ goto rx315_fail
+ rxcap_319_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"()
-.annotate "line", 177
+ ge rx315_pos, rx315_eos, rx315_fail
+ sub $I10, rx315_pos, rx315_off
+ is_cclass $I11, 32, rx315_tgt, $I10
+ unless $I11, rx315_fail
+ inc rx315_pos
+ # rx subrule "ws" subtype=method negate=
+ rx315_cur."!cursor_pos"(rx315_pos)
+ $P10 = rx315_cur."ws"()
+ unless $P10, rx315_fail
+ rx315_pos = $P10."pos"()
+.annotate "line", 181
# 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)
+ rx315_cur."!cursor_pos"(rx315_pos)
+ $P10 = rx315_cur."xblock"()
+ unless $P10, rx315_fail
+ rx315_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("xblock")
- rx312_pos = $P10."pos"()
+ rx315_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"()
-.annotate "line", 175
+ rx315_cur."!cursor_pos"(rx315_pos)
+ $P10 = rx315_cur."ws"()
+ unless $P10, rx315_fail
+ rx315_pos = $P10."pos"()
+.annotate "line", 179
# rx pass
- rx312_cur."!cursor_pass"(rx312_pos, "statement_control:sym<for>")
- rx312_cur."!cursor_debug"("PASS ", "statement_control:sym<for>", " at pos=", rx312_pos)
- .return (rx312_cur)
- rx312_fail:
+ rx315_cur."!cursor_pass"(rx315_pos, "statement_control:sym<for>")
+ rx315_cur."!cursor_debug"("PASS ", "statement_control:sym<for>", " at pos=", rx315_pos)
+ .return (rx315_cur)
+ rx315_fail:
.annotate "line", 4
- (rx312_rep, rx312_pos, $I10, $P10) = rx312_cur."!mark_fail"(0)
- lt rx312_pos, -1, rx312_done
- eq rx312_pos, -1, rx312_fail
+ (rx315_rep, rx315_pos, $I10, $P10) = rx315_cur."!mark_fail"(0)
+ lt rx315_pos, -1, rx315_done
+ eq rx315_pos, -1, rx315_fail
jump $I10
- rx312_done:
- rx312_cur."!cursor_fail"()
- rx312_cur."!cursor_debug"("FAIL ", "statement_control:sym<for>")
- .return (rx312_cur)
+ rx315_done:
+ rx315_cur."!cursor_fail"()
+ rx315_cur."!cursor_debug"("FAIL ", "statement_control:sym<for>")
+ .return (rx315_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<for>" :subid("70_1267204702.05125") :method
+.sub "!PREFIX__statement_control:sym<for>" :subid("70_1271336396.90314") :method
.annotate "line", 4
- new $P314, "ResizablePMCArray"
- push $P314, "for"
- .return ($P314)
+ new $P317, "ResizablePMCArray"
+ push $P317, "for"
+ .return ($P317)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CATCH>" :subid("71_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "statement_control:sym<CATCH>" :subid("71_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx320_tgt
- .local int rx320_pos
- .local int rx320_off
- .local int rx320_eos
- .local int rx320_rep
- .local pmc rx320_cur
- (rx320_cur, rx320_pos, rx320_tgt) = self."!cursor_start"()
- rx320_cur."!cursor_debug"("START ", "statement_control:sym<CATCH>")
- .lex unicode:"$\x{a2}", rx320_cur
+ .local string rx323_tgt
+ .local int rx323_pos
+ .local int rx323_off
+ .local int rx323_eos
+ .local int rx323_rep
+ .local pmc rx323_cur
+ (rx323_cur, rx323_pos, rx323_tgt) = self."!cursor_start"()
+ rx323_cur."!cursor_debug"("START ", "statement_control:sym<CATCH>")
+ .lex unicode:"$\x{a2}", rx323_cur
.local pmc match
.lex "$/", match
- length rx320_eos, rx320_tgt
- set rx320_off, 0
- lt rx320_pos, 2, rx320_start
- sub rx320_off, rx320_pos, 1
- substr rx320_tgt, rx320_tgt, rx320_off
- rx320_start:
+ length rx323_eos, rx323_tgt
+ set rx323_off, 0
+ lt rx323_pos, 2, rx323_start
+ sub rx323_off, rx323_pos, 1
+ substr rx323_tgt, rx323_tgt, rx323_off
+ rx323_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan323_done
- goto rxscan323_scan
- rxscan323_loop:
- ($P10) = rx320_cur."from"()
+ ne $I10, -1, rxscan326_done
+ goto rxscan326_scan
+ rxscan326_loop:
+ ($P10) = rx323_cur."from"()
inc $P10
- set rx320_pos, $P10
- ge rx320_pos, rx320_eos, rxscan323_done
- rxscan323_scan:
- set_addr $I10, rxscan323_loop
- rx320_cur."!mark_push"(0, rx320_pos, $I10)
- rxscan323_done:
-.annotate "line", 181
+ set rx323_pos, $P10
+ ge rx323_pos, rx323_eos, rxscan326_done
+ rxscan326_scan:
+ set_addr $I10, rxscan326_loop
+ rx323_cur."!mark_push"(0, rx323_pos, $I10)
+ rxscan326_done:
+.annotate "line", 185
# rx subcapture "sym"
- set_addr $I10, rxcap_324_fail
- rx320_cur."!mark_push"(0, rx320_pos, $I10)
+ set_addr $I10, rxcap_327_fail
+ rx323_cur."!mark_push"(0, rx323_pos, $I10)
# rx literal "CATCH"
- add $I11, rx320_pos, 5
- gt $I11, rx320_eos, rx320_fail
- sub $I11, rx320_pos, rx320_off
- substr $S10, rx320_tgt, $I11, 5
- ne $S10, "CATCH", rx320_fail
- add rx320_pos, 5
- set_addr $I10, rxcap_324_fail
- ($I12, $I11) = rx320_cur."!mark_peek"($I10)
- rx320_cur."!cursor_pos"($I11)
- ($P10) = rx320_cur."!cursor_start"()
- $P10."!cursor_pass"(rx320_pos, "")
- rx320_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx323_pos, 5
+ gt $I11, rx323_eos, rx323_fail
+ sub $I11, rx323_pos, rx323_off
+ substr $S10, rx323_tgt, $I11, 5
+ ne $S10, "CATCH", rx323_fail
+ add rx323_pos, 5
+ set_addr $I10, rxcap_327_fail
+ ($I12, $I11) = rx323_cur."!mark_peek"($I10)
+ rx323_cur."!cursor_pos"($I11)
+ ($P10) = rx323_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx323_pos, "")
+ rx323_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_324_done
- rxcap_324_fail:
- goto rx320_fail
- rxcap_324_done:
+ goto rxcap_327_done
+ rxcap_327_fail:
+ goto rx323_fail
+ rxcap_327_done:
# rx charclass s
- ge rx320_pos, rx320_eos, rx320_fail
- sub $I10, rx320_pos, rx320_off
- is_cclass $I11, 32, rx320_tgt, $I10
- unless $I11, rx320_fail
- inc rx320_pos
- # rx subrule "ws" subtype=method negate=
- rx320_cur."!cursor_pos"(rx320_pos)
- $P10 = rx320_cur."ws"()
- unless $P10, rx320_fail
- rx320_pos = $P10."pos"()
-.annotate "line", 182
+ ge rx323_pos, rx323_eos, rx323_fail
+ sub $I10, rx323_pos, rx323_off
+ is_cclass $I11, 32, rx323_tgt, $I10
+ unless $I11, rx323_fail
+ inc rx323_pos
+ # rx subrule "ws" subtype=method negate=
+ rx323_cur."!cursor_pos"(rx323_pos)
+ $P10 = rx323_cur."ws"()
+ unless $P10, rx323_fail
+ rx323_pos = $P10."pos"()
+.annotate "line", 186
# rx subrule "block" subtype=capture negate=
- rx320_cur."!cursor_pos"(rx320_pos)
- $P10 = rx320_cur."block"()
- unless $P10, rx320_fail
- rx320_cur."!mark_push"(0, -1, 0, $P10)
+ rx323_cur."!cursor_pos"(rx323_pos)
+ $P10 = rx323_cur."block"()
+ unless $P10, rx323_fail
+ rx323_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("block")
- rx320_pos = $P10."pos"()
+ rx323_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx320_cur."!cursor_pos"(rx320_pos)
- $P10 = rx320_cur."ws"()
- unless $P10, rx320_fail
- rx320_pos = $P10."pos"()
-.annotate "line", 180
+ rx323_cur."!cursor_pos"(rx323_pos)
+ $P10 = rx323_cur."ws"()
+ unless $P10, rx323_fail
+ rx323_pos = $P10."pos"()
+.annotate "line", 184
# rx pass
- rx320_cur."!cursor_pass"(rx320_pos, "statement_control:sym<CATCH>")
- rx320_cur."!cursor_debug"("PASS ", "statement_control:sym<CATCH>", " at pos=", rx320_pos)
- .return (rx320_cur)
- rx320_fail:
+ rx323_cur."!cursor_pass"(rx323_pos, "statement_control:sym<CATCH>")
+ rx323_cur."!cursor_debug"("PASS ", "statement_control:sym<CATCH>", " at pos=", rx323_pos)
+ .return (rx323_cur)
+ rx323_fail:
.annotate "line", 4
- (rx320_rep, rx320_pos, $I10, $P10) = rx320_cur."!mark_fail"(0)
- lt rx320_pos, -1, rx320_done
- eq rx320_pos, -1, rx320_fail
+ (rx323_rep, rx323_pos, $I10, $P10) = rx323_cur."!mark_fail"(0)
+ lt rx323_pos, -1, rx323_done
+ eq rx323_pos, -1, rx323_fail
jump $I10
- rx320_done:
- rx320_cur."!cursor_fail"()
- rx320_cur."!cursor_debug"("FAIL ", "statement_control:sym<CATCH>")
- .return (rx320_cur)
+ rx323_done:
+ rx323_cur."!cursor_fail"()
+ rx323_cur."!cursor_debug"("FAIL ", "statement_control:sym<CATCH>")
+ .return (rx323_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CATCH>" :subid("72_1267204702.05125") :method
+.sub "!PREFIX__statement_control:sym<CATCH>" :subid("72_1271336396.90314") :method
.annotate "line", 4
- new $P322, "ResizablePMCArray"
- push $P322, "CATCH"
- .return ($P322)
+ new $P325, "ResizablePMCArray"
+ push $P325, "CATCH"
+ .return ($P325)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CONTROL>" :subid("73_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "statement_control:sym<CONTROL>" :subid("73_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx328_tgt
- .local int rx328_pos
- .local int rx328_off
- .local int rx328_eos
- .local int rx328_rep
- .local pmc rx328_cur
- (rx328_cur, rx328_pos, rx328_tgt) = self."!cursor_start"()
- rx328_cur."!cursor_debug"("START ", "statement_control:sym<CONTROL>")
- .lex unicode:"$\x{a2}", rx328_cur
+ .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) = self."!cursor_start"()
+ rx331_cur."!cursor_debug"("START ", "statement_control:sym<CONTROL>")
+ .lex unicode:"$\x{a2}", rx331_cur
.local pmc match
.lex "$/", match
- length rx328_eos, rx328_tgt
- set rx328_off, 0
- lt rx328_pos, 2, rx328_start
- sub rx328_off, rx328_pos, 1
- substr rx328_tgt, rx328_tgt, rx328_off
- rx328_start:
+ length rx331_eos, rx331_tgt
+ 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:
$I10 = self.'from'()
- ne $I10, -1, rxscan331_done
- goto rxscan331_scan
- rxscan331_loop:
- ($P10) = rx328_cur."from"()
+ ne $I10, -1, rxscan334_done
+ goto rxscan334_scan
+ rxscan334_loop:
+ ($P10) = rx331_cur."from"()
inc $P10
- set rx328_pos, $P10
- ge rx328_pos, rx328_eos, rxscan331_done
- rxscan331_scan:
- set_addr $I10, rxscan331_loop
- rx328_cur."!mark_push"(0, rx328_pos, $I10)
- rxscan331_done:
-.annotate "line", 186
+ 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", 190
# rx subcapture "sym"
- set_addr $I10, rxcap_332_fail
- rx328_cur."!mark_push"(0, rx328_pos, $I10)
+ set_addr $I10, rxcap_335_fail
+ rx331_cur."!mark_push"(0, rx331_pos, $I10)
# rx literal "CONTROL"
- add $I11, rx328_pos, 7
- gt $I11, rx328_eos, rx328_fail
- sub $I11, rx328_pos, rx328_off
- substr $S10, rx328_tgt, $I11, 7
- ne $S10, "CONTROL", rx328_fail
- add rx328_pos, 7
- set_addr $I10, rxcap_332_fail
- ($I12, $I11) = rx328_cur."!mark_peek"($I10)
- rx328_cur."!cursor_pos"($I11)
- ($P10) = rx328_cur."!cursor_start"()
- $P10."!cursor_pass"(rx328_pos, "")
- rx328_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx331_pos, 7
+ gt $I11, rx331_eos, rx331_fail
+ sub $I11, rx331_pos, rx331_off
+ substr $S10, rx331_tgt, $I11, 7
+ ne $S10, "CONTROL", rx331_fail
+ add rx331_pos, 7
+ 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_332_done
- rxcap_332_fail:
- goto rx328_fail
- rxcap_332_done:
+ goto rxcap_335_done
+ rxcap_335_fail:
+ goto rx331_fail
+ rxcap_335_done:
# rx charclass s
- ge rx328_pos, rx328_eos, rx328_fail
- sub $I10, rx328_pos, rx328_off
- is_cclass $I11, 32, rx328_tgt, $I10
- unless $I11, rx328_fail
- inc rx328_pos
- # rx subrule "ws" subtype=method negate=
- rx328_cur."!cursor_pos"(rx328_pos)
- $P10 = rx328_cur."ws"()
- unless $P10, rx328_fail
- rx328_pos = $P10."pos"()
-.annotate "line", 187
+ ge rx331_pos, rx331_eos, rx331_fail
+ sub $I10, rx331_pos, rx331_off
+ is_cclass $I11, 32, rx331_tgt, $I10
+ unless $I11, rx331_fail
+ inc rx331_pos
+ # rx subrule "ws" subtype=method negate=
+ rx331_cur."!cursor_pos"(rx331_pos)
+ $P10 = rx331_cur."ws"()
+ unless $P10, rx331_fail
+ rx331_pos = $P10."pos"()
+.annotate "line", 191
# rx subrule "block" subtype=capture negate=
- rx328_cur."!cursor_pos"(rx328_pos)
- $P10 = rx328_cur."block"()
- unless $P10, rx328_fail
- rx328_cur."!mark_push"(0, -1, 0, $P10)
+ rx331_cur."!cursor_pos"(rx331_pos)
+ $P10 = rx331_cur."block"()
+ unless $P10, rx331_fail
+ rx331_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("block")
- rx328_pos = $P10."pos"()
+ rx331_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx328_cur."!cursor_pos"(rx328_pos)
- $P10 = rx328_cur."ws"()
- unless $P10, rx328_fail
- rx328_pos = $P10."pos"()
-.annotate "line", 185
+ rx331_cur."!cursor_pos"(rx331_pos)
+ $P10 = rx331_cur."ws"()
+ unless $P10, rx331_fail
+ rx331_pos = $P10."pos"()
+.annotate "line", 189
# rx pass
- rx328_cur."!cursor_pass"(rx328_pos, "statement_control:sym<CONTROL>")
- rx328_cur."!cursor_debug"("PASS ", "statement_control:sym<CONTROL>", " at pos=", rx328_pos)
- .return (rx328_cur)
- rx328_fail:
+ rx331_cur."!cursor_pass"(rx331_pos, "statement_control:sym<CONTROL>")
+ rx331_cur."!cursor_debug"("PASS ", "statement_control:sym<CONTROL>", " at pos=", rx331_pos)
+ .return (rx331_cur)
+ rx331_fail:
.annotate "line", 4
- (rx328_rep, rx328_pos, $I10, $P10) = rx328_cur."!mark_fail"(0)
- lt rx328_pos, -1, rx328_done
- eq rx328_pos, -1, rx328_fail
+ (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
- rx328_done:
- rx328_cur."!cursor_fail"()
- rx328_cur."!cursor_debug"("FAIL ", "statement_control:sym<CONTROL>")
- .return (rx328_cur)
+ rx331_done:
+ rx331_cur."!cursor_fail"()
+ rx331_cur."!cursor_debug"("FAIL ", "statement_control:sym<CONTROL>")
+ .return (rx331_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CONTROL>" :subid("74_1267204702.05125") :method
+.sub "!PREFIX__statement_control:sym<CONTROL>" :subid("74_1271336396.90314") :method
.annotate "line", 4
- new $P330, "ResizablePMCArray"
- push $P330, "CONTROL"
- .return ($P330)
+ new $P333, "ResizablePMCArray"
+ push $P333, "CONTROL"
+ .return ($P333)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix" :subid("75_1267204702.05125") :method
-.annotate "line", 190
- $P336 = self."!protoregex"("statement_prefix")
- .return ($P336)
+.sub "statement_prefix" :subid("75_1271336396.90314") :method
+.annotate "line", 194
+ $P339 = self."!protoregex"("statement_prefix")
+ .return ($P339)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix" :subid("76_1267204702.05125") :method
-.annotate "line", 190
- $P338 = self."!PREFIX__!protoregex"("statement_prefix")
- .return ($P338)
+.sub "!PREFIX__statement_prefix" :subid("76_1271336396.90314") :method
+.annotate "line", 194
+ $P341 = self."!PREFIX__!protoregex"("statement_prefix")
+ .return ($P341)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<INIT>" :subid("77_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "statement_prefix:sym<INIT>" :subid("77_1271336396.90314") :method :outer("11_1271336396.90314")
.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_prefix:sym<INIT>")
- .lex unicode:"$\x{a2}", rx340_cur
- .local pmc match
- .lex "$/", match
- length rx340_eos, rx340_tgt
- set rx340_off, 0
- lt rx340_pos, 2, rx340_start
- sub rx340_off, rx340_pos, 1
- substr rx340_tgt, rx340_tgt, rx340_off
- rx340_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan344_done
- goto rxscan344_scan
- rxscan344_loop:
- ($P10) = rx340_cur."from"()
- inc $P10
- set rx340_pos, $P10
- ge rx340_pos, rx340_eos, rxscan344_done
- rxscan344_scan:
- set_addr $I10, rxscan344_loop
- rx340_cur."!mark_push"(0, rx340_pos, $I10)
- rxscan344_done:
-.annotate "line", 191
+ .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) = self."!cursor_start"()
+ rx343_cur."!cursor_debug"("START ", "statement_prefix:sym<INIT>")
+ .lex unicode:"$\x{a2}", rx343_cur
+ .local pmc match
+ .lex "$/", match
+ length rx343_eos, rx343_tgt
+ 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:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan347_done
+ goto rxscan347_scan
+ rxscan347_loop:
+ ($P10) = rx343_cur."from"()
+ inc $P10
+ set rx343_pos, $P10
+ ge rx343_pos, rx343_eos, rxscan347_done
+ rxscan347_scan:
+ set_addr $I10, rxscan347_loop
+ rx343_cur."!mark_push"(0, rx343_pos, $I10)
+ rxscan347_done:
+.annotate "line", 195
# rx subcapture "sym"
- set_addr $I10, rxcap_345_fail
- rx340_cur."!mark_push"(0, rx340_pos, $I10)
+ set_addr $I10, rxcap_348_fail
+ rx343_cur."!mark_push"(0, rx343_pos, $I10)
# rx literal "INIT"
- add $I11, rx340_pos, 4
- gt $I11, rx340_eos, rx340_fail
- sub $I11, rx340_pos, rx340_off
- substr $S10, rx340_tgt, $I11, 4
- ne $S10, "INIT", rx340_fail
- add rx340_pos, 4
- set_addr $I10, rxcap_345_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, rx343_pos, 4
+ gt $I11, rx343_eos, rx343_fail
+ sub $I11, rx343_pos, rx343_off
+ substr $S10, rx343_tgt, $I11, 4
+ ne $S10, "INIT", rx343_fail
+ add rx343_pos, 4
+ set_addr $I10, rxcap_348_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_345_done
- rxcap_345_fail:
- goto rx340_fail
- rxcap_345_done:
+ goto rxcap_348_done
+ rxcap_348_fail:
+ goto rx343_fail
+ rxcap_348_done:
# rx subrule "blorst" subtype=capture negate=
- rx340_cur."!cursor_pos"(rx340_pos)
- $P10 = rx340_cur."blorst"()
- unless $P10, rx340_fail
- rx340_cur."!mark_push"(0, -1, 0, $P10)
+ rx343_cur."!cursor_pos"(rx343_pos)
+ $P10 = rx343_cur."blorst"()
+ unless $P10, rx343_fail
+ rx343_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blorst")
- rx340_pos = $P10."pos"()
+ rx343_pos = $P10."pos"()
# rx pass
- rx340_cur."!cursor_pass"(rx340_pos, "statement_prefix:sym<INIT>")
- rx340_cur."!cursor_debug"("PASS ", "statement_prefix:sym<INIT>", " at pos=", rx340_pos)
- .return (rx340_cur)
- rx340_fail:
+ rx343_cur."!cursor_pass"(rx343_pos, "statement_prefix:sym<INIT>")
+ rx343_cur."!cursor_debug"("PASS ", "statement_prefix:sym<INIT>", " at pos=", rx343_pos)
+ .return (rx343_cur)
+ rx343_fail:
.annotate "line", 4
- (rx340_rep, rx340_pos, $I10, $P10) = rx340_cur."!mark_fail"(0)
- lt rx340_pos, -1, rx340_done
- eq rx340_pos, -1, rx340_fail
+ (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
- rx340_done:
- rx340_cur."!cursor_fail"()
- rx340_cur."!cursor_debug"("FAIL ", "statement_prefix:sym<INIT>")
- .return (rx340_cur)
+ rx343_done:
+ rx343_cur."!cursor_fail"()
+ rx343_cur."!cursor_debug"("FAIL ", "statement_prefix:sym<INIT>")
+ .return (rx343_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<INIT>" :subid("78_1267204702.05125") :method
+.sub "!PREFIX__statement_prefix:sym<INIT>" :subid("78_1271336396.90314") :method
.annotate "line", 4
- $P342 = self."!PREFIX__!subrule"("blorst", "INIT")
- new $P343, "ResizablePMCArray"
- push $P343, $P342
- .return ($P343)
+ $P345 = self."!PREFIX__!subrule"("blorst", "INIT")
+ new $P346, "ResizablePMCArray"
+ push $P346, $P345
+ .return ($P346)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<try>" :subid("79_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "statement_prefix:sym<try>" :subid("79_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .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 ", "statement_prefix:sym<try>")
- .lex unicode:"$\x{a2}", rx347_cur
- .local pmc match
- .lex "$/", match
- length rx347_eos, rx347_tgt
- 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, rxscan351_done
- goto rxscan351_scan
- rxscan351_loop:
- ($P10) = rx347_cur."from"()
- inc $P10
- set rx347_pos, $P10
- ge rx347_pos, rx347_eos, rxscan351_done
- rxscan351_scan:
- set_addr $I10, rxscan351_loop
- rx347_cur."!mark_push"(0, rx347_pos, $I10)
- rxscan351_done:
-.annotate "line", 194
+ .local string rx350_tgt
+ .local int rx350_pos
+ .local int rx350_off
+ .local int rx350_eos
+ .local int rx350_rep
+ .local pmc rx350_cur
+ (rx350_cur, rx350_pos, rx350_tgt) = self."!cursor_start"()
+ rx350_cur."!cursor_debug"("START ", "statement_prefix:sym<try>")
+ .lex unicode:"$\x{a2}", rx350_cur
+ .local pmc match
+ .lex "$/", match
+ length rx350_eos, rx350_tgt
+ set rx350_off, 0
+ lt rx350_pos, 2, rx350_start
+ sub rx350_off, rx350_pos, 1
+ substr rx350_tgt, rx350_tgt, rx350_off
+ rx350_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan354_done
+ goto rxscan354_scan
+ rxscan354_loop:
+ ($P10) = rx350_cur."from"()
+ inc $P10
+ set rx350_pos, $P10
+ ge rx350_pos, rx350_eos, rxscan354_done
+ rxscan354_scan:
+ set_addr $I10, rxscan354_loop
+ rx350_cur."!mark_push"(0, rx350_pos, $I10)
+ rxscan354_done:
+.annotate "line", 198
# rx subcapture "sym"
- set_addr $I10, rxcap_352_fail
- rx347_cur."!mark_push"(0, rx347_pos, $I10)
+ set_addr $I10, rxcap_355_fail
+ rx350_cur."!mark_push"(0, rx350_pos, $I10)
# rx literal "try"
- add $I11, rx347_pos, 3
- gt $I11, rx347_eos, rx347_fail
- sub $I11, rx347_pos, rx347_off
- substr $S10, rx347_tgt, $I11, 3
- ne $S10, "try", rx347_fail
- add rx347_pos, 3
- set_addr $I10, rxcap_352_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)
+ add $I11, rx350_pos, 3
+ gt $I11, rx350_eos, rx350_fail
+ sub $I11, rx350_pos, rx350_off
+ substr $S10, rx350_tgt, $I11, 3
+ ne $S10, "try", rx350_fail
+ add rx350_pos, 3
+ set_addr $I10, rxcap_355_fail
+ ($I12, $I11) = rx350_cur."!mark_peek"($I10)
+ rx350_cur."!cursor_pos"($I11)
+ ($P10) = rx350_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx350_pos, "")
+ rx350_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_352_done
- rxcap_352_fail:
- goto rx347_fail
- rxcap_352_done:
-.annotate "line", 195
+ goto rxcap_355_done
+ rxcap_355_fail:
+ goto rx350_fail
+ rxcap_355_done:
+.annotate "line", 199
# rx subrule "blorst" subtype=capture negate=
- rx347_cur."!cursor_pos"(rx347_pos)
- $P10 = rx347_cur."blorst"()
- unless $P10, rx347_fail
- rx347_cur."!mark_push"(0, -1, 0, $P10)
+ rx350_cur."!cursor_pos"(rx350_pos)
+ $P10 = rx350_cur."blorst"()
+ unless $P10, rx350_fail
+ rx350_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blorst")
- rx347_pos = $P10."pos"()
-.annotate "line", 193
+ rx350_pos = $P10."pos"()
+.annotate "line", 197
# rx pass
- rx347_cur."!cursor_pass"(rx347_pos, "statement_prefix:sym<try>")
- rx347_cur."!cursor_debug"("PASS ", "statement_prefix:sym<try>", " at pos=", rx347_pos)
- .return (rx347_cur)
- rx347_fail:
+ rx350_cur."!cursor_pass"(rx350_pos, "statement_prefix:sym<try>")
+ rx350_cur."!cursor_debug"("PASS ", "statement_prefix:sym<try>", " at pos=", rx350_pos)
+ .return (rx350_cur)
+ rx350_fail:
.annotate "line", 4
- (rx347_rep, rx347_pos, $I10, $P10) = rx347_cur."!mark_fail"(0)
- lt rx347_pos, -1, rx347_done
- eq rx347_pos, -1, rx347_fail
+ (rx350_rep, rx350_pos, $I10, $P10) = rx350_cur."!mark_fail"(0)
+ lt rx350_pos, -1, rx350_done
+ eq rx350_pos, -1, rx350_fail
jump $I10
- rx347_done:
- rx347_cur."!cursor_fail"()
- rx347_cur."!cursor_debug"("FAIL ", "statement_prefix:sym<try>")
- .return (rx347_cur)
+ rx350_done:
+ rx350_cur."!cursor_fail"()
+ rx350_cur."!cursor_debug"("FAIL ", "statement_prefix:sym<try>")
+ .return (rx350_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<try>" :subid("80_1267204702.05125") :method
+.sub "!PREFIX__statement_prefix:sym<try>" :subid("80_1271336396.90314") :method
.annotate "line", 4
- $P349 = self."!PREFIX__!subrule"("blorst", "try")
- new $P350, "ResizablePMCArray"
- push $P350, $P349
- .return ($P350)
+ $P352 = self."!PREFIX__!subrule"("blorst", "try")
+ new $P353, "ResizablePMCArray"
+ push $P353, $P352
+ .return ($P353)
.end
.namespace ["NQP";"Grammar"]
-.sub "blorst" :subid("81_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "blorst" :subid("81_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx354_tgt
- .local int rx354_pos
- .local int rx354_off
- .local int rx354_eos
- .local int rx354_rep
- .local pmc rx354_cur
- (rx354_cur, rx354_pos, rx354_tgt) = self."!cursor_start"()
- rx354_cur."!cursor_debug"("START ", "blorst")
- .lex unicode:"$\x{a2}", rx354_cur
+ .local string rx357_tgt
+ .local int rx357_pos
+ .local int rx357_off
+ .local int rx357_eos
+ .local int rx357_rep
+ .local pmc rx357_cur
+ (rx357_cur, rx357_pos, rx357_tgt) = self."!cursor_start"()
+ rx357_cur."!cursor_debug"("START ", "blorst")
+ .lex unicode:"$\x{a2}", rx357_cur
.local pmc match
.lex "$/", match
- length rx354_eos, rx354_tgt
- set rx354_off, 0
- lt rx354_pos, 2, rx354_start
- sub rx354_off, rx354_pos, 1
- substr rx354_tgt, rx354_tgt, rx354_off
- rx354_start:
+ length rx357_eos, rx357_tgt
+ set rx357_off, 0
+ lt rx357_pos, 2, rx357_start
+ sub rx357_off, rx357_pos, 1
+ substr rx357_tgt, rx357_tgt, rx357_off
+ rx357_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan357_done
- goto rxscan357_scan
- rxscan357_loop:
- ($P10) = rx354_cur."from"()
+ ne $I10, -1, rxscan360_done
+ goto rxscan360_scan
+ rxscan360_loop:
+ ($P10) = rx357_cur."from"()
inc $P10
- set rx354_pos, $P10
- ge rx354_pos, rx354_eos, rxscan357_done
- rxscan357_scan:
- set_addr $I10, rxscan357_loop
- rx354_cur."!mark_push"(0, rx354_pos, $I10)
- rxscan357_done:
-.annotate "line", 199
+ set rx357_pos, $P10
+ ge rx357_pos, rx357_eos, rxscan360_done
+ rxscan360_scan:
+ set_addr $I10, rxscan360_loop
+ rx357_cur."!mark_push"(0, rx357_pos, $I10)
+ rxscan360_done:
+.annotate "line", 203
# rx charclass s
- ge rx354_pos, rx354_eos, rx354_fail
- sub $I10, rx354_pos, rx354_off
- is_cclass $I11, 32, rx354_tgt, $I10
- unless $I11, rx354_fail
- inc rx354_pos
- # rx subrule "ws" subtype=method negate=
- rx354_cur."!cursor_pos"(rx354_pos)
- $P10 = rx354_cur."ws"()
- unless $P10, rx354_fail
- rx354_pos = $P10."pos"()
- alt358_0:
- set_addr $I10, alt358_1
- rx354_cur."!mark_push"(0, rx354_pos, $I10)
+ ge rx357_pos, rx357_eos, rx357_fail
+ sub $I10, rx357_pos, rx357_off
+ is_cclass $I11, 32, rx357_tgt, $I10
+ unless $I11, rx357_fail
+ inc rx357_pos
+ # rx subrule "ws" subtype=method negate=
+ rx357_cur."!cursor_pos"(rx357_pos)
+ $P10 = rx357_cur."ws"()
+ unless $P10, rx357_fail
+ rx357_pos = $P10."pos"()
+ alt361_0:
+ set_addr $I10, alt361_1
+ rx357_cur."!mark_push"(0, rx357_pos, $I10)
# rx enumcharlist negate=0 zerowidth
- ge rx354_pos, rx354_eos, rx354_fail
- sub $I10, rx354_pos, rx354_off
- substr $S10, rx354_tgt, $I10, 1
+ ge rx357_pos, rx357_eos, rx357_fail
+ sub $I10, rx357_pos, rx357_off
+ substr $S10, rx357_tgt, $I10, 1
index $I11, "{", $S10
- lt $I11, 0, rx354_fail
+ lt $I11, 0, rx357_fail
# rx subrule "block" subtype=capture negate=
- rx354_cur."!cursor_pos"(rx354_pos)
- $P10 = rx354_cur."block"()
- unless $P10, rx354_fail
- rx354_cur."!mark_push"(0, -1, 0, $P10)
+ rx357_cur."!cursor_pos"(rx357_pos)
+ $P10 = rx357_cur."block"()
+ unless $P10, rx357_fail
+ rx357_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("block")
- rx354_pos = $P10."pos"()
- goto alt358_end
- alt358_1:
+ rx357_pos = $P10."pos"()
+ goto alt361_end
+ alt361_1:
# rx subrule "statement" subtype=capture negate=
- rx354_cur."!cursor_pos"(rx354_pos)
- $P10 = rx354_cur."statement"()
- unless $P10, rx354_fail
- rx354_cur."!mark_push"(0, -1, 0, $P10)
+ rx357_cur."!cursor_pos"(rx357_pos)
+ $P10 = rx357_cur."statement"()
+ unless $P10, rx357_fail
+ rx357_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement")
- rx354_pos = $P10."pos"()
- alt358_end:
-.annotate "line", 198
+ rx357_pos = $P10."pos"()
+ alt361_end:
+.annotate "line", 202
# rx pass
- rx354_cur."!cursor_pass"(rx354_pos, "blorst")
- rx354_cur."!cursor_debug"("PASS ", "blorst", " at pos=", rx354_pos)
- .return (rx354_cur)
- rx354_fail:
+ rx357_cur."!cursor_pass"(rx357_pos, "blorst")
+ rx357_cur."!cursor_debug"("PASS ", "blorst", " at pos=", rx357_pos)
+ .return (rx357_cur)
+ rx357_fail:
.annotate "line", 4
- (rx354_rep, rx354_pos, $I10, $P10) = rx354_cur."!mark_fail"(0)
- lt rx354_pos, -1, rx354_done
- eq rx354_pos, -1, rx354_fail
+ (rx357_rep, rx357_pos, $I10, $P10) = rx357_cur."!mark_fail"(0)
+ lt rx357_pos, -1, rx357_done
+ eq rx357_pos, -1, rx357_fail
jump $I10
- rx354_done:
- rx354_cur."!cursor_fail"()
- rx354_cur."!cursor_debug"("FAIL ", "blorst")
- .return (rx354_cur)
+ rx357_done:
+ rx357_cur."!cursor_fail"()
+ rx357_cur."!cursor_debug"("FAIL ", "blorst")
+ .return (rx357_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blorst" :subid("82_1267204702.05125") :method
+.sub "!PREFIX__blorst" :subid("82_1271336396.90314") :method
.annotate "line", 4
- new $P356, "ResizablePMCArray"
- push $P356, ""
- .return ($P356)
+ new $P359, "ResizablePMCArray"
+ push $P359, ""
+ .return ($P359)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond" :subid("83_1267204702.05125") :method
-.annotate "line", 204
- $P360 = self."!protoregex"("statement_mod_cond")
- .return ($P360)
+.sub "statement_mod_cond" :subid("83_1271336396.90314") :method
+.annotate "line", 208
+ $P363 = self."!protoregex"("statement_mod_cond")
+ .return ($P363)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond" :subid("84_1267204702.05125") :method
-.annotate "line", 204
- $P362 = self."!PREFIX__!protoregex"("statement_mod_cond")
- .return ($P362)
+.sub "!PREFIX__statement_mod_cond" :subid("84_1271336396.90314") :method
+.annotate "line", 208
+ $P365 = self."!PREFIX__!protoregex"("statement_mod_cond")
+ .return ($P365)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<if>" :subid("85_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "statement_mod_cond:sym<if>" :subid("85_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx364_tgt
- .local int rx364_pos
- .local int rx364_off
- .local int rx364_eos
- .local int rx364_rep
- .local pmc rx364_cur
- (rx364_cur, rx364_pos, rx364_tgt) = self."!cursor_start"()
- rx364_cur."!cursor_debug"("START ", "statement_mod_cond:sym<if>")
- .lex unicode:"$\x{a2}", rx364_cur
- .local pmc match
- .lex "$/", match
- length rx364_eos, rx364_tgt
- set rx364_off, 0
- lt rx364_pos, 2, rx364_start
- sub rx364_off, rx364_pos, 1
- substr rx364_tgt, rx364_tgt, rx364_off
- rx364_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan367_done
- goto rxscan367_scan
- rxscan367_loop:
- ($P10) = rx364_cur."from"()
- inc $P10
- set rx364_pos, $P10
- ge rx364_pos, rx364_eos, rxscan367_done
- rxscan367_scan:
- set_addr $I10, rxscan367_loop
- rx364_cur."!mark_push"(0, rx364_pos, $I10)
- rxscan367_done:
-.annotate "line", 206
+ .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_mod_cond:sym<if>")
+ .lex unicode:"$\x{a2}", rx367_cur
+ .local pmc match
+ .lex "$/", match
+ length rx367_eos, rx367_tgt
+ 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, rxscan370_done
+ goto rxscan370_scan
+ rxscan370_loop:
+ ($P10) = rx367_cur."from"()
+ inc $P10
+ set rx367_pos, $P10
+ ge rx367_pos, rx367_eos, rxscan370_done
+ rxscan370_scan:
+ set_addr $I10, rxscan370_loop
+ rx367_cur."!mark_push"(0, rx367_pos, $I10)
+ rxscan370_done:
+.annotate "line", 210
# rx subcapture "sym"
- set_addr $I10, rxcap_368_fail
- rx364_cur."!mark_push"(0, rx364_pos, $I10)
+ set_addr $I10, rxcap_371_fail
+ rx367_cur."!mark_push"(0, rx367_pos, $I10)
# rx literal "if"
- add $I11, rx364_pos, 2
- gt $I11, rx364_eos, rx364_fail
- sub $I11, rx364_pos, rx364_off
- substr $S10, rx364_tgt, $I11, 2
- ne $S10, "if", rx364_fail
- add rx364_pos, 2
- set_addr $I10, rxcap_368_fail
- ($I12, $I11) = rx364_cur."!mark_peek"($I10)
- rx364_cur."!cursor_pos"($I11)
- ($P10) = rx364_cur."!cursor_start"()
- $P10."!cursor_pass"(rx364_pos, "")
- rx364_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx367_pos, 2
+ gt $I11, rx367_eos, rx367_fail
+ sub $I11, rx367_pos, rx367_off
+ substr $S10, rx367_tgt, $I11, 2
+ ne $S10, "if", rx367_fail
+ add rx367_pos, 2
+ 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_368_done
- rxcap_368_fail:
- goto rx364_fail
- rxcap_368_done:
- # rx subrule "ws" subtype=method negate=
- rx364_cur."!cursor_pos"(rx364_pos)
- $P10 = rx364_cur."ws"()
- unless $P10, rx364_fail
- rx364_pos = $P10."pos"()
+ goto rxcap_371_done
+ rxcap_371_fail:
+ goto rx367_fail
+ rxcap_371_done:
+ # rx subrule "ws" subtype=method negate=
+ rx367_cur."!cursor_pos"(rx367_pos)
+ $P10 = rx367_cur."ws"()
+ unless $P10, rx367_fail
+ rx367_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx364_cur."!cursor_pos"(rx364_pos)
- $P10 = rx364_cur."EXPR"()
- unless $P10, rx364_fail
- rx364_cur."!mark_push"(0, -1, 0, $P10)
+ rx367_cur."!cursor_pos"(rx367_pos)
+ $P10 = rx367_cur."EXPR"()
+ unless $P10, rx367_fail
+ rx367_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("cond")
- rx364_pos = $P10."pos"()
+ rx367_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx364_cur."!cursor_pos"(rx364_pos)
- $P10 = rx364_cur."ws"()
- unless $P10, rx364_fail
- rx364_pos = $P10."pos"()
+ rx367_cur."!cursor_pos"(rx367_pos)
+ $P10 = rx367_cur."ws"()
+ unless $P10, rx367_fail
+ rx367_pos = $P10."pos"()
# rx pass
- rx364_cur."!cursor_pass"(rx364_pos, "statement_mod_cond:sym<if>")
- rx364_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym<if>", " at pos=", rx364_pos)
- .return (rx364_cur)
- rx364_fail:
+ rx367_cur."!cursor_pass"(rx367_pos, "statement_mod_cond:sym<if>")
+ rx367_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym<if>", " at pos=", rx367_pos)
+ .return (rx367_cur)
+ rx367_fail:
.annotate "line", 4
- (rx364_rep, rx364_pos, $I10, $P10) = rx364_cur."!mark_fail"(0)
- lt rx364_pos, -1, rx364_done
- eq rx364_pos, -1, rx364_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
- rx364_done:
- rx364_cur."!cursor_fail"()
- rx364_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym<if>")
- .return (rx364_cur)
+ rx367_done:
+ rx367_cur."!cursor_fail"()
+ rx367_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym<if>")
+ .return (rx367_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<if>" :subid("86_1267204702.05125") :method
+.sub "!PREFIX__statement_mod_cond:sym<if>" :subid("86_1271336396.90314") :method
.annotate "line", 4
- new $P366, "ResizablePMCArray"
- push $P366, "if"
- .return ($P366)
+ new $P369, "ResizablePMCArray"
+ push $P369, "if"
+ .return ($P369)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<unless>" :subid("87_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "statement_mod_cond:sym<unless>" :subid("87_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx372_tgt
- .local int rx372_pos
- .local int rx372_off
- .local int rx372_eos
- .local int rx372_rep
- .local pmc rx372_cur
- (rx372_cur, rx372_pos, rx372_tgt) = self."!cursor_start"()
- rx372_cur."!cursor_debug"("START ", "statement_mod_cond:sym<unless>")
- .lex unicode:"$\x{a2}", rx372_cur
+ .local string rx375_tgt
+ .local int rx375_pos
+ .local int rx375_off
+ .local int rx375_eos
+ .local int rx375_rep
+ .local pmc rx375_cur
+ (rx375_cur, rx375_pos, rx375_tgt) = self."!cursor_start"()
+ rx375_cur."!cursor_debug"("START ", "statement_mod_cond:sym<unless>")
+ .lex unicode:"$\x{a2}", rx375_cur
.local pmc match
.lex "$/", match
- length rx372_eos, rx372_tgt
- set rx372_off, 0
- lt rx372_pos, 2, rx372_start
- sub rx372_off, rx372_pos, 1
- substr rx372_tgt, rx372_tgt, rx372_off
- rx372_start:
+ length rx375_eos, rx375_tgt
+ set rx375_off, 0
+ lt rx375_pos, 2, rx375_start
+ sub rx375_off, rx375_pos, 1
+ substr rx375_tgt, rx375_tgt, rx375_off
+ rx375_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan375_done
- goto rxscan375_scan
- rxscan375_loop:
- ($P10) = rx372_cur."from"()
+ ne $I10, -1, rxscan378_done
+ goto rxscan378_scan
+ rxscan378_loop:
+ ($P10) = rx375_cur."from"()
inc $P10
- set rx372_pos, $P10
- ge rx372_pos, rx372_eos, rxscan375_done
- rxscan375_scan:
- set_addr $I10, rxscan375_loop
- rx372_cur."!mark_push"(0, rx372_pos, $I10)
- rxscan375_done:
-.annotate "line", 207
+ set rx375_pos, $P10
+ ge rx375_pos, rx375_eos, rxscan378_done
+ rxscan378_scan:
+ set_addr $I10, rxscan378_loop
+ rx375_cur."!mark_push"(0, rx375_pos, $I10)
+ rxscan378_done:
+.annotate "line", 211
# rx subcapture "sym"
- set_addr $I10, rxcap_376_fail
- rx372_cur."!mark_push"(0, rx372_pos, $I10)
+ set_addr $I10, rxcap_379_fail
+ rx375_cur."!mark_push"(0, rx375_pos, $I10)
# rx literal "unless"
- 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_376_fail
- ($I12, $I11) = rx372_cur."!mark_peek"($I10)
- rx372_cur."!cursor_pos"($I11)
- ($P10) = rx372_cur."!cursor_start"()
- $P10."!cursor_pass"(rx372_pos, "")
- rx372_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx375_pos, 6
+ gt $I11, rx375_eos, rx375_fail
+ sub $I11, rx375_pos, rx375_off
+ substr $S10, rx375_tgt, $I11, 6
+ ne $S10, "unless", rx375_fail
+ add rx375_pos, 6
+ set_addr $I10, rxcap_379_fail
+ ($I12, $I11) = rx375_cur."!mark_peek"($I10)
+ rx375_cur."!cursor_pos"($I11)
+ ($P10) = rx375_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx375_pos, "")
+ rx375_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_376_done
- rxcap_376_fail:
- goto rx372_fail
- rxcap_376_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"()
+ goto rxcap_379_done
+ rxcap_379_fail:
+ goto rx375_fail
+ rxcap_379_done:
+ # rx subrule "ws" subtype=method negate=
+ rx375_cur."!cursor_pos"(rx375_pos)
+ $P10 = rx375_cur."ws"()
+ unless $P10, rx375_fail
+ rx375_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx372_cur."!cursor_pos"(rx372_pos)
- $P10 = rx372_cur."EXPR"()
- unless $P10, rx372_fail
- rx372_cur."!mark_push"(0, -1, 0, $P10)
+ rx375_cur."!cursor_pos"(rx375_pos)
+ $P10 = rx375_cur."EXPR"()
+ unless $P10, rx375_fail
+ rx375_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("cond")
- rx372_pos = $P10."pos"()
+ rx375_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx372_cur."!cursor_pos"(rx372_pos)
- $P10 = rx372_cur."ws"()
- unless $P10, rx372_fail
- rx372_pos = $P10."pos"()
+ rx375_cur."!cursor_pos"(rx375_pos)
+ $P10 = rx375_cur."ws"()
+ unless $P10, rx375_fail
+ rx375_pos = $P10."pos"()
# rx pass
- rx372_cur."!cursor_pass"(rx372_pos, "statement_mod_cond:sym<unless>")
- rx372_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym<unless>", " at pos=", rx372_pos)
- .return (rx372_cur)
- rx372_fail:
+ rx375_cur."!cursor_pass"(rx375_pos, "statement_mod_cond:sym<unless>")
+ rx375_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym<unless>", " at pos=", rx375_pos)
+ .return (rx375_cur)
+ rx375_fail:
.annotate "line", 4
- (rx372_rep, rx372_pos, $I10, $P10) = rx372_cur."!mark_fail"(0)
- lt rx372_pos, -1, rx372_done
- eq rx372_pos, -1, rx372_fail
+ (rx375_rep, rx375_pos, $I10, $P10) = rx375_cur."!mark_fail"(0)
+ lt rx375_pos, -1, rx375_done
+ eq rx375_pos, -1, rx375_fail
jump $I10
- rx372_done:
- rx372_cur."!cursor_fail"()
- rx372_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym<unless>")
- .return (rx372_cur)
+ rx375_done:
+ rx375_cur."!cursor_fail"()
+ rx375_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym<unless>")
+ .return (rx375_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<unless>" :subid("88_1267204702.05125") :method
+.sub "!PREFIX__statement_mod_cond:sym<unless>" :subid("88_1271336396.90314") :method
.annotate "line", 4
- new $P374, "ResizablePMCArray"
- push $P374, "unless"
- .return ($P374)
+ new $P377, "ResizablePMCArray"
+ push $P377, "unless"
+ .return ($P377)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop" :subid("89_1267204702.05125") :method
-.annotate "line", 209
- $P380 = self."!protoregex"("statement_mod_loop")
- .return ($P380)
+.sub "statement_mod_loop" :subid("89_1271336396.90314") :method
+.annotate "line", 213
+ $P383 = self."!protoregex"("statement_mod_loop")
+ .return ($P383)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop" :subid("90_1267204702.05125") :method
-.annotate "line", 209
- $P382 = self."!PREFIX__!protoregex"("statement_mod_loop")
- .return ($P382)
+.sub "!PREFIX__statement_mod_loop" :subid("90_1271336396.90314") :method
+.annotate "line", 213
+ $P385 = self."!PREFIX__!protoregex"("statement_mod_loop")
+ .return ($P385)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<while>" :subid("91_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "statement_mod_loop:sym<while>" :subid("91_1271336396.90314") :method :outer("11_1271336396.90314")
.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_loop:sym<while>")
- .lex unicode:"$\x{a2}", rx384_cur
- .local pmc match
- .lex "$/", match
- length rx384_eos, rx384_tgt
- set rx384_off, 0
- lt rx384_pos, 2, rx384_start
- sub rx384_off, rx384_pos, 1
- substr rx384_tgt, rx384_tgt, rx384_off
- rx384_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan387_done
- goto rxscan387_scan
- rxscan387_loop:
- ($P10) = rx384_cur."from"()
- inc $P10
- set rx384_pos, $P10
- ge rx384_pos, rx384_eos, rxscan387_done
- rxscan387_scan:
- set_addr $I10, rxscan387_loop
- rx384_cur."!mark_push"(0, rx384_pos, $I10)
- rxscan387_done:
-.annotate "line", 211
+ .local string rx387_tgt
+ .local int rx387_pos
+ .local int rx387_off
+ .local int rx387_eos
+ .local int rx387_rep
+ .local pmc rx387_cur
+ (rx387_cur, rx387_pos, rx387_tgt) = self."!cursor_start"()
+ rx387_cur."!cursor_debug"("START ", "statement_mod_loop:sym<while>")
+ .lex unicode:"$\x{a2}", rx387_cur
+ .local pmc match
+ .lex "$/", match
+ length rx387_eos, rx387_tgt
+ set rx387_off, 0
+ lt rx387_pos, 2, rx387_start
+ sub rx387_off, rx387_pos, 1
+ substr rx387_tgt, rx387_tgt, rx387_off
+ rx387_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan390_done
+ goto rxscan390_scan
+ rxscan390_loop:
+ ($P10) = rx387_cur."from"()
+ inc $P10
+ set rx387_pos, $P10
+ ge rx387_pos, rx387_eos, rxscan390_done
+ rxscan390_scan:
+ set_addr $I10, rxscan390_loop
+ rx387_cur."!mark_push"(0, rx387_pos, $I10)
+ rxscan390_done:
+.annotate "line", 215
# rx subcapture "sym"
- set_addr $I10, rxcap_388_fail
- rx384_cur."!mark_push"(0, rx384_pos, $I10)
+ set_addr $I10, rxcap_391_fail
+ rx387_cur."!mark_push"(0, rx387_pos, $I10)
# rx literal "while"
- add $I11, rx384_pos, 5
- gt $I11, rx384_eos, rx384_fail
- sub $I11, rx384_pos, rx384_off
- substr $S10, rx384_tgt, $I11, 5
- ne $S10, "while", rx384_fail
- add rx384_pos, 5
- set_addr $I10, rxcap_388_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, rx387_pos, 5
+ gt $I11, rx387_eos, rx387_fail
+ sub $I11, rx387_pos, rx387_off
+ substr $S10, rx387_tgt, $I11, 5
+ ne $S10, "while", rx387_fail
+ add rx387_pos, 5
+ set_addr $I10, rxcap_391_fail
+ ($I12, $I11) = rx387_cur."!mark_peek"($I10)
+ rx387_cur."!cursor_pos"($I11)
+ ($P10) = rx387_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx387_pos, "")
+ rx387_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_388_done
- rxcap_388_fail:
- goto rx384_fail
- rxcap_388_done:
- # rx subrule "ws" subtype=method negate=
- rx384_cur."!cursor_pos"(rx384_pos)
- $P10 = rx384_cur."ws"()
- unless $P10, rx384_fail
- rx384_pos = $P10."pos"()
+ goto rxcap_391_done
+ rxcap_391_fail:
+ goto rx387_fail
+ rxcap_391_done:
+ # rx subrule "ws" subtype=method negate=
+ rx387_cur."!cursor_pos"(rx387_pos)
+ $P10 = rx387_cur."ws"()
+ unless $P10, rx387_fail
+ rx387_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)
+ rx387_cur."!cursor_pos"(rx387_pos)
+ $P10 = rx387_cur."EXPR"()
+ unless $P10, rx387_fail
+ rx387_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("cond")
- rx384_pos = $P10."pos"()
+ rx387_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"()
+ rx387_cur."!cursor_pos"(rx387_pos)
+ $P10 = rx387_cur."ws"()
+ unless $P10, rx387_fail
+ rx387_pos = $P10."pos"()
# rx pass
- rx384_cur."!cursor_pass"(rx384_pos, "statement_mod_loop:sym<while>")
- rx384_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym<while>", " at pos=", rx384_pos)
- .return (rx384_cur)
- rx384_fail:
+ rx387_cur."!cursor_pass"(rx387_pos, "statement_mod_loop:sym<while>")
+ rx387_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym<while>", " at pos=", rx387_pos)
+ .return (rx387_cur)
+ rx387_fail:
.annotate "line", 4
- (rx384_rep, rx384_pos, $I10, $P10) = rx384_cur."!mark_fail"(0)
- lt rx384_pos, -1, rx384_done
- eq rx384_pos, -1, rx384_fail
+ (rx387_rep, rx387_pos, $I10, $P10) = rx387_cur."!mark_fail"(0)
+ lt rx387_pos, -1, rx387_done
+ eq rx387_pos, -1, rx387_fail
jump $I10
- rx384_done:
- rx384_cur."!cursor_fail"()
- rx384_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym<while>")
- .return (rx384_cur)
+ rx387_done:
+ rx387_cur."!cursor_fail"()
+ rx387_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym<while>")
+ .return (rx387_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<while>" :subid("92_1267204702.05125") :method
+.sub "!PREFIX__statement_mod_loop:sym<while>" :subid("92_1271336396.90314") :method
.annotate "line", 4
- new $P386, "ResizablePMCArray"
- push $P386, "while"
- .return ($P386)
+ new $P389, "ResizablePMCArray"
+ push $P389, "while"
+ .return ($P389)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<until>" :subid("93_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "statement_mod_loop:sym<until>" :subid("93_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx392_tgt
- .local int rx392_pos
- .local int rx392_off
- .local int rx392_eos
- .local int rx392_rep
- .local pmc rx392_cur
- (rx392_cur, rx392_pos, rx392_tgt) = self."!cursor_start"()
- rx392_cur."!cursor_debug"("START ", "statement_mod_loop:sym<until>")
- .lex unicode:"$\x{a2}", rx392_cur
+ .local string rx395_tgt
+ .local int rx395_pos
+ .local int rx395_off
+ .local int rx395_eos
+ .local int rx395_rep
+ .local pmc rx395_cur
+ (rx395_cur, rx395_pos, rx395_tgt) = self."!cursor_start"()
+ rx395_cur."!cursor_debug"("START ", "statement_mod_loop:sym<until>")
+ .lex unicode:"$\x{a2}", rx395_cur
.local pmc match
.lex "$/", match
- length rx392_eos, rx392_tgt
- set rx392_off, 0
- lt rx392_pos, 2, rx392_start
- sub rx392_off, rx392_pos, 1
- substr rx392_tgt, rx392_tgt, rx392_off
- rx392_start:
+ length rx395_eos, rx395_tgt
+ set rx395_off, 0
+ lt rx395_pos, 2, rx395_start
+ sub rx395_off, rx395_pos, 1
+ substr rx395_tgt, rx395_tgt, rx395_off
+ rx395_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan395_done
- goto rxscan395_scan
- rxscan395_loop:
- ($P10) = rx392_cur."from"()
+ ne $I10, -1, rxscan398_done
+ goto rxscan398_scan
+ rxscan398_loop:
+ ($P10) = rx395_cur."from"()
inc $P10
- set rx392_pos, $P10
- ge rx392_pos, rx392_eos, rxscan395_done
- rxscan395_scan:
- set_addr $I10, rxscan395_loop
- rx392_cur."!mark_push"(0, rx392_pos, $I10)
- rxscan395_done:
-.annotate "line", 212
+ set rx395_pos, $P10
+ ge rx395_pos, rx395_eos, rxscan398_done
+ rxscan398_scan:
+ set_addr $I10, rxscan398_loop
+ rx395_cur."!mark_push"(0, rx395_pos, $I10)
+ rxscan398_done:
+.annotate "line", 216
# rx subcapture "sym"
- set_addr $I10, rxcap_396_fail
- rx392_cur."!mark_push"(0, rx392_pos, $I10)
+ set_addr $I10, rxcap_399_fail
+ rx395_cur."!mark_push"(0, rx395_pos, $I10)
# rx literal "until"
- add $I11, rx392_pos, 5
- gt $I11, rx392_eos, rx392_fail
- sub $I11, rx392_pos, rx392_off
- substr $S10, rx392_tgt, $I11, 5
- ne $S10, "until", rx392_fail
- add rx392_pos, 5
- set_addr $I10, rxcap_396_fail
- ($I12, $I11) = rx392_cur."!mark_peek"($I10)
- rx392_cur."!cursor_pos"($I11)
- ($P10) = rx392_cur."!cursor_start"()
- $P10."!cursor_pass"(rx392_pos, "")
- rx392_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx395_pos, 5
+ gt $I11, rx395_eos, rx395_fail
+ sub $I11, rx395_pos, rx395_off
+ substr $S10, rx395_tgt, $I11, 5
+ ne $S10, "until", rx395_fail
+ add rx395_pos, 5
+ set_addr $I10, rxcap_399_fail
+ ($I12, $I11) = rx395_cur."!mark_peek"($I10)
+ rx395_cur."!cursor_pos"($I11)
+ ($P10) = rx395_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx395_pos, "")
+ rx395_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_396_done
- rxcap_396_fail:
- goto rx392_fail
- rxcap_396_done:
- # rx subrule "ws" subtype=method negate=
- rx392_cur."!cursor_pos"(rx392_pos)
- $P10 = rx392_cur."ws"()
- unless $P10, rx392_fail
- rx392_pos = $P10."pos"()
+ goto rxcap_399_done
+ rxcap_399_fail:
+ goto rx395_fail
+ rxcap_399_done:
+ # rx subrule "ws" subtype=method negate=
+ rx395_cur."!cursor_pos"(rx395_pos)
+ $P10 = rx395_cur."ws"()
+ unless $P10, rx395_fail
+ rx395_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx392_cur."!cursor_pos"(rx392_pos)
- $P10 = rx392_cur."EXPR"()
- unless $P10, rx392_fail
- rx392_cur."!mark_push"(0, -1, 0, $P10)
+ rx395_cur."!cursor_pos"(rx395_pos)
+ $P10 = rx395_cur."EXPR"()
+ unless $P10, rx395_fail
+ rx395_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("cond")
- rx392_pos = $P10."pos"()
+ rx395_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx392_cur."!cursor_pos"(rx392_pos)
- $P10 = rx392_cur."ws"()
- unless $P10, rx392_fail
- rx392_pos = $P10."pos"()
+ rx395_cur."!cursor_pos"(rx395_pos)
+ $P10 = rx395_cur."ws"()
+ unless $P10, rx395_fail
+ rx395_pos = $P10."pos"()
# rx pass
- rx392_cur."!cursor_pass"(rx392_pos, "statement_mod_loop:sym<until>")
- rx392_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym<until>", " at pos=", rx392_pos)
- .return (rx392_cur)
- rx392_fail:
+ rx395_cur."!cursor_pass"(rx395_pos, "statement_mod_loop:sym<until>")
+ rx395_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym<until>", " at pos=", rx395_pos)
+ .return (rx395_cur)
+ rx395_fail:
.annotate "line", 4
- (rx392_rep, rx392_pos, $I10, $P10) = rx392_cur."!mark_fail"(0)
- lt rx392_pos, -1, rx392_done
- eq rx392_pos, -1, rx392_fail
+ (rx395_rep, rx395_pos, $I10, $P10) = rx395_cur."!mark_fail"(0)
+ lt rx395_pos, -1, rx395_done
+ eq rx395_pos, -1, rx395_fail
jump $I10
- rx392_done:
- rx392_cur."!cursor_fail"()
- rx392_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym<until>")
- .return (rx392_cur)
+ rx395_done:
+ rx395_cur."!cursor_fail"()
+ rx395_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym<until>")
+ .return (rx395_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<until>" :subid("94_1267204702.05125") :method
+.sub "!PREFIX__statement_mod_loop:sym<until>" :subid("94_1271336396.90314") :method
.annotate "line", 4
- new $P394, "ResizablePMCArray"
- push $P394, "until"
- .return ($P394)
+ new $P397, "ResizablePMCArray"
+ push $P397, "until"
+ .return ($P397)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<fatarrow>" :subid("95_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "term:sym<fatarrow>" :subid("95_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx400_tgt
- .local int rx400_pos
- .local int rx400_off
- .local int rx400_eos
- .local int rx400_rep
- .local pmc rx400_cur
- (rx400_cur, rx400_pos, rx400_tgt) = self."!cursor_start"()
- rx400_cur."!cursor_debug"("START ", "term:sym<fatarrow>")
- .lex unicode:"$\x{a2}", rx400_cur
+ .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) = self."!cursor_start"()
+ rx403_cur."!cursor_debug"("START ", "term:sym<fatarrow>")
+ .lex unicode:"$\x{a2}", rx403_cur
.local pmc match
.lex "$/", match
- length rx400_eos, rx400_tgt
- set rx400_off, 0
- lt rx400_pos, 2, rx400_start
- sub rx400_off, rx400_pos, 1
- substr rx400_tgt, rx400_tgt, rx400_off
- rx400_start:
+ length rx403_eos, rx403_tgt
+ 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:
$I10 = self.'from'()
- ne $I10, -1, rxscan404_done
- goto rxscan404_scan
- rxscan404_loop:
- ($P10) = rx400_cur."from"()
+ ne $I10, -1, rxscan407_done
+ goto rxscan407_scan
+ rxscan407_loop:
+ ($P10) = rx403_cur."from"()
inc $P10
- set rx400_pos, $P10
- ge rx400_pos, rx400_eos, rxscan404_done
- rxscan404_scan:
- set_addr $I10, rxscan404_loop
- rx400_cur."!mark_push"(0, rx400_pos, $I10)
- rxscan404_done:
-.annotate "line", 216
+ 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", 220
# rx subrule "fatarrow" subtype=capture negate=
- rx400_cur."!cursor_pos"(rx400_pos)
- $P10 = rx400_cur."fatarrow"()
- unless $P10, rx400_fail
- rx400_cur."!mark_push"(0, -1, 0, $P10)
+ rx403_cur."!cursor_pos"(rx403_pos)
+ $P10 = rx403_cur."fatarrow"()
+ unless $P10, rx403_fail
+ rx403_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("fatarrow")
- rx400_pos = $P10."pos"()
+ rx403_pos = $P10."pos"()
# rx pass
- rx400_cur."!cursor_pass"(rx400_pos, "term:sym<fatarrow>")
- rx400_cur."!cursor_debug"("PASS ", "term:sym<fatarrow>", " at pos=", rx400_pos)
- .return (rx400_cur)
- rx400_fail:
+ rx403_cur."!cursor_pass"(rx403_pos, "term:sym<fatarrow>")
+ rx403_cur."!cursor_debug"("PASS ", "term:sym<fatarrow>", " at pos=", rx403_pos)
+ .return (rx403_cur)
+ rx403_fail:
.annotate "line", 4
- (rx400_rep, rx400_pos, $I10, $P10) = rx400_cur."!mark_fail"(0)
- lt rx400_pos, -1, rx400_done
- eq rx400_pos, -1, rx400_fail
+ (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
- rx400_done:
- rx400_cur."!cursor_fail"()
- rx400_cur."!cursor_debug"("FAIL ", "term:sym<fatarrow>")
- .return (rx400_cur)
+ rx403_done:
+ rx403_cur."!cursor_fail"()
+ rx403_cur."!cursor_debug"("FAIL ", "term:sym<fatarrow>")
+ .return (rx403_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<fatarrow>" :subid("96_1267204702.05125") :method
+.sub "!PREFIX__term:sym<fatarrow>" :subid("96_1271336396.90314") :method
.annotate "line", 4
- $P402 = self."!PREFIX__!subrule"("fatarrow", "")
- new $P403, "ResizablePMCArray"
- push $P403, $P402
- .return ($P403)
+ $P405 = self."!PREFIX__!subrule"("fatarrow", "")
+ new $P406, "ResizablePMCArray"
+ push $P406, $P405
+ .return ($P406)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<colonpair>" :subid("97_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "term:sym<colonpair>" :subid("97_1271336396.90314") :method :outer("11_1271336396.90314")
.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 ", "term:sym<colonpair>")
- .lex unicode:"$\x{a2}", rx406_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) = self."!cursor_start"()
+ rx409_cur."!cursor_debug"("START ", "term:sym<colonpair>")
+ .lex unicode:"$\x{a2}", rx409_cur
.local pmc match
.lex "$/", match
- length rx406_eos, rx406_tgt
- set rx406_off, 0
- lt rx406_pos, 2, rx406_start
- sub rx406_off, rx406_pos, 1
- substr rx406_tgt, rx406_tgt, rx406_off
- rx406_start:
+ length rx409_eos, rx409_tgt
+ 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:
$I10 = self.'from'()
- ne $I10, -1, rxscan410_done
- goto rxscan410_scan
- rxscan410_loop:
- ($P10) = rx406_cur."from"()
+ ne $I10, -1, rxscan413_done
+ goto rxscan413_scan
+ rxscan413_loop:
+ ($P10) = rx409_cur."from"()
inc $P10
- set rx406_pos, $P10
- ge rx406_pos, rx406_eos, rxscan410_done
- rxscan410_scan:
- set_addr $I10, rxscan410_loop
- rx406_cur."!mark_push"(0, rx406_pos, $I10)
- rxscan410_done:
-.annotate "line", 217
+ 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", 221
# rx subrule "colonpair" subtype=capture negate=
- rx406_cur."!cursor_pos"(rx406_pos)
- $P10 = rx406_cur."colonpair"()
- unless $P10, rx406_fail
- rx406_cur."!mark_push"(0, -1, 0, $P10)
+ rx409_cur."!cursor_pos"(rx409_pos)
+ $P10 = rx409_cur."colonpair"()
+ unless $P10, rx409_fail
+ rx409_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("colonpair")
- rx406_pos = $P10."pos"()
+ rx409_pos = $P10."pos"()
# rx pass
- rx406_cur."!cursor_pass"(rx406_pos, "term:sym<colonpair>")
- rx406_cur."!cursor_debug"("PASS ", "term:sym<colonpair>", " at pos=", rx406_pos)
- .return (rx406_cur)
- rx406_fail:
+ rx409_cur."!cursor_pass"(rx409_pos, "term:sym<colonpair>")
+ rx409_cur."!cursor_debug"("PASS ", "term:sym<colonpair>", " at pos=", rx409_pos)
+ .return (rx409_cur)
+ rx409_fail:
.annotate "line", 4
- (rx406_rep, rx406_pos, $I10, $P10) = rx406_cur."!mark_fail"(0)
- lt rx406_pos, -1, rx406_done
- eq rx406_pos, -1, rx406_fail
+ (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
- rx406_done:
- rx406_cur."!cursor_fail"()
- rx406_cur."!cursor_debug"("FAIL ", "term:sym<colonpair>")
- .return (rx406_cur)
+ rx409_done:
+ rx409_cur."!cursor_fail"()
+ rx409_cur."!cursor_debug"("FAIL ", "term:sym<colonpair>")
+ .return (rx409_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<colonpair>" :subid("98_1267204702.05125") :method
+.sub "!PREFIX__term:sym<colonpair>" :subid("98_1271336396.90314") :method
.annotate "line", 4
- $P408 = self."!PREFIX__!subrule"("colonpair", "")
- new $P409, "ResizablePMCArray"
- push $P409, $P408
- .return ($P409)
+ $P411 = self."!PREFIX__!subrule"("colonpair", "")
+ new $P412, "ResizablePMCArray"
+ push $P412, $P411
+ .return ($P412)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<variable>" :subid("99_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "term:sym<variable>" :subid("99_1271336396.90314") :method :outer("11_1271336396.90314")
.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) = self."!cursor_start"()
- rx412_cur."!cursor_debug"("START ", "term:sym<variable>")
- .lex unicode:"$\x{a2}", rx412_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) = self."!cursor_start"()
+ rx415_cur."!cursor_debug"("START ", "term:sym<variable>")
+ .lex unicode:"$\x{a2}", rx415_cur
.local pmc match
.lex "$/", match
- length rx412_eos, rx412_tgt
- 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:
+ length rx415_eos, rx415_tgt
+ set rx415_off, 0
+ lt rx415_pos, 2, rx415_start
+ sub rx415_off, rx415_pos, 1
+ substr rx415_tgt, rx415_tgt, rx415_off
+ rx415_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan416_done
- goto rxscan416_scan
- rxscan416_loop:
- ($P10) = rx412_cur."from"()
+ ne $I10, -1, rxscan419_done
+ goto rxscan419_scan
+ rxscan419_loop:
+ ($P10) = rx415_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", 218
+ 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", 222
# rx subrule "variable" subtype=capture negate=
- rx412_cur."!cursor_pos"(rx412_pos)
- $P10 = rx412_cur."variable"()
- unless $P10, rx412_fail
- rx412_cur."!mark_push"(0, -1, 0, $P10)
+ rx415_cur."!cursor_pos"(rx415_pos)
+ $P10 = rx415_cur."variable"()
+ unless $P10, rx415_fail
+ rx415_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("variable")
- rx412_pos = $P10."pos"()
+ rx415_pos = $P10."pos"()
# rx pass
- rx412_cur."!cursor_pass"(rx412_pos, "term:sym<variable>")
- rx412_cur."!cursor_debug"("PASS ", "term:sym<variable>", " at pos=", rx412_pos)
- .return (rx412_cur)
- rx412_fail:
+ rx415_cur."!cursor_pass"(rx415_pos, "term:sym<variable>")
+ rx415_cur."!cursor_debug"("PASS ", "term:sym<variable>", " at pos=", rx415_pos)
+ .return (rx415_cur)
+ rx415_fail:
.annotate "line", 4
- (rx412_rep, rx412_pos, $I10, $P10) = rx412_cur."!mark_fail"(0)
- lt rx412_pos, -1, rx412_done
- eq rx412_pos, -1, rx412_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
- rx412_done:
- rx412_cur."!cursor_fail"()
- rx412_cur."!cursor_debug"("FAIL ", "term:sym<variable>")
- .return (rx412_cur)
+ rx415_done:
+ rx415_cur."!cursor_fail"()
+ rx415_cur."!cursor_debug"("FAIL ", "term:sym<variable>")
+ .return (rx415_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<variable>" :subid("100_1267204702.05125") :method
+.sub "!PREFIX__term:sym<variable>" :subid("100_1271336396.90314") :method
.annotate "line", 4
- $P414 = self."!PREFIX__!subrule"("variable", "")
- new $P415, "ResizablePMCArray"
- push $P415, $P414
- .return ($P415)
+ $P417 = self."!PREFIX__!subrule"("variable", "")
+ new $P418, "ResizablePMCArray"
+ push $P418, $P417
+ .return ($P418)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<package_declarator>" :subid("101_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "term:sym<package_declarator>" :subid("101_1271336396.90314") :method :outer("11_1271336396.90314")
.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) = self."!cursor_start"()
- rx418_cur."!cursor_debug"("START ", "term:sym<package_declarator>")
- .lex unicode:"$\x{a2}", rx418_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) = self."!cursor_start"()
+ rx421_cur."!cursor_debug"("START ", "term:sym<package_declarator>")
+ .lex unicode:"$\x{a2}", rx421_cur
.local pmc match
.lex "$/", match
- length rx418_eos, rx418_tgt
- 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:
+ length rx421_eos, rx421_tgt
+ 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:
$I10 = self.'from'()
- ne $I10, -1, rxscan422_done
- goto rxscan422_scan
- rxscan422_loop:
- ($P10) = rx418_cur."from"()
+ ne $I10, -1, rxscan425_done
+ goto rxscan425_scan
+ rxscan425_loop:
+ ($P10) = rx421_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", 219
+ 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", 223
# rx subrule "package_declarator" subtype=capture negate=
- rx418_cur."!cursor_pos"(rx418_pos)
- $P10 = rx418_cur."package_declarator"()
- unless $P10, rx418_fail
- rx418_cur."!mark_push"(0, -1, 0, $P10)
+ rx421_cur."!cursor_pos"(rx421_pos)
+ $P10 = rx421_cur."package_declarator"()
+ unless $P10, rx421_fail
+ rx421_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("package_declarator")
- rx418_pos = $P10."pos"()
+ rx421_pos = $P10."pos"()
# rx pass
- rx418_cur."!cursor_pass"(rx418_pos, "term:sym<package_declarator>")
- rx418_cur."!cursor_debug"("PASS ", "term:sym<package_declarator>", " at pos=", rx418_pos)
- .return (rx418_cur)
- rx418_fail:
+ rx421_cur."!cursor_pass"(rx421_pos, "term:sym<package_declarator>")
+ rx421_cur."!cursor_debug"("PASS ", "term:sym<package_declarator>", " at pos=", rx421_pos)
+ .return (rx421_cur)
+ rx421_fail:
.annotate "line", 4
- (rx418_rep, rx418_pos, $I10, $P10) = rx418_cur."!mark_fail"(0)
- lt rx418_pos, -1, rx418_done
- eq rx418_pos, -1, rx418_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
- rx418_done:
- rx418_cur."!cursor_fail"()
- rx418_cur."!cursor_debug"("FAIL ", "term:sym<package_declarator>")
- .return (rx418_cur)
+ rx421_done:
+ rx421_cur."!cursor_fail"()
+ rx421_cur."!cursor_debug"("FAIL ", "term:sym<package_declarator>")
+ .return (rx421_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<package_declarator>" :subid("102_1267204702.05125") :method
+.sub "!PREFIX__term:sym<package_declarator>" :subid("102_1271336396.90314") :method
.annotate "line", 4
- $P420 = self."!PREFIX__!subrule"("package_declarator", "")
- new $P421, "ResizablePMCArray"
- push $P421, $P420
- .return ($P421)
+ $P423 = self."!PREFIX__!subrule"("package_declarator", "")
+ new $P424, "ResizablePMCArray"
+ push $P424, $P423
+ .return ($P424)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<scope_declarator>" :subid("103_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "term:sym<scope_declarator>" :subid("103_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx424_tgt
- .local int rx424_pos
- .local int rx424_off
- .local int rx424_eos
- .local int rx424_rep
- .local pmc rx424_cur
- (rx424_cur, rx424_pos, rx424_tgt) = self."!cursor_start"()
- rx424_cur."!cursor_debug"("START ", "term:sym<scope_declarator>")
- .lex unicode:"$\x{a2}", rx424_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) = self."!cursor_start"()
+ rx427_cur."!cursor_debug"("START ", "term:sym<scope_declarator>")
+ .lex unicode:"$\x{a2}", rx427_cur
.local pmc match
.lex "$/", match
- length rx424_eos, rx424_tgt
- set rx424_off, 0
- lt rx424_pos, 2, rx424_start
- sub rx424_off, rx424_pos, 1
- substr rx424_tgt, rx424_tgt, rx424_off
- rx424_start:
+ length rx427_eos, rx427_tgt
+ set rx427_off, 0
+ lt rx427_pos, 2, rx427_start
+ sub rx427_off, rx427_pos, 1
+ substr rx427_tgt, rx427_tgt, rx427_off
+ rx427_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan428_done
- goto rxscan428_scan
- rxscan428_loop:
- ($P10) = rx424_cur."from"()
+ ne $I10, -1, rxscan431_done
+ goto rxscan431_scan
+ rxscan431_loop:
+ ($P10) = rx427_cur."from"()
inc $P10
- set rx424_pos, $P10
- ge rx424_pos, rx424_eos, rxscan428_done
- rxscan428_scan:
- set_addr $I10, rxscan428_loop
- rx424_cur."!mark_push"(0, rx424_pos, $I10)
- rxscan428_done:
-.annotate "line", 220
+ 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", 224
# rx subrule "scope_declarator" subtype=capture negate=
- rx424_cur."!cursor_pos"(rx424_pos)
- $P10 = rx424_cur."scope_declarator"()
- unless $P10, rx424_fail
- rx424_cur."!mark_push"(0, -1, 0, $P10)
+ rx427_cur."!cursor_pos"(rx427_pos)
+ $P10 = rx427_cur."scope_declarator"()
+ unless $P10, rx427_fail
+ rx427_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("scope_declarator")
- rx424_pos = $P10."pos"()
+ rx427_pos = $P10."pos"()
# rx pass
- rx424_cur."!cursor_pass"(rx424_pos, "term:sym<scope_declarator>")
- rx424_cur."!cursor_debug"("PASS ", "term:sym<scope_declarator>", " at pos=", rx424_pos)
- .return (rx424_cur)
- rx424_fail:
+ rx427_cur."!cursor_pass"(rx427_pos, "term:sym<scope_declarator>")
+ rx427_cur."!cursor_debug"("PASS ", "term:sym<scope_declarator>", " at pos=", rx427_pos)
+ .return (rx427_cur)
+ rx427_fail:
.annotate "line", 4
- (rx424_rep, rx424_pos, $I10, $P10) = rx424_cur."!mark_fail"(0)
- lt rx424_pos, -1, rx424_done
- eq rx424_pos, -1, rx424_fail
+ (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
- rx424_done:
- rx424_cur."!cursor_fail"()
- rx424_cur."!cursor_debug"("FAIL ", "term:sym<scope_declarator>")
- .return (rx424_cur)
+ rx427_done:
+ rx427_cur."!cursor_fail"()
+ rx427_cur."!cursor_debug"("FAIL ", "term:sym<scope_declarator>")
+ .return (rx427_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<scope_declarator>" :subid("104_1267204702.05125") :method
+.sub "!PREFIX__term:sym<scope_declarator>" :subid("104_1271336396.90314") :method
.annotate "line", 4
- $P426 = self."!PREFIX__!subrule"("scope_declarator", "")
- new $P427, "ResizablePMCArray"
- push $P427, $P426
- .return ($P427)
+ $P429 = self."!PREFIX__!subrule"("scope_declarator", "")
+ new $P430, "ResizablePMCArray"
+ push $P430, $P429
+ .return ($P430)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<routine_declarator>" :subid("105_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "term:sym<routine_declarator>" :subid("105_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx430_tgt
- .local int rx430_pos
- .local int rx430_off
- .local int rx430_eos
- .local int rx430_rep
- .local pmc rx430_cur
- (rx430_cur, rx430_pos, rx430_tgt) = self."!cursor_start"()
- rx430_cur."!cursor_debug"("START ", "term:sym<routine_declarator>")
- .lex unicode:"$\x{a2}", rx430_cur
+ .local string rx433_tgt
+ .local int rx433_pos
+ .local int rx433_off
+ .local int rx433_eos
+ .local int rx433_rep
+ .local pmc rx433_cur
+ (rx433_cur, rx433_pos, rx433_tgt) = self."!cursor_start"()
+ rx433_cur."!cursor_debug"("START ", "term:sym<routine_declarator>")
+ .lex unicode:"$\x{a2}", rx433_cur
.local pmc match
.lex "$/", match
- length rx430_eos, rx430_tgt
- set rx430_off, 0
- lt rx430_pos, 2, rx430_start
- sub rx430_off, rx430_pos, 1
- substr rx430_tgt, rx430_tgt, rx430_off
- rx430_start:
+ length rx433_eos, rx433_tgt
+ set rx433_off, 0
+ lt rx433_pos, 2, rx433_start
+ sub rx433_off, rx433_pos, 1
+ substr rx433_tgt, rx433_tgt, rx433_off
+ rx433_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan434_done
- goto rxscan434_scan
- rxscan434_loop:
- ($P10) = rx430_cur."from"()
+ ne $I10, -1, rxscan437_done
+ goto rxscan437_scan
+ rxscan437_loop:
+ ($P10) = rx433_cur."from"()
inc $P10
- set rx430_pos, $P10
- ge rx430_pos, rx430_eos, rxscan434_done
- rxscan434_scan:
- set_addr $I10, rxscan434_loop
- rx430_cur."!mark_push"(0, rx430_pos, $I10)
- rxscan434_done:
-.annotate "line", 221
+ set rx433_pos, $P10
+ ge rx433_pos, rx433_eos, rxscan437_done
+ rxscan437_scan:
+ set_addr $I10, rxscan437_loop
+ rx433_cur."!mark_push"(0, rx433_pos, $I10)
+ rxscan437_done:
+.annotate "line", 225
# rx subrule "routine_declarator" subtype=capture negate=
- rx430_cur."!cursor_pos"(rx430_pos)
- $P10 = rx430_cur."routine_declarator"()
- unless $P10, rx430_fail
- rx430_cur."!mark_push"(0, -1, 0, $P10)
+ rx433_cur."!cursor_pos"(rx433_pos)
+ $P10 = rx433_cur."routine_declarator"()
+ unless $P10, rx433_fail
+ rx433_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("routine_declarator")
- rx430_pos = $P10."pos"()
+ rx433_pos = $P10."pos"()
# rx pass
- rx430_cur."!cursor_pass"(rx430_pos, "term:sym<routine_declarator>")
- rx430_cur."!cursor_debug"("PASS ", "term:sym<routine_declarator>", " at pos=", rx430_pos)
- .return (rx430_cur)
- rx430_fail:
+ rx433_cur."!cursor_pass"(rx433_pos, "term:sym<routine_declarator>")
+ rx433_cur."!cursor_debug"("PASS ", "term:sym<routine_declarator>", " at pos=", rx433_pos)
+ .return (rx433_cur)
+ rx433_fail:
.annotate "line", 4
- (rx430_rep, rx430_pos, $I10, $P10) = rx430_cur."!mark_fail"(0)
- lt rx430_pos, -1, rx430_done
- eq rx430_pos, -1, rx430_fail
+ (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
- rx430_done:
- rx430_cur."!cursor_fail"()
- rx430_cur."!cursor_debug"("FAIL ", "term:sym<routine_declarator>")
- .return (rx430_cur)
+ rx433_done:
+ rx433_cur."!cursor_fail"()
+ rx433_cur."!cursor_debug"("FAIL ", "term:sym<routine_declarator>")
+ .return (rx433_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<routine_declarator>" :subid("106_1267204702.05125") :method
+.sub "!PREFIX__term:sym<routine_declarator>" :subid("106_1271336396.90314") :method
.annotate "line", 4
- $P432 = self."!PREFIX__!subrule"("routine_declarator", "")
- new $P433, "ResizablePMCArray"
- push $P433, $P432
- .return ($P433)
+ $P435 = self."!PREFIX__!subrule"("routine_declarator", "")
+ new $P436, "ResizablePMCArray"
+ push $P436, $P435
+ .return ($P436)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<regex_declarator>" :subid("107_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "term:sym<regex_declarator>" :subid("107_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx436_tgt
- .local int rx436_pos
- .local int rx436_off
- .local int rx436_eos
- .local int rx436_rep
- .local pmc rx436_cur
- (rx436_cur, rx436_pos, rx436_tgt) = self."!cursor_start"()
- rx436_cur."!cursor_debug"("START ", "term:sym<regex_declarator>")
- .lex unicode:"$\x{a2}", rx436_cur
+ .local string rx439_tgt
+ .local int rx439_pos
+ .local int rx439_off
+ .local int rx439_eos
+ .local int rx439_rep
+ .local pmc rx439_cur
+ (rx439_cur, rx439_pos, rx439_tgt) = self."!cursor_start"()
+ rx439_cur."!cursor_debug"("START ", "term:sym<regex_declarator>")
+ .lex unicode:"$\x{a2}", rx439_cur
.local pmc match
.lex "$/", match
- length rx436_eos, rx436_tgt
- set rx436_off, 0
- lt rx436_pos, 2, rx436_start
- sub rx436_off, rx436_pos, 1
- substr rx436_tgt, rx436_tgt, rx436_off
- rx436_start:
+ length rx439_eos, rx439_tgt
+ set rx439_off, 0
+ lt rx439_pos, 2, rx439_start
+ sub rx439_off, rx439_pos, 1
+ substr rx439_tgt, rx439_tgt, rx439_off
+ rx439_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan440_done
- goto rxscan440_scan
- rxscan440_loop:
- ($P10) = rx436_cur."from"()
+ ne $I10, -1, rxscan443_done
+ goto rxscan443_scan
+ rxscan443_loop:
+ ($P10) = rx439_cur."from"()
inc $P10
- set rx436_pos, $P10
- ge rx436_pos, rx436_eos, rxscan440_done
- rxscan440_scan:
- set_addr $I10, rxscan440_loop
- rx436_cur."!mark_push"(0, rx436_pos, $I10)
- rxscan440_done:
-.annotate "line", 222
+ set rx439_pos, $P10
+ ge rx439_pos, rx439_eos, rxscan443_done
+ rxscan443_scan:
+ set_addr $I10, rxscan443_loop
+ rx439_cur."!mark_push"(0, rx439_pos, $I10)
+ rxscan443_done:
+.annotate "line", 226
# rx subrule "regex_declarator" subtype=capture negate=
- rx436_cur."!cursor_pos"(rx436_pos)
- $P10 = rx436_cur."regex_declarator"()
- unless $P10, rx436_fail
- rx436_cur."!mark_push"(0, -1, 0, $P10)
+ rx439_cur."!cursor_pos"(rx439_pos)
+ $P10 = rx439_cur."regex_declarator"()
+ unless $P10, rx439_fail
+ rx439_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("regex_declarator")
- rx436_pos = $P10."pos"()
+ rx439_pos = $P10."pos"()
# rx pass
- rx436_cur."!cursor_pass"(rx436_pos, "term:sym<regex_declarator>")
- rx436_cur."!cursor_debug"("PASS ", "term:sym<regex_declarator>", " at pos=", rx436_pos)
- .return (rx436_cur)
- rx436_fail:
+ rx439_cur."!cursor_pass"(rx439_pos, "term:sym<regex_declarator>")
+ rx439_cur."!cursor_debug"("PASS ", "term:sym<regex_declarator>", " at pos=", rx439_pos)
+ .return (rx439_cur)
+ rx439_fail:
.annotate "line", 4
- (rx436_rep, rx436_pos, $I10, $P10) = rx436_cur."!mark_fail"(0)
- lt rx436_pos, -1, rx436_done
- eq rx436_pos, -1, rx436_fail
+ (rx439_rep, rx439_pos, $I10, $P10) = rx439_cur."!mark_fail"(0)
+ lt rx439_pos, -1, rx439_done
+ eq rx439_pos, -1, rx439_fail
jump $I10
- rx436_done:
- rx436_cur."!cursor_fail"()
- rx436_cur."!cursor_debug"("FAIL ", "term:sym<regex_declarator>")
- .return (rx436_cur)
+ rx439_done:
+ rx439_cur."!cursor_fail"()
+ rx439_cur."!cursor_debug"("FAIL ", "term:sym<regex_declarator>")
+ .return (rx439_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<regex_declarator>" :subid("108_1267204702.05125") :method
+.sub "!PREFIX__term:sym<regex_declarator>" :subid("108_1271336396.90314") :method
.annotate "line", 4
- $P438 = self."!PREFIX__!subrule"("regex_declarator", "")
- new $P439, "ResizablePMCArray"
- push $P439, $P438
- .return ($P439)
+ $P441 = self."!PREFIX__!subrule"("regex_declarator", "")
+ new $P442, "ResizablePMCArray"
+ push $P442, $P441
+ .return ($P442)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<statement_prefix>" :subid("109_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "term:sym<statement_prefix>" :subid("109_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx442_tgt
- .local int rx442_pos
- .local int rx442_off
- .local int rx442_eos
- .local int rx442_rep
- .local pmc rx442_cur
- (rx442_cur, rx442_pos, rx442_tgt) = self."!cursor_start"()
- rx442_cur."!cursor_debug"("START ", "term:sym<statement_prefix>")
- .lex unicode:"$\x{a2}", rx442_cur
+ .local string rx445_tgt
+ .local int rx445_pos
+ .local int rx445_off
+ .local int rx445_eos
+ .local int rx445_rep
+ .local pmc rx445_cur
+ (rx445_cur, rx445_pos, rx445_tgt) = self."!cursor_start"()
+ rx445_cur."!cursor_debug"("START ", "term:sym<statement_prefix>")
+ .lex unicode:"$\x{a2}", rx445_cur
.local pmc match
.lex "$/", match
- length rx442_eos, rx442_tgt
- set rx442_off, 0
- lt rx442_pos, 2, rx442_start
- sub rx442_off, rx442_pos, 1
- substr rx442_tgt, rx442_tgt, rx442_off
- rx442_start:
+ length rx445_eos, rx445_tgt
+ set rx445_off, 0
+ lt rx445_pos, 2, rx445_start
+ sub rx445_off, rx445_pos, 1
+ substr rx445_tgt, rx445_tgt, rx445_off
+ rx445_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan446_done
- goto rxscan446_scan
- rxscan446_loop:
- ($P10) = rx442_cur."from"()
+ ne $I10, -1, rxscan449_done
+ goto rxscan449_scan
+ rxscan449_loop:
+ ($P10) = rx445_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", 223
+ set rx445_pos, $P10
+ ge rx445_pos, rx445_eos, rxscan449_done
+ rxscan449_scan:
+ set_addr $I10, rxscan449_loop
+ rx445_cur."!mark_push"(0, rx445_pos, $I10)
+ rxscan449_done:
+.annotate "line", 227
# rx subrule "statement_prefix" subtype=capture negate=
- rx442_cur."!cursor_pos"(rx442_pos)
- $P10 = rx442_cur."statement_prefix"()
- unless $P10, rx442_fail
- rx442_cur."!mark_push"(0, -1, 0, $P10)
+ rx445_cur."!cursor_pos"(rx445_pos)
+ $P10 = rx445_cur."statement_prefix"()
+ unless $P10, rx445_fail
+ rx445_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement_prefix")
- rx442_pos = $P10."pos"()
+ rx445_pos = $P10."pos"()
# rx pass
- rx442_cur."!cursor_pass"(rx442_pos, "term:sym<statement_prefix>")
- rx442_cur."!cursor_debug"("PASS ", "term:sym<statement_prefix>", " at pos=", rx442_pos)
- .return (rx442_cur)
- rx442_fail:
+ rx445_cur."!cursor_pass"(rx445_pos, "term:sym<statement_prefix>")
+ rx445_cur."!cursor_debug"("PASS ", "term:sym<statement_prefix>", " at pos=", rx445_pos)
+ .return (rx445_cur)
+ rx445_fail:
.annotate "line", 4
- (rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0)
- lt rx442_pos, -1, rx442_done
- eq rx442_pos, -1, rx442_fail
+ (rx445_rep, rx445_pos, $I10, $P10) = rx445_cur."!mark_fail"(0)
+ lt rx445_pos, -1, rx445_done
+ eq rx445_pos, -1, rx445_fail
jump $I10
- rx442_done:
- rx442_cur."!cursor_fail"()
- rx442_cur."!cursor_debug"("FAIL ", "term:sym<statement_prefix>")
- .return (rx442_cur)
+ rx445_done:
+ rx445_cur."!cursor_fail"()
+ rx445_cur."!cursor_debug"("FAIL ", "term:sym<statement_prefix>")
+ .return (rx445_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<statement_prefix>" :subid("110_1267204702.05125") :method
+.sub "!PREFIX__term:sym<statement_prefix>" :subid("110_1271336396.90314") :method
.annotate "line", 4
- $P444 = self."!PREFIX__!subrule"("statement_prefix", "")
- new $P445, "ResizablePMCArray"
- push $P445, $P444
- .return ($P445)
+ $P447 = self."!PREFIX__!subrule"("statement_prefix", "")
+ new $P448, "ResizablePMCArray"
+ push $P448, $P447
+ .return ($P448)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<lambda>" :subid("111_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "term:sym<lambda>" :subid("111_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx448_tgt
- .local int rx448_pos
- .local int rx448_off
- .local int rx448_eos
- .local int rx448_rep
- .local pmc rx448_cur
- (rx448_cur, rx448_pos, rx448_tgt) = self."!cursor_start"()
- rx448_cur."!cursor_debug"("START ", "term:sym<lambda>")
- .lex unicode:"$\x{a2}", rx448_cur
+ .local string rx451_tgt
+ .local int rx451_pos
+ .local int rx451_off
+ .local int rx451_eos
+ .local int rx451_rep
+ .local pmc rx451_cur
+ (rx451_cur, rx451_pos, rx451_tgt) = self."!cursor_start"()
+ rx451_cur."!cursor_debug"("START ", "term:sym<lambda>")
+ .lex unicode:"$\x{a2}", rx451_cur
.local pmc match
.lex "$/", match
- length rx448_eos, rx448_tgt
- set rx448_off, 0
- lt rx448_pos, 2, rx448_start
- sub rx448_off, rx448_pos, 1
- substr rx448_tgt, rx448_tgt, rx448_off
- rx448_start:
+ length rx451_eos, rx451_tgt
+ set rx451_off, 0
+ lt rx451_pos, 2, rx451_start
+ sub rx451_off, rx451_pos, 1
+ substr rx451_tgt, rx451_tgt, rx451_off
+ rx451_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan451_done
- goto rxscan451_scan
- rxscan451_loop:
- ($P10) = rx448_cur."from"()
+ ne $I10, -1, rxscan454_done
+ goto rxscan454_scan
+ rxscan454_loop:
+ ($P10) = rx451_cur."from"()
inc $P10
- set rx448_pos, $P10
- ge rx448_pos, rx448_eos, rxscan451_done
- rxscan451_scan:
- set_addr $I10, rxscan451_loop
- rx448_cur."!mark_push"(0, rx448_pos, $I10)
- rxscan451_done:
-.annotate "line", 224
+ set rx451_pos, $P10
+ ge rx451_pos, rx451_eos, rxscan454_done
+ rxscan454_scan:
+ set_addr $I10, rxscan454_loop
+ rx451_cur."!mark_push"(0, rx451_pos, $I10)
+ rxscan454_done:
+.annotate "line", 228
# rx subrule "lambda" subtype=zerowidth negate=
- rx448_cur."!cursor_pos"(rx448_pos)
- $P10 = rx448_cur."lambda"()
- unless $P10, rx448_fail
+ rx451_cur."!cursor_pos"(rx451_pos)
+ $P10 = rx451_cur."lambda"()
+ unless $P10, rx451_fail
# rx subrule "pblock" subtype=capture negate=
- rx448_cur."!cursor_pos"(rx448_pos)
- $P10 = rx448_cur."pblock"()
- unless $P10, rx448_fail
- rx448_cur."!mark_push"(0, -1, 0, $P10)
+ rx451_cur."!cursor_pos"(rx451_pos)
+ $P10 = rx451_cur."pblock"()
+ unless $P10, rx451_fail
+ rx451_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("pblock")
- rx448_pos = $P10."pos"()
+ rx451_pos = $P10."pos"()
# rx pass
- rx448_cur."!cursor_pass"(rx448_pos, "term:sym<lambda>")
- rx448_cur."!cursor_debug"("PASS ", "term:sym<lambda>", " at pos=", rx448_pos)
- .return (rx448_cur)
- rx448_fail:
+ rx451_cur."!cursor_pass"(rx451_pos, "term:sym<lambda>")
+ rx451_cur."!cursor_debug"("PASS ", "term:sym<lambda>", " at pos=", rx451_pos)
+ .return (rx451_cur)
+ rx451_fail:
.annotate "line", 4
- (rx448_rep, rx448_pos, $I10, $P10) = rx448_cur."!mark_fail"(0)
- lt rx448_pos, -1, rx448_done
- eq rx448_pos, -1, rx448_fail
+ (rx451_rep, rx451_pos, $I10, $P10) = rx451_cur."!mark_fail"(0)
+ lt rx451_pos, -1, rx451_done
+ eq rx451_pos, -1, rx451_fail
jump $I10
- rx448_done:
- rx448_cur."!cursor_fail"()
- rx448_cur."!cursor_debug"("FAIL ", "term:sym<lambda>")
- .return (rx448_cur)
+ rx451_done:
+ rx451_cur."!cursor_fail"()
+ rx451_cur."!cursor_debug"("FAIL ", "term:sym<lambda>")
+ .return (rx451_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<lambda>" :subid("112_1267204702.05125") :method
+.sub "!PREFIX__term:sym<lambda>" :subid("112_1271336396.90314") :method
.annotate "line", 4
- new $P450, "ResizablePMCArray"
- push $P450, ""
- .return ($P450)
+ new $P453, "ResizablePMCArray"
+ push $P453, ""
+ .return ($P453)
.end
.namespace ["NQP";"Grammar"]
-.sub "fatarrow" :subid("113_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "fatarrow" :subid("113_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .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) = self."!cursor_start"()
- rx453_cur."!cursor_debug"("START ", "fatarrow")
- .lex unicode:"$\x{a2}", rx453_cur
+ .local string rx456_tgt
+ .local int rx456_pos
+ .local int rx456_off
+ .local int rx456_eos
+ .local int rx456_rep
+ .local pmc rx456_cur
+ (rx456_cur, rx456_pos, rx456_tgt) = self."!cursor_start"()
+ rx456_cur."!cursor_debug"("START ", "fatarrow")
+ .lex unicode:"$\x{a2}", rx456_cur
.local pmc match
.lex "$/", match
- length rx453_eos, rx453_tgt
- 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:
+ length rx456_eos, rx456_tgt
+ set rx456_off, 0
+ lt rx456_pos, 2, rx456_start
+ sub rx456_off, rx456_pos, 1
+ substr rx456_tgt, rx456_tgt, rx456_off
+ rx456_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan457_done
- goto rxscan457_scan
- rxscan457_loop:
- ($P10) = rx453_cur."from"()
+ ne $I10, -1, rxscan460_done
+ goto rxscan460_scan
+ rxscan460_loop:
+ ($P10) = rx456_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", 227
+ set rx456_pos, $P10
+ ge rx456_pos, rx456_eos, rxscan460_done
+ rxscan460_scan:
+ set_addr $I10, rxscan460_loop
+ rx456_cur."!mark_push"(0, rx456_pos, $I10)
+ rxscan460_done:
+.annotate "line", 231
# rx subrule "identifier" subtype=capture negate=
- rx453_cur."!cursor_pos"(rx453_pos)
- $P10 = rx453_cur."identifier"()
- unless $P10, rx453_fail
- rx453_cur."!mark_push"(0, -1, 0, $P10)
+ rx456_cur."!cursor_pos"(rx456_pos)
+ $P10 = rx456_cur."identifier"()
+ unless $P10, rx456_fail
+ rx456_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("key")
- rx453_pos = $P10."pos"()
- # rx rxquantr458 ** 0..*
- set_addr $I459, rxquantr458_done
- rx453_cur."!mark_push"(0, rx453_pos, $I459)
- rxquantr458_loop:
+ rx456_pos = $P10."pos"()
+ # rx rxquantr461 ** 0..*
+ set_addr $I462, rxquantr461_done
+ rx456_cur."!mark_push"(0, rx456_pos, $I462)
+ rxquantr461_loop:
# rx enumcharlist negate=0
- ge rx453_pos, rx453_eos, rx453_fail
- sub $I10, rx453_pos, rx453_off
- substr $S10, rx453_tgt, $I10, 1
+ ge rx456_pos, rx456_eos, rx456_fail
+ sub $I10, rx456_pos, rx456_off
+ substr $S10, rx456_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, rx453_fail
- inc rx453_pos
- (rx453_rep) = rx453_cur."!mark_commit"($I459)
- rx453_cur."!mark_push"(rx453_rep, rx453_pos, $I459)
- goto rxquantr458_loop
- rxquantr458_done:
+ lt $I11, 0, rx456_fail
+ inc rx456_pos
+ (rx456_rep) = rx456_cur."!mark_commit"($I462)
+ rx456_cur."!mark_push"(rx456_rep, rx456_pos, $I462)
+ goto rxquantr461_loop
+ rxquantr461_done:
# rx literal "=>"
- add $I11, rx453_pos, 2
- gt $I11, rx453_eos, rx453_fail
- sub $I11, rx453_pos, rx453_off
- substr $S10, rx453_tgt, $I11, 2
- ne $S10, "=>", rx453_fail
- add rx453_pos, 2
- # rx subrule "ws" subtype=method negate=
- rx453_cur."!cursor_pos"(rx453_pos)
- $P10 = rx453_cur."ws"()
- unless $P10, rx453_fail
- rx453_pos = $P10."pos"()
+ add $I11, rx456_pos, 2
+ gt $I11, rx456_eos, rx456_fail
+ sub $I11, rx456_pos, rx456_off
+ substr $S10, rx456_tgt, $I11, 2
+ ne $S10, "=>", rx456_fail
+ add rx456_pos, 2
+ # rx subrule "ws" subtype=method negate=
+ rx456_cur."!cursor_pos"(rx456_pos)
+ $P10 = rx456_cur."ws"()
+ unless $P10, rx456_fail
+ rx456_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx453_cur."!cursor_pos"(rx453_pos)
- $P10 = rx453_cur."EXPR"("i=")
- unless $P10, rx453_fail
- rx453_cur."!mark_push"(0, -1, 0, $P10)
+ rx456_cur."!cursor_pos"(rx456_pos)
+ $P10 = rx456_cur."EXPR"("i=")
+ unless $P10, rx456_fail
+ rx456_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("val")
- rx453_pos = $P10."pos"()
-.annotate "line", 226
+ rx456_pos = $P10."pos"()
+.annotate "line", 230
# rx pass
- rx453_cur."!cursor_pass"(rx453_pos, "fatarrow")
- rx453_cur."!cursor_debug"("PASS ", "fatarrow", " at pos=", rx453_pos)
- .return (rx453_cur)
- rx453_fail:
+ rx456_cur."!cursor_pass"(rx456_pos, "fatarrow")
+ rx456_cur."!cursor_debug"("PASS ", "fatarrow", " at pos=", rx456_pos)
+ .return (rx456_cur)
+ rx456_fail:
.annotate "line", 4
- (rx453_rep, rx453_pos, $I10, $P10) = rx453_cur."!mark_fail"(0)
- lt rx453_pos, -1, rx453_done
- eq rx453_pos, -1, rx453_fail
+ (rx456_rep, rx456_pos, $I10, $P10) = rx456_cur."!mark_fail"(0)
+ lt rx456_pos, -1, rx456_done
+ eq rx456_pos, -1, rx456_fail
jump $I10
- rx453_done:
- rx453_cur."!cursor_fail"()
- rx453_cur."!cursor_debug"("FAIL ", "fatarrow")
- .return (rx453_cur)
+ rx456_done:
+ rx456_cur."!cursor_fail"()
+ rx456_cur."!cursor_debug"("FAIL ", "fatarrow")
+ .return (rx456_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__fatarrow" :subid("114_1267204702.05125") :method
+.sub "!PREFIX__fatarrow" :subid("114_1271336396.90314") :method
.annotate "line", 4
- $P455 = self."!PREFIX__!subrule"("key", "")
- new $P456, "ResizablePMCArray"
- push $P456, $P455
- .return ($P456)
+ $P458 = self."!PREFIX__!subrule"("key", "")
+ new $P459, "ResizablePMCArray"
+ push $P459, $P458
+ .return ($P459)
.end
.namespace ["NQP";"Grammar"]
-.sub "colonpair" :subid("115_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "colonpair" :subid("115_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .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) = self."!cursor_start"()
- rx461_cur."!cursor_debug"("START ", "colonpair")
- rx461_cur."!cursor_caparray"("circumfix")
- .lex unicode:"$\x{a2}", rx461_cur
+ .local string rx464_tgt
+ .local int rx464_pos
+ .local int rx464_off
+ .local int rx464_eos
+ .local int rx464_rep
+ .local pmc rx464_cur
+ (rx464_cur, rx464_pos, rx464_tgt) = self."!cursor_start"()
+ rx464_cur."!cursor_debug"("START ", "colonpair")
+ rx464_cur."!cursor_caparray"("circumfix")
+ .lex unicode:"$\x{a2}", rx464_cur
.local pmc match
.lex "$/", match
- length rx461_eos, rx461_tgt
- 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:
+ length rx464_eos, rx464_tgt
+ set rx464_off, 0
+ lt rx464_pos, 2, rx464_start
+ sub rx464_off, rx464_pos, 1
+ substr rx464_tgt, rx464_tgt, rx464_off
+ rx464_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan467_done
- goto rxscan467_scan
- rxscan467_loop:
- ($P10) = rx461_cur."from"()
+ ne $I10, -1, rxscan470_done
+ goto rxscan470_scan
+ rxscan470_loop:
+ ($P10) = rx464_cur."from"()
inc $P10
- set rx461_pos, $P10
- ge rx461_pos, rx461_eos, rxscan467_done
- rxscan467_scan:
- set_addr $I10, rxscan467_loop
- rx461_cur."!mark_push"(0, rx461_pos, $I10)
- rxscan467_done:
-.annotate "line", 231
+ set rx464_pos, $P10
+ ge rx464_pos, rx464_eos, rxscan470_done
+ rxscan470_scan:
+ set_addr $I10, rxscan470_loop
+ rx464_cur."!mark_push"(0, rx464_pos, $I10)
+ rxscan470_done:
+.annotate "line", 235
# rx literal ":"
- add $I11, rx461_pos, 1
- gt $I11, rx461_eos, rx461_fail
- sub $I11, rx461_pos, rx461_off
- substr $S10, rx461_tgt, $I11, 1
- ne $S10, ":", rx461_fail
- add rx461_pos, 1
- alt468_0:
-.annotate "line", 232
- set_addr $I10, alt468_1
- rx461_cur."!mark_push"(0, rx461_pos, $I10)
-.annotate "line", 233
+ 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
+ alt471_0:
+.annotate "line", 236
+ set_addr $I10, alt471_1
+ rx464_cur."!mark_push"(0, rx464_pos, $I10)
+.annotate "line", 237
# rx subcapture "not"
- set_addr $I10, rxcap_469_fail
- rx461_cur."!mark_push"(0, rx461_pos, $I10)
+ set_addr $I10, rxcap_472_fail
+ rx464_cur."!mark_push"(0, rx464_pos, $I10)
# rx literal "!"
- add $I11, rx461_pos, 1
- gt $I11, rx461_eos, rx461_fail
- sub $I11, rx461_pos, rx461_off
- substr $S10, rx461_tgt, $I11, 1
- ne $S10, "!", rx461_fail
- add rx461_pos, 1
- set_addr $I10, rxcap_469_fail
- ($I12, $I11) = rx461_cur."!mark_peek"($I10)
- rx461_cur."!cursor_pos"($I11)
- ($P10) = rx461_cur."!cursor_start"()
- $P10."!cursor_pass"(rx461_pos, "")
- rx461_cur."!mark_push"(0, -1, 0, $P10)
+ 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
+ set_addr $I10, rxcap_472_fail
+ ($I12, $I11) = rx464_cur."!mark_peek"($I10)
+ rx464_cur."!cursor_pos"($I11)
+ ($P10) = rx464_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx464_pos, "")
+ rx464_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("not")
- goto rxcap_469_done
- rxcap_469_fail:
- goto rx461_fail
- rxcap_469_done:
+ goto rxcap_472_done
+ rxcap_472_fail:
+ goto rx464_fail
+ rxcap_472_done:
# rx subrule "identifier" subtype=capture negate=
- rx461_cur."!cursor_pos"(rx461_pos)
- $P10 = rx461_cur."identifier"()
- unless $P10, rx461_fail
- rx461_cur."!mark_push"(0, -1, 0, $P10)
+ rx464_cur."!cursor_pos"(rx464_pos)
+ $P10 = rx464_cur."identifier"()
+ unless $P10, rx464_fail
+ rx464_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("identifier")
- rx461_pos = $P10."pos"()
- goto alt468_end
- alt468_1:
- set_addr $I10, alt468_2
- rx461_cur."!mark_push"(0, rx461_pos, $I10)
-.annotate "line", 234
+ rx464_pos = $P10."pos"()
+ goto alt471_end
+ alt471_1:
+ set_addr $I10, alt471_2
+ rx464_cur."!mark_push"(0, rx464_pos, $I10)
+.annotate "line", 238
# rx subrule "identifier" subtype=capture negate=
- rx461_cur."!cursor_pos"(rx461_pos)
- $P10 = rx461_cur."identifier"()
- unless $P10, rx461_fail
- rx461_cur."!mark_push"(0, -1, 0, $P10)
+ rx464_cur."!cursor_pos"(rx464_pos)
+ $P10 = rx464_cur."identifier"()
+ unless $P10, rx464_fail
+ rx464_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("identifier")
- rx461_pos = $P10."pos"()
- # rx rxquantr470 ** 0..1
- set_addr $I471, rxquantr470_done
- rx461_cur."!mark_push"(0, rx461_pos, $I471)
- rxquantr470_loop:
+ rx464_pos = $P10."pos"()
+ # rx rxquantr473 ** 0..1
+ set_addr $I474, rxquantr473_done
+ rx464_cur."!mark_push"(0, rx464_pos, $I474)
+ rxquantr473_loop:
# rx subrule "circumfix" subtype=capture negate=
- rx461_cur."!cursor_pos"(rx461_pos)
- $P10 = rx461_cur."circumfix"()
- unless $P10, rx461_fail
- rx461_cur."!mark_push"(0, -1, 0, $P10)
+ rx464_cur."!cursor_pos"(rx464_pos)
+ $P10 = rx464_cur."circumfix"()
+ unless $P10, rx464_fail
+ rx464_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("circumfix")
- rx461_pos = $P10."pos"()
- (rx461_rep) = rx461_cur."!mark_commit"($I471)
- rxquantr470_done:
- goto alt468_end
- alt468_2:
-.annotate "line", 235
+ rx464_pos = $P10."pos"()
+ (rx464_rep) = rx464_cur."!mark_commit"($I474)
+ rxquantr473_done:
+ goto alt471_end
+ alt471_2:
+.annotate "line", 239
# rx subrule "circumfix" subtype=capture negate=
- rx461_cur."!cursor_pos"(rx461_pos)
- $P10 = rx461_cur."circumfix"()
- unless $P10, rx461_fail
- rx461_cur."!mark_push"(0, -1, 0, $P10)
+ rx464_cur."!cursor_pos"(rx464_pos)
+ $P10 = rx464_cur."circumfix"()
+ unless $P10, rx464_fail
+ rx464_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("circumfix")
- rx461_pos = $P10."pos"()
- alt468_end:
-.annotate "line", 230
+ rx464_pos = $P10."pos"()
+ alt471_end:
+.annotate "line", 234
# rx pass
- rx461_cur."!cursor_pass"(rx461_pos, "colonpair")
- rx461_cur."!cursor_debug"("PASS ", "colonpair", " at pos=", rx461_pos)
- .return (rx461_cur)
- rx461_fail:
+ rx464_cur."!cursor_pass"(rx464_pos, "colonpair")
+ rx464_cur."!cursor_debug"("PASS ", "colonpair", " at pos=", rx464_pos)
+ .return (rx464_cur)
+ rx464_fail:
.annotate "line", 4
- (rx461_rep, rx461_pos, $I10, $P10) = rx461_cur."!mark_fail"(0)
- lt rx461_pos, -1, rx461_done
- eq rx461_pos, -1, rx461_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
- rx461_done:
- rx461_cur."!cursor_fail"()
- rx461_cur."!cursor_debug"("FAIL ", "colonpair")
- .return (rx461_cur)
+ rx464_done:
+ rx464_cur."!cursor_fail"()
+ rx464_cur."!cursor_debug"("FAIL ", "colonpair")
+ .return (rx464_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__colonpair" :subid("116_1267204702.05125") :method
+.sub "!PREFIX__colonpair" :subid("116_1271336396.90314") :method
.annotate "line", 4
- $P463 = self."!PREFIX__!subrule"("circumfix", ":")
- $P464 = self."!PREFIX__!subrule"("identifier", ":")
- $P465 = self."!PREFIX__!subrule"("identifier", ":!")
- new $P466, "ResizablePMCArray"
- push $P466, $P463
- push $P466, $P464
- push $P466, $P465
- .return ($P466)
+ $P466 = self."!PREFIX__!subrule"("circumfix", ":")
+ $P467 = self."!PREFIX__!subrule"("identifier", ":")
+ $P468 = self."!PREFIX__!subrule"("identifier", ":!")
+ new $P469, "ResizablePMCArray"
+ push $P469, $P466
+ push $P469, $P467
+ push $P469, $P468
+ .return ($P469)
.end
.namespace ["NQP";"Grammar"]
-.sub "variable" :subid("117_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "variable" :subid("117_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx473_tgt
- .local int rx473_pos
- .local int rx473_off
- .local int rx473_eos
- .local int rx473_rep
- .local pmc rx473_cur
- (rx473_cur, rx473_pos, rx473_tgt) = self."!cursor_start"()
- rx473_cur."!cursor_debug"("START ", "variable")
- rx473_cur."!cursor_caparray"("twigil")
- .lex unicode:"$\x{a2}", rx473_cur
+ .local string rx476_tgt
+ .local int rx476_pos
+ .local int rx476_off
+ .local int rx476_eos
+ .local int rx476_rep
+ .local pmc rx476_cur
+ (rx476_cur, rx476_pos, rx476_tgt) = self."!cursor_start"()
+ rx476_cur."!cursor_debug"("START ", "variable")
+ rx476_cur."!cursor_caparray"("twigil")
+ .lex unicode:"$\x{a2}", rx476_cur
.local pmc match
.lex "$/", match
- length rx473_eos, rx473_tgt
- set rx473_off, 0
- lt rx473_pos, 2, rx473_start
- sub rx473_off, rx473_pos, 1
- substr rx473_tgt, rx473_tgt, rx473_off
- rx473_start:
+ length rx476_eos, rx476_tgt
+ 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, rxscan478_done
- goto rxscan478_scan
- rxscan478_loop:
- ($P10) = rx473_cur."from"()
+ ne $I10, -1, rxscan481_done
+ goto rxscan481_scan
+ rxscan481_loop:
+ ($P10) = rx476_cur."from"()
inc $P10
- set rx473_pos, $P10
- ge rx473_pos, rx473_eos, rxscan478_done
- rxscan478_scan:
- set_addr $I10, rxscan478_loop
- rx473_cur."!mark_push"(0, rx473_pos, $I10)
- rxscan478_done:
- alt479_0:
-.annotate "line", 239
- set_addr $I10, alt479_1
- rx473_cur."!mark_push"(0, rx473_pos, $I10)
-.annotate "line", 240
+ set rx476_pos, $P10
+ ge rx476_pos, rx476_eos, rxscan481_done
+ rxscan481_scan:
+ set_addr $I10, rxscan481_loop
+ rx476_cur."!mark_push"(0, rx476_pos, $I10)
+ rxscan481_done:
+ alt482_0:
+.annotate "line", 243
+ set_addr $I10, alt482_1
+ rx476_cur."!mark_push"(0, rx476_pos, $I10)
+.annotate "line", 244
# rx subrule "sigil" subtype=capture negate=
- rx473_cur."!cursor_pos"(rx473_pos)
- $P10 = rx473_cur."sigil"()
- unless $P10, rx473_fail
- rx473_cur."!mark_push"(0, -1, 0, $P10)
+ rx476_cur."!cursor_pos"(rx476_pos)
+ $P10 = rx476_cur."sigil"()
+ unless $P10, rx476_fail
+ rx476_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sigil")
- rx473_pos = $P10."pos"()
- # rx rxquantr480 ** 0..1
- set_addr $I481, rxquantr480_done
- rx473_cur."!mark_push"(0, rx473_pos, $I481)
- rxquantr480_loop:
+ rx476_pos = $P10."pos"()
+ # rx rxquantr483 ** 0..1
+ set_addr $I484, rxquantr483_done
+ rx476_cur."!mark_push"(0, rx476_pos, $I484)
+ rxquantr483_loop:
# rx subrule "twigil" subtype=capture negate=
- rx473_cur."!cursor_pos"(rx473_pos)
- $P10 = rx473_cur."twigil"()
- unless $P10, rx473_fail
- rx473_cur."!mark_push"(0, -1, 0, $P10)
+ rx476_cur."!cursor_pos"(rx476_pos)
+ $P10 = rx476_cur."twigil"()
+ unless $P10, rx476_fail
+ rx476_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("twigil")
- rx473_pos = $P10."pos"()
- (rx473_rep) = rx473_cur."!mark_commit"($I481)
- rxquantr480_done:
+ rx476_pos = $P10."pos"()
+ (rx476_rep) = rx476_cur."!mark_commit"($I484)
+ rxquantr483_done:
# rx subrule "name" subtype=capture negate=
- rx473_cur."!cursor_pos"(rx473_pos)
- $P10 = rx473_cur."name"()
- unless $P10, rx473_fail
- rx473_cur."!mark_push"(0, -1, 0, $P10)
+ rx476_cur."!cursor_pos"(rx476_pos)
+ $P10 = rx476_cur."name"()
+ unless $P10, rx476_fail
+ rx476_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("desigilname")
- rx473_pos = $P10."pos"()
- goto alt479_end
- alt479_1:
- set_addr $I10, alt479_2
- rx473_cur."!mark_push"(0, rx473_pos, $I10)
-.annotate "line", 241
+ rx476_pos = $P10."pos"()
+ goto alt482_end
+ alt482_1:
+ set_addr $I10, alt482_2
+ rx476_cur."!mark_push"(0, rx476_pos, $I10)
+.annotate "line", 245
# rx subrule "sigil" subtype=capture negate=
- rx473_cur."!cursor_pos"(rx473_pos)
- $P10 = rx473_cur."sigil"()
- unless $P10, rx473_fail
- rx473_cur."!mark_push"(0, -1, 0, $P10)
+ rx476_cur."!cursor_pos"(rx476_pos)
+ $P10 = rx476_cur."sigil"()
+ unless $P10, rx476_fail
+ rx476_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sigil")
- rx473_pos = $P10."pos"()
+ rx476_pos = $P10."pos"()
# rx enumcharlist negate=0 zerowidth
- ge rx473_pos, rx473_eos, rx473_fail
- sub $I10, rx473_pos, rx473_off
- substr $S10, rx473_tgt, $I10, 1
+ ge rx476_pos, rx476_eos, rx476_fail
+ sub $I10, rx476_pos, rx476_off
+ substr $S10, rx476_tgt, $I10, 1
index $I11, "<[", $S10
- lt $I11, 0, rx473_fail
+ lt $I11, 0, rx476_fail
# rx subrule "postcircumfix" subtype=capture negate=
- rx473_cur."!cursor_pos"(rx473_pos)
- $P10 = rx473_cur."postcircumfix"()
- unless $P10, rx473_fail
- rx473_cur."!mark_push"(0, -1, 0, $P10)
+ rx476_cur."!cursor_pos"(rx476_pos)
+ $P10 = rx476_cur."postcircumfix"()
+ unless $P10, rx476_fail
+ rx476_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("postcircumfix")
- rx473_pos = $P10."pos"()
- goto alt479_end
- alt479_2:
-.annotate "line", 242
+ rx476_pos = $P10."pos"()
+ goto alt482_end
+ alt482_2:
+.annotate "line", 246
# rx subcapture "sigil"
- set_addr $I10, rxcap_482_fail
- rx473_cur."!mark_push"(0, rx473_pos, $I10)
+ set_addr $I10, rxcap_485_fail
+ rx476_cur."!mark_push"(0, rx476_pos, $I10)
# rx literal "$"
- add $I11, rx473_pos, 1
- gt $I11, rx473_eos, rx473_fail
- sub $I11, rx473_pos, rx473_off
- substr $S10, rx473_tgt, $I11, 1
- ne $S10, "$", rx473_fail
- add rx473_pos, 1
- set_addr $I10, rxcap_482_fail
- ($I12, $I11) = rx473_cur."!mark_peek"($I10)
- rx473_cur."!cursor_pos"($I11)
- ($P10) = rx473_cur."!cursor_start"()
- $P10."!cursor_pass"(rx473_pos, "")
- rx473_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx476_pos, 1
+ gt $I11, rx476_eos, rx476_fail
+ sub $I11, rx476_pos, rx476_off
+ substr $S10, rx476_tgt, $I11, 1
+ ne $S10, "$", rx476_fail
+ add rx476_pos, 1
+ set_addr $I10, rxcap_485_fail
+ ($I12, $I11) = rx476_cur."!mark_peek"($I10)
+ rx476_cur."!cursor_pos"($I11)
+ ($P10) = rx476_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx476_pos, "")
+ rx476_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sigil")
- goto rxcap_482_done
- rxcap_482_fail:
- goto rx473_fail
- rxcap_482_done:
+ goto rxcap_485_done
+ rxcap_485_fail:
+ goto rx476_fail
+ rxcap_485_done:
# rx subcapture "desigilname"
- set_addr $I10, rxcap_483_fail
- rx473_cur."!mark_push"(0, rx473_pos, $I10)
+ set_addr $I10, rxcap_486_fail
+ rx476_cur."!mark_push"(0, rx476_pos, $I10)
# rx enumcharlist negate=0
- ge rx473_pos, rx473_eos, rx473_fail
- sub $I10, rx473_pos, rx473_off
- substr $S10, rx473_tgt, $I10, 1
+ ge rx476_pos, rx476_eos, rx476_fail
+ sub $I10, rx476_pos, rx476_off
+ substr $S10, rx476_tgt, $I10, 1
index $I11, "/_!", $S10
- lt $I11, 0, rx473_fail
- inc rx473_pos
- set_addr $I10, rxcap_483_fail
- ($I12, $I11) = rx473_cur."!mark_peek"($I10)
- rx473_cur."!cursor_pos"($I11)
- ($P10) = rx473_cur."!cursor_start"()
- $P10."!cursor_pass"(rx473_pos, "")
- rx473_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx476_fail
+ inc rx476_pos
+ set_addr $I10, rxcap_486_fail
+ ($I12, $I11) = rx476_cur."!mark_peek"($I10)
+ rx476_cur."!cursor_pos"($I11)
+ ($P10) = rx476_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx476_pos, "")
+ rx476_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("desigilname")
- goto rxcap_483_done
- rxcap_483_fail:
- goto rx473_fail
- rxcap_483_done:
- alt479_end:
-.annotate "line", 239
+ goto rxcap_486_done
+ rxcap_486_fail:
+ goto rx476_fail
+ rxcap_486_done:
+ alt482_end:
+.annotate "line", 243
# rx pass
- rx473_cur."!cursor_pass"(rx473_pos, "variable")
- rx473_cur."!cursor_debug"("PASS ", "variable", " at pos=", rx473_pos)
- .return (rx473_cur)
- rx473_fail:
+ rx476_cur."!cursor_pass"(rx476_pos, "variable")
+ rx476_cur."!cursor_debug"("PASS ", "variable", " at pos=", rx476_pos)
+ .return (rx476_cur)
+ rx476_fail:
.annotate "line", 4
- (rx473_rep, rx473_pos, $I10, $P10) = rx473_cur."!mark_fail"(0)
- lt rx473_pos, -1, rx473_done
- eq rx473_pos, -1, rx473_fail
+ (rx476_rep, rx476_pos, $I10, $P10) = rx476_cur."!mark_fail"(0)
+ lt rx476_pos, -1, rx476_done
+ eq rx476_pos, -1, rx476_fail
jump $I10
- rx473_done:
- rx473_cur."!cursor_fail"()
- rx473_cur."!cursor_debug"("FAIL ", "variable")
- .return (rx473_cur)
+ rx476_done:
+ rx476_cur."!cursor_fail"()
+ rx476_cur."!cursor_debug"("FAIL ", "variable")
+ .return (rx476_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable" :subid("118_1267204702.05125") :method
+.sub "!PREFIX__variable" :subid("118_1271336396.90314") :method
.annotate "line", 4
- $P475 = self."!PREFIX__!subrule"("sigil", "")
- $P476 = self."!PREFIX__!subrule"("sigil", "")
- new $P477, "ResizablePMCArray"
- push $P477, "$!"
- push $P477, "$_"
- push $P477, "$/"
- push $P477, $P475
- push $P477, $P476
- .return ($P477)
+ $P478 = self."!PREFIX__!subrule"("sigil", "")
+ $P479 = self."!PREFIX__!subrule"("sigil", "")
+ new $P480, "ResizablePMCArray"
+ push $P480, "$!"
+ push $P480, "$_"
+ push $P480, "$/"
+ push $P480, $P478
+ push $P480, $P479
+ .return ($P480)
.end
.namespace ["NQP";"Grammar"]
-.sub "sigil" :subid("119_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "sigil" :subid("119_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx485_tgt
- .local int rx485_pos
- .local int rx485_off
- .local int rx485_eos
- .local int rx485_rep
- .local pmc rx485_cur
- (rx485_cur, rx485_pos, rx485_tgt) = self."!cursor_start"()
- rx485_cur."!cursor_debug"("START ", "sigil")
- .lex unicode:"$\x{a2}", rx485_cur
+ .local string rx488_tgt
+ .local int rx488_pos
+ .local int rx488_off
+ .local int rx488_eos
+ .local int rx488_rep
+ .local pmc rx488_cur
+ (rx488_cur, rx488_pos, rx488_tgt) = self."!cursor_start"()
+ rx488_cur."!cursor_debug"("START ", "sigil")
+ .lex unicode:"$\x{a2}", rx488_cur
.local pmc match
.lex "$/", match
- length rx485_eos, rx485_tgt
- set rx485_off, 0
- lt rx485_pos, 2, rx485_start
- sub rx485_off, rx485_pos, 1
- substr rx485_tgt, rx485_tgt, rx485_off
- rx485_start:
+ length rx488_eos, rx488_tgt
+ set rx488_off, 0
+ lt rx488_pos, 2, rx488_start
+ sub rx488_off, rx488_pos, 1
+ substr rx488_tgt, rx488_tgt, rx488_off
+ rx488_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan488_done
- goto rxscan488_scan
- rxscan488_loop:
- ($P10) = rx485_cur."from"()
+ ne $I10, -1, rxscan491_done
+ goto rxscan491_scan
+ rxscan491_loop:
+ ($P10) = rx488_cur."from"()
inc $P10
- set rx485_pos, $P10
- ge rx485_pos, rx485_eos, rxscan488_done
- rxscan488_scan:
- set_addr $I10, rxscan488_loop
- rx485_cur."!mark_push"(0, rx485_pos, $I10)
- rxscan488_done:
-.annotate "line", 245
+ set rx488_pos, $P10
+ ge rx488_pos, rx488_eos, rxscan491_done
+ rxscan491_scan:
+ set_addr $I10, rxscan491_loop
+ rx488_cur."!mark_push"(0, rx488_pos, $I10)
+ rxscan491_done:
+.annotate "line", 249
# rx enumcharlist negate=0
- ge rx485_pos, rx485_eos, rx485_fail
- sub $I10, rx485_pos, rx485_off
- substr $S10, rx485_tgt, $I10, 1
+ ge rx488_pos, rx488_eos, rx488_fail
+ sub $I10, rx488_pos, rx488_off
+ substr $S10, rx488_tgt, $I10, 1
index $I11, "$@%&", $S10
- lt $I11, 0, rx485_fail
- inc rx485_pos
+ lt $I11, 0, rx488_fail
+ inc rx488_pos
# rx pass
- rx485_cur."!cursor_pass"(rx485_pos, "sigil")
- rx485_cur."!cursor_debug"("PASS ", "sigil", " at pos=", rx485_pos)
- .return (rx485_cur)
- rx485_fail:
+ rx488_cur."!cursor_pass"(rx488_pos, "sigil")
+ rx488_cur."!cursor_debug"("PASS ", "sigil", " at pos=", rx488_pos)
+ .return (rx488_cur)
+ rx488_fail:
.annotate "line", 4
- (rx485_rep, rx485_pos, $I10, $P10) = rx485_cur."!mark_fail"(0)
- lt rx485_pos, -1, rx485_done
- eq rx485_pos, -1, rx485_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
- rx485_done:
- rx485_cur."!cursor_fail"()
- rx485_cur."!cursor_debug"("FAIL ", "sigil")
- .return (rx485_cur)
+ rx488_done:
+ rx488_cur."!cursor_fail"()
+ rx488_cur."!cursor_debug"("FAIL ", "sigil")
+ .return (rx488_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__sigil" :subid("120_1267204702.05125") :method
+.sub "!PREFIX__sigil" :subid("120_1271336396.90314") :method
.annotate "line", 4
- new $P487, "ResizablePMCArray"
- push $P487, "&"
- push $P487, "%"
- push $P487, "@"
- push $P487, "$"
- .return ($P487)
+ new $P490, "ResizablePMCArray"
+ push $P490, "&"
+ push $P490, "%"
+ push $P490, "@"
+ push $P490, "$"
+ .return ($P490)
.end
.namespace ["NQP";"Grammar"]
-.sub "twigil" :subid("121_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "twigil" :subid("121_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx490_tgt
- .local int rx490_pos
- .local int rx490_off
- .local int rx490_eos
- .local int rx490_rep
- .local pmc rx490_cur
- (rx490_cur, rx490_pos, rx490_tgt) = self."!cursor_start"()
- rx490_cur."!cursor_debug"("START ", "twigil")
- .lex unicode:"$\x{a2}", rx490_cur
+ .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 ", "twigil")
+ .lex unicode:"$\x{a2}", rx493_cur
.local pmc match
.lex "$/", match
- length rx490_eos, rx490_tgt
- set rx490_off, 0
- lt rx490_pos, 2, rx490_start
- sub rx490_off, rx490_pos, 1
- substr rx490_tgt, rx490_tgt, rx490_off
- rx490_start:
+ length rx493_eos, rx493_tgt
+ 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, rxscan493_done
- goto rxscan493_scan
- rxscan493_loop:
- ($P10) = rx490_cur."from"()
+ ne $I10, -1, rxscan496_done
+ goto rxscan496_scan
+ rxscan496_loop:
+ ($P10) = rx493_cur."from"()
inc $P10
- set rx490_pos, $P10
- ge rx490_pos, rx490_eos, rxscan493_done
- rxscan493_scan:
- set_addr $I10, rxscan493_loop
- rx490_cur."!mark_push"(0, rx490_pos, $I10)
- rxscan493_done:
-.annotate "line", 247
+ 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", 251
# rx enumcharlist negate=0
- ge rx490_pos, rx490_eos, rx490_fail
- sub $I10, rx490_pos, rx490_off
- substr $S10, rx490_tgt, $I10, 1
+ ge rx493_pos, rx493_eos, rx493_fail
+ sub $I10, rx493_pos, rx493_off
+ substr $S10, rx493_tgt, $I10, 1
index $I11, "*!?", $S10
- lt $I11, 0, rx490_fail
- inc rx490_pos
+ lt $I11, 0, rx493_fail
+ inc rx493_pos
# rx pass
- rx490_cur."!cursor_pass"(rx490_pos, "twigil")
- rx490_cur."!cursor_debug"("PASS ", "twigil", " at pos=", rx490_pos)
- .return (rx490_cur)
- rx490_fail:
+ rx493_cur."!cursor_pass"(rx493_pos, "twigil")
+ rx493_cur."!cursor_debug"("PASS ", "twigil", " at pos=", rx493_pos)
+ .return (rx493_cur)
+ rx493_fail:
.annotate "line", 4
- (rx490_rep, rx490_pos, $I10, $P10) = rx490_cur."!mark_fail"(0)
- lt rx490_pos, -1, rx490_done
- eq rx490_pos, -1, rx490_fail
+ (rx493_rep, rx493_pos, $I10, $P10) = rx493_cur."!mark_fail"(0)
+ lt rx493_pos, -1, rx493_done
+ eq rx493_pos, -1, rx493_fail
jump $I10
- rx490_done:
- rx490_cur."!cursor_fail"()
- rx490_cur."!cursor_debug"("FAIL ", "twigil")
- .return (rx490_cur)
+ rx493_done:
+ rx493_cur."!cursor_fail"()
+ rx493_cur."!cursor_debug"("FAIL ", "twigil")
+ .return (rx493_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__twigil" :subid("122_1267204702.05125") :method
+.sub "!PREFIX__twigil" :subid("122_1271336396.90314") :method
.annotate "line", 4
- new $P492, "ResizablePMCArray"
- push $P492, "?"
- push $P492, "!"
- push $P492, "*"
- .return ($P492)
+ new $P495, "ResizablePMCArray"
+ push $P495, "?"
+ push $P495, "!"
+ push $P495, "*"
+ .return ($P495)
.end
.namespace ["NQP";"Grammar"]
-.sub "package_declarator" :subid("123_1267204702.05125") :method
-.annotate "line", 249
- $P495 = self."!protoregex"("package_declarator")
- .return ($P495)
+.sub "package_declarator" :subid("123_1271336396.90314") :method
+.annotate "line", 253
+ $P498 = self."!protoregex"("package_declarator")
+ .return ($P498)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator" :subid("124_1267204702.05125") :method
-.annotate "line", 249
- $P497 = self."!PREFIX__!protoregex"("package_declarator")
- .return ($P497)
+.sub "!PREFIX__package_declarator" :subid("124_1271336396.90314") :method
+.annotate "line", 253
+ $P500 = self."!PREFIX__!protoregex"("package_declarator")
+ .return ($P500)
.end
.namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<module>" :subid("125_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "package_declarator:sym<module>" :subid("125_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .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 ", "package_declarator:sym<module>")
- .lex unicode:"$\x{a2}", rx499_cur
- .local pmc match
- .lex "$/", match
- length rx499_eos, rx499_tgt
- 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, rxscan503_done
- goto rxscan503_scan
- rxscan503_loop:
- ($P10) = rx499_cur."from"()
- inc $P10
- set rx499_pos, $P10
- ge rx499_pos, rx499_eos, rxscan503_done
- rxscan503_scan:
- set_addr $I10, rxscan503_loop
- rx499_cur."!mark_push"(0, rx499_pos, $I10)
- rxscan503_done:
-.annotate "line", 250
+ .local string rx502_tgt
+ .local int rx502_pos
+ .local int rx502_off
+ .local int rx502_eos
+ .local int rx502_rep
+ .local pmc rx502_cur
+ (rx502_cur, rx502_pos, rx502_tgt) = self."!cursor_start"()
+ rx502_cur."!cursor_debug"("START ", "package_declarator:sym<module>")
+ .lex unicode:"$\x{a2}", rx502_cur
+ .local pmc match
+ .lex "$/", match
+ length rx502_eos, rx502_tgt
+ set rx502_off, 0
+ lt rx502_pos, 2, rx502_start
+ sub rx502_off, rx502_pos, 1
+ substr rx502_tgt, rx502_tgt, rx502_off
+ rx502_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan506_done
+ goto rxscan506_scan
+ rxscan506_loop:
+ ($P10) = rx502_cur."from"()
+ inc $P10
+ set rx502_pos, $P10
+ ge rx502_pos, rx502_eos, rxscan506_done
+ rxscan506_scan:
+ set_addr $I10, rxscan506_loop
+ rx502_cur."!mark_push"(0, rx502_pos, $I10)
+ rxscan506_done:
+.annotate "line", 254
# rx subcapture "sym"
- set_addr $I10, rxcap_504_fail
- rx499_cur."!mark_push"(0, rx499_pos, $I10)
+ set_addr $I10, rxcap_507_fail
+ rx502_cur."!mark_push"(0, rx502_pos, $I10)
# rx literal "module"
- add $I11, rx499_pos, 6
- gt $I11, rx499_eos, rx499_fail
- sub $I11, rx499_pos, rx499_off
- substr $S10, rx499_tgt, $I11, 6
- ne $S10, "module", rx499_fail
- add rx499_pos, 6
- set_addr $I10, rxcap_504_fail
- ($I12, $I11) = rx499_cur."!mark_peek"($I10)
- rx499_cur."!cursor_pos"($I11)
- ($P10) = rx499_cur."!cursor_start"()
- $P10."!cursor_pass"(rx499_pos, "")
- rx499_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx502_pos, 6
+ gt $I11, rx502_eos, rx502_fail
+ sub $I11, rx502_pos, rx502_off
+ substr $S10, rx502_tgt, $I11, 6
+ ne $S10, "module", rx502_fail
+ add rx502_pos, 6
+ set_addr $I10, rxcap_507_fail
+ ($I12, $I11) = rx502_cur."!mark_peek"($I10)
+ rx502_cur."!cursor_pos"($I11)
+ ($P10) = rx502_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx502_pos, "")
+ rx502_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_504_done
- rxcap_504_fail:
- goto rx499_fail
- rxcap_504_done:
+ goto rxcap_507_done
+ rxcap_507_fail:
+ goto rx502_fail
+ rxcap_507_done:
# rx subrule "package_def" subtype=capture negate=
- rx499_cur."!cursor_pos"(rx499_pos)
- $P10 = rx499_cur."package_def"()
- unless $P10, rx499_fail
- rx499_cur."!mark_push"(0, -1, 0, $P10)
+ rx502_cur."!cursor_pos"(rx502_pos)
+ $P10 = rx502_cur."package_def"()
+ unless $P10, rx502_fail
+ rx502_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("package_def")
- rx499_pos = $P10."pos"()
+ rx502_pos = $P10."pos"()
# rx pass
- rx499_cur."!cursor_pass"(rx499_pos, "package_declarator:sym<module>")
- rx499_cur."!cursor_debug"("PASS ", "package_declarator:sym<module>", " at pos=", rx499_pos)
- .return (rx499_cur)
- rx499_fail:
+ rx502_cur."!cursor_pass"(rx502_pos, "package_declarator:sym<module>")
+ rx502_cur."!cursor_debug"("PASS ", "package_declarator:sym<module>", " at pos=", rx502_pos)
+ .return (rx502_cur)
+ rx502_fail:
.annotate "line", 4
- (rx499_rep, rx499_pos, $I10, $P10) = rx499_cur."!mark_fail"(0)
- lt rx499_pos, -1, rx499_done
- eq rx499_pos, -1, rx499_fail
+ (rx502_rep, rx502_pos, $I10, $P10) = rx502_cur."!mark_fail"(0)
+ lt rx502_pos, -1, rx502_done
+ eq rx502_pos, -1, rx502_fail
jump $I10
- rx499_done:
- rx499_cur."!cursor_fail"()
- rx499_cur."!cursor_debug"("FAIL ", "package_declarator:sym<module>")
- .return (rx499_cur)
+ rx502_done:
+ rx502_cur."!cursor_fail"()
+ rx502_cur."!cursor_debug"("FAIL ", "package_declarator:sym<module>")
+ .return (rx502_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<module>" :subid("126_1267204702.05125") :method
+.sub "!PREFIX__package_declarator:sym<module>" :subid("126_1271336396.90314") :method
.annotate "line", 4
- $P501 = self."!PREFIX__!subrule"("package_def", "module")
- new $P502, "ResizablePMCArray"
- push $P502, $P501
- .return ($P502)
+ $P504 = self."!PREFIX__!subrule"("package_def", "module")
+ new $P505, "ResizablePMCArray"
+ push $P505, $P504
+ .return ($P505)
.end
.namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<class>" :subid("127_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "package_declarator:sym<class>" :subid("127_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx506_tgt
- .local int rx506_pos
- .local int rx506_off
- .local int rx506_eos
- .local int rx506_rep
- .local pmc rx506_cur
- (rx506_cur, rx506_pos, rx506_tgt) = self."!cursor_start"()
- rx506_cur."!cursor_debug"("START ", "package_declarator:sym<class>")
- .lex unicode:"$\x{a2}", rx506_cur
+ .local string rx509_tgt
+ .local int rx509_pos
+ .local int rx509_off
+ .local int rx509_eos
+ .local int rx509_rep
+ .local pmc rx509_cur
+ (rx509_cur, rx509_pos, rx509_tgt) = self."!cursor_start"()
+ rx509_cur."!cursor_debug"("START ", "package_declarator:sym<class>")
+ .lex unicode:"$\x{a2}", rx509_cur
.local pmc match
.lex "$/", match
- length rx506_eos, rx506_tgt
- set rx506_off, 0
- lt rx506_pos, 2, rx506_start
- sub rx506_off, rx506_pos, 1
- substr rx506_tgt, rx506_tgt, rx506_off
- rx506_start:
+ length rx509_eos, rx509_tgt
+ set rx509_off, 0
+ lt rx509_pos, 2, rx509_start
+ sub rx509_off, rx509_pos, 1
+ substr rx509_tgt, rx509_tgt, rx509_off
+ rx509_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan511_done
- goto rxscan511_scan
- rxscan511_loop:
- ($P10) = rx506_cur."from"()
+ ne $I10, -1, rxscan514_done
+ goto rxscan514_scan
+ rxscan514_loop:
+ ($P10) = rx509_cur."from"()
inc $P10
- set rx506_pos, $P10
- ge rx506_pos, rx506_eos, rxscan511_done
- rxscan511_scan:
- set_addr $I10, rxscan511_loop
- rx506_cur."!mark_push"(0, rx506_pos, $I10)
- rxscan511_done:
-.annotate "line", 251
+ set rx509_pos, $P10
+ ge rx509_pos, rx509_eos, rxscan514_done
+ rxscan514_scan:
+ set_addr $I10, rxscan514_loop
+ rx509_cur."!mark_push"(0, rx509_pos, $I10)
+ rxscan514_done:
+.annotate "line", 255
# rx subcapture "sym"
- set_addr $I10, rxcap_513_fail
- rx506_cur."!mark_push"(0, rx506_pos, $I10)
- alt512_0:
- set_addr $I10, alt512_1
- rx506_cur."!mark_push"(0, rx506_pos, $I10)
+ set_addr $I10, rxcap_516_fail
+ rx509_cur."!mark_push"(0, rx509_pos, $I10)
+ alt515_0:
+ set_addr $I10, alt515_1
+ rx509_cur."!mark_push"(0, rx509_pos, $I10)
# rx literal "class"
- add $I11, rx506_pos, 5
- gt $I11, rx506_eos, rx506_fail
- sub $I11, rx506_pos, rx506_off
- substr $S10, rx506_tgt, $I11, 5
- ne $S10, "class", rx506_fail
- add rx506_pos, 5
- goto alt512_end
- alt512_1:
+ add $I11, rx509_pos, 5
+ gt $I11, rx509_eos, rx509_fail
+ sub $I11, rx509_pos, rx509_off
+ substr $S10, rx509_tgt, $I11, 5
+ ne $S10, "class", rx509_fail
+ add rx509_pos, 5
+ goto alt515_end
+ alt515_1:
# rx literal "grammar"
- add $I11, rx506_pos, 7
- gt $I11, rx506_eos, rx506_fail
- sub $I11, rx506_pos, rx506_off
- substr $S10, rx506_tgt, $I11, 7
- ne $S10, "grammar", rx506_fail
- add rx506_pos, 7
- alt512_end:
- set_addr $I10, rxcap_513_fail
- ($I12, $I11) = rx506_cur."!mark_peek"($I10)
- rx506_cur."!cursor_pos"($I11)
- ($P10) = rx506_cur."!cursor_start"()
- $P10."!cursor_pass"(rx506_pos, "")
- rx506_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx509_pos, 7
+ gt $I11, rx509_eos, rx509_fail
+ sub $I11, rx509_pos, rx509_off
+ substr $S10, rx509_tgt, $I11, 7
+ ne $S10, "grammar", rx509_fail
+ add rx509_pos, 7
+ alt515_end:
+ set_addr $I10, rxcap_516_fail
+ ($I12, $I11) = rx509_cur."!mark_peek"($I10)
+ rx509_cur."!cursor_pos"($I11)
+ ($P10) = rx509_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx509_pos, "")
+ rx509_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_513_done
- rxcap_513_fail:
- goto rx506_fail
- rxcap_513_done:
+ goto rxcap_516_done
+ rxcap_516_fail:
+ goto rx509_fail
+ rxcap_516_done:
# rx subrule "package_def" subtype=capture negate=
- rx506_cur."!cursor_pos"(rx506_pos)
- $P10 = rx506_cur."package_def"()
- unless $P10, rx506_fail
- rx506_cur."!mark_push"(0, -1, 0, $P10)
+ rx509_cur."!cursor_pos"(rx509_pos)
+ $P10 = rx509_cur."package_def"()
+ unless $P10, rx509_fail
+ rx509_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("package_def")
- rx506_pos = $P10."pos"()
+ rx509_pos = $P10."pos"()
# rx pass
- rx506_cur."!cursor_pass"(rx506_pos, "package_declarator:sym<class>")
- rx506_cur."!cursor_debug"("PASS ", "package_declarator:sym<class>", " at pos=", rx506_pos)
- .return (rx506_cur)
- rx506_fail:
+ rx509_cur."!cursor_pass"(rx509_pos, "package_declarator:sym<class>")
+ rx509_cur."!cursor_debug"("PASS ", "package_declarator:sym<class>", " at pos=", rx509_pos)
+ .return (rx509_cur)
+ rx509_fail:
.annotate "line", 4
- (rx506_rep, rx506_pos, $I10, $P10) = rx506_cur."!mark_fail"(0)
- lt rx506_pos, -1, rx506_done
- eq rx506_pos, -1, rx506_fail
+ (rx509_rep, rx509_pos, $I10, $P10) = rx509_cur."!mark_fail"(0)
+ lt rx509_pos, -1, rx509_done
+ eq rx509_pos, -1, rx509_fail
jump $I10
- rx506_done:
- rx506_cur."!cursor_fail"()
- rx506_cur."!cursor_debug"("FAIL ", "package_declarator:sym<class>")
- .return (rx506_cur)
+ rx509_done:
+ rx509_cur."!cursor_fail"()
+ rx509_cur."!cursor_debug"("FAIL ", "package_declarator:sym<class>")
+ .return (rx509_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<class>" :subid("128_1267204702.05125") :method
+.sub "!PREFIX__package_declarator:sym<class>" :subid("128_1271336396.90314") :method
.annotate "line", 4
- $P508 = self."!PREFIX__!subrule"("package_def", "grammar")
- $P509 = self."!PREFIX__!subrule"("package_def", "class")
- new $P510, "ResizablePMCArray"
- push $P510, $P508
- push $P510, $P509
- .return ($P510)
+ $P511 = self."!PREFIX__!subrule"("package_def", "grammar")
+ $P512 = self."!PREFIX__!subrule"("package_def", "class")
+ new $P513, "ResizablePMCArray"
+ push $P513, $P511
+ push $P513, $P512
+ .return ($P513)
.end
.namespace ["NQP";"Grammar"]
-.sub "package_def" :subid("129_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "package_def" :subid("129_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx515_tgt
- .local int rx515_pos
- .local int rx515_off
- .local int rx515_eos
- .local int rx515_rep
- .local pmc rx515_cur
- (rx515_cur, rx515_pos, rx515_tgt) = self."!cursor_start"()
- rx515_cur."!cursor_debug"("START ", "package_def")
- rx515_cur."!cursor_caparray"("parent")
- .lex unicode:"$\x{a2}", rx515_cur
+ .local string rx518_tgt
+ .local int rx518_pos
+ .local int rx518_off
+ .local int rx518_eos
+ .local int rx518_rep
+ .local pmc rx518_cur
+ (rx518_cur, rx518_pos, rx518_tgt) = self."!cursor_start"()
+ rx518_cur."!cursor_debug"("START ", "package_def")
+ rx518_cur."!cursor_caparray"("parent")
+ .lex unicode:"$\x{a2}", rx518_cur
.local pmc match
.lex "$/", match
- length rx515_eos, rx515_tgt
- set rx515_off, 0
- lt rx515_pos, 2, rx515_start
- sub rx515_off, rx515_pos, 1
- substr rx515_tgt, rx515_tgt, rx515_off
- rx515_start:
+ length rx518_eos, rx518_tgt
+ set rx518_off, 0
+ lt rx518_pos, 2, rx518_start
+ sub rx518_off, rx518_pos, 1
+ substr rx518_tgt, rx518_tgt, rx518_off
+ rx518_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan518_done
- goto rxscan518_scan
- rxscan518_loop:
- ($P10) = rx515_cur."from"()
+ ne $I10, -1, rxscan521_done
+ goto rxscan521_scan
+ rxscan521_loop:
+ ($P10) = rx518_cur."from"()
inc $P10
- set rx515_pos, $P10
- ge rx515_pos, rx515_eos, rxscan518_done
- rxscan518_scan:
- set_addr $I10, rxscan518_loop
- rx515_cur."!mark_push"(0, rx515_pos, $I10)
- rxscan518_done:
-.annotate "line", 253
+ set rx518_pos, $P10
+ ge rx518_pos, rx518_eos, rxscan521_done
+ rxscan521_scan:
+ set_addr $I10, rxscan521_loop
+ rx518_cur."!mark_push"(0, rx518_pos, $I10)
+ rxscan521_done:
+.annotate "line", 257
# rx subrule "ws" subtype=method negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."ws"()
- unless $P10, rx515_fail
- rx515_pos = $P10."pos"()
-.annotate "line", 254
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."ws"()
+ unless $P10, rx518_fail
+ rx518_pos = $P10."pos"()
+.annotate "line", 258
# rx subrule "name" subtype=capture negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."name"()
- unless $P10, rx515_fail
- rx515_cur."!mark_push"(0, -1, 0, $P10)
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."name"()
+ unless $P10, rx518_fail
+ rx518_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("name")
- rx515_pos = $P10."pos"()
+ rx518_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."ws"()
- unless $P10, rx515_fail
- rx515_pos = $P10."pos"()
-.annotate "line", 255
- # rx rxquantr521 ** 0..1
- set_addr $I525, rxquantr521_done
- rx515_cur."!mark_push"(0, rx515_pos, $I525)
- rxquantr521_loop:
- # rx subrule "ws" subtype=method negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."ws"()
- unless $P10, rx515_fail
- rx515_pos = $P10."pos"()
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."ws"()
+ unless $P10, rx518_fail
+ rx518_pos = $P10."pos"()
+.annotate "line", 259
+ # rx rxquantr524 ** 0..1
+ set_addr $I528, rxquantr524_done
+ rx518_cur."!mark_push"(0, rx518_pos, $I528)
+ rxquantr524_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."ws"()
+ unless $P10, rx518_fail
+ rx518_pos = $P10."pos"()
# rx literal "is"
- add $I11, rx515_pos, 2
- gt $I11, rx515_eos, rx515_fail
- sub $I11, rx515_pos, rx515_off
- substr $S10, rx515_tgt, $I11, 2
- ne $S10, "is", rx515_fail
- add rx515_pos, 2
- # rx subrule "ws" subtype=method negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."ws"()
- unless $P10, rx515_fail
- rx515_pos = $P10."pos"()
+ add $I11, rx518_pos, 2
+ gt $I11, rx518_eos, rx518_fail
+ sub $I11, rx518_pos, rx518_off
+ substr $S10, rx518_tgt, $I11, 2
+ ne $S10, "is", rx518_fail
+ add rx518_pos, 2
+ # rx subrule "ws" subtype=method negate=
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."ws"()
+ unless $P10, rx518_fail
+ rx518_pos = $P10."pos"()
# rx subrule "name" subtype=capture negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."name"()
- unless $P10, rx515_fail
- rx515_cur."!mark_push"(0, -1, 0, $P10)
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."name"()
+ unless $P10, rx518_fail
+ rx518_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("parent")
- rx515_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."ws"()
- unless $P10, rx515_fail
- rx515_pos = $P10."pos"()
- (rx515_rep) = rx515_cur."!mark_commit"($I525)
- rxquantr521_done:
- # rx subrule "ws" subtype=method negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."ws"()
- unless $P10, rx515_fail
- rx515_pos = $P10."pos"()
- alt527_0:
-.annotate "line", 256
- set_addr $I10, alt527_1
- rx515_cur."!mark_push"(0, rx515_pos, $I10)
-.annotate "line", 257
+ rx518_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."ws"()
- unless $P10, rx515_fail
- rx515_pos = $P10."pos"()
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."ws"()
+ unless $P10, rx518_fail
+ rx518_pos = $P10."pos"()
+ (rx518_rep) = rx518_cur."!mark_commit"($I528)
+ rxquantr524_done:
+ # rx subrule "ws" subtype=method negate=
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."ws"()
+ unless $P10, rx518_fail
+ rx518_pos = $P10."pos"()
+ alt530_0:
+.annotate "line", 260
+ set_addr $I10, alt530_1
+ rx518_cur."!mark_push"(0, rx518_pos, $I10)
+.annotate "line", 261
+ # rx subrule "ws" subtype=method negate=
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."ws"()
+ unless $P10, rx518_fail
+ rx518_pos = $P10."pos"()
# rx literal ";"
- add $I11, rx515_pos, 1
- gt $I11, rx515_eos, rx515_fail
- sub $I11, rx515_pos, rx515_off
- substr $S10, rx515_tgt, $I11, 1
- ne $S10, ";", rx515_fail
- add rx515_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."ws"()
- unless $P10, rx515_fail
- rx515_pos = $P10."pos"()
+ add $I11, rx518_pos, 1
+ gt $I11, rx518_eos, rx518_fail
+ sub $I11, rx518_pos, rx518_off
+ substr $S10, rx518_tgt, $I11, 1
+ ne $S10, ";", rx518_fail
+ add rx518_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."ws"()
+ unless $P10, rx518_fail
+ rx518_pos = $P10."pos"()
# rx subrule "comp_unit" subtype=capture negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."comp_unit"()
- unless $P10, rx515_fail
- rx515_cur."!mark_push"(0, -1, 0, $P10)
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."comp_unit"()
+ unless $P10, rx518_fail
+ rx518_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("comp_unit")
- rx515_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."ws"()
- unless $P10, rx515_fail
- rx515_pos = $P10."pos"()
- goto alt527_end
- alt527_1:
- set_addr $I10, alt527_2
- rx515_cur."!mark_push"(0, rx515_pos, $I10)
-.annotate "line", 258
+ rx518_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."ws"()
- unless $P10, rx515_fail
- rx515_pos = $P10."pos"()
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."ws"()
+ unless $P10, rx518_fail
+ rx518_pos = $P10."pos"()
+ goto alt530_end
+ alt530_1:
+ set_addr $I10, alt530_2
+ rx518_cur."!mark_push"(0, rx518_pos, $I10)
+.annotate "line", 262
+ # rx subrule "ws" subtype=method negate=
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."ws"()
+ unless $P10, rx518_fail
+ rx518_pos = $P10."pos"()
# rx enumcharlist negate=0 zerowidth
- ge rx515_pos, rx515_eos, rx515_fail
- sub $I10, rx515_pos, rx515_off
- substr $S10, rx515_tgt, $I10, 1
+ ge rx518_pos, rx518_eos, rx518_fail
+ sub $I10, rx518_pos, rx518_off
+ substr $S10, rx518_tgt, $I10, 1
index $I11, "{", $S10
- lt $I11, 0, rx515_fail
+ lt $I11, 0, rx518_fail
# rx subrule "ws" subtype=method negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."ws"()
- unless $P10, rx515_fail
- rx515_pos = $P10."pos"()
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."ws"()
+ unless $P10, rx518_fail
+ rx518_pos = $P10."pos"()
# rx subrule "block" subtype=capture negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."block"()
- unless $P10, rx515_fail
- rx515_cur."!mark_push"(0, -1, 0, $P10)
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."block"()
+ unless $P10, rx518_fail
+ rx518_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("block")
- rx515_pos = $P10."pos"()
+ rx518_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."ws"()
- unless $P10, rx515_fail
- rx515_pos = $P10."pos"()
- goto alt527_end
- alt527_2:
-.annotate "line", 259
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."ws"()
+ unless $P10, rx518_fail
+ rx518_pos = $P10."pos"()
+ goto alt530_end
+ alt530_2:
+.annotate "line", 263
# rx subrule "ws" subtype=method negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."ws"()
- unless $P10, rx515_fail
- rx515_pos = $P10."pos"()
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."ws"()
+ unless $P10, rx518_fail
+ rx518_pos = $P10."pos"()
# rx subrule "panic" subtype=method negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."panic"("Malformed package declaration")
- unless $P10, rx515_fail
- rx515_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."ws"()
- unless $P10, rx515_fail
- rx515_pos = $P10."pos"()
- alt527_end:
-.annotate "line", 260
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."panic"("Malformed package declaration")
+ unless $P10, rx518_fail
+ rx518_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."ws"()
+ unless $P10, rx518_fail
+ rx518_pos = $P10."pos"()
+ alt530_end:
+.annotate "line", 264
# rx subrule "ws" subtype=method negate=
- rx515_cur."!cursor_pos"(rx515_pos)
- $P10 = rx515_cur."ws"()
- unless $P10, rx515_fail
- rx515_pos = $P10."pos"()
-.annotate "line", 253
+ rx518_cur."!cursor_pos"(rx518_pos)
+ $P10 = rx518_cur."ws"()
+ unless $P10, rx518_fail
+ rx518_pos = $P10."pos"()
+.annotate "line", 257
# rx pass
- rx515_cur."!cursor_pass"(rx515_pos, "package_def")
- rx515_cur."!cursor_debug"("PASS ", "package_def", " at pos=", rx515_pos)
- .return (rx515_cur)
- rx515_fail:
+ rx518_cur."!cursor_pass"(rx518_pos, "package_def")
+ rx518_cur."!cursor_debug"("PASS ", "package_def", " at pos=", rx518_pos)
+ .return (rx518_cur)
+ rx518_fail:
.annotate "line", 4
- (rx515_rep, rx515_pos, $I10, $P10) = rx515_cur."!mark_fail"(0)
- lt rx515_pos, -1, rx515_done
- eq rx515_pos, -1, rx515_fail
+ (rx518_rep, rx518_pos, $I10, $P10) = rx518_cur."!mark_fail"(0)
+ lt rx518_pos, -1, rx518_done
+ eq rx518_pos, -1, rx518_fail
jump $I10
- rx515_done:
- rx515_cur."!cursor_fail"()
- rx515_cur."!cursor_debug"("FAIL ", "package_def")
- .return (rx515_cur)
+ rx518_done:
+ rx518_cur."!cursor_fail"()
+ rx518_cur."!cursor_debug"("FAIL ", "package_def")
+ .return (rx518_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_def" :subid("130_1267204702.05125") :method
+.sub "!PREFIX__package_def" :subid("130_1271336396.90314") :method
.annotate "line", 4
- new $P517, "ResizablePMCArray"
- push $P517, ""
- .return ($P517)
+ new $P520, "ResizablePMCArray"
+ push $P520, ""
+ .return ($P520)
.end
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator" :subid("131_1267204702.05125") :method
-.annotate "line", 263
- $P538 = self."!protoregex"("scope_declarator")
- .return ($P538)
+.sub "scope_declarator" :subid("131_1271336396.90314") :method
+.annotate "line", 267
+ $P541 = self."!protoregex"("scope_declarator")
+ .return ($P541)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator" :subid("132_1267204702.05125") :method
-.annotate "line", 263
- $P540 = self."!PREFIX__!protoregex"("scope_declarator")
- .return ($P540)
+.sub "!PREFIX__scope_declarator" :subid("132_1271336396.90314") :method
+.annotate "line", 267
+ $P543 = self."!PREFIX__!protoregex"("scope_declarator")
+ .return ($P543)
.end
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<my>" :subid("133_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "scope_declarator:sym<my>" :subid("133_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx542_tgt
- .local int rx542_pos
- .local int rx542_off
- .local int rx542_eos
- .local int rx542_rep
- .local pmc rx542_cur
- (rx542_cur, rx542_pos, rx542_tgt) = self."!cursor_start"()
- rx542_cur."!cursor_debug"("START ", "scope_declarator:sym<my>")
- .lex unicode:"$\x{a2}", rx542_cur
- .local pmc match
- .lex "$/", match
- length rx542_eos, rx542_tgt
- set rx542_off, 0
- lt rx542_pos, 2, rx542_start
- sub rx542_off, rx542_pos, 1
- substr rx542_tgt, rx542_tgt, rx542_off
- rx542_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan546_done
- goto rxscan546_scan
- rxscan546_loop:
- ($P10) = rx542_cur."from"()
- inc $P10
- set rx542_pos, $P10
- ge rx542_pos, rx542_eos, rxscan546_done
- rxscan546_scan:
- set_addr $I10, rxscan546_loop
- rx542_cur."!mark_push"(0, rx542_pos, $I10)
- rxscan546_done:
-.annotate "line", 264
+ .local string rx545_tgt
+ .local int rx545_pos
+ .local int rx545_off
+ .local int rx545_eos
+ .local int rx545_rep
+ .local pmc rx545_cur
+ (rx545_cur, rx545_pos, rx545_tgt) = self."!cursor_start"()
+ rx545_cur."!cursor_debug"("START ", "scope_declarator:sym<my>")
+ .lex unicode:"$\x{a2}", rx545_cur
+ .local pmc match
+ .lex "$/", match
+ length rx545_eos, rx545_tgt
+ set rx545_off, 0
+ lt rx545_pos, 2, rx545_start
+ sub rx545_off, rx545_pos, 1
+ substr rx545_tgt, rx545_tgt, rx545_off
+ rx545_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan549_done
+ goto rxscan549_scan
+ rxscan549_loop:
+ ($P10) = rx545_cur."from"()
+ inc $P10
+ set rx545_pos, $P10
+ ge rx545_pos, rx545_eos, rxscan549_done
+ rxscan549_scan:
+ set_addr $I10, rxscan549_loop
+ rx545_cur."!mark_push"(0, rx545_pos, $I10)
+ rxscan549_done:
+.annotate "line", 268
# rx subcapture "sym"
- set_addr $I10, rxcap_547_fail
- rx542_cur."!mark_push"(0, rx542_pos, $I10)
+ set_addr $I10, rxcap_550_fail
+ rx545_cur."!mark_push"(0, rx545_pos, $I10)
# rx literal "my"
- add $I11, rx542_pos, 2
- gt $I11, rx542_eos, rx542_fail
- sub $I11, rx542_pos, rx542_off
- substr $S10, rx542_tgt, $I11, 2
- ne $S10, "my", rx542_fail
- add rx542_pos, 2
- set_addr $I10, rxcap_547_fail
- ($I12, $I11) = rx542_cur."!mark_peek"($I10)
- rx542_cur."!cursor_pos"($I11)
- ($P10) = rx542_cur."!cursor_start"()
- $P10."!cursor_pass"(rx542_pos, "")
- rx542_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx545_pos, 2
+ gt $I11, rx545_eos, rx545_fail
+ sub $I11, rx545_pos, rx545_off
+ substr $S10, rx545_tgt, $I11, 2
+ ne $S10, "my", rx545_fail
+ add rx545_pos, 2
+ set_addr $I10, rxcap_550_fail
+ ($I12, $I11) = rx545_cur."!mark_peek"($I10)
+ rx545_cur."!cursor_pos"($I11)
+ ($P10) = rx545_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx545_pos, "")
+ rx545_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_547_done
- rxcap_547_fail:
- goto rx542_fail
- rxcap_547_done:
+ goto rxcap_550_done
+ rxcap_550_fail:
+ goto rx545_fail
+ rxcap_550_done:
# rx subrule "scoped" subtype=capture negate=
- rx542_cur."!cursor_pos"(rx542_pos)
- $P10 = rx542_cur."scoped"("my")
- unless $P10, rx542_fail
- rx542_cur."!mark_push"(0, -1, 0, $P10)
+ rx545_cur."!cursor_pos"(rx545_pos)
+ $P10 = rx545_cur."scoped"("my")
+ unless $P10, rx545_fail
+ rx545_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("scoped")
- rx542_pos = $P10."pos"()
+ rx545_pos = $P10."pos"()
# rx pass
- rx542_cur."!cursor_pass"(rx542_pos, "scope_declarator:sym<my>")
- rx542_cur."!cursor_debug"("PASS ", "scope_declarator:sym<my>", " at pos=", rx542_pos)
- .return (rx542_cur)
- rx542_fail:
+ rx545_cur."!cursor_pass"(rx545_pos, "scope_declarator:sym<my>")
+ rx545_cur."!cursor_debug"("PASS ", "scope_declarator:sym<my>", " at pos=", rx545_pos)
+ .return (rx545_cur)
+ rx545_fail:
.annotate "line", 4
- (rx542_rep, rx542_pos, $I10, $P10) = rx542_cur."!mark_fail"(0)
- lt rx542_pos, -1, rx542_done
- eq rx542_pos, -1, rx542_fail
+ (rx545_rep, rx545_pos, $I10, $P10) = rx545_cur."!mark_fail"(0)
+ lt rx545_pos, -1, rx545_done
+ eq rx545_pos, -1, rx545_fail
jump $I10
- rx542_done:
- rx542_cur."!cursor_fail"()
- rx542_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<my>")
- .return (rx542_cur)
+ rx545_done:
+ rx545_cur."!cursor_fail"()
+ rx545_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<my>")
+ .return (rx545_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<my>" :subid("134_1267204702.05125") :method
+.sub "!PREFIX__scope_declarator:sym<my>" :subid("134_1271336396.90314") :method
.annotate "line", 4
- $P544 = self."!PREFIX__!subrule"("scoped", "my")
- new $P545, "ResizablePMCArray"
- push $P545, $P544
- .return ($P545)
+ $P547 = self."!PREFIX__!subrule"("scoped", "my")
+ new $P548, "ResizablePMCArray"
+ push $P548, $P547
+ .return ($P548)
.end
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<our>" :subid("135_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "scope_declarator:sym<our>" :subid("135_1271336396.90314") :method :outer("11_1271336396.90314")
.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 ", "scope_declarator:sym<our>")
- .lex unicode:"$\x{a2}", rx549_cur
+ .local string rx552_tgt
+ .local int rx552_pos
+ .local int rx552_off
+ .local int rx552_eos
+ .local int rx552_rep
+ .local pmc rx552_cur
+ (rx552_cur, rx552_pos, rx552_tgt) = self."!cursor_start"()
+ rx552_cur."!cursor_debug"("START ", "scope_declarator:sym<our>")
+ .lex unicode:"$\x{a2}", rx552_cur
.local pmc match
.lex "$/", match
- length rx549_eos, rx549_tgt
- 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:
+ length rx552_eos, rx552_tgt
+ set rx552_off, 0
+ lt rx552_pos, 2, rx552_start
+ sub rx552_off, rx552_pos, 1
+ substr rx552_tgt, rx552_tgt, rx552_off
+ rx552_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan553_done
- goto rxscan553_scan
- rxscan553_loop:
- ($P10) = rx549_cur."from"()
+ ne $I10, -1, rxscan556_done
+ goto rxscan556_scan
+ rxscan556_loop:
+ ($P10) = rx552_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", 265
+ set rx552_pos, $P10
+ ge rx552_pos, rx552_eos, rxscan556_done
+ rxscan556_scan:
+ set_addr $I10, rxscan556_loop
+ rx552_cur."!mark_push"(0, rx552_pos, $I10)
+ rxscan556_done:
+.annotate "line", 269
# rx subcapture "sym"
- set_addr $I10, rxcap_554_fail
- rx549_cur."!mark_push"(0, rx549_pos, $I10)
+ set_addr $I10, rxcap_557_fail
+ rx552_cur."!mark_push"(0, rx552_pos, $I10)
# rx literal "our"
- add $I11, rx549_pos, 3
- gt $I11, rx549_eos, rx549_fail
- sub $I11, rx549_pos, rx549_off
- substr $S10, rx549_tgt, $I11, 3
- ne $S10, "our", rx549_fail
- add rx549_pos, 3
- set_addr $I10, rxcap_554_fail
- ($I12, $I11) = rx549_cur."!mark_peek"($I10)
- rx549_cur."!cursor_pos"($I11)
- ($P10) = rx549_cur."!cursor_start"()
- $P10."!cursor_pass"(rx549_pos, "")
- rx549_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx552_pos, 3
+ gt $I11, rx552_eos, rx552_fail
+ sub $I11, rx552_pos, rx552_off
+ substr $S10, rx552_tgt, $I11, 3
+ ne $S10, "our", rx552_fail
+ add rx552_pos, 3
+ set_addr $I10, rxcap_557_fail
+ ($I12, $I11) = rx552_cur."!mark_peek"($I10)
+ rx552_cur."!cursor_pos"($I11)
+ ($P10) = rx552_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx552_pos, "")
+ rx552_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_554_done
- rxcap_554_fail:
- goto rx549_fail
- rxcap_554_done:
+ goto rxcap_557_done
+ rxcap_557_fail:
+ goto rx552_fail
+ rxcap_557_done:
# rx subrule "scoped" subtype=capture negate=
- rx549_cur."!cursor_pos"(rx549_pos)
- $P10 = rx549_cur."scoped"("our")
- unless $P10, rx549_fail
- rx549_cur."!mark_push"(0, -1, 0, $P10)
+ rx552_cur."!cursor_pos"(rx552_pos)
+ $P10 = rx552_cur."scoped"("our")
+ unless $P10, rx552_fail
+ rx552_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("scoped")
- rx549_pos = $P10."pos"()
+ rx552_pos = $P10."pos"()
# rx pass
- rx549_cur."!cursor_pass"(rx549_pos, "scope_declarator:sym<our>")
- rx549_cur."!cursor_debug"("PASS ", "scope_declarator:sym<our>", " at pos=", rx549_pos)
- .return (rx549_cur)
- rx549_fail:
+ rx552_cur."!cursor_pass"(rx552_pos, "scope_declarator:sym<our>")
+ rx552_cur."!cursor_debug"("PASS ", "scope_declarator:sym<our>", " at pos=", rx552_pos)
+ .return (rx552_cur)
+ rx552_fail:
.annotate "line", 4
- (rx549_rep, rx549_pos, $I10, $P10) = rx549_cur."!mark_fail"(0)
- lt rx549_pos, -1, rx549_done
- eq rx549_pos, -1, rx549_fail
+ (rx552_rep, rx552_pos, $I10, $P10) = rx552_cur."!mark_fail"(0)
+ lt rx552_pos, -1, rx552_done
+ eq rx552_pos, -1, rx552_fail
jump $I10
- rx549_done:
- rx549_cur."!cursor_fail"()
- rx549_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<our>")
- .return (rx549_cur)
+ rx552_done:
+ rx552_cur."!cursor_fail"()
+ rx552_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<our>")
+ .return (rx552_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<our>" :subid("136_1267204702.05125") :method
+.sub "!PREFIX__scope_declarator:sym<our>" :subid("136_1271336396.90314") :method
.annotate "line", 4
- $P551 = self."!PREFIX__!subrule"("scoped", "our")
- new $P552, "ResizablePMCArray"
- push $P552, $P551
- .return ($P552)
+ $P554 = self."!PREFIX__!subrule"("scoped", "our")
+ new $P555, "ResizablePMCArray"
+ push $P555, $P554
+ .return ($P555)
.end
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<has>" :subid("137_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "scope_declarator:sym<has>" :subid("137_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx556_tgt
- .local int rx556_pos
- .local int rx556_off
- .local int rx556_eos
- .local int rx556_rep
- .local pmc rx556_cur
- (rx556_cur, rx556_pos, rx556_tgt) = self."!cursor_start"()
- rx556_cur."!cursor_debug"("START ", "scope_declarator:sym<has>")
- .lex unicode:"$\x{a2}", rx556_cur
+ .local string rx559_tgt
+ .local int rx559_pos
+ .local int rx559_off
+ .local int rx559_eos
+ .local int rx559_rep
+ .local pmc rx559_cur
+ (rx559_cur, rx559_pos, rx559_tgt) = self."!cursor_start"()
+ rx559_cur."!cursor_debug"("START ", "scope_declarator:sym<has>")
+ .lex unicode:"$\x{a2}", rx559_cur
.local pmc match
.lex "$/", match
- length rx556_eos, rx556_tgt
- set rx556_off, 0
- lt rx556_pos, 2, rx556_start
- sub rx556_off, rx556_pos, 1
- substr rx556_tgt, rx556_tgt, rx556_off
- rx556_start:
+ length rx559_eos, rx559_tgt
+ set rx559_off, 0
+ lt rx559_pos, 2, rx559_start
+ sub rx559_off, rx559_pos, 1
+ substr rx559_tgt, rx559_tgt, rx559_off
+ rx559_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan560_done
- goto rxscan560_scan
- rxscan560_loop:
- ($P10) = rx556_cur."from"()
+ ne $I10, -1, rxscan563_done
+ goto rxscan563_scan
+ rxscan563_loop:
+ ($P10) = rx559_cur."from"()
inc $P10
- set rx556_pos, $P10
- ge rx556_pos, rx556_eos, rxscan560_done
- rxscan560_scan:
- set_addr $I10, rxscan560_loop
- rx556_cur."!mark_push"(0, rx556_pos, $I10)
- rxscan560_done:
-.annotate "line", 266
+ set rx559_pos, $P10
+ ge rx559_pos, rx559_eos, rxscan563_done
+ rxscan563_scan:
+ set_addr $I10, rxscan563_loop
+ rx559_cur."!mark_push"(0, rx559_pos, $I10)
+ rxscan563_done:
+.annotate "line", 270
# rx subcapture "sym"
- set_addr $I10, rxcap_561_fail
- rx556_cur."!mark_push"(0, rx556_pos, $I10)
+ set_addr $I10, rxcap_564_fail
+ rx559_cur."!mark_push"(0, rx559_pos, $I10)
# rx literal "has"
- add $I11, rx556_pos, 3
- gt $I11, rx556_eos, rx556_fail
- sub $I11, rx556_pos, rx556_off
- substr $S10, rx556_tgt, $I11, 3
- ne $S10, "has", rx556_fail
- add rx556_pos, 3
- set_addr $I10, rxcap_561_fail
- ($I12, $I11) = rx556_cur."!mark_peek"($I10)
- rx556_cur."!cursor_pos"($I11)
- ($P10) = rx556_cur."!cursor_start"()
- $P10."!cursor_pass"(rx556_pos, "")
- rx556_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx559_pos, 3
+ gt $I11, rx559_eos, rx559_fail
+ sub $I11, rx559_pos, rx559_off
+ substr $S10, rx559_tgt, $I11, 3
+ ne $S10, "has", rx559_fail
+ add rx559_pos, 3
+ set_addr $I10, rxcap_564_fail
+ ($I12, $I11) = rx559_cur."!mark_peek"($I10)
+ rx559_cur."!cursor_pos"($I11)
+ ($P10) = rx559_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx559_pos, "")
+ rx559_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_561_done
- rxcap_561_fail:
- goto rx556_fail
- rxcap_561_done:
+ goto rxcap_564_done
+ rxcap_564_fail:
+ goto rx559_fail
+ rxcap_564_done:
# rx subrule "scoped" subtype=capture negate=
- rx556_cur."!cursor_pos"(rx556_pos)
- $P10 = rx556_cur."scoped"("has")
- unless $P10, rx556_fail
- rx556_cur."!mark_push"(0, -1, 0, $P10)
+ rx559_cur."!cursor_pos"(rx559_pos)
+ $P10 = rx559_cur."scoped"("has")
+ unless $P10, rx559_fail
+ rx559_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("scoped")
- rx556_pos = $P10."pos"()
+ rx559_pos = $P10."pos"()
# rx pass
- rx556_cur."!cursor_pass"(rx556_pos, "scope_declarator:sym<has>")
- rx556_cur."!cursor_debug"("PASS ", "scope_declarator:sym<has>", " at pos=", rx556_pos)
- .return (rx556_cur)
- rx556_fail:
+ rx559_cur."!cursor_pass"(rx559_pos, "scope_declarator:sym<has>")
+ rx559_cur."!cursor_debug"("PASS ", "scope_declarator:sym<has>", " at pos=", rx559_pos)
+ .return (rx559_cur)
+ rx559_fail:
.annotate "line", 4
- (rx556_rep, rx556_pos, $I10, $P10) = rx556_cur."!mark_fail"(0)
- lt rx556_pos, -1, rx556_done
- eq rx556_pos, -1, rx556_fail
+ (rx559_rep, rx559_pos, $I10, $P10) = rx559_cur."!mark_fail"(0)
+ lt rx559_pos, -1, rx559_done
+ eq rx559_pos, -1, rx559_fail
jump $I10
- rx556_done:
- rx556_cur."!cursor_fail"()
- rx556_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<has>")
- .return (rx556_cur)
+ rx559_done:
+ rx559_cur."!cursor_fail"()
+ rx559_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<has>")
+ .return (rx559_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<has>" :subid("138_1267204702.05125") :method
+.sub "!PREFIX__scope_declarator:sym<has>" :subid("138_1271336396.90314") :method
.annotate "line", 4
- $P558 = self."!PREFIX__!subrule"("scoped", "has")
- new $P559, "ResizablePMCArray"
- push $P559, $P558
- .return ($P559)
+ $P561 = self."!PREFIX__!subrule"("scoped", "has")
+ new $P562, "ResizablePMCArray"
+ push $P562, $P561
+ .return ($P562)
.end
.namespace ["NQP";"Grammar"]
-.sub "scoped" :subid("139_1267204702.05125") :method :outer("11_1267204702.05125")
- .param pmc param_563
-.annotate "line", 268
- .lex "$*SCOPE", param_563
+.sub "scoped" :subid("139_1271336396.90314") :method :outer("11_1271336396.90314")
+ .param pmc param_566
+.annotate "line", 272
+ .lex "$*SCOPE", param_566
.annotate "line", 4
- .local string rx564_tgt
- .local int rx564_pos
- .local int rx564_off
- .local int rx564_eos
- .local int rx564_rep
- .local pmc rx564_cur
- (rx564_cur, rx564_pos, rx564_tgt) = self."!cursor_start"()
- rx564_cur."!cursor_debug"("START ", "scoped")
- .lex unicode:"$\x{a2}", rx564_cur
- .local pmc match
- .lex "$/", match
- length rx564_eos, rx564_tgt
- set rx564_off, 0
- lt rx564_pos, 2, rx564_start
- sub rx564_off, rx564_pos, 1
- substr rx564_tgt, rx564_tgt, rx564_off
- rx564_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan567_done
- goto rxscan567_scan
- rxscan567_loop:
- ($P10) = rx564_cur."from"()
- inc $P10
- set rx564_pos, $P10
- ge rx564_pos, rx564_eos, rxscan567_done
- rxscan567_scan:
- set_addr $I10, rxscan567_loop
- rx564_cur."!mark_push"(0, rx564_pos, $I10)
- rxscan567_done:
- alt568_0:
-.annotate "line", 268
- set_addr $I10, alt568_1
- rx564_cur."!mark_push"(0, rx564_pos, $I10)
-.annotate "line", 269
+ .local string rx567_tgt
+ .local int rx567_pos
+ .local int rx567_off
+ .local int rx567_eos
+ .local int rx567_rep
+ .local pmc rx567_cur
+ (rx567_cur, rx567_pos, rx567_tgt) = self."!cursor_start"()
+ rx567_cur."!cursor_debug"("START ", "scoped")
+ .lex unicode:"$\x{a2}", rx567_cur
+ .local pmc match
+ .lex "$/", match
+ length rx567_eos, rx567_tgt
+ set rx567_off, 0
+ lt rx567_pos, 2, rx567_start
+ sub rx567_off, rx567_pos, 1
+ substr rx567_tgt, rx567_tgt, rx567_off
+ rx567_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan570_done
+ goto rxscan570_scan
+ rxscan570_loop:
+ ($P10) = rx567_cur."from"()
+ inc $P10
+ set rx567_pos, $P10
+ ge rx567_pos, rx567_eos, rxscan570_done
+ rxscan570_scan:
+ set_addr $I10, rxscan570_loop
+ rx567_cur."!mark_push"(0, rx567_pos, $I10)
+ rxscan570_done:
+ alt571_0:
+.annotate "line", 272
+ set_addr $I10, alt571_1
+ rx567_cur."!mark_push"(0, rx567_pos, $I10)
+.annotate "line", 273
# rx subrule "ws" subtype=method negate=
- rx564_cur."!cursor_pos"(rx564_pos)
- $P10 = rx564_cur."ws"()
- unless $P10, rx564_fail
- rx564_pos = $P10."pos"()
+ rx567_cur."!cursor_pos"(rx567_pos)
+ $P10 = rx567_cur."ws"()
+ unless $P10, rx567_fail
+ rx567_pos = $P10."pos"()
# rx subrule "variable_declarator" subtype=capture negate=
- rx564_cur."!cursor_pos"(rx564_pos)
- $P10 = rx564_cur."variable_declarator"()
- unless $P10, rx564_fail
- rx564_cur."!mark_push"(0, -1, 0, $P10)
+ rx567_cur."!cursor_pos"(rx567_pos)
+ $P10 = rx567_cur."variable_declarator"()
+ unless $P10, rx567_fail
+ rx567_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("variable_declarator")
- rx564_pos = $P10."pos"()
+ rx567_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx564_cur."!cursor_pos"(rx564_pos)
- $P10 = rx564_cur."ws"()
- unless $P10, rx564_fail
- rx564_pos = $P10."pos"()
- goto alt568_end
- alt568_1:
-.annotate "line", 270
+ rx567_cur."!cursor_pos"(rx567_pos)
+ $P10 = rx567_cur."ws"()
+ unless $P10, rx567_fail
+ rx567_pos = $P10."pos"()
+ goto alt571_end
+ alt571_1:
+.annotate "line", 274
# rx subrule "ws" subtype=method negate=
- rx564_cur."!cursor_pos"(rx564_pos)
- $P10 = rx564_cur."ws"()
- unless $P10, rx564_fail
- rx564_pos = $P10."pos"()
+ rx567_cur."!cursor_pos"(rx567_pos)
+ $P10 = rx567_cur."ws"()
+ unless $P10, rx567_fail
+ rx567_pos = $P10."pos"()
# rx subrule "routine_declarator" subtype=capture negate=
- rx564_cur."!cursor_pos"(rx564_pos)
- $P10 = rx564_cur."routine_declarator"()
- unless $P10, rx564_fail
- rx564_cur."!mark_push"(0, -1, 0, $P10)
+ rx567_cur."!cursor_pos"(rx567_pos)
+ $P10 = rx567_cur."routine_declarator"()
+ unless $P10, rx567_fail
+ rx567_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("routine_declarator")
- rx564_pos = $P10."pos"()
+ rx567_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx564_cur."!cursor_pos"(rx564_pos)
- $P10 = rx564_cur."ws"()
- unless $P10, rx564_fail
- rx564_pos = $P10."pos"()
- alt568_end:
-.annotate "line", 268
+ rx567_cur."!cursor_pos"(rx567_pos)
+ $P10 = rx567_cur."ws"()
+ unless $P10, rx567_fail
+ rx567_pos = $P10."pos"()
+ alt571_end:
+.annotate "line", 272
# rx pass
- rx564_cur."!cursor_pass"(rx564_pos, "scoped")
- rx564_cur."!cursor_debug"("PASS ", "scoped", " at pos=", rx564_pos)
- .return (rx564_cur)
- rx564_fail:
+ rx567_cur."!cursor_pass"(rx567_pos, "scoped")
+ rx567_cur."!cursor_debug"("PASS ", "scoped", " at pos=", rx567_pos)
+ .return (rx567_cur)
+ rx567_fail:
.annotate "line", 4
- (rx564_rep, rx564_pos, $I10, $P10) = rx564_cur."!mark_fail"(0)
- lt rx564_pos, -1, rx564_done
- eq rx564_pos, -1, rx564_fail
+ (rx567_rep, rx567_pos, $I10, $P10) = rx567_cur."!mark_fail"(0)
+ lt rx567_pos, -1, rx567_done
+ eq rx567_pos, -1, rx567_fail
jump $I10
- rx564_done:
- rx564_cur."!cursor_fail"()
- rx564_cur."!cursor_debug"("FAIL ", "scoped")
- .return (rx564_cur)
+ rx567_done:
+ rx567_cur."!cursor_fail"()
+ rx567_cur."!cursor_debug"("FAIL ", "scoped")
+ .return (rx567_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scoped" :subid("140_1267204702.05125") :method
+.sub "!PREFIX__scoped" :subid("140_1271336396.90314") :method
.annotate "line", 4
- new $P566, "ResizablePMCArray"
- push $P566, ""
- push $P566, ""
- .return ($P566)
+ new $P569, "ResizablePMCArray"
+ push $P569, ""
+ push $P569, ""
+ .return ($P569)
.end
.namespace ["NQP";"Grammar"]
-.sub "variable_declarator" :subid("141_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "variable_declarator" :subid("141_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx574_tgt
- .local int rx574_pos
- .local int rx574_off
- .local int rx574_eos
- .local int rx574_rep
- .local pmc rx574_cur
- (rx574_cur, rx574_pos, rx574_tgt) = self."!cursor_start"()
- rx574_cur."!cursor_debug"("START ", "variable_declarator")
- .lex unicode:"$\x{a2}", rx574_cur
- .local pmc match
- .lex "$/", match
- length rx574_eos, rx574_tgt
- set rx574_off, 0
- lt rx574_pos, 2, rx574_start
- sub rx574_off, rx574_pos, 1
- substr rx574_tgt, rx574_tgt, rx574_off
- rx574_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan578_done
- goto rxscan578_scan
- rxscan578_loop:
- ($P10) = rx574_cur."from"()
- inc $P10
- set rx574_pos, $P10
- ge rx574_pos, rx574_eos, rxscan578_done
- rxscan578_scan:
- set_addr $I10, rxscan578_loop
- rx574_cur."!mark_push"(0, rx574_pos, $I10)
- rxscan578_done:
-.annotate "line", 273
+ .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 ", "variable_declarator")
+ .lex unicode:"$\x{a2}", rx577_cur
+ .local pmc match
+ .lex "$/", match
+ length rx577_eos, rx577_tgt
+ set rx577_off, 0
+ lt rx577_pos, 2, rx577_start
+ sub rx577_off, rx577_pos, 1
+ substr rx577_tgt, rx577_tgt, rx577_off
+ rx577_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan581_done
+ goto rxscan581_scan
+ rxscan581_loop:
+ ($P10) = rx577_cur."from"()
+ inc $P10
+ set rx577_pos, $P10
+ ge rx577_pos, rx577_eos, rxscan581_done
+ rxscan581_scan:
+ set_addr $I10, rxscan581_loop
+ rx577_cur."!mark_push"(0, rx577_pos, $I10)
+ rxscan581_done:
+.annotate "line", 277
# rx subrule "variable" subtype=capture negate=
- rx574_cur."!cursor_pos"(rx574_pos)
- $P10 = rx574_cur."variable"()
- unless $P10, rx574_fail
- rx574_cur."!mark_push"(0, -1, 0, $P10)
+ rx577_cur."!cursor_pos"(rx577_pos)
+ $P10 = rx577_cur."variable"()
+ unless $P10, rx577_fail
+ rx577_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("variable")
- rx574_pos = $P10."pos"()
+ rx577_pos = $P10."pos"()
# rx pass
- rx574_cur."!cursor_pass"(rx574_pos, "variable_declarator")
- rx574_cur."!cursor_debug"("PASS ", "variable_declarator", " at pos=", rx574_pos)
- .return (rx574_cur)
- rx574_fail:
+ rx577_cur."!cursor_pass"(rx577_pos, "variable_declarator")
+ rx577_cur."!cursor_debug"("PASS ", "variable_declarator", " at pos=", rx577_pos)
+ .return (rx577_cur)
+ rx577_fail:
.annotate "line", 4
- (rx574_rep, rx574_pos, $I10, $P10) = rx574_cur."!mark_fail"(0)
- lt rx574_pos, -1, rx574_done
- eq rx574_pos, -1, rx574_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
- rx574_done:
- rx574_cur."!cursor_fail"()
- rx574_cur."!cursor_debug"("FAIL ", "variable_declarator")
- .return (rx574_cur)
+ rx577_done:
+ rx577_cur."!cursor_fail"()
+ rx577_cur."!cursor_debug"("FAIL ", "variable_declarator")
+ .return (rx577_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable_declarator" :subid("142_1267204702.05125") :method
+.sub "!PREFIX__variable_declarator" :subid("142_1271336396.90314") :method
.annotate "line", 4
- $P576 = self."!PREFIX__!subrule"("variable", "")
- new $P577, "ResizablePMCArray"
- push $P577, $P576
- .return ($P577)
+ $P579 = self."!PREFIX__!subrule"("variable", "")
+ new $P580, "ResizablePMCArray"
+ push $P580, $P579
+ .return ($P580)
.end
.namespace ["NQP";"Grammar"]
-.sub "routine_declarator" :subid("143_1267204702.05125") :method
-.annotate "line", 275
- $P580 = self."!protoregex"("routine_declarator")
- .return ($P580)
+.sub "routine_declarator" :subid("143_1271336396.90314") :method
+.annotate "line", 279
+ $P583 = self."!protoregex"("routine_declarator")
+ .return ($P583)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator" :subid("144_1267204702.05125") :method
-.annotate "line", 275
- $P582 = self."!PREFIX__!protoregex"("routine_declarator")
- .return ($P582)
+.sub "!PREFIX__routine_declarator" :subid("144_1271336396.90314") :method
+.annotate "line", 279
+ $P585 = self."!PREFIX__!protoregex"("routine_declarator")
+ .return ($P585)
.end
.namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<sub>" :subid("145_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "routine_declarator:sym<sub>" :subid("145_1271336396.90314") :method :outer("11_1271336396.90314")
.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 ", "routine_declarator:sym<sub>")
- .lex unicode:"$\x{a2}", rx584_cur
- .local pmc match
- .lex "$/", match
- length rx584_eos, rx584_tgt
- 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", 276
+ .local string rx587_tgt
+ .local int rx587_pos
+ .local int rx587_off
+ .local int rx587_eos
+ .local int rx587_rep
+ .local pmc rx587_cur
+ (rx587_cur, rx587_pos, rx587_tgt) = self."!cursor_start"()
+ rx587_cur."!cursor_debug"("START ", "routine_declarator:sym<sub>")
+ .lex unicode:"$\x{a2}", rx587_cur
+ .local pmc match
+ .lex "$/", match
+ length rx587_eos, rx587_tgt
+ set rx587_off, 0
+ lt rx587_pos, 2, rx587_start
+ sub rx587_off, rx587_pos, 1
+ substr rx587_tgt, rx587_tgt, rx587_off
+ rx587_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan591_done
+ goto rxscan591_scan
+ rxscan591_loop:
+ ($P10) = rx587_cur."from"()
+ inc $P10
+ set rx587_pos, $P10
+ ge rx587_pos, rx587_eos, rxscan591_done
+ rxscan591_scan:
+ set_addr $I10, rxscan591_loop
+ rx587_cur."!mark_push"(0, rx587_pos, $I10)
+ rxscan591_done:
+.annotate "line", 280
# rx subcapture "sym"
- set_addr $I10, rxcap_589_fail
- rx584_cur."!mark_push"(0, rx584_pos, $I10)
+ set_addr $I10, rxcap_592_fail
+ rx587_cur."!mark_push"(0, rx587_pos, $I10)
# rx literal "sub"
- 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, "sub", rx584_fail
- add rx584_pos, 3
- set_addr $I10, rxcap_589_fail
- ($I12, $I11) = rx584_cur."!mark_peek"($I10)
- rx584_cur."!cursor_pos"($I11)
- ($P10) = rx584_cur."!cursor_start"()
- $P10."!cursor_pass"(rx584_pos, "")
- rx584_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx587_pos, 3
+ gt $I11, rx587_eos, rx587_fail
+ sub $I11, rx587_pos, rx587_off
+ substr $S10, rx587_tgt, $I11, 3
+ ne $S10, "sub", rx587_fail
+ add rx587_pos, 3
+ set_addr $I10, rxcap_592_fail
+ ($I12, $I11) = rx587_cur."!mark_peek"($I10)
+ rx587_cur."!cursor_pos"($I11)
+ ($P10) = rx587_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx587_pos, "")
+ rx587_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_589_done
- rxcap_589_fail:
- goto rx584_fail
- rxcap_589_done:
+ goto rxcap_592_done
+ rxcap_592_fail:
+ goto rx587_fail
+ rxcap_592_done:
# rx subrule "routine_def" subtype=capture negate=
- rx584_cur."!cursor_pos"(rx584_pos)
- $P10 = rx584_cur."routine_def"()
- unless $P10, rx584_fail
- rx584_cur."!mark_push"(0, -1, 0, $P10)
+ rx587_cur."!cursor_pos"(rx587_pos)
+ $P10 = rx587_cur."routine_def"()
+ unless $P10, rx587_fail
+ rx587_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("routine_def")
- rx584_pos = $P10."pos"()
+ rx587_pos = $P10."pos"()
# rx pass
- rx584_cur."!cursor_pass"(rx584_pos, "routine_declarator:sym<sub>")
- rx584_cur."!cursor_debug"("PASS ", "routine_declarator:sym<sub>", " at pos=", rx584_pos)
- .return (rx584_cur)
- rx584_fail:
+ rx587_cur."!cursor_pass"(rx587_pos, "routine_declarator:sym<sub>")
+ rx587_cur."!cursor_debug"("PASS ", "routine_declarator:sym<sub>", " at pos=", rx587_pos)
+ .return (rx587_cur)
+ rx587_fail:
.annotate "line", 4
- (rx584_rep, rx584_pos, $I10, $P10) = rx584_cur."!mark_fail"(0)
- lt rx584_pos, -1, rx584_done
- eq rx584_pos, -1, rx584_fail
+ (rx587_rep, rx587_pos, $I10, $P10) = rx587_cur."!mark_fail"(0)
+ lt rx587_pos, -1, rx587_done
+ eq rx587_pos, -1, rx587_fail
jump $I10
- rx584_done:
- rx584_cur."!cursor_fail"()
- rx584_cur."!cursor_debug"("FAIL ", "routine_declarator:sym<sub>")
- .return (rx584_cur)
+ rx587_done:
+ rx587_cur."!cursor_fail"()
+ rx587_cur."!cursor_debug"("FAIL ", "routine_declarator:sym<sub>")
+ .return (rx587_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<sub>" :subid("146_1267204702.05125") :method
+.sub "!PREFIX__routine_declarator:sym<sub>" :subid("146_1271336396.90314") :method
.annotate "line", 4
- $P586 = self."!PREFIX__!subrule"("routine_def", "sub")
- new $P587, "ResizablePMCArray"
- push $P587, $P586
- .return ($P587)
+ $P589 = self."!PREFIX__!subrule"("routine_def", "sub")
+ new $P590, "ResizablePMCArray"
+ push $P590, $P589
+ .return ($P590)
.end
.namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<method>" :subid("147_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "routine_declarator:sym<method>" :subid("147_1271336396.90314") :method :outer("11_1271336396.90314")
.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 ", "routine_declarator:sym<method>")
- .lex unicode:"$\x{a2}", rx591_cur
- .local pmc match
- .lex "$/", match
- length rx591_eos, rx591_tgt
- set rx591_off, 0
- lt rx591_pos, 2, rx591_start
- sub rx591_off, rx591_pos, 1
- substr rx591_tgt, rx591_tgt, rx591_off
- rx591_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan595_done
- goto rxscan595_scan
- rxscan595_loop:
- ($P10) = rx591_cur."from"()
- inc $P10
- set rx591_pos, $P10
- ge rx591_pos, rx591_eos, rxscan595_done
- rxscan595_scan:
- set_addr $I10, rxscan595_loop
- rx591_cur."!mark_push"(0, rx591_pos, $I10)
- rxscan595_done:
-.annotate "line", 277
+ .local string rx594_tgt
+ .local int rx594_pos
+ .local int rx594_off
+ .local int rx594_eos
+ .local int rx594_rep
+ .local pmc rx594_cur
+ (rx594_cur, rx594_pos, rx594_tgt) = self."!cursor_start"()
+ rx594_cur."!cursor_debug"("START ", "routine_declarator:sym<method>")
+ .lex unicode:"$\x{a2}", rx594_cur
+ .local pmc match
+ .lex "$/", match
+ length rx594_eos, rx594_tgt
+ set rx594_off, 0
+ lt rx594_pos, 2, rx594_start
+ sub rx594_off, rx594_pos, 1
+ substr rx594_tgt, rx594_tgt, rx594_off
+ rx594_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan598_done
+ goto rxscan598_scan
+ rxscan598_loop:
+ ($P10) = rx594_cur."from"()
+ inc $P10
+ set rx594_pos, $P10
+ ge rx594_pos, rx594_eos, rxscan598_done
+ rxscan598_scan:
+ set_addr $I10, rxscan598_loop
+ rx594_cur."!mark_push"(0, rx594_pos, $I10)
+ rxscan598_done:
+.annotate "line", 281
# rx subcapture "sym"
- set_addr $I10, rxcap_596_fail
- rx591_cur."!mark_push"(0, rx591_pos, $I10)
+ set_addr $I10, rxcap_599_fail
+ rx594_cur."!mark_push"(0, rx594_pos, $I10)
# rx literal "method"
- add $I11, rx591_pos, 6
- gt $I11, rx591_eos, rx591_fail
- sub $I11, rx591_pos, rx591_off
- substr $S10, rx591_tgt, $I11, 6
- ne $S10, "method", rx591_fail
- add rx591_pos, 6
- set_addr $I10, rxcap_596_fail
- ($I12, $I11) = rx591_cur."!mark_peek"($I10)
- rx591_cur."!cursor_pos"($I11)
- ($P10) = rx591_cur."!cursor_start"()
- $P10."!cursor_pass"(rx591_pos, "")
- rx591_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx594_pos, 6
+ gt $I11, rx594_eos, rx594_fail
+ sub $I11, rx594_pos, rx594_off
+ substr $S10, rx594_tgt, $I11, 6
+ ne $S10, "method", rx594_fail
+ add rx594_pos, 6
+ set_addr $I10, rxcap_599_fail
+ ($I12, $I11) = rx594_cur."!mark_peek"($I10)
+ rx594_cur."!cursor_pos"($I11)
+ ($P10) = rx594_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx594_pos, "")
+ rx594_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_596_done
- rxcap_596_fail:
- goto rx591_fail
- rxcap_596_done:
+ goto rxcap_599_done
+ rxcap_599_fail:
+ goto rx594_fail
+ rxcap_599_done:
# rx subrule "method_def" subtype=capture negate=
- rx591_cur."!cursor_pos"(rx591_pos)
- $P10 = rx591_cur."method_def"()
- unless $P10, rx591_fail
- rx591_cur."!mark_push"(0, -1, 0, $P10)
+ rx594_cur."!cursor_pos"(rx594_pos)
+ $P10 = rx594_cur."method_def"()
+ unless $P10, rx594_fail
+ rx594_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("method_def")
- rx591_pos = $P10."pos"()
+ rx594_pos = $P10."pos"()
# rx pass
- rx591_cur."!cursor_pass"(rx591_pos, "routine_declarator:sym<method>")
- rx591_cur."!cursor_debug"("PASS ", "routine_declarator:sym<method>", " at pos=", rx591_pos)
- .return (rx591_cur)
- rx591_fail:
+ rx594_cur."!cursor_pass"(rx594_pos, "routine_declarator:sym<method>")
+ rx594_cur."!cursor_debug"("PASS ", "routine_declarator:sym<method>", " at pos=", rx594_pos)
+ .return (rx594_cur)
+ rx594_fail:
.annotate "line", 4
- (rx591_rep, rx591_pos, $I10, $P10) = rx591_cur."!mark_fail"(0)
- lt rx591_pos, -1, rx591_done
- eq rx591_pos, -1, rx591_fail
+ (rx594_rep, rx594_pos, $I10, $P10) = rx594_cur."!mark_fail"(0)
+ lt rx594_pos, -1, rx594_done
+ eq rx594_pos, -1, rx594_fail
jump $I10
- rx591_done:
- rx591_cur."!cursor_fail"()
- rx591_cur."!cursor_debug"("FAIL ", "routine_declarator:sym<method>")
- .return (rx591_cur)
+ rx594_done:
+ rx594_cur."!cursor_fail"()
+ rx594_cur."!cursor_debug"("FAIL ", "routine_declarator:sym<method>")
+ .return (rx594_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<method>" :subid("148_1267204702.05125") :method
+.sub "!PREFIX__routine_declarator:sym<method>" :subid("148_1271336396.90314") :method
.annotate "line", 4
- $P593 = self."!PREFIX__!subrule"("method_def", "method")
- new $P594, "ResizablePMCArray"
- push $P594, $P593
- .return ($P594)
+ $P596 = self."!PREFIX__!subrule"("method_def", "method")
+ new $P597, "ResizablePMCArray"
+ push $P597, $P596
+ .return ($P597)
.end
.namespace ["NQP";"Grammar"]
-.sub "routine_def" :subid("149_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "routine_def" :subid("149_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx598_tgt
- .local int rx598_pos
- .local int rx598_off
- .local int rx598_eos
- .local int rx598_rep
- .local pmc rx598_cur
- (rx598_cur, rx598_pos, rx598_tgt) = self."!cursor_start"()
- rx598_cur."!cursor_debug"("START ", "routine_def")
- rx598_cur."!cursor_caparray"("deflongname", "sigil")
- .lex unicode:"$\x{a2}", rx598_cur
+ .local string rx601_tgt
+ .local int rx601_pos
+ .local int rx601_off
+ .local int rx601_eos
+ .local int rx601_rep
+ .local pmc rx601_cur
+ (rx601_cur, rx601_pos, rx601_tgt) = self."!cursor_start"()
+ rx601_cur."!cursor_debug"("START ", "routine_def")
+ rx601_cur."!cursor_caparray"("sigil", "deflongname")
+ .lex unicode:"$\x{a2}", rx601_cur
.local pmc match
.lex "$/", match
- length rx598_eos, rx598_tgt
- set rx598_off, 0
- lt rx598_pos, 2, rx598_start
- sub rx598_off, rx598_pos, 1
- substr rx598_tgt, rx598_tgt, rx598_off
- rx598_start:
+ length rx601_eos, rx601_tgt
+ set rx601_off, 0
+ lt rx601_pos, 2, rx601_start
+ sub rx601_off, rx601_pos, 1
+ substr rx601_tgt, rx601_tgt, rx601_off
+ rx601_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan601_done
- goto rxscan601_scan
- rxscan601_loop:
- ($P10) = rx598_cur."from"()
+ ne $I10, -1, rxscan604_done
+ goto rxscan604_scan
+ rxscan604_loop:
+ ($P10) = rx601_cur."from"()
inc $P10
- set rx598_pos, $P10
- ge rx598_pos, rx598_eos, rxscan601_done
- rxscan601_scan:
- set_addr $I10, rxscan601_loop
- rx598_cur."!mark_push"(0, rx598_pos, $I10)
- rxscan601_done:
-.annotate "line", 279
+ set rx601_pos, $P10
+ ge rx601_pos, rx601_eos, rxscan604_done
+ rxscan604_scan:
+ set_addr $I10, rxscan604_loop
+ rx601_cur."!mark_push"(0, rx601_pos, $I10)
+ rxscan604_done:
+.annotate "line", 283
# rx subrule "ws" subtype=method negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."ws"()
- unless $P10, rx598_fail
- rx598_pos = $P10."pos"()
-.annotate "line", 280
- # rx rxquantr603 ** 0..1
- set_addr $I609, rxquantr603_done
- rx598_cur."!mark_push"(0, rx598_pos, $I609)
- rxquantr603_loop:
- # rx subrule "ws" subtype=method negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."ws"()
- unless $P10, rx598_fail
- rx598_pos = $P10."pos"()
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."ws"()
+ unless $P10, rx601_fail
+ rx601_pos = $P10."pos"()
+.annotate "line", 284
+ # rx rxquantr606 ** 0..1
+ set_addr $I612, rxquantr606_done
+ rx601_cur."!mark_push"(0, rx601_pos, $I612)
+ rxquantr606_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."ws"()
+ unless $P10, rx601_fail
+ rx601_pos = $P10."pos"()
# rx subcapture "sigil"
- set_addr $I10, rxcap_607_fail
- rx598_cur."!mark_push"(0, rx598_pos, $I10)
- # rx rxquantr605 ** 0..1
- set_addr $I606, rxquantr605_done
- rx598_cur."!mark_push"(0, rx598_pos, $I606)
- rxquantr605_loop:
+ set_addr $I10, rxcap_610_fail
+ rx601_cur."!mark_push"(0, rx601_pos, $I10)
+ # rx rxquantr608 ** 0..1
+ set_addr $I609, rxquantr608_done
+ rx601_cur."!mark_push"(0, rx601_pos, $I609)
+ rxquantr608_loop:
# rx literal "&"
- add $I11, rx598_pos, 1
- gt $I11, rx598_eos, rx598_fail
- sub $I11, rx598_pos, rx598_off
- substr $S10, rx598_tgt, $I11, 1
- ne $S10, "&", rx598_fail
- add rx598_pos, 1
- (rx598_rep) = rx598_cur."!mark_commit"($I606)
- rxquantr605_done:
- set_addr $I10, rxcap_607_fail
- ($I12, $I11) = rx598_cur."!mark_peek"($I10)
- rx598_cur."!cursor_pos"($I11)
- ($P10) = rx598_cur."!cursor_start"()
- $P10."!cursor_pass"(rx598_pos, "")
- rx598_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx601_pos, 1
+ gt $I11, rx601_eos, rx601_fail
+ sub $I11, rx601_pos, rx601_off
+ substr $S10, rx601_tgt, $I11, 1
+ ne $S10, "&", rx601_fail
+ add rx601_pos, 1
+ (rx601_rep) = rx601_cur."!mark_commit"($I609)
+ rxquantr608_done:
+ set_addr $I10, rxcap_610_fail
+ ($I12, $I11) = rx601_cur."!mark_peek"($I10)
+ rx601_cur."!cursor_pos"($I11)
+ ($P10) = rx601_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx601_pos, "")
+ rx601_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sigil")
- goto rxcap_607_done
- rxcap_607_fail:
- goto rx598_fail
- rxcap_607_done:
+ goto rxcap_610_done
+ rxcap_610_fail:
+ goto rx601_fail
+ rxcap_610_done:
# rx subrule "deflongname" subtype=capture negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."deflongname"()
- unless $P10, rx598_fail
- rx598_cur."!mark_push"(0, -1, 0, $P10)
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."deflongname"()
+ unless $P10, rx601_fail
+ rx601_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("deflongname")
- rx598_pos = $P10."pos"()
+ rx601_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."ws"()
- unless $P10, rx598_fail
- rx598_pos = $P10."pos"()
- (rx598_rep) = rx598_cur."!mark_commit"($I609)
- rxquantr603_done:
- # rx subrule "ws" subtype=method negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."ws"()
- unless $P10, rx598_fail
- rx598_pos = $P10."pos"()
-.annotate "line", 281
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."ws"()
+ unless $P10, rx601_fail
+ rx601_pos = $P10."pos"()
+ (rx601_rep) = rx601_cur."!mark_commit"($I612)
+ rxquantr606_done:
+ # rx subrule "ws" subtype=method negate=
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."ws"()
+ unless $P10, rx601_fail
+ rx601_pos = $P10."pos"()
+.annotate "line", 285
# rx subrule "newpad" subtype=method negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."newpad"()
- unless $P10, rx598_fail
- rx598_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."ws"()
- unless $P10, rx598_fail
- rx598_pos = $P10."pos"()
- alt612_0:
-.annotate "line", 282
- set_addr $I10, alt612_1
- rx598_cur."!mark_push"(0, rx598_pos, $I10)
- # rx subrule "ws" subtype=method negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."ws"()
- unless $P10, rx598_fail
- rx598_pos = $P10."pos"()
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."newpad"()
+ unless $P10, rx601_fail
+ rx601_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."ws"()
+ unless $P10, rx601_fail
+ rx601_pos = $P10."pos"()
+ alt615_0:
+.annotate "line", 286
+ set_addr $I10, alt615_1
+ rx601_cur."!mark_push"(0, rx601_pos, $I10)
+ # rx subrule "ws" subtype=method negate=
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."ws"()
+ unless $P10, rx601_fail
+ rx601_pos = $P10."pos"()
# rx literal "("
- add $I11, rx598_pos, 1
- gt $I11, rx598_eos, rx598_fail
- sub $I11, rx598_pos, rx598_off
- substr $S10, rx598_tgt, $I11, 1
- ne $S10, "(", rx598_fail
- add rx598_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."ws"()
- unless $P10, rx598_fail
- rx598_pos = $P10."pos"()
+ add $I11, rx601_pos, 1
+ gt $I11, rx601_eos, rx601_fail
+ sub $I11, rx601_pos, rx601_off
+ substr $S10, rx601_tgt, $I11, 1
+ ne $S10, "(", rx601_fail
+ add rx601_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."ws"()
+ unless $P10, rx601_fail
+ rx601_pos = $P10."pos"()
# rx subrule "signature" subtype=capture negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."signature"()
- unless $P10, rx598_fail
- rx598_cur."!mark_push"(0, -1, 0, $P10)
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."signature"()
+ unless $P10, rx601_fail
+ rx601_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("signature")
- rx598_pos = $P10."pos"()
+ rx601_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."ws"()
- unless $P10, rx598_fail
- rx598_pos = $P10."pos"()
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."ws"()
+ unless $P10, rx601_fail
+ rx601_pos = $P10."pos"()
# rx literal ")"
- add $I11, rx598_pos, 1
- gt $I11, rx598_eos, rx598_fail
- sub $I11, rx598_pos, rx598_off
- substr $S10, rx598_tgt, $I11, 1
- ne $S10, ")", rx598_fail
- add rx598_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."ws"()
- unless $P10, rx598_fail
- rx598_pos = $P10."pos"()
- goto alt612_end
- alt612_1:
-.annotate "line", 283
+ add $I11, rx601_pos, 1
+ gt $I11, rx601_eos, rx601_fail
+ sub $I11, rx601_pos, rx601_off
+ substr $S10, rx601_tgt, $I11, 1
+ ne $S10, ")", rx601_fail
+ add rx601_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."ws"()
+ unless $P10, rx601_fail
+ rx601_pos = $P10."pos"()
+ goto alt615_end
+ alt615_1:
+.annotate "line", 287
# rx subrule "ws" subtype=method negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."ws"()
- unless $P10, rx598_fail
- rx598_pos = $P10."pos"()
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."ws"()
+ unless $P10, rx601_fail
+ rx601_pos = $P10."pos"()
# rx subrule "panic" subtype=method negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."panic"("Routine declaration requires a signature")
- unless $P10, rx598_fail
- rx598_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."ws"()
- unless $P10, rx598_fail
- rx598_pos = $P10."pos"()
- alt612_end:
- # rx subrule "ws" subtype=method negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."ws"()
- unless $P10, rx598_fail
- rx598_pos = $P10."pos"()
-.annotate "line", 284
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."panic"("Routine declaration requires a signature")
+ unless $P10, rx601_fail
+ rx601_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."ws"()
+ unless $P10, rx601_fail
+ rx601_pos = $P10."pos"()
+ alt615_end:
+ # rx subrule "ws" subtype=method negate=
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."ws"()
+ unless $P10, rx601_fail
+ rx601_pos = $P10."pos"()
+.annotate "line", 288
# rx subrule "blockoid" subtype=capture negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."blockoid"()
- unless $P10, rx598_fail
- rx598_cur."!mark_push"(0, -1, 0, $P10)
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."blockoid"()
+ unless $P10, rx601_fail
+ rx601_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blockoid")
- rx598_pos = $P10."pos"()
+ rx601_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx598_cur."!cursor_pos"(rx598_pos)
- $P10 = rx598_cur."ws"()
- unless $P10, rx598_fail
- rx598_pos = $P10."pos"()
-.annotate "line", 279
+ rx601_cur."!cursor_pos"(rx601_pos)
+ $P10 = rx601_cur."ws"()
+ unless $P10, rx601_fail
+ rx601_pos = $P10."pos"()
+.annotate "line", 283
# rx pass
- rx598_cur."!cursor_pass"(rx598_pos, "routine_def")
- rx598_cur."!cursor_debug"("PASS ", "routine_def", " at pos=", rx598_pos)
- .return (rx598_cur)
- rx598_fail:
+ rx601_cur."!cursor_pass"(rx601_pos, "routine_def")
+ rx601_cur."!cursor_debug"("PASS ", "routine_def", " at pos=", rx601_pos)
+ .return (rx601_cur)
+ rx601_fail:
.annotate "line", 4
- (rx598_rep, rx598_pos, $I10, $P10) = rx598_cur."!mark_fail"(0)
- lt rx598_pos, -1, rx598_done
- eq rx598_pos, -1, rx598_fail
+ (rx601_rep, rx601_pos, $I10, $P10) = rx601_cur."!mark_fail"(0)
+ lt rx601_pos, -1, rx601_done
+ eq rx601_pos, -1, rx601_fail
jump $I10
- rx598_done:
- rx598_cur."!cursor_fail"()
- rx598_cur."!cursor_debug"("FAIL ", "routine_def")
- .return (rx598_cur)
+ rx601_done:
+ rx601_cur."!cursor_fail"()
+ rx601_cur."!cursor_debug"("FAIL ", "routine_def")
+ .return (rx601_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_def" :subid("150_1267204702.05125") :method
+.sub "!PREFIX__routine_def" :subid("150_1271336396.90314") :method
.annotate "line", 4
- new $P600, "ResizablePMCArray"
- push $P600, ""
- .return ($P600)
+ new $P603, "ResizablePMCArray"
+ push $P603, ""
+ .return ($P603)
.end
.namespace ["NQP";"Grammar"]
-.sub "method_def" :subid("151_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "method_def" :subid("151_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx622_tgt
- .local int rx622_pos
- .local int rx622_off
- .local int rx622_eos
- .local int rx622_rep
- .local pmc rx622_cur
- (rx622_cur, rx622_pos, rx622_tgt) = self."!cursor_start"()
- rx622_cur."!cursor_debug"("START ", "method_def")
- rx622_cur."!cursor_caparray"("deflongname")
- .lex unicode:"$\x{a2}", rx622_cur
- .local pmc match
- .lex "$/", match
- length rx622_eos, rx622_tgt
- set rx622_off, 0
- lt rx622_pos, 2, rx622_start
- sub rx622_off, rx622_pos, 1
- substr rx622_tgt, rx622_tgt, rx622_off
- rx622_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan625_done
- goto rxscan625_scan
- rxscan625_loop:
- ($P10) = rx622_cur."from"()
- inc $P10
- set rx622_pos, $P10
- ge rx622_pos, rx622_eos, rxscan625_done
- rxscan625_scan:
- set_addr $I10, rxscan625_loop
- rx622_cur."!mark_push"(0, rx622_pos, $I10)
- rxscan625_done:
-.annotate "line", 287
+ .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 ", "method_def")
+ rx625_cur."!cursor_caparray"("deflongname")
+ .lex unicode:"$\x{a2}", rx625_cur
+ .local pmc match
+ .lex "$/", match
+ length rx625_eos, rx625_tgt
+ set rx625_off, 0
+ lt rx625_pos, 2, rx625_start
+ sub rx625_off, rx625_pos, 1
+ substr rx625_tgt, rx625_tgt, rx625_off
+ rx625_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan628_done
+ goto rxscan628_scan
+ rxscan628_loop:
+ ($P10) = rx625_cur."from"()
+ inc $P10
+ set rx625_pos, $P10
+ ge rx625_pos, rx625_eos, rxscan628_done
+ rxscan628_scan:
+ set_addr $I10, rxscan628_loop
+ rx625_cur."!mark_push"(0, rx625_pos, $I10)
+ rxscan628_done:
+.annotate "line", 291
# rx subrule "ws" subtype=method negate=
- rx622_cur."!cursor_pos"(rx622_pos)
- $P10 = rx622_cur."ws"()
- unless $P10, rx622_fail
- rx622_pos = $P10."pos"()
-.annotate "line", 288
- # rx rxquantr627 ** 0..1
- set_addr $I628, rxquantr627_done
- rx622_cur."!mark_push"(0, rx622_pos, $I628)
- rxquantr627_loop:
+ rx625_cur."!cursor_pos"(rx625_pos)
+ $P10 = rx625_cur."ws"()
+ unless $P10, rx625_fail
+ rx625_pos = $P10."pos"()
+.annotate "line", 292
+ # rx rxquantr630 ** 0..1
+ set_addr $I631, rxquantr630_done
+ rx625_cur."!mark_push"(0, rx625_pos, $I631)
+ rxquantr630_loop:
# rx subrule "deflongname" subtype=capture negate=
- rx622_cur."!cursor_pos"(rx622_pos)
- $P10 = rx622_cur."deflongname"()
- unless $P10, rx622_fail
- rx622_cur."!mark_push"(0, -1, 0, $P10)
+ rx625_cur."!cursor_pos"(rx625_pos)
+ $P10 = rx625_cur."deflongname"()
+ unless $P10, rx625_fail
+ rx625_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("deflongname")
- rx622_pos = $P10."pos"()
- (rx622_rep) = rx622_cur."!mark_commit"($I628)
- rxquantr627_done:
- # rx subrule "ws" subtype=method negate=
- rx622_cur."!cursor_pos"(rx622_pos)
- $P10 = rx622_cur."ws"()
- unless $P10, rx622_fail
- rx622_pos = $P10."pos"()
-.annotate "line", 289
+ rx625_pos = $P10."pos"()
+ (rx625_rep) = rx625_cur."!mark_commit"($I631)
+ rxquantr630_done:
+ # rx subrule "ws" subtype=method negate=
+ rx625_cur."!cursor_pos"(rx625_pos)
+ $P10 = rx625_cur."ws"()
+ unless $P10, rx625_fail
+ rx625_pos = $P10."pos"()
+.annotate "line", 293
# rx subrule "newpad" subtype=method negate=
- rx622_cur."!cursor_pos"(rx622_pos)
- $P10 = rx622_cur."newpad"()
- unless $P10, rx622_fail
- rx622_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx622_cur."!cursor_pos"(rx622_pos)
- $P10 = rx622_cur."ws"()
- unless $P10, rx622_fail
- rx622_pos = $P10."pos"()
- alt631_0:
-.annotate "line", 290
- set_addr $I10, alt631_1
- rx622_cur."!mark_push"(0, rx622_pos, $I10)
- # rx subrule "ws" subtype=method negate=
- rx622_cur."!cursor_pos"(rx622_pos)
- $P10 = rx622_cur."ws"()
- unless $P10, rx622_fail
- rx622_pos = $P10."pos"()
+ rx625_cur."!cursor_pos"(rx625_pos)
+ $P10 = rx625_cur."newpad"()
+ unless $P10, rx625_fail
+ rx625_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx625_cur."!cursor_pos"(rx625_pos)
+ $P10 = rx625_cur."ws"()
+ unless $P10, rx625_fail
+ rx625_pos = $P10."pos"()
+ alt634_0:
+.annotate "line", 294
+ set_addr $I10, alt634_1
+ rx625_cur."!mark_push"(0, rx625_pos, $I10)
+ # rx subrule "ws" subtype=method negate=
+ rx625_cur."!cursor_pos"(rx625_pos)
+ $P10 = rx625_cur."ws"()
+ unless $P10, rx625_fail
+ rx625_pos = $P10."pos"()
# rx literal "("
- add $I11, rx622_pos, 1
- gt $I11, rx622_eos, rx622_fail
- sub $I11, rx622_pos, rx622_off
- substr $S10, rx622_tgt, $I11, 1
- ne $S10, "(", rx622_fail
- add rx622_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx622_cur."!cursor_pos"(rx622_pos)
- $P10 = rx622_cur."ws"()
- unless $P10, rx622_fail
- rx622_pos = $P10."pos"()
+ add $I11, rx625_pos, 1
+ gt $I11, rx625_eos, rx625_fail
+ sub $I11, rx625_pos, rx625_off
+ substr $S10, rx625_tgt, $I11, 1
+ ne $S10, "(", rx625_fail
+ add rx625_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx625_cur."!cursor_pos"(rx625_pos)
+ $P10 = rx625_cur."ws"()
+ unless $P10, rx625_fail
+ rx625_pos = $P10."pos"()
# rx subrule "signature" subtype=capture negate=
- rx622_cur."!cursor_pos"(rx622_pos)
- $P10 = rx622_cur."signature"()
- unless $P10, rx622_fail
- rx622_cur."!mark_push"(0, -1, 0, $P10)
+ rx625_cur."!cursor_pos"(rx625_pos)
+ $P10 = rx625_cur."signature"()
+ unless $P10, rx625_fail
+ rx625_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("signature")
- rx622_pos = $P10."pos"()
+ rx625_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx622_cur."!cursor_pos"(rx622_pos)
- $P10 = rx622_cur."ws"()
- unless $P10, rx622_fail
- rx622_pos = $P10."pos"()
+ rx625_cur."!cursor_pos"(rx625_pos)
+ $P10 = rx625_cur."ws"()
+ unless $P10, rx625_fail
+ rx625_pos = $P10."pos"()
# rx literal ")"
- add $I11, rx622_pos, 1
- gt $I11, rx622_eos, rx622_fail
- sub $I11, rx622_pos, rx622_off
- substr $S10, rx622_tgt, $I11, 1
- ne $S10, ")", rx622_fail
- add rx622_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx622_cur."!cursor_pos"(rx622_pos)
- $P10 = rx622_cur."ws"()
- unless $P10, rx622_fail
- rx622_pos = $P10."pos"()
- goto alt631_end
- alt631_1:
-.annotate "line", 291
+ add $I11, rx625_pos, 1
+ gt $I11, rx625_eos, rx625_fail
+ sub $I11, rx625_pos, rx625_off
+ substr $S10, rx625_tgt, $I11, 1
+ ne $S10, ")", rx625_fail
+ add rx625_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx625_cur."!cursor_pos"(rx625_pos)
+ $P10 = rx625_cur."ws"()
+ unless $P10, rx625_fail
+ rx625_pos = $P10."pos"()
+ goto alt634_end
+ alt634_1:
+.annotate "line", 295
# rx subrule "ws" subtype=method negate=
- rx622_cur."!cursor_pos"(rx622_pos)
- $P10 = rx622_cur."ws"()
- unless $P10, rx622_fail
- rx622_pos = $P10."pos"()
+ rx625_cur."!cursor_pos"(rx625_pos)
+ $P10 = rx625_cur."ws"()
+ unless $P10, rx625_fail
+ rx625_pos = $P10."pos"()
# rx subrule "panic" subtype=method negate=
- rx622_cur."!cursor_pos"(rx622_pos)
- $P10 = rx622_cur."panic"("Routine declaration requires a signature")
- unless $P10, rx622_fail
- rx622_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx622_cur."!cursor_pos"(rx622_pos)
- $P10 = rx622_cur."ws"()
- unless $P10, rx622_fail
- rx622_pos = $P10."pos"()
- alt631_end:
- # rx subrule "ws" subtype=method negate=
- rx622_cur."!cursor_pos"(rx622_pos)
- $P10 = rx622_cur."ws"()
- unless $P10, rx622_fail
- rx622_pos = $P10."pos"()
-.annotate "line", 292
+ rx625_cur."!cursor_pos"(rx625_pos)
+ $P10 = rx625_cur."panic"("Routine declaration requires a signature")
+ unless $P10, rx625_fail
+ rx625_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx625_cur."!cursor_pos"(rx625_pos)
+ $P10 = rx625_cur."ws"()
+ unless $P10, rx625_fail
+ rx625_pos = $P10."pos"()
+ alt634_end:
+ # rx subrule "ws" subtype=method negate=
+ rx625_cur."!cursor_pos"(rx625_pos)
+ $P10 = rx625_cur."ws"()
+ unless $P10, rx625_fail
+ rx625_pos = $P10."pos"()
+.annotate "line", 296
# rx subrule "blockoid" subtype=capture negate=
- rx622_cur."!cursor_pos"(rx622_pos)
- $P10 = rx622_cur."blockoid"()
- unless $P10, rx622_fail
- rx622_cur."!mark_push"(0, -1, 0, $P10)
+ rx625_cur."!cursor_pos"(rx625_pos)
+ $P10 = rx625_cur."blockoid"()
+ unless $P10, rx625_fail
+ rx625_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blockoid")
- rx622_pos = $P10."pos"()
+ rx625_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx622_cur."!cursor_pos"(rx622_pos)
- $P10 = rx622_cur."ws"()
- unless $P10, rx622_fail
- rx622_pos = $P10."pos"()
-.annotate "line", 287
+ rx625_cur."!cursor_pos"(rx625_pos)
+ $P10 = rx625_cur."ws"()
+ unless $P10, rx625_fail
+ rx625_pos = $P10."pos"()
+.annotate "line", 291
# rx pass
- rx622_cur."!cursor_pass"(rx622_pos, "method_def")
- rx622_cur."!cursor_debug"("PASS ", "method_def", " at pos=", rx622_pos)
- .return (rx622_cur)
- rx622_fail:
+ rx625_cur."!cursor_pass"(rx625_pos, "method_def")
+ rx625_cur."!cursor_debug"("PASS ", "method_def", " at pos=", rx625_pos)
+ .return (rx625_cur)
+ rx625_fail:
.annotate "line", 4
- (rx622_rep, rx622_pos, $I10, $P10) = rx622_cur."!mark_fail"(0)
- lt rx622_pos, -1, rx622_done
- eq rx622_pos, -1, rx622_fail
+ (rx625_rep, rx625_pos, $I10, $P10) = rx625_cur."!mark_fail"(0)
+ lt rx625_pos, -1, rx625_done
+ eq rx625_pos, -1, rx625_fail
jump $I10
- rx622_done:
- rx622_cur."!cursor_fail"()
- rx622_cur."!cursor_debug"("FAIL ", "method_def")
- .return (rx622_cur)
+ rx625_done:
+ rx625_cur."!cursor_fail"()
+ rx625_cur."!cursor_debug"("FAIL ", "method_def")
+ .return (rx625_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__method_def" :subid("152_1267204702.05125") :method
+.sub "!PREFIX__method_def" :subid("152_1271336396.90314") :method
.annotate "line", 4
- new $P624, "ResizablePMCArray"
- push $P624, ""
- .return ($P624)
+ new $P627, "ResizablePMCArray"
+ push $P627, ""
+ .return ($P627)
.end
.namespace ["NQP";"Grammar"]
-.sub "signature" :subid("153_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "signature" :subid("153_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx641_tgt
- .local int rx641_pos
- .local int rx641_off
- .local int rx641_eos
- .local int rx641_rep
- .local pmc rx641_cur
- (rx641_cur, rx641_pos, rx641_tgt) = self."!cursor_start"()
- rx641_cur."!cursor_debug"("START ", "signature")
- rx641_cur."!cursor_caparray"("parameter")
- .lex unicode:"$\x{a2}", rx641_cur
+ .local string rx644_tgt
+ .local int rx644_pos
+ .local int rx644_off
+ .local int rx644_eos
+ .local int rx644_rep
+ .local pmc rx644_cur
+ (rx644_cur, rx644_pos, rx644_tgt) = self."!cursor_start"()
+ rx644_cur."!cursor_debug"("START ", "signature")
+ rx644_cur."!cursor_caparray"("parameter")
+ .lex unicode:"$\x{a2}", rx644_cur
.local pmc match
.lex "$/", match
- length rx641_eos, rx641_tgt
- set rx641_off, 0
- lt rx641_pos, 2, rx641_start
- sub rx641_off, rx641_pos, 1
- substr rx641_tgt, rx641_tgt, rx641_off
- rx641_start:
+ length rx644_eos, rx644_tgt
+ set rx644_off, 0
+ lt rx644_pos, 2, rx644_start
+ sub rx644_off, rx644_pos, 1
+ substr rx644_tgt, rx644_tgt, rx644_off
+ rx644_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan644_done
- goto rxscan644_scan
- rxscan644_loop:
- ($P10) = rx641_cur."from"()
+ ne $I10, -1, rxscan647_done
+ goto rxscan647_scan
+ rxscan647_loop:
+ ($P10) = rx644_cur."from"()
inc $P10
- set rx641_pos, $P10
- ge rx641_pos, rx641_eos, rxscan644_done
- rxscan644_scan:
- set_addr $I10, rxscan644_loop
- rx641_cur."!mark_push"(0, rx641_pos, $I10)
- rxscan644_done:
-.annotate "line", 295
- # rx rxquantr645 ** 0..1
- set_addr $I648, rxquantr645_done
- rx641_cur."!mark_push"(0, rx641_pos, $I648)
- rxquantr645_loop:
- # rx rxquantr646 ** 1..*
- set_addr $I647, rxquantr646_done
- rx641_cur."!mark_push"(0, -1, $I647)
- rxquantr646_loop:
- # rx subrule "ws" subtype=method negate=
- rx641_cur."!cursor_pos"(rx641_pos)
- $P10 = rx641_cur."ws"()
- unless $P10, rx641_fail
- rx641_pos = $P10."pos"()
+ set rx644_pos, $P10
+ ge rx644_pos, rx644_eos, rxscan647_done
+ rxscan647_scan:
+ set_addr $I10, rxscan647_loop
+ rx644_cur."!mark_push"(0, rx644_pos, $I10)
+ rxscan647_done:
+.annotate "line", 299
+ # rx rxquantr648 ** 0..1
+ set_addr $I651, rxquantr648_done
+ rx644_cur."!mark_push"(0, rx644_pos, $I651)
+ rxquantr648_loop:
+ # rx rxquantr649 ** 1..*
+ set_addr $I650, rxquantr649_done
+ rx644_cur."!mark_push"(0, -1, $I650)
+ rxquantr649_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx644_cur."!cursor_pos"(rx644_pos)
+ $P10 = rx644_cur."ws"()
+ unless $P10, rx644_fail
+ rx644_pos = $P10."pos"()
# rx subrule "parameter" subtype=capture negate=
- rx641_cur."!cursor_pos"(rx641_pos)
- $P10 = rx641_cur."parameter"()
- unless $P10, rx641_fail
- rx641_cur."!mark_push"(0, -1, 0, $P10)
+ rx644_cur."!cursor_pos"(rx644_pos)
+ $P10 = rx644_cur."parameter"()
+ unless $P10, rx644_fail
+ rx644_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("parameter")
- rx641_pos = $P10."pos"()
+ rx644_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx641_cur."!cursor_pos"(rx641_pos)
- $P10 = rx641_cur."ws"()
- unless $P10, rx641_fail
- rx641_pos = $P10."pos"()
- (rx641_rep) = rx641_cur."!mark_commit"($I647)
- rx641_cur."!mark_push"(rx641_rep, rx641_pos, $I647)
+ rx644_cur."!cursor_pos"(rx644_pos)
+ $P10 = rx644_cur."ws"()
+ unless $P10, rx644_fail
+ rx644_pos = $P10."pos"()
+ (rx644_rep) = rx644_cur."!mark_commit"($I650)
+ rx644_cur."!mark_push"(rx644_rep, rx644_pos, $I650)
# rx literal ","
- add $I11, rx641_pos, 1
- gt $I11, rx641_eos, rx641_fail
- sub $I11, rx641_pos, rx641_off
- substr $S10, rx641_tgt, $I11, 1
- ne $S10, ",", rx641_fail
- add rx641_pos, 1
- goto rxquantr646_loop
- rxquantr646_done:
- (rx641_rep) = rx641_cur."!mark_commit"($I648)
- rxquantr645_done:
+ add $I11, rx644_pos, 1
+ gt $I11, rx644_eos, rx644_fail
+ sub $I11, rx644_pos, rx644_off
+ substr $S10, rx644_tgt, $I11, 1
+ ne $S10, ",", rx644_fail
+ add rx644_pos, 1
+ goto rxquantr649_loop
+ rxquantr649_done:
+ (rx644_rep) = rx644_cur."!mark_commit"($I651)
+ rxquantr648_done:
# rx pass
- rx641_cur."!cursor_pass"(rx641_pos, "signature")
- rx641_cur."!cursor_debug"("PASS ", "signature", " at pos=", rx641_pos)
- .return (rx641_cur)
- rx641_fail:
+ rx644_cur."!cursor_pass"(rx644_pos, "signature")
+ rx644_cur."!cursor_debug"("PASS ", "signature", " at pos=", rx644_pos)
+ .return (rx644_cur)
+ rx644_fail:
.annotate "line", 4
- (rx641_rep, rx641_pos, $I10, $P10) = rx641_cur."!mark_fail"(0)
- lt rx641_pos, -1, rx641_done
- eq rx641_pos, -1, rx641_fail
+ (rx644_rep, rx644_pos, $I10, $P10) = rx644_cur."!mark_fail"(0)
+ lt rx644_pos, -1, rx644_done
+ eq rx644_pos, -1, rx644_fail
jump $I10
- rx641_done:
- rx641_cur."!cursor_fail"()
- rx641_cur."!cursor_debug"("FAIL ", "signature")
- .return (rx641_cur)
+ rx644_done:
+ rx644_cur."!cursor_fail"()
+ rx644_cur."!cursor_debug"("FAIL ", "signature")
+ .return (rx644_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__signature" :subid("154_1267204702.05125") :method
+.sub "!PREFIX__signature" :subid("154_1271336396.90314") :method
.annotate "line", 4
- new $P643, "ResizablePMCArray"
- push $P643, ""
- .return ($P643)
+ new $P646, "ResizablePMCArray"
+ push $P646, ""
+ .return ($P646)
.end
.namespace ["NQP";"Grammar"]
-.sub "parameter" :subid("155_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "parameter" :subid("155_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx650_tgt
- .local int rx650_pos
- .local int rx650_off
- .local int rx650_eos
- .local int rx650_rep
- .local pmc rx650_cur
- (rx650_cur, rx650_pos, rx650_tgt) = self."!cursor_start"()
- rx650_cur."!cursor_debug"("START ", "parameter")
- rx650_cur."!cursor_caparray"("default_value")
- .lex unicode:"$\x{a2}", rx650_cur
+ .local string rx653_tgt
+ .local int rx653_pos
+ .local int rx653_off
+ .local int rx653_eos
+ .local int rx653_rep
+ .local pmc rx653_cur
+ (rx653_cur, rx653_pos, rx653_tgt) = self."!cursor_start"()
+ rx653_cur."!cursor_debug"("START ", "parameter")
+ rx653_cur."!cursor_caparray"("default_value")
+ .lex unicode:"$\x{a2}", rx653_cur
.local pmc match
.lex "$/", match
- length rx650_eos, rx650_tgt
- set rx650_off, 0
- lt rx650_pos, 2, rx650_start
- sub rx650_off, rx650_pos, 1
- substr rx650_tgt, rx650_tgt, rx650_off
- rx650_start:
+ length rx653_eos, rx653_tgt
+ set rx653_off, 0
+ lt rx653_pos, 2, rx653_start
+ sub rx653_off, rx653_pos, 1
+ substr rx653_tgt, rx653_tgt, rx653_off
+ rx653_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan656_done
- goto rxscan656_scan
- rxscan656_loop:
- ($P10) = rx650_cur."from"()
+ ne $I10, -1, rxscan659_done
+ goto rxscan659_scan
+ rxscan659_loop:
+ ($P10) = rx653_cur."from"()
inc $P10
- set rx650_pos, $P10
- ge rx650_pos, rx650_eos, rxscan656_done
- rxscan656_scan:
- set_addr $I10, rxscan656_loop
- rx650_cur."!mark_push"(0, rx650_pos, $I10)
- rxscan656_done:
- alt657_0:
-.annotate "line", 298
- set_addr $I10, alt657_1
- rx650_cur."!mark_push"(0, rx650_pos, $I10)
-.annotate "line", 299
+ set rx653_pos, $P10
+ ge rx653_pos, rx653_eos, rxscan659_done
+ rxscan659_scan:
+ set_addr $I10, rxscan659_loop
+ rx653_cur."!mark_push"(0, rx653_pos, $I10)
+ rxscan659_done:
+ alt660_0:
+.annotate "line", 302
+ set_addr $I10, alt660_1
+ rx653_cur."!mark_push"(0, rx653_pos, $I10)
+.annotate "line", 303
# rx subcapture "quant"
- set_addr $I10, rxcap_658_fail
- rx650_cur."!mark_push"(0, rx650_pos, $I10)
+ set_addr $I10, rxcap_661_fail
+ rx653_cur."!mark_push"(0, rx653_pos, $I10)
# rx literal "*"
- add $I11, rx650_pos, 1
- gt $I11, rx650_eos, rx650_fail
- sub $I11, rx650_pos, rx650_off
- substr $S10, rx650_tgt, $I11, 1
- ne $S10, "*", rx650_fail
- add rx650_pos, 1
- set_addr $I10, rxcap_658_fail
- ($I12, $I11) = rx650_cur."!mark_peek"($I10)
- rx650_cur."!cursor_pos"($I11)
- ($P10) = rx650_cur."!cursor_start"()
- $P10."!cursor_pass"(rx650_pos, "")
- rx650_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx653_pos, 1
+ gt $I11, rx653_eos, rx653_fail
+ sub $I11, rx653_pos, rx653_off
+ substr $S10, rx653_tgt, $I11, 1
+ ne $S10, "*", rx653_fail
+ add rx653_pos, 1
+ set_addr $I10, rxcap_661_fail
+ ($I12, $I11) = rx653_cur."!mark_peek"($I10)
+ rx653_cur."!cursor_pos"($I11)
+ ($P10) = rx653_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx653_pos, "")
+ rx653_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quant")
- goto rxcap_658_done
- rxcap_658_fail:
- goto rx650_fail
- rxcap_658_done:
+ goto rxcap_661_done
+ rxcap_661_fail:
+ goto rx653_fail
+ rxcap_661_done:
# rx subrule "param_var" subtype=capture negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."param_var"()
- unless $P10, rx650_fail
- rx650_cur."!mark_push"(0, -1, 0, $P10)
+ rx653_cur."!cursor_pos"(rx653_pos)
+ $P10 = rx653_cur."param_var"()
+ unless $P10, rx653_fail
+ rx653_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("param_var")
- rx650_pos = $P10."pos"()
- goto alt657_end
- alt657_1:
- alt659_0:
-.annotate "line", 300
- set_addr $I10, alt659_1
- rx650_cur."!mark_push"(0, rx650_pos, $I10)
+ rx653_pos = $P10."pos"()
+ goto alt660_end
+ alt660_1:
+ alt662_0:
+.annotate "line", 304
+ set_addr $I10, alt662_1
+ rx653_cur."!mark_push"(0, rx653_pos, $I10)
# rx subrule "param_var" subtype=capture negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."param_var"()
- unless $P10, rx650_fail
- rx650_cur."!mark_push"(0, -1, 0, $P10)
+ rx653_cur."!cursor_pos"(rx653_pos)
+ $P10 = rx653_cur."param_var"()
+ unless $P10, rx653_fail
+ rx653_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("param_var")
- rx650_pos = $P10."pos"()
- goto alt659_end
- alt659_1:
+ rx653_pos = $P10."pos"()
+ goto alt662_end
+ alt662_1:
# rx subrule "named_param" subtype=capture negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."named_param"()
- unless $P10, rx650_fail
- rx650_cur."!mark_push"(0, -1, 0, $P10)
+ rx653_cur."!cursor_pos"(rx653_pos)
+ $P10 = rx653_cur."named_param"()
+ unless $P10, rx653_fail
+ rx653_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("named_param")
- rx650_pos = $P10."pos"()
- alt659_end:
+ rx653_pos = $P10."pos"()
+ alt662_end:
# rx subcapture "quant"
- set_addr $I10, rxcap_661_fail
- rx650_cur."!mark_push"(0, rx650_pos, $I10)
- alt660_0:
- set_addr $I10, alt660_1
- rx650_cur."!mark_push"(0, rx650_pos, $I10)
+ set_addr $I10, rxcap_664_fail
+ rx653_cur."!mark_push"(0, rx653_pos, $I10)
+ alt663_0:
+ set_addr $I10, alt663_1
+ rx653_cur."!mark_push"(0, rx653_pos, $I10)
# rx literal "?"
- add $I11, rx650_pos, 1
- gt $I11, rx650_eos, rx650_fail
- sub $I11, rx650_pos, rx650_off
- substr $S10, rx650_tgt, $I11, 1
- ne $S10, "?", rx650_fail
- add rx650_pos, 1
- goto alt660_end
- alt660_1:
- set_addr $I10, alt660_2
- rx650_cur."!mark_push"(0, rx650_pos, $I10)
+ add $I11, rx653_pos, 1
+ gt $I11, rx653_eos, rx653_fail
+ sub $I11, rx653_pos, rx653_off
+ substr $S10, rx653_tgt, $I11, 1
+ ne $S10, "?", rx653_fail
+ add rx653_pos, 1
+ goto alt663_end
+ alt663_1:
+ set_addr $I10, alt663_2
+ rx653_cur."!mark_push"(0, rx653_pos, $I10)
# rx literal "!"
- add $I11, rx650_pos, 1
- gt $I11, rx650_eos, rx650_fail
- sub $I11, rx650_pos, rx650_off
- substr $S10, rx650_tgt, $I11, 1
- ne $S10, "!", rx650_fail
- add rx650_pos, 1
- goto alt660_end
- alt660_2:
- alt660_end:
- set_addr $I10, rxcap_661_fail
- ($I12, $I11) = rx650_cur."!mark_peek"($I10)
- rx650_cur."!cursor_pos"($I11)
- ($P10) = rx650_cur."!cursor_start"()
- $P10."!cursor_pass"(rx650_pos, "")
- rx650_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx653_pos, 1
+ gt $I11, rx653_eos, rx653_fail
+ sub $I11, rx653_pos, rx653_off
+ substr $S10, rx653_tgt, $I11, 1
+ ne $S10, "!", rx653_fail
+ add rx653_pos, 1
+ goto alt663_end
+ alt663_2:
+ alt663_end:
+ set_addr $I10, rxcap_664_fail
+ ($I12, $I11) = rx653_cur."!mark_peek"($I10)
+ rx653_cur."!cursor_pos"($I11)
+ ($P10) = rx653_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx653_pos, "")
+ rx653_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quant")
- goto rxcap_661_done
- rxcap_661_fail:
- goto rx650_fail
- rxcap_661_done:
- alt657_end:
-.annotate "line", 302
- # rx rxquantr662 ** 0..1
- set_addr $I663, rxquantr662_done
- rx650_cur."!mark_push"(0, rx650_pos, $I663)
- rxquantr662_loop:
+ goto rxcap_664_done
+ rxcap_664_fail:
+ goto rx653_fail
+ rxcap_664_done:
+ alt660_end:
+.annotate "line", 306
+ # rx rxquantr665 ** 0..1
+ set_addr $I666, rxquantr665_done
+ rx653_cur."!mark_push"(0, rx653_pos, $I666)
+ rxquantr665_loop:
# rx subrule "default_value" subtype=capture negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."default_value"()
- unless $P10, rx650_fail
- rx650_cur."!mark_push"(0, -1, 0, $P10)
+ rx653_cur."!cursor_pos"(rx653_pos)
+ $P10 = rx653_cur."default_value"()
+ unless $P10, rx653_fail
+ rx653_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("default_value")
- rx650_pos = $P10."pos"()
- (rx650_rep) = rx650_cur."!mark_commit"($I663)
- rxquantr662_done:
-.annotate "line", 297
+ rx653_pos = $P10."pos"()
+ (rx653_rep) = rx653_cur."!mark_commit"($I666)
+ rxquantr665_done:
+.annotate "line", 301
# rx pass
- rx650_cur."!cursor_pass"(rx650_pos, "parameter")
- rx650_cur."!cursor_debug"("PASS ", "parameter", " at pos=", rx650_pos)
- .return (rx650_cur)
- rx650_fail:
+ rx653_cur."!cursor_pass"(rx653_pos, "parameter")
+ rx653_cur."!cursor_debug"("PASS ", "parameter", " at pos=", rx653_pos)
+ .return (rx653_cur)
+ rx653_fail:
.annotate "line", 4
- (rx650_rep, rx650_pos, $I10, $P10) = rx650_cur."!mark_fail"(0)
- lt rx650_pos, -1, rx650_done
- eq rx650_pos, -1, rx650_fail
+ (rx653_rep, rx653_pos, $I10, $P10) = rx653_cur."!mark_fail"(0)
+ lt rx653_pos, -1, rx653_done
+ eq rx653_pos, -1, rx653_fail
jump $I10
- rx650_done:
- rx650_cur."!cursor_fail"()
- rx650_cur."!cursor_debug"("FAIL ", "parameter")
- .return (rx650_cur)
+ rx653_done:
+ rx653_cur."!cursor_fail"()
+ rx653_cur."!cursor_debug"("FAIL ", "parameter")
+ .return (rx653_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__parameter" :subid("156_1267204702.05125") :method
+.sub "!PREFIX__parameter" :subid("156_1271336396.90314") :method
.annotate "line", 4
- $P652 = self."!PREFIX__!subrule"("named_param", "")
- $P653 = self."!PREFIX__!subrule"("param_var", "")
- $P654 = self."!PREFIX__!subrule"("param_var", "*")
- new $P655, "ResizablePMCArray"
- push $P655, $P652
- push $P655, $P653
- push $P655, $P654
- .return ($P655)
+ $P655 = self."!PREFIX__!subrule"("named_param", "")
+ $P656 = self."!PREFIX__!subrule"("param_var", "")
+ $P657 = self."!PREFIX__!subrule"("param_var", "*")
+ new $P658, "ResizablePMCArray"
+ push $P658, $P655
+ push $P658, $P656
+ push $P658, $P657
+ .return ($P658)
.end
.namespace ["NQP";"Grammar"]
-.sub "param_var" :subid("157_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "param_var" :subid("157_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx665_tgt
- .local int rx665_pos
- .local int rx665_off
- .local int rx665_eos
- .local int rx665_rep
- .local pmc rx665_cur
- (rx665_cur, rx665_pos, rx665_tgt) = self."!cursor_start"()
- rx665_cur."!cursor_debug"("START ", "param_var")
- rx665_cur."!cursor_caparray"("twigil")
- .lex unicode:"$\x{a2}", rx665_cur
+ .local string rx668_tgt
+ .local int rx668_pos
+ .local int rx668_off
+ .local int rx668_eos
+ .local int rx668_rep
+ .local pmc rx668_cur
+ (rx668_cur, rx668_pos, rx668_tgt) = self."!cursor_start"()
+ rx668_cur."!cursor_debug"("START ", "param_var")
+ rx668_cur."!cursor_caparray"("twigil")
+ .lex unicode:"$\x{a2}", rx668_cur
.local pmc match
.lex "$/", match
- length rx665_eos, rx665_tgt
- set rx665_off, 0
- lt rx665_pos, 2, rx665_start
- sub rx665_off, rx665_pos, 1
- substr rx665_tgt, rx665_tgt, rx665_off
- rx665_start:
+ length rx668_eos, rx668_tgt
+ set rx668_off, 0
+ lt rx668_pos, 2, rx668_start
+ sub rx668_off, rx668_pos, 1
+ substr rx668_tgt, rx668_tgt, rx668_off
+ rx668_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan669_done
- goto rxscan669_scan
- rxscan669_loop:
- ($P10) = rx665_cur."from"()
+ ne $I10, -1, rxscan672_done
+ goto rxscan672_scan
+ rxscan672_loop:
+ ($P10) = rx668_cur."from"()
inc $P10
- set rx665_pos, $P10
- ge rx665_pos, rx665_eos, rxscan669_done
- rxscan669_scan:
- set_addr $I10, rxscan669_loop
- rx665_cur."!mark_push"(0, rx665_pos, $I10)
- rxscan669_done:
-.annotate "line", 306
+ set rx668_pos, $P10
+ ge rx668_pos, rx668_eos, rxscan672_done
+ rxscan672_scan:
+ set_addr $I10, rxscan672_loop
+ rx668_cur."!mark_push"(0, rx668_pos, $I10)
+ rxscan672_done:
+.annotate "line", 310
# rx subrule "sigil" subtype=capture negate=
- rx665_cur."!cursor_pos"(rx665_pos)
- $P10 = rx665_cur."sigil"()
- unless $P10, rx665_fail
- rx665_cur."!mark_push"(0, -1, 0, $P10)
+ rx668_cur."!cursor_pos"(rx668_pos)
+ $P10 = rx668_cur."sigil"()
+ unless $P10, rx668_fail
+ rx668_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sigil")
- rx665_pos = $P10."pos"()
- # rx rxquantr670 ** 0..1
- set_addr $I671, rxquantr670_done
- rx665_cur."!mark_push"(0, rx665_pos, $I671)
- rxquantr670_loop:
+ rx668_pos = $P10."pos"()
+ # rx rxquantr673 ** 0..1
+ set_addr $I674, rxquantr673_done
+ rx668_cur."!mark_push"(0, rx668_pos, $I674)
+ rxquantr673_loop:
# rx subrule "twigil" subtype=capture negate=
- rx665_cur."!cursor_pos"(rx665_pos)
- $P10 = rx665_cur."twigil"()
- unless $P10, rx665_fail
- rx665_cur."!mark_push"(0, -1, 0, $P10)
+ rx668_cur."!cursor_pos"(rx668_pos)
+ $P10 = rx668_cur."twigil"()
+ unless $P10, rx668_fail
+ rx668_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("twigil")
- rx665_pos = $P10."pos"()
- (rx665_rep) = rx665_cur."!mark_commit"($I671)
- rxquantr670_done:
- alt672_0:
-.annotate "line", 307
- set_addr $I10, alt672_1
- rx665_cur."!mark_push"(0, rx665_pos, $I10)
+ rx668_pos = $P10."pos"()
+ (rx668_rep) = rx668_cur."!mark_commit"($I674)
+ rxquantr673_done:
+ alt675_0:
+.annotate "line", 311
+ set_addr $I10, alt675_1
+ rx668_cur."!mark_push"(0, rx668_pos, $I10)
# rx subrule "ident" subtype=capture negate=
- rx665_cur."!cursor_pos"(rx665_pos)
- $P10 = rx665_cur."ident"()
- unless $P10, rx665_fail
- rx665_cur."!mark_push"(0, -1, 0, $P10)
+ rx668_cur."!cursor_pos"(rx668_pos)
+ $P10 = rx668_cur."ident"()
+ unless $P10, rx668_fail
+ rx668_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("name")
- rx665_pos = $P10."pos"()
- goto alt672_end
- alt672_1:
+ rx668_pos = $P10."pos"()
+ goto alt675_end
+ alt675_1:
# rx subcapture "name"
- set_addr $I10, rxcap_673_fail
- rx665_cur."!mark_push"(0, rx665_pos, $I10)
+ set_addr $I10, rxcap_676_fail
+ rx668_cur."!mark_push"(0, rx668_pos, $I10)
# rx enumcharlist negate=0
- ge rx665_pos, rx665_eos, rx665_fail
- sub $I10, rx665_pos, rx665_off
- substr $S10, rx665_tgt, $I10, 1
+ ge rx668_pos, rx668_eos, rx668_fail
+ sub $I10, rx668_pos, rx668_off
+ substr $S10, rx668_tgt, $I10, 1
index $I11, "/!", $S10
- lt $I11, 0, rx665_fail
- inc rx665_pos
- set_addr $I10, rxcap_673_fail
- ($I12, $I11) = rx665_cur."!mark_peek"($I10)
- rx665_cur."!cursor_pos"($I11)
- ($P10) = rx665_cur."!cursor_start"()
- $P10."!cursor_pass"(rx665_pos, "")
- rx665_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx668_fail
+ inc rx668_pos
+ set_addr $I10, rxcap_676_fail
+ ($I12, $I11) = rx668_cur."!mark_peek"($I10)
+ rx668_cur."!cursor_pos"($I11)
+ ($P10) = rx668_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx668_pos, "")
+ rx668_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("name")
- goto rxcap_673_done
- rxcap_673_fail:
- goto rx665_fail
- rxcap_673_done:
- alt672_end:
-.annotate "line", 305
+ goto rxcap_676_done
+ rxcap_676_fail:
+ goto rx668_fail
+ rxcap_676_done:
+ alt675_end:
+.annotate "line", 309
# rx pass
- rx665_cur."!cursor_pass"(rx665_pos, "param_var")
- rx665_cur."!cursor_debug"("PASS ", "param_var", " at pos=", rx665_pos)
- .return (rx665_cur)
- rx665_fail:
+ rx668_cur."!cursor_pass"(rx668_pos, "param_var")
+ rx668_cur."!cursor_debug"("PASS ", "param_var", " at pos=", rx668_pos)
+ .return (rx668_cur)
+ rx668_fail:
.annotate "line", 4
- (rx665_rep, rx665_pos, $I10, $P10) = rx665_cur."!mark_fail"(0)
- lt rx665_pos, -1, rx665_done
- eq rx665_pos, -1, rx665_fail
+ (rx668_rep, rx668_pos, $I10, $P10) = rx668_cur."!mark_fail"(0)
+ lt rx668_pos, -1, rx668_done
+ eq rx668_pos, -1, rx668_fail
jump $I10
- rx665_done:
- rx665_cur."!cursor_fail"()
- rx665_cur."!cursor_debug"("FAIL ", "param_var")
- .return (rx665_cur)
+ rx668_done:
+ rx668_cur."!cursor_fail"()
+ rx668_cur."!cursor_debug"("FAIL ", "param_var")
+ .return (rx668_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__param_var" :subid("158_1267204702.05125") :method
+.sub "!PREFIX__param_var" :subid("158_1271336396.90314") :method
.annotate "line", 4
- $P667 = self."!PREFIX__!subrule"("sigil", "")
- new $P668, "ResizablePMCArray"
- push $P668, $P667
- .return ($P668)
+ $P670 = self."!PREFIX__!subrule"("sigil", "")
+ new $P671, "ResizablePMCArray"
+ push $P671, $P670
+ .return ($P671)
.end
.namespace ["NQP";"Grammar"]
-.sub "named_param" :subid("159_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "named_param" :subid("159_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx675_tgt
- .local int rx675_pos
- .local int rx675_off
- .local int rx675_eos
- .local int rx675_rep
- .local pmc rx675_cur
- (rx675_cur, rx675_pos, rx675_tgt) = self."!cursor_start"()
- rx675_cur."!cursor_debug"("START ", "named_param")
- .lex unicode:"$\x{a2}", rx675_cur
+ .local string rx678_tgt
+ .local int rx678_pos
+ .local int rx678_off
+ .local int rx678_eos
+ .local int rx678_rep
+ .local pmc rx678_cur
+ (rx678_cur, rx678_pos, rx678_tgt) = self."!cursor_start"()
+ rx678_cur."!cursor_debug"("START ", "named_param")
+ .lex unicode:"$\x{a2}", rx678_cur
.local pmc match
.lex "$/", match
- length rx675_eos, rx675_tgt
- set rx675_off, 0
- lt rx675_pos, 2, rx675_start
- sub rx675_off, rx675_pos, 1
- substr rx675_tgt, rx675_tgt, rx675_off
- rx675_start:
+ length rx678_eos, rx678_tgt
+ set rx678_off, 0
+ lt rx678_pos, 2, rx678_start
+ sub rx678_off, rx678_pos, 1
+ substr rx678_tgt, rx678_tgt, rx678_off
+ rx678_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan679_done
- goto rxscan679_scan
- rxscan679_loop:
- ($P10) = rx675_cur."from"()
+ ne $I10, -1, rxscan682_done
+ goto rxscan682_scan
+ rxscan682_loop:
+ ($P10) = rx678_cur."from"()
inc $P10
- set rx675_pos, $P10
- ge rx675_pos, rx675_eos, rxscan679_done
- rxscan679_scan:
- set_addr $I10, rxscan679_loop
- rx675_cur."!mark_push"(0, rx675_pos, $I10)
- rxscan679_done:
-.annotate "line", 311
+ set rx678_pos, $P10
+ ge rx678_pos, rx678_eos, rxscan682_done
+ rxscan682_scan:
+ set_addr $I10, rxscan682_loop
+ rx678_cur."!mark_push"(0, rx678_pos, $I10)
+ rxscan682_done:
+.annotate "line", 315
# rx literal ":"
- add $I11, rx675_pos, 1
- gt $I11, rx675_eos, rx675_fail
- sub $I11, rx675_pos, rx675_off
- substr $S10, rx675_tgt, $I11, 1
- ne $S10, ":", rx675_fail
- add rx675_pos, 1
+ add $I11, rx678_pos, 1
+ gt $I11, rx678_eos, rx678_fail
+ sub $I11, rx678_pos, rx678_off
+ substr $S10, rx678_tgt, $I11, 1
+ ne $S10, ":", rx678_fail
+ add rx678_pos, 1
# rx subrule "param_var" subtype=capture negate=
- rx675_cur."!cursor_pos"(rx675_pos)
- $P10 = rx675_cur."param_var"()
- unless $P10, rx675_fail
- rx675_cur."!mark_push"(0, -1, 0, $P10)
+ rx678_cur."!cursor_pos"(rx678_pos)
+ $P10 = rx678_cur."param_var"()
+ unless $P10, rx678_fail
+ rx678_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("param_var")
- rx675_pos = $P10."pos"()
-.annotate "line", 310
+ rx678_pos = $P10."pos"()
+.annotate "line", 314
# rx pass
- rx675_cur."!cursor_pass"(rx675_pos, "named_param")
- rx675_cur."!cursor_debug"("PASS ", "named_param", " at pos=", rx675_pos)
- .return (rx675_cur)
- rx675_fail:
+ rx678_cur."!cursor_pass"(rx678_pos, "named_param")
+ rx678_cur."!cursor_debug"("PASS ", "named_param", " at pos=", rx678_pos)
+ .return (rx678_cur)
+ rx678_fail:
.annotate "line", 4
- (rx675_rep, rx675_pos, $I10, $P10) = rx675_cur."!mark_fail"(0)
- lt rx675_pos, -1, rx675_done
- eq rx675_pos, -1, rx675_fail
+ (rx678_rep, rx678_pos, $I10, $P10) = rx678_cur."!mark_fail"(0)
+ lt rx678_pos, -1, rx678_done
+ eq rx678_pos, -1, rx678_fail
jump $I10
- rx675_done:
- rx675_cur."!cursor_fail"()
- rx675_cur."!cursor_debug"("FAIL ", "named_param")
- .return (rx675_cur)
+ rx678_done:
+ rx678_cur."!cursor_fail"()
+ rx678_cur."!cursor_debug"("FAIL ", "named_param")
+ .return (rx678_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__named_param" :subid("160_1267204702.05125") :method
+.sub "!PREFIX__named_param" :subid("160_1271336396.90314") :method
.annotate "line", 4
- $P677 = self."!PREFIX__!subrule"("param_var", ":")
- new $P678, "ResizablePMCArray"
- push $P678, $P677
- .return ($P678)
+ $P680 = self."!PREFIX__!subrule"("param_var", ":")
+ new $P681, "ResizablePMCArray"
+ push $P681, $P680
+ .return ($P681)
.end
.namespace ["NQP";"Grammar"]
-.sub "default_value" :subid("161_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "default_value" :subid("161_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx681_tgt
- .local int rx681_pos
- .local int rx681_off
- .local int rx681_eos
- .local int rx681_rep
- .local pmc rx681_cur
- (rx681_cur, rx681_pos, rx681_tgt) = self."!cursor_start"()
- rx681_cur."!cursor_debug"("START ", "default_value")
- .lex unicode:"$\x{a2}", rx681_cur
+ .local string rx684_tgt
+ .local int rx684_pos
+ .local int rx684_off
+ .local int rx684_eos
+ .local int rx684_rep
+ .local pmc rx684_cur
+ (rx684_cur, rx684_pos, rx684_tgt) = self."!cursor_start"()
+ rx684_cur."!cursor_debug"("START ", "default_value")
+ .lex unicode:"$\x{a2}", rx684_cur
.local pmc match
.lex "$/", match
- length rx681_eos, rx681_tgt
- set rx681_off, 0
- lt rx681_pos, 2, rx681_start
- sub rx681_off, rx681_pos, 1
- substr rx681_tgt, rx681_tgt, rx681_off
- rx681_start:
+ length rx684_eos, rx684_tgt
+ set rx684_off, 0
+ lt rx684_pos, 2, rx684_start
+ sub rx684_off, rx684_pos, 1
+ substr rx684_tgt, rx684_tgt, rx684_off
+ rx684_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan684_done
- goto rxscan684_scan
- rxscan684_loop:
- ($P10) = rx681_cur."from"()
+ ne $I10, -1, rxscan687_done
+ goto rxscan687_scan
+ rxscan687_loop:
+ ($P10) = rx684_cur."from"()
inc $P10
- set rx681_pos, $P10
- ge rx681_pos, rx681_eos, rxscan684_done
- rxscan684_scan:
- set_addr $I10, rxscan684_loop
- rx681_cur."!mark_push"(0, rx681_pos, $I10)
- rxscan684_done:
-.annotate "line", 314
+ set rx684_pos, $P10
+ ge rx684_pos, rx684_eos, rxscan687_done
+ rxscan687_scan:
+ set_addr $I10, rxscan687_loop
+ rx684_cur."!mark_push"(0, rx684_pos, $I10)
+ rxscan687_done:
+.annotate "line", 318
# rx subrule "ws" subtype=method negate=
- rx681_cur."!cursor_pos"(rx681_pos)
- $P10 = rx681_cur."ws"()
- unless $P10, rx681_fail
- rx681_pos = $P10."pos"()
+ rx684_cur."!cursor_pos"(rx684_pos)
+ $P10 = rx684_cur."ws"()
+ unless $P10, rx684_fail
+ rx684_pos = $P10."pos"()
# rx literal "="
- add $I11, rx681_pos, 1
- gt $I11, rx681_eos, rx681_fail
- sub $I11, rx681_pos, rx681_off
- substr $S10, rx681_tgt, $I11, 1
- ne $S10, "=", rx681_fail
- add rx681_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx681_cur."!cursor_pos"(rx681_pos)
- $P10 = rx681_cur."ws"()
- unless $P10, rx681_fail
- rx681_pos = $P10."pos"()
+ add $I11, rx684_pos, 1
+ gt $I11, rx684_eos, rx684_fail
+ sub $I11, rx684_pos, rx684_off
+ substr $S10, rx684_tgt, $I11, 1
+ ne $S10, "=", rx684_fail
+ add rx684_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx684_cur."!cursor_pos"(rx684_pos)
+ $P10 = rx684_cur."ws"()
+ unless $P10, rx684_fail
+ rx684_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx681_cur."!cursor_pos"(rx681_pos)
- $P10 = rx681_cur."EXPR"("i=")
- unless $P10, rx681_fail
- rx681_cur."!mark_push"(0, -1, 0, $P10)
+ rx684_cur."!cursor_pos"(rx684_pos)
+ $P10 = rx684_cur."EXPR"("i=")
+ unless $P10, rx684_fail
+ rx684_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx681_pos = $P10."pos"()
+ rx684_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx681_cur."!cursor_pos"(rx681_pos)
- $P10 = rx681_cur."ws"()
- unless $P10, rx681_fail
- rx681_pos = $P10."pos"()
+ rx684_cur."!cursor_pos"(rx684_pos)
+ $P10 = rx684_cur."ws"()
+ unless $P10, rx684_fail
+ rx684_pos = $P10."pos"()
# rx pass
- rx681_cur."!cursor_pass"(rx681_pos, "default_value")
- rx681_cur."!cursor_debug"("PASS ", "default_value", " at pos=", rx681_pos)
- .return (rx681_cur)
- rx681_fail:
+ rx684_cur."!cursor_pass"(rx684_pos, "default_value")
+ rx684_cur."!cursor_debug"("PASS ", "default_value", " at pos=", rx684_pos)
+ .return (rx684_cur)
+ rx684_fail:
.annotate "line", 4
- (rx681_rep, rx681_pos, $I10, $P10) = rx681_cur."!mark_fail"(0)
- lt rx681_pos, -1, rx681_done
- eq rx681_pos, -1, rx681_fail
+ (rx684_rep, rx684_pos, $I10, $P10) = rx684_cur."!mark_fail"(0)
+ lt rx684_pos, -1, rx684_done
+ eq rx684_pos, -1, rx684_fail
jump $I10
- rx681_done:
- rx681_cur."!cursor_fail"()
- rx681_cur."!cursor_debug"("FAIL ", "default_value")
- .return (rx681_cur)
+ rx684_done:
+ rx684_cur."!cursor_fail"()
+ rx684_cur."!cursor_debug"("FAIL ", "default_value")
+ .return (rx684_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__default_value" :subid("162_1267204702.05125") :method
+.sub "!PREFIX__default_value" :subid("162_1271336396.90314") :method
.annotate "line", 4
- new $P683, "ResizablePMCArray"
- push $P683, ""
- .return ($P683)
+ new $P686, "ResizablePMCArray"
+ push $P686, ""
+ .return ($P686)
.end
.namespace ["NQP";"Grammar"]
-.sub "regex_declarator" :subid("163_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "regex_declarator" :subid("163_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx689_tgt
- .local int rx689_pos
- .local int rx689_off
- .local int rx689_eos
- .local int rx689_rep
- .local pmc rx689_cur
- (rx689_cur, rx689_pos, rx689_tgt) = self."!cursor_start"()
- rx689_cur."!cursor_debug"("START ", "regex_declarator")
- rx689_cur."!cursor_caparray"("signature")
- .lex unicode:"$\x{a2}", rx689_cur
- .local pmc match
- .lex "$/", match
- length rx689_eos, rx689_tgt
- set rx689_off, 0
- lt rx689_pos, 2, rx689_start
- sub rx689_off, rx689_pos, 1
- substr rx689_tgt, rx689_tgt, rx689_off
- rx689_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan692_done
- goto rxscan692_scan
- rxscan692_loop:
- ($P10) = rx689_cur."from"()
- inc $P10
- set rx689_pos, $P10
- ge rx689_pos, rx689_eos, rxscan692_done
- rxscan692_scan:
- set_addr $I10, rxscan692_loop
- rx689_cur."!mark_push"(0, rx689_pos, $I10)
- rxscan692_done:
-.annotate "line", 316
+ .local string rx692_tgt
+ .local int rx692_pos
+ .local int rx692_off
+ .local int rx692_eos
+ .local int rx692_rep
+ .local pmc rx692_cur
+ (rx692_cur, rx692_pos, rx692_tgt) = self."!cursor_start"()
+ rx692_cur."!cursor_debug"("START ", "regex_declarator")
+ rx692_cur."!cursor_caparray"("signature")
+ .lex unicode:"$\x{a2}", rx692_cur
+ .local pmc match
+ .lex "$/", match
+ length rx692_eos, rx692_tgt
+ set rx692_off, 0
+ lt rx692_pos, 2, rx692_start
+ sub rx692_off, rx692_pos, 1
+ substr rx692_tgt, rx692_tgt, rx692_off
+ rx692_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan695_done
+ goto rxscan695_scan
+ rxscan695_loop:
+ ($P10) = rx692_cur."from"()
+ inc $P10
+ set rx692_pos, $P10
+ ge rx692_pos, rx692_eos, rxscan695_done
+ rxscan695_scan:
+ set_addr $I10, rxscan695_loop
+ rx692_cur."!mark_push"(0, rx692_pos, $I10)
+ rxscan695_done:
+.annotate "line", 320
# rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
- alt694_0:
-.annotate "line", 317
- set_addr $I10, alt694_1
- rx689_cur."!mark_push"(0, rx689_pos, $I10)
-.annotate "line", 318
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
+ alt697_0:
+.annotate "line", 321
+ set_addr $I10, alt697_1
+ rx692_cur."!mark_push"(0, rx692_pos, $I10)
+.annotate "line", 322
# rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
# rx subcapture "proto"
- set_addr $I10, rxcap_696_fail
- rx689_cur."!mark_push"(0, rx689_pos, $I10)
+ set_addr $I10, rxcap_699_fail
+ rx692_cur."!mark_push"(0, rx692_pos, $I10)
# rx literal "proto"
- add $I11, rx689_pos, 5
- gt $I11, rx689_eos, rx689_fail
- sub $I11, rx689_pos, rx689_off
- substr $S10, rx689_tgt, $I11, 5
- ne $S10, "proto", rx689_fail
- add rx689_pos, 5
- set_addr $I10, rxcap_696_fail
- ($I12, $I11) = rx689_cur."!mark_peek"($I10)
- rx689_cur."!cursor_pos"($I11)
- ($P10) = rx689_cur."!cursor_start"()
- $P10."!cursor_pass"(rx689_pos, "")
- rx689_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx692_pos, 5
+ gt $I11, rx692_eos, rx692_fail
+ sub $I11, rx692_pos, rx692_off
+ substr $S10, rx692_tgt, $I11, 5
+ ne $S10, "proto", rx692_fail
+ add rx692_pos, 5
+ set_addr $I10, rxcap_699_fail
+ ($I12, $I11) = rx692_cur."!mark_peek"($I10)
+ rx692_cur."!cursor_pos"($I11)
+ ($P10) = rx692_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx692_pos, "")
+ rx692_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("proto")
- goto rxcap_696_done
- rxcap_696_fail:
- goto rx689_fail
- rxcap_696_done:
- # rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
- alt698_0:
- set_addr $I10, alt698_1
- rx689_cur."!mark_push"(0, rx689_pos, $I10)
+ goto rxcap_699_done
+ rxcap_699_fail:
+ goto rx692_fail
+ rxcap_699_done:
+ # rx subrule "ws" subtype=method negate=
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
+ alt701_0:
+ set_addr $I10, alt701_1
+ rx692_cur."!mark_push"(0, rx692_pos, $I10)
# rx literal "regex"
- add $I11, rx689_pos, 5
- gt $I11, rx689_eos, rx689_fail
- sub $I11, rx689_pos, rx689_off
- substr $S10, rx689_tgt, $I11, 5
- ne $S10, "regex", rx689_fail
- add rx689_pos, 5
- goto alt698_end
- alt698_1:
- set_addr $I10, alt698_2
- rx689_cur."!mark_push"(0, rx689_pos, $I10)
+ add $I11, rx692_pos, 5
+ gt $I11, rx692_eos, rx692_fail
+ sub $I11, rx692_pos, rx692_off
+ substr $S10, rx692_tgt, $I11, 5
+ ne $S10, "regex", rx692_fail
+ add rx692_pos, 5
+ goto alt701_end
+ alt701_1:
+ set_addr $I10, alt701_2
+ rx692_cur."!mark_push"(0, rx692_pos, $I10)
# rx literal "token"
- add $I11, rx689_pos, 5
- gt $I11, rx689_eos, rx689_fail
- sub $I11, rx689_pos, rx689_off
- substr $S10, rx689_tgt, $I11, 5
- ne $S10, "token", rx689_fail
- add rx689_pos, 5
- goto alt698_end
- alt698_2:
+ add $I11, rx692_pos, 5
+ gt $I11, rx692_eos, rx692_fail
+ sub $I11, rx692_pos, rx692_off
+ substr $S10, rx692_tgt, $I11, 5
+ ne $S10, "token", rx692_fail
+ add rx692_pos, 5
+ goto alt701_end
+ alt701_2:
# rx literal "rule"
- add $I11, rx689_pos, 4
- gt $I11, rx689_eos, rx689_fail
- sub $I11, rx689_pos, rx689_off
- substr $S10, rx689_tgt, $I11, 4
- ne $S10, "rule", rx689_fail
- add rx689_pos, 4
- alt698_end:
- # rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
-.annotate "line", 319
+ add $I11, rx692_pos, 4
+ gt $I11, rx692_eos, rx692_fail
+ sub $I11, rx692_pos, rx692_off
+ substr $S10, rx692_tgt, $I11, 4
+ ne $S10, "rule", rx692_fail
+ add rx692_pos, 4
+ alt701_end:
+ # rx subrule "ws" subtype=method negate=
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
+.annotate "line", 323
# rx subrule "deflongname" subtype=capture negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."deflongname"()
- unless $P10, rx689_fail
- rx689_cur."!mark_push"(0, -1, 0, $P10)
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."deflongname"()
+ unless $P10, rx692_fail
+ rx692_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("deflongname")
- rx689_pos = $P10."pos"()
+ rx692_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
- alt701_0:
-.annotate "line", 320
- set_addr $I10, alt701_1
- rx689_cur."!mark_push"(0, rx689_pos, $I10)
-.annotate "line", 321
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
+ alt704_0:
+.annotate "line", 324
+ set_addr $I10, alt704_1
+ rx692_cur."!mark_push"(0, rx692_pos, $I10)
+.annotate "line", 325
# rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
# rx literal "{"
- add $I11, rx689_pos, 1
- gt $I11, rx689_eos, rx689_fail
- sub $I11, rx689_pos, rx689_off
- substr $S10, rx689_tgt, $I11, 1
- ne $S10, "{", rx689_fail
- add rx689_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
+ add $I11, rx692_pos, 1
+ gt $I11, rx692_eos, rx692_fail
+ sub $I11, rx692_pos, rx692_off
+ substr $S10, rx692_tgt, $I11, 1
+ ne $S10, "{", rx692_fail
+ add rx692_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
# rx literal "<...>"
- add $I11, rx689_pos, 5
- gt $I11, rx689_eos, rx689_fail
- sub $I11, rx689_pos, rx689_off
- substr $S10, rx689_tgt, $I11, 5
- ne $S10, "<...>", rx689_fail
- add rx689_pos, 5
- # rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
+ add $I11, rx692_pos, 5
+ gt $I11, rx692_eos, rx692_fail
+ sub $I11, rx692_pos, rx692_off
+ substr $S10, rx692_tgt, $I11, 5
+ ne $S10, "<...>", rx692_fail
+ add rx692_pos, 5
+ # rx subrule "ws" subtype=method negate=
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
# rx literal "}"
- add $I11, rx689_pos, 1
- gt $I11, rx689_eos, rx689_fail
- sub $I11, rx689_pos, rx689_off
- substr $S10, rx689_tgt, $I11, 1
- ne $S10, "}", rx689_fail
- add rx689_pos, 1
+ add $I11, rx692_pos, 1
+ gt $I11, rx692_eos, rx692_fail
+ sub $I11, rx692_pos, rx692_off
+ substr $S10, rx692_tgt, $I11, 1
+ ne $S10, "}", rx692_fail
+ add rx692_pos, 1
# rx subrule "ENDSTMT" subtype=zerowidth negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ENDSTMT"()
- unless $P10, rx689_fail
- # rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
- goto alt701_end
- alt701_1:
-.annotate "line", 322
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ENDSTMT"()
+ unless $P10, rx692_fail
+ # rx subrule "ws" subtype=method negate=
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
+ goto alt704_end
+ alt704_1:
+.annotate "line", 326
# rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
# rx subrule "panic" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."panic"("Proto regex body must be <...>")
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
- alt701_end:
-.annotate "line", 323
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."panic"("Proto regex body must be <...>")
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
+ alt704_end:
+.annotate "line", 327
# rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
-.annotate "line", 318
- goto alt694_end
- alt694_1:
-.annotate "line", 324
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
+.annotate "line", 322
+ goto alt697_end
+ alt697_1:
+.annotate "line", 328
# rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
# rx subcapture "sym"
- set_addr $I10, rxcap_711_fail
- rx689_cur."!mark_push"(0, rx689_pos, $I10)
- alt710_0:
- set_addr $I10, alt710_1
- rx689_cur."!mark_push"(0, rx689_pos, $I10)
+ set_addr $I10, rxcap_714_fail
+ rx692_cur."!mark_push"(0, rx692_pos, $I10)
+ alt713_0:
+ set_addr $I10, alt713_1
+ rx692_cur."!mark_push"(0, rx692_pos, $I10)
# rx literal "regex"
- add $I11, rx689_pos, 5
- gt $I11, rx689_eos, rx689_fail
- sub $I11, rx689_pos, rx689_off
- substr $S10, rx689_tgt, $I11, 5
- ne $S10, "regex", rx689_fail
- add rx689_pos, 5
- goto alt710_end
- alt710_1:
- set_addr $I10, alt710_2
- rx689_cur."!mark_push"(0, rx689_pos, $I10)
+ add $I11, rx692_pos, 5
+ gt $I11, rx692_eos, rx692_fail
+ sub $I11, rx692_pos, rx692_off
+ substr $S10, rx692_tgt, $I11, 5
+ ne $S10, "regex", rx692_fail
+ add rx692_pos, 5
+ goto alt713_end
+ alt713_1:
+ set_addr $I10, alt713_2
+ rx692_cur."!mark_push"(0, rx692_pos, $I10)
# rx literal "token"
- add $I11, rx689_pos, 5
- gt $I11, rx689_eos, rx689_fail
- sub $I11, rx689_pos, rx689_off
- substr $S10, rx689_tgt, $I11, 5
- ne $S10, "token", rx689_fail
- add rx689_pos, 5
- goto alt710_end
- alt710_2:
+ add $I11, rx692_pos, 5
+ gt $I11, rx692_eos, rx692_fail
+ sub $I11, rx692_pos, rx692_off
+ substr $S10, rx692_tgt, $I11, 5
+ ne $S10, "token", rx692_fail
+ add rx692_pos, 5
+ goto alt713_end
+ alt713_2:
# rx literal "rule"
- add $I11, rx689_pos, 4
- gt $I11, rx689_eos, rx689_fail
- sub $I11, rx689_pos, rx689_off
- substr $S10, rx689_tgt, $I11, 4
- ne $S10, "rule", rx689_fail
- add rx689_pos, 4
- alt710_end:
- set_addr $I10, rxcap_711_fail
- ($I12, $I11) = rx689_cur."!mark_peek"($I10)
- rx689_cur."!cursor_pos"($I11)
- ($P10) = rx689_cur."!cursor_start"()
- $P10."!cursor_pass"(rx689_pos, "")
- rx689_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx692_pos, 4
+ gt $I11, rx692_eos, rx692_fail
+ sub $I11, rx692_pos, rx692_off
+ substr $S10, rx692_tgt, $I11, 4
+ ne $S10, "rule", rx692_fail
+ add rx692_pos, 4
+ alt713_end:
+ set_addr $I10, rxcap_714_fail
+ ($I12, $I11) = rx692_cur."!mark_peek"($I10)
+ rx692_cur."!cursor_pos"($I11)
+ ($P10) = rx692_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx692_pos, "")
+ rx692_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_711_done
- rxcap_711_fail:
- goto rx689_fail
- rxcap_711_done:
- # rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
-.annotate "line", 325
+ goto rxcap_714_done
+ rxcap_714_fail:
+ goto rx692_fail
+ rxcap_714_done:
+ # rx subrule "ws" subtype=method negate=
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
+.annotate "line", 329
# rx subrule "deflongname" subtype=capture negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."deflongname"()
- unless $P10, rx689_fail
- rx689_cur."!mark_push"(0, -1, 0, $P10)
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."deflongname"()
+ unless $P10, rx692_fail
+ rx692_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("deflongname")
- rx689_pos = $P10."pos"()
+ rx692_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
-.annotate "line", 326
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
+.annotate "line", 330
# rx subrule "newpad" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."newpad"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
-.annotate "line", 327
- # rx rxquantr715 ** 0..1
- set_addr $I720, rxquantr715_done
- rx689_cur."!mark_push"(0, rx689_pos, $I720)
- rxquantr715_loop:
- # rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."newpad"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
+.annotate "line", 331
+ # rx rxquantr718 ** 0..1
+ set_addr $I723, rxquantr718_done
+ rx692_cur."!mark_push"(0, rx692_pos, $I723)
+ rxquantr718_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
# rx literal "("
- add $I11, rx689_pos, 1
- gt $I11, rx689_eos, rx689_fail
- sub $I11, rx689_pos, rx689_off
- substr $S10, rx689_tgt, $I11, 1
- ne $S10, "(", rx689_fail
- add rx689_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
+ add $I11, rx692_pos, 1
+ gt $I11, rx692_eos, rx692_fail
+ sub $I11, rx692_pos, rx692_off
+ substr $S10, rx692_tgt, $I11, 1
+ ne $S10, "(", rx692_fail
+ add rx692_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
# rx subrule "signature" subtype=capture negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."signature"()
- unless $P10, rx689_fail
- rx689_cur."!mark_push"(0, -1, 0, $P10)
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."signature"()
+ unless $P10, rx692_fail
+ rx692_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("signature")
- rx689_pos = $P10."pos"()
+ rx692_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
# rx literal ")"
- add $I11, rx689_pos, 1
- gt $I11, rx689_eos, rx689_fail
- sub $I11, rx689_pos, rx689_off
- substr $S10, rx689_tgt, $I11, 1
- ne $S10, ")", rx689_fail
- add rx689_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
- (rx689_rep) = rx689_cur."!mark_commit"($I720)
- rxquantr715_done:
- # rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
-.annotate "line", 328
+ add $I11, rx692_pos, 1
+ gt $I11, rx692_eos, rx692_fail
+ sub $I11, rx692_pos, rx692_off
+ substr $S10, rx692_tgt, $I11, 1
+ ne $S10, ")", rx692_fail
+ add rx692_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
+ (rx692_rep) = rx692_cur."!mark_commit"($I723)
+ rxquantr718_done:
+ # rx subrule "ws" subtype=method negate=
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
+.annotate "line", 332
# rx reduce name="regex_declarator" key="open"
- rx689_cur."!cursor_pos"(rx689_pos)
- rx689_cur."!reduce"("regex_declarator", "open")
+ rx692_cur."!cursor_pos"(rx692_pos)
+ rx692_cur."!reduce"("regex_declarator", "open")
# rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
-.annotate "line", 329
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
+.annotate "line", 333
# rx literal "{"
- add $I11, rx689_pos, 1
- gt $I11, rx689_eos, rx689_fail
- sub $I11, rx689_pos, rx689_off
- substr $S10, rx689_tgt, $I11, 1
- ne $S10, "{", rx689_fail
- add rx689_pos, 1
+ add $I11, rx692_pos, 1
+ gt $I11, rx692_eos, rx692_fail
+ sub $I11, rx692_pos, rx692_off
+ substr $S10, rx692_tgt, $I11, 1
+ ne $S10, "{", rx692_fail
+ add rx692_pos, 1
# rx subrule "LANG" subtype=capture negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."LANG"("Regex", "nibbler")
- unless $P10, rx689_fail
- rx689_cur."!mark_push"(0, -1, 0, $P10)
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."LANG"("Regex", "nibbler")
+ unless $P10, rx692_fail
+ rx692_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("p6regex")
- rx689_pos = $P10."pos"()
+ rx692_pos = $P10."pos"()
# rx literal "}"
- add $I11, rx689_pos, 1
- gt $I11, rx689_eos, rx689_fail
- sub $I11, rx689_pos, rx689_off
- substr $S10, rx689_tgt, $I11, 1
- ne $S10, "}", rx689_fail
- add rx689_pos, 1
+ add $I11, rx692_pos, 1
+ gt $I11, rx692_eos, rx692_fail
+ sub $I11, rx692_pos, rx692_off
+ substr $S10, rx692_tgt, $I11, 1
+ ne $S10, "}", rx692_fail
+ add rx692_pos, 1
# rx subrule "ENDSTMT" subtype=zerowidth negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ENDSTMT"()
- unless $P10, rx689_fail
- # rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
- alt694_end:
-.annotate "line", 330
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ENDSTMT"()
+ unless $P10, rx692_fail
+ # rx subrule "ws" subtype=method negate=
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
+ alt697_end:
+.annotate "line", 334
# rx subrule "ws" subtype=method negate=
- rx689_cur."!cursor_pos"(rx689_pos)
- $P10 = rx689_cur."ws"()
- unless $P10, rx689_fail
- rx689_pos = $P10."pos"()
-.annotate "line", 316
+ rx692_cur."!cursor_pos"(rx692_pos)
+ $P10 = rx692_cur."ws"()
+ unless $P10, rx692_fail
+ rx692_pos = $P10."pos"()
+.annotate "line", 320
# rx pass
- rx689_cur."!cursor_pass"(rx689_pos, "regex_declarator")
- rx689_cur."!cursor_debug"("PASS ", "regex_declarator", " at pos=", rx689_pos)
- .return (rx689_cur)
- rx689_fail:
+ rx692_cur."!cursor_pass"(rx692_pos, "regex_declarator")
+ rx692_cur."!cursor_debug"("PASS ", "regex_declarator", " at pos=", rx692_pos)
+ .return (rx692_cur)
+ rx692_fail:
.annotate "line", 4
- (rx689_rep, rx689_pos, $I10, $P10) = rx689_cur."!mark_fail"(0)
- lt rx689_pos, -1, rx689_done
- eq rx689_pos, -1, rx689_fail
+ (rx692_rep, rx692_pos, $I10, $P10) = rx692_cur."!mark_fail"(0)
+ lt rx692_pos, -1, rx692_done
+ eq rx692_pos, -1, rx692_fail
jump $I10
- rx689_done:
- rx689_cur."!cursor_fail"()
- rx689_cur."!cursor_debug"("FAIL ", "regex_declarator")
- .return (rx689_cur)
+ rx692_done:
+ rx692_cur."!cursor_fail"()
+ rx692_cur."!cursor_debug"("FAIL ", "regex_declarator")
+ .return (rx692_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__regex_declarator" :subid("164_1267204702.05125") :method
+.sub "!PREFIX__regex_declarator" :subid("164_1271336396.90314") :method
.annotate "line", 4
- new $P691, "ResizablePMCArray"
- push $P691, ""
- .return ($P691)
+ new $P694, "ResizablePMCArray"
+ push $P694, ""
+ .return ($P694)
.end
.namespace ["NQP";"Grammar"]
-.sub "dotty" :subid("165_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "dotty" :subid("165_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx726_tgt
- .local int rx726_pos
- .local int rx726_off
- .local int rx726_eos
- .local int rx726_rep
- .local pmc rx726_cur
- (rx726_cur, rx726_pos, rx726_tgt) = self."!cursor_start"()
- rx726_cur."!cursor_debug"("START ", "dotty")
- rx726_cur."!cursor_caparray"("args")
- .lex unicode:"$\x{a2}", rx726_cur
+ .local string rx729_tgt
+ .local int rx729_pos
+ .local int rx729_off
+ .local int rx729_eos
+ .local int rx729_rep
+ .local pmc rx729_cur
+ (rx729_cur, rx729_pos, rx729_tgt) = self."!cursor_start"()
+ rx729_cur."!cursor_debug"("START ", "dotty")
+ rx729_cur."!cursor_caparray"("args")
+ .lex unicode:"$\x{a2}", rx729_cur
.local pmc match
.lex "$/", match
- length rx726_eos, rx726_tgt
- set rx726_off, 0
- lt rx726_pos, 2, rx726_start
- sub rx726_off, rx726_pos, 1
- substr rx726_tgt, rx726_tgt, rx726_off
- rx726_start:
+ length rx729_eos, rx729_tgt
+ set rx729_off, 0
+ lt rx729_pos, 2, rx729_start
+ sub rx729_off, rx729_pos, 1
+ substr rx729_tgt, rx729_tgt, rx729_off
+ rx729_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan730_done
- goto rxscan730_scan
- rxscan730_loop:
- ($P10) = rx726_cur."from"()
+ ne $I10, -1, rxscan733_done
+ goto rxscan733_scan
+ rxscan733_loop:
+ ($P10) = rx729_cur."from"()
inc $P10
- set rx726_pos, $P10
- ge rx726_pos, rx726_eos, rxscan730_done
- rxscan730_scan:
- set_addr $I10, rxscan730_loop
- rx726_cur."!mark_push"(0, rx726_pos, $I10)
- rxscan730_done:
-.annotate "line", 334
+ set rx729_pos, $P10
+ ge rx729_pos, rx729_eos, rxscan733_done
+ rxscan733_scan:
+ set_addr $I10, rxscan733_loop
+ rx729_cur."!mark_push"(0, rx729_pos, $I10)
+ rxscan733_done:
+.annotate "line", 338
# rx literal "."
- add $I11, rx726_pos, 1
- gt $I11, rx726_eos, rx726_fail
- sub $I11, rx726_pos, rx726_off
- substr $S10, rx726_tgt, $I11, 1
- ne $S10, ".", rx726_fail
- add rx726_pos, 1
- alt731_0:
-.annotate "line", 335
- set_addr $I10, alt731_1
- rx726_cur."!mark_push"(0, rx726_pos, $I10)
+ add $I11, rx729_pos, 1
+ gt $I11, rx729_eos, rx729_fail
+ sub $I11, rx729_pos, rx729_off
+ substr $S10, rx729_tgt, $I11, 1
+ ne $S10, ".", rx729_fail
+ add rx729_pos, 1
+ alt734_0:
+.annotate "line", 339
+ set_addr $I10, alt734_1
+ rx729_cur."!mark_push"(0, rx729_pos, $I10)
# rx subrule "identifier" subtype=capture negate=
- rx726_cur."!cursor_pos"(rx726_pos)
- $P10 = rx726_cur."identifier"()
- unless $P10, rx726_fail
- rx726_cur."!mark_push"(0, -1, 0, $P10)
+ rx729_cur."!cursor_pos"(rx729_pos)
+ $P10 = rx729_cur."identifier"()
+ unless $P10, rx729_fail
+ rx729_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("longname=identifier")
- rx726_pos = $P10."pos"()
- goto alt731_end
- alt731_1:
-.annotate "line", 336
+ rx729_pos = $P10."pos"()
+ goto alt734_end
+ alt734_1:
+.annotate "line", 340
# rx enumcharlist negate=0 zerowidth
- ge rx726_pos, rx726_eos, rx726_fail
- sub $I10, rx726_pos, rx726_off
- substr $S10, rx726_tgt, $I10, 1
+ ge rx729_pos, rx729_eos, rx729_fail
+ sub $I10, rx729_pos, rx729_off
+ substr $S10, rx729_tgt, $I10, 1
index $I11, "'\"", $S10
- lt $I11, 0, rx726_fail
+ lt $I11, 0, rx729_fail
# rx subrule "quote" subtype=capture negate=
- rx726_cur."!cursor_pos"(rx726_pos)
- $P10 = rx726_cur."quote"()
- unless $P10, rx726_fail
- rx726_cur."!mark_push"(0, -1, 0, $P10)
+ rx729_cur."!cursor_pos"(rx729_pos)
+ $P10 = rx729_cur."quote"()
+ unless $P10, rx729_fail
+ rx729_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote")
- rx726_pos = $P10."pos"()
- alt732_0:
-.annotate "line", 337
- set_addr $I10, alt732_1
- rx726_cur."!mark_push"(0, rx726_pos, $I10)
+ rx729_pos = $P10."pos"()
+ alt735_0:
+.annotate "line", 341
+ set_addr $I10, alt735_1
+ rx729_cur."!mark_push"(0, rx729_pos, $I10)
# rx enumcharlist negate=0 zerowidth
- ge rx726_pos, rx726_eos, rx726_fail
- sub $I10, rx726_pos, rx726_off
- substr $S10, rx726_tgt, $I10, 1
+ ge rx729_pos, rx729_eos, rx729_fail
+ sub $I10, rx729_pos, rx729_off
+ substr $S10, rx729_tgt, $I10, 1
index $I11, "(", $S10
- lt $I11, 0, rx726_fail
- goto alt732_end
- alt732_1:
+ lt $I11, 0, rx729_fail
+ goto alt735_end
+ alt735_1:
# rx subrule "panic" subtype=method negate=
- rx726_cur."!cursor_pos"(rx726_pos)
- $P10 = rx726_cur."panic"("Quoted method name requires parenthesized arguments")
- unless $P10, rx726_fail
- rx726_pos = $P10."pos"()
- alt732_end:
- alt731_end:
-.annotate "line", 343
- # rx rxquantr733 ** 0..1
- set_addr $I735, rxquantr733_done
- rx726_cur."!mark_push"(0, rx726_pos, $I735)
- rxquantr733_loop:
- alt734_0:
-.annotate "line", 340
- set_addr $I10, alt734_1
- rx726_cur."!mark_push"(0, rx726_pos, $I10)
-.annotate "line", 341
+ rx729_cur."!cursor_pos"(rx729_pos)
+ $P10 = rx729_cur."panic"("Quoted method name requires parenthesized arguments")
+ unless $P10, rx729_fail
+ rx729_pos = $P10."pos"()
+ alt735_end:
+ alt734_end:
+.annotate "line", 347
+ # rx rxquantr736 ** 0..1
+ set_addr $I738, rxquantr736_done
+ rx729_cur."!mark_push"(0, rx729_pos, $I738)
+ rxquantr736_loop:
+ alt737_0:
+.annotate "line", 344
+ set_addr $I10, alt737_1
+ rx729_cur."!mark_push"(0, rx729_pos, $I10)
+.annotate "line", 345
# rx enumcharlist negate=0 zerowidth
- ge rx726_pos, rx726_eos, rx726_fail
- sub $I10, rx726_pos, rx726_off
- substr $S10, rx726_tgt, $I10, 1
+ ge rx729_pos, rx729_eos, rx729_fail
+ sub $I10, rx729_pos, rx729_off
+ substr $S10, rx729_tgt, $I10, 1
index $I11, "(", $S10
- lt $I11, 0, rx726_fail
+ lt $I11, 0, rx729_fail
# rx subrule "args" subtype=capture negate=
- rx726_cur."!cursor_pos"(rx726_pos)
- $P10 = rx726_cur."args"()
- unless $P10, rx726_fail
- rx726_cur."!mark_push"(0, -1, 0, $P10)
+ rx729_cur."!cursor_pos"(rx729_pos)
+ $P10 = rx729_cur."args"()
+ unless $P10, rx729_fail
+ rx729_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("args")
- rx726_pos = $P10."pos"()
- goto alt734_end
- alt734_1:
-.annotate "line", 342
+ rx729_pos = $P10."pos"()
+ goto alt737_end
+ alt737_1:
+.annotate "line", 346
# rx literal ":"
- add $I11, rx726_pos, 1
- gt $I11, rx726_eos, rx726_fail
- sub $I11, rx726_pos, rx726_off
- substr $S10, rx726_tgt, $I11, 1
- ne $S10, ":", rx726_fail
- add rx726_pos, 1
+ add $I11, rx729_pos, 1
+ gt $I11, rx729_eos, rx729_fail
+ sub $I11, rx729_pos, rx729_off
+ substr $S10, rx729_tgt, $I11, 1
+ ne $S10, ":", rx729_fail
+ add rx729_pos, 1
# rx charclass s
- ge rx726_pos, rx726_eos, rx726_fail
- sub $I10, rx726_pos, rx726_off
- is_cclass $I11, 32, rx726_tgt, $I10
- unless $I11, rx726_fail
- inc rx726_pos
+ ge rx729_pos, rx729_eos, rx729_fail
+ sub $I10, rx729_pos, rx729_off
+ is_cclass $I11, 32, rx729_tgt, $I10
+ unless $I11, rx729_fail
+ inc rx729_pos
# rx subrule "arglist" subtype=capture negate=
- rx726_cur."!cursor_pos"(rx726_pos)
- $P10 = rx726_cur."arglist"()
- unless $P10, rx726_fail
- rx726_cur."!mark_push"(0, -1, 0, $P10)
+ rx729_cur."!cursor_pos"(rx729_pos)
+ $P10 = rx729_cur."arglist"()
+ unless $P10, rx729_fail
+ rx729_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("args")
- rx726_pos = $P10."pos"()
- alt734_end:
-.annotate "line", 343
- (rx726_rep) = rx726_cur."!mark_commit"($I735)
- rxquantr733_done:
-.annotate "line", 333
+ rx729_pos = $P10."pos"()
+ alt737_end:
+.annotate "line", 347
+ (rx729_rep) = rx729_cur."!mark_commit"($I738)
+ rxquantr736_done:
+.annotate "line", 337
# rx pass
- rx726_cur."!cursor_pass"(rx726_pos, "dotty")
- rx726_cur."!cursor_debug"("PASS ", "dotty", " at pos=", rx726_pos)
- .return (rx726_cur)
- rx726_fail:
+ rx729_cur."!cursor_pass"(rx729_pos, "dotty")
+ rx729_cur."!cursor_debug"("PASS ", "dotty", " at pos=", rx729_pos)
+ .return (rx729_cur)
+ rx729_fail:
.annotate "line", 4
- (rx726_rep, rx726_pos, $I10, $P10) = rx726_cur."!mark_fail"(0)
- lt rx726_pos, -1, rx726_done
- eq rx726_pos, -1, rx726_fail
+ (rx729_rep, rx729_pos, $I10, $P10) = rx729_cur."!mark_fail"(0)
+ lt rx729_pos, -1, rx729_done
+ eq rx729_pos, -1, rx729_fail
jump $I10
- rx726_done:
- rx726_cur."!cursor_fail"()
- rx726_cur."!cursor_debug"("FAIL ", "dotty")
- .return (rx726_cur)
+ rx729_done:
+ rx729_cur."!cursor_fail"()
+ rx729_cur."!cursor_debug"("FAIL ", "dotty")
+ .return (rx729_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__dotty" :subid("166_1267204702.05125") :method
+.sub "!PREFIX__dotty" :subid("166_1271336396.90314") :method
.annotate "line", 4
- $P728 = self."!PREFIX__!subrule"("longname=identifier", ".")
- new $P729, "ResizablePMCArray"
- push $P729, "'"
- push $P729, "\""
- push $P729, $P728
- .return ($P729)
+ $P731 = self."!PREFIX__!subrule"("longname=identifier", ".")
+ new $P732, "ResizablePMCArray"
+ push $P732, "'"
+ push $P732, "\""
+ push $P732, $P731
+ .return ($P732)
.end
.namespace ["NQP";"Grammar"]
-.sub "term" :subid("167_1267204702.05125") :method
-.annotate "line", 347
- $P737 = self."!protoregex"("term")
- .return ($P737)
+.sub "term" :subid("167_1271336396.90314") :method
+.annotate "line", 351
+ $P740 = self."!protoregex"("term")
+ .return ($P740)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term" :subid("168_1267204702.05125") :method
-.annotate "line", 347
- $P739 = self."!PREFIX__!protoregex"("term")
- .return ($P739)
+.sub "!PREFIX__term" :subid("168_1271336396.90314") :method
+.annotate "line", 351
+ $P742 = self."!PREFIX__!protoregex"("term")
+ .return ($P742)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<self>" :subid("169_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "term:sym<self>" :subid("169_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx741_tgt
- .local int rx741_pos
- .local int rx741_off
- .local int rx741_eos
- .local int rx741_rep
- .local pmc rx741_cur
- (rx741_cur, rx741_pos, rx741_tgt) = self."!cursor_start"()
- rx741_cur."!cursor_debug"("START ", "term:sym<self>")
- .lex unicode:"$\x{a2}", rx741_cur
- .local pmc match
- .lex "$/", match
- length rx741_eos, rx741_tgt
- set rx741_off, 0
- lt rx741_pos, 2, rx741_start
- sub rx741_off, rx741_pos, 1
- substr rx741_tgt, rx741_tgt, rx741_off
- rx741_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan744_done
- goto rxscan744_scan
- rxscan744_loop:
- ($P10) = rx741_cur."from"()
- inc $P10
- set rx741_pos, $P10
- ge rx741_pos, rx741_eos, rxscan744_done
- rxscan744_scan:
- set_addr $I10, rxscan744_loop
- rx741_cur."!mark_push"(0, rx741_pos, $I10)
- rxscan744_done:
-.annotate "line", 349
+ .local string rx744_tgt
+ .local int rx744_pos
+ .local int rx744_off
+ .local int rx744_eos
+ .local int rx744_rep
+ .local pmc rx744_cur
+ (rx744_cur, rx744_pos, rx744_tgt) = self."!cursor_start"()
+ rx744_cur."!cursor_debug"("START ", "term:sym<self>")
+ .lex unicode:"$\x{a2}", rx744_cur
+ .local pmc match
+ .lex "$/", match
+ length rx744_eos, rx744_tgt
+ set rx744_off, 0
+ lt rx744_pos, 2, rx744_start
+ sub rx744_off, rx744_pos, 1
+ substr rx744_tgt, rx744_tgt, rx744_off
+ rx744_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan747_done
+ goto rxscan747_scan
+ rxscan747_loop:
+ ($P10) = rx744_cur."from"()
+ inc $P10
+ set rx744_pos, $P10
+ ge rx744_pos, rx744_eos, rxscan747_done
+ rxscan747_scan:
+ set_addr $I10, rxscan747_loop
+ rx744_cur."!mark_push"(0, rx744_pos, $I10)
+ rxscan747_done:
+.annotate "line", 353
# rx subcapture "sym"
- set_addr $I10, rxcap_745_fail
- rx741_cur."!mark_push"(0, rx741_pos, $I10)
+ set_addr $I10, rxcap_748_fail
+ rx744_cur."!mark_push"(0, rx744_pos, $I10)
# rx literal "self"
- add $I11, rx741_pos, 4
- gt $I11, rx741_eos, rx741_fail
- sub $I11, rx741_pos, rx741_off
- substr $S10, rx741_tgt, $I11, 4
- ne $S10, "self", rx741_fail
- add rx741_pos, 4
- set_addr $I10, rxcap_745_fail
- ($I12, $I11) = rx741_cur."!mark_peek"($I10)
- rx741_cur."!cursor_pos"($I11)
- ($P10) = rx741_cur."!cursor_start"()
- $P10."!cursor_pass"(rx741_pos, "")
- rx741_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx744_pos, 4
+ gt $I11, rx744_eos, rx744_fail
+ sub $I11, rx744_pos, rx744_off
+ substr $S10, rx744_tgt, $I11, 4
+ ne $S10, "self", rx744_fail
+ add rx744_pos, 4
+ set_addr $I10, rxcap_748_fail
+ ($I12, $I11) = rx744_cur."!mark_peek"($I10)
+ rx744_cur."!cursor_pos"($I11)
+ ($P10) = rx744_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx744_pos, "")
+ rx744_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_745_done
- rxcap_745_fail:
- goto rx741_fail
- rxcap_745_done:
+ goto rxcap_748_done
+ rxcap_748_fail:
+ goto rx744_fail
+ rxcap_748_done:
# rxanchor rwb
- le rx741_pos, 0, rx741_fail
- sub $I10, rx741_pos, rx741_off
- is_cclass $I11, 8192, rx741_tgt, $I10
- if $I11, rx741_fail
+ le rx744_pos, 0, rx744_fail
+ sub $I10, rx744_pos, rx744_off
+ is_cclass $I11, 8192, rx744_tgt, $I10
+ if $I11, rx744_fail
dec $I10
- is_cclass $I11, 8192, rx741_tgt, $I10
- unless $I11, rx741_fail
+ is_cclass $I11, 8192, rx744_tgt, $I10
+ unless $I11, rx744_fail
# rx pass
- rx741_cur."!cursor_pass"(rx741_pos, "term:sym<self>")
- rx741_cur."!cursor_debug"("PASS ", "term:sym<self>", " at pos=", rx741_pos)
- .return (rx741_cur)
- rx741_fail:
+ rx744_cur."!cursor_pass"(rx744_pos, "term:sym<self>")
+ rx744_cur."!cursor_debug"("PASS ", "term:sym<self>", " at pos=", rx744_pos)
+ .return (rx744_cur)
+ rx744_fail:
.annotate "line", 4
- (rx741_rep, rx741_pos, $I10, $P10) = rx741_cur."!mark_fail"(0)
- lt rx741_pos, -1, rx741_done
- eq rx741_pos, -1, rx741_fail
+ (rx744_rep, rx744_pos, $I10, $P10) = rx744_cur."!mark_fail"(0)
+ lt rx744_pos, -1, rx744_done
+ eq rx744_pos, -1, rx744_fail
jump $I10
- rx741_done:
- rx741_cur."!cursor_fail"()
- rx741_cur."!cursor_debug"("FAIL ", "term:sym<self>")
- .return (rx741_cur)
+ rx744_done:
+ rx744_cur."!cursor_fail"()
+ rx744_cur."!cursor_debug"("FAIL ", "term:sym<self>")
+ .return (rx744_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<self>" :subid("170_1267204702.05125") :method
+.sub "!PREFIX__term:sym<self>" :subid("170_1271336396.90314") :method
.annotate "line", 4
- new $P743, "ResizablePMCArray"
- push $P743, "self"
- .return ($P743)
+ new $P746, "ResizablePMCArray"
+ push $P746, "self"
+ .return ($P746)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<identifier>" :subid("171_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "term:sym<identifier>" :subid("171_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx747_tgt
- .local int rx747_pos
- .local int rx747_off
- .local int rx747_eos
- .local int rx747_rep
- .local pmc rx747_cur
- (rx747_cur, rx747_pos, rx747_tgt) = self."!cursor_start"()
- rx747_cur."!cursor_debug"("START ", "term:sym<identifier>")
- .lex unicode:"$\x{a2}", rx747_cur
- .local pmc match
- .lex "$/", match
- length rx747_eos, rx747_tgt
- set rx747_off, 0
- lt rx747_pos, 2, rx747_start
- sub rx747_off, rx747_pos, 1
- substr rx747_tgt, rx747_tgt, rx747_off
- rx747_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan751_done
- goto rxscan751_scan
- rxscan751_loop:
- ($P10) = rx747_cur."from"()
- inc $P10
- set rx747_pos, $P10
- ge rx747_pos, rx747_eos, rxscan751_done
- rxscan751_scan:
- set_addr $I10, rxscan751_loop
- rx747_cur."!mark_push"(0, rx747_pos, $I10)
- rxscan751_done:
-.annotate "line", 352
+ .local string rx750_tgt
+ .local int rx750_pos
+ .local int rx750_off
+ .local int rx750_eos
+ .local int rx750_rep
+ .local pmc rx750_cur
+ (rx750_cur, rx750_pos, rx750_tgt) = self."!cursor_start"()
+ rx750_cur."!cursor_debug"("START ", "term:sym<identifier>")
+ .lex unicode:"$\x{a2}", rx750_cur
+ .local pmc match
+ .lex "$/", match
+ length rx750_eos, rx750_tgt
+ set rx750_off, 0
+ lt rx750_pos, 2, rx750_start
+ sub rx750_off, rx750_pos, 1
+ substr rx750_tgt, rx750_tgt, rx750_off
+ rx750_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan754_done
+ goto rxscan754_scan
+ rxscan754_loop:
+ ($P10) = rx750_cur."from"()
+ inc $P10
+ set rx750_pos, $P10
+ ge rx750_pos, rx750_eos, rxscan754_done
+ rxscan754_scan:
+ set_addr $I10, rxscan754_loop
+ rx750_cur."!mark_push"(0, rx750_pos, $I10)
+ rxscan754_done:
+.annotate "line", 356
# rx subrule "identifier" subtype=capture negate=
- rx747_cur."!cursor_pos"(rx747_pos)
- $P10 = rx747_cur."identifier"()
- unless $P10, rx747_fail
- rx747_cur."!mark_push"(0, -1, 0, $P10)
+ rx750_cur."!cursor_pos"(rx750_pos)
+ $P10 = rx750_cur."identifier"()
+ unless $P10, rx750_fail
+ rx750_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("identifier")
- rx747_pos = $P10."pos"()
+ rx750_pos = $P10."pos"()
# rx enumcharlist negate=0 zerowidth
- ge rx747_pos, rx747_eos, rx747_fail
- sub $I10, rx747_pos, rx747_off
- substr $S10, rx747_tgt, $I10, 1
+ ge rx750_pos, rx750_eos, rx750_fail
+ sub $I10, rx750_pos, rx750_off
+ substr $S10, rx750_tgt, $I10, 1
index $I11, "(", $S10
- lt $I11, 0, rx747_fail
+ lt $I11, 0, rx750_fail
# rx subrule "args" subtype=capture negate=
- rx747_cur."!cursor_pos"(rx747_pos)
- $P10 = rx747_cur."args"()
- unless $P10, rx747_fail
- rx747_cur."!mark_push"(0, -1, 0, $P10)
+ rx750_cur."!cursor_pos"(rx750_pos)
+ $P10 = rx750_cur."args"()
+ unless $P10, rx750_fail
+ rx750_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("args")
- rx747_pos = $P10."pos"()
-.annotate "line", 351
+ rx750_pos = $P10."pos"()
+.annotate "line", 355
# rx pass
- rx747_cur."!cursor_pass"(rx747_pos, "term:sym<identifier>")
- rx747_cur."!cursor_debug"("PASS ", "term:sym<identifier>", " at pos=", rx747_pos)
- .return (rx747_cur)
- rx747_fail:
+ rx750_cur."!cursor_pass"(rx750_pos, "term:sym<identifier>")
+ rx750_cur."!cursor_debug"("PASS ", "term:sym<identifier>", " at pos=", rx750_pos)
+ .return (rx750_cur)
+ rx750_fail:
.annotate "line", 4
- (rx747_rep, rx747_pos, $I10, $P10) = rx747_cur."!mark_fail"(0)
- lt rx747_pos, -1, rx747_done
- eq rx747_pos, -1, rx747_fail
+ (rx750_rep, rx750_pos, $I10, $P10) = rx750_cur."!mark_fail"(0)
+ lt rx750_pos, -1, rx750_done
+ eq rx750_pos, -1, rx750_fail
jump $I10
- rx747_done:
- rx747_cur."!cursor_fail"()
- rx747_cur."!cursor_debug"("FAIL ", "term:sym<identifier>")
- .return (rx747_cur)
+ rx750_done:
+ rx750_cur."!cursor_fail"()
+ rx750_cur."!cursor_debug"("FAIL ", "term:sym<identifier>")
+ .return (rx750_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<identifier>" :subid("172_1267204702.05125") :method
+.sub "!PREFIX__term:sym<identifier>" :subid("172_1271336396.90314") :method
.annotate "line", 4
- $P749 = self."!PREFIX__!subrule"("identifier", "")
- new $P750, "ResizablePMCArray"
- push $P750, $P749
- .return ($P750)
+ $P752 = self."!PREFIX__!subrule"("identifier", "")
+ new $P753, "ResizablePMCArray"
+ push $P753, $P752
+ .return ($P753)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<name>" :subid("173_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "term:sym<name>" :subid("173_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx753_tgt
- .local int rx753_pos
- .local int rx753_off
- .local int rx753_eos
- .local int rx753_rep
- .local pmc rx753_cur
- (rx753_cur, rx753_pos, rx753_tgt) = self."!cursor_start"()
- rx753_cur."!cursor_debug"("START ", "term:sym<name>")
- rx753_cur."!cursor_caparray"("args")
- .lex unicode:"$\x{a2}", rx753_cur
+ .local string rx756_tgt
+ .local int rx756_pos
+ .local int rx756_off
+ .local int rx756_eos
+ .local int rx756_rep
+ .local pmc rx756_cur
+ (rx756_cur, rx756_pos, rx756_tgt) = self."!cursor_start"()
+ rx756_cur."!cursor_debug"("START ", "term:sym<name>")
+ rx756_cur."!cursor_caparray"("args")
+ .lex unicode:"$\x{a2}", rx756_cur
.local pmc match
.lex "$/", match
- length rx753_eos, rx753_tgt
- set rx753_off, 0
- lt rx753_pos, 2, rx753_start
- sub rx753_off, rx753_pos, 1
- substr rx753_tgt, rx753_tgt, rx753_off
- rx753_start:
+ length rx756_eos, rx756_tgt
+ set rx756_off, 0
+ lt rx756_pos, 2, rx756_start
+ sub rx756_off, rx756_pos, 1
+ substr rx756_tgt, rx756_tgt, rx756_off
+ rx756_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan757_done
- goto rxscan757_scan
- rxscan757_loop:
- ($P10) = rx753_cur."from"()
+ ne $I10, -1, rxscan760_done
+ goto rxscan760_scan
+ rxscan760_loop:
+ ($P10) = rx756_cur."from"()
inc $P10
- set rx753_pos, $P10
- ge rx753_pos, rx753_eos, rxscan757_done
- rxscan757_scan:
- set_addr $I10, rxscan757_loop
- rx753_cur."!mark_push"(0, rx753_pos, $I10)
- rxscan757_done:
-.annotate "line", 356
+ set rx756_pos, $P10
+ ge rx756_pos, rx756_eos, rxscan760_done
+ rxscan760_scan:
+ set_addr $I10, rxscan760_loop
+ rx756_cur."!mark_push"(0, rx756_pos, $I10)
+ rxscan760_done:
+.annotate "line", 360
# rx subrule "name" subtype=capture negate=
- rx753_cur."!cursor_pos"(rx753_pos)
- $P10 = rx753_cur."name"()
- unless $P10, rx753_fail
- rx753_cur."!mark_push"(0, -1, 0, $P10)
+ rx756_cur."!cursor_pos"(rx756_pos)
+ $P10 = rx756_cur."name"()
+ unless $P10, rx756_fail
+ rx756_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("name")
- rx753_pos = $P10."pos"()
- # rx rxquantr758 ** 0..1
- set_addr $I759, rxquantr758_done
- rx753_cur."!mark_push"(0, rx753_pos, $I759)
- rxquantr758_loop:
+ rx756_pos = $P10."pos"()
+ # rx rxquantr761 ** 0..1
+ set_addr $I762, rxquantr761_done
+ rx756_cur."!mark_push"(0, rx756_pos, $I762)
+ rxquantr761_loop:
# rx subrule "args" subtype=capture negate=
- rx753_cur."!cursor_pos"(rx753_pos)
- $P10 = rx753_cur."args"()
- unless $P10, rx753_fail
- rx753_cur."!mark_push"(0, -1, 0, $P10)
+ rx756_cur."!cursor_pos"(rx756_pos)
+ $P10 = rx756_cur."args"()
+ unless $P10, rx756_fail
+ rx756_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("args")
- rx753_pos = $P10."pos"()
- (rx753_rep) = rx753_cur."!mark_commit"($I759)
- rxquantr758_done:
-.annotate "line", 355
+ rx756_pos = $P10."pos"()
+ (rx756_rep) = rx756_cur."!mark_commit"($I762)
+ rxquantr761_done:
+.annotate "line", 359
# rx pass
- rx753_cur."!cursor_pass"(rx753_pos, "term:sym<name>")
- rx753_cur."!cursor_debug"("PASS ", "term:sym<name>", " at pos=", rx753_pos)
- .return (rx753_cur)
- rx753_fail:
+ rx756_cur."!cursor_pass"(rx756_pos, "term:sym<name>")
+ rx756_cur."!cursor_debug"("PASS ", "term:sym<name>", " at pos=", rx756_pos)
+ .return (rx756_cur)
+ rx756_fail:
.annotate "line", 4
- (rx753_rep, rx753_pos, $I10, $P10) = rx753_cur."!mark_fail"(0)
- lt rx753_pos, -1, rx753_done
- eq rx753_pos, -1, rx753_fail
+ (rx756_rep, rx756_pos, $I10, $P10) = rx756_cur."!mark_fail"(0)
+ lt rx756_pos, -1, rx756_done
+ eq rx756_pos, -1, rx756_fail
jump $I10
- rx753_done:
- rx753_cur."!cursor_fail"()
- rx753_cur."!cursor_debug"("FAIL ", "term:sym<name>")
- .return (rx753_cur)
+ rx756_done:
+ rx756_cur."!cursor_fail"()
+ rx756_cur."!cursor_debug"("FAIL ", "term:sym<name>")
+ .return (rx756_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<name>" :subid("174_1267204702.05125") :method
+.sub "!PREFIX__term:sym<name>" :subid("174_1271336396.90314") :method
.annotate "line", 4
- $P755 = self."!PREFIX__!subrule"("name", "")
- new $P756, "ResizablePMCArray"
- push $P756, $P755
- .return ($P756)
+ $P758 = self."!PREFIX__!subrule"("name", "")
+ new $P759, "ResizablePMCArray"
+ push $P759, $P758
+ .return ($P759)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<pir::op>" :subid("175_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "term:sym<pir::op>" :subid("175_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx761_tgt
- .local int rx761_pos
- .local int rx761_off
- .local int rx761_eos
- .local int rx761_rep
- .local pmc rx761_cur
- (rx761_cur, rx761_pos, rx761_tgt) = self."!cursor_start"()
- rx761_cur."!cursor_debug"("START ", "term:sym<pir::op>")
- rx761_cur."!cursor_caparray"("args")
- .lex unicode:"$\x{a2}", rx761_cur
- .local pmc match
- .lex "$/", match
- length rx761_eos, rx761_tgt
- set rx761_off, 0
- lt rx761_pos, 2, rx761_start
- sub rx761_off, rx761_pos, 1
- substr rx761_tgt, rx761_tgt, rx761_off
- rx761_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan764_done
- goto rxscan764_scan
- rxscan764_loop:
- ($P10) = rx761_cur."from"()
- inc $P10
- set rx761_pos, $P10
- ge rx761_pos, rx761_eos, rxscan764_done
- rxscan764_scan:
- set_addr $I10, rxscan764_loop
- rx761_cur."!mark_push"(0, rx761_pos, $I10)
- rxscan764_done:
-.annotate "line", 360
+ .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 ", "term:sym<pir::op>")
+ rx764_cur."!cursor_caparray"("args")
+ .lex unicode:"$\x{a2}", rx764_cur
+ .local pmc match
+ .lex "$/", match
+ length rx764_eos, rx764_tgt
+ 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, rxscan767_done
+ goto rxscan767_scan
+ rxscan767_loop:
+ ($P10) = rx764_cur."from"()
+ inc $P10
+ set rx764_pos, $P10
+ ge rx764_pos, rx764_eos, rxscan767_done
+ rxscan767_scan:
+ set_addr $I10, rxscan767_loop
+ rx764_cur."!mark_push"(0, rx764_pos, $I10)
+ rxscan767_done:
+.annotate "line", 364
# rx literal "pir::"
- add $I11, rx761_pos, 5
- gt $I11, rx761_eos, rx761_fail
- sub $I11, rx761_pos, rx761_off
- substr $S10, rx761_tgt, $I11, 5
- ne $S10, "pir::", rx761_fail
- add rx761_pos, 5
+ 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, "pir::", rx764_fail
+ add rx764_pos, 5
# rx subcapture "op"
- set_addr $I10, rxcap_765_fail
- rx761_cur."!mark_push"(0, rx761_pos, $I10)
+ set_addr $I10, rxcap_768_fail
+ rx764_cur."!mark_push"(0, rx764_pos, $I10)
# rx charclass_q w r 1..-1
- sub $I10, rx761_pos, rx761_off
- find_not_cclass $I11, 8192, rx761_tgt, $I10, rx761_eos
+ sub $I10, rx764_pos, rx764_off
+ find_not_cclass $I11, 8192, rx764_tgt, $I10, rx764_eos
add $I12, $I10, 1
- lt $I11, $I12, rx761_fail
- add rx761_pos, rx761_off, $I11
- set_addr $I10, rxcap_765_fail
- ($I12, $I11) = rx761_cur."!mark_peek"($I10)
- rx761_cur."!cursor_pos"($I11)
- ($P10) = rx761_cur."!cursor_start"()
- $P10."!cursor_pass"(rx761_pos, "")
- rx761_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, rx764_fail
+ add rx764_pos, rx764_off, $I11
+ set_addr $I10, rxcap_768_fail
+ ($I12, $I11) = rx764_cur."!mark_peek"($I10)
+ rx764_cur."!cursor_pos"($I11)
+ ($P10) = rx764_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx764_pos, "")
+ rx764_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("op")
- goto rxcap_765_done
- rxcap_765_fail:
- goto rx761_fail
- rxcap_765_done:
- # rx rxquantr766 ** 0..1
- set_addr $I767, rxquantr766_done
- rx761_cur."!mark_push"(0, rx761_pos, $I767)
- rxquantr766_loop:
+ goto rxcap_768_done
+ rxcap_768_fail:
+ goto rx764_fail
+ rxcap_768_done:
+ # rx rxquantr769 ** 0..1
+ set_addr $I770, rxquantr769_done
+ rx764_cur."!mark_push"(0, rx764_pos, $I770)
+ rxquantr769_loop:
# rx subrule "args" subtype=capture negate=
- rx761_cur."!cursor_pos"(rx761_pos)
- $P10 = rx761_cur."args"()
- unless $P10, rx761_fail
- rx761_cur."!mark_push"(0, -1, 0, $P10)
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."args"()
+ unless $P10, rx764_fail
+ rx764_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("args")
- rx761_pos = $P10."pos"()
- (rx761_rep) = rx761_cur."!mark_commit"($I767)
- rxquantr766_done:
-.annotate "line", 359
+ rx764_pos = $P10."pos"()
+ (rx764_rep) = rx764_cur."!mark_commit"($I770)
+ rxquantr769_done:
+.annotate "line", 363
# rx pass
- rx761_cur."!cursor_pass"(rx761_pos, "term:sym<pir::op>")
- rx761_cur."!cursor_debug"("PASS ", "term:sym<pir::op>", " at pos=", rx761_pos)
- .return (rx761_cur)
- rx761_fail:
+ rx764_cur."!cursor_pass"(rx764_pos, "term:sym<pir::op>")
+ rx764_cur."!cursor_debug"("PASS ", "term:sym<pir::op>", " at pos=", rx764_pos)
+ .return (rx764_cur)
+ rx764_fail:
.annotate "line", 4
- (rx761_rep, rx761_pos, $I10, $P10) = rx761_cur."!mark_fail"(0)
- lt rx761_pos, -1, rx761_done
- eq rx761_pos, -1, rx761_fail
+ (rx764_rep, rx764_pos, $I10, $P10) = rx764_cur."!mark_fail"(0)
+ lt rx764_pos, -1, rx764_done
+ eq rx764_pos, -1, rx764_fail
jump $I10
- rx761_done:
- rx761_cur."!cursor_fail"()
- rx761_cur."!cursor_debug"("FAIL ", "term:sym<pir::op>")
- .return (rx761_cur)
+ rx764_done:
+ rx764_cur."!cursor_fail"()
+ rx764_cur."!cursor_debug"("FAIL ", "term:sym<pir::op>")
+ .return (rx764_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<pir::op>" :subid("176_1267204702.05125") :method
+.sub "!PREFIX__term:sym<pir::op>" :subid("176_1271336396.90314") :method
.annotate "line", 4
- new $P763, "ResizablePMCArray"
- push $P763, "pir::"
- .return ($P763)
+ new $P766, "ResizablePMCArray"
+ push $P766, "pir::"
+ .return ($P766)
.end
.namespace ["NQP";"Grammar"]
-.sub "args" :subid("177_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "args" :subid("177_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx769_tgt
- .local int rx769_pos
- .local int rx769_off
- .local int rx769_eos
- .local int rx769_rep
- .local pmc rx769_cur
- (rx769_cur, rx769_pos, rx769_tgt) = self."!cursor_start"()
- rx769_cur."!cursor_debug"("START ", "args")
- .lex unicode:"$\x{a2}", rx769_cur
- .local pmc match
- .lex "$/", match
- length rx769_eos, rx769_tgt
- set rx769_off, 0
- lt rx769_pos, 2, rx769_start
- sub rx769_off, rx769_pos, 1
- substr rx769_tgt, rx769_tgt, rx769_off
- rx769_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan773_done
- goto rxscan773_scan
- rxscan773_loop:
- ($P10) = rx769_cur."from"()
- inc $P10
- set rx769_pos, $P10
- ge rx769_pos, rx769_eos, rxscan773_done
- rxscan773_scan:
- set_addr $I10, rxscan773_loop
- rx769_cur."!mark_push"(0, rx769_pos, $I10)
- rxscan773_done:
-.annotate "line", 364
+ .local string rx772_tgt
+ .local int rx772_pos
+ .local int rx772_off
+ .local int rx772_eos
+ .local int rx772_rep
+ .local pmc rx772_cur
+ (rx772_cur, rx772_pos, rx772_tgt) = self."!cursor_start"()
+ rx772_cur."!cursor_debug"("START ", "args")
+ .lex unicode:"$\x{a2}", rx772_cur
+ .local pmc match
+ .lex "$/", match
+ length rx772_eos, rx772_tgt
+ set rx772_off, 0
+ lt rx772_pos, 2, rx772_start
+ sub rx772_off, rx772_pos, 1
+ substr rx772_tgt, rx772_tgt, rx772_off
+ rx772_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan776_done
+ goto rxscan776_scan
+ rxscan776_loop:
+ ($P10) = rx772_cur."from"()
+ inc $P10
+ set rx772_pos, $P10
+ ge rx772_pos, rx772_eos, rxscan776_done
+ rxscan776_scan:
+ set_addr $I10, rxscan776_loop
+ rx772_cur."!mark_push"(0, rx772_pos, $I10)
+ rxscan776_done:
+.annotate "line", 368
# rx literal "("
- add $I11, rx769_pos, 1
- gt $I11, rx769_eos, rx769_fail
- sub $I11, rx769_pos, rx769_off
- substr $S10, rx769_tgt, $I11, 1
- ne $S10, "(", rx769_fail
- add rx769_pos, 1
+ add $I11, rx772_pos, 1
+ gt $I11, rx772_eos, rx772_fail
+ sub $I11, rx772_pos, rx772_off
+ substr $S10, rx772_tgt, $I11, 1
+ ne $S10, "(", rx772_fail
+ add rx772_pos, 1
# rx subrule "arglist" subtype=capture negate=
- rx769_cur."!cursor_pos"(rx769_pos)
- $P10 = rx769_cur."arglist"()
- unless $P10, rx769_fail
- rx769_cur."!mark_push"(0, -1, 0, $P10)
+ rx772_cur."!cursor_pos"(rx772_pos)
+ $P10 = rx772_cur."arglist"()
+ unless $P10, rx772_fail
+ rx772_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("arglist")
- rx769_pos = $P10."pos"()
+ rx772_pos = $P10."pos"()
# rx literal ")"
- add $I11, rx769_pos, 1
- gt $I11, rx769_eos, rx769_fail
- sub $I11, rx769_pos, rx769_off
- substr $S10, rx769_tgt, $I11, 1
- ne $S10, ")", rx769_fail
- add rx769_pos, 1
- # rx pass
- rx769_cur."!cursor_pass"(rx769_pos, "args")
- rx769_cur."!cursor_debug"("PASS ", "args", " at pos=", rx769_pos)
- .return (rx769_cur)
- rx769_fail:
-.annotate "line", 4
- (rx769_rep, rx769_pos, $I10, $P10) = rx769_cur."!mark_fail"(0)
- lt rx769_pos, -1, rx769_done
- eq rx769_pos, -1, rx769_fail
- jump $I10
- rx769_done:
- rx769_cur."!cursor_fail"()
- rx769_cur."!cursor_debug"("FAIL ", "args")
- .return (rx769_cur)
+ add $I11, rx772_pos, 1
+ gt $I11, rx772_eos, rx772_fail
+ sub $I11, rx772_pos, rx772_off
+ substr $S10, rx772_tgt, $I11, 1
+ ne $S10, ")", rx772_fail
+ add rx772_pos, 1
+ # rx pass
+ rx772_cur."!cursor_pass"(rx772_pos, "args")
+ rx772_cur."!cursor_debug"("PASS ", "args", " at pos=", rx772_pos)
+ .return (rx772_cur)
+ rx772_fail:
+.annotate "line", 4
+ (rx772_rep, rx772_pos, $I10, $P10) = rx772_cur."!mark_fail"(0)
+ lt rx772_pos, -1, rx772_done
+ eq rx772_pos, -1, rx772_fail
+ jump $I10
+ rx772_done:
+ rx772_cur."!cursor_fail"()
+ rx772_cur."!cursor_debug"("FAIL ", "args")
+ .return (rx772_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__args" :subid("178_1267204702.05125") :method
-.annotate "line", 4
- $P771 = self."!PREFIX__!subrule"("arglist", "(")
- new $P772, "ResizablePMCArray"
- push $P772, $P771
- .return ($P772)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "arglist" :subid("179_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 4
- .local string rx775_tgt
- .local int rx775_pos
- .local int rx775_off
- .local int rx775_eos
- .local int rx775_rep
- .local pmc rx775_cur
- (rx775_cur, rx775_pos, rx775_tgt) = self."!cursor_start"()
- rx775_cur."!cursor_debug"("START ", "arglist")
- .lex unicode:"$\x{a2}", rx775_cur
- .local pmc match
- .lex "$/", match
- length rx775_eos, rx775_tgt
- set rx775_off, 0
- lt rx775_pos, 2, rx775_start
- sub rx775_off, rx775_pos, 1
- substr rx775_tgt, rx775_tgt, rx775_off
- rx775_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan779_done
- goto rxscan779_scan
- rxscan779_loop:
- ($P10) = rx775_cur."from"()
- inc $P10
- set rx775_pos, $P10
- ge rx775_pos, rx775_eos, rxscan779_done
- rxscan779_scan:
- set_addr $I10, rxscan779_loop
- rx775_cur."!mark_push"(0, rx775_pos, $I10)
- rxscan779_done:
-.annotate "line", 368
- # rx subrule "ws" subtype=method negate=
- rx775_cur."!cursor_pos"(rx775_pos)
- $P10 = rx775_cur."ws"()
- unless $P10, rx775_fail
- rx775_pos = $P10."pos"()
- alt780_0:
-.annotate "line", 369
- set_addr $I10, alt780_1
- rx775_cur."!mark_push"(0, rx775_pos, $I10)
-.annotate "line", 370
+.sub "!PREFIX__args" :subid("178_1271336396.90314") :method
+.annotate "line", 4
+ $P774 = self."!PREFIX__!subrule"("arglist", "(")
+ new $P775, "ResizablePMCArray"
+ push $P775, $P774
+ .return ($P775)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "arglist" :subid("179_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 4
+ .local string rx778_tgt
+ .local int rx778_pos
+ .local int rx778_off
+ .local int rx778_eos
+ .local int rx778_rep
+ .local pmc rx778_cur
+ (rx778_cur, rx778_pos, rx778_tgt) = self."!cursor_start"()
+ rx778_cur."!cursor_debug"("START ", "arglist")
+ .lex unicode:"$\x{a2}", rx778_cur
+ .local pmc match
+ .lex "$/", match
+ length rx778_eos, rx778_tgt
+ set rx778_off, 0
+ lt rx778_pos, 2, rx778_start
+ sub rx778_off, rx778_pos, 1
+ substr rx778_tgt, rx778_tgt, rx778_off
+ rx778_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan782_done
+ goto rxscan782_scan
+ rxscan782_loop:
+ ($P10) = rx778_cur."from"()
+ inc $P10
+ set rx778_pos, $P10
+ ge rx778_pos, rx778_eos, rxscan782_done
+ rxscan782_scan:
+ set_addr $I10, rxscan782_loop
+ rx778_cur."!mark_push"(0, rx778_pos, $I10)
+ rxscan782_done:
+.annotate "line", 372
+ # rx subrule "ws" subtype=method negate=
+ rx778_cur."!cursor_pos"(rx778_pos)
+ $P10 = rx778_cur."ws"()
+ unless $P10, rx778_fail
+ rx778_pos = $P10."pos"()
+ alt783_0:
+.annotate "line", 373
+ set_addr $I10, alt783_1
+ rx778_cur."!mark_push"(0, rx778_pos, $I10)
+.annotate "line", 374
# rx subrule "EXPR" subtype=capture negate=
- rx775_cur."!cursor_pos"(rx775_pos)
- $P10 = rx775_cur."EXPR"("f=")
- unless $P10, rx775_fail
- rx775_cur."!mark_push"(0, -1, 0, $P10)
+ rx778_cur."!cursor_pos"(rx778_pos)
+ $P10 = rx778_cur."EXPR"("f=")
+ unless $P10, rx778_fail
+ rx778_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx775_pos = $P10."pos"()
- goto alt780_end
- alt780_1:
- alt780_end:
-.annotate "line", 367
+ rx778_pos = $P10."pos"()
+ goto alt783_end
+ alt783_1:
+ alt783_end:
+.annotate "line", 371
# rx pass
- rx775_cur."!cursor_pass"(rx775_pos, "arglist")
- rx775_cur."!cursor_debug"("PASS ", "arglist", " at pos=", rx775_pos)
- .return (rx775_cur)
- rx775_fail:
+ rx778_cur."!cursor_pass"(rx778_pos, "arglist")
+ rx778_cur."!cursor_debug"("PASS ", "arglist", " at pos=", rx778_pos)
+ .return (rx778_cur)
+ rx778_fail:
.annotate "line", 4
- (rx775_rep, rx775_pos, $I10, $P10) = rx775_cur."!mark_fail"(0)
- lt rx775_pos, -1, rx775_done
- eq rx775_pos, -1, rx775_fail
+ (rx778_rep, rx778_pos, $I10, $P10) = rx778_cur."!mark_fail"(0)
+ lt rx778_pos, -1, rx778_done
+ eq rx778_pos, -1, rx778_fail
jump $I10
- rx775_done:
- rx775_cur."!cursor_fail"()
- rx775_cur."!cursor_debug"("FAIL ", "arglist")
- .return (rx775_cur)
+ rx778_done:
+ rx778_cur."!cursor_fail"()
+ rx778_cur."!cursor_debug"("FAIL ", "arglist")
+ .return (rx778_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__arglist" :subid("180_1267204702.05125") :method
+.sub "!PREFIX__arglist" :subid("180_1271336396.90314") :method
.annotate "line", 4
- $P777 = self."!PREFIX__!subrule"("", "")
- new $P778, "ResizablePMCArray"
- push $P778, $P777
- .return ($P778)
+ $P780 = self."!PREFIX__!subrule"("", "")
+ new $P781, "ResizablePMCArray"
+ push $P781, $P780
+ .return ($P781)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<value>" :subid("181_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "term:sym<value>" :subid("181_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .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) = self."!cursor_start"()
- rx782_cur."!cursor_debug"("START ", "term:sym<value>")
- .lex unicode:"$\x{a2}", rx782_cur
+ .local string rx785_tgt
+ .local int rx785_pos
+ .local int rx785_off
+ .local int rx785_eos
+ .local int rx785_rep
+ .local pmc rx785_cur
+ (rx785_cur, rx785_pos, rx785_tgt) = self."!cursor_start"()
+ rx785_cur."!cursor_debug"("START ", "term:sym<value>")
+ .lex unicode:"$\x{a2}", rx785_cur
.local pmc match
.lex "$/", match
- length rx782_eos, rx782_tgt
- 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:
+ length rx785_eos, rx785_tgt
+ set rx785_off, 0
+ lt rx785_pos, 2, rx785_start
+ sub rx785_off, rx785_pos, 1
+ substr rx785_tgt, rx785_tgt, rx785_off
+ rx785_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan786_done
- goto rxscan786_scan
- rxscan786_loop:
- ($P10) = rx782_cur."from"()
+ ne $I10, -1, rxscan789_done
+ goto rxscan789_scan
+ rxscan789_loop:
+ ($P10) = rx785_cur."from"()
inc $P10
- 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", 376
+ set rx785_pos, $P10
+ ge rx785_pos, rx785_eos, rxscan789_done
+ rxscan789_scan:
+ set_addr $I10, rxscan789_loop
+ rx785_cur."!mark_push"(0, rx785_pos, $I10)
+ rxscan789_done:
+.annotate "line", 380
# rx subrule "value" subtype=capture negate=
- rx782_cur."!cursor_pos"(rx782_pos)
- $P10 = rx782_cur."value"()
- unless $P10, rx782_fail
- rx782_cur."!mark_push"(0, -1, 0, $P10)
+ rx785_cur."!cursor_pos"(rx785_pos)
+ $P10 = rx785_cur."value"()
+ unless $P10, rx785_fail
+ rx785_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("value")
- rx782_pos = $P10."pos"()
+ rx785_pos = $P10."pos"()
# rx pass
- rx782_cur."!cursor_pass"(rx782_pos, "term:sym<value>")
- rx782_cur."!cursor_debug"("PASS ", "term:sym<value>", " at pos=", rx782_pos)
- .return (rx782_cur)
- rx782_fail:
+ rx785_cur."!cursor_pass"(rx785_pos, "term:sym<value>")
+ rx785_cur."!cursor_debug"("PASS ", "term:sym<value>", " at pos=", rx785_pos)
+ .return (rx785_cur)
+ rx785_fail:
.annotate "line", 4
- (rx782_rep, rx782_pos, $I10, $P10) = rx782_cur."!mark_fail"(0)
- lt rx782_pos, -1, rx782_done
- eq rx782_pos, -1, rx782_fail
+ (rx785_rep, rx785_pos, $I10, $P10) = rx785_cur."!mark_fail"(0)
+ lt rx785_pos, -1, rx785_done
+ eq rx785_pos, -1, rx785_fail
jump $I10
- rx782_done:
- rx782_cur."!cursor_fail"()
- rx782_cur."!cursor_debug"("FAIL ", "term:sym<value>")
- .return (rx782_cur)
+ rx785_done:
+ rx785_cur."!cursor_fail"()
+ rx785_cur."!cursor_debug"("FAIL ", "term:sym<value>")
+ .return (rx785_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<value>" :subid("182_1267204702.05125") :method
+.sub "!PREFIX__term:sym<value>" :subid("182_1271336396.90314") :method
.annotate "line", 4
- $P784 = self."!PREFIX__!subrule"("value", "")
- new $P785, "ResizablePMCArray"
- push $P785, $P784
- .return ($P785)
+ $P787 = self."!PREFIX__!subrule"("value", "")
+ new $P788, "ResizablePMCArray"
+ push $P788, $P787
+ .return ($P788)
.end
.namespace ["NQP";"Grammar"]
-.sub "value" :subid("183_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "value" :subid("183_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx788_tgt
- .local int rx788_pos
- .local int rx788_off
- .local int rx788_eos
- .local int rx788_rep
- .local pmc rx788_cur
- (rx788_cur, rx788_pos, rx788_tgt) = self."!cursor_start"()
- rx788_cur."!cursor_debug"("START ", "value")
- .lex unicode:"$\x{a2}", rx788_cur
+ .local string rx791_tgt
+ .local int rx791_pos
+ .local int rx791_off
+ .local int rx791_eos
+ .local int rx791_rep
+ .local pmc rx791_cur
+ (rx791_cur, rx791_pos, rx791_tgt) = self."!cursor_start"()
+ rx791_cur."!cursor_debug"("START ", "value")
+ .lex unicode:"$\x{a2}", rx791_cur
.local pmc match
.lex "$/", match
- length rx788_eos, rx788_tgt
- set rx788_off, 0
- lt rx788_pos, 2, rx788_start
- sub rx788_off, rx788_pos, 1
- substr rx788_tgt, rx788_tgt, rx788_off
- rx788_start:
+ length rx791_eos, rx791_tgt
+ set rx791_off, 0
+ lt rx791_pos, 2, rx791_start
+ sub rx791_off, rx791_pos, 1
+ substr rx791_tgt, rx791_tgt, rx791_off
+ rx791_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan793_done
- goto rxscan793_scan
- rxscan793_loop:
- ($P10) = rx788_cur."from"()
+ ne $I10, -1, rxscan796_done
+ goto rxscan796_scan
+ rxscan796_loop:
+ ($P10) = rx791_cur."from"()
inc $P10
- set rx788_pos, $P10
- ge rx788_pos, rx788_eos, rxscan793_done
- rxscan793_scan:
- set_addr $I10, rxscan793_loop
- rx788_cur."!mark_push"(0, rx788_pos, $I10)
- rxscan793_done:
- alt794_0:
-.annotate "line", 378
- set_addr $I10, alt794_1
- rx788_cur."!mark_push"(0, rx788_pos, $I10)
-.annotate "line", 379
+ set rx791_pos, $P10
+ ge rx791_pos, rx791_eos, rxscan796_done
+ rxscan796_scan:
+ set_addr $I10, rxscan796_loop
+ rx791_cur."!mark_push"(0, rx791_pos, $I10)
+ rxscan796_done:
+ alt797_0:
+.annotate "line", 382
+ set_addr $I10, alt797_1
+ rx791_cur."!mark_push"(0, rx791_pos, $I10)
+.annotate "line", 383
# rx subrule "quote" subtype=capture negate=
- rx788_cur."!cursor_pos"(rx788_pos)
- $P10 = rx788_cur."quote"()
- unless $P10, rx788_fail
- rx788_cur."!mark_push"(0, -1, 0, $P10)
+ rx791_cur."!cursor_pos"(rx791_pos)
+ $P10 = rx791_cur."quote"()
+ unless $P10, rx791_fail
+ rx791_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote")
- rx788_pos = $P10."pos"()
- goto alt794_end
- alt794_1:
-.annotate "line", 380
+ rx791_pos = $P10."pos"()
+ goto alt797_end
+ alt797_1:
+.annotate "line", 384
# rx subrule "number" subtype=capture negate=
- rx788_cur."!cursor_pos"(rx788_pos)
- $P10 = rx788_cur."number"()
- unless $P10, rx788_fail
- rx788_cur."!mark_push"(0, -1, 0, $P10)
+ rx791_cur."!cursor_pos"(rx791_pos)
+ $P10 = rx791_cur."number"()
+ unless $P10, rx791_fail
+ rx791_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("number")
- rx788_pos = $P10."pos"()
- alt794_end:
-.annotate "line", 378
+ rx791_pos = $P10."pos"()
+ alt797_end:
+.annotate "line", 382
# rx pass
- rx788_cur."!cursor_pass"(rx788_pos, "value")
- rx788_cur."!cursor_debug"("PASS ", "value", " at pos=", rx788_pos)
- .return (rx788_cur)
- rx788_fail:
+ rx791_cur."!cursor_pass"(rx791_pos, "value")
+ rx791_cur."!cursor_debug"("PASS ", "value", " at pos=", rx791_pos)
+ .return (rx791_cur)
+ rx791_fail:
.annotate "line", 4
- (rx788_rep, rx788_pos, $I10, $P10) = rx788_cur."!mark_fail"(0)
- lt rx788_pos, -1, rx788_done
- eq rx788_pos, -1, rx788_fail
+ (rx791_rep, rx791_pos, $I10, $P10) = rx791_cur."!mark_fail"(0)
+ lt rx791_pos, -1, rx791_done
+ eq rx791_pos, -1, rx791_fail
jump $I10
- rx788_done:
- rx788_cur."!cursor_fail"()
- rx788_cur."!cursor_debug"("FAIL ", "value")
- .return (rx788_cur)
+ rx791_done:
+ rx791_cur."!cursor_fail"()
+ rx791_cur."!cursor_debug"("FAIL ", "value")
+ .return (rx791_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__value" :subid("184_1267204702.05125") :method
+.sub "!PREFIX__value" :subid("184_1271336396.90314") :method
.annotate "line", 4
- $P790 = self."!PREFIX__!subrule"("number", "")
- $P791 = self."!PREFIX__!subrule"("quote", "")
- new $P792, "ResizablePMCArray"
- push $P792, $P790
- push $P792, $P791
- .return ($P792)
+ $P793 = self."!PREFIX__!subrule"("number", "")
+ $P794 = self."!PREFIX__!subrule"("quote", "")
+ new $P795, "ResizablePMCArray"
+ push $P795, $P793
+ push $P795, $P794
+ .return ($P795)
.end
.namespace ["NQP";"Grammar"]
-.sub "number" :subid("185_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "number" :subid("185_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .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) = self."!cursor_start"()
- rx796_cur."!cursor_debug"("START ", "number")
- .lex unicode:"$\x{a2}", rx796_cur
+ .local string rx799_tgt
+ .local int rx799_pos
+ .local int rx799_off
+ .local int rx799_eos
+ .local int rx799_rep
+ .local pmc rx799_cur
+ (rx799_cur, rx799_pos, rx799_tgt) = self."!cursor_start"()
+ rx799_cur."!cursor_debug"("START ", "number")
+ .lex unicode:"$\x{a2}", rx799_cur
.local pmc match
.lex "$/", match
- length rx796_eos, rx796_tgt
- 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:
+ length rx799_eos, rx799_tgt
+ set rx799_off, 0
+ lt rx799_pos, 2, rx799_start
+ sub rx799_off, rx799_pos, 1
+ substr rx799_tgt, rx799_tgt, rx799_off
+ rx799_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan799_done
- goto rxscan799_scan
- rxscan799_loop:
- ($P10) = rx796_cur."from"()
+ ne $I10, -1, rxscan802_done
+ goto rxscan802_scan
+ rxscan802_loop:
+ ($P10) = rx799_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", 384
+ set rx799_pos, $P10
+ ge rx799_pos, rx799_eos, rxscan802_done
+ rxscan802_scan:
+ set_addr $I10, rxscan802_loop
+ rx799_cur."!mark_push"(0, rx799_pos, $I10)
+ rxscan802_done:
+.annotate "line", 388
# rx subcapture "sign"
- set_addr $I10, rxcap_802_fail
- rx796_cur."!mark_push"(0, rx796_pos, $I10)
- # rx rxquantr800 ** 0..1
- set_addr $I801, rxquantr800_done
- rx796_cur."!mark_push"(0, rx796_pos, $I801)
- rxquantr800_loop:
+ set_addr $I10, rxcap_805_fail
+ rx799_cur."!mark_push"(0, rx799_pos, $I10)
+ # rx rxquantr803 ** 0..1
+ set_addr $I804, rxquantr803_done
+ rx799_cur."!mark_push"(0, rx799_pos, $I804)
+ rxquantr803_loop:
# rx enumcharlist negate=0
- ge rx796_pos, rx796_eos, rx796_fail
- sub $I10, rx796_pos, rx796_off
- substr $S10, rx796_tgt, $I10, 1
+ ge rx799_pos, rx799_eos, rx799_fail
+ sub $I10, rx799_pos, rx799_off
+ substr $S10, rx799_tgt, $I10, 1
index $I11, "+-", $S10
- lt $I11, 0, rx796_fail
- inc rx796_pos
- (rx796_rep) = rx796_cur."!mark_commit"($I801)
- rxquantr800_done:
- set_addr $I10, rxcap_802_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)
+ lt $I11, 0, rx799_fail
+ inc rx799_pos
+ (rx799_rep) = rx799_cur."!mark_commit"($I804)
+ rxquantr803_done:
+ set_addr $I10, rxcap_805_fail
+ ($I12, $I11) = rx799_cur."!mark_peek"($I10)
+ rx799_cur."!cursor_pos"($I11)
+ ($P10) = rx799_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx799_pos, "")
+ rx799_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sign")
- goto rxcap_802_done
- rxcap_802_fail:
- goto rx796_fail
- rxcap_802_done:
- alt803_0:
-.annotate "line", 385
- set_addr $I10, alt803_1
- rx796_cur."!mark_push"(0, rx796_pos, $I10)
+ goto rxcap_805_done
+ rxcap_805_fail:
+ goto rx799_fail
+ rxcap_805_done:
+ alt806_0:
+.annotate "line", 389
+ set_addr $I10, alt806_1
+ rx799_cur."!mark_push"(0, rx799_pos, $I10)
# rx subrule "dec_number" subtype=capture negate=
- rx796_cur."!cursor_pos"(rx796_pos)
- $P10 = rx796_cur."dec_number"()
- unless $P10, rx796_fail
- rx796_cur."!mark_push"(0, -1, 0, $P10)
+ rx799_cur."!cursor_pos"(rx799_pos)
+ $P10 = rx799_cur."dec_number"()
+ unless $P10, rx799_fail
+ rx799_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("dec_number")
- rx796_pos = $P10."pos"()
- goto alt803_end
- alt803_1:
+ rx799_pos = $P10."pos"()
+ goto alt806_end
+ alt806_1:
# rx subrule "integer" subtype=capture negate=
- rx796_cur."!cursor_pos"(rx796_pos)
- $P10 = rx796_cur."integer"()
- unless $P10, rx796_fail
- rx796_cur."!mark_push"(0, -1, 0, $P10)
+ rx799_cur."!cursor_pos"(rx799_pos)
+ $P10 = rx799_cur."integer"()
+ unless $P10, rx799_fail
+ rx799_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("integer")
- rx796_pos = $P10."pos"()
- alt803_end:
-.annotate "line", 383
+ rx799_pos = $P10."pos"()
+ alt806_end:
+.annotate "line", 387
# rx pass
- rx796_cur."!cursor_pass"(rx796_pos, "number")
- rx796_cur."!cursor_debug"("PASS ", "number", " at pos=", rx796_pos)
- .return (rx796_cur)
- rx796_fail:
+ rx799_cur."!cursor_pass"(rx799_pos, "number")
+ rx799_cur."!cursor_debug"("PASS ", "number", " at pos=", rx799_pos)
+ .return (rx799_cur)
+ rx799_fail:
.annotate "line", 4
- (rx796_rep, rx796_pos, $I10, $P10) = rx796_cur."!mark_fail"(0)
- lt rx796_pos, -1, rx796_done
- eq rx796_pos, -1, rx796_fail
+ (rx799_rep, rx799_pos, $I10, $P10) = rx799_cur."!mark_fail"(0)
+ lt rx799_pos, -1, rx799_done
+ eq rx799_pos, -1, rx799_fail
jump $I10
- rx796_done:
- rx796_cur."!cursor_fail"()
- rx796_cur."!cursor_debug"("FAIL ", "number")
- .return (rx796_cur)
+ rx799_done:
+ rx799_cur."!cursor_fail"()
+ rx799_cur."!cursor_debug"("FAIL ", "number")
+ .return (rx799_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__number" :subid("186_1267204702.05125") :method
+.sub "!PREFIX__number" :subid("186_1271336396.90314") :method
.annotate "line", 4
- new $P798, "ResizablePMCArray"
- push $P798, ""
- .return ($P798)
+ new $P801, "ResizablePMCArray"
+ push $P801, ""
+ .return ($P801)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote" :subid("187_1267204702.05125") :method
-.annotate "line", 388
- $P805 = self."!protoregex"("quote")
- .return ($P805)
+.sub "quote" :subid("187_1271336396.90314") :method
+.annotate "line", 392
+ $P808 = self."!protoregex"("quote")
+ .return ($P808)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote" :subid("188_1267204702.05125") :method
-.annotate "line", 388
- $P807 = self."!PREFIX__!protoregex"("quote")
- .return ($P807)
+.sub "!PREFIX__quote" :subid("188_1271336396.90314") :method
+.annotate "line", 392
+ $P810 = self."!PREFIX__!protoregex"("quote")
+ .return ($P810)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<apos>" :subid("189_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "quote:sym<apos>" :subid("189_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx809_tgt
- .local int rx809_pos
- .local int rx809_off
- .local int rx809_eos
- .local int rx809_rep
- .local pmc rx809_cur
- (rx809_cur, rx809_pos, rx809_tgt) = self."!cursor_start"()
- rx809_cur."!cursor_debug"("START ", "quote:sym<apos>")
- .lex unicode:"$\x{a2}", rx809_cur
- .local pmc match
- .lex "$/", match
- length rx809_eos, rx809_tgt
- set rx809_off, 0
- lt rx809_pos, 2, rx809_start
- sub rx809_off, rx809_pos, 1
- substr rx809_tgt, rx809_tgt, rx809_off
- rx809_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan812_done
- goto rxscan812_scan
- rxscan812_loop:
- ($P10) = rx809_cur."from"()
- inc $P10
- set rx809_pos, $P10
- ge rx809_pos, rx809_eos, rxscan812_done
- rxscan812_scan:
- set_addr $I10, rxscan812_loop
- rx809_cur."!mark_push"(0, rx809_pos, $I10)
- rxscan812_done:
-.annotate "line", 389
+ .local string rx812_tgt
+ .local int rx812_pos
+ .local int rx812_off
+ .local int rx812_eos
+ .local int rx812_rep
+ .local pmc rx812_cur
+ (rx812_cur, rx812_pos, rx812_tgt) = self."!cursor_start"()
+ rx812_cur."!cursor_debug"("START ", "quote:sym<apos>")
+ .lex unicode:"$\x{a2}", rx812_cur
+ .local pmc match
+ .lex "$/", match
+ length rx812_eos, rx812_tgt
+ set rx812_off, 0
+ lt rx812_pos, 2, rx812_start
+ sub rx812_off, rx812_pos, 1
+ substr rx812_tgt, rx812_tgt, rx812_off
+ rx812_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan815_done
+ goto rxscan815_scan
+ rxscan815_loop:
+ ($P10) = rx812_cur."from"()
+ inc $P10
+ set rx812_pos, $P10
+ ge rx812_pos, rx812_eos, rxscan815_done
+ rxscan815_scan:
+ set_addr $I10, rxscan815_loop
+ rx812_cur."!mark_push"(0, rx812_pos, $I10)
+ rxscan815_done:
+.annotate "line", 393
# rx enumcharlist negate=0 zerowidth
- ge rx809_pos, rx809_eos, rx809_fail
- sub $I10, rx809_pos, rx809_off
- substr $S10, rx809_tgt, $I10, 1
+ ge rx812_pos, rx812_eos, rx812_fail
+ sub $I10, rx812_pos, rx812_off
+ substr $S10, rx812_tgt, $I10, 1
index $I11, "'", $S10
- lt $I11, 0, rx809_fail
+ lt $I11, 0, rx812_fail
# rx subrule "quote_EXPR" subtype=capture negate=
- rx809_cur."!cursor_pos"(rx809_pos)
- $P10 = rx809_cur."quote_EXPR"(":q")
- unless $P10, rx809_fail
- rx809_cur."!mark_push"(0, -1, 0, $P10)
+ rx812_cur."!cursor_pos"(rx812_pos)
+ $P10 = rx812_cur."quote_EXPR"(":q")
+ unless $P10, rx812_fail
+ rx812_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx809_pos = $P10."pos"()
+ rx812_pos = $P10."pos"()
# rx pass
- rx809_cur."!cursor_pass"(rx809_pos, "quote:sym<apos>")
- rx809_cur."!cursor_debug"("PASS ", "quote:sym<apos>", " at pos=", rx809_pos)
- .return (rx809_cur)
- rx809_fail:
+ rx812_cur."!cursor_pass"(rx812_pos, "quote:sym<apos>")
+ rx812_cur."!cursor_debug"("PASS ", "quote:sym<apos>", " at pos=", rx812_pos)
+ .return (rx812_cur)
+ rx812_fail:
.annotate "line", 4
- (rx809_rep, rx809_pos, $I10, $P10) = rx809_cur."!mark_fail"(0)
- lt rx809_pos, -1, rx809_done
- eq rx809_pos, -1, rx809_fail
+ (rx812_rep, rx812_pos, $I10, $P10) = rx812_cur."!mark_fail"(0)
+ lt rx812_pos, -1, rx812_done
+ eq rx812_pos, -1, rx812_fail
jump $I10
- rx809_done:
- rx809_cur."!cursor_fail"()
- rx809_cur."!cursor_debug"("FAIL ", "quote:sym<apos>")
- .return (rx809_cur)
+ rx812_done:
+ rx812_cur."!cursor_fail"()
+ rx812_cur."!cursor_debug"("FAIL ", "quote:sym<apos>")
+ .return (rx812_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<apos>" :subid("190_1267204702.05125") :method
+.sub "!PREFIX__quote:sym<apos>" :subid("190_1271336396.90314") :method
.annotate "line", 4
- new $P811, "ResizablePMCArray"
- push $P811, "'"
- .return ($P811)
+ new $P814, "ResizablePMCArray"
+ push $P814, "'"
+ .return ($P814)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<dblq>" :subid("191_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "quote:sym<dblq>" :subid("191_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx814_tgt
- .local int rx814_pos
- .local int rx814_off
- .local int rx814_eos
- .local int rx814_rep
- .local pmc rx814_cur
- (rx814_cur, rx814_pos, rx814_tgt) = self."!cursor_start"()
- rx814_cur."!cursor_debug"("START ", "quote:sym<dblq>")
- .lex unicode:"$\x{a2}", rx814_cur
+ .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 ", "quote:sym<dblq>")
+ .lex unicode:"$\x{a2}", rx817_cur
.local pmc match
.lex "$/", match
- length rx814_eos, rx814_tgt
- set rx814_off, 0
- lt rx814_pos, 2, rx814_start
- sub rx814_off, rx814_pos, 1
- substr rx814_tgt, rx814_tgt, rx814_off
- rx814_start:
+ length rx817_eos, rx817_tgt
+ 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, rxscan817_done
- goto rxscan817_scan
- rxscan817_loop:
- ($P10) = rx814_cur."from"()
+ ne $I10, -1, rxscan820_done
+ goto rxscan820_scan
+ rxscan820_loop:
+ ($P10) = rx817_cur."from"()
inc $P10
- set rx814_pos, $P10
- ge rx814_pos, rx814_eos, rxscan817_done
- rxscan817_scan:
- set_addr $I10, rxscan817_loop
- rx814_cur."!mark_push"(0, rx814_pos, $I10)
- rxscan817_done:
-.annotate "line", 390
+ 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", 394
# rx enumcharlist negate=0 zerowidth
- ge rx814_pos, rx814_eos, rx814_fail
- sub $I10, rx814_pos, rx814_off
- substr $S10, rx814_tgt, $I10, 1
+ ge rx817_pos, rx817_eos, rx817_fail
+ sub $I10, rx817_pos, rx817_off
+ substr $S10, rx817_tgt, $I10, 1
index $I11, "\"", $S10
- lt $I11, 0, rx814_fail
+ lt $I11, 0, rx817_fail
# rx subrule "quote_EXPR" subtype=capture negate=
- rx814_cur."!cursor_pos"(rx814_pos)
- $P10 = rx814_cur."quote_EXPR"(":qq")
- unless $P10, rx814_fail
- rx814_cur."!mark_push"(0, -1, 0, $P10)
+ rx817_cur."!cursor_pos"(rx817_pos)
+ $P10 = rx817_cur."quote_EXPR"(":qq")
+ unless $P10, rx817_fail
+ rx817_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx814_pos = $P10."pos"()
+ rx817_pos = $P10."pos"()
# rx pass
- rx814_cur."!cursor_pass"(rx814_pos, "quote:sym<dblq>")
- rx814_cur."!cursor_debug"("PASS ", "quote:sym<dblq>", " at pos=", rx814_pos)
- .return (rx814_cur)
- rx814_fail:
+ rx817_cur."!cursor_pass"(rx817_pos, "quote:sym<dblq>")
+ rx817_cur."!cursor_debug"("PASS ", "quote:sym<dblq>", " at pos=", rx817_pos)
+ .return (rx817_cur)
+ rx817_fail:
.annotate "line", 4
- (rx814_rep, rx814_pos, $I10, $P10) = rx814_cur."!mark_fail"(0)
- lt rx814_pos, -1, rx814_done
- eq rx814_pos, -1, rx814_fail
+ (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
- rx814_done:
- rx814_cur."!cursor_fail"()
- rx814_cur."!cursor_debug"("FAIL ", "quote:sym<dblq>")
- .return (rx814_cur)
+ rx817_done:
+ rx817_cur."!cursor_fail"()
+ rx817_cur."!cursor_debug"("FAIL ", "quote:sym<dblq>")
+ .return (rx817_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<dblq>" :subid("192_1267204702.05125") :method
+.sub "!PREFIX__quote:sym<dblq>" :subid("192_1271336396.90314") :method
.annotate "line", 4
- new $P816, "ResizablePMCArray"
- push $P816, "\""
- .return ($P816)
+ new $P819, "ResizablePMCArray"
+ push $P819, "\""
+ .return ($P819)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<q>" :subid("193_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "quote:sym<q>" :subid("193_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx819_tgt
- .local int rx819_pos
- .local int rx819_off
- .local int rx819_eos
- .local int rx819_rep
- .local pmc rx819_cur
- (rx819_cur, rx819_pos, rx819_tgt) = self."!cursor_start"()
- rx819_cur."!cursor_debug"("START ", "quote:sym<q>")
- .lex unicode:"$\x{a2}", rx819_cur
+ .local string rx822_tgt
+ .local int rx822_pos
+ .local int rx822_off
+ .local int rx822_eos
+ .local int rx822_rep
+ .local pmc rx822_cur
+ (rx822_cur, rx822_pos, rx822_tgt) = self."!cursor_start"()
+ rx822_cur."!cursor_debug"("START ", "quote:sym<q>")
+ .lex unicode:"$\x{a2}", rx822_cur
.local pmc match
.lex "$/", match
- length rx819_eos, rx819_tgt
- set rx819_off, 0
- lt rx819_pos, 2, rx819_start
- sub rx819_off, rx819_pos, 1
- substr rx819_tgt, rx819_tgt, rx819_off
- rx819_start:
+ length rx822_eos, rx822_tgt
+ set rx822_off, 0
+ lt rx822_pos, 2, rx822_start
+ sub rx822_off, rx822_pos, 1
+ substr rx822_tgt, rx822_tgt, rx822_off
+ rx822_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan823_done
- goto rxscan823_scan
- rxscan823_loop:
- ($P10) = rx819_cur."from"()
+ ne $I10, -1, rxscan826_done
+ goto rxscan826_scan
+ rxscan826_loop:
+ ($P10) = rx822_cur."from"()
inc $P10
- set rx819_pos, $P10
- ge rx819_pos, rx819_eos, rxscan823_done
- rxscan823_scan:
- set_addr $I10, rxscan823_loop
- rx819_cur."!mark_push"(0, rx819_pos, $I10)
- rxscan823_done:
-.annotate "line", 391
+ set rx822_pos, $P10
+ ge rx822_pos, rx822_eos, rxscan826_done
+ rxscan826_scan:
+ set_addr $I10, rxscan826_loop
+ rx822_cur."!mark_push"(0, rx822_pos, $I10)
+ rxscan826_done:
+.annotate "line", 395
# rx literal "q"
- add $I11, rx819_pos, 1
- gt $I11, rx819_eos, rx819_fail
- sub $I11, rx819_pos, rx819_off
- substr $S10, rx819_tgt, $I11, 1
- ne $S10, "q", rx819_fail
- add rx819_pos, 1
+ add $I11, rx822_pos, 1
+ gt $I11, rx822_eos, rx822_fail
+ sub $I11, rx822_pos, rx822_off
+ substr $S10, rx822_tgt, $I11, 1
+ ne $S10, "q", rx822_fail
+ add rx822_pos, 1
# rx enumcharlist negate=1 zerowidth
- ge rx819_pos, rx819_eos, rx819_fail
- sub $I10, rx819_pos, rx819_off
- substr $S10, rx819_tgt, $I10, 1
+ ge rx822_pos, rx822_eos, rx822_fail
+ sub $I10, rx822_pos, rx822_off
+ substr $S10, rx822_tgt, $I10, 1
index $I11, "(", $S10
- ge $I11, 0, rx819_fail
+ ge $I11, 0, rx822_fail
# rx subrule "ws" subtype=method negate=
- rx819_cur."!cursor_pos"(rx819_pos)
- $P10 = rx819_cur."ws"()
- unless $P10, rx819_fail
- rx819_pos = $P10."pos"()
+ rx822_cur."!cursor_pos"(rx822_pos)
+ $P10 = rx822_cur."ws"()
+ unless $P10, rx822_fail
+ rx822_pos = $P10."pos"()
# rx subrule "quote_EXPR" subtype=capture negate=
- rx819_cur."!cursor_pos"(rx819_pos)
- $P10 = rx819_cur."quote_EXPR"(":q")
- unless $P10, rx819_fail
- rx819_cur."!mark_push"(0, -1, 0, $P10)
+ rx822_cur."!cursor_pos"(rx822_pos)
+ $P10 = rx822_cur."quote_EXPR"(":q")
+ unless $P10, rx822_fail
+ rx822_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx819_pos = $P10."pos"()
+ rx822_pos = $P10."pos"()
# rx pass
- rx819_cur."!cursor_pass"(rx819_pos, "quote:sym<q>")
- rx819_cur."!cursor_debug"("PASS ", "quote:sym<q>", " at pos=", rx819_pos)
- .return (rx819_cur)
- rx819_fail:
+ rx822_cur."!cursor_pass"(rx822_pos, "quote:sym<q>")
+ rx822_cur."!cursor_debug"("PASS ", "quote:sym<q>", " at pos=", rx822_pos)
+ .return (rx822_cur)
+ rx822_fail:
.annotate "line", 4
- (rx819_rep, rx819_pos, $I10, $P10) = rx819_cur."!mark_fail"(0)
- lt rx819_pos, -1, rx819_done
- eq rx819_pos, -1, rx819_fail
+ (rx822_rep, rx822_pos, $I10, $P10) = rx822_cur."!mark_fail"(0)
+ lt rx822_pos, -1, rx822_done
+ eq rx822_pos, -1, rx822_fail
jump $I10
- rx819_done:
- rx819_cur."!cursor_fail"()
- rx819_cur."!cursor_debug"("FAIL ", "quote:sym<q>")
- .return (rx819_cur)
+ rx822_done:
+ rx822_cur."!cursor_fail"()
+ rx822_cur."!cursor_debug"("FAIL ", "quote:sym<q>")
+ .return (rx822_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<q>" :subid("194_1267204702.05125") :method
+.sub "!PREFIX__quote:sym<q>" :subid("194_1271336396.90314") :method
.annotate "line", 4
- $P821 = self."!PREFIX__!subrule"("", "q")
- new $P822, "ResizablePMCArray"
- push $P822, $P821
- .return ($P822)
+ $P824 = self."!PREFIX__!subrule"("", "q")
+ new $P825, "ResizablePMCArray"
+ push $P825, $P824
+ .return ($P825)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<qq>" :subid("195_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "quote:sym<qq>" :subid("195_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx825_tgt
- .local int rx825_pos
- .local int rx825_off
- .local int rx825_eos
- .local int rx825_rep
- .local pmc rx825_cur
- (rx825_cur, rx825_pos, rx825_tgt) = self."!cursor_start"()
- rx825_cur."!cursor_debug"("START ", "quote:sym<qq>")
- .lex unicode:"$\x{a2}", rx825_cur
+ .local string rx828_tgt
+ .local int rx828_pos
+ .local int rx828_off
+ .local int rx828_eos
+ .local int rx828_rep
+ .local pmc rx828_cur
+ (rx828_cur, rx828_pos, rx828_tgt) = self."!cursor_start"()
+ rx828_cur."!cursor_debug"("START ", "quote:sym<qq>")
+ .lex unicode:"$\x{a2}", rx828_cur
.local pmc match
.lex "$/", match
- length rx825_eos, rx825_tgt
- set rx825_off, 0
- lt rx825_pos, 2, rx825_start
- sub rx825_off, rx825_pos, 1
- substr rx825_tgt, rx825_tgt, rx825_off
- rx825_start:
+ length rx828_eos, rx828_tgt
+ set rx828_off, 0
+ lt rx828_pos, 2, rx828_start
+ sub rx828_off, rx828_pos, 1
+ substr rx828_tgt, rx828_tgt, rx828_off
+ rx828_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan829_done
- goto rxscan829_scan
- rxscan829_loop:
- ($P10) = rx825_cur."from"()
+ ne $I10, -1, rxscan832_done
+ goto rxscan832_scan
+ rxscan832_loop:
+ ($P10) = rx828_cur."from"()
inc $P10
- set rx825_pos, $P10
- ge rx825_pos, rx825_eos, rxscan829_done
- rxscan829_scan:
- set_addr $I10, rxscan829_loop
- rx825_cur."!mark_push"(0, rx825_pos, $I10)
- rxscan829_done:
-.annotate "line", 392
+ set rx828_pos, $P10
+ ge rx828_pos, rx828_eos, rxscan832_done
+ rxscan832_scan:
+ set_addr $I10, rxscan832_loop
+ rx828_cur."!mark_push"(0, rx828_pos, $I10)
+ rxscan832_done:
+.annotate "line", 396
# rx literal "qq"
- add $I11, rx825_pos, 2
- gt $I11, rx825_eos, rx825_fail
- sub $I11, rx825_pos, rx825_off
- substr $S10, rx825_tgt, $I11, 2
- ne $S10, "qq", rx825_fail
- add rx825_pos, 2
+ add $I11, rx828_pos, 2
+ gt $I11, rx828_eos, rx828_fail
+ sub $I11, rx828_pos, rx828_off
+ substr $S10, rx828_tgt, $I11, 2
+ ne $S10, "qq", rx828_fail
+ add rx828_pos, 2
# rx enumcharlist negate=1 zerowidth
- ge rx825_pos, rx825_eos, rx825_fail
- sub $I10, rx825_pos, rx825_off
- substr $S10, rx825_tgt, $I10, 1
+ ge rx828_pos, rx828_eos, rx828_fail
+ sub $I10, rx828_pos, rx828_off
+ substr $S10, rx828_tgt, $I10, 1
index $I11, "(", $S10
- ge $I11, 0, rx825_fail
+ ge $I11, 0, rx828_fail
# rx subrule "ws" subtype=method negate=
- rx825_cur."!cursor_pos"(rx825_pos)
- $P10 = rx825_cur."ws"()
- unless $P10, rx825_fail
- rx825_pos = $P10."pos"()
+ rx828_cur."!cursor_pos"(rx828_pos)
+ $P10 = rx828_cur."ws"()
+ unless $P10, rx828_fail
+ rx828_pos = $P10."pos"()
# rx subrule "quote_EXPR" subtype=capture negate=
- rx825_cur."!cursor_pos"(rx825_pos)
- $P10 = rx825_cur."quote_EXPR"(":qq")
- unless $P10, rx825_fail
- rx825_cur."!mark_push"(0, -1, 0, $P10)
+ rx828_cur."!cursor_pos"(rx828_pos)
+ $P10 = rx828_cur."quote_EXPR"(":qq")
+ unless $P10, rx828_fail
+ rx828_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx825_pos = $P10."pos"()
+ rx828_pos = $P10."pos"()
# rx pass
- rx825_cur."!cursor_pass"(rx825_pos, "quote:sym<qq>")
- rx825_cur."!cursor_debug"("PASS ", "quote:sym<qq>", " at pos=", rx825_pos)
- .return (rx825_cur)
- rx825_fail:
+ rx828_cur."!cursor_pass"(rx828_pos, "quote:sym<qq>")
+ rx828_cur."!cursor_debug"("PASS ", "quote:sym<qq>", " at pos=", rx828_pos)
+ .return (rx828_cur)
+ rx828_fail:
.annotate "line", 4
- (rx825_rep, rx825_pos, $I10, $P10) = rx825_cur."!mark_fail"(0)
- lt rx825_pos, -1, rx825_done
- eq rx825_pos, -1, rx825_fail
+ (rx828_rep, rx828_pos, $I10, $P10) = rx828_cur."!mark_fail"(0)
+ lt rx828_pos, -1, rx828_done
+ eq rx828_pos, -1, rx828_fail
jump $I10
- rx825_done:
- rx825_cur."!cursor_fail"()
- rx825_cur."!cursor_debug"("FAIL ", "quote:sym<qq>")
- .return (rx825_cur)
+ rx828_done:
+ rx828_cur."!cursor_fail"()
+ rx828_cur."!cursor_debug"("FAIL ", "quote:sym<qq>")
+ .return (rx828_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<qq>" :subid("196_1267204702.05125") :method
+.sub "!PREFIX__quote:sym<qq>" :subid("196_1271336396.90314") :method
.annotate "line", 4
- $P827 = self."!PREFIX__!subrule"("", "qq")
- new $P828, "ResizablePMCArray"
- push $P828, $P827
- .return ($P828)
+ $P830 = self."!PREFIX__!subrule"("", "qq")
+ new $P831, "ResizablePMCArray"
+ push $P831, $P830
+ .return ($P831)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q>" :subid("197_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "quote:sym<Q>" :subid("197_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx831_tgt
- .local int rx831_pos
- .local int rx831_off
- .local int rx831_eos
- .local int rx831_rep
- .local pmc rx831_cur
- (rx831_cur, rx831_pos, rx831_tgt) = self."!cursor_start"()
- rx831_cur."!cursor_debug"("START ", "quote:sym<Q>")
- .lex unicode:"$\x{a2}", rx831_cur
- .local pmc match
- .lex "$/", match
- length rx831_eos, rx831_tgt
- set rx831_off, 0
- lt rx831_pos, 2, rx831_start
- sub rx831_off, rx831_pos, 1
- substr rx831_tgt, rx831_tgt, rx831_off
- rx831_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan835_done
- goto rxscan835_scan
- rxscan835_loop:
- ($P10) = rx831_cur."from"()
- inc $P10
- set rx831_pos, $P10
- ge rx831_pos, rx831_eos, rxscan835_done
- rxscan835_scan:
- set_addr $I10, rxscan835_loop
- rx831_cur."!mark_push"(0, rx831_pos, $I10)
- rxscan835_done:
-.annotate "line", 393
+ .local string rx834_tgt
+ .local int rx834_pos
+ .local int rx834_off
+ .local int rx834_eos
+ .local int rx834_rep
+ .local pmc rx834_cur
+ (rx834_cur, rx834_pos, rx834_tgt) = self."!cursor_start"()
+ rx834_cur."!cursor_debug"("START ", "quote:sym<Q>")
+ .lex unicode:"$\x{a2}", rx834_cur
+ .local pmc match
+ .lex "$/", match
+ length rx834_eos, rx834_tgt
+ set rx834_off, 0
+ lt rx834_pos, 2, rx834_start
+ sub rx834_off, rx834_pos, 1
+ substr rx834_tgt, rx834_tgt, rx834_off
+ rx834_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan838_done
+ goto rxscan838_scan
+ rxscan838_loop:
+ ($P10) = rx834_cur."from"()
+ inc $P10
+ set rx834_pos, $P10
+ ge rx834_pos, rx834_eos, rxscan838_done
+ rxscan838_scan:
+ set_addr $I10, rxscan838_loop
+ rx834_cur."!mark_push"(0, rx834_pos, $I10)
+ rxscan838_done:
+.annotate "line", 397
# rx literal "Q"
- add $I11, rx831_pos, 1
- gt $I11, rx831_eos, rx831_fail
- sub $I11, rx831_pos, rx831_off
- substr $S10, rx831_tgt, $I11, 1
- ne $S10, "Q", rx831_fail
- add rx831_pos, 1
+ add $I11, rx834_pos, 1
+ gt $I11, rx834_eos, rx834_fail
+ sub $I11, rx834_pos, rx834_off
+ substr $S10, rx834_tgt, $I11, 1
+ ne $S10, "Q", rx834_fail
+ add rx834_pos, 1
# rx enumcharlist negate=1 zerowidth
- ge rx831_pos, rx831_eos, rx831_fail
- sub $I10, rx831_pos, rx831_off
- substr $S10, rx831_tgt, $I10, 1
+ ge rx834_pos, rx834_eos, rx834_fail
+ sub $I10, rx834_pos, rx834_off
+ substr $S10, rx834_tgt, $I10, 1
index $I11, "(", $S10
- ge $I11, 0, rx831_fail
+ ge $I11, 0, rx834_fail
# rx subrule "ws" subtype=method negate=
- rx831_cur."!cursor_pos"(rx831_pos)
- $P10 = rx831_cur."ws"()
- unless $P10, rx831_fail
- rx831_pos = $P10."pos"()
+ rx834_cur."!cursor_pos"(rx834_pos)
+ $P10 = rx834_cur."ws"()
+ unless $P10, rx834_fail
+ rx834_pos = $P10."pos"()
# rx subrule "quote_EXPR" subtype=capture negate=
- rx831_cur."!cursor_pos"(rx831_pos)
- $P10 = rx831_cur."quote_EXPR"()
- unless $P10, rx831_fail
- rx831_cur."!mark_push"(0, -1, 0, $P10)
+ rx834_cur."!cursor_pos"(rx834_pos)
+ $P10 = rx834_cur."quote_EXPR"()
+ unless $P10, rx834_fail
+ rx834_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx831_pos = $P10."pos"()
+ rx834_pos = $P10."pos"()
# rx pass
- rx831_cur."!cursor_pass"(rx831_pos, "quote:sym<Q>")
- rx831_cur."!cursor_debug"("PASS ", "quote:sym<Q>", " at pos=", rx831_pos)
- .return (rx831_cur)
- rx831_fail:
+ rx834_cur."!cursor_pass"(rx834_pos, "quote:sym<Q>")
+ rx834_cur."!cursor_debug"("PASS ", "quote:sym<Q>", " at pos=", rx834_pos)
+ .return (rx834_cur)
+ rx834_fail:
.annotate "line", 4
- (rx831_rep, rx831_pos, $I10, $P10) = rx831_cur."!mark_fail"(0)
- lt rx831_pos, -1, rx831_done
- eq rx831_pos, -1, rx831_fail
+ (rx834_rep, rx834_pos, $I10, $P10) = rx834_cur."!mark_fail"(0)
+ lt rx834_pos, -1, rx834_done
+ eq rx834_pos, -1, rx834_fail
jump $I10
- rx831_done:
- rx831_cur."!cursor_fail"()
- rx831_cur."!cursor_debug"("FAIL ", "quote:sym<Q>")
- .return (rx831_cur)
+ rx834_done:
+ rx834_cur."!cursor_fail"()
+ rx834_cur."!cursor_debug"("FAIL ", "quote:sym<Q>")
+ .return (rx834_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q>" :subid("198_1267204702.05125") :method
+.sub "!PREFIX__quote:sym<Q>" :subid("198_1271336396.90314") :method
.annotate "line", 4
- $P833 = self."!PREFIX__!subrule"("", "Q")
- new $P834, "ResizablePMCArray"
- push $P834, $P833
- .return ($P834)
+ $P836 = self."!PREFIX__!subrule"("", "Q")
+ new $P837, "ResizablePMCArray"
+ push $P837, $P836
+ .return ($P837)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q:PIR>" :subid("199_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "quote:sym<Q:PIR>" :subid("199_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx837_tgt
- .local int rx837_pos
- .local int rx837_off
- .local int rx837_eos
- .local int rx837_rep
- .local pmc rx837_cur
- (rx837_cur, rx837_pos, rx837_tgt) = self."!cursor_start"()
- rx837_cur."!cursor_debug"("START ", "quote:sym<Q:PIR>")
- .lex unicode:"$\x{a2}", rx837_cur
+ .local string rx840_tgt
+ .local int rx840_pos
+ .local int rx840_off
+ .local int rx840_eos
+ .local int rx840_rep
+ .local pmc rx840_cur
+ (rx840_cur, rx840_pos, rx840_tgt) = self."!cursor_start"()
+ rx840_cur."!cursor_debug"("START ", "quote:sym<Q:PIR>")
+ .lex unicode:"$\x{a2}", rx840_cur
.local pmc match
.lex "$/", match
- length rx837_eos, rx837_tgt
- set rx837_off, 0
- lt rx837_pos, 2, rx837_start
- sub rx837_off, rx837_pos, 1
- substr rx837_tgt, rx837_tgt, rx837_off
- rx837_start:
+ length rx840_eos, rx840_tgt
+ set rx840_off, 0
+ lt rx840_pos, 2, rx840_start
+ sub rx840_off, rx840_pos, 1
+ substr rx840_tgt, rx840_tgt, rx840_off
+ rx840_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan841_done
- goto rxscan841_scan
- rxscan841_loop:
- ($P10) = rx837_cur."from"()
+ ne $I10, -1, rxscan844_done
+ goto rxscan844_scan
+ rxscan844_loop:
+ ($P10) = rx840_cur."from"()
inc $P10
- set rx837_pos, $P10
- ge rx837_pos, rx837_eos, rxscan841_done
- rxscan841_scan:
- set_addr $I10, rxscan841_loop
- rx837_cur."!mark_push"(0, rx837_pos, $I10)
- rxscan841_done:
-.annotate "line", 394
+ set rx840_pos, $P10
+ ge rx840_pos, rx840_eos, rxscan844_done
+ rxscan844_scan:
+ set_addr $I10, rxscan844_loop
+ rx840_cur."!mark_push"(0, rx840_pos, $I10)
+ rxscan844_done:
+.annotate "line", 398
# rx literal "Q: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, "Q:PIR", rx837_fail
- add rx837_pos, 5
- # rx subrule "ws" subtype=method negate=
- rx837_cur."!cursor_pos"(rx837_pos)
- $P10 = rx837_cur."ws"()
- unless $P10, rx837_fail
- rx837_pos = $P10."pos"()
+ add $I11, rx840_pos, 5
+ gt $I11, rx840_eos, rx840_fail
+ sub $I11, rx840_pos, rx840_off
+ substr $S10, rx840_tgt, $I11, 5
+ ne $S10, "Q:PIR", rx840_fail
+ add rx840_pos, 5
+ # rx subrule "ws" subtype=method negate=
+ rx840_cur."!cursor_pos"(rx840_pos)
+ $P10 = rx840_cur."ws"()
+ unless $P10, rx840_fail
+ rx840_pos = $P10."pos"()
# rx subrule "quote_EXPR" subtype=capture negate=
- rx837_cur."!cursor_pos"(rx837_pos)
- $P10 = rx837_cur."quote_EXPR"()
- unless $P10, rx837_fail
- rx837_cur."!mark_push"(0, -1, 0, $P10)
+ rx840_cur."!cursor_pos"(rx840_pos)
+ $P10 = rx840_cur."quote_EXPR"()
+ unless $P10, rx840_fail
+ rx840_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx837_pos = $P10."pos"()
+ rx840_pos = $P10."pos"()
# rx pass
- rx837_cur."!cursor_pass"(rx837_pos, "quote:sym<Q:PIR>")
- rx837_cur."!cursor_debug"("PASS ", "quote:sym<Q:PIR>", " at pos=", rx837_pos)
- .return (rx837_cur)
- rx837_fail:
+ rx840_cur."!cursor_pass"(rx840_pos, "quote:sym<Q:PIR>")
+ rx840_cur."!cursor_debug"("PASS ", "quote:sym<Q:PIR>", " at pos=", rx840_pos)
+ .return (rx840_cur)
+ rx840_fail:
.annotate "line", 4
- (rx837_rep, rx837_pos, $I10, $P10) = rx837_cur."!mark_fail"(0)
- lt rx837_pos, -1, rx837_done
- eq rx837_pos, -1, rx837_fail
+ (rx840_rep, rx840_pos, $I10, $P10) = rx840_cur."!mark_fail"(0)
+ lt rx840_pos, -1, rx840_done
+ eq rx840_pos, -1, rx840_fail
jump $I10
- rx837_done:
- rx837_cur."!cursor_fail"()
- rx837_cur."!cursor_debug"("FAIL ", "quote:sym<Q:PIR>")
- .return (rx837_cur)
+ rx840_done:
+ rx840_cur."!cursor_fail"()
+ rx840_cur."!cursor_debug"("FAIL ", "quote:sym<Q:PIR>")
+ .return (rx840_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q:PIR>" :subid("200_1267204702.05125") :method
+.sub "!PREFIX__quote:sym<Q:PIR>" :subid("200_1271336396.90314") :method
.annotate "line", 4
- $P839 = self."!PREFIX__!subrule"("", "Q:PIR")
- new $P840, "ResizablePMCArray"
- push $P840, $P839
- .return ($P840)
+ $P842 = self."!PREFIX__!subrule"("", "Q:PIR")
+ new $P843, "ResizablePMCArray"
+ push $P843, $P842
+ .return ($P843)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym</ />" :subid("201_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "quote:sym</ />" :subid("201_1271336396.90314") :method :outer("11_1271336396.90314")
.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) = self."!cursor_start"()
- rx843_cur."!cursor_debug"("START ", "quote:sym</ />")
- .lex unicode:"$\x{a2}", rx843_cur
+ .local string rx846_tgt
+ .local int rx846_pos
+ .local int rx846_off
+ .local int rx846_eos
+ .local int rx846_rep
+ .local pmc rx846_cur
+ (rx846_cur, rx846_pos, rx846_tgt) = self."!cursor_start"()
+ rx846_cur."!cursor_debug"("START ", "quote:sym</ />")
+ .lex unicode:"$\x{a2}", rx846_cur
.local pmc match
.lex "$/", match
- length rx843_eos, rx843_tgt
- 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:
+ length rx846_eos, rx846_tgt
+ set rx846_off, 0
+ lt rx846_pos, 2, rx846_start
+ sub rx846_off, rx846_pos, 1
+ substr rx846_tgt, rx846_tgt, rx846_off
+ rx846_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan847_done
- goto rxscan847_scan
- rxscan847_loop:
- ($P10) = rx843_cur."from"()
+ ne $I10, -1, rxscan850_done
+ goto rxscan850_scan
+ rxscan850_loop:
+ ($P10) = rx846_cur."from"()
inc $P10
- set rx843_pos, $P10
- ge rx843_pos, rx843_eos, rxscan847_done
- rxscan847_scan:
- set_addr $I10, rxscan847_loop
- rx843_cur."!mark_push"(0, rx843_pos, $I10)
- rxscan847_done:
-.annotate "line", 396
+ set rx846_pos, $P10
+ ge rx846_pos, rx846_eos, rxscan850_done
+ rxscan850_scan:
+ set_addr $I10, rxscan850_loop
+ rx846_cur."!mark_push"(0, rx846_pos, $I10)
+ rxscan850_done:
+.annotate "line", 400
# rx literal "/"
- add $I11, rx843_pos, 1
- gt $I11, rx843_eos, rx843_fail
- sub $I11, rx843_pos, rx843_off
- substr $S10, rx843_tgt, $I11, 1
- ne $S10, "/", rx843_fail
- add rx843_pos, 1
-.annotate "line", 397
+ add $I11, rx846_pos, 1
+ gt $I11, rx846_eos, rx846_fail
+ sub $I11, rx846_pos, rx846_off
+ substr $S10, rx846_tgt, $I11, 1
+ ne $S10, "/", rx846_fail
+ add rx846_pos, 1
+.annotate "line", 401
# rx subrule "newpad" subtype=method negate=
- rx843_cur."!cursor_pos"(rx843_pos)
- $P10 = rx843_cur."newpad"()
- unless $P10, rx843_fail
- rx843_pos = $P10."pos"()
-.annotate "line", 398
+ rx846_cur."!cursor_pos"(rx846_pos)
+ $P10 = rx846_cur."newpad"()
+ unless $P10, rx846_fail
+ rx846_pos = $P10."pos"()
+.annotate "line", 402
# rx reduce name="quote:sym</ />" key="open"
- rx843_cur."!cursor_pos"(rx843_pos)
- rx843_cur."!reduce"("quote:sym</ />", "open")
-.annotate "line", 399
+ rx846_cur."!cursor_pos"(rx846_pos)
+ rx846_cur."!reduce"("quote:sym</ />", "open")
+.annotate "line", 403
# rx subrule "LANG" subtype=capture negate=
- rx843_cur."!cursor_pos"(rx843_pos)
- $P10 = rx843_cur."LANG"("Regex", "nibbler")
- unless $P10, rx843_fail
- rx843_cur."!mark_push"(0, -1, 0, $P10)
+ rx846_cur."!cursor_pos"(rx846_pos)
+ $P10 = rx846_cur."LANG"("Regex", "nibbler")
+ unless $P10, rx846_fail
+ rx846_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("p6regex")
- rx843_pos = $P10."pos"()
-.annotate "line", 400
+ rx846_pos = $P10."pos"()
+.annotate "line", 404
# rx literal "/"
- add $I11, rx843_pos, 1
- gt $I11, rx843_eos, rx843_fail
- sub $I11, rx843_pos, rx843_off
- substr $S10, rx843_tgt, $I11, 1
- ne $S10, "/", rx843_fail
- add rx843_pos, 1
-.annotate "line", 395
+ add $I11, rx846_pos, 1
+ gt $I11, rx846_eos, rx846_fail
+ sub $I11, rx846_pos, rx846_off
+ substr $S10, rx846_tgt, $I11, 1
+ ne $S10, "/", rx846_fail
+ add rx846_pos, 1
+.annotate "line", 399
# rx pass
- rx843_cur."!cursor_pass"(rx843_pos, "quote:sym</ />")
- rx843_cur."!cursor_debug"("PASS ", "quote:sym</ />", " at pos=", rx843_pos)
- .return (rx843_cur)
- rx843_fail:
+ rx846_cur."!cursor_pass"(rx846_pos, "quote:sym</ />")
+ rx846_cur."!cursor_debug"("PASS ", "quote:sym</ />", " at pos=", rx846_pos)
+ .return (rx846_cur)
+ rx846_fail:
.annotate "line", 4
- (rx843_rep, rx843_pos, $I10, $P10) = rx843_cur."!mark_fail"(0)
- lt rx843_pos, -1, rx843_done
- eq rx843_pos, -1, rx843_fail
+ (rx846_rep, rx846_pos, $I10, $P10) = rx846_cur."!mark_fail"(0)
+ lt rx846_pos, -1, rx846_done
+ eq rx846_pos, -1, rx846_fail
jump $I10
- rx843_done:
- rx843_cur."!cursor_fail"()
- rx843_cur."!cursor_debug"("FAIL ", "quote:sym</ />")
- .return (rx843_cur)
+ rx846_done:
+ rx846_cur."!cursor_fail"()
+ rx846_cur."!cursor_debug"("FAIL ", "quote:sym</ />")
+ .return (rx846_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym</ />" :subid("202_1267204702.05125") :method
+.sub "!PREFIX__quote:sym</ />" :subid("202_1271336396.90314") :method
.annotate "line", 4
- $P845 = self."!PREFIX__!subrule"("", "/")
- new $P846, "ResizablePMCArray"
- push $P846, $P845
- .return ($P846)
+ $P848 = self."!PREFIX__!subrule"("", "/")
+ new $P849, "ResizablePMCArray"
+ push $P849, $P848
+ .return ($P849)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<$>" :subid("203_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "quote_escape:sym<$>" :subid("203_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx849_tgt
- .local int rx849_pos
- .local int rx849_off
- .local int rx849_eos
- .local int rx849_rep
- .local pmc rx849_cur
- (rx849_cur, rx849_pos, rx849_tgt) = self."!cursor_start"()
- rx849_cur."!cursor_debug"("START ", "quote_escape:sym<$>")
- .lex unicode:"$\x{a2}", rx849_cur
+ .local string rx852_tgt
+ .local int rx852_pos
+ .local int rx852_off
+ .local int rx852_eos
+ .local int rx852_rep
+ .local pmc rx852_cur
+ (rx852_cur, rx852_pos, rx852_tgt) = self."!cursor_start"()
+ rx852_cur."!cursor_debug"("START ", "quote_escape:sym<$>")
+ .lex unicode:"$\x{a2}", rx852_cur
.local pmc match
.lex "$/", match
- length rx849_eos, rx849_tgt
- set rx849_off, 0
- lt rx849_pos, 2, rx849_start
- sub rx849_off, rx849_pos, 1
- substr rx849_tgt, rx849_tgt, rx849_off
- rx849_start:
+ length rx852_eos, rx852_tgt
+ set rx852_off, 0
+ lt rx852_pos, 2, rx852_start
+ sub rx852_off, rx852_pos, 1
+ substr rx852_tgt, rx852_tgt, rx852_off
+ rx852_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan852_done
- goto rxscan852_scan
- rxscan852_loop:
- ($P10) = rx849_cur."from"()
+ ne $I10, -1, rxscan855_done
+ goto rxscan855_scan
+ rxscan855_loop:
+ ($P10) = rx852_cur."from"()
inc $P10
- set rx849_pos, $P10
- ge rx849_pos, rx849_eos, rxscan852_done
- rxscan852_scan:
- set_addr $I10, rxscan852_loop
- rx849_cur."!mark_push"(0, rx849_pos, $I10)
- rxscan852_done:
-.annotate "line", 403
+ set rx852_pos, $P10
+ ge rx852_pos, rx852_eos, rxscan855_done
+ rxscan855_scan:
+ set_addr $I10, rxscan855_loop
+ rx852_cur."!mark_push"(0, rx852_pos, $I10)
+ rxscan855_done:
+.annotate "line", 407
# rx enumcharlist negate=0 zerowidth
- ge rx849_pos, rx849_eos, rx849_fail
- sub $I10, rx849_pos, rx849_off
- substr $S10, rx849_tgt, $I10, 1
+ ge rx852_pos, rx852_eos, rx852_fail
+ sub $I10, rx852_pos, rx852_off
+ substr $S10, rx852_tgt, $I10, 1
index $I11, "$", $S10
- lt $I11, 0, rx849_fail
+ lt $I11, 0, rx852_fail
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx849_cur."!cursor_pos"(rx849_pos)
- $P10 = rx849_cur."quotemod_check"("s")
- unless $P10, rx849_fail
+ rx852_cur."!cursor_pos"(rx852_pos)
+ $P10 = rx852_cur."quotemod_check"("s")
+ unless $P10, rx852_fail
# rx subrule "variable" subtype=capture negate=
- rx849_cur."!cursor_pos"(rx849_pos)
- $P10 = rx849_cur."variable"()
- unless $P10, rx849_fail
- rx849_cur."!mark_push"(0, -1, 0, $P10)
+ rx852_cur."!cursor_pos"(rx852_pos)
+ $P10 = rx852_cur."variable"()
+ unless $P10, rx852_fail
+ rx852_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("variable")
- rx849_pos = $P10."pos"()
+ rx852_pos = $P10."pos"()
# rx pass
- rx849_cur."!cursor_pass"(rx849_pos, "quote_escape:sym<$>")
- rx849_cur."!cursor_debug"("PASS ", "quote_escape:sym<$>", " at pos=", rx849_pos)
- .return (rx849_cur)
- rx849_fail:
+ rx852_cur."!cursor_pass"(rx852_pos, "quote_escape:sym<$>")
+ rx852_cur."!cursor_debug"("PASS ", "quote_escape:sym<$>", " at pos=", rx852_pos)
+ .return (rx852_cur)
+ rx852_fail:
.annotate "line", 4
- (rx849_rep, rx849_pos, $I10, $P10) = rx849_cur."!mark_fail"(0)
- lt rx849_pos, -1, rx849_done
- eq rx849_pos, -1, rx849_fail
+ (rx852_rep, rx852_pos, $I10, $P10) = rx852_cur."!mark_fail"(0)
+ lt rx852_pos, -1, rx852_done
+ eq rx852_pos, -1, rx852_fail
jump $I10
- rx849_done:
- rx849_cur."!cursor_fail"()
- rx849_cur."!cursor_debug"("FAIL ", "quote_escape:sym<$>")
- .return (rx849_cur)
+ rx852_done:
+ rx852_cur."!cursor_fail"()
+ rx852_cur."!cursor_debug"("FAIL ", "quote_escape:sym<$>")
+ .return (rx852_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<$>" :subid("204_1267204702.05125") :method
+.sub "!PREFIX__quote_escape:sym<$>" :subid("204_1271336396.90314") :method
.annotate "line", 4
- new $P851, "ResizablePMCArray"
- push $P851, "$"
- .return ($P851)
+ new $P854, "ResizablePMCArray"
+ push $P854, "$"
+ .return ($P854)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<{ }>" :subid("205_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "quote_escape:sym<{ }>" :subid("205_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx854_tgt
- .local int rx854_pos
- .local int rx854_off
- .local int rx854_eos
- .local int rx854_rep
- .local pmc rx854_cur
- (rx854_cur, rx854_pos, rx854_tgt) = self."!cursor_start"()
- rx854_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>")
- .lex unicode:"$\x{a2}", rx854_cur
+ .local string rx857_tgt
+ .local int rx857_pos
+ .local int rx857_off
+ .local int rx857_eos
+ .local int rx857_rep
+ .local pmc rx857_cur
+ (rx857_cur, rx857_pos, rx857_tgt) = self."!cursor_start"()
+ rx857_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>")
+ .lex unicode:"$\x{a2}", rx857_cur
.local pmc match
.lex "$/", match
- length rx854_eos, rx854_tgt
- set rx854_off, 0
- lt rx854_pos, 2, rx854_start
- sub rx854_off, rx854_pos, 1
- substr rx854_tgt, rx854_tgt, rx854_off
- rx854_start:
+ length rx857_eos, rx857_tgt
+ set rx857_off, 0
+ lt rx857_pos, 2, rx857_start
+ sub rx857_off, rx857_pos, 1
+ substr rx857_tgt, rx857_tgt, rx857_off
+ rx857_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan857_done
- goto rxscan857_scan
- rxscan857_loop:
- ($P10) = rx854_cur."from"()
+ ne $I10, -1, rxscan860_done
+ goto rxscan860_scan
+ rxscan860_loop:
+ ($P10) = rx857_cur."from"()
inc $P10
- set rx854_pos, $P10
- ge rx854_pos, rx854_eos, rxscan857_done
- rxscan857_scan:
- set_addr $I10, rxscan857_loop
- rx854_cur."!mark_push"(0, rx854_pos, $I10)
- rxscan857_done:
-.annotate "line", 404
+ set rx857_pos, $P10
+ ge rx857_pos, rx857_eos, rxscan860_done
+ rxscan860_scan:
+ set_addr $I10, rxscan860_loop
+ rx857_cur."!mark_push"(0, rx857_pos, $I10)
+ rxscan860_done:
+.annotate "line", 408
# rx enumcharlist negate=0 zerowidth
- ge rx854_pos, rx854_eos, rx854_fail
- sub $I10, rx854_pos, rx854_off
- substr $S10, rx854_tgt, $I10, 1
+ ge rx857_pos, rx857_eos, rx857_fail
+ sub $I10, rx857_pos, rx857_off
+ substr $S10, rx857_tgt, $I10, 1
index $I11, "{", $S10
- lt $I11, 0, rx854_fail
+ lt $I11, 0, rx857_fail
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx854_cur."!cursor_pos"(rx854_pos)
- $P10 = rx854_cur."quotemod_check"("c")
- unless $P10, rx854_fail
+ rx857_cur."!cursor_pos"(rx857_pos)
+ $P10 = rx857_cur."quotemod_check"("c")
+ unless $P10, rx857_fail
# rx subrule "block" subtype=capture negate=
- rx854_cur."!cursor_pos"(rx854_pos)
- $P10 = rx854_cur."block"()
- unless $P10, rx854_fail
- rx854_cur."!mark_push"(0, -1, 0, $P10)
+ rx857_cur."!cursor_pos"(rx857_pos)
+ $P10 = rx857_cur."block"()
+ unless $P10, rx857_fail
+ rx857_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("block")
- rx854_pos = $P10."pos"()
+ rx857_pos = $P10."pos"()
# rx pass
- rx854_cur."!cursor_pass"(rx854_pos, "quote_escape:sym<{ }>")
- rx854_cur."!cursor_debug"("PASS ", "quote_escape:sym<{ }>", " at pos=", rx854_pos)
- .return (rx854_cur)
- rx854_fail:
+ rx857_cur."!cursor_pass"(rx857_pos, "quote_escape:sym<{ }>")
+ rx857_cur."!cursor_debug"("PASS ", "quote_escape:sym<{ }>", " at pos=", rx857_pos)
+ .return (rx857_cur)
+ rx857_fail:
.annotate "line", 4
- (rx854_rep, rx854_pos, $I10, $P10) = rx854_cur."!mark_fail"(0)
- lt rx854_pos, -1, rx854_done
- eq rx854_pos, -1, rx854_fail
+ (rx857_rep, rx857_pos, $I10, $P10) = rx857_cur."!mark_fail"(0)
+ lt rx857_pos, -1, rx857_done
+ eq rx857_pos, -1, rx857_fail
jump $I10
- rx854_done:
- rx854_cur."!cursor_fail"()
- rx854_cur."!cursor_debug"("FAIL ", "quote_escape:sym<{ }>")
- .return (rx854_cur)
+ rx857_done:
+ rx857_cur."!cursor_fail"()
+ rx857_cur."!cursor_debug"("FAIL ", "quote_escape:sym<{ }>")
+ .return (rx857_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<{ }>" :subid("206_1267204702.05125") :method
+.sub "!PREFIX__quote_escape:sym<{ }>" :subid("206_1271336396.90314") :method
.annotate "line", 4
- new $P856, "ResizablePMCArray"
- push $P856, "{"
- .return ($P856)
+ new $P859, "ResizablePMCArray"
+ push $P859, "{"
+ .return ($P859)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<( )>" :subid("207_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "circumfix:sym<( )>" :subid("207_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx859_tgt
- .local int rx859_pos
- .local int rx859_off
- .local int rx859_eos
- .local int rx859_rep
- .local pmc rx859_cur
- (rx859_cur, rx859_pos, rx859_tgt) = self."!cursor_start"()
- rx859_cur."!cursor_debug"("START ", "circumfix:sym<( )>")
- rx859_cur."!cursor_caparray"("EXPR")
- .lex unicode:"$\x{a2}", rx859_cur
+ .local string rx862_tgt
+ .local int rx862_pos
+ .local int rx862_off
+ .local int rx862_eos
+ .local int rx862_rep
+ .local pmc rx862_cur
+ (rx862_cur, rx862_pos, rx862_tgt) = self."!cursor_start"()
+ rx862_cur."!cursor_debug"("START ", "circumfix:sym<( )>")
+ rx862_cur."!cursor_caparray"("EXPR")
+ .lex unicode:"$\x{a2}", rx862_cur
.local pmc match
.lex "$/", match
- length rx859_eos, rx859_tgt
- set rx859_off, 0
- lt rx859_pos, 2, rx859_start
- sub rx859_off, rx859_pos, 1
- substr rx859_tgt, rx859_tgt, rx859_off
- rx859_start:
+ length rx862_eos, rx862_tgt
+ set rx862_off, 0
+ lt rx862_pos, 2, rx862_start
+ sub rx862_off, rx862_pos, 1
+ substr rx862_tgt, rx862_tgt, rx862_off
+ rx862_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan863_done
- goto rxscan863_scan
- rxscan863_loop:
- ($P10) = rx859_cur."from"()
+ ne $I10, -1, rxscan866_done
+ goto rxscan866_scan
+ rxscan866_loop:
+ ($P10) = rx862_cur."from"()
inc $P10
- set rx859_pos, $P10
- ge rx859_pos, rx859_eos, rxscan863_done
- rxscan863_scan:
- set_addr $I10, rxscan863_loop
- rx859_cur."!mark_push"(0, rx859_pos, $I10)
- rxscan863_done:
-.annotate "line", 406
+ set rx862_pos, $P10
+ ge rx862_pos, rx862_eos, rxscan866_done
+ rxscan866_scan:
+ set_addr $I10, rxscan866_loop
+ rx862_cur."!mark_push"(0, rx862_pos, $I10)
+ rxscan866_done:
+.annotate "line", 410
# rx literal "("
- add $I11, rx859_pos, 1
- gt $I11, rx859_eos, rx859_fail
- sub $I11, rx859_pos, rx859_off
- substr $S10, rx859_tgt, $I11, 1
- ne $S10, "(", rx859_fail
- add rx859_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx859_cur."!cursor_pos"(rx859_pos)
- $P10 = rx859_cur."ws"()
- unless $P10, rx859_fail
- rx859_pos = $P10."pos"()
- # rx rxquantr864 ** 0..1
- set_addr $I865, rxquantr864_done
- rx859_cur."!mark_push"(0, rx859_pos, $I865)
- rxquantr864_loop:
+ add $I11, rx862_pos, 1
+ gt $I11, rx862_eos, rx862_fail
+ sub $I11, rx862_pos, rx862_off
+ substr $S10, rx862_tgt, $I11, 1
+ ne $S10, "(", rx862_fail
+ add rx862_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx862_cur."!cursor_pos"(rx862_pos)
+ $P10 = rx862_cur."ws"()
+ unless $P10, rx862_fail
+ rx862_pos = $P10."pos"()
+ # rx rxquantr867 ** 0..1
+ set_addr $I868, rxquantr867_done
+ rx862_cur."!mark_push"(0, rx862_pos, $I868)
+ rxquantr867_loop:
# rx subrule "EXPR" subtype=capture negate=
- rx859_cur."!cursor_pos"(rx859_pos)
- $P10 = rx859_cur."EXPR"()
- unless $P10, rx859_fail
- rx859_cur."!mark_push"(0, -1, 0, $P10)
+ rx862_cur."!cursor_pos"(rx862_pos)
+ $P10 = rx862_cur."EXPR"()
+ unless $P10, rx862_fail
+ rx862_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx859_pos = $P10."pos"()
- (rx859_rep) = rx859_cur."!mark_commit"($I865)
- rxquantr864_done:
+ rx862_pos = $P10."pos"()
+ (rx862_rep) = rx862_cur."!mark_commit"($I868)
+ rxquantr867_done:
# rx literal ")"
- add $I11, rx859_pos, 1
- gt $I11, rx859_eos, rx859_fail
- sub $I11, rx859_pos, rx859_off
- substr $S10, rx859_tgt, $I11, 1
- ne $S10, ")", rx859_fail
- add rx859_pos, 1
+ add $I11, rx862_pos, 1
+ gt $I11, rx862_eos, rx862_fail
+ sub $I11, rx862_pos, rx862_off
+ substr $S10, rx862_tgt, $I11, 1
+ ne $S10, ")", rx862_fail
+ add rx862_pos, 1
# rx pass
- rx859_cur."!cursor_pass"(rx859_pos, "circumfix:sym<( )>")
- rx859_cur."!cursor_debug"("PASS ", "circumfix:sym<( )>", " at pos=", rx859_pos)
- .return (rx859_cur)
- rx859_fail:
+ rx862_cur."!cursor_pass"(rx862_pos, "circumfix:sym<( )>")
+ rx862_cur."!cursor_debug"("PASS ", "circumfix:sym<( )>", " at pos=", rx862_pos)
+ .return (rx862_cur)
+ rx862_fail:
.annotate "line", 4
- (rx859_rep, rx859_pos, $I10, $P10) = rx859_cur."!mark_fail"(0)
- lt rx859_pos, -1, rx859_done
- eq rx859_pos, -1, rx859_fail
+ (rx862_rep, rx862_pos, $I10, $P10) = rx862_cur."!mark_fail"(0)
+ lt rx862_pos, -1, rx862_done
+ eq rx862_pos, -1, rx862_fail
jump $I10
- rx859_done:
- rx859_cur."!cursor_fail"()
- rx859_cur."!cursor_debug"("FAIL ", "circumfix:sym<( )>")
- .return (rx859_cur)
+ rx862_done:
+ rx862_cur."!cursor_fail"()
+ rx862_cur."!cursor_debug"("FAIL ", "circumfix:sym<( )>")
+ .return (rx862_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<( )>" :subid("208_1267204702.05125") :method
+.sub "!PREFIX__circumfix:sym<( )>" :subid("208_1271336396.90314") :method
.annotate "line", 4
- $P861 = self."!PREFIX__!subrule"("", "(")
- new $P862, "ResizablePMCArray"
- push $P862, $P861
- .return ($P862)
+ $P864 = self."!PREFIX__!subrule"("", "(")
+ new $P865, "ResizablePMCArray"
+ push $P865, $P864
+ .return ($P865)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<[ ]>" :subid("209_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "circumfix:sym<[ ]>" :subid("209_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx867_tgt
- .local int rx867_pos
- .local int rx867_off
- .local int rx867_eos
- .local int rx867_rep
- .local pmc rx867_cur
- (rx867_cur, rx867_pos, rx867_tgt) = self."!cursor_start"()
- rx867_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>")
- rx867_cur."!cursor_caparray"("EXPR")
- .lex unicode:"$\x{a2}", rx867_cur
+ .local string rx870_tgt
+ .local int rx870_pos
+ .local int rx870_off
+ .local int rx870_eos
+ .local int rx870_rep
+ .local pmc rx870_cur
+ (rx870_cur, rx870_pos, rx870_tgt) = self."!cursor_start"()
+ rx870_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>")
+ rx870_cur."!cursor_caparray"("EXPR")
+ .lex unicode:"$\x{a2}", rx870_cur
.local pmc match
.lex "$/", match
- length rx867_eos, rx867_tgt
- set rx867_off, 0
- lt rx867_pos, 2, rx867_start
- sub rx867_off, rx867_pos, 1
- substr rx867_tgt, rx867_tgt, rx867_off
- rx867_start:
+ length rx870_eos, rx870_tgt
+ set rx870_off, 0
+ lt rx870_pos, 2, rx870_start
+ sub rx870_off, rx870_pos, 1
+ substr rx870_tgt, rx870_tgt, rx870_off
+ rx870_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan871_done
- goto rxscan871_scan
- rxscan871_loop:
- ($P10) = rx867_cur."from"()
+ ne $I10, -1, rxscan874_done
+ goto rxscan874_scan
+ rxscan874_loop:
+ ($P10) = rx870_cur."from"()
inc $P10
- set rx867_pos, $P10
- ge rx867_pos, rx867_eos, rxscan871_done
- rxscan871_scan:
- set_addr $I10, rxscan871_loop
- rx867_cur."!mark_push"(0, rx867_pos, $I10)
- rxscan871_done:
-.annotate "line", 407
+ set rx870_pos, $P10
+ ge rx870_pos, rx870_eos, rxscan874_done
+ rxscan874_scan:
+ set_addr $I10, rxscan874_loop
+ rx870_cur."!mark_push"(0, rx870_pos, $I10)
+ rxscan874_done:
+.annotate "line", 411
# rx literal "["
- add $I11, rx867_pos, 1
- gt $I11, rx867_eos, rx867_fail
- sub $I11, rx867_pos, rx867_off
- substr $S10, rx867_tgt, $I11, 1
- ne $S10, "[", rx867_fail
- add rx867_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx867_cur."!cursor_pos"(rx867_pos)
- $P10 = rx867_cur."ws"()
- unless $P10, rx867_fail
- rx867_pos = $P10."pos"()
- # rx rxquantr872 ** 0..1
- set_addr $I873, rxquantr872_done
- rx867_cur."!mark_push"(0, rx867_pos, $I873)
- rxquantr872_loop:
+ add $I11, rx870_pos, 1
+ gt $I11, rx870_eos, rx870_fail
+ sub $I11, rx870_pos, rx870_off
+ substr $S10, rx870_tgt, $I11, 1
+ ne $S10, "[", rx870_fail
+ add rx870_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx870_cur."!cursor_pos"(rx870_pos)
+ $P10 = rx870_cur."ws"()
+ unless $P10, rx870_fail
+ rx870_pos = $P10."pos"()
+ # rx rxquantr875 ** 0..1
+ set_addr $I876, rxquantr875_done
+ rx870_cur."!mark_push"(0, rx870_pos, $I876)
+ rxquantr875_loop:
# rx subrule "EXPR" subtype=capture negate=
- rx867_cur."!cursor_pos"(rx867_pos)
- $P10 = rx867_cur."EXPR"()
- unless $P10, rx867_fail
- rx867_cur."!mark_push"(0, -1, 0, $P10)
+ rx870_cur."!cursor_pos"(rx870_pos)
+ $P10 = rx870_cur."EXPR"()
+ unless $P10, rx870_fail
+ rx870_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx867_pos = $P10."pos"()
- (rx867_rep) = rx867_cur."!mark_commit"($I873)
- rxquantr872_done:
+ rx870_pos = $P10."pos"()
+ (rx870_rep) = rx870_cur."!mark_commit"($I876)
+ rxquantr875_done:
# rx literal "]"
- add $I11, rx867_pos, 1
- gt $I11, rx867_eos, rx867_fail
- sub $I11, rx867_pos, rx867_off
- substr $S10, rx867_tgt, $I11, 1
- ne $S10, "]", rx867_fail
- add rx867_pos, 1
+ add $I11, rx870_pos, 1
+ gt $I11, rx870_eos, rx870_fail
+ sub $I11, rx870_pos, rx870_off
+ substr $S10, rx870_tgt, $I11, 1
+ ne $S10, "]", rx870_fail
+ add rx870_pos, 1
# rx pass
- rx867_cur."!cursor_pass"(rx867_pos, "circumfix:sym<[ ]>")
- rx867_cur."!cursor_debug"("PASS ", "circumfix:sym<[ ]>", " at pos=", rx867_pos)
- .return (rx867_cur)
- rx867_fail:
+ rx870_cur."!cursor_pass"(rx870_pos, "circumfix:sym<[ ]>")
+ rx870_cur."!cursor_debug"("PASS ", "circumfix:sym<[ ]>", " at pos=", rx870_pos)
+ .return (rx870_cur)
+ rx870_fail:
.annotate "line", 4
- (rx867_rep, rx867_pos, $I10, $P10) = rx867_cur."!mark_fail"(0)
- lt rx867_pos, -1, rx867_done
- eq rx867_pos, -1, rx867_fail
+ (rx870_rep, rx870_pos, $I10, $P10) = rx870_cur."!mark_fail"(0)
+ lt rx870_pos, -1, rx870_done
+ eq rx870_pos, -1, rx870_fail
jump $I10
- rx867_done:
- rx867_cur."!cursor_fail"()
- rx867_cur."!cursor_debug"("FAIL ", "circumfix:sym<[ ]>")
- .return (rx867_cur)
+ rx870_done:
+ rx870_cur."!cursor_fail"()
+ rx870_cur."!cursor_debug"("FAIL ", "circumfix:sym<[ ]>")
+ .return (rx870_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<[ ]>" :subid("210_1267204702.05125") :method
+.sub "!PREFIX__circumfix:sym<[ ]>" :subid("210_1271336396.90314") :method
.annotate "line", 4
- $P869 = self."!PREFIX__!subrule"("", "[")
- new $P870, "ResizablePMCArray"
- push $P870, $P869
- .return ($P870)
+ $P872 = self."!PREFIX__!subrule"("", "[")
+ new $P873, "ResizablePMCArray"
+ push $P873, $P872
+ .return ($P873)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<ang>" :subid("211_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "circumfix:sym<ang>" :subid("211_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx875_tgt
- .local int rx875_pos
- .local int rx875_off
- .local int rx875_eos
- .local int rx875_rep
- .local pmc rx875_cur
- (rx875_cur, rx875_pos, rx875_tgt) = self."!cursor_start"()
- rx875_cur."!cursor_debug"("START ", "circumfix:sym<ang>")
- .lex unicode:"$\x{a2}", rx875_cur
- .local pmc match
- .lex "$/", match
- length rx875_eos, rx875_tgt
- set rx875_off, 0
- lt rx875_pos, 2, rx875_start
- sub rx875_off, rx875_pos, 1
- substr rx875_tgt, rx875_tgt, rx875_off
- rx875_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan878_done
- goto rxscan878_scan
- rxscan878_loop:
- ($P10) = rx875_cur."from"()
- inc $P10
- set rx875_pos, $P10
- ge rx875_pos, rx875_eos, rxscan878_done
- rxscan878_scan:
- set_addr $I10, rxscan878_loop
- rx875_cur."!mark_push"(0, rx875_pos, $I10)
- rxscan878_done:
-.annotate "line", 408
+ .local string rx878_tgt
+ .local int rx878_pos
+ .local int rx878_off
+ .local int rx878_eos
+ .local int rx878_rep
+ .local pmc rx878_cur
+ (rx878_cur, rx878_pos, rx878_tgt) = self."!cursor_start"()
+ rx878_cur."!cursor_debug"("START ", "circumfix:sym<ang>")
+ .lex unicode:"$\x{a2}", rx878_cur
+ .local pmc match
+ .lex "$/", match
+ length rx878_eos, rx878_tgt
+ set rx878_off, 0
+ lt rx878_pos, 2, rx878_start
+ sub rx878_off, rx878_pos, 1
+ substr rx878_tgt, rx878_tgt, rx878_off
+ rx878_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan881_done
+ goto rxscan881_scan
+ rxscan881_loop:
+ ($P10) = rx878_cur."from"()
+ inc $P10
+ set rx878_pos, $P10
+ ge rx878_pos, rx878_eos, rxscan881_done
+ rxscan881_scan:
+ set_addr $I10, rxscan881_loop
+ rx878_cur."!mark_push"(0, rx878_pos, $I10)
+ rxscan881_done:
+.annotate "line", 412
# rx enumcharlist negate=0 zerowidth
- ge rx875_pos, rx875_eos, rx875_fail
- sub $I10, rx875_pos, rx875_off
- substr $S10, rx875_tgt, $I10, 1
+ ge rx878_pos, rx878_eos, rx878_fail
+ sub $I10, rx878_pos, rx878_off
+ substr $S10, rx878_tgt, $I10, 1
index $I11, "<", $S10
- lt $I11, 0, rx875_fail
+ lt $I11, 0, rx878_fail
# rx subrule "quote_EXPR" subtype=capture negate=
- rx875_cur."!cursor_pos"(rx875_pos)
- $P10 = rx875_cur."quote_EXPR"(":q", ":w")
- unless $P10, rx875_fail
- rx875_cur."!mark_push"(0, -1, 0, $P10)
+ rx878_cur."!cursor_pos"(rx878_pos)
+ $P10 = rx878_cur."quote_EXPR"(":q", ":w")
+ unless $P10, rx878_fail
+ rx878_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx875_pos = $P10."pos"()
+ rx878_pos = $P10."pos"()
# rx pass
- rx875_cur."!cursor_pass"(rx875_pos, "circumfix:sym<ang>")
- rx875_cur."!cursor_debug"("PASS ", "circumfix:sym<ang>", " at pos=", rx875_pos)
- .return (rx875_cur)
- rx875_fail:
+ rx878_cur."!cursor_pass"(rx878_pos, "circumfix:sym<ang>")
+ rx878_cur."!cursor_debug"("PASS ", "circumfix:sym<ang>", " at pos=", rx878_pos)
+ .return (rx878_cur)
+ rx878_fail:
.annotate "line", 4
- (rx875_rep, rx875_pos, $I10, $P10) = rx875_cur."!mark_fail"(0)
- lt rx875_pos, -1, rx875_done
- eq rx875_pos, -1, rx875_fail
+ (rx878_rep, rx878_pos, $I10, $P10) = rx878_cur."!mark_fail"(0)
+ lt rx878_pos, -1, rx878_done
+ eq rx878_pos, -1, rx878_fail
jump $I10
- rx875_done:
- rx875_cur."!cursor_fail"()
- rx875_cur."!cursor_debug"("FAIL ", "circumfix:sym<ang>")
- .return (rx875_cur)
+ rx878_done:
+ rx878_cur."!cursor_fail"()
+ rx878_cur."!cursor_debug"("FAIL ", "circumfix:sym<ang>")
+ .return (rx878_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<ang>" :subid("212_1267204702.05125") :method
+.sub "!PREFIX__circumfix:sym<ang>" :subid("212_1271336396.90314") :method
.annotate "line", 4
- new $P877, "ResizablePMCArray"
- push $P877, "<"
- .return ($P877)
+ new $P880, "ResizablePMCArray"
+ push $P880, "<"
+ .return ($P880)
.end
.namespace ["NQP";"Grammar"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("213_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("213_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx880_tgt
- .local int rx880_pos
- .local int rx880_off
- .local int rx880_eos
- .local int rx880_rep
- .local pmc rx880_cur
- (rx880_cur, rx880_pos, rx880_tgt) = self."!cursor_start"()
- rx880_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
- .lex unicode:"$\x{a2}", rx880_cur
+ .local string rx883_tgt
+ .local int rx883_pos
+ .local int rx883_off
+ .local int rx883_eos
+ .local int rx883_rep
+ .local pmc rx883_cur
+ (rx883_cur, rx883_pos, rx883_tgt) = self."!cursor_start"()
+ rx883_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+ .lex unicode:"$\x{a2}", rx883_cur
.local pmc match
.lex "$/", match
- length rx880_eos, rx880_tgt
- set rx880_off, 0
- lt rx880_pos, 2, rx880_start
- sub rx880_off, rx880_pos, 1
- substr rx880_tgt, rx880_tgt, rx880_off
- rx880_start:
+ length rx883_eos, rx883_tgt
+ set rx883_off, 0
+ lt rx883_pos, 2, rx883_start
+ sub rx883_off, rx883_pos, 1
+ substr rx883_tgt, rx883_tgt, rx883_off
+ rx883_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan883_done
- goto rxscan883_scan
- rxscan883_loop:
- ($P10) = rx880_cur."from"()
+ ne $I10, -1, rxscan886_done
+ goto rxscan886_scan
+ rxscan886_loop:
+ ($P10) = rx883_cur."from"()
inc $P10
- set rx880_pos, $P10
- ge rx880_pos, rx880_eos, rxscan883_done
- rxscan883_scan:
- set_addr $I10, rxscan883_loop
- rx880_cur."!mark_push"(0, rx880_pos, $I10)
- rxscan883_done:
-.annotate "line", 409
+ set rx883_pos, $P10
+ ge rx883_pos, rx883_eos, rxscan886_done
+ rxscan886_scan:
+ set_addr $I10, rxscan886_loop
+ rx883_cur."!mark_push"(0, rx883_pos, $I10)
+ rxscan886_done:
+.annotate "line", 413
# rx enumcharlist negate=0 zerowidth
- ge rx880_pos, rx880_eos, rx880_fail
- sub $I10, rx880_pos, rx880_off
- substr $S10, rx880_tgt, $I10, 1
+ ge rx883_pos, rx883_eos, rx883_fail
+ sub $I10, rx883_pos, rx883_off
+ substr $S10, rx883_tgt, $I10, 1
index $I11, unicode:"\x{ab}", $S10
- lt $I11, 0, rx880_fail
+ lt $I11, 0, rx883_fail
# rx subrule "quote_EXPR" subtype=capture negate=
- rx880_cur."!cursor_pos"(rx880_pos)
- $P10 = rx880_cur."quote_EXPR"(":qq", ":w")
- unless $P10, rx880_fail
- rx880_cur."!mark_push"(0, -1, 0, $P10)
+ rx883_cur."!cursor_pos"(rx883_pos)
+ $P10 = rx883_cur."quote_EXPR"(":qq", ":w")
+ unless $P10, rx883_fail
+ rx883_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx880_pos = $P10."pos"()
+ rx883_pos = $P10."pos"()
# rx pass
- rx880_cur."!cursor_pass"(rx880_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
- rx880_cur."!cursor_debug"("PASS ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx880_pos)
- .return (rx880_cur)
- rx880_fail:
+ rx883_cur."!cursor_pass"(rx883_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
+ rx883_cur."!cursor_debug"("PASS ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx883_pos)
+ .return (rx883_cur)
+ rx883_fail:
.annotate "line", 4
- (rx880_rep, rx880_pos, $I10, $P10) = rx880_cur."!mark_fail"(0)
- lt rx880_pos, -1, rx880_done
- eq rx880_pos, -1, rx880_fail
+ (rx883_rep, rx883_pos, $I10, $P10) = rx883_cur."!mark_fail"(0)
+ lt rx883_pos, -1, rx883_done
+ eq rx883_pos, -1, rx883_fail
jump $I10
- rx880_done:
- rx880_cur."!cursor_fail"()
- rx880_cur."!cursor_debug"("FAIL ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
- .return (rx880_cur)
+ rx883_done:
+ rx883_cur."!cursor_fail"()
+ rx883_cur."!cursor_debug"("FAIL ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+ .return (rx883_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>" :subid("214_1267204702.05125") :method
+.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>" :subid("214_1271336396.90314") :method
.annotate "line", 4
- new $P882, "ResizablePMCArray"
- push $P882, unicode:"\x{ab}"
- .return ($P882)
+ new $P885, "ResizablePMCArray"
+ push $P885, unicode:"\x{ab}"
+ .return ($P885)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<{ }>" :subid("215_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "circumfix:sym<{ }>" :subid("215_1271336396.90314") :method :outer("11_1271336396.90314")
.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 ", "circumfix:sym<{ }>")
- .lex unicode:"$\x{a2}", rx885_cur
+ .local string rx888_tgt
+ .local int rx888_pos
+ .local int rx888_off
+ .local int rx888_eos
+ .local int rx888_rep
+ .local pmc rx888_cur
+ (rx888_cur, rx888_pos, rx888_tgt) = self."!cursor_start"()
+ rx888_cur."!cursor_debug"("START ", "circumfix:sym<{ }>")
+ .lex unicode:"$\x{a2}", rx888_cur
.local pmc match
.lex "$/", match
- length rx885_eos, rx885_tgt
- set rx885_off, 0
- lt rx885_pos, 2, rx885_start
- sub rx885_off, rx885_pos, 1
- substr rx885_tgt, rx885_tgt, rx885_off
- rx885_start:
+ length rx888_eos, rx888_tgt
+ set rx888_off, 0
+ lt rx888_pos, 2, rx888_start
+ sub rx888_off, rx888_pos, 1
+ substr rx888_tgt, rx888_tgt, rx888_off
+ rx888_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan888_done
- goto rxscan888_scan
- rxscan888_loop:
- ($P10) = rx885_cur."from"()
+ ne $I10, -1, rxscan891_done
+ goto rxscan891_scan
+ rxscan891_loop:
+ ($P10) = rx888_cur."from"()
inc $P10
- set rx885_pos, $P10
- ge rx885_pos, rx885_eos, rxscan888_done
- rxscan888_scan:
- set_addr $I10, rxscan888_loop
- rx885_cur."!mark_push"(0, rx885_pos, $I10)
- rxscan888_done:
-.annotate "line", 410
+ set rx888_pos, $P10
+ ge rx888_pos, rx888_eos, rxscan891_done
+ rxscan891_scan:
+ set_addr $I10, rxscan891_loop
+ rx888_cur."!mark_push"(0, rx888_pos, $I10)
+ rxscan891_done:
+.annotate "line", 414
# rx enumcharlist negate=0 zerowidth
- ge rx885_pos, rx885_eos, rx885_fail
- sub $I10, rx885_pos, rx885_off
- substr $S10, rx885_tgt, $I10, 1
+ ge rx888_pos, rx888_eos, rx888_fail
+ sub $I10, rx888_pos, rx888_off
+ substr $S10, rx888_tgt, $I10, 1
index $I11, "{", $S10
- lt $I11, 0, rx885_fail
+ lt $I11, 0, rx888_fail
# rx subrule "pblock" subtype=capture negate=
- rx885_cur."!cursor_pos"(rx885_pos)
- $P10 = rx885_cur."pblock"()
- unless $P10, rx885_fail
- rx885_cur."!mark_push"(0, -1, 0, $P10)
+ rx888_cur."!cursor_pos"(rx888_pos)
+ $P10 = rx888_cur."pblock"()
+ unless $P10, rx888_fail
+ rx888_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("pblock")
- rx885_pos = $P10."pos"()
+ rx888_pos = $P10."pos"()
# rx pass
- rx885_cur."!cursor_pass"(rx885_pos, "circumfix:sym<{ }>")
- rx885_cur."!cursor_debug"("PASS ", "circumfix:sym<{ }>", " at pos=", rx885_pos)
- .return (rx885_cur)
- rx885_fail:
+ rx888_cur."!cursor_pass"(rx888_pos, "circumfix:sym<{ }>")
+ rx888_cur."!cursor_debug"("PASS ", "circumfix:sym<{ }>", " at pos=", rx888_pos)
+ .return (rx888_cur)
+ rx888_fail:
.annotate "line", 4
- (rx885_rep, rx885_pos, $I10, $P10) = rx885_cur."!mark_fail"(0)
- lt rx885_pos, -1, rx885_done
- eq rx885_pos, -1, rx885_fail
+ (rx888_rep, rx888_pos, $I10, $P10) = rx888_cur."!mark_fail"(0)
+ lt rx888_pos, -1, rx888_done
+ eq rx888_pos, -1, rx888_fail
jump $I10
- rx885_done:
- rx885_cur."!cursor_fail"()
- rx885_cur."!cursor_debug"("FAIL ", "circumfix:sym<{ }>")
- .return (rx885_cur)
+ rx888_done:
+ rx888_cur."!cursor_fail"()
+ rx888_cur."!cursor_debug"("FAIL ", "circumfix:sym<{ }>")
+ .return (rx888_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<{ }>" :subid("216_1267204702.05125") :method
+.sub "!PREFIX__circumfix:sym<{ }>" :subid("216_1271336396.90314") :method
.annotate "line", 4
- new $P887, "ResizablePMCArray"
- push $P887, "{"
- .return ($P887)
+ new $P890, "ResizablePMCArray"
+ push $P890, "{"
+ .return ($P890)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<sigil>" :subid("217_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "circumfix:sym<sigil>" :subid("217_1271336396.90314") :method :outer("11_1271336396.90314")
.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 ", "circumfix:sym<sigil>")
- .lex unicode:"$\x{a2}", rx890_cur
+ .local string rx893_tgt
+ .local int rx893_pos
+ .local int rx893_off
+ .local int rx893_eos
+ .local int rx893_rep
+ .local pmc rx893_cur
+ (rx893_cur, rx893_pos, rx893_tgt) = self."!cursor_start"()
+ rx893_cur."!cursor_debug"("START ", "circumfix:sym<sigil>")
+ .lex unicode:"$\x{a2}", rx893_cur
.local pmc match
.lex "$/", match
- length rx890_eos, rx890_tgt
- set rx890_off, 0
- lt rx890_pos, 2, rx890_start
- sub rx890_off, rx890_pos, 1
- substr rx890_tgt, rx890_tgt, rx890_off
- rx890_start:
+ length rx893_eos, rx893_tgt
+ set rx893_off, 0
+ lt rx893_pos, 2, rx893_start
+ sub rx893_off, rx893_pos, 1
+ substr rx893_tgt, rx893_tgt, rx893_off
+ rx893_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan894_done
- goto rxscan894_scan
- rxscan894_loop:
- ($P10) = rx890_cur."from"()
+ ne $I10, -1, rxscan897_done
+ goto rxscan897_scan
+ rxscan897_loop:
+ ($P10) = rx893_cur."from"()
inc $P10
- set rx890_pos, $P10
- ge rx890_pos, rx890_eos, rxscan894_done
- rxscan894_scan:
- set_addr $I10, rxscan894_loop
- rx890_cur."!mark_push"(0, rx890_pos, $I10)
- rxscan894_done:
-.annotate "line", 411
+ set rx893_pos, $P10
+ ge rx893_pos, rx893_eos, rxscan897_done
+ rxscan897_scan:
+ set_addr $I10, rxscan897_loop
+ rx893_cur."!mark_push"(0, rx893_pos, $I10)
+ rxscan897_done:
+.annotate "line", 415
# rx subrule "sigil" subtype=capture negate=
- rx890_cur."!cursor_pos"(rx890_pos)
- $P10 = rx890_cur."sigil"()
- unless $P10, rx890_fail
- rx890_cur."!mark_push"(0, -1, 0, $P10)
+ rx893_cur."!cursor_pos"(rx893_pos)
+ $P10 = rx893_cur."sigil"()
+ unless $P10, rx893_fail
+ rx893_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sigil")
- rx890_pos = $P10."pos"()
+ rx893_pos = $P10."pos"()
# rx literal "("
- add $I11, rx890_pos, 1
- gt $I11, rx890_eos, rx890_fail
- sub $I11, rx890_pos, rx890_off
- substr $S10, rx890_tgt, $I11, 1
- ne $S10, "(", rx890_fail
- add rx890_pos, 1
+ add $I11, rx893_pos, 1
+ gt $I11, rx893_eos, rx893_fail
+ sub $I11, rx893_pos, rx893_off
+ substr $S10, rx893_tgt, $I11, 1
+ ne $S10, "(", rx893_fail
+ add rx893_pos, 1
# rx subrule "semilist" subtype=capture negate=
- rx890_cur."!cursor_pos"(rx890_pos)
- $P10 = rx890_cur."semilist"()
- unless $P10, rx890_fail
- rx890_cur."!mark_push"(0, -1, 0, $P10)
+ rx893_cur."!cursor_pos"(rx893_pos)
+ $P10 = rx893_cur."semilist"()
+ unless $P10, rx893_fail
+ rx893_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("semilist")
- rx890_pos = $P10."pos"()
- alt895_0:
- set_addr $I10, alt895_1
- rx890_cur."!mark_push"(0, rx890_pos, $I10)
+ rx893_pos = $P10."pos"()
+ alt898_0:
+ set_addr $I10, alt898_1
+ rx893_cur."!mark_push"(0, rx893_pos, $I10)
# rx literal ")"
- add $I11, rx890_pos, 1
- gt $I11, rx890_eos, rx890_fail
- sub $I11, rx890_pos, rx890_off
- substr $S10, rx890_tgt, $I11, 1
- ne $S10, ")", rx890_fail
- add rx890_pos, 1
- goto alt895_end
- alt895_1:
+ add $I11, rx893_pos, 1
+ gt $I11, rx893_eos, rx893_fail
+ sub $I11, rx893_pos, rx893_off
+ substr $S10, rx893_tgt, $I11, 1
+ ne $S10, ")", rx893_fail
+ add rx893_pos, 1
+ goto alt898_end
+ alt898_1:
# rx subrule "FAILGOAL" subtype=method negate=
- rx890_cur."!cursor_pos"(rx890_pos)
- $P10 = rx890_cur."FAILGOAL"("')'")
- unless $P10, rx890_fail
- rx890_pos = $P10."pos"()
- alt895_end:
+ rx893_cur."!cursor_pos"(rx893_pos)
+ $P10 = rx893_cur."FAILGOAL"("')'")
+ unless $P10, rx893_fail
+ rx893_pos = $P10."pos"()
+ alt898_end:
# rx pass
- rx890_cur."!cursor_pass"(rx890_pos, "circumfix:sym<sigil>")
- rx890_cur."!cursor_debug"("PASS ", "circumfix:sym<sigil>", " at pos=", rx890_pos)
- .return (rx890_cur)
- rx890_fail:
+ rx893_cur."!cursor_pass"(rx893_pos, "circumfix:sym<sigil>")
+ rx893_cur."!cursor_debug"("PASS ", "circumfix:sym<sigil>", " at pos=", rx893_pos)
+ .return (rx893_cur)
+ rx893_fail:
.annotate "line", 4
- (rx890_rep, rx890_pos, $I10, $P10) = rx890_cur."!mark_fail"(0)
- lt rx890_pos, -1, rx890_done
- eq rx890_pos, -1, rx890_fail
+ (rx893_rep, rx893_pos, $I10, $P10) = rx893_cur."!mark_fail"(0)
+ lt rx893_pos, -1, rx893_done
+ eq rx893_pos, -1, rx893_fail
jump $I10
- rx890_done:
- rx890_cur."!cursor_fail"()
- rx890_cur."!cursor_debug"("FAIL ", "circumfix:sym<sigil>")
- .return (rx890_cur)
+ rx893_done:
+ rx893_cur."!cursor_fail"()
+ rx893_cur."!cursor_debug"("FAIL ", "circumfix:sym<sigil>")
+ .return (rx893_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<sigil>" :subid("218_1267204702.05125") :method
+.sub "!PREFIX__circumfix:sym<sigil>" :subid("218_1271336396.90314") :method
.annotate "line", 4
- $P892 = self."!PREFIX__!subrule"("sigil", "")
- new $P893, "ResizablePMCArray"
- push $P893, $P892
- .return ($P893)
+ $P895 = self."!PREFIX__!subrule"("sigil", "")
+ new $P896, "ResizablePMCArray"
+ push $P896, $P895
+ .return ($P896)
.end
.namespace ["NQP";"Grammar"]
-.sub "semilist" :subid("219_1267204702.05125") :method :outer("11_1267204702.05125")
+.sub "semilist" :subid("219_1271336396.90314") :method :outer("11_1271336396.90314")
.annotate "line", 4
- .local string rx898_tgt
- .local int rx898_pos
- .local int rx898_off
- .local int rx898_eos
- .local int rx898_rep
- .local pmc rx898_cur
- (rx898_cur, rx898_pos, rx898_tgt) = self."!cursor_start"()
- rx898_cur."!cursor_debug"("START ", "semilist")
- .lex unicode:"$\x{a2}", rx898_cur
+ .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 ", "semilist")
+ .lex unicode:"$\x{a2}", rx901_cur
.local pmc match
.lex "$/", match
- length rx898_eos, rx898_tgt
- set rx898_off, 0
- lt rx898_pos, 2, rx898_start
- sub rx898_off, rx898_pos, 1
- substr rx898_tgt, rx898_tgt, rx898_off
- rx898_start:
+ length rx901_eos, rx901_tgt
+ set rx901_off, 0
+ lt rx901_pos, 2, rx901_start
+ sub rx901_off, rx901_pos, 1
+ substr rx901_tgt, rx901_tgt, rx901_off
+ rx901_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan901_done
- goto rxscan901_scan
- rxscan901_loop:
- ($P10) = rx898_cur."from"()
+ ne $I10, -1, rxscan904_done
+ goto rxscan904_scan
+ rxscan904_loop:
+ ($P10) = rx901_cur."from"()
inc $P10
- set rx898_pos, $P10
- ge rx898_pos, rx898_eos, rxscan901_done
- rxscan901_scan:
- set_addr $I10, rxscan901_loop
- rx898_cur."!mark_push"(0, rx898_pos, $I10)
- rxscan901_done:
-.annotate "line", 413
+ set rx901_pos, $P10
+ ge rx901_pos, rx901_eos, rxscan904_done
+ rxscan904_scan:
+ set_addr $I10, rxscan904_loop
+ rx901_cur."!mark_push"(0, rx901_pos, $I10)
+ rxscan904_done:
+.annotate "line", 417
# rx subrule "ws" subtype=method negate=
- rx898_cur."!cursor_pos"(rx898_pos)
- $P10 = rx898_cur."ws"()
- unless $P10, rx898_fail
- rx898_pos = $P10."pos"()
+ rx901_cur."!cursor_pos"(rx901_pos)
+ $P10 = rx901_cur."ws"()
+ unless $P10, rx901_fail
+ rx901_pos = $P10."pos"()
# rx subrule "statement" subtype=capture negate=
- rx898_cur."!cursor_pos"(rx898_pos)
- $P10 = rx898_cur."statement"()
- unless $P10, rx898_fail
- rx898_cur."!mark_push"(0, -1, 0, $P10)
+ rx901_cur."!cursor_pos"(rx901_pos)
+ $P10 = rx901_cur."statement"()
+ unless $P10, rx901_fail
+ rx901_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement")
- rx898_pos = $P10."pos"()
+ rx901_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx898_cur."!cursor_pos"(rx898_pos)
- $P10 = rx898_cur."ws"()
- unless $P10, rx898_fail
- rx898_pos = $P10."pos"()
+ rx901_cur."!cursor_pos"(rx901_pos)
+ $P10 = rx901_cur."ws"()
+ unless $P10, rx901_fail
+ rx901_pos = $P10."pos"()
# rx pass
- rx898_cur."!cursor_pass"(rx898_pos, "semilist")
- rx898_cur."!cursor_debug"("PASS ", "semilist", " at pos=", rx898_pos)
- .return (rx898_cur)
- rx898_fail:
+ rx901_cur."!cursor_pass"(rx901_pos, "semilist")
+ rx901_cur."!cursor_debug"("PASS ", "semilist", " at pos=", rx901_pos)
+ .return (rx901_cur)
+ rx901_fail:
.annotate "line", 4
- (rx898_rep, rx898_pos, $I10, $P10) = rx898_cur."!mark_fail"(0)
- lt rx898_pos, -1, rx898_done
- eq rx898_pos, -1, rx898_fail
+ (rx901_rep, rx901_pos, $I10, $P10) = rx901_cur."!mark_fail"(0)
+ lt rx901_pos, -1, rx901_done
+ eq rx901_pos, -1, rx901_fail
jump $I10
- rx898_done:
- rx898_cur."!cursor_fail"()
- rx898_cur."!cursor_debug"("FAIL ", "semilist")
- .return (rx898_cur)
+ rx901_done:
+ rx901_cur."!cursor_fail"()
+ rx901_cur."!cursor_debug"("FAIL ", "semilist")
+ .return (rx901_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__semilist" :subid("220_1267204702.05125") :method
+.sub "!PREFIX__semilist" :subid("220_1271336396.90314") :method
.annotate "line", 4
- new $P900, "ResizablePMCArray"
- push $P900, ""
- .return ($P900)
+ new $P903, "ResizablePMCArray"
+ push $P903, ""
+ .return ($P903)
.end
.namespace ["NQP";"Grammar"]
-.sub "infixish" :subid("221_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx905_tgt
- .local int rx905_pos
- .local int rx905_off
- .local int rx905_eos
- .local int rx905_rep
- .local pmc rx905_cur
- (rx905_cur, rx905_pos, rx905_tgt) = self."!cursor_start"()
- rx905_cur."!cursor_debug"("START ", "infixish")
- .lex unicode:"$\x{a2}", rx905_cur
- .local pmc match
- .lex "$/", match
- length rx905_eos, rx905_tgt
- set rx905_off, 0
- lt rx905_pos, 2, rx905_start
- sub rx905_off, rx905_pos, 1
- substr rx905_tgt, rx905_tgt, rx905_off
- rx905_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan908_done
- goto rxscan908_scan
- rxscan908_loop:
- ($P10) = rx905_cur."from"()
- inc $P10
- set rx905_pos, $P10
- ge rx905_pos, rx905_eos, rxscan908_done
- rxscan908_scan:
- set_addr $I10, rxscan908_loop
- rx905_cur."!mark_push"(0, rx905_pos, $I10)
- rxscan908_done:
-.annotate "line", 436
+.sub "infixish" :subid("221_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .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) = self."!cursor_start"()
+ rx908_cur."!cursor_debug"("START ", "infixish")
+ .lex unicode:"$\x{a2}", rx908_cur
+ .local pmc match
+ .lex "$/", match
+ length rx908_eos, rx908_tgt
+ 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:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan911_done
+ goto rxscan911_scan
+ rxscan911_loop:
+ ($P10) = rx908_cur."from"()
+ inc $P10
+ set rx908_pos, $P10
+ ge rx908_pos, rx908_eos, rxscan911_done
+ rxscan911_scan:
+ set_addr $I10, rxscan911_loop
+ rx908_cur."!mark_push"(0, rx908_pos, $I10)
+ rxscan911_done:
+.annotate "line", 440
# rx subrule "infixstopper" subtype=zerowidth negate=1
- rx905_cur."!cursor_pos"(rx905_pos)
- $P10 = rx905_cur."infixstopper"()
- if $P10, rx905_fail
+ rx908_cur."!cursor_pos"(rx908_pos)
+ $P10 = rx908_cur."infixstopper"()
+ if $P10, rx908_fail
# rx subrule "infix" subtype=capture negate=
- rx905_cur."!cursor_pos"(rx905_pos)
- $P10 = rx905_cur."infix"()
- unless $P10, rx905_fail
- rx905_cur."!mark_push"(0, -1, 0, $P10)
+ rx908_cur."!cursor_pos"(rx908_pos)
+ $P10 = rx908_cur."infix"()
+ unless $P10, rx908_fail
+ rx908_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("OPER=infix")
- rx905_pos = $P10."pos"()
+ rx908_pos = $P10."pos"()
# rx pass
- rx905_cur."!cursor_pass"(rx905_pos, "infixish")
- rx905_cur."!cursor_debug"("PASS ", "infixish", " at pos=", rx905_pos)
- .return (rx905_cur)
- rx905_fail:
-.annotate "line", 417
- (rx905_rep, rx905_pos, $I10, $P10) = rx905_cur."!mark_fail"(0)
- lt rx905_pos, -1, rx905_done
- eq rx905_pos, -1, rx905_fail
+ rx908_cur."!cursor_pass"(rx908_pos, "infixish")
+ rx908_cur."!cursor_debug"("PASS ", "infixish", " at pos=", rx908_pos)
+ .return (rx908_cur)
+ rx908_fail:
+.annotate "line", 421
+ (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
- rx905_done:
- rx905_cur."!cursor_fail"()
- rx905_cur."!cursor_debug"("FAIL ", "infixish")
- .return (rx905_cur)
+ rx908_done:
+ rx908_cur."!cursor_fail"()
+ rx908_cur."!cursor_debug"("FAIL ", "infixish")
+ .return (rx908_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixish" :subid("222_1267204702.05125") :method
-.annotate "line", 417
- new $P907, "ResizablePMCArray"
- push $P907, ""
- .return ($P907)
+.sub "!PREFIX__infixish" :subid("222_1271336396.90314") :method
+.annotate "line", 421
+ new $P910, "ResizablePMCArray"
+ push $P910, ""
+ .return ($P910)
.end
.namespace ["NQP";"Grammar"]
-.sub "infixstopper" :subid("223_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx910_tgt
- .local int rx910_pos
- .local int rx910_off
- .local int rx910_eos
- .local int rx910_rep
- .local pmc rx910_cur
- (rx910_cur, rx910_pos, rx910_tgt) = self."!cursor_start"()
- rx910_cur."!cursor_debug"("START ", "infixstopper")
- .lex unicode:"$\x{a2}", rx910_cur
- .local pmc match
- .lex "$/", match
- length rx910_eos, rx910_tgt
- set rx910_off, 0
- lt rx910_pos, 2, rx910_start
- sub rx910_off, rx910_pos, 1
- substr rx910_tgt, rx910_tgt, rx910_off
- rx910_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan913_done
- goto rxscan913_scan
- rxscan913_loop:
- ($P10) = rx910_cur."from"()
- inc $P10
- set rx910_pos, $P10
- ge rx910_pos, rx910_eos, rxscan913_done
- rxscan913_scan:
- set_addr $I10, rxscan913_loop
- rx910_cur."!mark_push"(0, rx910_pos, $I10)
- rxscan913_done:
-.annotate "line", 437
+.sub "infixstopper" :subid("223_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx913_tgt
+ .local int rx913_pos
+ .local int rx913_off
+ .local int rx913_eos
+ .local int rx913_rep
+ .local pmc rx913_cur
+ (rx913_cur, rx913_pos, rx913_tgt) = self."!cursor_start"()
+ rx913_cur."!cursor_debug"("START ", "infixstopper")
+ .lex unicode:"$\x{a2}", rx913_cur
+ .local pmc match
+ .lex "$/", match
+ length rx913_eos, rx913_tgt
+ set rx913_off, 0
+ lt rx913_pos, 2, rx913_start
+ sub rx913_off, rx913_pos, 1
+ substr rx913_tgt, rx913_tgt, rx913_off
+ rx913_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan916_done
+ goto rxscan916_scan
+ rxscan916_loop:
+ ($P10) = rx913_cur."from"()
+ inc $P10
+ set rx913_pos, $P10
+ ge rx913_pos, rx913_eos, rxscan916_done
+ rxscan916_scan:
+ set_addr $I10, rxscan916_loop
+ rx913_cur."!mark_push"(0, rx913_pos, $I10)
+ rxscan916_done:
+.annotate "line", 441
# rx subrule "lambda" subtype=zerowidth negate=
- rx910_cur."!cursor_pos"(rx910_pos)
- $P10 = rx910_cur."lambda"()
- unless $P10, rx910_fail
- # rx pass
- rx910_cur."!cursor_pass"(rx910_pos, "infixstopper")
- rx910_cur."!cursor_debug"("PASS ", "infixstopper", " at pos=", rx910_pos)
- .return (rx910_cur)
- rx910_fail:
-.annotate "line", 417
- (rx910_rep, rx910_pos, $I10, $P10) = rx910_cur."!mark_fail"(0)
- lt rx910_pos, -1, rx910_done
- eq rx910_pos, -1, rx910_fail
+ rx913_cur."!cursor_pos"(rx913_pos)
+ $P10 = rx913_cur."lambda"()
+ unless $P10, rx913_fail
+ # rx pass
+ rx913_cur."!cursor_pass"(rx913_pos, "infixstopper")
+ rx913_cur."!cursor_debug"("PASS ", "infixstopper", " at pos=", rx913_pos)
+ .return (rx913_cur)
+ rx913_fail:
+.annotate "line", 421
+ (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
- rx910_done:
- rx910_cur."!cursor_fail"()
- rx910_cur."!cursor_debug"("FAIL ", "infixstopper")
- .return (rx910_cur)
+ rx913_done:
+ rx913_cur."!cursor_fail"()
+ rx913_cur."!cursor_debug"("FAIL ", "infixstopper")
+ .return (rx913_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixstopper" :subid("224_1267204702.05125") :method
-.annotate "line", 417
- new $P912, "ResizablePMCArray"
- push $P912, ""
- .return ($P912)
+.sub "!PREFIX__infixstopper" :subid("224_1271336396.90314") :method
+.annotate "line", 421
+ new $P915, "ResizablePMCArray"
+ push $P915, ""
+ .return ($P915)
.end
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<[ ]>" :subid("225_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx915_tgt
- .local int rx915_pos
- .local int rx915_off
- .local int rx915_eos
- .local int rx915_rep
- .local pmc rx915_cur
- (rx915_cur, rx915_pos, rx915_tgt) = self."!cursor_start"()
- rx915_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>")
- .lex unicode:"$\x{a2}", rx915_cur
- .local pmc match
- .lex "$/", match
- length rx915_eos, rx915_tgt
- set rx915_off, 0
- lt rx915_pos, 2, rx915_start
- sub rx915_off, rx915_pos, 1
- substr rx915_tgt, rx915_tgt, rx915_off
- rx915_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan919_done
- goto rxscan919_scan
- rxscan919_loop:
- ($P10) = rx915_cur."from"()
- inc $P10
- set rx915_pos, $P10
- ge rx915_pos, rx915_eos, rxscan919_done
- rxscan919_scan:
- set_addr $I10, rxscan919_loop
- rx915_cur."!mark_push"(0, rx915_pos, $I10)
- rxscan919_done:
-.annotate "line", 440
+.sub "postcircumfix:sym<[ ]>" :subid("225_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .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) = self."!cursor_start"()
+ rx918_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>")
+ .lex unicode:"$\x{a2}", rx918_cur
+ .local pmc match
+ .lex "$/", match
+ length rx918_eos, rx918_tgt
+ 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:
+ $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", 444
# rx literal "["
- add $I11, rx915_pos, 1
- gt $I11, rx915_eos, rx915_fail
- sub $I11, rx915_pos, rx915_off
- substr $S10, rx915_tgt, $I11, 1
- ne $S10, "[", rx915_fail
- add rx915_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx915_cur."!cursor_pos"(rx915_pos)
- $P10 = rx915_cur."ws"()
- unless $P10, rx915_fail
- rx915_pos = $P10."pos"()
+ 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 subrule "EXPR" subtype=capture negate=
- rx915_cur."!cursor_pos"(rx915_pos)
- $P10 = rx915_cur."EXPR"()
- unless $P10, rx915_fail
- rx915_cur."!mark_push"(0, -1, 0, $P10)
+ rx918_cur."!cursor_pos"(rx918_pos)
+ $P10 = rx918_cur."EXPR"()
+ unless $P10, rx918_fail
+ rx918_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx915_pos = $P10."pos"()
+ rx918_pos = $P10."pos"()
# rx literal "]"
- add $I11, rx915_pos, 1
- gt $I11, rx915_eos, rx915_fail
- sub $I11, rx915_pos, rx915_off
- substr $S10, rx915_tgt, $I11, 1
- ne $S10, "]", rx915_fail
- add rx915_pos, 1
-.annotate "line", 441
+ 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
+.annotate "line", 445
# rx subrule "O" subtype=capture negate=
- rx915_cur."!cursor_pos"(rx915_pos)
- $P10 = rx915_cur."O"("%methodop")
- unless $P10, rx915_fail
- rx915_cur."!mark_push"(0, -1, 0, $P10)
+ rx918_cur."!cursor_pos"(rx918_pos)
+ $P10 = rx918_cur."O"("%methodop")
+ unless $P10, rx918_fail
+ rx918_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx915_pos = $P10."pos"()
-.annotate "line", 439
+ rx918_pos = $P10."pos"()
+.annotate "line", 443
# rx pass
- rx915_cur."!cursor_pass"(rx915_pos, "postcircumfix:sym<[ ]>")
- rx915_cur."!cursor_debug"("PASS ", "postcircumfix:sym<[ ]>", " at pos=", rx915_pos)
- .return (rx915_cur)
- rx915_fail:
-.annotate "line", 417
- (rx915_rep, rx915_pos, $I10, $P10) = rx915_cur."!mark_fail"(0)
- lt rx915_pos, -1, rx915_done
- eq rx915_pos, -1, rx915_fail
+ rx918_cur."!cursor_pass"(rx918_pos, "postcircumfix:sym<[ ]>")
+ rx918_cur."!cursor_debug"("PASS ", "postcircumfix:sym<[ ]>", " at pos=", rx918_pos)
+ .return (rx918_cur)
+ rx918_fail:
+.annotate "line", 421
+ (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
- rx915_done:
- rx915_cur."!cursor_fail"()
- rx915_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<[ ]>")
- .return (rx915_cur)
+ rx918_done:
+ rx918_cur."!cursor_fail"()
+ rx918_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<[ ]>")
+ .return (rx918_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<[ ]>" :subid("226_1267204702.05125") :method
-.annotate "line", 417
- $P917 = self."!PREFIX__!subrule"("", "[")
- new $P918, "ResizablePMCArray"
- push $P918, $P917
- .return ($P918)
+.sub "!PREFIX__postcircumfix:sym<[ ]>" :subid("226_1271336396.90314") :method
+.annotate "line", 421
+ $P920 = self."!PREFIX__!subrule"("", "[")
+ new $P921, "ResizablePMCArray"
+ push $P921, $P920
+ .return ($P921)
.end
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<{ }>" :subid("227_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx921_tgt
- .local int rx921_pos
- .local int rx921_off
- .local int rx921_eos
- .local int rx921_rep
- .local pmc rx921_cur
- (rx921_cur, rx921_pos, rx921_tgt) = self."!cursor_start"()
- rx921_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>")
- .lex unicode:"$\x{a2}", rx921_cur
- .local pmc match
- .lex "$/", match
- length rx921_eos, rx921_tgt
- set rx921_off, 0
- lt rx921_pos, 2, rx921_start
- sub rx921_off, rx921_pos, 1
- substr rx921_tgt, rx921_tgt, rx921_off
- rx921_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan925_done
- goto rxscan925_scan
- rxscan925_loop:
- ($P10) = rx921_cur."from"()
- inc $P10
- set rx921_pos, $P10
- ge rx921_pos, rx921_eos, rxscan925_done
- rxscan925_scan:
- set_addr $I10, rxscan925_loop
- rx921_cur."!mark_push"(0, rx921_pos, $I10)
- rxscan925_done:
-.annotate "line", 445
+.sub "postcircumfix:sym<{ }>" :subid("227_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx924_tgt
+ .local int rx924_pos
+ .local int rx924_off
+ .local int rx924_eos
+ .local int rx924_rep
+ .local pmc rx924_cur
+ (rx924_cur, rx924_pos, rx924_tgt) = self."!cursor_start"()
+ rx924_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>")
+ .lex unicode:"$\x{a2}", rx924_cur
+ .local pmc match
+ .lex "$/", match
+ length rx924_eos, rx924_tgt
+ set rx924_off, 0
+ lt rx924_pos, 2, rx924_start
+ sub rx924_off, rx924_pos, 1
+ substr rx924_tgt, rx924_tgt, rx924_off
+ rx924_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan928_done
+ goto rxscan928_scan
+ rxscan928_loop:
+ ($P10) = rx924_cur."from"()
+ inc $P10
+ set rx924_pos, $P10
+ ge rx924_pos, rx924_eos, rxscan928_done
+ rxscan928_scan:
+ set_addr $I10, rxscan928_loop
+ rx924_cur."!mark_push"(0, rx924_pos, $I10)
+ rxscan928_done:
+.annotate "line", 449
# rx literal "{"
- add $I11, rx921_pos, 1
- gt $I11, rx921_eos, rx921_fail
- sub $I11, rx921_pos, rx921_off
- substr $S10, rx921_tgt, $I11, 1
- ne $S10, "{", rx921_fail
- add rx921_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx921_cur."!cursor_pos"(rx921_pos)
- $P10 = rx921_cur."ws"()
- unless $P10, rx921_fail
- rx921_pos = $P10."pos"()
+ add $I11, rx924_pos, 1
+ gt $I11, rx924_eos, rx924_fail
+ sub $I11, rx924_pos, rx924_off
+ substr $S10, rx924_tgt, $I11, 1
+ ne $S10, "{", rx924_fail
+ add rx924_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx924_cur."!cursor_pos"(rx924_pos)
+ $P10 = rx924_cur."ws"()
+ unless $P10, rx924_fail
+ rx924_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx921_cur."!cursor_pos"(rx921_pos)
- $P10 = rx921_cur."EXPR"()
- unless $P10, rx921_fail
- rx921_cur."!mark_push"(0, -1, 0, $P10)
+ rx924_cur."!cursor_pos"(rx924_pos)
+ $P10 = rx924_cur."EXPR"()
+ unless $P10, rx924_fail
+ rx924_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx921_pos = $P10."pos"()
+ rx924_pos = $P10."pos"()
# rx literal "}"
- add $I11, rx921_pos, 1
- gt $I11, rx921_eos, rx921_fail
- sub $I11, rx921_pos, rx921_off
- substr $S10, rx921_tgt, $I11, 1
- ne $S10, "}", rx921_fail
- add rx921_pos, 1
-.annotate "line", 446
+ add $I11, rx924_pos, 1
+ gt $I11, rx924_eos, rx924_fail
+ sub $I11, rx924_pos, rx924_off
+ substr $S10, rx924_tgt, $I11, 1
+ ne $S10, "}", rx924_fail
+ add rx924_pos, 1
+.annotate "line", 450
# rx subrule "O" subtype=capture negate=
- rx921_cur."!cursor_pos"(rx921_pos)
- $P10 = rx921_cur."O"("%methodop")
- unless $P10, rx921_fail
- rx921_cur."!mark_push"(0, -1, 0, $P10)
+ rx924_cur."!cursor_pos"(rx924_pos)
+ $P10 = rx924_cur."O"("%methodop")
+ unless $P10, rx924_fail
+ rx924_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx921_pos = $P10."pos"()
-.annotate "line", 444
+ rx924_pos = $P10."pos"()
+.annotate "line", 448
# rx pass
- rx921_cur."!cursor_pass"(rx921_pos, "postcircumfix:sym<{ }>")
- rx921_cur."!cursor_debug"("PASS ", "postcircumfix:sym<{ }>", " at pos=", rx921_pos)
- .return (rx921_cur)
- rx921_fail:
-.annotate "line", 417
- (rx921_rep, rx921_pos, $I10, $P10) = rx921_cur."!mark_fail"(0)
- lt rx921_pos, -1, rx921_done
- eq rx921_pos, -1, rx921_fail
+ rx924_cur."!cursor_pass"(rx924_pos, "postcircumfix:sym<{ }>")
+ rx924_cur."!cursor_debug"("PASS ", "postcircumfix:sym<{ }>", " at pos=", rx924_pos)
+ .return (rx924_cur)
+ rx924_fail:
+.annotate "line", 421
+ (rx924_rep, rx924_pos, $I10, $P10) = rx924_cur."!mark_fail"(0)
+ lt rx924_pos, -1, rx924_done
+ eq rx924_pos, -1, rx924_fail
jump $I10
- rx921_done:
- rx921_cur."!cursor_fail"()
- rx921_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<{ }>")
- .return (rx921_cur)
+ rx924_done:
+ rx924_cur."!cursor_fail"()
+ rx924_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<{ }>")
+ .return (rx924_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<{ }>" :subid("228_1267204702.05125") :method
-.annotate "line", 417
- $P923 = self."!PREFIX__!subrule"("", "{")
- new $P924, "ResizablePMCArray"
- push $P924, $P923
- .return ($P924)
+.sub "!PREFIX__postcircumfix:sym<{ }>" :subid("228_1271336396.90314") :method
+.annotate "line", 421
+ $P926 = self."!PREFIX__!subrule"("", "{")
+ new $P927, "ResizablePMCArray"
+ push $P927, $P926
+ .return ($P927)
.end
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<ang>" :subid("229_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx927_tgt
- .local int rx927_pos
- .local int rx927_off
- .local int rx927_eos
- .local int rx927_rep
- .local pmc rx927_cur
- (rx927_cur, rx927_pos, rx927_tgt) = self."!cursor_start"()
- rx927_cur."!cursor_debug"("START ", "postcircumfix:sym<ang>")
- .lex unicode:"$\x{a2}", rx927_cur
- .local pmc match
- .lex "$/", match
- length rx927_eos, rx927_tgt
- set rx927_off, 0
- lt rx927_pos, 2, rx927_start
- sub rx927_off, rx927_pos, 1
- substr rx927_tgt, rx927_tgt, rx927_off
- rx927_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan930_done
- goto rxscan930_scan
- rxscan930_loop:
- ($P10) = rx927_cur."from"()
- inc $P10
- set rx927_pos, $P10
- ge rx927_pos, rx927_eos, rxscan930_done
- rxscan930_scan:
- set_addr $I10, rxscan930_loop
- rx927_cur."!mark_push"(0, rx927_pos, $I10)
- rxscan930_done:
-.annotate "line", 450
+.sub "postcircumfix:sym<ang>" :subid("229_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .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 ", "postcircumfix:sym<ang>")
+ .lex unicode:"$\x{a2}", rx930_cur
+ .local pmc match
+ .lex "$/", match
+ length rx930_eos, rx930_tgt
+ set rx930_off, 0
+ lt rx930_pos, 2, rx930_start
+ sub rx930_off, rx930_pos, 1
+ substr rx930_tgt, rx930_tgt, rx930_off
+ rx930_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan933_done
+ goto rxscan933_scan
+ rxscan933_loop:
+ ($P10) = rx930_cur."from"()
+ inc $P10
+ set rx930_pos, $P10
+ ge rx930_pos, rx930_eos, rxscan933_done
+ rxscan933_scan:
+ set_addr $I10, rxscan933_loop
+ rx930_cur."!mark_push"(0, rx930_pos, $I10)
+ rxscan933_done:
+.annotate "line", 454
# rx enumcharlist negate=0 zerowidth
- ge rx927_pos, rx927_eos, rx927_fail
- sub $I10, rx927_pos, rx927_off
- substr $S10, rx927_tgt, $I10, 1
+ ge rx930_pos, rx930_eos, rx930_fail
+ sub $I10, rx930_pos, rx930_off
+ substr $S10, rx930_tgt, $I10, 1
index $I11, "<", $S10
- lt $I11, 0, rx927_fail
+ lt $I11, 0, rx930_fail
# rx subrule "quote_EXPR" subtype=capture negate=
- rx927_cur."!cursor_pos"(rx927_pos)
- $P10 = rx927_cur."quote_EXPR"(":q")
- unless $P10, rx927_fail
- rx927_cur."!mark_push"(0, -1, 0, $P10)
+ rx930_cur."!cursor_pos"(rx930_pos)
+ $P10 = rx930_cur."quote_EXPR"(":q")
+ unless $P10, rx930_fail
+ rx930_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx927_pos = $P10."pos"()
-.annotate "line", 451
+ rx930_pos = $P10."pos"()
+.annotate "line", 455
# rx subrule "O" subtype=capture negate=
- rx927_cur."!cursor_pos"(rx927_pos)
- $P10 = rx927_cur."O"("%methodop")
- unless $P10, rx927_fail
- rx927_cur."!mark_push"(0, -1, 0, $P10)
+ rx930_cur."!cursor_pos"(rx930_pos)
+ $P10 = rx930_cur."O"("%methodop")
+ unless $P10, rx930_fail
+ rx930_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx927_pos = $P10."pos"()
-.annotate "line", 449
+ rx930_pos = $P10."pos"()
+.annotate "line", 453
# rx pass
- rx927_cur."!cursor_pass"(rx927_pos, "postcircumfix:sym<ang>")
- rx927_cur."!cursor_debug"("PASS ", "postcircumfix:sym<ang>", " at pos=", rx927_pos)
- .return (rx927_cur)
- rx927_fail:
-.annotate "line", 417
- (rx927_rep, rx927_pos, $I10, $P10) = rx927_cur."!mark_fail"(0)
- lt rx927_pos, -1, rx927_done
- eq rx927_pos, -1, rx927_fail
+ rx930_cur."!cursor_pass"(rx930_pos, "postcircumfix:sym<ang>")
+ rx930_cur."!cursor_debug"("PASS ", "postcircumfix:sym<ang>", " at pos=", rx930_pos)
+ .return (rx930_cur)
+ rx930_fail:
+.annotate "line", 421
+ (rx930_rep, rx930_pos, $I10, $P10) = rx930_cur."!mark_fail"(0)
+ lt rx930_pos, -1, rx930_done
+ eq rx930_pos, -1, rx930_fail
jump $I10
- rx927_done:
- rx927_cur."!cursor_fail"()
- rx927_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<ang>")
- .return (rx927_cur)
+ rx930_done:
+ rx930_cur."!cursor_fail"()
+ rx930_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<ang>")
+ .return (rx930_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<ang>" :subid("230_1267204702.05125") :method
-.annotate "line", 417
- new $P929, "ResizablePMCArray"
- push $P929, "<"
- .return ($P929)
+.sub "!PREFIX__postcircumfix:sym<ang>" :subid("230_1271336396.90314") :method
+.annotate "line", 421
+ new $P932, "ResizablePMCArray"
+ push $P932, "<"
+ .return ($P932)
.end
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<( )>" :subid("231_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx932_tgt
- .local int rx932_pos
- .local int rx932_off
- .local int rx932_eos
- .local int rx932_rep
- .local pmc rx932_cur
- (rx932_cur, rx932_pos, rx932_tgt) = self."!cursor_start"()
- rx932_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>")
- .lex unicode:"$\x{a2}", rx932_cur
- .local pmc match
- .lex "$/", match
- length rx932_eos, rx932_tgt
- set rx932_off, 0
- lt rx932_pos, 2, rx932_start
- sub rx932_off, rx932_pos, 1
- substr rx932_tgt, rx932_tgt, rx932_off
- rx932_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan936_done
- goto rxscan936_scan
- rxscan936_loop:
- ($P10) = rx932_cur."from"()
- inc $P10
- set rx932_pos, $P10
- ge rx932_pos, rx932_eos, rxscan936_done
- rxscan936_scan:
- set_addr $I10, rxscan936_loop
- rx932_cur."!mark_push"(0, rx932_pos, $I10)
- rxscan936_done:
-.annotate "line", 455
+.sub "postcircumfix:sym<( )>" :subid("231_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .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 ", "postcircumfix:sym<( )>")
+ .lex unicode:"$\x{a2}", rx935_cur
+ .local pmc match
+ .lex "$/", match
+ length rx935_eos, rx935_tgt
+ set rx935_off, 0
+ lt rx935_pos, 2, rx935_start
+ sub rx935_off, rx935_pos, 1
+ substr rx935_tgt, rx935_tgt, rx935_off
+ rx935_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan939_done
+ goto rxscan939_scan
+ rxscan939_loop:
+ ($P10) = rx935_cur."from"()
+ inc $P10
+ set rx935_pos, $P10
+ ge rx935_pos, rx935_eos, rxscan939_done
+ rxscan939_scan:
+ set_addr $I10, rxscan939_loop
+ rx935_cur."!mark_push"(0, rx935_pos, $I10)
+ rxscan939_done:
+.annotate "line", 459
# rx literal "("
- add $I11, rx932_pos, 1
- gt $I11, rx932_eos, rx932_fail
- sub $I11, rx932_pos, rx932_off
- substr $S10, rx932_tgt, $I11, 1
- ne $S10, "(", rx932_fail
- add rx932_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx932_cur."!cursor_pos"(rx932_pos)
- $P10 = rx932_cur."ws"()
- unless $P10, rx932_fail
- rx932_pos = $P10."pos"()
+ add $I11, rx935_pos, 1
+ gt $I11, rx935_eos, rx935_fail
+ sub $I11, rx935_pos, rx935_off
+ substr $S10, rx935_tgt, $I11, 1
+ ne $S10, "(", rx935_fail
+ add rx935_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx935_cur."!cursor_pos"(rx935_pos)
+ $P10 = rx935_cur."ws"()
+ unless $P10, rx935_fail
+ rx935_pos = $P10."pos"()
# rx subrule "arglist" subtype=capture negate=
- rx932_cur."!cursor_pos"(rx932_pos)
- $P10 = rx932_cur."arglist"()
- unless $P10, rx932_fail
- rx932_cur."!mark_push"(0, -1, 0, $P10)
+ rx935_cur."!cursor_pos"(rx935_pos)
+ $P10 = rx935_cur."arglist"()
+ unless $P10, rx935_fail
+ rx935_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("arglist")
- rx932_pos = $P10."pos"()
+ rx935_pos = $P10."pos"()
# rx literal ")"
- add $I11, rx932_pos, 1
- gt $I11, rx932_eos, rx932_fail
- sub $I11, rx932_pos, rx932_off
- substr $S10, rx932_tgt, $I11, 1
- ne $S10, ")", rx932_fail
- add rx932_pos, 1
-.annotate "line", 456
+ add $I11, rx935_pos, 1
+ gt $I11, rx935_eos, rx935_fail
+ sub $I11, rx935_pos, rx935_off
+ substr $S10, rx935_tgt, $I11, 1
+ ne $S10, ")", rx935_fail
+ add rx935_pos, 1
+.annotate "line", 460
# rx subrule "O" subtype=capture negate=
- rx932_cur."!cursor_pos"(rx932_pos)
- $P10 = rx932_cur."O"("%methodop")
- unless $P10, rx932_fail
- rx932_cur."!mark_push"(0, -1, 0, $P10)
+ rx935_cur."!cursor_pos"(rx935_pos)
+ $P10 = rx935_cur."O"("%methodop")
+ unless $P10, rx935_fail
+ rx935_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx932_pos = $P10."pos"()
-.annotate "line", 454
+ rx935_pos = $P10."pos"()
+.annotate "line", 458
# rx pass
- rx932_cur."!cursor_pass"(rx932_pos, "postcircumfix:sym<( )>")
- rx932_cur."!cursor_debug"("PASS ", "postcircumfix:sym<( )>", " at pos=", rx932_pos)
- .return (rx932_cur)
- rx932_fail:
-.annotate "line", 417
- (rx932_rep, rx932_pos, $I10, $P10) = rx932_cur."!mark_fail"(0)
- lt rx932_pos, -1, rx932_done
- eq rx932_pos, -1, rx932_fail
+ rx935_cur."!cursor_pass"(rx935_pos, "postcircumfix:sym<( )>")
+ rx935_cur."!cursor_debug"("PASS ", "postcircumfix:sym<( )>", " at pos=", rx935_pos)
+ .return (rx935_cur)
+ rx935_fail:
+.annotate "line", 421
+ (rx935_rep, rx935_pos, $I10, $P10) = rx935_cur."!mark_fail"(0)
+ lt rx935_pos, -1, rx935_done
+ eq rx935_pos, -1, rx935_fail
jump $I10
- rx932_done:
- rx932_cur."!cursor_fail"()
- rx932_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<( )>")
- .return (rx932_cur)
+ rx935_done:
+ rx935_cur."!cursor_fail"()
+ rx935_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<( )>")
+ .return (rx935_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<( )>" :subid("232_1267204702.05125") :method
-.annotate "line", 417
- $P934 = self."!PREFIX__!subrule"("", "(")
- new $P935, "ResizablePMCArray"
- push $P935, $P934
- .return ($P935)
+.sub "!PREFIX__postcircumfix:sym<( )>" :subid("232_1271336396.90314") :method
+.annotate "line", 421
+ $P937 = self."!PREFIX__!subrule"("", "(")
+ new $P938, "ResizablePMCArray"
+ push $P938, $P937
+ .return ($P938)
.end
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<.>" :subid("233_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx938_tgt
- .local int rx938_pos
- .local int rx938_off
- .local int rx938_eos
- .local int rx938_rep
- .local pmc rx938_cur
- (rx938_cur, rx938_pos, rx938_tgt) = self."!cursor_start"()
- rx938_cur."!cursor_debug"("START ", "postfix:sym<.>")
- .lex unicode:"$\x{a2}", rx938_cur
- .local pmc match
- .lex "$/", match
- length rx938_eos, rx938_tgt
- set rx938_off, 0
- lt rx938_pos, 2, rx938_start
- sub rx938_off, rx938_pos, 1
- substr rx938_tgt, rx938_tgt, rx938_off
- rx938_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan942_done
- goto rxscan942_scan
- rxscan942_loop:
- ($P10) = rx938_cur."from"()
- inc $P10
- set rx938_pos, $P10
- ge rx938_pos, rx938_eos, rxscan942_done
- rxscan942_scan:
- set_addr $I10, rxscan942_loop
- rx938_cur."!mark_push"(0, rx938_pos, $I10)
- rxscan942_done:
-.annotate "line", 459
+.sub "postfix:sym<.>" :subid("233_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx941_tgt
+ .local int rx941_pos
+ .local int rx941_off
+ .local int rx941_eos
+ .local int rx941_rep
+ .local pmc rx941_cur
+ (rx941_cur, rx941_pos, rx941_tgt) = self."!cursor_start"()
+ rx941_cur."!cursor_debug"("START ", "postfix:sym<.>")
+ .lex unicode:"$\x{a2}", rx941_cur
+ .local pmc match
+ .lex "$/", match
+ length rx941_eos, rx941_tgt
+ set rx941_off, 0
+ lt rx941_pos, 2, rx941_start
+ sub rx941_off, rx941_pos, 1
+ substr rx941_tgt, rx941_tgt, rx941_off
+ rx941_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan945_done
+ goto rxscan945_scan
+ rxscan945_loop:
+ ($P10) = rx941_cur."from"()
+ inc $P10
+ set rx941_pos, $P10
+ ge rx941_pos, rx941_eos, rxscan945_done
+ rxscan945_scan:
+ set_addr $I10, rxscan945_loop
+ rx941_cur."!mark_push"(0, rx941_pos, $I10)
+ rxscan945_done:
+.annotate "line", 463
# rx subrule "dotty" subtype=capture negate=
- rx938_cur."!cursor_pos"(rx938_pos)
- $P10 = rx938_cur."dotty"()
- unless $P10, rx938_fail
- rx938_cur."!mark_push"(0, -1, 0, $P10)
+ rx941_cur."!cursor_pos"(rx941_pos)
+ $P10 = rx941_cur."dotty"()
+ unless $P10, rx941_fail
+ rx941_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("dotty")
- rx938_pos = $P10."pos"()
+ rx941_pos = $P10."pos"()
# rx subrule "O" subtype=capture negate=
- rx938_cur."!cursor_pos"(rx938_pos)
- $P10 = rx938_cur."O"("%methodop")
- unless $P10, rx938_fail
- rx938_cur."!mark_push"(0, -1, 0, $P10)
+ rx941_cur."!cursor_pos"(rx941_pos)
+ $P10 = rx941_cur."O"("%methodop")
+ unless $P10, rx941_fail
+ rx941_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx938_pos = $P10."pos"()
+ rx941_pos = $P10."pos"()
# rx pass
- rx938_cur."!cursor_pass"(rx938_pos, "postfix:sym<.>")
- rx938_cur."!cursor_debug"("PASS ", "postfix:sym<.>", " at pos=", rx938_pos)
- .return (rx938_cur)
- rx938_fail:
-.annotate "line", 417
- (rx938_rep, rx938_pos, $I10, $P10) = rx938_cur."!mark_fail"(0)
- lt rx938_pos, -1, rx938_done
- eq rx938_pos, -1, rx938_fail
+ rx941_cur."!cursor_pass"(rx941_pos, "postfix:sym<.>")
+ rx941_cur."!cursor_debug"("PASS ", "postfix:sym<.>", " at pos=", rx941_pos)
+ .return (rx941_cur)
+ rx941_fail:
+.annotate "line", 421
+ (rx941_rep, rx941_pos, $I10, $P10) = rx941_cur."!mark_fail"(0)
+ lt rx941_pos, -1, rx941_done
+ eq rx941_pos, -1, rx941_fail
jump $I10
- rx938_done:
- rx938_cur."!cursor_fail"()
- rx938_cur."!cursor_debug"("FAIL ", "postfix:sym<.>")
- .return (rx938_cur)
+ rx941_done:
+ rx941_cur."!cursor_fail"()
+ rx941_cur."!cursor_debug"("FAIL ", "postfix:sym<.>")
+ .return (rx941_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<.>" :subid("234_1267204702.05125") :method
-.annotate "line", 417
- $P940 = self."!PREFIX__!subrule"("dotty", "")
- new $P941, "ResizablePMCArray"
- push $P941, $P940
- .return ($P941)
+.sub "!PREFIX__postfix:sym<.>" :subid("234_1271336396.90314") :method
+.annotate "line", 421
+ $P943 = self."!PREFIX__!subrule"("dotty", "")
+ new $P944, "ResizablePMCArray"
+ push $P944, $P943
+ .return ($P944)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<++>" :subid("235_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .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) = self."!cursor_start"()
- rx944_cur."!cursor_debug"("START ", "prefix:sym<++>")
- .lex unicode:"$\x{a2}", rx944_cur
- .local pmc match
- .lex "$/", match
- length rx944_eos, rx944_tgt
- 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:
- $I10 = self.'from'()
- ne $I10, -1, rxscan948_done
- goto rxscan948_scan
- rxscan948_loop:
- ($P10) = rx944_cur."from"()
- inc $P10
- set rx944_pos, $P10
- ge rx944_pos, rx944_eos, rxscan948_done
- rxscan948_scan:
- set_addr $I10, rxscan948_loop
- rx944_cur."!mark_push"(0, rx944_pos, $I10)
- rxscan948_done:
-.annotate "line", 461
+.sub "prefix:sym<++>" :subid("235_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx947_tgt
+ .local int rx947_pos
+ .local int rx947_off
+ .local int rx947_eos
+ .local int rx947_rep
+ .local pmc rx947_cur
+ (rx947_cur, rx947_pos, rx947_tgt) = self."!cursor_start"()
+ rx947_cur."!cursor_debug"("START ", "prefix:sym<++>")
+ .lex unicode:"$\x{a2}", rx947_cur
+ .local pmc match
+ .lex "$/", match
+ length rx947_eos, rx947_tgt
+ set rx947_off, 0
+ lt rx947_pos, 2, rx947_start
+ sub rx947_off, rx947_pos, 1
+ substr rx947_tgt, rx947_tgt, rx947_off
+ rx947_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan951_done
+ goto rxscan951_scan
+ rxscan951_loop:
+ ($P10) = rx947_cur."from"()
+ inc $P10
+ set rx947_pos, $P10
+ ge rx947_pos, rx947_eos, rxscan951_done
+ rxscan951_scan:
+ set_addr $I10, rxscan951_loop
+ rx947_cur."!mark_push"(0, rx947_pos, $I10)
+ rxscan951_done:
+.annotate "line", 465
# rx subcapture "sym"
- set_addr $I10, rxcap_949_fail
- rx944_cur."!mark_push"(0, rx944_pos, $I10)
+ set_addr $I10, rxcap_952_fail
+ rx947_cur."!mark_push"(0, rx947_pos, $I10)
# rx literal "++"
- add $I11, rx944_pos, 2
- gt $I11, rx944_eos, rx944_fail
- sub $I11, rx944_pos, rx944_off
- substr $S10, rx944_tgt, $I11, 2
- ne $S10, "++", rx944_fail
- add rx944_pos, 2
- set_addr $I10, rxcap_949_fail
- ($I12, $I11) = rx944_cur."!mark_peek"($I10)
- rx944_cur."!cursor_pos"($I11)
- ($P10) = rx944_cur."!cursor_start"()
- $P10."!cursor_pass"(rx944_pos, "")
- rx944_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx947_pos, 2
+ gt $I11, rx947_eos, rx947_fail
+ sub $I11, rx947_pos, rx947_off
+ substr $S10, rx947_tgt, $I11, 2
+ ne $S10, "++", rx947_fail
+ add rx947_pos, 2
+ set_addr $I10, rxcap_952_fail
+ ($I12, $I11) = rx947_cur."!mark_peek"($I10)
+ rx947_cur."!cursor_pos"($I11)
+ ($P10) = rx947_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx947_pos, "")
+ rx947_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_949_done
- rxcap_949_fail:
- goto rx944_fail
- rxcap_949_done:
+ goto rxcap_952_done
+ rxcap_952_fail:
+ goto rx947_fail
+ rxcap_952_done:
# rx subrule "O" subtype=capture negate=
- rx944_cur."!cursor_pos"(rx944_pos)
- $P10 = rx944_cur."O"("%autoincrement, :pirop<inc>")
- unless $P10, rx944_fail
- rx944_cur."!mark_push"(0, -1, 0, $P10)
+ rx947_cur."!cursor_pos"(rx947_pos)
+ $P10 = rx947_cur."O"("%autoincrement, :pirop<inc>")
+ unless $P10, rx947_fail
+ rx947_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx944_pos = $P10."pos"()
+ rx947_pos = $P10."pos"()
# rx pass
- rx944_cur."!cursor_pass"(rx944_pos, "prefix:sym<++>")
- rx944_cur."!cursor_debug"("PASS ", "prefix:sym<++>", " at pos=", rx944_pos)
- .return (rx944_cur)
- rx944_fail:
-.annotate "line", 417
- (rx944_rep, rx944_pos, $I10, $P10) = rx944_cur."!mark_fail"(0)
- lt rx944_pos, -1, rx944_done
- eq rx944_pos, -1, rx944_fail
+ rx947_cur."!cursor_pass"(rx947_pos, "prefix:sym<++>")
+ rx947_cur."!cursor_debug"("PASS ", "prefix:sym<++>", " at pos=", rx947_pos)
+ .return (rx947_cur)
+ rx947_fail:
+.annotate "line", 421
+ (rx947_rep, rx947_pos, $I10, $P10) = rx947_cur."!mark_fail"(0)
+ lt rx947_pos, -1, rx947_done
+ eq rx947_pos, -1, rx947_fail
jump $I10
- rx944_done:
- rx944_cur."!cursor_fail"()
- rx944_cur."!cursor_debug"("FAIL ", "prefix:sym<++>")
- .return (rx944_cur)
+ rx947_done:
+ rx947_cur."!cursor_fail"()
+ rx947_cur."!cursor_debug"("FAIL ", "prefix:sym<++>")
+ .return (rx947_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<++>" :subid("236_1267204702.05125") :method
-.annotate "line", 417
- $P946 = self."!PREFIX__!subrule"("O", "++")
- new $P947, "ResizablePMCArray"
- push $P947, $P946
- .return ($P947)
+.sub "!PREFIX__prefix:sym<++>" :subid("236_1271336396.90314") :method
+.annotate "line", 421
+ $P949 = self."!PREFIX__!subrule"("O", "++")
+ new $P950, "ResizablePMCArray"
+ push $P950, $P949
+ .return ($P950)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<-->" :subid("237_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx951_tgt
- .local int rx951_pos
- .local int rx951_off
- .local int rx951_eos
- .local int rx951_rep
- .local pmc rx951_cur
- (rx951_cur, rx951_pos, rx951_tgt) = self."!cursor_start"()
- rx951_cur."!cursor_debug"("START ", "prefix:sym<-->")
- .lex unicode:"$\x{a2}", rx951_cur
- .local pmc match
- .lex "$/", match
- length rx951_eos, rx951_tgt
- set rx951_off, 0
- lt rx951_pos, 2, rx951_start
- sub rx951_off, rx951_pos, 1
- substr rx951_tgt, rx951_tgt, rx951_off
- rx951_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan955_done
- goto rxscan955_scan
- rxscan955_loop:
- ($P10) = rx951_cur."from"()
- inc $P10
- set rx951_pos, $P10
- ge rx951_pos, rx951_eos, rxscan955_done
- rxscan955_scan:
- set_addr $I10, rxscan955_loop
- rx951_cur."!mark_push"(0, rx951_pos, $I10)
- rxscan955_done:
-.annotate "line", 462
+.sub "prefix:sym<-->" :subid("237_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx954_tgt
+ .local int rx954_pos
+ .local int rx954_off
+ .local int rx954_eos
+ .local int rx954_rep
+ .local pmc rx954_cur
+ (rx954_cur, rx954_pos, rx954_tgt) = self."!cursor_start"()
+ rx954_cur."!cursor_debug"("START ", "prefix:sym<-->")
+ .lex unicode:"$\x{a2}", rx954_cur
+ .local pmc match
+ .lex "$/", match
+ length rx954_eos, rx954_tgt
+ set rx954_off, 0
+ lt rx954_pos, 2, rx954_start
+ sub rx954_off, rx954_pos, 1
+ substr rx954_tgt, rx954_tgt, rx954_off
+ rx954_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan958_done
+ goto rxscan958_scan
+ rxscan958_loop:
+ ($P10) = rx954_cur."from"()
+ inc $P10
+ set rx954_pos, $P10
+ ge rx954_pos, rx954_eos, rxscan958_done
+ rxscan958_scan:
+ set_addr $I10, rxscan958_loop
+ rx954_cur."!mark_push"(0, rx954_pos, $I10)
+ rxscan958_done:
+.annotate "line", 466
# rx subcapture "sym"
- set_addr $I10, rxcap_956_fail
- rx951_cur."!mark_push"(0, rx951_pos, $I10)
+ set_addr $I10, rxcap_959_fail
+ rx954_cur."!mark_push"(0, rx954_pos, $I10)
# rx literal "--"
- add $I11, rx951_pos, 2
- gt $I11, rx951_eos, rx951_fail
- sub $I11, rx951_pos, rx951_off
- substr $S10, rx951_tgt, $I11, 2
- ne $S10, "--", rx951_fail
- add rx951_pos, 2
- set_addr $I10, rxcap_956_fail
- ($I12, $I11) = rx951_cur."!mark_peek"($I10)
- rx951_cur."!cursor_pos"($I11)
- ($P10) = rx951_cur."!cursor_start"()
- $P10."!cursor_pass"(rx951_pos, "")
- rx951_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx954_pos, 2
+ gt $I11, rx954_eos, rx954_fail
+ sub $I11, rx954_pos, rx954_off
+ substr $S10, rx954_tgt, $I11, 2
+ ne $S10, "--", rx954_fail
+ add rx954_pos, 2
+ set_addr $I10, rxcap_959_fail
+ ($I12, $I11) = rx954_cur."!mark_peek"($I10)
+ rx954_cur."!cursor_pos"($I11)
+ ($P10) = rx954_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx954_pos, "")
+ rx954_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_956_done
- rxcap_956_fail:
- goto rx951_fail
- rxcap_956_done:
+ goto rxcap_959_done
+ rxcap_959_fail:
+ goto rx954_fail
+ rxcap_959_done:
# rx subrule "O" subtype=capture negate=
- rx951_cur."!cursor_pos"(rx951_pos)
- $P10 = rx951_cur."O"("%autoincrement, :pirop<dec>")
- unless $P10, rx951_fail
- rx951_cur."!mark_push"(0, -1, 0, $P10)
+ rx954_cur."!cursor_pos"(rx954_pos)
+ $P10 = rx954_cur."O"("%autoincrement, :pirop<dec>")
+ unless $P10, rx954_fail
+ rx954_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx951_pos = $P10."pos"()
+ rx954_pos = $P10."pos"()
# rx pass
- rx951_cur."!cursor_pass"(rx951_pos, "prefix:sym<-->")
- rx951_cur."!cursor_debug"("PASS ", "prefix:sym<-->", " at pos=", rx951_pos)
- .return (rx951_cur)
- rx951_fail:
-.annotate "line", 417
- (rx951_rep, rx951_pos, $I10, $P10) = rx951_cur."!mark_fail"(0)
- lt rx951_pos, -1, rx951_done
- eq rx951_pos, -1, rx951_fail
+ rx954_cur."!cursor_pass"(rx954_pos, "prefix:sym<-->")
+ rx954_cur."!cursor_debug"("PASS ", "prefix:sym<-->", " at pos=", rx954_pos)
+ .return (rx954_cur)
+ rx954_fail:
+.annotate "line", 421
+ (rx954_rep, rx954_pos, $I10, $P10) = rx954_cur."!mark_fail"(0)
+ lt rx954_pos, -1, rx954_done
+ eq rx954_pos, -1, rx954_fail
jump $I10
- rx951_done:
- rx951_cur."!cursor_fail"()
- rx951_cur."!cursor_debug"("FAIL ", "prefix:sym<-->")
- .return (rx951_cur)
+ rx954_done:
+ rx954_cur."!cursor_fail"()
+ rx954_cur."!cursor_debug"("FAIL ", "prefix:sym<-->")
+ .return (rx954_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<-->" :subid("238_1267204702.05125") :method
-.annotate "line", 417
- $P953 = self."!PREFIX__!subrule"("O", "--")
- new $P954, "ResizablePMCArray"
- push $P954, $P953
- .return ($P954)
+.sub "!PREFIX__prefix:sym<-->" :subid("238_1271336396.90314") :method
+.annotate "line", 421
+ $P956 = self."!PREFIX__!subrule"("O", "--")
+ new $P957, "ResizablePMCArray"
+ push $P957, $P956
+ .return ($P957)
.end
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<++>" :subid("239_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx958_tgt
- .local int rx958_pos
- .local int rx958_off
- .local int rx958_eos
- .local int rx958_rep
- .local pmc rx958_cur
- (rx958_cur, rx958_pos, rx958_tgt) = self."!cursor_start"()
- rx958_cur."!cursor_debug"("START ", "postfix:sym<++>")
- .lex unicode:"$\x{a2}", rx958_cur
- .local pmc match
- .lex "$/", match
- length rx958_eos, rx958_tgt
- set rx958_off, 0
- lt rx958_pos, 2, rx958_start
- sub rx958_off, rx958_pos, 1
- substr rx958_tgt, rx958_tgt, rx958_off
- rx958_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan962_done
- goto rxscan962_scan
- rxscan962_loop:
- ($P10) = rx958_cur."from"()
- inc $P10
- set rx958_pos, $P10
- ge rx958_pos, rx958_eos, rxscan962_done
- rxscan962_scan:
- set_addr $I10, rxscan962_loop
- rx958_cur."!mark_push"(0, rx958_pos, $I10)
- rxscan962_done:
-.annotate "line", 465
+.sub "postfix:sym<++>" :subid("239_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .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 ", "postfix:sym<++>")
+ .lex unicode:"$\x{a2}", rx961_cur
+ .local pmc match
+ .lex "$/", match
+ length rx961_eos, rx961_tgt
+ set rx961_off, 0
+ lt rx961_pos, 2, rx961_start
+ sub rx961_off, rx961_pos, 1
+ substr rx961_tgt, rx961_tgt, rx961_off
+ rx961_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan965_done
+ goto rxscan965_scan
+ rxscan965_loop:
+ ($P10) = rx961_cur."from"()
+ inc $P10
+ set rx961_pos, $P10
+ ge rx961_pos, rx961_eos, rxscan965_done
+ rxscan965_scan:
+ set_addr $I10, rxscan965_loop
+ rx961_cur."!mark_push"(0, rx961_pos, $I10)
+ rxscan965_done:
+.annotate "line", 469
# rx subcapture "sym"
- set_addr $I10, rxcap_963_fail
- rx958_cur."!mark_push"(0, rx958_pos, $I10)
+ set_addr $I10, rxcap_966_fail
+ rx961_cur."!mark_push"(0, rx961_pos, $I10)
# rx literal "++"
- add $I11, rx958_pos, 2
- gt $I11, rx958_eos, rx958_fail
- sub $I11, rx958_pos, rx958_off
- substr $S10, rx958_tgt, $I11, 2
- ne $S10, "++", rx958_fail
- add rx958_pos, 2
- set_addr $I10, rxcap_963_fail
- ($I12, $I11) = rx958_cur."!mark_peek"($I10)
- rx958_cur."!cursor_pos"($I11)
- ($P10) = rx958_cur."!cursor_start"()
- $P10."!cursor_pass"(rx958_pos, "")
- rx958_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx961_pos, 2
+ gt $I11, rx961_eos, rx961_fail
+ sub $I11, rx961_pos, rx961_off
+ substr $S10, rx961_tgt, $I11, 2
+ ne $S10, "++", rx961_fail
+ add rx961_pos, 2
+ set_addr $I10, rxcap_966_fail
+ ($I12, $I11) = rx961_cur."!mark_peek"($I10)
+ rx961_cur."!cursor_pos"($I11)
+ ($P10) = rx961_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx961_pos, "")
+ rx961_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_963_done
- rxcap_963_fail:
- goto rx958_fail
- rxcap_963_done:
+ goto rxcap_966_done
+ rxcap_966_fail:
+ goto rx961_fail
+ rxcap_966_done:
# rx subrule "O" subtype=capture negate=
- rx958_cur."!cursor_pos"(rx958_pos)
- $P10 = rx958_cur."O"("%autoincrement")
- unless $P10, rx958_fail
- rx958_cur."!mark_push"(0, -1, 0, $P10)
+ rx961_cur."!cursor_pos"(rx961_pos)
+ $P10 = rx961_cur."O"("%autoincrement")
+ unless $P10, rx961_fail
+ rx961_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx958_pos = $P10."pos"()
+ rx961_pos = $P10."pos"()
# rx pass
- rx958_cur."!cursor_pass"(rx958_pos, "postfix:sym<++>")
- rx958_cur."!cursor_debug"("PASS ", "postfix:sym<++>", " at pos=", rx958_pos)
- .return (rx958_cur)
- rx958_fail:
-.annotate "line", 417
- (rx958_rep, rx958_pos, $I10, $P10) = rx958_cur."!mark_fail"(0)
- lt rx958_pos, -1, rx958_done
- eq rx958_pos, -1, rx958_fail
+ rx961_cur."!cursor_pass"(rx961_pos, "postfix:sym<++>")
+ rx961_cur."!cursor_debug"("PASS ", "postfix:sym<++>", " at pos=", rx961_pos)
+ .return (rx961_cur)
+ rx961_fail:
+.annotate "line", 421
+ (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
- rx958_done:
- rx958_cur."!cursor_fail"()
- rx958_cur."!cursor_debug"("FAIL ", "postfix:sym<++>")
- .return (rx958_cur)
+ rx961_done:
+ rx961_cur."!cursor_fail"()
+ rx961_cur."!cursor_debug"("FAIL ", "postfix:sym<++>")
+ .return (rx961_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<++>" :subid("240_1267204702.05125") :method
-.annotate "line", 417
- $P960 = self."!PREFIX__!subrule"("O", "++")
- new $P961, "ResizablePMCArray"
- push $P961, $P960
- .return ($P961)
+.sub "!PREFIX__postfix:sym<++>" :subid("240_1271336396.90314") :method
+.annotate "line", 421
+ $P963 = self."!PREFIX__!subrule"("O", "++")
+ new $P964, "ResizablePMCArray"
+ push $P964, $P963
+ .return ($P964)
.end
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<-->" :subid("241_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx965_tgt
- .local int rx965_pos
- .local int rx965_off
- .local int rx965_eos
- .local int rx965_rep
- .local pmc rx965_cur
- (rx965_cur, rx965_pos, rx965_tgt) = self."!cursor_start"()
- rx965_cur."!cursor_debug"("START ", "postfix:sym<-->")
- .lex unicode:"$\x{a2}", rx965_cur
- .local pmc match
- .lex "$/", match
- length rx965_eos, rx965_tgt
- set rx965_off, 0
- lt rx965_pos, 2, rx965_start
- sub rx965_off, rx965_pos, 1
- substr rx965_tgt, rx965_tgt, rx965_off
- rx965_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan969_done
- goto rxscan969_scan
- rxscan969_loop:
- ($P10) = rx965_cur."from"()
- inc $P10
- set rx965_pos, $P10
- ge rx965_pos, rx965_eos, rxscan969_done
- rxscan969_scan:
- set_addr $I10, rxscan969_loop
- rx965_cur."!mark_push"(0, rx965_pos, $I10)
- rxscan969_done:
-.annotate "line", 466
+.sub "postfix:sym<-->" :subid("241_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx968_tgt
+ .local int rx968_pos
+ .local int rx968_off
+ .local int rx968_eos
+ .local int rx968_rep
+ .local pmc rx968_cur
+ (rx968_cur, rx968_pos, rx968_tgt) = self."!cursor_start"()
+ rx968_cur."!cursor_debug"("START ", "postfix:sym<-->")
+ .lex unicode:"$\x{a2}", rx968_cur
+ .local pmc match
+ .lex "$/", match
+ length rx968_eos, rx968_tgt
+ set rx968_off, 0
+ lt rx968_pos, 2, rx968_start
+ sub rx968_off, rx968_pos, 1
+ substr rx968_tgt, rx968_tgt, rx968_off
+ rx968_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan972_done
+ goto rxscan972_scan
+ rxscan972_loop:
+ ($P10) = rx968_cur."from"()
+ inc $P10
+ set rx968_pos, $P10
+ ge rx968_pos, rx968_eos, rxscan972_done
+ rxscan972_scan:
+ set_addr $I10, rxscan972_loop
+ rx968_cur."!mark_push"(0, rx968_pos, $I10)
+ rxscan972_done:
+.annotate "line", 470
# rx subcapture "sym"
- set_addr $I10, rxcap_970_fail
- rx965_cur."!mark_push"(0, rx965_pos, $I10)
+ set_addr $I10, rxcap_973_fail
+ rx968_cur."!mark_push"(0, rx968_pos, $I10)
# rx literal "--"
- add $I11, rx965_pos, 2
- gt $I11, rx965_eos, rx965_fail
- sub $I11, rx965_pos, rx965_off
- substr $S10, rx965_tgt, $I11, 2
- ne $S10, "--", rx965_fail
- add rx965_pos, 2
- set_addr $I10, rxcap_970_fail
- ($I12, $I11) = rx965_cur."!mark_peek"($I10)
- rx965_cur."!cursor_pos"($I11)
- ($P10) = rx965_cur."!cursor_start"()
- $P10."!cursor_pass"(rx965_pos, "")
- rx965_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx968_pos, 2
+ gt $I11, rx968_eos, rx968_fail
+ sub $I11, rx968_pos, rx968_off
+ substr $S10, rx968_tgt, $I11, 2
+ ne $S10, "--", rx968_fail
+ add rx968_pos, 2
+ set_addr $I10, rxcap_973_fail
+ ($I12, $I11) = rx968_cur."!mark_peek"($I10)
+ rx968_cur."!cursor_pos"($I11)
+ ($P10) = rx968_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx968_pos, "")
+ rx968_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_970_done
- rxcap_970_fail:
- goto rx965_fail
- rxcap_970_done:
+ goto rxcap_973_done
+ rxcap_973_fail:
+ goto rx968_fail
+ rxcap_973_done:
# rx subrule "O" subtype=capture negate=
- rx965_cur."!cursor_pos"(rx965_pos)
- $P10 = rx965_cur."O"("%autoincrement")
- unless $P10, rx965_fail
- rx965_cur."!mark_push"(0, -1, 0, $P10)
+ rx968_cur."!cursor_pos"(rx968_pos)
+ $P10 = rx968_cur."O"("%autoincrement")
+ unless $P10, rx968_fail
+ rx968_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx965_pos = $P10."pos"()
+ rx968_pos = $P10."pos"()
# rx pass
- rx965_cur."!cursor_pass"(rx965_pos, "postfix:sym<-->")
- rx965_cur."!cursor_debug"("PASS ", "postfix:sym<-->", " at pos=", rx965_pos)
- .return (rx965_cur)
- rx965_fail:
-.annotate "line", 417
- (rx965_rep, rx965_pos, $I10, $P10) = rx965_cur."!mark_fail"(0)
- lt rx965_pos, -1, rx965_done
- eq rx965_pos, -1, rx965_fail
+ rx968_cur."!cursor_pass"(rx968_pos, "postfix:sym<-->")
+ rx968_cur."!cursor_debug"("PASS ", "postfix:sym<-->", " at pos=", rx968_pos)
+ .return (rx968_cur)
+ rx968_fail:
+.annotate "line", 421
+ (rx968_rep, rx968_pos, $I10, $P10) = rx968_cur."!mark_fail"(0)
+ lt rx968_pos, -1, rx968_done
+ eq rx968_pos, -1, rx968_fail
jump $I10
- rx965_done:
- rx965_cur."!cursor_fail"()
- rx965_cur."!cursor_debug"("FAIL ", "postfix:sym<-->")
- .return (rx965_cur)
+ rx968_done:
+ rx968_cur."!cursor_fail"()
+ rx968_cur."!cursor_debug"("FAIL ", "postfix:sym<-->")
+ .return (rx968_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<-->" :subid("242_1267204702.05125") :method
-.annotate "line", 417
- $P967 = self."!PREFIX__!subrule"("O", "--")
- new $P968, "ResizablePMCArray"
- push $P968, $P967
- .return ($P968)
+.sub "!PREFIX__postfix:sym<-->" :subid("242_1271336396.90314") :method
+.annotate "line", 421
+ $P970 = self."!PREFIX__!subrule"("O", "--")
+ new $P971, "ResizablePMCArray"
+ push $P971, $P970
+ .return ($P971)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<**>" :subid("243_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx972_tgt
- .local int rx972_pos
- .local int rx972_off
- .local int rx972_eos
- .local int rx972_rep
- .local pmc rx972_cur
- (rx972_cur, rx972_pos, rx972_tgt) = self."!cursor_start"()
- rx972_cur."!cursor_debug"("START ", "infix:sym<**>")
- .lex unicode:"$\x{a2}", rx972_cur
- .local pmc match
- .lex "$/", match
- length rx972_eos, rx972_tgt
- set rx972_off, 0
- lt rx972_pos, 2, rx972_start
- sub rx972_off, rx972_pos, 1
- substr rx972_tgt, rx972_tgt, rx972_off
- rx972_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan976_done
- goto rxscan976_scan
- rxscan976_loop:
- ($P10) = rx972_cur."from"()
- inc $P10
- set rx972_pos, $P10
- ge rx972_pos, rx972_eos, rxscan976_done
- rxscan976_scan:
- set_addr $I10, rxscan976_loop
- rx972_cur."!mark_push"(0, rx972_pos, $I10)
- rxscan976_done:
-.annotate "line", 468
+.sub "infix:sym<**>" :subid("243_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx975_tgt
+ .local int rx975_pos
+ .local int rx975_off
+ .local int rx975_eos
+ .local int rx975_rep
+ .local pmc rx975_cur
+ (rx975_cur, rx975_pos, rx975_tgt) = self."!cursor_start"()
+ rx975_cur."!cursor_debug"("START ", "infix:sym<**>")
+ .lex unicode:"$\x{a2}", rx975_cur
+ .local pmc match
+ .lex "$/", match
+ length rx975_eos, rx975_tgt
+ set rx975_off, 0
+ lt rx975_pos, 2, rx975_start
+ sub rx975_off, rx975_pos, 1
+ substr rx975_tgt, rx975_tgt, rx975_off
+ rx975_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan979_done
+ goto rxscan979_scan
+ rxscan979_loop:
+ ($P10) = rx975_cur."from"()
+ inc $P10
+ set rx975_pos, $P10
+ ge rx975_pos, rx975_eos, rxscan979_done
+ rxscan979_scan:
+ set_addr $I10, rxscan979_loop
+ rx975_cur."!mark_push"(0, rx975_pos, $I10)
+ rxscan979_done:
+.annotate "line", 472
# rx subcapture "sym"
- set_addr $I10, rxcap_977_fail
- rx972_cur."!mark_push"(0, rx972_pos, $I10)
+ set_addr $I10, rxcap_980_fail
+ rx975_cur."!mark_push"(0, rx975_pos, $I10)
# rx literal "**"
- add $I11, rx972_pos, 2
- gt $I11, rx972_eos, rx972_fail
- sub $I11, rx972_pos, rx972_off
- substr $S10, rx972_tgt, $I11, 2
- ne $S10, "**", rx972_fail
- add rx972_pos, 2
- set_addr $I10, rxcap_977_fail
- ($I12, $I11) = rx972_cur."!mark_peek"($I10)
- rx972_cur."!cursor_pos"($I11)
- ($P10) = rx972_cur."!cursor_start"()
- $P10."!cursor_pass"(rx972_pos, "")
- rx972_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx975_pos, 2
+ gt $I11, rx975_eos, rx975_fail
+ sub $I11, rx975_pos, rx975_off
+ substr $S10, rx975_tgt, $I11, 2
+ ne $S10, "**", rx975_fail
+ add rx975_pos, 2
+ set_addr $I10, rxcap_980_fail
+ ($I12, $I11) = rx975_cur."!mark_peek"($I10)
+ rx975_cur."!cursor_pos"($I11)
+ ($P10) = rx975_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx975_pos, "")
+ rx975_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_977_done
- rxcap_977_fail:
- goto rx972_fail
- rxcap_977_done:
+ goto rxcap_980_done
+ rxcap_980_fail:
+ goto rx975_fail
+ rxcap_980_done:
# rx subrule "O" subtype=capture negate=
- rx972_cur."!cursor_pos"(rx972_pos)
- $P10 = rx972_cur."O"("%exponentiation, :pirop<pow>")
- unless $P10, rx972_fail
- rx972_cur."!mark_push"(0, -1, 0, $P10)
+ rx975_cur."!cursor_pos"(rx975_pos)
+ $P10 = rx975_cur."O"("%exponentiation, :pirop<pow>")
+ unless $P10, rx975_fail
+ rx975_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx972_pos = $P10."pos"()
+ rx975_pos = $P10."pos"()
# rx pass
- rx972_cur."!cursor_pass"(rx972_pos, "infix:sym<**>")
- rx972_cur."!cursor_debug"("PASS ", "infix:sym<**>", " at pos=", rx972_pos)
- .return (rx972_cur)
- rx972_fail:
-.annotate "line", 417
- (rx972_rep, rx972_pos, $I10, $P10) = rx972_cur."!mark_fail"(0)
- lt rx972_pos, -1, rx972_done
- eq rx972_pos, -1, rx972_fail
+ rx975_cur."!cursor_pass"(rx975_pos, "infix:sym<**>")
+ rx975_cur."!cursor_debug"("PASS ", "infix:sym<**>", " at pos=", rx975_pos)
+ .return (rx975_cur)
+ rx975_fail:
+.annotate "line", 421
+ (rx975_rep, rx975_pos, $I10, $P10) = rx975_cur."!mark_fail"(0)
+ lt rx975_pos, -1, rx975_done
+ eq rx975_pos, -1, rx975_fail
jump $I10
- rx972_done:
- rx972_cur."!cursor_fail"()
- rx972_cur."!cursor_debug"("FAIL ", "infix:sym<**>")
- .return (rx972_cur)
+ rx975_done:
+ rx975_cur."!cursor_fail"()
+ rx975_cur."!cursor_debug"("FAIL ", "infix:sym<**>")
+ .return (rx975_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<**>" :subid("244_1267204702.05125") :method
-.annotate "line", 417
- $P974 = self."!PREFIX__!subrule"("O", "**")
- new $P975, "ResizablePMCArray"
- push $P975, $P974
- .return ($P975)
+.sub "!PREFIX__infix:sym<**>" :subid("244_1271336396.90314") :method
+.annotate "line", 421
+ $P977 = self."!PREFIX__!subrule"("O", "**")
+ new $P978, "ResizablePMCArray"
+ push $P978, $P977
+ .return ($P978)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<+>" :subid("245_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .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 ", "prefix:sym<+>")
- .lex unicode:"$\x{a2}", rx979_cur
- .local pmc match
- .lex "$/", match
- length rx979_eos, rx979_tgt
- 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", 470
+.sub "prefix:sym<+>" :subid("245_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .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) = self."!cursor_start"()
+ rx982_cur."!cursor_debug"("START ", "prefix:sym<+>")
+ .lex unicode:"$\x{a2}", rx982_cur
+ .local pmc match
+ .lex "$/", match
+ length rx982_eos, rx982_tgt
+ 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:
+ $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", 474
# rx subcapture "sym"
- set_addr $I10, rxcap_984_fail
- rx979_cur."!mark_push"(0, rx979_pos, $I10)
+ set_addr $I10, rxcap_987_fail
+ rx982_cur."!mark_push"(0, rx982_pos, $I10)
# rx literal "+"
- add $I11, rx979_pos, 1
- gt $I11, rx979_eos, rx979_fail
- sub $I11, rx979_pos, rx979_off
- substr $S10, rx979_tgt, $I11, 1
- ne $S10, "+", rx979_fail
- add rx979_pos, 1
- set_addr $I10, rxcap_984_fail
- ($I12, $I11) = rx979_cur."!mark_peek"($I10)
- rx979_cur."!cursor_pos"($I11)
- ($P10) = rx979_cur."!cursor_start"()
- $P10."!cursor_pass"(rx979_pos, "")
- rx979_cur."!mark_push"(0, -1, 0, $P10)
+ 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
+ set_addr $I10, rxcap_987_fail
+ ($I12, $I11) = rx982_cur."!mark_peek"($I10)
+ rx982_cur."!cursor_pos"($I11)
+ ($P10) = rx982_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx982_pos, "")
+ rx982_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_984_done
- rxcap_984_fail:
- goto rx979_fail
- rxcap_984_done:
+ goto rxcap_987_done
+ rxcap_987_fail:
+ goto rx982_fail
+ rxcap_987_done:
# rx subrule "O" subtype=capture negate=
- rx979_cur."!cursor_pos"(rx979_pos)
- $P10 = rx979_cur."O"("%symbolic_unary, :pirop<set N*>")
- unless $P10, rx979_fail
- rx979_cur."!mark_push"(0, -1, 0, $P10)
+ rx982_cur."!cursor_pos"(rx982_pos)
+ $P10 = rx982_cur."O"("%symbolic_unary, :pirop<set N*>")
+ unless $P10, rx982_fail
+ rx982_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx979_pos = $P10."pos"()
+ rx982_pos = $P10."pos"()
# rx pass
- rx979_cur."!cursor_pass"(rx979_pos, "prefix:sym<+>")
- rx979_cur."!cursor_debug"("PASS ", "prefix:sym<+>", " at pos=", rx979_pos)
- .return (rx979_cur)
- rx979_fail:
-.annotate "line", 417
- (rx979_rep, rx979_pos, $I10, $P10) = rx979_cur."!mark_fail"(0)
- lt rx979_pos, -1, rx979_done
- eq rx979_pos, -1, rx979_fail
+ rx982_cur."!cursor_pass"(rx982_pos, "prefix:sym<+>")
+ rx982_cur."!cursor_debug"("PASS ", "prefix:sym<+>", " at pos=", rx982_pos)
+ .return (rx982_cur)
+ rx982_fail:
+.annotate "line", 421
+ (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
- rx979_done:
- rx979_cur."!cursor_fail"()
- rx979_cur."!cursor_debug"("FAIL ", "prefix:sym<+>")
- .return (rx979_cur)
+ rx982_done:
+ rx982_cur."!cursor_fail"()
+ rx982_cur."!cursor_debug"("FAIL ", "prefix:sym<+>")
+ .return (rx982_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<+>" :subid("246_1267204702.05125") :method
-.annotate "line", 417
- $P981 = self."!PREFIX__!subrule"("O", "+")
- new $P982, "ResizablePMCArray"
- push $P982, $P981
- .return ($P982)
+.sub "!PREFIX__prefix:sym<+>" :subid("246_1271336396.90314") :method
+.annotate "line", 421
+ $P984 = self."!PREFIX__!subrule"("O", "+")
+ new $P985, "ResizablePMCArray"
+ push $P985, $P984
+ .return ($P985)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<~>" :subid("247_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx986_tgt
- .local int rx986_pos
- .local int rx986_off
- .local int rx986_eos
- .local int rx986_rep
- .local pmc rx986_cur
- (rx986_cur, rx986_pos, rx986_tgt) = self."!cursor_start"()
- rx986_cur."!cursor_debug"("START ", "prefix:sym<~>")
- .lex unicode:"$\x{a2}", rx986_cur
- .local pmc match
- .lex "$/", match
- length rx986_eos, rx986_tgt
- set rx986_off, 0
- lt rx986_pos, 2, rx986_start
- sub rx986_off, rx986_pos, 1
- substr rx986_tgt, rx986_tgt, rx986_off
- rx986_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan990_done
- goto rxscan990_scan
- rxscan990_loop:
- ($P10) = rx986_cur."from"()
- inc $P10
- set rx986_pos, $P10
- ge rx986_pos, rx986_eos, rxscan990_done
- rxscan990_scan:
- set_addr $I10, rxscan990_loop
- rx986_cur."!mark_push"(0, rx986_pos, $I10)
- rxscan990_done:
-.annotate "line", 471
+.sub "prefix:sym<~>" :subid("247_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx989_tgt
+ .local int rx989_pos
+ .local int rx989_off
+ .local int rx989_eos
+ .local int rx989_rep
+ .local pmc rx989_cur
+ (rx989_cur, rx989_pos, rx989_tgt) = self."!cursor_start"()
+ rx989_cur."!cursor_debug"("START ", "prefix:sym<~>")
+ .lex unicode:"$\x{a2}", rx989_cur
+ .local pmc match
+ .lex "$/", match
+ length rx989_eos, rx989_tgt
+ set rx989_off, 0
+ lt rx989_pos, 2, rx989_start
+ sub rx989_off, rx989_pos, 1
+ substr rx989_tgt, rx989_tgt, rx989_off
+ rx989_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan993_done
+ goto rxscan993_scan
+ rxscan993_loop:
+ ($P10) = rx989_cur."from"()
+ inc $P10
+ set rx989_pos, $P10
+ ge rx989_pos, rx989_eos, rxscan993_done
+ rxscan993_scan:
+ set_addr $I10, rxscan993_loop
+ rx989_cur."!mark_push"(0, rx989_pos, $I10)
+ rxscan993_done:
+.annotate "line", 475
# rx subcapture "sym"
- set_addr $I10, rxcap_991_fail
- rx986_cur."!mark_push"(0, rx986_pos, $I10)
+ set_addr $I10, rxcap_994_fail
+ rx989_cur."!mark_push"(0, rx989_pos, $I10)
# rx literal "~"
- add $I11, rx986_pos, 1
- gt $I11, rx986_eos, rx986_fail
- sub $I11, rx986_pos, rx986_off
- substr $S10, rx986_tgt, $I11, 1
- ne $S10, "~", rx986_fail
- add rx986_pos, 1
- set_addr $I10, rxcap_991_fail
- ($I12, $I11) = rx986_cur."!mark_peek"($I10)
- rx986_cur."!cursor_pos"($I11)
- ($P10) = rx986_cur."!cursor_start"()
- $P10."!cursor_pass"(rx986_pos, "")
- rx986_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx989_pos, 1
+ gt $I11, rx989_eos, rx989_fail
+ sub $I11, rx989_pos, rx989_off
+ substr $S10, rx989_tgt, $I11, 1
+ ne $S10, "~", rx989_fail
+ add rx989_pos, 1
+ set_addr $I10, rxcap_994_fail
+ ($I12, $I11) = rx989_cur."!mark_peek"($I10)
+ rx989_cur."!cursor_pos"($I11)
+ ($P10) = rx989_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx989_pos, "")
+ rx989_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_991_done
- rxcap_991_fail:
- goto rx986_fail
- rxcap_991_done:
+ goto rxcap_994_done
+ rxcap_994_fail:
+ goto rx989_fail
+ rxcap_994_done:
# rx subrule "O" subtype=capture negate=
- rx986_cur."!cursor_pos"(rx986_pos)
- $P10 = rx986_cur."O"("%symbolic_unary, :pirop<set S*>")
- unless $P10, rx986_fail
- rx986_cur."!mark_push"(0, -1, 0, $P10)
+ rx989_cur."!cursor_pos"(rx989_pos)
+ $P10 = rx989_cur."O"("%symbolic_unary, :pirop<set S*>")
+ unless $P10, rx989_fail
+ rx989_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx986_pos = $P10."pos"()
+ rx989_pos = $P10."pos"()
# rx pass
- rx986_cur."!cursor_pass"(rx986_pos, "prefix:sym<~>")
- rx986_cur."!cursor_debug"("PASS ", "prefix:sym<~>", " at pos=", rx986_pos)
- .return (rx986_cur)
- rx986_fail:
-.annotate "line", 417
- (rx986_rep, rx986_pos, $I10, $P10) = rx986_cur."!mark_fail"(0)
- lt rx986_pos, -1, rx986_done
- eq rx986_pos, -1, rx986_fail
+ rx989_cur."!cursor_pass"(rx989_pos, "prefix:sym<~>")
+ rx989_cur."!cursor_debug"("PASS ", "prefix:sym<~>", " at pos=", rx989_pos)
+ .return (rx989_cur)
+ rx989_fail:
+.annotate "line", 421
+ (rx989_rep, rx989_pos, $I10, $P10) = rx989_cur."!mark_fail"(0)
+ lt rx989_pos, -1, rx989_done
+ eq rx989_pos, -1, rx989_fail
jump $I10
- rx986_done:
- rx986_cur."!cursor_fail"()
- rx986_cur."!cursor_debug"("FAIL ", "prefix:sym<~>")
- .return (rx986_cur)
+ rx989_done:
+ rx989_cur."!cursor_fail"()
+ rx989_cur."!cursor_debug"("FAIL ", "prefix:sym<~>")
+ .return (rx989_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<~>" :subid("248_1267204702.05125") :method
-.annotate "line", 417
- $P988 = self."!PREFIX__!subrule"("O", "~")
- new $P989, "ResizablePMCArray"
- push $P989, $P988
- .return ($P989)
+.sub "!PREFIX__prefix:sym<~>" :subid("248_1271336396.90314") :method
+.annotate "line", 421
+ $P991 = self."!PREFIX__!subrule"("O", "~")
+ new $P992, "ResizablePMCArray"
+ push $P992, $P991
+ .return ($P992)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<->" :subid("249_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .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) = self."!cursor_start"()
- rx993_cur."!cursor_debug"("START ", "prefix:sym<->")
- .lex unicode:"$\x{a2}", rx993_cur
- .local pmc match
- .lex "$/", match
- length rx993_eos, rx993_tgt
- 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:
- $I10 = self.'from'()
- ne $I10, -1, rxscan996_done
- goto rxscan996_scan
- rxscan996_loop:
- ($P10) = rx993_cur."from"()
- inc $P10
- set rx993_pos, $P10
- ge rx993_pos, rx993_eos, rxscan996_done
- rxscan996_scan:
- set_addr $I10, rxscan996_loop
- rx993_cur."!mark_push"(0, rx993_pos, $I10)
- rxscan996_done:
-.annotate "line", 472
+.sub "prefix:sym<->" :subid("249_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx996_tgt
+ .local int rx996_pos
+ .local int rx996_off
+ .local int rx996_eos
+ .local int rx996_rep
+ .local pmc rx996_cur
+ (rx996_cur, rx996_pos, rx996_tgt) = self."!cursor_start"()
+ rx996_cur."!cursor_debug"("START ", "prefix:sym<->")
+ .lex unicode:"$\x{a2}", rx996_cur
+ .local pmc match
+ .lex "$/", match
+ length rx996_eos, rx996_tgt
+ set rx996_off, 0
+ lt rx996_pos, 2, rx996_start
+ sub rx996_off, rx996_pos, 1
+ substr rx996_tgt, rx996_tgt, rx996_off
+ rx996_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan999_done
+ goto rxscan999_scan
+ rxscan999_loop:
+ ($P10) = rx996_cur."from"()
+ inc $P10
+ set rx996_pos, $P10
+ ge rx996_pos, rx996_eos, rxscan999_done
+ rxscan999_scan:
+ set_addr $I10, rxscan999_loop
+ rx996_cur."!mark_push"(0, rx996_pos, $I10)
+ rxscan999_done:
+.annotate "line", 476
# rx subcapture "sym"
- set_addr $I10, rxcap_997_fail
- rx993_cur."!mark_push"(0, rx993_pos, $I10)
+ set_addr $I10, rxcap_1000_fail
+ rx996_cur."!mark_push"(0, rx996_pos, $I10)
# 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
- set_addr $I10, rxcap_997_fail
- ($I12, $I11) = rx993_cur."!mark_peek"($I10)
- rx993_cur."!cursor_pos"($I11)
- ($P10) = rx993_cur."!cursor_start"()
- $P10."!cursor_pass"(rx993_pos, "")
- rx993_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx996_pos, 1
+ gt $I11, rx996_eos, rx996_fail
+ sub $I11, rx996_pos, rx996_off
+ substr $S10, rx996_tgt, $I11, 1
+ ne $S10, "-", rx996_fail
+ add rx996_pos, 1
+ set_addr $I10, rxcap_1000_fail
+ ($I12, $I11) = rx996_cur."!mark_peek"($I10)
+ rx996_cur."!cursor_pos"($I11)
+ ($P10) = rx996_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx996_pos, "")
+ rx996_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_997_done
- rxcap_997_fail:
- goto rx993_fail
- rxcap_997_done:
+ goto rxcap_1000_done
+ rxcap_1000_fail:
+ goto rx996_fail
+ rxcap_1000_done:
# rx enumcharlist negate=1 zerowidth
- ge rx993_pos, rx993_eos, rx993_fail
- sub $I10, rx993_pos, rx993_off
- substr $S10, rx993_tgt, $I10, 1
+ ge rx996_pos, rx996_eos, rx996_fail
+ sub $I10, rx996_pos, rx996_off
+ substr $S10, rx996_tgt, $I10, 1
index $I11, ">", $S10
- ge $I11, 0, rx993_fail
+ ge $I11, 0, rx996_fail
# rx subrule "number" subtype=zerowidth negate=1
- rx993_cur."!cursor_pos"(rx993_pos)
- $P10 = rx993_cur."number"()
- if $P10, rx993_fail
+ rx996_cur."!cursor_pos"(rx996_pos)
+ $P10 = rx996_cur."number"()
+ if $P10, rx996_fail
# rx subrule "O" subtype=capture negate=
- rx993_cur."!cursor_pos"(rx993_pos)
- $P10 = rx993_cur."O"("%symbolic_unary, :pirop<neg>")
- unless $P10, rx993_fail
- rx993_cur."!mark_push"(0, -1, 0, $P10)
+ rx996_cur."!cursor_pos"(rx996_pos)
+ $P10 = rx996_cur."O"("%symbolic_unary, :pirop<neg>")
+ unless $P10, rx996_fail
+ rx996_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx993_pos = $P10."pos"()
+ rx996_pos = $P10."pos"()
# rx pass
- rx993_cur."!cursor_pass"(rx993_pos, "prefix:sym<->")
- rx993_cur."!cursor_debug"("PASS ", "prefix:sym<->", " at pos=", rx993_pos)
- .return (rx993_cur)
- rx993_fail:
-.annotate "line", 417
- (rx993_rep, rx993_pos, $I10, $P10) = rx993_cur."!mark_fail"(0)
- lt rx993_pos, -1, rx993_done
- eq rx993_pos, -1, rx993_fail
+ rx996_cur."!cursor_pass"(rx996_pos, "prefix:sym<->")
+ rx996_cur."!cursor_debug"("PASS ", "prefix:sym<->", " at pos=", rx996_pos)
+ .return (rx996_cur)
+ rx996_fail:
+.annotate "line", 421
+ (rx996_rep, rx996_pos, $I10, $P10) = rx996_cur."!mark_fail"(0)
+ lt rx996_pos, -1, rx996_done
+ eq rx996_pos, -1, rx996_fail
jump $I10
- rx993_done:
- rx993_cur."!cursor_fail"()
- rx993_cur."!cursor_debug"("FAIL ", "prefix:sym<->")
- .return (rx993_cur)
+ rx996_done:
+ rx996_cur."!cursor_fail"()
+ rx996_cur."!cursor_debug"("FAIL ", "prefix:sym<->")
+ .return (rx996_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<->" :subid("250_1267204702.05125") :method
-.annotate "line", 417
- new $P995, "ResizablePMCArray"
- push $P995, "-"
- .return ($P995)
+.sub "!PREFIX__prefix:sym<->" :subid("250_1271336396.90314") :method
+.annotate "line", 421
+ new $P998, "ResizablePMCArray"
+ push $P998, "-"
+ .return ($P998)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<?>" :subid("251_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx999_tgt
- .local int rx999_pos
- .local int rx999_off
- .local int rx999_eos
- .local int rx999_rep
- .local pmc rx999_cur
- (rx999_cur, rx999_pos, rx999_tgt) = self."!cursor_start"()
- rx999_cur."!cursor_debug"("START ", "prefix:sym<?>")
- .lex unicode:"$\x{a2}", rx999_cur
- .local pmc match
- .lex "$/", match
- length rx999_eos, rx999_tgt
- set rx999_off, 0
- lt rx999_pos, 2, rx999_start
- sub rx999_off, rx999_pos, 1
- substr rx999_tgt, rx999_tgt, rx999_off
- rx999_start:
- $I10 = self.'from'()
- ne $I10, -1, 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", 473
+.sub "prefix:sym<?>" :subid("251_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1002_tgt
+ .local int rx1002_pos
+ .local int rx1002_off
+ .local int rx1002_eos
+ .local int rx1002_rep
+ .local pmc rx1002_cur
+ (rx1002_cur, rx1002_pos, rx1002_tgt) = self."!cursor_start"()
+ rx1002_cur."!cursor_debug"("START ", "prefix:sym<?>")
+ .lex unicode:"$\x{a2}", rx1002_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1002_eos, rx1002_tgt
+ set rx1002_off, 0
+ lt rx1002_pos, 2, rx1002_start
+ sub rx1002_off, rx1002_pos, 1
+ substr rx1002_tgt, rx1002_tgt, rx1002_off
+ rx1002_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1006_done
+ goto rxscan1006_scan
+ rxscan1006_loop:
+ ($P10) = rx1002_cur."from"()
+ inc $P10
+ set rx1002_pos, $P10
+ ge rx1002_pos, rx1002_eos, rxscan1006_done
+ rxscan1006_scan:
+ set_addr $I10, rxscan1006_loop
+ rx1002_cur."!mark_push"(0, rx1002_pos, $I10)
+ rxscan1006_done:
+.annotate "line", 477
# rx subcapture "sym"
- set_addr $I10, rxcap_1004_fail
- rx999_cur."!mark_push"(0, rx999_pos, $I10)
+ set_addr $I10, rxcap_1007_fail
+ rx1002_cur."!mark_push"(0, rx1002_pos, $I10)
# rx literal "?"
- add $I11, rx999_pos, 1
- gt $I11, rx999_eos, rx999_fail
- sub $I11, rx999_pos, rx999_off
- substr $S10, rx999_tgt, $I11, 1
- ne $S10, "?", rx999_fail
- add rx999_pos, 1
- set_addr $I10, rxcap_1004_fail
- ($I12, $I11) = rx999_cur."!mark_peek"($I10)
- rx999_cur."!cursor_pos"($I11)
- ($P10) = rx999_cur."!cursor_start"()
- $P10."!cursor_pass"(rx999_pos, "")
- rx999_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1002_pos, 1
+ gt $I11, rx1002_eos, rx1002_fail
+ sub $I11, rx1002_pos, rx1002_off
+ substr $S10, rx1002_tgt, $I11, 1
+ ne $S10, "?", rx1002_fail
+ add rx1002_pos, 1
+ set_addr $I10, rxcap_1007_fail
+ ($I12, $I11) = rx1002_cur."!mark_peek"($I10)
+ rx1002_cur."!cursor_pos"($I11)
+ ($P10) = rx1002_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1002_pos, "")
+ rx1002_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1004_done
- rxcap_1004_fail:
- goto rx999_fail
- rxcap_1004_done:
+ goto rxcap_1007_done
+ rxcap_1007_fail:
+ goto rx1002_fail
+ rxcap_1007_done:
# rx subrule "O" subtype=capture negate=
- rx999_cur."!cursor_pos"(rx999_pos)
- $P10 = rx999_cur."O"("%symbolic_unary, :pirop<istrue>")
- unless $P10, rx999_fail
- rx999_cur."!mark_push"(0, -1, 0, $P10)
+ rx1002_cur."!cursor_pos"(rx1002_pos)
+ $P10 = rx1002_cur."O"("%symbolic_unary, :pirop<istrue>")
+ unless $P10, rx1002_fail
+ rx1002_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx999_pos = $P10."pos"()
+ rx1002_pos = $P10."pos"()
# rx pass
- rx999_cur."!cursor_pass"(rx999_pos, "prefix:sym<?>")
- rx999_cur."!cursor_debug"("PASS ", "prefix:sym<?>", " at pos=", rx999_pos)
- .return (rx999_cur)
- rx999_fail:
-.annotate "line", 417
- (rx999_rep, rx999_pos, $I10, $P10) = rx999_cur."!mark_fail"(0)
- lt rx999_pos, -1, rx999_done
- eq rx999_pos, -1, rx999_fail
+ rx1002_cur."!cursor_pass"(rx1002_pos, "prefix:sym<?>")
+ rx1002_cur."!cursor_debug"("PASS ", "prefix:sym<?>", " at pos=", rx1002_pos)
+ .return (rx1002_cur)
+ rx1002_fail:
+.annotate "line", 421
+ (rx1002_rep, rx1002_pos, $I10, $P10) = rx1002_cur."!mark_fail"(0)
+ lt rx1002_pos, -1, rx1002_done
+ eq rx1002_pos, -1, rx1002_fail
jump $I10
- rx999_done:
- rx999_cur."!cursor_fail"()
- rx999_cur."!cursor_debug"("FAIL ", "prefix:sym<?>")
- .return (rx999_cur)
+ rx1002_done:
+ rx1002_cur."!cursor_fail"()
+ rx1002_cur."!cursor_debug"("FAIL ", "prefix:sym<?>")
+ .return (rx1002_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<?>" :subid("252_1267204702.05125") :method
-.annotate "line", 417
- $P1001 = self."!PREFIX__!subrule"("O", "?")
- new $P1002, "ResizablePMCArray"
- push $P1002, $P1001
- .return ($P1002)
+.sub "!PREFIX__prefix:sym<?>" :subid("252_1271336396.90314") :method
+.annotate "line", 421
+ $P1004 = self."!PREFIX__!subrule"("O", "?")
+ new $P1005, "ResizablePMCArray"
+ push $P1005, $P1004
+ .return ($P1005)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<!>" :subid("253_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1006_tgt
- .local int rx1006_pos
- .local int rx1006_off
- .local int rx1006_eos
- .local int rx1006_rep
- .local pmc rx1006_cur
- (rx1006_cur, rx1006_pos, rx1006_tgt) = self."!cursor_start"()
- rx1006_cur."!cursor_debug"("START ", "prefix:sym<!>")
- .lex unicode:"$\x{a2}", rx1006_cur
- .local pmc match
- .lex "$/", match
- length rx1006_eos, rx1006_tgt
- set rx1006_off, 0
- lt rx1006_pos, 2, rx1006_start
- sub rx1006_off, rx1006_pos, 1
- substr rx1006_tgt, rx1006_tgt, rx1006_off
- rx1006_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1010_done
- goto rxscan1010_scan
- rxscan1010_loop:
- ($P10) = rx1006_cur."from"()
- inc $P10
- set rx1006_pos, $P10
- ge rx1006_pos, rx1006_eos, rxscan1010_done
- rxscan1010_scan:
- set_addr $I10, rxscan1010_loop
- rx1006_cur."!mark_push"(0, rx1006_pos, $I10)
- rxscan1010_done:
-.annotate "line", 474
+.sub "prefix:sym<!>" :subid("253_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .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 ", "prefix:sym<!>")
+ .lex unicode:"$\x{a2}", rx1009_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1009_eos, rx1009_tgt
+ set rx1009_off, 0
+ lt rx1009_pos, 2, rx1009_start
+ sub rx1009_off, rx1009_pos, 1
+ substr rx1009_tgt, rx1009_tgt, rx1009_off
+ rx1009_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1013_done
+ goto rxscan1013_scan
+ rxscan1013_loop:
+ ($P10) = rx1009_cur."from"()
+ inc $P10
+ set rx1009_pos, $P10
+ ge rx1009_pos, rx1009_eos, rxscan1013_done
+ rxscan1013_scan:
+ set_addr $I10, rxscan1013_loop
+ rx1009_cur."!mark_push"(0, rx1009_pos, $I10)
+ rxscan1013_done:
+.annotate "line", 478
# rx subcapture "sym"
- set_addr $I10, rxcap_1011_fail
- rx1006_cur."!mark_push"(0, rx1006_pos, $I10)
+ set_addr $I10, rxcap_1014_fail
+ rx1009_cur."!mark_push"(0, rx1009_pos, $I10)
# rx literal "!"
- add $I11, rx1006_pos, 1
- gt $I11, rx1006_eos, rx1006_fail
- sub $I11, rx1006_pos, rx1006_off
- substr $S10, rx1006_tgt, $I11, 1
- ne $S10, "!", rx1006_fail
- add rx1006_pos, 1
- set_addr $I10, rxcap_1011_fail
- ($I12, $I11) = rx1006_cur."!mark_peek"($I10)
- rx1006_cur."!cursor_pos"($I11)
- ($P10) = rx1006_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1006_pos, "")
- rx1006_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1009_pos, 1
+ gt $I11, rx1009_eos, rx1009_fail
+ sub $I11, rx1009_pos, rx1009_off
+ substr $S10, rx1009_tgt, $I11, 1
+ ne $S10, "!", rx1009_fail
+ add rx1009_pos, 1
+ set_addr $I10, rxcap_1014_fail
+ ($I12, $I11) = rx1009_cur."!mark_peek"($I10)
+ rx1009_cur."!cursor_pos"($I11)
+ ($P10) = rx1009_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1009_pos, "")
+ rx1009_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1011_done
- rxcap_1011_fail:
- goto rx1006_fail
- rxcap_1011_done:
+ goto rxcap_1014_done
+ rxcap_1014_fail:
+ goto rx1009_fail
+ rxcap_1014_done:
# rx subrule "O" subtype=capture negate=
- rx1006_cur."!cursor_pos"(rx1006_pos)
- $P10 = rx1006_cur."O"("%symbolic_unary, :pirop<isfalse>")
- unless $P10, rx1006_fail
- rx1006_cur."!mark_push"(0, -1, 0, $P10)
+ rx1009_cur."!cursor_pos"(rx1009_pos)
+ $P10 = rx1009_cur."O"("%symbolic_unary, :pirop<isfalse>")
+ unless $P10, rx1009_fail
+ rx1009_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1006_pos = $P10."pos"()
+ rx1009_pos = $P10."pos"()
# rx pass
- rx1006_cur."!cursor_pass"(rx1006_pos, "prefix:sym<!>")
- rx1006_cur."!cursor_debug"("PASS ", "prefix:sym<!>", " at pos=", rx1006_pos)
- .return (rx1006_cur)
- rx1006_fail:
-.annotate "line", 417
- (rx1006_rep, rx1006_pos, $I10, $P10) = rx1006_cur."!mark_fail"(0)
- lt rx1006_pos, -1, rx1006_done
- eq rx1006_pos, -1, rx1006_fail
+ rx1009_cur."!cursor_pass"(rx1009_pos, "prefix:sym<!>")
+ rx1009_cur."!cursor_debug"("PASS ", "prefix:sym<!>", " at pos=", rx1009_pos)
+ .return (rx1009_cur)
+ rx1009_fail:
+.annotate "line", 421
+ (rx1009_rep, rx1009_pos, $I10, $P10) = rx1009_cur."!mark_fail"(0)
+ lt rx1009_pos, -1, rx1009_done
+ eq rx1009_pos, -1, rx1009_fail
jump $I10
- rx1006_done:
- rx1006_cur."!cursor_fail"()
- rx1006_cur."!cursor_debug"("FAIL ", "prefix:sym<!>")
- .return (rx1006_cur)
+ rx1009_done:
+ rx1009_cur."!cursor_fail"()
+ rx1009_cur."!cursor_debug"("FAIL ", "prefix:sym<!>")
+ .return (rx1009_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<!>" :subid("254_1267204702.05125") :method
-.annotate "line", 417
- $P1008 = self."!PREFIX__!subrule"("O", "!")
- new $P1009, "ResizablePMCArray"
- push $P1009, $P1008
- .return ($P1009)
+.sub "!PREFIX__prefix:sym<!>" :subid("254_1271336396.90314") :method
+.annotate "line", 421
+ $P1011 = self."!PREFIX__!subrule"("O", "!")
+ new $P1012, "ResizablePMCArray"
+ push $P1012, $P1011
+ .return ($P1012)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<|>" :subid("255_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1013_tgt
- .local int rx1013_pos
- .local int rx1013_off
- .local int rx1013_eos
- .local int rx1013_rep
- .local pmc rx1013_cur
- (rx1013_cur, rx1013_pos, rx1013_tgt) = self."!cursor_start"()
- rx1013_cur."!cursor_debug"("START ", "prefix:sym<|>")
- .lex unicode:"$\x{a2}", rx1013_cur
- .local pmc match
- .lex "$/", match
- length rx1013_eos, rx1013_tgt
- set rx1013_off, 0
- lt rx1013_pos, 2, rx1013_start
- sub rx1013_off, rx1013_pos, 1
- substr rx1013_tgt, rx1013_tgt, rx1013_off
- rx1013_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1017_done
- goto rxscan1017_scan
- rxscan1017_loop:
- ($P10) = rx1013_cur."from"()
- inc $P10
- set rx1013_pos, $P10
- ge rx1013_pos, rx1013_eos, rxscan1017_done
- rxscan1017_scan:
- set_addr $I10, rxscan1017_loop
- rx1013_cur."!mark_push"(0, rx1013_pos, $I10)
- rxscan1017_done:
-.annotate "line", 475
+.sub "prefix:sym<|>" :subid("255_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1016_tgt
+ .local int rx1016_pos
+ .local int rx1016_off
+ .local int rx1016_eos
+ .local int rx1016_rep
+ .local pmc rx1016_cur
+ (rx1016_cur, rx1016_pos, rx1016_tgt) = self."!cursor_start"()
+ rx1016_cur."!cursor_debug"("START ", "prefix:sym<|>")
+ .lex unicode:"$\x{a2}", rx1016_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1016_eos, rx1016_tgt
+ set rx1016_off, 0
+ lt rx1016_pos, 2, rx1016_start
+ sub rx1016_off, rx1016_pos, 1
+ substr rx1016_tgt, rx1016_tgt, rx1016_off
+ rx1016_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1020_done
+ goto rxscan1020_scan
+ rxscan1020_loop:
+ ($P10) = rx1016_cur."from"()
+ inc $P10
+ set rx1016_pos, $P10
+ ge rx1016_pos, rx1016_eos, rxscan1020_done
+ rxscan1020_scan:
+ set_addr $I10, rxscan1020_loop
+ rx1016_cur."!mark_push"(0, rx1016_pos, $I10)
+ rxscan1020_done:
+.annotate "line", 479
# rx subcapture "sym"
- set_addr $I10, rxcap_1018_fail
- rx1013_cur."!mark_push"(0, rx1013_pos, $I10)
+ set_addr $I10, rxcap_1021_fail
+ rx1016_cur."!mark_push"(0, rx1016_pos, $I10)
# rx literal "|"
- add $I11, rx1013_pos, 1
- gt $I11, rx1013_eos, rx1013_fail
- sub $I11, rx1013_pos, rx1013_off
- substr $S10, rx1013_tgt, $I11, 1
- ne $S10, "|", rx1013_fail
- add rx1013_pos, 1
- set_addr $I10, rxcap_1018_fail
- ($I12, $I11) = rx1013_cur."!mark_peek"($I10)
- rx1013_cur."!cursor_pos"($I11)
- ($P10) = rx1013_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1013_pos, "")
- rx1013_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1016_pos, 1
+ gt $I11, rx1016_eos, rx1016_fail
+ sub $I11, rx1016_pos, rx1016_off
+ substr $S10, rx1016_tgt, $I11, 1
+ ne $S10, "|", rx1016_fail
+ add rx1016_pos, 1
+ set_addr $I10, rxcap_1021_fail
+ ($I12, $I11) = rx1016_cur."!mark_peek"($I10)
+ rx1016_cur."!cursor_pos"($I11)
+ ($P10) = rx1016_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1016_pos, "")
+ rx1016_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1018_done
- rxcap_1018_fail:
- goto rx1013_fail
- rxcap_1018_done:
+ goto rxcap_1021_done
+ rxcap_1021_fail:
+ goto rx1016_fail
+ rxcap_1021_done:
# rx subrule "O" subtype=capture negate=
- rx1013_cur."!cursor_pos"(rx1013_pos)
- $P10 = rx1013_cur."O"("%symbolic_unary")
- unless $P10, rx1013_fail
- rx1013_cur."!mark_push"(0, -1, 0, $P10)
+ rx1016_cur."!cursor_pos"(rx1016_pos)
+ $P10 = rx1016_cur."O"("%symbolic_unary")
+ unless $P10, rx1016_fail
+ rx1016_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1013_pos = $P10."pos"()
+ rx1016_pos = $P10."pos"()
# rx pass
- rx1013_cur."!cursor_pass"(rx1013_pos, "prefix:sym<|>")
- rx1013_cur."!cursor_debug"("PASS ", "prefix:sym<|>", " at pos=", rx1013_pos)
- .return (rx1013_cur)
- rx1013_fail:
-.annotate "line", 417
- (rx1013_rep, rx1013_pos, $I10, $P10) = rx1013_cur."!mark_fail"(0)
- lt rx1013_pos, -1, rx1013_done
- eq rx1013_pos, -1, rx1013_fail
+ rx1016_cur."!cursor_pass"(rx1016_pos, "prefix:sym<|>")
+ rx1016_cur."!cursor_debug"("PASS ", "prefix:sym<|>", " at pos=", rx1016_pos)
+ .return (rx1016_cur)
+ rx1016_fail:
+.annotate "line", 421
+ (rx1016_rep, rx1016_pos, $I10, $P10) = rx1016_cur."!mark_fail"(0)
+ lt rx1016_pos, -1, rx1016_done
+ eq rx1016_pos, -1, rx1016_fail
jump $I10
- rx1013_done:
- rx1013_cur."!cursor_fail"()
- rx1013_cur."!cursor_debug"("FAIL ", "prefix:sym<|>")
- .return (rx1013_cur)
+ rx1016_done:
+ rx1016_cur."!cursor_fail"()
+ rx1016_cur."!cursor_debug"("FAIL ", "prefix:sym<|>")
+ .return (rx1016_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<|>" :subid("256_1267204702.05125") :method
-.annotate "line", 417
- $P1015 = self."!PREFIX__!subrule"("O", "|")
- new $P1016, "ResizablePMCArray"
- push $P1016, $P1015
- .return ($P1016)
+.sub "!PREFIX__prefix:sym<|>" :subid("256_1271336396.90314") :method
+.annotate "line", 421
+ $P1018 = self."!PREFIX__!subrule"("O", "|")
+ new $P1019, "ResizablePMCArray"
+ push $P1019, $P1018
+ .return ($P1019)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<*>" :subid("257_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .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 ", "infix:sym<*>")
- .lex unicode:"$\x{a2}", rx1020_cur
- .local pmc match
- .lex "$/", match
- length rx1020_eos, rx1020_tgt
- 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", 477
+.sub "infix:sym<*>" :subid("257_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1023_tgt
+ .local int rx1023_pos
+ .local int rx1023_off
+ .local int rx1023_eos
+ .local int rx1023_rep
+ .local pmc rx1023_cur
+ (rx1023_cur, rx1023_pos, rx1023_tgt) = self."!cursor_start"()
+ rx1023_cur."!cursor_debug"("START ", "infix:sym<*>")
+ .lex unicode:"$\x{a2}", rx1023_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1023_eos, rx1023_tgt
+ set rx1023_off, 0
+ lt rx1023_pos, 2, rx1023_start
+ sub rx1023_off, rx1023_pos, 1
+ substr rx1023_tgt, rx1023_tgt, rx1023_off
+ rx1023_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1027_done
+ goto rxscan1027_scan
+ rxscan1027_loop:
+ ($P10) = rx1023_cur."from"()
+ inc $P10
+ set rx1023_pos, $P10
+ ge rx1023_pos, rx1023_eos, rxscan1027_done
+ rxscan1027_scan:
+ set_addr $I10, rxscan1027_loop
+ rx1023_cur."!mark_push"(0, rx1023_pos, $I10)
+ rxscan1027_done:
+.annotate "line", 481
# rx subcapture "sym"
- set_addr $I10, rxcap_1025_fail
- rx1020_cur."!mark_push"(0, rx1020_pos, $I10)
+ set_addr $I10, rxcap_1028_fail
+ rx1023_cur."!mark_push"(0, rx1023_pos, $I10)
# rx literal "*"
- add $I11, rx1020_pos, 1
- gt $I11, rx1020_eos, rx1020_fail
- sub $I11, rx1020_pos, rx1020_off
- substr $S10, rx1020_tgt, $I11, 1
- ne $S10, "*", rx1020_fail
- add rx1020_pos, 1
- set_addr $I10, rxcap_1025_fail
- ($I12, $I11) = rx1020_cur."!mark_peek"($I10)
- rx1020_cur."!cursor_pos"($I11)
- ($P10) = rx1020_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1020_pos, "")
- rx1020_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1023_pos, 1
+ gt $I11, rx1023_eos, rx1023_fail
+ sub $I11, rx1023_pos, rx1023_off
+ substr $S10, rx1023_tgt, $I11, 1
+ ne $S10, "*", rx1023_fail
+ add rx1023_pos, 1
+ set_addr $I10, rxcap_1028_fail
+ ($I12, $I11) = rx1023_cur."!mark_peek"($I10)
+ rx1023_cur."!cursor_pos"($I11)
+ ($P10) = rx1023_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1023_pos, "")
+ rx1023_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1025_done
- rxcap_1025_fail:
- goto rx1020_fail
- rxcap_1025_done:
+ goto rxcap_1028_done
+ rxcap_1028_fail:
+ goto rx1023_fail
+ rxcap_1028_done:
# rx subrule "O" subtype=capture negate=
- rx1020_cur."!cursor_pos"(rx1020_pos)
- $P10 = rx1020_cur."O"("%multiplicative, :pirop<mul>")
- unless $P10, rx1020_fail
- rx1020_cur."!mark_push"(0, -1, 0, $P10)
+ rx1023_cur."!cursor_pos"(rx1023_pos)
+ $P10 = rx1023_cur."O"("%multiplicative, :pirop<mul>")
+ unless $P10, rx1023_fail
+ rx1023_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1020_pos = $P10."pos"()
+ rx1023_pos = $P10."pos"()
# rx pass
- rx1020_cur."!cursor_pass"(rx1020_pos, "infix:sym<*>")
- rx1020_cur."!cursor_debug"("PASS ", "infix:sym<*>", " at pos=", rx1020_pos)
- .return (rx1020_cur)
- rx1020_fail:
-.annotate "line", 417
- (rx1020_rep, rx1020_pos, $I10, $P10) = rx1020_cur."!mark_fail"(0)
- lt rx1020_pos, -1, rx1020_done
- eq rx1020_pos, -1, rx1020_fail
+ rx1023_cur."!cursor_pass"(rx1023_pos, "infix:sym<*>")
+ rx1023_cur."!cursor_debug"("PASS ", "infix:sym<*>", " at pos=", rx1023_pos)
+ .return (rx1023_cur)
+ rx1023_fail:
+.annotate "line", 421
+ (rx1023_rep, rx1023_pos, $I10, $P10) = rx1023_cur."!mark_fail"(0)
+ lt rx1023_pos, -1, rx1023_done
+ eq rx1023_pos, -1, rx1023_fail
jump $I10
- rx1020_done:
- rx1020_cur."!cursor_fail"()
- rx1020_cur."!cursor_debug"("FAIL ", "infix:sym<*>")
- .return (rx1020_cur)
+ rx1023_done:
+ rx1023_cur."!cursor_fail"()
+ rx1023_cur."!cursor_debug"("FAIL ", "infix:sym<*>")
+ .return (rx1023_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<*>" :subid("258_1267204702.05125") :method
-.annotate "line", 417
- $P1022 = self."!PREFIX__!subrule"("O", "*")
- new $P1023, "ResizablePMCArray"
- push $P1023, $P1022
- .return ($P1023)
+.sub "!PREFIX__infix:sym<*>" :subid("258_1271336396.90314") :method
+.annotate "line", 421
+ $P1025 = self."!PREFIX__!subrule"("O", "*")
+ new $P1026, "ResizablePMCArray"
+ push $P1026, $P1025
+ .return ($P1026)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym</>" :subid("259_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1027_tgt
- .local int rx1027_pos
- .local int rx1027_off
- .local int rx1027_eos
- .local int rx1027_rep
- .local pmc rx1027_cur
- (rx1027_cur, rx1027_pos, rx1027_tgt) = self."!cursor_start"()
- rx1027_cur."!cursor_debug"("START ", "infix:sym</>")
- .lex unicode:"$\x{a2}", rx1027_cur
- .local pmc match
- .lex "$/", match
- length rx1027_eos, rx1027_tgt
- set rx1027_off, 0
- lt rx1027_pos, 2, rx1027_start
- sub rx1027_off, rx1027_pos, 1
- substr rx1027_tgt, rx1027_tgt, rx1027_off
- rx1027_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1031_done
- goto rxscan1031_scan
- rxscan1031_loop:
- ($P10) = rx1027_cur."from"()
- inc $P10
- set rx1027_pos, $P10
- ge rx1027_pos, rx1027_eos, rxscan1031_done
- rxscan1031_scan:
- set_addr $I10, rxscan1031_loop
- rx1027_cur."!mark_push"(0, rx1027_pos, $I10)
- rxscan1031_done:
-.annotate "line", 478
+.sub "infix:sym</>" :subid("259_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1030_tgt
+ .local int rx1030_pos
+ .local int rx1030_off
+ .local int rx1030_eos
+ .local int rx1030_rep
+ .local pmc rx1030_cur
+ (rx1030_cur, rx1030_pos, rx1030_tgt) = self."!cursor_start"()
+ rx1030_cur."!cursor_debug"("START ", "infix:sym</>")
+ .lex unicode:"$\x{a2}", rx1030_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1030_eos, rx1030_tgt
+ set rx1030_off, 0
+ lt rx1030_pos, 2, rx1030_start
+ sub rx1030_off, rx1030_pos, 1
+ substr rx1030_tgt, rx1030_tgt, rx1030_off
+ rx1030_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1034_done
+ goto rxscan1034_scan
+ rxscan1034_loop:
+ ($P10) = rx1030_cur."from"()
+ inc $P10
+ set rx1030_pos, $P10
+ ge rx1030_pos, rx1030_eos, rxscan1034_done
+ rxscan1034_scan:
+ set_addr $I10, rxscan1034_loop
+ rx1030_cur."!mark_push"(0, rx1030_pos, $I10)
+ rxscan1034_done:
+.annotate "line", 482
# rx subcapture "sym"
- set_addr $I10, rxcap_1032_fail
- rx1027_cur."!mark_push"(0, rx1027_pos, $I10)
+ set_addr $I10, rxcap_1035_fail
+ rx1030_cur."!mark_push"(0, rx1030_pos, $I10)
# rx literal "/"
- add $I11, rx1027_pos, 1
- gt $I11, rx1027_eos, rx1027_fail
- sub $I11, rx1027_pos, rx1027_off
- substr $S10, rx1027_tgt, $I11, 1
- ne $S10, "/", rx1027_fail
- add rx1027_pos, 1
- set_addr $I10, rxcap_1032_fail
- ($I12, $I11) = rx1027_cur."!mark_peek"($I10)
- rx1027_cur."!cursor_pos"($I11)
- ($P10) = rx1027_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1027_pos, "")
- rx1027_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1030_pos, 1
+ gt $I11, rx1030_eos, rx1030_fail
+ sub $I11, rx1030_pos, rx1030_off
+ substr $S10, rx1030_tgt, $I11, 1
+ ne $S10, "/", rx1030_fail
+ add rx1030_pos, 1
+ set_addr $I10, rxcap_1035_fail
+ ($I12, $I11) = rx1030_cur."!mark_peek"($I10)
+ rx1030_cur."!cursor_pos"($I11)
+ ($P10) = rx1030_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1030_pos, "")
+ rx1030_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1032_done
- rxcap_1032_fail:
- goto rx1027_fail
- rxcap_1032_done:
+ goto rxcap_1035_done
+ rxcap_1035_fail:
+ goto rx1030_fail
+ rxcap_1035_done:
# rx subrule "O" subtype=capture negate=
- rx1027_cur."!cursor_pos"(rx1027_pos)
- $P10 = rx1027_cur."O"("%multiplicative, :pirop<div>")
- unless $P10, rx1027_fail
- rx1027_cur."!mark_push"(0, -1, 0, $P10)
+ rx1030_cur."!cursor_pos"(rx1030_pos)
+ $P10 = rx1030_cur."O"("%multiplicative, :pirop<div>")
+ unless $P10, rx1030_fail
+ rx1030_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1027_pos = $P10."pos"()
+ rx1030_pos = $P10."pos"()
# rx pass
- rx1027_cur."!cursor_pass"(rx1027_pos, "infix:sym</>")
- rx1027_cur."!cursor_debug"("PASS ", "infix:sym</>", " at pos=", rx1027_pos)
- .return (rx1027_cur)
- rx1027_fail:
-.annotate "line", 417
- (rx1027_rep, rx1027_pos, $I10, $P10) = rx1027_cur."!mark_fail"(0)
- lt rx1027_pos, -1, rx1027_done
- eq rx1027_pos, -1, rx1027_fail
+ rx1030_cur."!cursor_pass"(rx1030_pos, "infix:sym</>")
+ rx1030_cur."!cursor_debug"("PASS ", "infix:sym</>", " at pos=", rx1030_pos)
+ .return (rx1030_cur)
+ rx1030_fail:
+.annotate "line", 421
+ (rx1030_rep, rx1030_pos, $I10, $P10) = rx1030_cur."!mark_fail"(0)
+ lt rx1030_pos, -1, rx1030_done
+ eq rx1030_pos, -1, rx1030_fail
jump $I10
- rx1027_done:
- rx1027_cur."!cursor_fail"()
- rx1027_cur."!cursor_debug"("FAIL ", "infix:sym</>")
- .return (rx1027_cur)
+ rx1030_done:
+ rx1030_cur."!cursor_fail"()
+ rx1030_cur."!cursor_debug"("FAIL ", "infix:sym</>")
+ .return (rx1030_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym</>" :subid("260_1267204702.05125") :method
-.annotate "line", 417
- $P1029 = self."!PREFIX__!subrule"("O", "/")
- new $P1030, "ResizablePMCArray"
- push $P1030, $P1029
- .return ($P1030)
+.sub "!PREFIX__infix:sym</>" :subid("260_1271336396.90314") :method
+.annotate "line", 421
+ $P1032 = self."!PREFIX__!subrule"("O", "/")
+ new $P1033, "ResizablePMCArray"
+ push $P1033, $P1032
+ .return ($P1033)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<%>" :subid("261_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1034_tgt
- .local int rx1034_pos
- .local int rx1034_off
- .local int rx1034_eos
- .local int rx1034_rep
- .local pmc rx1034_cur
- (rx1034_cur, rx1034_pos, rx1034_tgt) = self."!cursor_start"()
- rx1034_cur."!cursor_debug"("START ", "infix:sym<%>")
- .lex unicode:"$\x{a2}", rx1034_cur
- .local pmc match
- .lex "$/", match
- length rx1034_eos, rx1034_tgt
- set rx1034_off, 0
- lt rx1034_pos, 2, rx1034_start
- sub rx1034_off, rx1034_pos, 1
- substr rx1034_tgt, rx1034_tgt, rx1034_off
- rx1034_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1038_done
- goto rxscan1038_scan
- rxscan1038_loop:
- ($P10) = rx1034_cur."from"()
- inc $P10
- set rx1034_pos, $P10
- ge rx1034_pos, rx1034_eos, rxscan1038_done
- rxscan1038_scan:
- set_addr $I10, rxscan1038_loop
- rx1034_cur."!mark_push"(0, rx1034_pos, $I10)
- rxscan1038_done:
-.annotate "line", 479
+.sub "infix:sym<%>" :subid("261_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1037_tgt
+ .local int rx1037_pos
+ .local int rx1037_off
+ .local int rx1037_eos
+ .local int rx1037_rep
+ .local pmc rx1037_cur
+ (rx1037_cur, rx1037_pos, rx1037_tgt) = self."!cursor_start"()
+ rx1037_cur."!cursor_debug"("START ", "infix:sym<%>")
+ .lex unicode:"$\x{a2}", rx1037_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1037_eos, rx1037_tgt
+ set rx1037_off, 0
+ lt rx1037_pos, 2, rx1037_start
+ sub rx1037_off, rx1037_pos, 1
+ substr rx1037_tgt, rx1037_tgt, rx1037_off
+ rx1037_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1041_done
+ goto rxscan1041_scan
+ rxscan1041_loop:
+ ($P10) = rx1037_cur."from"()
+ inc $P10
+ set rx1037_pos, $P10
+ ge rx1037_pos, rx1037_eos, rxscan1041_done
+ rxscan1041_scan:
+ set_addr $I10, rxscan1041_loop
+ rx1037_cur."!mark_push"(0, rx1037_pos, $I10)
+ rxscan1041_done:
+.annotate "line", 483
# rx subcapture "sym"
- set_addr $I10, rxcap_1039_fail
- rx1034_cur."!mark_push"(0, rx1034_pos, $I10)
+ set_addr $I10, rxcap_1042_fail
+ rx1037_cur."!mark_push"(0, rx1037_pos, $I10)
# rx literal "%"
- add $I11, rx1034_pos, 1
- gt $I11, rx1034_eos, rx1034_fail
- sub $I11, rx1034_pos, rx1034_off
- substr $S10, rx1034_tgt, $I11, 1
- ne $S10, "%", rx1034_fail
- add rx1034_pos, 1
- set_addr $I10, rxcap_1039_fail
- ($I12, $I11) = rx1034_cur."!mark_peek"($I10)
- rx1034_cur."!cursor_pos"($I11)
- ($P10) = rx1034_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1034_pos, "")
- rx1034_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1037_pos, 1
+ gt $I11, rx1037_eos, rx1037_fail
+ sub $I11, rx1037_pos, rx1037_off
+ substr $S10, rx1037_tgt, $I11, 1
+ ne $S10, "%", rx1037_fail
+ add rx1037_pos, 1
+ set_addr $I10, rxcap_1042_fail
+ ($I12, $I11) = rx1037_cur."!mark_peek"($I10)
+ rx1037_cur."!cursor_pos"($I11)
+ ($P10) = rx1037_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1037_pos, "")
+ rx1037_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1039_done
- rxcap_1039_fail:
- goto rx1034_fail
- rxcap_1039_done:
+ goto rxcap_1042_done
+ rxcap_1042_fail:
+ goto rx1037_fail
+ rxcap_1042_done:
# rx subrule "O" subtype=capture negate=
- rx1034_cur."!cursor_pos"(rx1034_pos)
- $P10 = rx1034_cur."O"("%multiplicative, :pirop<mod>")
- unless $P10, rx1034_fail
- rx1034_cur."!mark_push"(0, -1, 0, $P10)
+ rx1037_cur."!cursor_pos"(rx1037_pos)
+ $P10 = rx1037_cur."O"("%multiplicative, :pirop<mod>")
+ unless $P10, rx1037_fail
+ rx1037_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1034_pos = $P10."pos"()
+ rx1037_pos = $P10."pos"()
# rx pass
- rx1034_cur."!cursor_pass"(rx1034_pos, "infix:sym<%>")
- rx1034_cur."!cursor_debug"("PASS ", "infix:sym<%>", " at pos=", rx1034_pos)
- .return (rx1034_cur)
- rx1034_fail:
-.annotate "line", 417
- (rx1034_rep, rx1034_pos, $I10, $P10) = rx1034_cur."!mark_fail"(0)
- lt rx1034_pos, -1, rx1034_done
- eq rx1034_pos, -1, rx1034_fail
+ rx1037_cur."!cursor_pass"(rx1037_pos, "infix:sym<%>")
+ rx1037_cur."!cursor_debug"("PASS ", "infix:sym<%>", " at pos=", rx1037_pos)
+ .return (rx1037_cur)
+ rx1037_fail:
+.annotate "line", 421
+ (rx1037_rep, rx1037_pos, $I10, $P10) = rx1037_cur."!mark_fail"(0)
+ lt rx1037_pos, -1, rx1037_done
+ eq rx1037_pos, -1, rx1037_fail
jump $I10
- rx1034_done:
- rx1034_cur."!cursor_fail"()
- rx1034_cur."!cursor_debug"("FAIL ", "infix:sym<%>")
- .return (rx1034_cur)
+ rx1037_done:
+ rx1037_cur."!cursor_fail"()
+ rx1037_cur."!cursor_debug"("FAIL ", "infix:sym<%>")
+ .return (rx1037_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<%>" :subid("262_1267204702.05125") :method
-.annotate "line", 417
- $P1036 = self."!PREFIX__!subrule"("O", "%")
- new $P1037, "ResizablePMCArray"
- push $P1037, $P1036
- .return ($P1037)
+.sub "!PREFIX__infix:sym<%>" :subid("262_1271336396.90314") :method
+.annotate "line", 421
+ $P1039 = self."!PREFIX__!subrule"("O", "%")
+ new $P1040, "ResizablePMCArray"
+ push $P1040, $P1039
+ .return ($P1040)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<+>" :subid("263_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1041_tgt
- .local int rx1041_pos
- .local int rx1041_off
- .local int rx1041_eos
- .local int rx1041_rep
- .local pmc rx1041_cur
- (rx1041_cur, rx1041_pos, rx1041_tgt) = self."!cursor_start"()
- rx1041_cur."!cursor_debug"("START ", "infix:sym<+>")
- .lex unicode:"$\x{a2}", rx1041_cur
- .local pmc match
- .lex "$/", match
- length rx1041_eos, rx1041_tgt
- set rx1041_off, 0
- lt rx1041_pos, 2, rx1041_start
- sub rx1041_off, rx1041_pos, 1
- substr rx1041_tgt, rx1041_tgt, rx1041_off
- rx1041_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1045_done
- goto rxscan1045_scan
- rxscan1045_loop:
- ($P10) = rx1041_cur."from"()
- inc $P10
- set rx1041_pos, $P10
- ge rx1041_pos, rx1041_eos, rxscan1045_done
- rxscan1045_scan:
- set_addr $I10, rxscan1045_loop
- rx1041_cur."!mark_push"(0, rx1041_pos, $I10)
- rxscan1045_done:
-.annotate "line", 481
+.sub "infix:sym<+>" :subid("263_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1044_tgt
+ .local int rx1044_pos
+ .local int rx1044_off
+ .local int rx1044_eos
+ .local int rx1044_rep
+ .local pmc rx1044_cur
+ (rx1044_cur, rx1044_pos, rx1044_tgt) = self."!cursor_start"()
+ rx1044_cur."!cursor_debug"("START ", "infix:sym<+>")
+ .lex unicode:"$\x{a2}", rx1044_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1044_eos, rx1044_tgt
+ set rx1044_off, 0
+ lt rx1044_pos, 2, rx1044_start
+ sub rx1044_off, rx1044_pos, 1
+ substr rx1044_tgt, rx1044_tgt, rx1044_off
+ rx1044_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1048_done
+ goto rxscan1048_scan
+ rxscan1048_loop:
+ ($P10) = rx1044_cur."from"()
+ inc $P10
+ set rx1044_pos, $P10
+ ge rx1044_pos, rx1044_eos, rxscan1048_done
+ rxscan1048_scan:
+ set_addr $I10, rxscan1048_loop
+ rx1044_cur."!mark_push"(0, rx1044_pos, $I10)
+ rxscan1048_done:
+.annotate "line", 485
# rx subcapture "sym"
- set_addr $I10, rxcap_1046_fail
- rx1041_cur."!mark_push"(0, rx1041_pos, $I10)
+ set_addr $I10, rxcap_1049_fail
+ rx1044_cur."!mark_push"(0, rx1044_pos, $I10)
# rx literal "+"
- add $I11, rx1041_pos, 1
- gt $I11, rx1041_eos, rx1041_fail
- sub $I11, rx1041_pos, rx1041_off
- substr $S10, rx1041_tgt, $I11, 1
- ne $S10, "+", rx1041_fail
- add rx1041_pos, 1
- set_addr $I10, rxcap_1046_fail
- ($I12, $I11) = rx1041_cur."!mark_peek"($I10)
- rx1041_cur."!cursor_pos"($I11)
- ($P10) = rx1041_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1041_pos, "")
- rx1041_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1044_pos, 1
+ gt $I11, rx1044_eos, rx1044_fail
+ sub $I11, rx1044_pos, rx1044_off
+ substr $S10, rx1044_tgt, $I11, 1
+ ne $S10, "+", rx1044_fail
+ add rx1044_pos, 1
+ set_addr $I10, rxcap_1049_fail
+ ($I12, $I11) = rx1044_cur."!mark_peek"($I10)
+ rx1044_cur."!cursor_pos"($I11)
+ ($P10) = rx1044_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1044_pos, "")
+ rx1044_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1046_done
- rxcap_1046_fail:
- goto rx1041_fail
- rxcap_1046_done:
+ goto rxcap_1049_done
+ rxcap_1049_fail:
+ goto rx1044_fail
+ rxcap_1049_done:
# rx subrule "O" subtype=capture negate=
- rx1041_cur."!cursor_pos"(rx1041_pos)
- $P10 = rx1041_cur."O"("%additive, :pirop<add>")
- unless $P10, rx1041_fail
- rx1041_cur."!mark_push"(0, -1, 0, $P10)
+ rx1044_cur."!cursor_pos"(rx1044_pos)
+ $P10 = rx1044_cur."O"("%additive, :pirop<add>")
+ unless $P10, rx1044_fail
+ rx1044_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1041_pos = $P10."pos"()
+ rx1044_pos = $P10."pos"()
# rx pass
- rx1041_cur."!cursor_pass"(rx1041_pos, "infix:sym<+>")
- rx1041_cur."!cursor_debug"("PASS ", "infix:sym<+>", " at pos=", rx1041_pos)
- .return (rx1041_cur)
- rx1041_fail:
-.annotate "line", 417
- (rx1041_rep, rx1041_pos, $I10, $P10) = rx1041_cur."!mark_fail"(0)
- lt rx1041_pos, -1, rx1041_done
- eq rx1041_pos, -1, rx1041_fail
+ rx1044_cur."!cursor_pass"(rx1044_pos, "infix:sym<+>")
+ rx1044_cur."!cursor_debug"("PASS ", "infix:sym<+>", " at pos=", rx1044_pos)
+ .return (rx1044_cur)
+ rx1044_fail:
+.annotate "line", 421
+ (rx1044_rep, rx1044_pos, $I10, $P10) = rx1044_cur."!mark_fail"(0)
+ lt rx1044_pos, -1, rx1044_done
+ eq rx1044_pos, -1, rx1044_fail
jump $I10
- rx1041_done:
- rx1041_cur."!cursor_fail"()
- rx1041_cur."!cursor_debug"("FAIL ", "infix:sym<+>")
- .return (rx1041_cur)
+ rx1044_done:
+ rx1044_cur."!cursor_fail"()
+ rx1044_cur."!cursor_debug"("FAIL ", "infix:sym<+>")
+ .return (rx1044_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+>" :subid("264_1267204702.05125") :method
-.annotate "line", 417
- $P1043 = self."!PREFIX__!subrule"("O", "+")
- new $P1044, "ResizablePMCArray"
- push $P1044, $P1043
- .return ($P1044)
+.sub "!PREFIX__infix:sym<+>" :subid("264_1271336396.90314") :method
+.annotate "line", 421
+ $P1046 = self."!PREFIX__!subrule"("O", "+")
+ new $P1047, "ResizablePMCArray"
+ push $P1047, $P1046
+ .return ($P1047)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<->" :subid("265_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1048_tgt
- .local int rx1048_pos
- .local int rx1048_off
- .local int rx1048_eos
- .local int rx1048_rep
- .local pmc rx1048_cur
- (rx1048_cur, rx1048_pos, rx1048_tgt) = self."!cursor_start"()
- rx1048_cur."!cursor_debug"("START ", "infix:sym<->")
- .lex unicode:"$\x{a2}", rx1048_cur
- .local pmc match
- .lex "$/", match
- length rx1048_eos, rx1048_tgt
- set rx1048_off, 0
- lt rx1048_pos, 2, rx1048_start
- sub rx1048_off, rx1048_pos, 1
- substr rx1048_tgt, rx1048_tgt, rx1048_off
- rx1048_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1052_done
- goto rxscan1052_scan
- rxscan1052_loop:
- ($P10) = rx1048_cur."from"()
- inc $P10
- set rx1048_pos, $P10
- ge rx1048_pos, rx1048_eos, rxscan1052_done
- rxscan1052_scan:
- set_addr $I10, rxscan1052_loop
- rx1048_cur."!mark_push"(0, rx1048_pos, $I10)
- rxscan1052_done:
-.annotate "line", 482
+.sub "infix:sym<->" :subid("265_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1051_tgt
+ .local int rx1051_pos
+ .local int rx1051_off
+ .local int rx1051_eos
+ .local int rx1051_rep
+ .local pmc rx1051_cur
+ (rx1051_cur, rx1051_pos, rx1051_tgt) = self."!cursor_start"()
+ rx1051_cur."!cursor_debug"("START ", "infix:sym<->")
+ .lex unicode:"$\x{a2}", rx1051_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1051_eos, rx1051_tgt
+ set rx1051_off, 0
+ lt rx1051_pos, 2, rx1051_start
+ sub rx1051_off, rx1051_pos, 1
+ substr rx1051_tgt, rx1051_tgt, rx1051_off
+ rx1051_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1055_done
+ goto rxscan1055_scan
+ rxscan1055_loop:
+ ($P10) = rx1051_cur."from"()
+ inc $P10
+ set rx1051_pos, $P10
+ ge rx1051_pos, rx1051_eos, rxscan1055_done
+ rxscan1055_scan:
+ set_addr $I10, rxscan1055_loop
+ rx1051_cur."!mark_push"(0, rx1051_pos, $I10)
+ rxscan1055_done:
+.annotate "line", 486
# rx subcapture "sym"
- set_addr $I10, rxcap_1053_fail
- rx1048_cur."!mark_push"(0, rx1048_pos, $I10)
+ set_addr $I10, rxcap_1056_fail
+ rx1051_cur."!mark_push"(0, rx1051_pos, $I10)
# rx literal "-"
- add $I11, rx1048_pos, 1
- gt $I11, rx1048_eos, rx1048_fail
- sub $I11, rx1048_pos, rx1048_off
- substr $S10, rx1048_tgt, $I11, 1
- ne $S10, "-", rx1048_fail
- add rx1048_pos, 1
- set_addr $I10, rxcap_1053_fail
- ($I12, $I11) = rx1048_cur."!mark_peek"($I10)
- rx1048_cur."!cursor_pos"($I11)
- ($P10) = rx1048_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1048_pos, "")
- rx1048_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1051_pos, 1
+ gt $I11, rx1051_eos, rx1051_fail
+ sub $I11, rx1051_pos, rx1051_off
+ substr $S10, rx1051_tgt, $I11, 1
+ ne $S10, "-", rx1051_fail
+ add rx1051_pos, 1
+ set_addr $I10, rxcap_1056_fail
+ ($I12, $I11) = rx1051_cur."!mark_peek"($I10)
+ rx1051_cur."!cursor_pos"($I11)
+ ($P10) = rx1051_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1051_pos, "")
+ rx1051_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1053_done
- rxcap_1053_fail:
- goto rx1048_fail
- rxcap_1053_done:
+ goto rxcap_1056_done
+ rxcap_1056_fail:
+ goto rx1051_fail
+ rxcap_1056_done:
# rx subrule "O" subtype=capture negate=
- rx1048_cur."!cursor_pos"(rx1048_pos)
- $P10 = rx1048_cur."O"("%additive, :pirop<sub>")
- unless $P10, rx1048_fail
- rx1048_cur."!mark_push"(0, -1, 0, $P10)
+ rx1051_cur."!cursor_pos"(rx1051_pos)
+ $P10 = rx1051_cur."O"("%additive, :pirop<sub>")
+ unless $P10, rx1051_fail
+ rx1051_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1048_pos = $P10."pos"()
+ rx1051_pos = $P10."pos"()
# rx pass
- rx1048_cur."!cursor_pass"(rx1048_pos, "infix:sym<->")
- rx1048_cur."!cursor_debug"("PASS ", "infix:sym<->", " at pos=", rx1048_pos)
- .return (rx1048_cur)
- rx1048_fail:
-.annotate "line", 417
- (rx1048_rep, rx1048_pos, $I10, $P10) = rx1048_cur."!mark_fail"(0)
- lt rx1048_pos, -1, rx1048_done
- eq rx1048_pos, -1, rx1048_fail
+ rx1051_cur."!cursor_pass"(rx1051_pos, "infix:sym<->")
+ rx1051_cur."!cursor_debug"("PASS ", "infix:sym<->", " at pos=", rx1051_pos)
+ .return (rx1051_cur)
+ rx1051_fail:
+.annotate "line", 421
+ (rx1051_rep, rx1051_pos, $I10, $P10) = rx1051_cur."!mark_fail"(0)
+ lt rx1051_pos, -1, rx1051_done
+ eq rx1051_pos, -1, rx1051_fail
jump $I10
- rx1048_done:
- rx1048_cur."!cursor_fail"()
- rx1048_cur."!cursor_debug"("FAIL ", "infix:sym<->")
- .return (rx1048_cur)
+ rx1051_done:
+ rx1051_cur."!cursor_fail"()
+ rx1051_cur."!cursor_debug"("FAIL ", "infix:sym<->")
+ .return (rx1051_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<->" :subid("266_1267204702.05125") :method
-.annotate "line", 417
- $P1050 = self."!PREFIX__!subrule"("O", "-")
- new $P1051, "ResizablePMCArray"
- push $P1051, $P1050
- .return ($P1051)
+.sub "!PREFIX__infix:sym<->" :subid("266_1271336396.90314") :method
+.annotate "line", 421
+ $P1053 = self."!PREFIX__!subrule"("O", "-")
+ new $P1054, "ResizablePMCArray"
+ push $P1054, $P1053
+ .return ($P1054)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<~>" :subid("267_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1055_tgt
- .local int rx1055_pos
- .local int rx1055_off
- .local int rx1055_eos
- .local int rx1055_rep
- .local pmc rx1055_cur
- (rx1055_cur, rx1055_pos, rx1055_tgt) = self."!cursor_start"()
- rx1055_cur."!cursor_debug"("START ", "infix:sym<~>")
- .lex unicode:"$\x{a2}", rx1055_cur
- .local pmc match
- .lex "$/", match
- length rx1055_eos, rx1055_tgt
- set rx1055_off, 0
- lt rx1055_pos, 2, rx1055_start
- sub rx1055_off, rx1055_pos, 1
- substr rx1055_tgt, rx1055_tgt, rx1055_off
- rx1055_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1059_done
- goto rxscan1059_scan
- rxscan1059_loop:
- ($P10) = rx1055_cur."from"()
- inc $P10
- set rx1055_pos, $P10
- ge rx1055_pos, rx1055_eos, rxscan1059_done
- rxscan1059_scan:
- set_addr $I10, rxscan1059_loop
- rx1055_cur."!mark_push"(0, rx1055_pos, $I10)
- rxscan1059_done:
-.annotate "line", 484
+.sub "infix:sym<~>" :subid("267_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1058_tgt
+ .local int rx1058_pos
+ .local int rx1058_off
+ .local int rx1058_eos
+ .local int rx1058_rep
+ .local pmc rx1058_cur
+ (rx1058_cur, rx1058_pos, rx1058_tgt) = self."!cursor_start"()
+ rx1058_cur."!cursor_debug"("START ", "infix:sym<~>")
+ .lex unicode:"$\x{a2}", rx1058_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1058_eos, rx1058_tgt
+ set rx1058_off, 0
+ lt rx1058_pos, 2, rx1058_start
+ sub rx1058_off, rx1058_pos, 1
+ substr rx1058_tgt, rx1058_tgt, rx1058_off
+ rx1058_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1062_done
+ goto rxscan1062_scan
+ rxscan1062_loop:
+ ($P10) = rx1058_cur."from"()
+ inc $P10
+ set rx1058_pos, $P10
+ ge rx1058_pos, rx1058_eos, rxscan1062_done
+ rxscan1062_scan:
+ set_addr $I10, rxscan1062_loop
+ rx1058_cur."!mark_push"(0, rx1058_pos, $I10)
+ rxscan1062_done:
+.annotate "line", 488
# rx subcapture "sym"
- set_addr $I10, rxcap_1060_fail
- rx1055_cur."!mark_push"(0, rx1055_pos, $I10)
+ set_addr $I10, rxcap_1063_fail
+ rx1058_cur."!mark_push"(0, rx1058_pos, $I10)
# rx literal "~"
- add $I11, rx1055_pos, 1
- gt $I11, rx1055_eos, rx1055_fail
- sub $I11, rx1055_pos, rx1055_off
- substr $S10, rx1055_tgt, $I11, 1
- ne $S10, "~", rx1055_fail
- add rx1055_pos, 1
- set_addr $I10, rxcap_1060_fail
- ($I12, $I11) = rx1055_cur."!mark_peek"($I10)
- rx1055_cur."!cursor_pos"($I11)
- ($P10) = rx1055_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1055_pos, "")
- rx1055_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1058_pos, 1
+ gt $I11, rx1058_eos, rx1058_fail
+ sub $I11, rx1058_pos, rx1058_off
+ substr $S10, rx1058_tgt, $I11, 1
+ ne $S10, "~", rx1058_fail
+ add rx1058_pos, 1
+ set_addr $I10, rxcap_1063_fail
+ ($I12, $I11) = rx1058_cur."!mark_peek"($I10)
+ rx1058_cur."!cursor_pos"($I11)
+ ($P10) = rx1058_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1058_pos, "")
+ rx1058_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1060_done
- rxcap_1060_fail:
- goto rx1055_fail
- rxcap_1060_done:
+ goto rxcap_1063_done
+ rxcap_1063_fail:
+ goto rx1058_fail
+ rxcap_1063_done:
# rx subrule "O" subtype=capture negate=
- rx1055_cur."!cursor_pos"(rx1055_pos)
- $P10 = rx1055_cur."O"("%concatenation , :pirop<concat>")
- unless $P10, rx1055_fail
- rx1055_cur."!mark_push"(0, -1, 0, $P10)
+ rx1058_cur."!cursor_pos"(rx1058_pos)
+ $P10 = rx1058_cur."O"("%concatenation , :pirop<concat>")
+ unless $P10, rx1058_fail
+ rx1058_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1055_pos = $P10."pos"()
+ rx1058_pos = $P10."pos"()
# rx pass
- rx1055_cur."!cursor_pass"(rx1055_pos, "infix:sym<~>")
- rx1055_cur."!cursor_debug"("PASS ", "infix:sym<~>", " at pos=", rx1055_pos)
- .return (rx1055_cur)
- rx1055_fail:
-.annotate "line", 417
- (rx1055_rep, rx1055_pos, $I10, $P10) = rx1055_cur."!mark_fail"(0)
- lt rx1055_pos, -1, rx1055_done
- eq rx1055_pos, -1, rx1055_fail
+ rx1058_cur."!cursor_pass"(rx1058_pos, "infix:sym<~>")
+ rx1058_cur."!cursor_debug"("PASS ", "infix:sym<~>", " at pos=", rx1058_pos)
+ .return (rx1058_cur)
+ rx1058_fail:
+.annotate "line", 421
+ (rx1058_rep, rx1058_pos, $I10, $P10) = rx1058_cur."!mark_fail"(0)
+ lt rx1058_pos, -1, rx1058_done
+ eq rx1058_pos, -1, rx1058_fail
jump $I10
- rx1055_done:
- rx1055_cur."!cursor_fail"()
- rx1055_cur."!cursor_debug"("FAIL ", "infix:sym<~>")
- .return (rx1055_cur)
+ rx1058_done:
+ rx1058_cur."!cursor_fail"()
+ rx1058_cur."!cursor_debug"("FAIL ", "infix:sym<~>")
+ .return (rx1058_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~>" :subid("268_1267204702.05125") :method
-.annotate "line", 417
- $P1057 = self."!PREFIX__!subrule"("O", "~")
- new $P1058, "ResizablePMCArray"
- push $P1058, $P1057
- .return ($P1058)
+.sub "!PREFIX__infix:sym<~>" :subid("268_1271336396.90314") :method
+.annotate "line", 421
+ $P1060 = self."!PREFIX__!subrule"("O", "~")
+ new $P1061, "ResizablePMCArray"
+ push $P1061, $P1060
+ .return ($P1061)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<==>" :subid("269_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1062_tgt
- .local int rx1062_pos
- .local int rx1062_off
- .local int rx1062_eos
- .local int rx1062_rep
- .local pmc rx1062_cur
- (rx1062_cur, rx1062_pos, rx1062_tgt) = self."!cursor_start"()
- rx1062_cur."!cursor_debug"("START ", "infix:sym<==>")
- .lex unicode:"$\x{a2}", rx1062_cur
- .local pmc match
- .lex "$/", match
- length rx1062_eos, rx1062_tgt
- set rx1062_off, 0
- lt rx1062_pos, 2, rx1062_start
- sub rx1062_off, rx1062_pos, 1
- substr rx1062_tgt, rx1062_tgt, rx1062_off
- rx1062_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1066_done
- goto rxscan1066_scan
- rxscan1066_loop:
- ($P10) = rx1062_cur."from"()
- inc $P10
- set rx1062_pos, $P10
- ge rx1062_pos, rx1062_eos, rxscan1066_done
- rxscan1066_scan:
- set_addr $I10, rxscan1066_loop
- rx1062_cur."!mark_push"(0, rx1062_pos, $I10)
- rxscan1066_done:
-.annotate "line", 486
+.sub "infix:sym<==>" :subid("269_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1065_tgt
+ .local int rx1065_pos
+ .local int rx1065_off
+ .local int rx1065_eos
+ .local int rx1065_rep
+ .local pmc rx1065_cur
+ (rx1065_cur, rx1065_pos, rx1065_tgt) = self."!cursor_start"()
+ rx1065_cur."!cursor_debug"("START ", "infix:sym<==>")
+ .lex unicode:"$\x{a2}", rx1065_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1065_eos, rx1065_tgt
+ set rx1065_off, 0
+ lt rx1065_pos, 2, rx1065_start
+ sub rx1065_off, rx1065_pos, 1
+ substr rx1065_tgt, rx1065_tgt, rx1065_off
+ rx1065_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1069_done
+ goto rxscan1069_scan
+ rxscan1069_loop:
+ ($P10) = rx1065_cur."from"()
+ inc $P10
+ set rx1065_pos, $P10
+ ge rx1065_pos, rx1065_eos, rxscan1069_done
+ rxscan1069_scan:
+ set_addr $I10, rxscan1069_loop
+ rx1065_cur."!mark_push"(0, rx1065_pos, $I10)
+ rxscan1069_done:
+.annotate "line", 490
# rx subcapture "sym"
- set_addr $I10, rxcap_1067_fail
- rx1062_cur."!mark_push"(0, rx1062_pos, $I10)
+ set_addr $I10, rxcap_1070_fail
+ rx1065_cur."!mark_push"(0, rx1065_pos, $I10)
# rx literal "=="
- add $I11, rx1062_pos, 2
- gt $I11, rx1062_eos, rx1062_fail
- sub $I11, rx1062_pos, rx1062_off
- substr $S10, rx1062_tgt, $I11, 2
- ne $S10, "==", rx1062_fail
- add rx1062_pos, 2
- set_addr $I10, rxcap_1067_fail
- ($I12, $I11) = rx1062_cur."!mark_peek"($I10)
- rx1062_cur."!cursor_pos"($I11)
- ($P10) = rx1062_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1062_pos, "")
- rx1062_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1065_pos, 2
+ gt $I11, rx1065_eos, rx1065_fail
+ sub $I11, rx1065_pos, rx1065_off
+ substr $S10, rx1065_tgt, $I11, 2
+ ne $S10, "==", rx1065_fail
+ add rx1065_pos, 2
+ set_addr $I10, rxcap_1070_fail
+ ($I12, $I11) = rx1065_cur."!mark_peek"($I10)
+ rx1065_cur."!cursor_pos"($I11)
+ ($P10) = rx1065_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1065_pos, "")
+ rx1065_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1067_done
- rxcap_1067_fail:
- goto rx1062_fail
- rxcap_1067_done:
+ goto rxcap_1070_done
+ rxcap_1070_fail:
+ goto rx1065_fail
+ rxcap_1070_done:
# rx subrule "O" subtype=capture negate=
- rx1062_cur."!cursor_pos"(rx1062_pos)
- $P10 = rx1062_cur."O"("%relational, :pirop<iseq INn>")
- unless $P10, rx1062_fail
- rx1062_cur."!mark_push"(0, -1, 0, $P10)
+ rx1065_cur."!cursor_pos"(rx1065_pos)
+ $P10 = rx1065_cur."O"("%relational, :pirop<iseq INn>")
+ unless $P10, rx1065_fail
+ rx1065_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1062_pos = $P10."pos"()
+ rx1065_pos = $P10."pos"()
# rx pass
- rx1062_cur."!cursor_pass"(rx1062_pos, "infix:sym<==>")
- rx1062_cur."!cursor_debug"("PASS ", "infix:sym<==>", " at pos=", rx1062_pos)
- .return (rx1062_cur)
- rx1062_fail:
-.annotate "line", 417
- (rx1062_rep, rx1062_pos, $I10, $P10) = rx1062_cur."!mark_fail"(0)
- lt rx1062_pos, -1, rx1062_done
- eq rx1062_pos, -1, rx1062_fail
+ rx1065_cur."!cursor_pass"(rx1065_pos, "infix:sym<==>")
+ rx1065_cur."!cursor_debug"("PASS ", "infix:sym<==>", " at pos=", rx1065_pos)
+ .return (rx1065_cur)
+ rx1065_fail:
+.annotate "line", 421
+ (rx1065_rep, rx1065_pos, $I10, $P10) = rx1065_cur."!mark_fail"(0)
+ lt rx1065_pos, -1, rx1065_done
+ eq rx1065_pos, -1, rx1065_fail
jump $I10
- rx1062_done:
- rx1062_cur."!cursor_fail"()
- rx1062_cur."!cursor_debug"("FAIL ", "infix:sym<==>")
- .return (rx1062_cur)
+ rx1065_done:
+ rx1065_cur."!cursor_fail"()
+ rx1065_cur."!cursor_debug"("FAIL ", "infix:sym<==>")
+ .return (rx1065_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<==>" :subid("270_1267204702.05125") :method
-.annotate "line", 417
- $P1064 = self."!PREFIX__!subrule"("O", "==")
- new $P1065, "ResizablePMCArray"
- push $P1065, $P1064
- .return ($P1065)
+.sub "!PREFIX__infix:sym<==>" :subid("270_1271336396.90314") :method
+.annotate "line", 421
+ $P1067 = self."!PREFIX__!subrule"("O", "==")
+ new $P1068, "ResizablePMCArray"
+ push $P1068, $P1067
+ .return ($P1068)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<!=>" :subid("271_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1069_tgt
- .local int rx1069_pos
- .local int rx1069_off
- .local int rx1069_eos
- .local int rx1069_rep
- .local pmc rx1069_cur
- (rx1069_cur, rx1069_pos, rx1069_tgt) = self."!cursor_start"()
- rx1069_cur."!cursor_debug"("START ", "infix:sym<!=>")
- .lex unicode:"$\x{a2}", rx1069_cur
- .local pmc match
- .lex "$/", match
- length rx1069_eos, rx1069_tgt
- set rx1069_off, 0
- lt rx1069_pos, 2, rx1069_start
- sub rx1069_off, rx1069_pos, 1
- substr rx1069_tgt, rx1069_tgt, rx1069_off
- rx1069_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1073_done
- goto rxscan1073_scan
- rxscan1073_loop:
- ($P10) = rx1069_cur."from"()
- inc $P10
- set rx1069_pos, $P10
- ge rx1069_pos, rx1069_eos, rxscan1073_done
- rxscan1073_scan:
- set_addr $I10, rxscan1073_loop
- rx1069_cur."!mark_push"(0, rx1069_pos, $I10)
- rxscan1073_done:
-.annotate "line", 487
+.sub "infix:sym<!=>" :subid("271_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1072_tgt
+ .local int rx1072_pos
+ .local int rx1072_off
+ .local int rx1072_eos
+ .local int rx1072_rep
+ .local pmc rx1072_cur
+ (rx1072_cur, rx1072_pos, rx1072_tgt) = self."!cursor_start"()
+ rx1072_cur."!cursor_debug"("START ", "infix:sym<!=>")
+ .lex unicode:"$\x{a2}", rx1072_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1072_eos, rx1072_tgt
+ set rx1072_off, 0
+ lt rx1072_pos, 2, rx1072_start
+ sub rx1072_off, rx1072_pos, 1
+ substr rx1072_tgt, rx1072_tgt, rx1072_off
+ rx1072_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1076_done
+ goto rxscan1076_scan
+ rxscan1076_loop:
+ ($P10) = rx1072_cur."from"()
+ inc $P10
+ set rx1072_pos, $P10
+ ge rx1072_pos, rx1072_eos, rxscan1076_done
+ rxscan1076_scan:
+ set_addr $I10, rxscan1076_loop
+ rx1072_cur."!mark_push"(0, rx1072_pos, $I10)
+ rxscan1076_done:
+.annotate "line", 491
# rx subcapture "sym"
- set_addr $I10, rxcap_1074_fail
- rx1069_cur."!mark_push"(0, rx1069_pos, $I10)
+ set_addr $I10, rxcap_1077_fail
+ rx1072_cur."!mark_push"(0, rx1072_pos, $I10)
# rx literal "!="
- add $I11, rx1069_pos, 2
- gt $I11, rx1069_eos, rx1069_fail
- sub $I11, rx1069_pos, rx1069_off
- substr $S10, rx1069_tgt, $I11, 2
- ne $S10, "!=", rx1069_fail
- add rx1069_pos, 2
- set_addr $I10, rxcap_1074_fail
- ($I12, $I11) = rx1069_cur."!mark_peek"($I10)
- rx1069_cur."!cursor_pos"($I11)
- ($P10) = rx1069_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1069_pos, "")
- rx1069_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1072_pos, 2
+ gt $I11, rx1072_eos, rx1072_fail
+ sub $I11, rx1072_pos, rx1072_off
+ substr $S10, rx1072_tgt, $I11, 2
+ ne $S10, "!=", rx1072_fail
+ add rx1072_pos, 2
+ set_addr $I10, rxcap_1077_fail
+ ($I12, $I11) = rx1072_cur."!mark_peek"($I10)
+ rx1072_cur."!cursor_pos"($I11)
+ ($P10) = rx1072_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1072_pos, "")
+ rx1072_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1074_done
- rxcap_1074_fail:
- goto rx1069_fail
- rxcap_1074_done:
+ goto rxcap_1077_done
+ rxcap_1077_fail:
+ goto rx1072_fail
+ rxcap_1077_done:
# rx subrule "O" subtype=capture negate=
- rx1069_cur."!cursor_pos"(rx1069_pos)
- $P10 = rx1069_cur."O"("%relational, :pirop<isne INn>")
- unless $P10, rx1069_fail
- rx1069_cur."!mark_push"(0, -1, 0, $P10)
+ rx1072_cur."!cursor_pos"(rx1072_pos)
+ $P10 = rx1072_cur."O"("%relational, :pirop<isne INn>")
+ unless $P10, rx1072_fail
+ rx1072_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1069_pos = $P10."pos"()
+ rx1072_pos = $P10."pos"()
# rx pass
- rx1069_cur."!cursor_pass"(rx1069_pos, "infix:sym<!=>")
- rx1069_cur."!cursor_debug"("PASS ", "infix:sym<!=>", " at pos=", rx1069_pos)
- .return (rx1069_cur)
- rx1069_fail:
-.annotate "line", 417
- (rx1069_rep, rx1069_pos, $I10, $P10) = rx1069_cur."!mark_fail"(0)
- lt rx1069_pos, -1, rx1069_done
- eq rx1069_pos, -1, rx1069_fail
+ rx1072_cur."!cursor_pass"(rx1072_pos, "infix:sym<!=>")
+ rx1072_cur."!cursor_debug"("PASS ", "infix:sym<!=>", " at pos=", rx1072_pos)
+ .return (rx1072_cur)
+ rx1072_fail:
+.annotate "line", 421
+ (rx1072_rep, rx1072_pos, $I10, $P10) = rx1072_cur."!mark_fail"(0)
+ lt rx1072_pos, -1, rx1072_done
+ eq rx1072_pos, -1, rx1072_fail
jump $I10
- rx1069_done:
- rx1069_cur."!cursor_fail"()
- rx1069_cur."!cursor_debug"("FAIL ", "infix:sym<!=>")
- .return (rx1069_cur)
+ rx1072_done:
+ rx1072_cur."!cursor_fail"()
+ rx1072_cur."!cursor_debug"("FAIL ", "infix:sym<!=>")
+ .return (rx1072_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<!=>" :subid("272_1267204702.05125") :method
-.annotate "line", 417
- $P1071 = self."!PREFIX__!subrule"("O", "!=")
- new $P1072, "ResizablePMCArray"
- push $P1072, $P1071
- .return ($P1072)
+.sub "!PREFIX__infix:sym<!=>" :subid("272_1271336396.90314") :method
+.annotate "line", 421
+ $P1074 = self."!PREFIX__!subrule"("O", "!=")
+ new $P1075, "ResizablePMCArray"
+ push $P1075, $P1074
+ .return ($P1075)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<<=>" :subid("273_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1076_tgt
- .local int rx1076_pos
- .local int rx1076_off
- .local int rx1076_eos
- .local int rx1076_rep
- .local pmc rx1076_cur
- (rx1076_cur, rx1076_pos, rx1076_tgt) = self."!cursor_start"()
- rx1076_cur."!cursor_debug"("START ", "infix:sym<<=>")
- .lex unicode:"$\x{a2}", rx1076_cur
- .local pmc match
- .lex "$/", match
- length rx1076_eos, rx1076_tgt
- set rx1076_off, 0
- lt rx1076_pos, 2, rx1076_start
- sub rx1076_off, rx1076_pos, 1
- substr rx1076_tgt, rx1076_tgt, rx1076_off
- rx1076_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1080_done
- goto rxscan1080_scan
- rxscan1080_loop:
- ($P10) = rx1076_cur."from"()
- inc $P10
- set rx1076_pos, $P10
- ge rx1076_pos, rx1076_eos, rxscan1080_done
- rxscan1080_scan:
- set_addr $I10, rxscan1080_loop
- rx1076_cur."!mark_push"(0, rx1076_pos, $I10)
- rxscan1080_done:
-.annotate "line", 488
+.sub "infix:sym<<=>" :subid("273_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1079_tgt
+ .local int rx1079_pos
+ .local int rx1079_off
+ .local int rx1079_eos
+ .local int rx1079_rep
+ .local pmc rx1079_cur
+ (rx1079_cur, rx1079_pos, rx1079_tgt) = self."!cursor_start"()
+ rx1079_cur."!cursor_debug"("START ", "infix:sym<<=>")
+ .lex unicode:"$\x{a2}", rx1079_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1079_eos, rx1079_tgt
+ set rx1079_off, 0
+ lt rx1079_pos, 2, rx1079_start
+ sub rx1079_off, rx1079_pos, 1
+ substr rx1079_tgt, rx1079_tgt, rx1079_off
+ rx1079_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1083_done
+ goto rxscan1083_scan
+ rxscan1083_loop:
+ ($P10) = rx1079_cur."from"()
+ inc $P10
+ set rx1079_pos, $P10
+ ge rx1079_pos, rx1079_eos, rxscan1083_done
+ rxscan1083_scan:
+ set_addr $I10, rxscan1083_loop
+ rx1079_cur."!mark_push"(0, rx1079_pos, $I10)
+ rxscan1083_done:
+.annotate "line", 492
# rx subcapture "sym"
- set_addr $I10, rxcap_1081_fail
- rx1076_cur."!mark_push"(0, rx1076_pos, $I10)
+ set_addr $I10, rxcap_1084_fail
+ rx1079_cur."!mark_push"(0, rx1079_pos, $I10)
# rx literal "<="
- add $I11, rx1076_pos, 2
- gt $I11, rx1076_eos, rx1076_fail
- sub $I11, rx1076_pos, rx1076_off
- substr $S10, rx1076_tgt, $I11, 2
- ne $S10, "<=", rx1076_fail
- add rx1076_pos, 2
- set_addr $I10, rxcap_1081_fail
- ($I12, $I11) = rx1076_cur."!mark_peek"($I10)
- rx1076_cur."!cursor_pos"($I11)
- ($P10) = rx1076_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1076_pos, "")
- rx1076_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1079_pos, 2
+ gt $I11, rx1079_eos, rx1079_fail
+ sub $I11, rx1079_pos, rx1079_off
+ substr $S10, rx1079_tgt, $I11, 2
+ ne $S10, "<=", rx1079_fail
+ add rx1079_pos, 2
+ set_addr $I10, rxcap_1084_fail
+ ($I12, $I11) = rx1079_cur."!mark_peek"($I10)
+ rx1079_cur."!cursor_pos"($I11)
+ ($P10) = rx1079_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1079_pos, "")
+ rx1079_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1081_done
- rxcap_1081_fail:
- goto rx1076_fail
- rxcap_1081_done:
+ goto rxcap_1084_done
+ rxcap_1084_fail:
+ goto rx1079_fail
+ rxcap_1084_done:
# rx subrule "O" subtype=capture negate=
- rx1076_cur."!cursor_pos"(rx1076_pos)
- $P10 = rx1076_cur."O"("%relational, :pirop<isle INn>")
- unless $P10, rx1076_fail
- rx1076_cur."!mark_push"(0, -1, 0, $P10)
+ rx1079_cur."!cursor_pos"(rx1079_pos)
+ $P10 = rx1079_cur."O"("%relational, :pirop<isle INn>")
+ unless $P10, rx1079_fail
+ rx1079_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1076_pos = $P10."pos"()
+ rx1079_pos = $P10."pos"()
# rx pass
- rx1076_cur."!cursor_pass"(rx1076_pos, "infix:sym<<=>")
- rx1076_cur."!cursor_debug"("PASS ", "infix:sym<<=>", " at pos=", rx1076_pos)
- .return (rx1076_cur)
- rx1076_fail:
-.annotate "line", 417
- (rx1076_rep, rx1076_pos, $I10, $P10) = rx1076_cur."!mark_fail"(0)
- lt rx1076_pos, -1, rx1076_done
- eq rx1076_pos, -1, rx1076_fail
+ rx1079_cur."!cursor_pass"(rx1079_pos, "infix:sym<<=>")
+ rx1079_cur."!cursor_debug"("PASS ", "infix:sym<<=>", " at pos=", rx1079_pos)
+ .return (rx1079_cur)
+ rx1079_fail:
+.annotate "line", 421
+ (rx1079_rep, rx1079_pos, $I10, $P10) = rx1079_cur."!mark_fail"(0)
+ lt rx1079_pos, -1, rx1079_done
+ eq rx1079_pos, -1, rx1079_fail
jump $I10
- rx1076_done:
- rx1076_cur."!cursor_fail"()
- rx1076_cur."!cursor_debug"("FAIL ", "infix:sym<<=>")
- .return (rx1076_cur)
+ rx1079_done:
+ rx1079_cur."!cursor_fail"()
+ rx1079_cur."!cursor_debug"("FAIL ", "infix:sym<<=>")
+ .return (rx1079_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<=>" :subid("274_1267204702.05125") :method
-.annotate "line", 417
- $P1078 = self."!PREFIX__!subrule"("O", "<=")
- new $P1079, "ResizablePMCArray"
- push $P1079, $P1078
- .return ($P1079)
+.sub "!PREFIX__infix:sym<<=>" :subid("274_1271336396.90314") :method
+.annotate "line", 421
+ $P1081 = self."!PREFIX__!subrule"("O", "<=")
+ new $P1082, "ResizablePMCArray"
+ push $P1082, $P1081
+ .return ($P1082)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<>=>" :subid("275_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1083_tgt
- .local int rx1083_pos
- .local int rx1083_off
- .local int rx1083_eos
- .local int rx1083_rep
- .local pmc rx1083_cur
- (rx1083_cur, rx1083_pos, rx1083_tgt) = self."!cursor_start"()
- rx1083_cur."!cursor_debug"("START ", "infix:sym<>=>")
- .lex unicode:"$\x{a2}", rx1083_cur
- .local pmc match
- .lex "$/", match
- length rx1083_eos, rx1083_tgt
- set rx1083_off, 0
- lt rx1083_pos, 2, rx1083_start
- sub rx1083_off, rx1083_pos, 1
- substr rx1083_tgt, rx1083_tgt, rx1083_off
- rx1083_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1087_done
- goto rxscan1087_scan
- rxscan1087_loop:
- ($P10) = rx1083_cur."from"()
- inc $P10
- set rx1083_pos, $P10
- ge rx1083_pos, rx1083_eos, rxscan1087_done
- rxscan1087_scan:
- set_addr $I10, rxscan1087_loop
- rx1083_cur."!mark_push"(0, rx1083_pos, $I10)
- rxscan1087_done:
-.annotate "line", 489
+.sub "infix:sym<>=>" :subid("275_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1086_tgt
+ .local int rx1086_pos
+ .local int rx1086_off
+ .local int rx1086_eos
+ .local int rx1086_rep
+ .local pmc rx1086_cur
+ (rx1086_cur, rx1086_pos, rx1086_tgt) = self."!cursor_start"()
+ rx1086_cur."!cursor_debug"("START ", "infix:sym<>=>")
+ .lex unicode:"$\x{a2}", rx1086_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1086_eos, rx1086_tgt
+ set rx1086_off, 0
+ lt rx1086_pos, 2, rx1086_start
+ sub rx1086_off, rx1086_pos, 1
+ substr rx1086_tgt, rx1086_tgt, rx1086_off
+ rx1086_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1090_done
+ goto rxscan1090_scan
+ rxscan1090_loop:
+ ($P10) = rx1086_cur."from"()
+ inc $P10
+ set rx1086_pos, $P10
+ ge rx1086_pos, rx1086_eos, rxscan1090_done
+ rxscan1090_scan:
+ set_addr $I10, rxscan1090_loop
+ rx1086_cur."!mark_push"(0, rx1086_pos, $I10)
+ rxscan1090_done:
+.annotate "line", 493
# rx subcapture "sym"
- set_addr $I10, rxcap_1088_fail
- rx1083_cur."!mark_push"(0, rx1083_pos, $I10)
+ set_addr $I10, rxcap_1091_fail
+ rx1086_cur."!mark_push"(0, rx1086_pos, $I10)
# rx literal ">="
- add $I11, rx1083_pos, 2
- gt $I11, rx1083_eos, rx1083_fail
- sub $I11, rx1083_pos, rx1083_off
- substr $S10, rx1083_tgt, $I11, 2
- ne $S10, ">=", rx1083_fail
- add rx1083_pos, 2
- set_addr $I10, rxcap_1088_fail
- ($I12, $I11) = rx1083_cur."!mark_peek"($I10)
- rx1083_cur."!cursor_pos"($I11)
- ($P10) = rx1083_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1083_pos, "")
- rx1083_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1086_pos, 2
+ gt $I11, rx1086_eos, rx1086_fail
+ sub $I11, rx1086_pos, rx1086_off
+ substr $S10, rx1086_tgt, $I11, 2
+ ne $S10, ">=", rx1086_fail
+ add rx1086_pos, 2
+ set_addr $I10, rxcap_1091_fail
+ ($I12, $I11) = rx1086_cur."!mark_peek"($I10)
+ rx1086_cur."!cursor_pos"($I11)
+ ($P10) = rx1086_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1086_pos, "")
+ rx1086_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1088_done
- rxcap_1088_fail:
- goto rx1083_fail
- rxcap_1088_done:
+ goto rxcap_1091_done
+ rxcap_1091_fail:
+ goto rx1086_fail
+ rxcap_1091_done:
# rx subrule "O" subtype=capture negate=
- rx1083_cur."!cursor_pos"(rx1083_pos)
- $P10 = rx1083_cur."O"("%relational, :pirop<isge INn>")
- unless $P10, rx1083_fail
- rx1083_cur."!mark_push"(0, -1, 0, $P10)
+ rx1086_cur."!cursor_pos"(rx1086_pos)
+ $P10 = rx1086_cur."O"("%relational, :pirop<isge INn>")
+ unless $P10, rx1086_fail
+ rx1086_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1083_pos = $P10."pos"()
+ rx1086_pos = $P10."pos"()
# rx pass
- rx1083_cur."!cursor_pass"(rx1083_pos, "infix:sym<>=>")
- rx1083_cur."!cursor_debug"("PASS ", "infix:sym<>=>", " at pos=", rx1083_pos)
- .return (rx1083_cur)
- rx1083_fail:
-.annotate "line", 417
- (rx1083_rep, rx1083_pos, $I10, $P10) = rx1083_cur."!mark_fail"(0)
- lt rx1083_pos, -1, rx1083_done
- eq rx1083_pos, -1, rx1083_fail
+ rx1086_cur."!cursor_pass"(rx1086_pos, "infix:sym<>=>")
+ rx1086_cur."!cursor_debug"("PASS ", "infix:sym<>=>", " at pos=", rx1086_pos)
+ .return (rx1086_cur)
+ rx1086_fail:
+.annotate "line", 421
+ (rx1086_rep, rx1086_pos, $I10, $P10) = rx1086_cur."!mark_fail"(0)
+ lt rx1086_pos, -1, rx1086_done
+ eq rx1086_pos, -1, rx1086_fail
jump $I10
- rx1083_done:
- rx1083_cur."!cursor_fail"()
- rx1083_cur."!cursor_debug"("FAIL ", "infix:sym<>=>")
- .return (rx1083_cur)
+ rx1086_done:
+ rx1086_cur."!cursor_fail"()
+ rx1086_cur."!cursor_debug"("FAIL ", "infix:sym<>=>")
+ .return (rx1086_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>=>" :subid("276_1267204702.05125") :method
-.annotate "line", 417
- $P1085 = self."!PREFIX__!subrule"("O", ">=")
- new $P1086, "ResizablePMCArray"
- push $P1086, $P1085
- .return ($P1086)
+.sub "!PREFIX__infix:sym<>=>" :subid("276_1271336396.90314") :method
+.annotate "line", 421
+ $P1088 = self."!PREFIX__!subrule"("O", ">=")
+ new $P1089, "ResizablePMCArray"
+ push $P1089, $P1088
+ .return ($P1089)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<<>" :subid("277_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1090_tgt
- .local int rx1090_pos
- .local int rx1090_off
- .local int rx1090_eos
- .local int rx1090_rep
- .local pmc rx1090_cur
- (rx1090_cur, rx1090_pos, rx1090_tgt) = self."!cursor_start"()
- rx1090_cur."!cursor_debug"("START ", "infix:sym<<>")
- .lex unicode:"$\x{a2}", rx1090_cur
- .local pmc match
- .lex "$/", match
- length rx1090_eos, rx1090_tgt
- set rx1090_off, 0
- lt rx1090_pos, 2, rx1090_start
- sub rx1090_off, rx1090_pos, 1
- substr rx1090_tgt, rx1090_tgt, rx1090_off
- rx1090_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1094_done
- goto rxscan1094_scan
- rxscan1094_loop:
- ($P10) = rx1090_cur."from"()
- inc $P10
- set rx1090_pos, $P10
- ge rx1090_pos, rx1090_eos, rxscan1094_done
- rxscan1094_scan:
- set_addr $I10, rxscan1094_loop
- rx1090_cur."!mark_push"(0, rx1090_pos, $I10)
- rxscan1094_done:
-.annotate "line", 490
+.sub "infix:sym<<>" :subid("277_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1093_tgt
+ .local int rx1093_pos
+ .local int rx1093_off
+ .local int rx1093_eos
+ .local int rx1093_rep
+ .local pmc rx1093_cur
+ (rx1093_cur, rx1093_pos, rx1093_tgt) = self."!cursor_start"()
+ rx1093_cur."!cursor_debug"("START ", "infix:sym<<>")
+ .lex unicode:"$\x{a2}", rx1093_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1093_eos, rx1093_tgt
+ set rx1093_off, 0
+ lt rx1093_pos, 2, rx1093_start
+ sub rx1093_off, rx1093_pos, 1
+ substr rx1093_tgt, rx1093_tgt, rx1093_off
+ rx1093_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1097_done
+ goto rxscan1097_scan
+ rxscan1097_loop:
+ ($P10) = rx1093_cur."from"()
+ inc $P10
+ set rx1093_pos, $P10
+ ge rx1093_pos, rx1093_eos, rxscan1097_done
+ rxscan1097_scan:
+ set_addr $I10, rxscan1097_loop
+ rx1093_cur."!mark_push"(0, rx1093_pos, $I10)
+ rxscan1097_done:
+.annotate "line", 494
# rx subcapture "sym"
- set_addr $I10, rxcap_1095_fail
- rx1090_cur."!mark_push"(0, rx1090_pos, $I10)
+ set_addr $I10, rxcap_1098_fail
+ rx1093_cur."!mark_push"(0, rx1093_pos, $I10)
# rx literal "<"
- add $I11, rx1090_pos, 1
- gt $I11, rx1090_eos, rx1090_fail
- sub $I11, rx1090_pos, rx1090_off
- substr $S10, rx1090_tgt, $I11, 1
- ne $S10, "<", rx1090_fail
- add rx1090_pos, 1
- set_addr $I10, rxcap_1095_fail
- ($I12, $I11) = rx1090_cur."!mark_peek"($I10)
- rx1090_cur."!cursor_pos"($I11)
- ($P10) = rx1090_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1090_pos, "")
- rx1090_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1093_pos, 1
+ gt $I11, rx1093_eos, rx1093_fail
+ sub $I11, rx1093_pos, rx1093_off
+ substr $S10, rx1093_tgt, $I11, 1
+ ne $S10, "<", rx1093_fail
+ add rx1093_pos, 1
+ set_addr $I10, rxcap_1098_fail
+ ($I12, $I11) = rx1093_cur."!mark_peek"($I10)
+ rx1093_cur."!cursor_pos"($I11)
+ ($P10) = rx1093_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1093_pos, "")
+ rx1093_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1095_done
- rxcap_1095_fail:
- goto rx1090_fail
- rxcap_1095_done:
+ goto rxcap_1098_done
+ rxcap_1098_fail:
+ goto rx1093_fail
+ rxcap_1098_done:
# rx subrule "O" subtype=capture negate=
- rx1090_cur."!cursor_pos"(rx1090_pos)
- $P10 = rx1090_cur."O"("%relational, :pirop<islt INn>")
- unless $P10, rx1090_fail
- rx1090_cur."!mark_push"(0, -1, 0, $P10)
+ rx1093_cur."!cursor_pos"(rx1093_pos)
+ $P10 = rx1093_cur."O"("%relational, :pirop<islt INn>")
+ unless $P10, rx1093_fail
+ rx1093_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1090_pos = $P10."pos"()
+ rx1093_pos = $P10."pos"()
# rx pass
- rx1090_cur."!cursor_pass"(rx1090_pos, "infix:sym<<>")
- rx1090_cur."!cursor_debug"("PASS ", "infix:sym<<>", " at pos=", rx1090_pos)
- .return (rx1090_cur)
- rx1090_fail:
-.annotate "line", 417
- (rx1090_rep, rx1090_pos, $I10, $P10) = rx1090_cur."!mark_fail"(0)
- lt rx1090_pos, -1, rx1090_done
- eq rx1090_pos, -1, rx1090_fail
+ rx1093_cur."!cursor_pass"(rx1093_pos, "infix:sym<<>")
+ rx1093_cur."!cursor_debug"("PASS ", "infix:sym<<>", " at pos=", rx1093_pos)
+ .return (rx1093_cur)
+ rx1093_fail:
+.annotate "line", 421
+ (rx1093_rep, rx1093_pos, $I10, $P10) = rx1093_cur."!mark_fail"(0)
+ lt rx1093_pos, -1, rx1093_done
+ eq rx1093_pos, -1, rx1093_fail
jump $I10
- rx1090_done:
- rx1090_cur."!cursor_fail"()
- rx1090_cur."!cursor_debug"("FAIL ", "infix:sym<<>")
- .return (rx1090_cur)
+ rx1093_done:
+ rx1093_cur."!cursor_fail"()
+ rx1093_cur."!cursor_debug"("FAIL ", "infix:sym<<>")
+ .return (rx1093_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<>" :subid("278_1267204702.05125") :method
-.annotate "line", 417
- $P1092 = self."!PREFIX__!subrule"("O", "<")
- new $P1093, "ResizablePMCArray"
- push $P1093, $P1092
- .return ($P1093)
+.sub "!PREFIX__infix:sym<<>" :subid("278_1271336396.90314") :method
+.annotate "line", 421
+ $P1095 = self."!PREFIX__!subrule"("O", "<")
+ new $P1096, "ResizablePMCArray"
+ push $P1096, $P1095
+ .return ($P1096)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<>>" :subid("279_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1097_tgt
- .local int rx1097_pos
- .local int rx1097_off
- .local int rx1097_eos
- .local int rx1097_rep
- .local pmc rx1097_cur
- (rx1097_cur, rx1097_pos, rx1097_tgt) = self."!cursor_start"()
- rx1097_cur."!cursor_debug"("START ", "infix:sym<>>")
- .lex unicode:"$\x{a2}", rx1097_cur
- .local pmc match
- .lex "$/", match
- length rx1097_eos, rx1097_tgt
- set rx1097_off, 0
- lt rx1097_pos, 2, rx1097_start
- sub rx1097_off, rx1097_pos, 1
- substr rx1097_tgt, rx1097_tgt, rx1097_off
- rx1097_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1101_done
- goto rxscan1101_scan
- rxscan1101_loop:
- ($P10) = rx1097_cur."from"()
- inc $P10
- set rx1097_pos, $P10
- ge rx1097_pos, rx1097_eos, rxscan1101_done
- rxscan1101_scan:
- set_addr $I10, rxscan1101_loop
- rx1097_cur."!mark_push"(0, rx1097_pos, $I10)
- rxscan1101_done:
-.annotate "line", 491
+.sub "infix:sym<>>" :subid("279_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1100_tgt
+ .local int rx1100_pos
+ .local int rx1100_off
+ .local int rx1100_eos
+ .local int rx1100_rep
+ .local pmc rx1100_cur
+ (rx1100_cur, rx1100_pos, rx1100_tgt) = self."!cursor_start"()
+ rx1100_cur."!cursor_debug"("START ", "infix:sym<>>")
+ .lex unicode:"$\x{a2}", rx1100_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1100_eos, rx1100_tgt
+ set rx1100_off, 0
+ lt rx1100_pos, 2, rx1100_start
+ sub rx1100_off, rx1100_pos, 1
+ substr rx1100_tgt, rx1100_tgt, rx1100_off
+ rx1100_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1104_done
+ goto rxscan1104_scan
+ rxscan1104_loop:
+ ($P10) = rx1100_cur."from"()
+ inc $P10
+ set rx1100_pos, $P10
+ ge rx1100_pos, rx1100_eos, rxscan1104_done
+ rxscan1104_scan:
+ set_addr $I10, rxscan1104_loop
+ rx1100_cur."!mark_push"(0, rx1100_pos, $I10)
+ rxscan1104_done:
+.annotate "line", 495
# rx subcapture "sym"
- set_addr $I10, rxcap_1102_fail
- rx1097_cur."!mark_push"(0, rx1097_pos, $I10)
+ set_addr $I10, rxcap_1105_fail
+ rx1100_cur."!mark_push"(0, rx1100_pos, $I10)
# rx literal ">"
- add $I11, rx1097_pos, 1
- gt $I11, rx1097_eos, rx1097_fail
- sub $I11, rx1097_pos, rx1097_off
- substr $S10, rx1097_tgt, $I11, 1
- ne $S10, ">", rx1097_fail
- add rx1097_pos, 1
- set_addr $I10, rxcap_1102_fail
- ($I12, $I11) = rx1097_cur."!mark_peek"($I10)
- rx1097_cur."!cursor_pos"($I11)
- ($P10) = rx1097_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1097_pos, "")
- rx1097_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1100_pos, 1
+ gt $I11, rx1100_eos, rx1100_fail
+ sub $I11, rx1100_pos, rx1100_off
+ substr $S10, rx1100_tgt, $I11, 1
+ ne $S10, ">", rx1100_fail
+ add rx1100_pos, 1
+ set_addr $I10, rxcap_1105_fail
+ ($I12, $I11) = rx1100_cur."!mark_peek"($I10)
+ rx1100_cur."!cursor_pos"($I11)
+ ($P10) = rx1100_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1100_pos, "")
+ rx1100_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1102_done
- rxcap_1102_fail:
- goto rx1097_fail
- rxcap_1102_done:
+ goto rxcap_1105_done
+ rxcap_1105_fail:
+ goto rx1100_fail
+ rxcap_1105_done:
# rx subrule "O" subtype=capture negate=
- rx1097_cur."!cursor_pos"(rx1097_pos)
- $P10 = rx1097_cur."O"("%relational, :pirop<isgt INn>")
- unless $P10, rx1097_fail
- rx1097_cur."!mark_push"(0, -1, 0, $P10)
+ rx1100_cur."!cursor_pos"(rx1100_pos)
+ $P10 = rx1100_cur."O"("%relational, :pirop<isgt INn>")
+ unless $P10, rx1100_fail
+ rx1100_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1097_pos = $P10."pos"()
+ rx1100_pos = $P10."pos"()
# rx pass
- rx1097_cur."!cursor_pass"(rx1097_pos, "infix:sym<>>")
- rx1097_cur."!cursor_debug"("PASS ", "infix:sym<>>", " at pos=", rx1097_pos)
- .return (rx1097_cur)
- rx1097_fail:
-.annotate "line", 417
- (rx1097_rep, rx1097_pos, $I10, $P10) = rx1097_cur."!mark_fail"(0)
- lt rx1097_pos, -1, rx1097_done
- eq rx1097_pos, -1, rx1097_fail
+ rx1100_cur."!cursor_pass"(rx1100_pos, "infix:sym<>>")
+ rx1100_cur."!cursor_debug"("PASS ", "infix:sym<>>", " at pos=", rx1100_pos)
+ .return (rx1100_cur)
+ rx1100_fail:
+.annotate "line", 421
+ (rx1100_rep, rx1100_pos, $I10, $P10) = rx1100_cur."!mark_fail"(0)
+ lt rx1100_pos, -1, rx1100_done
+ eq rx1100_pos, -1, rx1100_fail
jump $I10
- rx1097_done:
- rx1097_cur."!cursor_fail"()
- rx1097_cur."!cursor_debug"("FAIL ", "infix:sym<>>")
- .return (rx1097_cur)
+ rx1100_done:
+ rx1100_cur."!cursor_fail"()
+ rx1100_cur."!cursor_debug"("FAIL ", "infix:sym<>>")
+ .return (rx1100_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>>" :subid("280_1267204702.05125") :method
-.annotate "line", 417
- $P1099 = self."!PREFIX__!subrule"("O", ">")
- new $P1100, "ResizablePMCArray"
- push $P1100, $P1099
- .return ($P1100)
+.sub "!PREFIX__infix:sym<>>" :subid("280_1271336396.90314") :method
+.annotate "line", 421
+ $P1102 = self."!PREFIX__!subrule"("O", ">")
+ new $P1103, "ResizablePMCArray"
+ push $P1103, $P1102
+ .return ($P1103)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<eq>" :subid("281_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1104_tgt
- .local int rx1104_pos
- .local int rx1104_off
- .local int rx1104_eos
- .local int rx1104_rep
- .local pmc rx1104_cur
- (rx1104_cur, rx1104_pos, rx1104_tgt) = self."!cursor_start"()
- rx1104_cur."!cursor_debug"("START ", "infix:sym<eq>")
- .lex unicode:"$\x{a2}", rx1104_cur
- .local pmc match
- .lex "$/", match
- length rx1104_eos, rx1104_tgt
- set rx1104_off, 0
- lt rx1104_pos, 2, rx1104_start
- sub rx1104_off, rx1104_pos, 1
- substr rx1104_tgt, rx1104_tgt, rx1104_off
- rx1104_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1108_done
- goto rxscan1108_scan
- rxscan1108_loop:
- ($P10) = rx1104_cur."from"()
- inc $P10
- set rx1104_pos, $P10
- ge rx1104_pos, rx1104_eos, rxscan1108_done
- rxscan1108_scan:
- set_addr $I10, rxscan1108_loop
- rx1104_cur."!mark_push"(0, rx1104_pos, $I10)
- rxscan1108_done:
-.annotate "line", 492
+.sub "infix:sym<eq>" :subid("281_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1107_tgt
+ .local int rx1107_pos
+ .local int rx1107_off
+ .local int rx1107_eos
+ .local int rx1107_rep
+ .local pmc rx1107_cur
+ (rx1107_cur, rx1107_pos, rx1107_tgt) = self."!cursor_start"()
+ rx1107_cur."!cursor_debug"("START ", "infix:sym<eq>")
+ .lex unicode:"$\x{a2}", rx1107_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1107_eos, rx1107_tgt
+ set rx1107_off, 0
+ lt rx1107_pos, 2, rx1107_start
+ sub rx1107_off, rx1107_pos, 1
+ substr rx1107_tgt, rx1107_tgt, rx1107_off
+ rx1107_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1111_done
+ goto rxscan1111_scan
+ rxscan1111_loop:
+ ($P10) = rx1107_cur."from"()
+ inc $P10
+ set rx1107_pos, $P10
+ ge rx1107_pos, rx1107_eos, rxscan1111_done
+ rxscan1111_scan:
+ set_addr $I10, rxscan1111_loop
+ rx1107_cur."!mark_push"(0, rx1107_pos, $I10)
+ rxscan1111_done:
+.annotate "line", 496
# rx subcapture "sym"
- set_addr $I10, rxcap_1109_fail
- rx1104_cur."!mark_push"(0, rx1104_pos, $I10)
+ set_addr $I10, rxcap_1112_fail
+ rx1107_cur."!mark_push"(0, rx1107_pos, $I10)
# rx literal "eq"
- add $I11, rx1104_pos, 2
- gt $I11, rx1104_eos, rx1104_fail
- sub $I11, rx1104_pos, rx1104_off
- substr $S10, rx1104_tgt, $I11, 2
- ne $S10, "eq", rx1104_fail
- add rx1104_pos, 2
- set_addr $I10, rxcap_1109_fail
- ($I12, $I11) = rx1104_cur."!mark_peek"($I10)
- rx1104_cur."!cursor_pos"($I11)
- ($P10) = rx1104_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1104_pos, "")
- rx1104_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1107_pos, 2
+ gt $I11, rx1107_eos, rx1107_fail
+ sub $I11, rx1107_pos, rx1107_off
+ substr $S10, rx1107_tgt, $I11, 2
+ ne $S10, "eq", rx1107_fail
+ add rx1107_pos, 2
+ set_addr $I10, rxcap_1112_fail
+ ($I12, $I11) = rx1107_cur."!mark_peek"($I10)
+ rx1107_cur."!cursor_pos"($I11)
+ ($P10) = rx1107_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1107_pos, "")
+ rx1107_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1109_done
- rxcap_1109_fail:
- goto rx1104_fail
- rxcap_1109_done:
+ goto rxcap_1112_done
+ rxcap_1112_fail:
+ goto rx1107_fail
+ rxcap_1112_done:
# rx subrule "O" subtype=capture negate=
- rx1104_cur."!cursor_pos"(rx1104_pos)
- $P10 = rx1104_cur."O"("%relational, :pirop<iseq ISs>")
- unless $P10, rx1104_fail
- rx1104_cur."!mark_push"(0, -1, 0, $P10)
+ rx1107_cur."!cursor_pos"(rx1107_pos)
+ $P10 = rx1107_cur."O"("%relational, :pirop<iseq ISs>")
+ unless $P10, rx1107_fail
+ rx1107_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1104_pos = $P10."pos"()
+ rx1107_pos = $P10."pos"()
# rx pass
- rx1104_cur."!cursor_pass"(rx1104_pos, "infix:sym<eq>")
- rx1104_cur."!cursor_debug"("PASS ", "infix:sym<eq>", " at pos=", rx1104_pos)
- .return (rx1104_cur)
- rx1104_fail:
-.annotate "line", 417
- (rx1104_rep, rx1104_pos, $I10, $P10) = rx1104_cur."!mark_fail"(0)
- lt rx1104_pos, -1, rx1104_done
- eq rx1104_pos, -1, rx1104_fail
+ rx1107_cur."!cursor_pass"(rx1107_pos, "infix:sym<eq>")
+ rx1107_cur."!cursor_debug"("PASS ", "infix:sym<eq>", " at pos=", rx1107_pos)
+ .return (rx1107_cur)
+ rx1107_fail:
+.annotate "line", 421
+ (rx1107_rep, rx1107_pos, $I10, $P10) = rx1107_cur."!mark_fail"(0)
+ lt rx1107_pos, -1, rx1107_done
+ eq rx1107_pos, -1, rx1107_fail
jump $I10
- rx1104_done:
- rx1104_cur."!cursor_fail"()
- rx1104_cur."!cursor_debug"("FAIL ", "infix:sym<eq>")
- .return (rx1104_cur)
+ rx1107_done:
+ rx1107_cur."!cursor_fail"()
+ rx1107_cur."!cursor_debug"("FAIL ", "infix:sym<eq>")
+ .return (rx1107_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<eq>" :subid("282_1267204702.05125") :method
-.annotate "line", 417
- $P1106 = self."!PREFIX__!subrule"("O", "eq")
- new $P1107, "ResizablePMCArray"
- push $P1107, $P1106
- .return ($P1107)
+.sub "!PREFIX__infix:sym<eq>" :subid("282_1271336396.90314") :method
+.annotate "line", 421
+ $P1109 = self."!PREFIX__!subrule"("O", "eq")
+ new $P1110, "ResizablePMCArray"
+ push $P1110, $P1109
+ .return ($P1110)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<ne>" :subid("283_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1111_tgt
- .local int rx1111_pos
- .local int rx1111_off
- .local int rx1111_eos
- .local int rx1111_rep
- .local pmc rx1111_cur
- (rx1111_cur, rx1111_pos, rx1111_tgt) = self."!cursor_start"()
- rx1111_cur."!cursor_debug"("START ", "infix:sym<ne>")
- .lex unicode:"$\x{a2}", rx1111_cur
- .local pmc match
- .lex "$/", match
- length rx1111_eos, rx1111_tgt
- set rx1111_off, 0
- lt rx1111_pos, 2, rx1111_start
- sub rx1111_off, rx1111_pos, 1
- substr rx1111_tgt, rx1111_tgt, rx1111_off
- rx1111_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1115_done
- goto rxscan1115_scan
- rxscan1115_loop:
- ($P10) = rx1111_cur."from"()
- inc $P10
- set rx1111_pos, $P10
- ge rx1111_pos, rx1111_eos, rxscan1115_done
- rxscan1115_scan:
- set_addr $I10, rxscan1115_loop
- rx1111_cur."!mark_push"(0, rx1111_pos, $I10)
- rxscan1115_done:
-.annotate "line", 493
+.sub "infix:sym<ne>" :subid("283_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1114_tgt
+ .local int rx1114_pos
+ .local int rx1114_off
+ .local int rx1114_eos
+ .local int rx1114_rep
+ .local pmc rx1114_cur
+ (rx1114_cur, rx1114_pos, rx1114_tgt) = self."!cursor_start"()
+ rx1114_cur."!cursor_debug"("START ", "infix:sym<ne>")
+ .lex unicode:"$\x{a2}", rx1114_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1114_eos, rx1114_tgt
+ set rx1114_off, 0
+ lt rx1114_pos, 2, rx1114_start
+ sub rx1114_off, rx1114_pos, 1
+ substr rx1114_tgt, rx1114_tgt, rx1114_off
+ rx1114_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1118_done
+ goto rxscan1118_scan
+ rxscan1118_loop:
+ ($P10) = rx1114_cur."from"()
+ inc $P10
+ set rx1114_pos, $P10
+ ge rx1114_pos, rx1114_eos, rxscan1118_done
+ rxscan1118_scan:
+ set_addr $I10, rxscan1118_loop
+ rx1114_cur."!mark_push"(0, rx1114_pos, $I10)
+ rxscan1118_done:
+.annotate "line", 497
# rx subcapture "sym"
- set_addr $I10, rxcap_1116_fail
- rx1111_cur."!mark_push"(0, rx1111_pos, $I10)
+ set_addr $I10, rxcap_1119_fail
+ rx1114_cur."!mark_push"(0, rx1114_pos, $I10)
# rx literal "ne"
- add $I11, rx1111_pos, 2
- gt $I11, rx1111_eos, rx1111_fail
- sub $I11, rx1111_pos, rx1111_off
- substr $S10, rx1111_tgt, $I11, 2
- ne $S10, "ne", rx1111_fail
- add rx1111_pos, 2
- set_addr $I10, rxcap_1116_fail
- ($I12, $I11) = rx1111_cur."!mark_peek"($I10)
- rx1111_cur."!cursor_pos"($I11)
- ($P10) = rx1111_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1111_pos, "")
- rx1111_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1114_pos, 2
+ gt $I11, rx1114_eos, rx1114_fail
+ sub $I11, rx1114_pos, rx1114_off
+ substr $S10, rx1114_tgt, $I11, 2
+ ne $S10, "ne", rx1114_fail
+ add rx1114_pos, 2
+ set_addr $I10, rxcap_1119_fail
+ ($I12, $I11) = rx1114_cur."!mark_peek"($I10)
+ rx1114_cur."!cursor_pos"($I11)
+ ($P10) = rx1114_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1114_pos, "")
+ rx1114_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1116_done
- rxcap_1116_fail:
- goto rx1111_fail
- rxcap_1116_done:
+ goto rxcap_1119_done
+ rxcap_1119_fail:
+ goto rx1114_fail
+ rxcap_1119_done:
# rx subrule "O" subtype=capture negate=
- rx1111_cur."!cursor_pos"(rx1111_pos)
- $P10 = rx1111_cur."O"("%relational, :pirop<isne ISs>")
- unless $P10, rx1111_fail
- rx1111_cur."!mark_push"(0, -1, 0, $P10)
+ rx1114_cur."!cursor_pos"(rx1114_pos)
+ $P10 = rx1114_cur."O"("%relational, :pirop<isne ISs>")
+ unless $P10, rx1114_fail
+ rx1114_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1111_pos = $P10."pos"()
+ rx1114_pos = $P10."pos"()
# rx pass
- rx1111_cur."!cursor_pass"(rx1111_pos, "infix:sym<ne>")
- rx1111_cur."!cursor_debug"("PASS ", "infix:sym<ne>", " at pos=", rx1111_pos)
- .return (rx1111_cur)
- rx1111_fail:
-.annotate "line", 417
- (rx1111_rep, rx1111_pos, $I10, $P10) = rx1111_cur."!mark_fail"(0)
- lt rx1111_pos, -1, rx1111_done
- eq rx1111_pos, -1, rx1111_fail
+ rx1114_cur."!cursor_pass"(rx1114_pos, "infix:sym<ne>")
+ rx1114_cur."!cursor_debug"("PASS ", "infix:sym<ne>", " at pos=", rx1114_pos)
+ .return (rx1114_cur)
+ rx1114_fail:
+.annotate "line", 421
+ (rx1114_rep, rx1114_pos, $I10, $P10) = rx1114_cur."!mark_fail"(0)
+ lt rx1114_pos, -1, rx1114_done
+ eq rx1114_pos, -1, rx1114_fail
jump $I10
- rx1111_done:
- rx1111_cur."!cursor_fail"()
- rx1111_cur."!cursor_debug"("FAIL ", "infix:sym<ne>")
- .return (rx1111_cur)
+ rx1114_done:
+ rx1114_cur."!cursor_fail"()
+ rx1114_cur."!cursor_debug"("FAIL ", "infix:sym<ne>")
+ .return (rx1114_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ne>" :subid("284_1267204702.05125") :method
-.annotate "line", 417
- $P1113 = self."!PREFIX__!subrule"("O", "ne")
- new $P1114, "ResizablePMCArray"
- push $P1114, $P1113
- .return ($P1114)
+.sub "!PREFIX__infix:sym<ne>" :subid("284_1271336396.90314") :method
+.annotate "line", 421
+ $P1116 = self."!PREFIX__!subrule"("O", "ne")
+ new $P1117, "ResizablePMCArray"
+ push $P1117, $P1116
+ .return ($P1117)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<le>" :subid("285_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1118_tgt
- .local int rx1118_pos
- .local int rx1118_off
- .local int rx1118_eos
- .local int rx1118_rep
- .local pmc rx1118_cur
- (rx1118_cur, rx1118_pos, rx1118_tgt) = self."!cursor_start"()
- rx1118_cur."!cursor_debug"("START ", "infix:sym<le>")
- .lex unicode:"$\x{a2}", rx1118_cur
- .local pmc match
- .lex "$/", match
- length rx1118_eos, rx1118_tgt
- set rx1118_off, 0
- lt rx1118_pos, 2, rx1118_start
- sub rx1118_off, rx1118_pos, 1
- substr rx1118_tgt, rx1118_tgt, rx1118_off
- rx1118_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1122_done
- goto rxscan1122_scan
- rxscan1122_loop:
- ($P10) = rx1118_cur."from"()
- inc $P10
- set rx1118_pos, $P10
- ge rx1118_pos, rx1118_eos, rxscan1122_done
- rxscan1122_scan:
- set_addr $I10, rxscan1122_loop
- rx1118_cur."!mark_push"(0, rx1118_pos, $I10)
- rxscan1122_done:
-.annotate "line", 494
+.sub "infix:sym<le>" :subid("285_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1121_tgt
+ .local int rx1121_pos
+ .local int rx1121_off
+ .local int rx1121_eos
+ .local int rx1121_rep
+ .local pmc rx1121_cur
+ (rx1121_cur, rx1121_pos, rx1121_tgt) = self."!cursor_start"()
+ rx1121_cur."!cursor_debug"("START ", "infix:sym<le>")
+ .lex unicode:"$\x{a2}", rx1121_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1121_eos, rx1121_tgt
+ set rx1121_off, 0
+ lt rx1121_pos, 2, rx1121_start
+ sub rx1121_off, rx1121_pos, 1
+ substr rx1121_tgt, rx1121_tgt, rx1121_off
+ rx1121_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1125_done
+ goto rxscan1125_scan
+ rxscan1125_loop:
+ ($P10) = rx1121_cur."from"()
+ inc $P10
+ set rx1121_pos, $P10
+ ge rx1121_pos, rx1121_eos, rxscan1125_done
+ rxscan1125_scan:
+ set_addr $I10, rxscan1125_loop
+ rx1121_cur."!mark_push"(0, rx1121_pos, $I10)
+ rxscan1125_done:
+.annotate "line", 498
# rx subcapture "sym"
- set_addr $I10, rxcap_1123_fail
- rx1118_cur."!mark_push"(0, rx1118_pos, $I10)
+ set_addr $I10, rxcap_1126_fail
+ rx1121_cur."!mark_push"(0, rx1121_pos, $I10)
# rx literal "le"
- add $I11, rx1118_pos, 2
- gt $I11, rx1118_eos, rx1118_fail
- sub $I11, rx1118_pos, rx1118_off
- substr $S10, rx1118_tgt, $I11, 2
- ne $S10, "le", rx1118_fail
- add rx1118_pos, 2
- set_addr $I10, rxcap_1123_fail
- ($I12, $I11) = rx1118_cur."!mark_peek"($I10)
- rx1118_cur."!cursor_pos"($I11)
- ($P10) = rx1118_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1118_pos, "")
- rx1118_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1121_pos, 2
+ gt $I11, rx1121_eos, rx1121_fail
+ sub $I11, rx1121_pos, rx1121_off
+ substr $S10, rx1121_tgt, $I11, 2
+ ne $S10, "le", rx1121_fail
+ add rx1121_pos, 2
+ set_addr $I10, rxcap_1126_fail
+ ($I12, $I11) = rx1121_cur."!mark_peek"($I10)
+ rx1121_cur."!cursor_pos"($I11)
+ ($P10) = rx1121_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1121_pos, "")
+ rx1121_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1123_done
- rxcap_1123_fail:
- goto rx1118_fail
- rxcap_1123_done:
+ goto rxcap_1126_done
+ rxcap_1126_fail:
+ goto rx1121_fail
+ rxcap_1126_done:
# rx subrule "O" subtype=capture negate=
- rx1118_cur."!cursor_pos"(rx1118_pos)
- $P10 = rx1118_cur."O"("%relational, :pirop<isle ISs>")
- unless $P10, rx1118_fail
- rx1118_cur."!mark_push"(0, -1, 0, $P10)
+ rx1121_cur."!cursor_pos"(rx1121_pos)
+ $P10 = rx1121_cur."O"("%relational, :pirop<isle ISs>")
+ unless $P10, rx1121_fail
+ rx1121_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1118_pos = $P10."pos"()
+ rx1121_pos = $P10."pos"()
# rx pass
- rx1118_cur."!cursor_pass"(rx1118_pos, "infix:sym<le>")
- rx1118_cur."!cursor_debug"("PASS ", "infix:sym<le>", " at pos=", rx1118_pos)
- .return (rx1118_cur)
- rx1118_fail:
-.annotate "line", 417
- (rx1118_rep, rx1118_pos, $I10, $P10) = rx1118_cur."!mark_fail"(0)
- lt rx1118_pos, -1, rx1118_done
- eq rx1118_pos, -1, rx1118_fail
+ rx1121_cur."!cursor_pass"(rx1121_pos, "infix:sym<le>")
+ rx1121_cur."!cursor_debug"("PASS ", "infix:sym<le>", " at pos=", rx1121_pos)
+ .return (rx1121_cur)
+ rx1121_fail:
+.annotate "line", 421
+ (rx1121_rep, rx1121_pos, $I10, $P10) = rx1121_cur."!mark_fail"(0)
+ lt rx1121_pos, -1, rx1121_done
+ eq rx1121_pos, -1, rx1121_fail
jump $I10
- rx1118_done:
- rx1118_cur."!cursor_fail"()
- rx1118_cur."!cursor_debug"("FAIL ", "infix:sym<le>")
- .return (rx1118_cur)
+ rx1121_done:
+ rx1121_cur."!cursor_fail"()
+ rx1121_cur."!cursor_debug"("FAIL ", "infix:sym<le>")
+ .return (rx1121_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<le>" :subid("286_1267204702.05125") :method
-.annotate "line", 417
- $P1120 = self."!PREFIX__!subrule"("O", "le")
- new $P1121, "ResizablePMCArray"
- push $P1121, $P1120
- .return ($P1121)
+.sub "!PREFIX__infix:sym<le>" :subid("286_1271336396.90314") :method
+.annotate "line", 421
+ $P1123 = self."!PREFIX__!subrule"("O", "le")
+ new $P1124, "ResizablePMCArray"
+ push $P1124, $P1123
+ .return ($P1124)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<ge>" :subid("287_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1125_tgt
- .local int rx1125_pos
- .local int rx1125_off
- .local int rx1125_eos
- .local int rx1125_rep
- .local pmc rx1125_cur
- (rx1125_cur, rx1125_pos, rx1125_tgt) = self."!cursor_start"()
- rx1125_cur."!cursor_debug"("START ", "infix:sym<ge>")
- .lex unicode:"$\x{a2}", rx1125_cur
- .local pmc match
- .lex "$/", match
- length rx1125_eos, rx1125_tgt
- set rx1125_off, 0
- lt rx1125_pos, 2, rx1125_start
- sub rx1125_off, rx1125_pos, 1
- substr rx1125_tgt, rx1125_tgt, rx1125_off
- rx1125_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1129_done
- goto rxscan1129_scan
- rxscan1129_loop:
- ($P10) = rx1125_cur."from"()
- inc $P10
- set rx1125_pos, $P10
- ge rx1125_pos, rx1125_eos, rxscan1129_done
- rxscan1129_scan:
- set_addr $I10, rxscan1129_loop
- rx1125_cur."!mark_push"(0, rx1125_pos, $I10)
- rxscan1129_done:
-.annotate "line", 495
+.sub "infix:sym<ge>" :subid("287_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1128_tgt
+ .local int rx1128_pos
+ .local int rx1128_off
+ .local int rx1128_eos
+ .local int rx1128_rep
+ .local pmc rx1128_cur
+ (rx1128_cur, rx1128_pos, rx1128_tgt) = self."!cursor_start"()
+ rx1128_cur."!cursor_debug"("START ", "infix:sym<ge>")
+ .lex unicode:"$\x{a2}", rx1128_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1128_eos, rx1128_tgt
+ set rx1128_off, 0
+ lt rx1128_pos, 2, rx1128_start
+ sub rx1128_off, rx1128_pos, 1
+ substr rx1128_tgt, rx1128_tgt, rx1128_off
+ rx1128_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1132_done
+ goto rxscan1132_scan
+ rxscan1132_loop:
+ ($P10) = rx1128_cur."from"()
+ inc $P10
+ set rx1128_pos, $P10
+ ge rx1128_pos, rx1128_eos, rxscan1132_done
+ rxscan1132_scan:
+ set_addr $I10, rxscan1132_loop
+ rx1128_cur."!mark_push"(0, rx1128_pos, $I10)
+ rxscan1132_done:
+.annotate "line", 499
# rx subcapture "sym"
- set_addr $I10, rxcap_1130_fail
- rx1125_cur."!mark_push"(0, rx1125_pos, $I10)
+ set_addr $I10, rxcap_1133_fail
+ rx1128_cur."!mark_push"(0, rx1128_pos, $I10)
# rx literal "ge"
- add $I11, rx1125_pos, 2
- gt $I11, rx1125_eos, rx1125_fail
- sub $I11, rx1125_pos, rx1125_off
- substr $S10, rx1125_tgt, $I11, 2
- ne $S10, "ge", rx1125_fail
- add rx1125_pos, 2
- set_addr $I10, rxcap_1130_fail
- ($I12, $I11) = rx1125_cur."!mark_peek"($I10)
- rx1125_cur."!cursor_pos"($I11)
- ($P10) = rx1125_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1125_pos, "")
- rx1125_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1128_pos, 2
+ gt $I11, rx1128_eos, rx1128_fail
+ sub $I11, rx1128_pos, rx1128_off
+ substr $S10, rx1128_tgt, $I11, 2
+ ne $S10, "ge", rx1128_fail
+ add rx1128_pos, 2
+ set_addr $I10, rxcap_1133_fail
+ ($I12, $I11) = rx1128_cur."!mark_peek"($I10)
+ rx1128_cur."!cursor_pos"($I11)
+ ($P10) = rx1128_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1128_pos, "")
+ rx1128_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1130_done
- rxcap_1130_fail:
- goto rx1125_fail
- rxcap_1130_done:
+ goto rxcap_1133_done
+ rxcap_1133_fail:
+ goto rx1128_fail
+ rxcap_1133_done:
# rx subrule "O" subtype=capture negate=
- rx1125_cur."!cursor_pos"(rx1125_pos)
- $P10 = rx1125_cur."O"("%relational, :pirop<isge ISs>")
- unless $P10, rx1125_fail
- rx1125_cur."!mark_push"(0, -1, 0, $P10)
+ rx1128_cur."!cursor_pos"(rx1128_pos)
+ $P10 = rx1128_cur."O"("%relational, :pirop<isge ISs>")
+ unless $P10, rx1128_fail
+ rx1128_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1125_pos = $P10."pos"()
+ rx1128_pos = $P10."pos"()
# rx pass
- rx1125_cur."!cursor_pass"(rx1125_pos, "infix:sym<ge>")
- rx1125_cur."!cursor_debug"("PASS ", "infix:sym<ge>", " at pos=", rx1125_pos)
- .return (rx1125_cur)
- rx1125_fail:
-.annotate "line", 417
- (rx1125_rep, rx1125_pos, $I10, $P10) = rx1125_cur."!mark_fail"(0)
- lt rx1125_pos, -1, rx1125_done
- eq rx1125_pos, -1, rx1125_fail
+ rx1128_cur."!cursor_pass"(rx1128_pos, "infix:sym<ge>")
+ rx1128_cur."!cursor_debug"("PASS ", "infix:sym<ge>", " at pos=", rx1128_pos)
+ .return (rx1128_cur)
+ rx1128_fail:
+.annotate "line", 421
+ (rx1128_rep, rx1128_pos, $I10, $P10) = rx1128_cur."!mark_fail"(0)
+ lt rx1128_pos, -1, rx1128_done
+ eq rx1128_pos, -1, rx1128_fail
jump $I10
- rx1125_done:
- rx1125_cur."!cursor_fail"()
- rx1125_cur."!cursor_debug"("FAIL ", "infix:sym<ge>")
- .return (rx1125_cur)
+ rx1128_done:
+ rx1128_cur."!cursor_fail"()
+ rx1128_cur."!cursor_debug"("FAIL ", "infix:sym<ge>")
+ .return (rx1128_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ge>" :subid("288_1267204702.05125") :method
-.annotate "line", 417
- $P1127 = self."!PREFIX__!subrule"("O", "ge")
- new $P1128, "ResizablePMCArray"
- push $P1128, $P1127
- .return ($P1128)
+.sub "!PREFIX__infix:sym<ge>" :subid("288_1271336396.90314") :method
+.annotate "line", 421
+ $P1130 = self."!PREFIX__!subrule"("O", "ge")
+ new $P1131, "ResizablePMCArray"
+ push $P1131, $P1130
+ .return ($P1131)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<lt>" :subid("289_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1132_tgt
- .local int rx1132_pos
- .local int rx1132_off
- .local int rx1132_eos
- .local int rx1132_rep
- .local pmc rx1132_cur
- (rx1132_cur, rx1132_pos, rx1132_tgt) = self."!cursor_start"()
- rx1132_cur."!cursor_debug"("START ", "infix:sym<lt>")
- .lex unicode:"$\x{a2}", rx1132_cur
- .local pmc match
- .lex "$/", match
- length rx1132_eos, rx1132_tgt
- set rx1132_off, 0
- lt rx1132_pos, 2, rx1132_start
- sub rx1132_off, rx1132_pos, 1
- substr rx1132_tgt, rx1132_tgt, rx1132_off
- rx1132_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1136_done
- goto rxscan1136_scan
- rxscan1136_loop:
- ($P10) = rx1132_cur."from"()
- inc $P10
- set rx1132_pos, $P10
- ge rx1132_pos, rx1132_eos, rxscan1136_done
- rxscan1136_scan:
- set_addr $I10, rxscan1136_loop
- rx1132_cur."!mark_push"(0, rx1132_pos, $I10)
- rxscan1136_done:
-.annotate "line", 496
+.sub "infix:sym<lt>" :subid("289_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1135_tgt
+ .local int rx1135_pos
+ .local int rx1135_off
+ .local int rx1135_eos
+ .local int rx1135_rep
+ .local pmc rx1135_cur
+ (rx1135_cur, rx1135_pos, rx1135_tgt) = self."!cursor_start"()
+ rx1135_cur."!cursor_debug"("START ", "infix:sym<lt>")
+ .lex unicode:"$\x{a2}", rx1135_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1135_eos, rx1135_tgt
+ set rx1135_off, 0
+ lt rx1135_pos, 2, rx1135_start
+ sub rx1135_off, rx1135_pos, 1
+ substr rx1135_tgt, rx1135_tgt, rx1135_off
+ rx1135_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1139_done
+ goto rxscan1139_scan
+ rxscan1139_loop:
+ ($P10) = rx1135_cur."from"()
+ inc $P10
+ set rx1135_pos, $P10
+ ge rx1135_pos, rx1135_eos, rxscan1139_done
+ rxscan1139_scan:
+ set_addr $I10, rxscan1139_loop
+ rx1135_cur."!mark_push"(0, rx1135_pos, $I10)
+ rxscan1139_done:
+.annotate "line", 500
# rx subcapture "sym"
- set_addr $I10, rxcap_1137_fail
- rx1132_cur."!mark_push"(0, rx1132_pos, $I10)
+ set_addr $I10, rxcap_1140_fail
+ rx1135_cur."!mark_push"(0, rx1135_pos, $I10)
# rx literal "lt"
- add $I11, rx1132_pos, 2
- gt $I11, rx1132_eos, rx1132_fail
- sub $I11, rx1132_pos, rx1132_off
- substr $S10, rx1132_tgt, $I11, 2
- ne $S10, "lt", rx1132_fail
- add rx1132_pos, 2
- set_addr $I10, rxcap_1137_fail
- ($I12, $I11) = rx1132_cur."!mark_peek"($I10)
- rx1132_cur."!cursor_pos"($I11)
- ($P10) = rx1132_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1132_pos, "")
- rx1132_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1135_pos, 2
+ gt $I11, rx1135_eos, rx1135_fail
+ sub $I11, rx1135_pos, rx1135_off
+ substr $S10, rx1135_tgt, $I11, 2
+ ne $S10, "lt", rx1135_fail
+ add rx1135_pos, 2
+ set_addr $I10, rxcap_1140_fail
+ ($I12, $I11) = rx1135_cur."!mark_peek"($I10)
+ rx1135_cur."!cursor_pos"($I11)
+ ($P10) = rx1135_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1135_pos, "")
+ rx1135_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1137_done
- rxcap_1137_fail:
- goto rx1132_fail
- rxcap_1137_done:
+ goto rxcap_1140_done
+ rxcap_1140_fail:
+ goto rx1135_fail
+ rxcap_1140_done:
# rx subrule "O" subtype=capture negate=
- rx1132_cur."!cursor_pos"(rx1132_pos)
- $P10 = rx1132_cur."O"("%relational, :pirop<islt ISs>")
- unless $P10, rx1132_fail
- rx1132_cur."!mark_push"(0, -1, 0, $P10)
+ rx1135_cur."!cursor_pos"(rx1135_pos)
+ $P10 = rx1135_cur."O"("%relational, :pirop<islt ISs>")
+ unless $P10, rx1135_fail
+ rx1135_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1132_pos = $P10."pos"()
+ rx1135_pos = $P10."pos"()
# rx pass
- rx1132_cur."!cursor_pass"(rx1132_pos, "infix:sym<lt>")
- rx1132_cur."!cursor_debug"("PASS ", "infix:sym<lt>", " at pos=", rx1132_pos)
- .return (rx1132_cur)
- rx1132_fail:
-.annotate "line", 417
- (rx1132_rep, rx1132_pos, $I10, $P10) = rx1132_cur."!mark_fail"(0)
- lt rx1132_pos, -1, rx1132_done
- eq rx1132_pos, -1, rx1132_fail
+ rx1135_cur."!cursor_pass"(rx1135_pos, "infix:sym<lt>")
+ rx1135_cur."!cursor_debug"("PASS ", "infix:sym<lt>", " at pos=", rx1135_pos)
+ .return (rx1135_cur)
+ rx1135_fail:
+.annotate "line", 421
+ (rx1135_rep, rx1135_pos, $I10, $P10) = rx1135_cur."!mark_fail"(0)
+ lt rx1135_pos, -1, rx1135_done
+ eq rx1135_pos, -1, rx1135_fail
jump $I10
- rx1132_done:
- rx1132_cur."!cursor_fail"()
- rx1132_cur."!cursor_debug"("FAIL ", "infix:sym<lt>")
- .return (rx1132_cur)
+ rx1135_done:
+ rx1135_cur."!cursor_fail"()
+ rx1135_cur."!cursor_debug"("FAIL ", "infix:sym<lt>")
+ .return (rx1135_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<lt>" :subid("290_1267204702.05125") :method
-.annotate "line", 417
- $P1134 = self."!PREFIX__!subrule"("O", "lt")
- new $P1135, "ResizablePMCArray"
- push $P1135, $P1134
- .return ($P1135)
+.sub "!PREFIX__infix:sym<lt>" :subid("290_1271336396.90314") :method
+.annotate "line", 421
+ $P1137 = self."!PREFIX__!subrule"("O", "lt")
+ new $P1138, "ResizablePMCArray"
+ push $P1138, $P1137
+ .return ($P1138)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<gt>" :subid("291_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1139_tgt
- .local int rx1139_pos
- .local int rx1139_off
- .local int rx1139_eos
- .local int rx1139_rep
- .local pmc rx1139_cur
- (rx1139_cur, rx1139_pos, rx1139_tgt) = self."!cursor_start"()
- rx1139_cur."!cursor_debug"("START ", "infix:sym<gt>")
- .lex unicode:"$\x{a2}", rx1139_cur
- .local pmc match
- .lex "$/", match
- length rx1139_eos, rx1139_tgt
- set rx1139_off, 0
- lt rx1139_pos, 2, rx1139_start
- sub rx1139_off, rx1139_pos, 1
- substr rx1139_tgt, rx1139_tgt, rx1139_off
- rx1139_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1143_done
- goto rxscan1143_scan
- rxscan1143_loop:
- ($P10) = rx1139_cur."from"()
- inc $P10
- set rx1139_pos, $P10
- ge rx1139_pos, rx1139_eos, rxscan1143_done
- rxscan1143_scan:
- set_addr $I10, rxscan1143_loop
- rx1139_cur."!mark_push"(0, rx1139_pos, $I10)
- rxscan1143_done:
-.annotate "line", 497
+.sub "infix:sym<gt>" :subid("291_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1142_tgt
+ .local int rx1142_pos
+ .local int rx1142_off
+ .local int rx1142_eos
+ .local int rx1142_rep
+ .local pmc rx1142_cur
+ (rx1142_cur, rx1142_pos, rx1142_tgt) = self."!cursor_start"()
+ rx1142_cur."!cursor_debug"("START ", "infix:sym<gt>")
+ .lex unicode:"$\x{a2}", rx1142_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1142_eos, rx1142_tgt
+ set rx1142_off, 0
+ lt rx1142_pos, 2, rx1142_start
+ sub rx1142_off, rx1142_pos, 1
+ substr rx1142_tgt, rx1142_tgt, rx1142_off
+ rx1142_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1146_done
+ goto rxscan1146_scan
+ rxscan1146_loop:
+ ($P10) = rx1142_cur."from"()
+ inc $P10
+ set rx1142_pos, $P10
+ ge rx1142_pos, rx1142_eos, rxscan1146_done
+ rxscan1146_scan:
+ set_addr $I10, rxscan1146_loop
+ rx1142_cur."!mark_push"(0, rx1142_pos, $I10)
+ rxscan1146_done:
+.annotate "line", 501
# rx subcapture "sym"
- set_addr $I10, rxcap_1144_fail
- rx1139_cur."!mark_push"(0, rx1139_pos, $I10)
+ set_addr $I10, rxcap_1147_fail
+ rx1142_cur."!mark_push"(0, rx1142_pos, $I10)
# rx literal "gt"
- add $I11, rx1139_pos, 2
- gt $I11, rx1139_eos, rx1139_fail
- sub $I11, rx1139_pos, rx1139_off
- substr $S10, rx1139_tgt, $I11, 2
- ne $S10, "gt", rx1139_fail
- add rx1139_pos, 2
- set_addr $I10, rxcap_1144_fail
- ($I12, $I11) = rx1139_cur."!mark_peek"($I10)
- rx1139_cur."!cursor_pos"($I11)
- ($P10) = rx1139_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1139_pos, "")
- rx1139_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1142_pos, 2
+ gt $I11, rx1142_eos, rx1142_fail
+ sub $I11, rx1142_pos, rx1142_off
+ substr $S10, rx1142_tgt, $I11, 2
+ ne $S10, "gt", rx1142_fail
+ add rx1142_pos, 2
+ set_addr $I10, rxcap_1147_fail
+ ($I12, $I11) = rx1142_cur."!mark_peek"($I10)
+ rx1142_cur."!cursor_pos"($I11)
+ ($P10) = rx1142_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1142_pos, "")
+ rx1142_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1144_done
- rxcap_1144_fail:
- goto rx1139_fail
- rxcap_1144_done:
+ goto rxcap_1147_done
+ rxcap_1147_fail:
+ goto rx1142_fail
+ rxcap_1147_done:
# rx subrule "O" subtype=capture negate=
- rx1139_cur."!cursor_pos"(rx1139_pos)
- $P10 = rx1139_cur."O"("%relational, :pirop<isgt ISs>")
- unless $P10, rx1139_fail
- rx1139_cur."!mark_push"(0, -1, 0, $P10)
+ rx1142_cur."!cursor_pos"(rx1142_pos)
+ $P10 = rx1142_cur."O"("%relational, :pirop<isgt ISs>")
+ unless $P10, rx1142_fail
+ rx1142_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1139_pos = $P10."pos"()
+ rx1142_pos = $P10."pos"()
# rx pass
- rx1139_cur."!cursor_pass"(rx1139_pos, "infix:sym<gt>")
- rx1139_cur."!cursor_debug"("PASS ", "infix:sym<gt>", " at pos=", rx1139_pos)
- .return (rx1139_cur)
- rx1139_fail:
-.annotate "line", 417
- (rx1139_rep, rx1139_pos, $I10, $P10) = rx1139_cur."!mark_fail"(0)
- lt rx1139_pos, -1, rx1139_done
- eq rx1139_pos, -1, rx1139_fail
+ rx1142_cur."!cursor_pass"(rx1142_pos, "infix:sym<gt>")
+ rx1142_cur."!cursor_debug"("PASS ", "infix:sym<gt>", " at pos=", rx1142_pos)
+ .return (rx1142_cur)
+ rx1142_fail:
+.annotate "line", 421
+ (rx1142_rep, rx1142_pos, $I10, $P10) = rx1142_cur."!mark_fail"(0)
+ lt rx1142_pos, -1, rx1142_done
+ eq rx1142_pos, -1, rx1142_fail
jump $I10
- rx1139_done:
- rx1139_cur."!cursor_fail"()
- rx1139_cur."!cursor_debug"("FAIL ", "infix:sym<gt>")
- .return (rx1139_cur)
+ rx1142_done:
+ rx1142_cur."!cursor_fail"()
+ rx1142_cur."!cursor_debug"("FAIL ", "infix:sym<gt>")
+ .return (rx1142_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<gt>" :subid("292_1267204702.05125") :method
-.annotate "line", 417
- $P1141 = self."!PREFIX__!subrule"("O", "gt")
- new $P1142, "ResizablePMCArray"
- push $P1142, $P1141
- .return ($P1142)
+.sub "!PREFIX__infix:sym<gt>" :subid("292_1271336396.90314") :method
+.annotate "line", 421
+ $P1144 = self."!PREFIX__!subrule"("O", "gt")
+ new $P1145, "ResizablePMCArray"
+ push $P1145, $P1144
+ .return ($P1145)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<=:=>" :subid("293_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1146_tgt
- .local int rx1146_pos
- .local int rx1146_off
- .local int rx1146_eos
- .local int rx1146_rep
- .local pmc rx1146_cur
- (rx1146_cur, rx1146_pos, rx1146_tgt) = self."!cursor_start"()
- rx1146_cur."!cursor_debug"("START ", "infix:sym<=:=>")
- .lex unicode:"$\x{a2}", rx1146_cur
- .local pmc match
- .lex "$/", match
- length rx1146_eos, rx1146_tgt
- set rx1146_off, 0
- lt rx1146_pos, 2, rx1146_start
- sub rx1146_off, rx1146_pos, 1
- substr rx1146_tgt, rx1146_tgt, rx1146_off
- rx1146_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1150_done
- goto rxscan1150_scan
- rxscan1150_loop:
- ($P10) = rx1146_cur."from"()
- inc $P10
- set rx1146_pos, $P10
- ge rx1146_pos, rx1146_eos, rxscan1150_done
- rxscan1150_scan:
- set_addr $I10, rxscan1150_loop
- rx1146_cur."!mark_push"(0, rx1146_pos, $I10)
- rxscan1150_done:
-.annotate "line", 498
+.sub "infix:sym<=:=>" :subid("293_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1149_tgt
+ .local int rx1149_pos
+ .local int rx1149_off
+ .local int rx1149_eos
+ .local int rx1149_rep
+ .local pmc rx1149_cur
+ (rx1149_cur, rx1149_pos, rx1149_tgt) = self."!cursor_start"()
+ rx1149_cur."!cursor_debug"("START ", "infix:sym<=:=>")
+ .lex unicode:"$\x{a2}", rx1149_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1149_eos, rx1149_tgt
+ set rx1149_off, 0
+ lt rx1149_pos, 2, rx1149_start
+ sub rx1149_off, rx1149_pos, 1
+ substr rx1149_tgt, rx1149_tgt, rx1149_off
+ rx1149_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1153_done
+ goto rxscan1153_scan
+ rxscan1153_loop:
+ ($P10) = rx1149_cur."from"()
+ inc $P10
+ set rx1149_pos, $P10
+ ge rx1149_pos, rx1149_eos, rxscan1153_done
+ rxscan1153_scan:
+ set_addr $I10, rxscan1153_loop
+ rx1149_cur."!mark_push"(0, rx1149_pos, $I10)
+ rxscan1153_done:
+.annotate "line", 502
# rx subcapture "sym"
- set_addr $I10, rxcap_1151_fail
- rx1146_cur."!mark_push"(0, rx1146_pos, $I10)
+ set_addr $I10, rxcap_1154_fail
+ rx1149_cur."!mark_push"(0, rx1149_pos, $I10)
# rx literal "=:="
- add $I11, rx1146_pos, 3
- gt $I11, rx1146_eos, rx1146_fail
- sub $I11, rx1146_pos, rx1146_off
- substr $S10, rx1146_tgt, $I11, 3
- ne $S10, "=:=", rx1146_fail
- add rx1146_pos, 3
- set_addr $I10, rxcap_1151_fail
- ($I12, $I11) = rx1146_cur."!mark_peek"($I10)
- rx1146_cur."!cursor_pos"($I11)
- ($P10) = rx1146_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1146_pos, "")
- rx1146_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1149_pos, 3
+ gt $I11, rx1149_eos, rx1149_fail
+ sub $I11, rx1149_pos, rx1149_off
+ substr $S10, rx1149_tgt, $I11, 3
+ ne $S10, "=:=", rx1149_fail
+ add rx1149_pos, 3
+ set_addr $I10, rxcap_1154_fail
+ ($I12, $I11) = rx1149_cur."!mark_peek"($I10)
+ rx1149_cur."!cursor_pos"($I11)
+ ($P10) = rx1149_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1149_pos, "")
+ rx1149_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1151_done
- rxcap_1151_fail:
- goto rx1146_fail
- rxcap_1151_done:
+ goto rxcap_1154_done
+ rxcap_1154_fail:
+ goto rx1149_fail
+ rxcap_1154_done:
# rx subrule "O" subtype=capture negate=
- rx1146_cur."!cursor_pos"(rx1146_pos)
- $P10 = rx1146_cur."O"("%relational, :pirop<issame>")
- unless $P10, rx1146_fail
- rx1146_cur."!mark_push"(0, -1, 0, $P10)
+ rx1149_cur."!cursor_pos"(rx1149_pos)
+ $P10 = rx1149_cur."O"("%relational, :pirop<issame>")
+ unless $P10, rx1149_fail
+ rx1149_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1146_pos = $P10."pos"()
+ rx1149_pos = $P10."pos"()
# rx pass
- rx1146_cur."!cursor_pass"(rx1146_pos, "infix:sym<=:=>")
- rx1146_cur."!cursor_debug"("PASS ", "infix:sym<=:=>", " at pos=", rx1146_pos)
- .return (rx1146_cur)
- rx1146_fail:
-.annotate "line", 417
- (rx1146_rep, rx1146_pos, $I10, $P10) = rx1146_cur."!mark_fail"(0)
- lt rx1146_pos, -1, rx1146_done
- eq rx1146_pos, -1, rx1146_fail
+ rx1149_cur."!cursor_pass"(rx1149_pos, "infix:sym<=:=>")
+ rx1149_cur."!cursor_debug"("PASS ", "infix:sym<=:=>", " at pos=", rx1149_pos)
+ .return (rx1149_cur)
+ rx1149_fail:
+.annotate "line", 421
+ (rx1149_rep, rx1149_pos, $I10, $P10) = rx1149_cur."!mark_fail"(0)
+ lt rx1149_pos, -1, rx1149_done
+ eq rx1149_pos, -1, rx1149_fail
jump $I10
- rx1146_done:
- rx1146_cur."!cursor_fail"()
- rx1146_cur."!cursor_debug"("FAIL ", "infix:sym<=:=>")
- .return (rx1146_cur)
+ rx1149_done:
+ rx1149_cur."!cursor_fail"()
+ rx1149_cur."!cursor_debug"("FAIL ", "infix:sym<=:=>")
+ .return (rx1149_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=:=>" :subid("294_1267204702.05125") :method
-.annotate "line", 417
- $P1148 = self."!PREFIX__!subrule"("O", "=:=")
- new $P1149, "ResizablePMCArray"
- push $P1149, $P1148
- .return ($P1149)
+.sub "!PREFIX__infix:sym<=:=>" :subid("294_1271336396.90314") :method
+.annotate "line", 421
+ $P1151 = self."!PREFIX__!subrule"("O", "=:=")
+ new $P1152, "ResizablePMCArray"
+ push $P1152, $P1151
+ .return ($P1152)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<~~>" :subid("295_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1153_tgt
- .local int rx1153_pos
- .local int rx1153_off
- .local int rx1153_eos
- .local int rx1153_rep
- .local pmc rx1153_cur
- (rx1153_cur, rx1153_pos, rx1153_tgt) = self."!cursor_start"()
- rx1153_cur."!cursor_debug"("START ", "infix:sym<~~>")
- .lex unicode:"$\x{a2}", rx1153_cur
- .local pmc match
- .lex "$/", match
- length rx1153_eos, rx1153_tgt
- set rx1153_off, 0
- lt rx1153_pos, 2, rx1153_start
- sub rx1153_off, rx1153_pos, 1
- substr rx1153_tgt, rx1153_tgt, rx1153_off
- rx1153_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1157_done
- goto rxscan1157_scan
- rxscan1157_loop:
- ($P10) = rx1153_cur."from"()
- inc $P10
- set rx1153_pos, $P10
- ge rx1153_pos, rx1153_eos, rxscan1157_done
- rxscan1157_scan:
- set_addr $I10, rxscan1157_loop
- rx1153_cur."!mark_push"(0, rx1153_pos, $I10)
- rxscan1157_done:
-.annotate "line", 499
+.sub "infix:sym<~~>" :subid("295_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1156_tgt
+ .local int rx1156_pos
+ .local int rx1156_off
+ .local int rx1156_eos
+ .local int rx1156_rep
+ .local pmc rx1156_cur
+ (rx1156_cur, rx1156_pos, rx1156_tgt) = self."!cursor_start"()
+ rx1156_cur."!cursor_debug"("START ", "infix:sym<~~>")
+ .lex unicode:"$\x{a2}", rx1156_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1156_eos, rx1156_tgt
+ set rx1156_off, 0
+ lt rx1156_pos, 2, rx1156_start
+ sub rx1156_off, rx1156_pos, 1
+ substr rx1156_tgt, rx1156_tgt, rx1156_off
+ rx1156_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1160_done
+ goto rxscan1160_scan
+ rxscan1160_loop:
+ ($P10) = rx1156_cur."from"()
+ inc $P10
+ set rx1156_pos, $P10
+ ge rx1156_pos, rx1156_eos, rxscan1160_done
+ rxscan1160_scan:
+ set_addr $I10, rxscan1160_loop
+ rx1156_cur."!mark_push"(0, rx1156_pos, $I10)
+ rxscan1160_done:
+.annotate "line", 503
# rx subcapture "sym"
- set_addr $I10, rxcap_1158_fail
- rx1153_cur."!mark_push"(0, rx1153_pos, $I10)
+ set_addr $I10, rxcap_1161_fail
+ rx1156_cur."!mark_push"(0, rx1156_pos, $I10)
# rx literal "~~"
- add $I11, rx1153_pos, 2
- gt $I11, rx1153_eos, rx1153_fail
- sub $I11, rx1153_pos, rx1153_off
- substr $S10, rx1153_tgt, $I11, 2
- ne $S10, "~~", rx1153_fail
- add rx1153_pos, 2
- set_addr $I10, rxcap_1158_fail
- ($I12, $I11) = rx1153_cur."!mark_peek"($I10)
- rx1153_cur."!cursor_pos"($I11)
- ($P10) = rx1153_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1153_pos, "")
- rx1153_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1156_pos, 2
+ gt $I11, rx1156_eos, rx1156_fail
+ sub $I11, rx1156_pos, rx1156_off
+ substr $S10, rx1156_tgt, $I11, 2
+ ne $S10, "~~", rx1156_fail
+ add rx1156_pos, 2
+ set_addr $I10, rxcap_1161_fail
+ ($I12, $I11) = rx1156_cur."!mark_peek"($I10)
+ rx1156_cur."!cursor_pos"($I11)
+ ($P10) = rx1156_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1156_pos, "")
+ rx1156_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1158_done
- rxcap_1158_fail:
- goto rx1153_fail
- rxcap_1158_done:
+ goto rxcap_1161_done
+ rxcap_1161_fail:
+ goto rx1156_fail
+ rxcap_1161_done:
# rx subrule "O" subtype=capture negate=
- rx1153_cur."!cursor_pos"(rx1153_pos)
- $P10 = rx1153_cur."O"("%relational, :reducecheck<smartmatch>")
- unless $P10, rx1153_fail
- rx1153_cur."!mark_push"(0, -1, 0, $P10)
+ rx1156_cur."!cursor_pos"(rx1156_pos)
+ $P10 = rx1156_cur."O"("%relational, :reducecheck<smartmatch>")
+ unless $P10, rx1156_fail
+ rx1156_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1153_pos = $P10."pos"()
+ rx1156_pos = $P10."pos"()
# rx pass
- rx1153_cur."!cursor_pass"(rx1153_pos, "infix:sym<~~>")
- rx1153_cur."!cursor_debug"("PASS ", "infix:sym<~~>", " at pos=", rx1153_pos)
- .return (rx1153_cur)
- rx1153_fail:
-.annotate "line", 417
- (rx1153_rep, rx1153_pos, $I10, $P10) = rx1153_cur."!mark_fail"(0)
- lt rx1153_pos, -1, rx1153_done
- eq rx1153_pos, -1, rx1153_fail
+ rx1156_cur."!cursor_pass"(rx1156_pos, "infix:sym<~~>")
+ rx1156_cur."!cursor_debug"("PASS ", "infix:sym<~~>", " at pos=", rx1156_pos)
+ .return (rx1156_cur)
+ rx1156_fail:
+.annotate "line", 421
+ (rx1156_rep, rx1156_pos, $I10, $P10) = rx1156_cur."!mark_fail"(0)
+ lt rx1156_pos, -1, rx1156_done
+ eq rx1156_pos, -1, rx1156_fail
jump $I10
- rx1153_done:
- rx1153_cur."!cursor_fail"()
- rx1153_cur."!cursor_debug"("FAIL ", "infix:sym<~~>")
- .return (rx1153_cur)
+ rx1156_done:
+ rx1156_cur."!cursor_fail"()
+ rx1156_cur."!cursor_debug"("FAIL ", "infix:sym<~~>")
+ .return (rx1156_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~~>" :subid("296_1267204702.05125") :method
-.annotate "line", 417
- $P1155 = self."!PREFIX__!subrule"("O", "~~")
- new $P1156, "ResizablePMCArray"
- push $P1156, $P1155
- .return ($P1156)
+.sub "!PREFIX__infix:sym<~~>" :subid("296_1271336396.90314") :method
+.annotate "line", 421
+ $P1158 = self."!PREFIX__!subrule"("O", "~~")
+ new $P1159, "ResizablePMCArray"
+ push $P1159, $P1158
+ .return ($P1159)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<&&>" :subid("297_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1160_tgt
- .local int rx1160_pos
- .local int rx1160_off
- .local int rx1160_eos
- .local int rx1160_rep
- .local pmc rx1160_cur
- (rx1160_cur, rx1160_pos, rx1160_tgt) = self."!cursor_start"()
- rx1160_cur."!cursor_debug"("START ", "infix:sym<&&>")
- .lex unicode:"$\x{a2}", rx1160_cur
- .local pmc match
- .lex "$/", match
- length rx1160_eos, rx1160_tgt
- set rx1160_off, 0
- lt rx1160_pos, 2, rx1160_start
- sub rx1160_off, rx1160_pos, 1
- substr rx1160_tgt, rx1160_tgt, rx1160_off
- rx1160_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1164_done
- goto rxscan1164_scan
- rxscan1164_loop:
- ($P10) = rx1160_cur."from"()
- inc $P10
- set rx1160_pos, $P10
- ge rx1160_pos, rx1160_eos, rxscan1164_done
- rxscan1164_scan:
- set_addr $I10, rxscan1164_loop
- rx1160_cur."!mark_push"(0, rx1160_pos, $I10)
- rxscan1164_done:
-.annotate "line", 501
+.sub "infix:sym<&&>" :subid("297_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1163_tgt
+ .local int rx1163_pos
+ .local int rx1163_off
+ .local int rx1163_eos
+ .local int rx1163_rep
+ .local pmc rx1163_cur
+ (rx1163_cur, rx1163_pos, rx1163_tgt) = self."!cursor_start"()
+ rx1163_cur."!cursor_debug"("START ", "infix:sym<&&>")
+ .lex unicode:"$\x{a2}", rx1163_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1163_eos, rx1163_tgt
+ set rx1163_off, 0
+ lt rx1163_pos, 2, rx1163_start
+ sub rx1163_off, rx1163_pos, 1
+ substr rx1163_tgt, rx1163_tgt, rx1163_off
+ rx1163_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1167_done
+ goto rxscan1167_scan
+ rxscan1167_loop:
+ ($P10) = rx1163_cur."from"()
+ inc $P10
+ set rx1163_pos, $P10
+ ge rx1163_pos, rx1163_eos, rxscan1167_done
+ rxscan1167_scan:
+ set_addr $I10, rxscan1167_loop
+ rx1163_cur."!mark_push"(0, rx1163_pos, $I10)
+ rxscan1167_done:
+.annotate "line", 505
# rx subcapture "sym"
- set_addr $I10, rxcap_1165_fail
- rx1160_cur."!mark_push"(0, rx1160_pos, $I10)
+ set_addr $I10, rxcap_1168_fail
+ rx1163_cur."!mark_push"(0, rx1163_pos, $I10)
# rx literal "&&"
- add $I11, rx1160_pos, 2
- gt $I11, rx1160_eos, rx1160_fail
- sub $I11, rx1160_pos, rx1160_off
- substr $S10, rx1160_tgt, $I11, 2
- ne $S10, "&&", rx1160_fail
- add rx1160_pos, 2
- set_addr $I10, rxcap_1165_fail
- ($I12, $I11) = rx1160_cur."!mark_peek"($I10)
- rx1160_cur."!cursor_pos"($I11)
- ($P10) = rx1160_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1160_pos, "")
- rx1160_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1163_pos, 2
+ gt $I11, rx1163_eos, rx1163_fail
+ sub $I11, rx1163_pos, rx1163_off
+ substr $S10, rx1163_tgt, $I11, 2
+ ne $S10, "&&", rx1163_fail
+ add rx1163_pos, 2
+ set_addr $I10, rxcap_1168_fail
+ ($I12, $I11) = rx1163_cur."!mark_peek"($I10)
+ rx1163_cur."!cursor_pos"($I11)
+ ($P10) = rx1163_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1163_pos, "")
+ rx1163_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1165_done
- rxcap_1165_fail:
- goto rx1160_fail
- rxcap_1165_done:
+ goto rxcap_1168_done
+ rxcap_1168_fail:
+ goto rx1163_fail
+ rxcap_1168_done:
# rx subrule "O" subtype=capture negate=
- rx1160_cur."!cursor_pos"(rx1160_pos)
- $P10 = rx1160_cur."O"("%tight_and, :pasttype<if>")
- unless $P10, rx1160_fail
- rx1160_cur."!mark_push"(0, -1, 0, $P10)
+ rx1163_cur."!cursor_pos"(rx1163_pos)
+ $P10 = rx1163_cur."O"("%tight_and, :pasttype<if>")
+ unless $P10, rx1163_fail
+ rx1163_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1160_pos = $P10."pos"()
+ rx1163_pos = $P10."pos"()
# rx pass
- rx1160_cur."!cursor_pass"(rx1160_pos, "infix:sym<&&>")
- rx1160_cur."!cursor_debug"("PASS ", "infix:sym<&&>", " at pos=", rx1160_pos)
- .return (rx1160_cur)
- rx1160_fail:
-.annotate "line", 417
- (rx1160_rep, rx1160_pos, $I10, $P10) = rx1160_cur."!mark_fail"(0)
- lt rx1160_pos, -1, rx1160_done
- eq rx1160_pos, -1, rx1160_fail
+ rx1163_cur."!cursor_pass"(rx1163_pos, "infix:sym<&&>")
+ rx1163_cur."!cursor_debug"("PASS ", "infix:sym<&&>", " at pos=", rx1163_pos)
+ .return (rx1163_cur)
+ rx1163_fail:
+.annotate "line", 421
+ (rx1163_rep, rx1163_pos, $I10, $P10) = rx1163_cur."!mark_fail"(0)
+ lt rx1163_pos, -1, rx1163_done
+ eq rx1163_pos, -1, rx1163_fail
jump $I10
- rx1160_done:
- rx1160_cur."!cursor_fail"()
- rx1160_cur."!cursor_debug"("FAIL ", "infix:sym<&&>")
- .return (rx1160_cur)
+ rx1163_done:
+ rx1163_cur."!cursor_fail"()
+ rx1163_cur."!cursor_debug"("FAIL ", "infix:sym<&&>")
+ .return (rx1163_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<&&>" :subid("298_1267204702.05125") :method
-.annotate "line", 417
- $P1162 = self."!PREFIX__!subrule"("O", "&&")
- new $P1163, "ResizablePMCArray"
- push $P1163, $P1162
- .return ($P1163)
+.sub "!PREFIX__infix:sym<&&>" :subid("298_1271336396.90314") :method
+.annotate "line", 421
+ $P1165 = self."!PREFIX__!subrule"("O", "&&")
+ new $P1166, "ResizablePMCArray"
+ push $P1166, $P1165
+ .return ($P1166)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<||>" :subid("299_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1167_tgt
- .local int rx1167_pos
- .local int rx1167_off
- .local int rx1167_eos
- .local int rx1167_rep
- .local pmc rx1167_cur
- (rx1167_cur, rx1167_pos, rx1167_tgt) = self."!cursor_start"()
- rx1167_cur."!cursor_debug"("START ", "infix:sym<||>")
- .lex unicode:"$\x{a2}", rx1167_cur
- .local pmc match
- .lex "$/", match
- length rx1167_eos, rx1167_tgt
- set rx1167_off, 0
- lt rx1167_pos, 2, rx1167_start
- sub rx1167_off, rx1167_pos, 1
- substr rx1167_tgt, rx1167_tgt, rx1167_off
- rx1167_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1171_done
- goto rxscan1171_scan
- rxscan1171_loop:
- ($P10) = rx1167_cur."from"()
- inc $P10
- set rx1167_pos, $P10
- ge rx1167_pos, rx1167_eos, rxscan1171_done
- rxscan1171_scan:
- set_addr $I10, rxscan1171_loop
- rx1167_cur."!mark_push"(0, rx1167_pos, $I10)
- rxscan1171_done:
-.annotate "line", 503
+.sub "infix:sym<||>" :subid("299_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1170_tgt
+ .local int rx1170_pos
+ .local int rx1170_off
+ .local int rx1170_eos
+ .local int rx1170_rep
+ .local pmc rx1170_cur
+ (rx1170_cur, rx1170_pos, rx1170_tgt) = self."!cursor_start"()
+ rx1170_cur."!cursor_debug"("START ", "infix:sym<||>")
+ .lex unicode:"$\x{a2}", rx1170_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1170_eos, rx1170_tgt
+ set rx1170_off, 0
+ lt rx1170_pos, 2, rx1170_start
+ sub rx1170_off, rx1170_pos, 1
+ substr rx1170_tgt, rx1170_tgt, rx1170_off
+ rx1170_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1174_done
+ goto rxscan1174_scan
+ rxscan1174_loop:
+ ($P10) = rx1170_cur."from"()
+ inc $P10
+ set rx1170_pos, $P10
+ ge rx1170_pos, rx1170_eos, rxscan1174_done
+ rxscan1174_scan:
+ set_addr $I10, rxscan1174_loop
+ rx1170_cur."!mark_push"(0, rx1170_pos, $I10)
+ rxscan1174_done:
+.annotate "line", 507
# rx subcapture "sym"
- set_addr $I10, rxcap_1172_fail
- rx1167_cur."!mark_push"(0, rx1167_pos, $I10)
+ set_addr $I10, rxcap_1175_fail
+ rx1170_cur."!mark_push"(0, rx1170_pos, $I10)
# rx literal "||"
- add $I11, rx1167_pos, 2
- gt $I11, rx1167_eos, rx1167_fail
- sub $I11, rx1167_pos, rx1167_off
- substr $S10, rx1167_tgt, $I11, 2
- ne $S10, "||", rx1167_fail
- add rx1167_pos, 2
- set_addr $I10, rxcap_1172_fail
- ($I12, $I11) = rx1167_cur."!mark_peek"($I10)
- rx1167_cur."!cursor_pos"($I11)
- ($P10) = rx1167_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1167_pos, "")
- rx1167_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1170_pos, 2
+ gt $I11, rx1170_eos, rx1170_fail
+ sub $I11, rx1170_pos, rx1170_off
+ substr $S10, rx1170_tgt, $I11, 2
+ ne $S10, "||", rx1170_fail
+ add rx1170_pos, 2
+ set_addr $I10, rxcap_1175_fail
+ ($I12, $I11) = rx1170_cur."!mark_peek"($I10)
+ rx1170_cur."!cursor_pos"($I11)
+ ($P10) = rx1170_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1170_pos, "")
+ rx1170_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1172_done
- rxcap_1172_fail:
- goto rx1167_fail
- rxcap_1172_done:
+ goto rxcap_1175_done
+ rxcap_1175_fail:
+ goto rx1170_fail
+ rxcap_1175_done:
# rx subrule "O" subtype=capture negate=
- rx1167_cur."!cursor_pos"(rx1167_pos)
- $P10 = rx1167_cur."O"("%tight_or, :pasttype<unless>")
- unless $P10, rx1167_fail
- rx1167_cur."!mark_push"(0, -1, 0, $P10)
+ rx1170_cur."!cursor_pos"(rx1170_pos)
+ $P10 = rx1170_cur."O"("%tight_or, :pasttype<unless>")
+ unless $P10, rx1170_fail
+ rx1170_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1167_pos = $P10."pos"()
+ rx1170_pos = $P10."pos"()
# rx pass
- rx1167_cur."!cursor_pass"(rx1167_pos, "infix:sym<||>")
- rx1167_cur."!cursor_debug"("PASS ", "infix:sym<||>", " at pos=", rx1167_pos)
- .return (rx1167_cur)
- rx1167_fail:
-.annotate "line", 417
- (rx1167_rep, rx1167_pos, $I10, $P10) = rx1167_cur."!mark_fail"(0)
- lt rx1167_pos, -1, rx1167_done
- eq rx1167_pos, -1, rx1167_fail
+ rx1170_cur."!cursor_pass"(rx1170_pos, "infix:sym<||>")
+ rx1170_cur."!cursor_debug"("PASS ", "infix:sym<||>", " at pos=", rx1170_pos)
+ .return (rx1170_cur)
+ rx1170_fail:
+.annotate "line", 421
+ (rx1170_rep, rx1170_pos, $I10, $P10) = rx1170_cur."!mark_fail"(0)
+ lt rx1170_pos, -1, rx1170_done
+ eq rx1170_pos, -1, rx1170_fail
jump $I10
- rx1167_done:
- rx1167_cur."!cursor_fail"()
- rx1167_cur."!cursor_debug"("FAIL ", "infix:sym<||>")
- .return (rx1167_cur)
+ rx1170_done:
+ rx1170_cur."!cursor_fail"()
+ rx1170_cur."!cursor_debug"("FAIL ", "infix:sym<||>")
+ .return (rx1170_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<||>" :subid("300_1267204702.05125") :method
-.annotate "line", 417
- $P1169 = self."!PREFIX__!subrule"("O", "||")
- new $P1170, "ResizablePMCArray"
- push $P1170, $P1169
- .return ($P1170)
+.sub "!PREFIX__infix:sym<||>" :subid("300_1271336396.90314") :method
+.annotate "line", 421
+ $P1172 = self."!PREFIX__!subrule"("O", "||")
+ new $P1173, "ResizablePMCArray"
+ push $P1173, $P1172
+ .return ($P1173)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<//>" :subid("301_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1174_tgt
- .local int rx1174_pos
- .local int rx1174_off
- .local int rx1174_eos
- .local int rx1174_rep
- .local pmc rx1174_cur
- (rx1174_cur, rx1174_pos, rx1174_tgt) = self."!cursor_start"()
- rx1174_cur."!cursor_debug"("START ", "infix:sym<//>")
- .lex unicode:"$\x{a2}", rx1174_cur
- .local pmc match
- .lex "$/", match
- length rx1174_eos, rx1174_tgt
- set rx1174_off, 0
- lt rx1174_pos, 2, rx1174_start
- sub rx1174_off, rx1174_pos, 1
- substr rx1174_tgt, rx1174_tgt, rx1174_off
- rx1174_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1178_done
- goto rxscan1178_scan
- rxscan1178_loop:
- ($P10) = rx1174_cur."from"()
- inc $P10
- set rx1174_pos, $P10
- ge rx1174_pos, rx1174_eos, rxscan1178_done
- rxscan1178_scan:
- set_addr $I10, rxscan1178_loop
- rx1174_cur."!mark_push"(0, rx1174_pos, $I10)
- rxscan1178_done:
-.annotate "line", 504
+.sub "infix:sym<//>" :subid("301_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1177_tgt
+ .local int rx1177_pos
+ .local int rx1177_off
+ .local int rx1177_eos
+ .local int rx1177_rep
+ .local pmc rx1177_cur
+ (rx1177_cur, rx1177_pos, rx1177_tgt) = self."!cursor_start"()
+ rx1177_cur."!cursor_debug"("START ", "infix:sym<//>")
+ .lex unicode:"$\x{a2}", rx1177_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1177_eos, rx1177_tgt
+ set rx1177_off, 0
+ lt rx1177_pos, 2, rx1177_start
+ sub rx1177_off, rx1177_pos, 1
+ substr rx1177_tgt, rx1177_tgt, rx1177_off
+ rx1177_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1181_done
+ goto rxscan1181_scan
+ rxscan1181_loop:
+ ($P10) = rx1177_cur."from"()
+ inc $P10
+ set rx1177_pos, $P10
+ ge rx1177_pos, rx1177_eos, rxscan1181_done
+ rxscan1181_scan:
+ set_addr $I10, rxscan1181_loop
+ rx1177_cur."!mark_push"(0, rx1177_pos, $I10)
+ rxscan1181_done:
+.annotate "line", 508
# rx subcapture "sym"
- set_addr $I10, rxcap_1179_fail
- rx1174_cur."!mark_push"(0, rx1174_pos, $I10)
+ set_addr $I10, rxcap_1182_fail
+ rx1177_cur."!mark_push"(0, rx1177_pos, $I10)
# rx literal "//"
- add $I11, rx1174_pos, 2
- gt $I11, rx1174_eos, rx1174_fail
- sub $I11, rx1174_pos, rx1174_off
- substr $S10, rx1174_tgt, $I11, 2
- ne $S10, "//", rx1174_fail
- add rx1174_pos, 2
- set_addr $I10, rxcap_1179_fail
- ($I12, $I11) = rx1174_cur."!mark_peek"($I10)
- rx1174_cur."!cursor_pos"($I11)
- ($P10) = rx1174_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1174_pos, "")
- rx1174_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1177_pos, 2
+ gt $I11, rx1177_eos, rx1177_fail
+ sub $I11, rx1177_pos, rx1177_off
+ substr $S10, rx1177_tgt, $I11, 2
+ ne $S10, "//", rx1177_fail
+ add rx1177_pos, 2
+ set_addr $I10, rxcap_1182_fail
+ ($I12, $I11) = rx1177_cur."!mark_peek"($I10)
+ rx1177_cur."!cursor_pos"($I11)
+ ($P10) = rx1177_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1177_pos, "")
+ rx1177_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1179_done
- rxcap_1179_fail:
- goto rx1174_fail
- rxcap_1179_done:
+ goto rxcap_1182_done
+ rxcap_1182_fail:
+ goto rx1177_fail
+ rxcap_1182_done:
# rx subrule "O" subtype=capture negate=
- rx1174_cur."!cursor_pos"(rx1174_pos)
- $P10 = rx1174_cur."O"("%tight_or, :pasttype<def_or>")
- unless $P10, rx1174_fail
- rx1174_cur."!mark_push"(0, -1, 0, $P10)
+ rx1177_cur."!cursor_pos"(rx1177_pos)
+ $P10 = rx1177_cur."O"("%tight_or, :pasttype<def_or>")
+ unless $P10, rx1177_fail
+ rx1177_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1174_pos = $P10."pos"()
+ rx1177_pos = $P10."pos"()
# rx pass
- rx1174_cur."!cursor_pass"(rx1174_pos, "infix:sym<//>")
- rx1174_cur."!cursor_debug"("PASS ", "infix:sym<//>", " at pos=", rx1174_pos)
- .return (rx1174_cur)
- rx1174_fail:
-.annotate "line", 417
- (rx1174_rep, rx1174_pos, $I10, $P10) = rx1174_cur."!mark_fail"(0)
- lt rx1174_pos, -1, rx1174_done
- eq rx1174_pos, -1, rx1174_fail
+ rx1177_cur."!cursor_pass"(rx1177_pos, "infix:sym<//>")
+ rx1177_cur."!cursor_debug"("PASS ", "infix:sym<//>", " at pos=", rx1177_pos)
+ .return (rx1177_cur)
+ rx1177_fail:
+.annotate "line", 421
+ (rx1177_rep, rx1177_pos, $I10, $P10) = rx1177_cur."!mark_fail"(0)
+ lt rx1177_pos, -1, rx1177_done
+ eq rx1177_pos, -1, rx1177_fail
jump $I10
- rx1174_done:
- rx1174_cur."!cursor_fail"()
- rx1174_cur."!cursor_debug"("FAIL ", "infix:sym<//>")
- .return (rx1174_cur)
+ rx1177_done:
+ rx1177_cur."!cursor_fail"()
+ rx1177_cur."!cursor_debug"("FAIL ", "infix:sym<//>")
+ .return (rx1177_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<//>" :subid("302_1267204702.05125") :method
-.annotate "line", 417
- $P1176 = self."!PREFIX__!subrule"("O", "//")
- new $P1177, "ResizablePMCArray"
- push $P1177, $P1176
- .return ($P1177)
+.sub "!PREFIX__infix:sym<//>" :subid("302_1271336396.90314") :method
+.annotate "line", 421
+ $P1179 = self."!PREFIX__!subrule"("O", "//")
+ new $P1180, "ResizablePMCArray"
+ push $P1180, $P1179
+ .return ($P1180)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<?? !!>" :subid("303_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1181_tgt
- .local int rx1181_pos
- .local int rx1181_off
- .local int rx1181_eos
- .local int rx1181_rep
- .local pmc rx1181_cur
- (rx1181_cur, rx1181_pos, rx1181_tgt) = self."!cursor_start"()
- rx1181_cur."!cursor_debug"("START ", "infix:sym<?? !!>")
- .lex unicode:"$\x{a2}", rx1181_cur
- .local pmc match
- .lex "$/", match
- length rx1181_eos, rx1181_tgt
- set rx1181_off, 0
- lt rx1181_pos, 2, rx1181_start
- sub rx1181_off, rx1181_pos, 1
- substr rx1181_tgt, rx1181_tgt, rx1181_off
- rx1181_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1185_done
- goto rxscan1185_scan
- rxscan1185_loop:
- ($P10) = rx1181_cur."from"()
- inc $P10
- set rx1181_pos, $P10
- ge rx1181_pos, rx1181_eos, rxscan1185_done
- rxscan1185_scan:
- set_addr $I10, rxscan1185_loop
- rx1181_cur."!mark_push"(0, rx1181_pos, $I10)
- rxscan1185_done:
-.annotate "line", 507
+.sub "infix:sym<?? !!>" :subid("303_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1184_tgt
+ .local int rx1184_pos
+ .local int rx1184_off
+ .local int rx1184_eos
+ .local int rx1184_rep
+ .local pmc rx1184_cur
+ (rx1184_cur, rx1184_pos, rx1184_tgt) = self."!cursor_start"()
+ rx1184_cur."!cursor_debug"("START ", "infix:sym<?? !!>")
+ .lex unicode:"$\x{a2}", rx1184_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1184_eos, rx1184_tgt
+ set rx1184_off, 0
+ lt rx1184_pos, 2, rx1184_start
+ sub rx1184_off, rx1184_pos, 1
+ substr rx1184_tgt, rx1184_tgt, rx1184_off
+ rx1184_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1188_done
+ goto rxscan1188_scan
+ rxscan1188_loop:
+ ($P10) = rx1184_cur."from"()
+ inc $P10
+ set rx1184_pos, $P10
+ ge rx1184_pos, rx1184_eos, rxscan1188_done
+ rxscan1188_scan:
+ set_addr $I10, rxscan1188_loop
+ rx1184_cur."!mark_push"(0, rx1184_pos, $I10)
+ rxscan1188_done:
+.annotate "line", 511
# rx literal "??"
- add $I11, rx1181_pos, 2
- gt $I11, rx1181_eos, rx1181_fail
- sub $I11, rx1181_pos, rx1181_off
- substr $S10, rx1181_tgt, $I11, 2
- ne $S10, "??", rx1181_fail
- add rx1181_pos, 2
-.annotate "line", 508
- # rx subrule "ws" subtype=method negate=
- rx1181_cur."!cursor_pos"(rx1181_pos)
- $P10 = rx1181_cur."ws"()
- unless $P10, rx1181_fail
- rx1181_pos = $P10."pos"()
-.annotate "line", 509
+ add $I11, rx1184_pos, 2
+ gt $I11, rx1184_eos, rx1184_fail
+ sub $I11, rx1184_pos, rx1184_off
+ substr $S10, rx1184_tgt, $I11, 2
+ ne $S10, "??", rx1184_fail
+ add rx1184_pos, 2
+.annotate "line", 512
+ # rx subrule "ws" subtype=method negate=
+ rx1184_cur."!cursor_pos"(rx1184_pos)
+ $P10 = rx1184_cur."ws"()
+ unless $P10, rx1184_fail
+ rx1184_pos = $P10."pos"()
+.annotate "line", 513
# rx subrule "EXPR" subtype=capture negate=
- rx1181_cur."!cursor_pos"(rx1181_pos)
- $P10 = rx1181_cur."EXPR"("i=")
- unless $P10, rx1181_fail
- rx1181_cur."!mark_push"(0, -1, 0, $P10)
+ rx1184_cur."!cursor_pos"(rx1184_pos)
+ $P10 = rx1184_cur."EXPR"("i=")
+ unless $P10, rx1184_fail
+ rx1184_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx1181_pos = $P10."pos"()
-.annotate "line", 510
+ rx1184_pos = $P10."pos"()
+.annotate "line", 514
# rx literal "!!"
- add $I11, rx1181_pos, 2
- gt $I11, rx1181_eos, rx1181_fail
- sub $I11, rx1181_pos, rx1181_off
- substr $S10, rx1181_tgt, $I11, 2
- ne $S10, "!!", rx1181_fail
- add rx1181_pos, 2
-.annotate "line", 511
+ add $I11, rx1184_pos, 2
+ gt $I11, rx1184_eos, rx1184_fail
+ sub $I11, rx1184_pos, rx1184_off
+ substr $S10, rx1184_tgt, $I11, 2
+ ne $S10, "!!", rx1184_fail
+ add rx1184_pos, 2
+.annotate "line", 515
# rx subrule "O" subtype=capture negate=
- rx1181_cur."!cursor_pos"(rx1181_pos)
- $P10 = rx1181_cur."O"("%conditional, :reducecheck<ternary>, :pasttype<if>")
- unless $P10, rx1181_fail
- rx1181_cur."!mark_push"(0, -1, 0, $P10)
+ rx1184_cur."!cursor_pos"(rx1184_pos)
+ $P10 = rx1184_cur."O"("%conditional, :reducecheck<ternary>, :pasttype<if>")
+ unless $P10, rx1184_fail
+ rx1184_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1181_pos = $P10."pos"()
-.annotate "line", 506
+ rx1184_pos = $P10."pos"()
+.annotate "line", 510
# rx pass
- rx1181_cur."!cursor_pass"(rx1181_pos, "infix:sym<?? !!>")
- rx1181_cur."!cursor_debug"("PASS ", "infix:sym<?? !!>", " at pos=", rx1181_pos)
- .return (rx1181_cur)
- rx1181_fail:
-.annotate "line", 417
- (rx1181_rep, rx1181_pos, $I10, $P10) = rx1181_cur."!mark_fail"(0)
- lt rx1181_pos, -1, rx1181_done
- eq rx1181_pos, -1, rx1181_fail
+ rx1184_cur."!cursor_pass"(rx1184_pos, "infix:sym<?? !!>")
+ rx1184_cur."!cursor_debug"("PASS ", "infix:sym<?? !!>", " at pos=", rx1184_pos)
+ .return (rx1184_cur)
+ rx1184_fail:
+.annotate "line", 421
+ (rx1184_rep, rx1184_pos, $I10, $P10) = rx1184_cur."!mark_fail"(0)
+ lt rx1184_pos, -1, rx1184_done
+ eq rx1184_pos, -1, rx1184_fail
jump $I10
- rx1181_done:
- rx1181_cur."!cursor_fail"()
- rx1181_cur."!cursor_debug"("FAIL ", "infix:sym<?? !!>")
- .return (rx1181_cur)
+ rx1184_done:
+ rx1184_cur."!cursor_fail"()
+ rx1184_cur."!cursor_debug"("FAIL ", "infix:sym<?? !!>")
+ .return (rx1184_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<?? !!>" :subid("304_1267204702.05125") :method
-.annotate "line", 417
- $P1183 = self."!PREFIX__!subrule"("", "??")
- new $P1184, "ResizablePMCArray"
- push $P1184, $P1183
- .return ($P1184)
+.sub "!PREFIX__infix:sym<?? !!>" :subid("304_1271336396.90314") :method
+.annotate "line", 421
+ $P1186 = self."!PREFIX__!subrule"("", "??")
+ new $P1187, "ResizablePMCArray"
+ push $P1187, $P1186
+ .return ($P1187)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<=>" :subid("305_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1187_tgt
- .local int rx1187_pos
- .local int rx1187_off
- .local int rx1187_eos
- .local int rx1187_rep
- .local pmc rx1187_cur
- (rx1187_cur, rx1187_pos, rx1187_tgt) = self."!cursor_start"()
- rx1187_cur."!cursor_debug"("START ", "infix:sym<=>")
- .lex unicode:"$\x{a2}", rx1187_cur
- .local pmc match
- .lex "$/", match
- length rx1187_eos, rx1187_tgt
- set rx1187_off, 0
- lt rx1187_pos, 2, rx1187_start
- sub rx1187_off, rx1187_pos, 1
- substr rx1187_tgt, rx1187_tgt, rx1187_off
- rx1187_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1191_done
- goto rxscan1191_scan
- rxscan1191_loop:
- ($P10) = rx1187_cur."from"()
- inc $P10
- set rx1187_pos, $P10
- ge rx1187_pos, rx1187_eos, rxscan1191_done
- rxscan1191_scan:
- set_addr $I10, rxscan1191_loop
- rx1187_cur."!mark_push"(0, rx1187_pos, $I10)
- rxscan1191_done:
-.annotate "line", 515
+.sub "infix:sym<=>" :subid("305_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1190_tgt
+ .local int rx1190_pos
+ .local int rx1190_off
+ .local int rx1190_eos
+ .local int rx1190_rep
+ .local pmc rx1190_cur
+ (rx1190_cur, rx1190_pos, rx1190_tgt) = self."!cursor_start"()
+ rx1190_cur."!cursor_debug"("START ", "infix:sym<=>")
+ .lex unicode:"$\x{a2}", rx1190_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1190_eos, rx1190_tgt
+ set rx1190_off, 0
+ lt rx1190_pos, 2, rx1190_start
+ sub rx1190_off, rx1190_pos, 1
+ substr rx1190_tgt, rx1190_tgt, rx1190_off
+ rx1190_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1194_done
+ goto rxscan1194_scan
+ rxscan1194_loop:
+ ($P10) = rx1190_cur."from"()
+ inc $P10
+ set rx1190_pos, $P10
+ ge rx1190_pos, rx1190_eos, rxscan1194_done
+ rxscan1194_scan:
+ set_addr $I10, rxscan1194_loop
+ rx1190_cur."!mark_push"(0, rx1190_pos, $I10)
+ rxscan1194_done:
+.annotate "line", 519
# rx subcapture "sym"
- set_addr $I10, rxcap_1192_fail
- rx1187_cur."!mark_push"(0, rx1187_pos, $I10)
+ set_addr $I10, rxcap_1195_fail
+ rx1190_cur."!mark_push"(0, rx1190_pos, $I10)
# rx literal "="
- add $I11, rx1187_pos, 1
- gt $I11, rx1187_eos, rx1187_fail
- sub $I11, rx1187_pos, rx1187_off
- substr $S10, rx1187_tgt, $I11, 1
- ne $S10, "=", rx1187_fail
- add rx1187_pos, 1
- set_addr $I10, rxcap_1192_fail
- ($I12, $I11) = rx1187_cur."!mark_peek"($I10)
- rx1187_cur."!cursor_pos"($I11)
- ($P10) = rx1187_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1187_pos, "")
- rx1187_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1190_pos, 1
+ gt $I11, rx1190_eos, rx1190_fail
+ sub $I11, rx1190_pos, rx1190_off
+ substr $S10, rx1190_tgt, $I11, 1
+ ne $S10, "=", rx1190_fail
+ add rx1190_pos, 1
+ set_addr $I10, rxcap_1195_fail
+ ($I12, $I11) = rx1190_cur."!mark_peek"($I10)
+ rx1190_cur."!cursor_pos"($I11)
+ ($P10) = rx1190_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1190_pos, "")
+ rx1190_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1192_done
- rxcap_1192_fail:
- goto rx1187_fail
- rxcap_1192_done:
+ goto rxcap_1195_done
+ rxcap_1195_fail:
+ goto rx1190_fail
+ rxcap_1195_done:
# rx subrule "panic" subtype=method negate=
- rx1187_cur."!cursor_pos"(rx1187_pos)
- $P10 = rx1187_cur."panic"("Assignment (\"=\") not supported in NQP, use \":=\" instead")
- unless $P10, rx1187_fail
- rx1187_pos = $P10."pos"()
-.annotate "line", 514
+ rx1190_cur."!cursor_pos"(rx1190_pos)
+ $P10 = rx1190_cur."panic"("Assignment (\"=\") not supported in NQP, use \":=\" instead")
+ unless $P10, rx1190_fail
+ rx1190_pos = $P10."pos"()
+.annotate "line", 518
# rx pass
- rx1187_cur."!cursor_pass"(rx1187_pos, "infix:sym<=>")
- rx1187_cur."!cursor_debug"("PASS ", "infix:sym<=>", " at pos=", rx1187_pos)
- .return (rx1187_cur)
- rx1187_fail:
-.annotate "line", 417
- (rx1187_rep, rx1187_pos, $I10, $P10) = rx1187_cur."!mark_fail"(0)
- lt rx1187_pos, -1, rx1187_done
- eq rx1187_pos, -1, rx1187_fail
+ rx1190_cur."!cursor_pass"(rx1190_pos, "infix:sym<=>")
+ rx1190_cur."!cursor_debug"("PASS ", "infix:sym<=>", " at pos=", rx1190_pos)
+ .return (rx1190_cur)
+ rx1190_fail:
+.annotate "line", 421
+ (rx1190_rep, rx1190_pos, $I10, $P10) = rx1190_cur."!mark_fail"(0)
+ lt rx1190_pos, -1, rx1190_done
+ eq rx1190_pos, -1, rx1190_fail
jump $I10
- rx1187_done:
- rx1187_cur."!cursor_fail"()
- rx1187_cur."!cursor_debug"("FAIL ", "infix:sym<=>")
- .return (rx1187_cur)
+ rx1190_done:
+ rx1190_cur."!cursor_fail"()
+ rx1190_cur."!cursor_debug"("FAIL ", "infix:sym<=>")
+ .return (rx1190_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=>" :subid("306_1267204702.05125") :method
-.annotate "line", 417
- $P1189 = self."!PREFIX__!subrule"("", "=")
- new $P1190, "ResizablePMCArray"
- push $P1190, $P1189
- .return ($P1190)
+.sub "!PREFIX__infix:sym<=>" :subid("306_1271336396.90314") :method
+.annotate "line", 421
+ $P1192 = self."!PREFIX__!subrule"("", "=")
+ new $P1193, "ResizablePMCArray"
+ push $P1193, $P1192
+ .return ($P1193)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<:=>" :subid("307_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1194_tgt
- .local int rx1194_pos
- .local int rx1194_off
- .local int rx1194_eos
- .local int rx1194_rep
- .local pmc rx1194_cur
- (rx1194_cur, rx1194_pos, rx1194_tgt) = self."!cursor_start"()
- rx1194_cur."!cursor_debug"("START ", "infix:sym<:=>")
- .lex unicode:"$\x{a2}", rx1194_cur
- .local pmc match
- .lex "$/", match
- length rx1194_eos, rx1194_tgt
- set rx1194_off, 0
- lt rx1194_pos, 2, rx1194_start
- sub rx1194_off, rx1194_pos, 1
- substr rx1194_tgt, rx1194_tgt, rx1194_off
- rx1194_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1198_done
- goto rxscan1198_scan
- rxscan1198_loop:
- ($P10) = rx1194_cur."from"()
- inc $P10
- set rx1194_pos, $P10
- ge rx1194_pos, rx1194_eos, rxscan1198_done
- rxscan1198_scan:
- set_addr $I10, rxscan1198_loop
- rx1194_cur."!mark_push"(0, rx1194_pos, $I10)
- rxscan1198_done:
-.annotate "line", 517
+.sub "infix:sym<:=>" :subid("307_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1197_tgt
+ .local int rx1197_pos
+ .local int rx1197_off
+ .local int rx1197_eos
+ .local int rx1197_rep
+ .local pmc rx1197_cur
+ (rx1197_cur, rx1197_pos, rx1197_tgt) = self."!cursor_start"()
+ rx1197_cur."!cursor_debug"("START ", "infix:sym<:=>")
+ .lex unicode:"$\x{a2}", rx1197_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1197_eos, rx1197_tgt
+ set rx1197_off, 0
+ lt rx1197_pos, 2, rx1197_start
+ sub rx1197_off, rx1197_pos, 1
+ substr rx1197_tgt, rx1197_tgt, rx1197_off
+ rx1197_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1201_done
+ goto rxscan1201_scan
+ rxscan1201_loop:
+ ($P10) = rx1197_cur."from"()
+ inc $P10
+ set rx1197_pos, $P10
+ ge rx1197_pos, rx1197_eos, rxscan1201_done
+ rxscan1201_scan:
+ set_addr $I10, rxscan1201_loop
+ rx1197_cur."!mark_push"(0, rx1197_pos, $I10)
+ rxscan1201_done:
+.annotate "line", 521
# rx subcapture "sym"
- set_addr $I10, rxcap_1199_fail
- rx1194_cur."!mark_push"(0, rx1194_pos, $I10)
+ set_addr $I10, rxcap_1202_fail
+ rx1197_cur."!mark_push"(0, rx1197_pos, $I10)
# rx literal ":="
- add $I11, rx1194_pos, 2
- gt $I11, rx1194_eos, rx1194_fail
- sub $I11, rx1194_pos, rx1194_off
- substr $S10, rx1194_tgt, $I11, 2
- ne $S10, ":=", rx1194_fail
- add rx1194_pos, 2
- set_addr $I10, rxcap_1199_fail
- ($I12, $I11) = rx1194_cur."!mark_peek"($I10)
- rx1194_cur."!cursor_pos"($I11)
- ($P10) = rx1194_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1194_pos, "")
- rx1194_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1197_pos, 2
+ gt $I11, rx1197_eos, rx1197_fail
+ sub $I11, rx1197_pos, rx1197_off
+ substr $S10, rx1197_tgt, $I11, 2
+ ne $S10, ":=", rx1197_fail
+ add rx1197_pos, 2
+ set_addr $I10, rxcap_1202_fail
+ ($I12, $I11) = rx1197_cur."!mark_peek"($I10)
+ rx1197_cur."!cursor_pos"($I11)
+ ($P10) = rx1197_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1197_pos, "")
+ rx1197_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1199_done
- rxcap_1199_fail:
- goto rx1194_fail
- rxcap_1199_done:
+ goto rxcap_1202_done
+ rxcap_1202_fail:
+ goto rx1197_fail
+ rxcap_1202_done:
# rx subrule "O" subtype=capture negate=
- rx1194_cur."!cursor_pos"(rx1194_pos)
- $P10 = rx1194_cur."O"("%assignment, :pasttype<bind>")
- unless $P10, rx1194_fail
- rx1194_cur."!mark_push"(0, -1, 0, $P10)
+ rx1197_cur."!cursor_pos"(rx1197_pos)
+ $P10 = rx1197_cur."O"("%assignment, :pasttype<bind>")
+ unless $P10, rx1197_fail
+ rx1197_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1194_pos = $P10."pos"()
+ rx1197_pos = $P10."pos"()
# rx pass
- rx1194_cur."!cursor_pass"(rx1194_pos, "infix:sym<:=>")
- rx1194_cur."!cursor_debug"("PASS ", "infix:sym<:=>", " at pos=", rx1194_pos)
- .return (rx1194_cur)
- rx1194_fail:
-.annotate "line", 417
- (rx1194_rep, rx1194_pos, $I10, $P10) = rx1194_cur."!mark_fail"(0)
- lt rx1194_pos, -1, rx1194_done
- eq rx1194_pos, -1, rx1194_fail
+ rx1197_cur."!cursor_pass"(rx1197_pos, "infix:sym<:=>")
+ rx1197_cur."!cursor_debug"("PASS ", "infix:sym<:=>", " at pos=", rx1197_pos)
+ .return (rx1197_cur)
+ rx1197_fail:
+.annotate "line", 421
+ (rx1197_rep, rx1197_pos, $I10, $P10) = rx1197_cur."!mark_fail"(0)
+ lt rx1197_pos, -1, rx1197_done
+ eq rx1197_pos, -1, rx1197_fail
jump $I10
- rx1194_done:
- rx1194_cur."!cursor_fail"()
- rx1194_cur."!cursor_debug"("FAIL ", "infix:sym<:=>")
- .return (rx1194_cur)
+ rx1197_done:
+ rx1197_cur."!cursor_fail"()
+ rx1197_cur."!cursor_debug"("FAIL ", "infix:sym<:=>")
+ .return (rx1197_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<:=>" :subid("308_1267204702.05125") :method
-.annotate "line", 417
- $P1196 = self."!PREFIX__!subrule"("O", ":=")
- new $P1197, "ResizablePMCArray"
- push $P1197, $P1196
- .return ($P1197)
+.sub "!PREFIX__infix:sym<:=>" :subid("308_1271336396.90314") :method
+.annotate "line", 421
+ $P1199 = self."!PREFIX__!subrule"("O", ":=")
+ new $P1200, "ResizablePMCArray"
+ push $P1200, $P1199
+ .return ($P1200)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<::=>" :subid("309_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1201_tgt
- .local int rx1201_pos
- .local int rx1201_off
- .local int rx1201_eos
- .local int rx1201_rep
- .local pmc rx1201_cur
- (rx1201_cur, rx1201_pos, rx1201_tgt) = self."!cursor_start"()
- rx1201_cur."!cursor_debug"("START ", "infix:sym<::=>")
- .lex unicode:"$\x{a2}", rx1201_cur
- .local pmc match
- .lex "$/", match
- length rx1201_eos, rx1201_tgt
- set rx1201_off, 0
- lt rx1201_pos, 2, rx1201_start
- sub rx1201_off, rx1201_pos, 1
- substr rx1201_tgt, rx1201_tgt, rx1201_off
- rx1201_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1205_done
- goto rxscan1205_scan
- rxscan1205_loop:
- ($P10) = rx1201_cur."from"()
- inc $P10
- set rx1201_pos, $P10
- ge rx1201_pos, rx1201_eos, rxscan1205_done
- rxscan1205_scan:
- set_addr $I10, rxscan1205_loop
- rx1201_cur."!mark_push"(0, rx1201_pos, $I10)
- rxscan1205_done:
-.annotate "line", 518
+.sub "infix:sym<::=>" :subid("309_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1204_tgt
+ .local int rx1204_pos
+ .local int rx1204_off
+ .local int rx1204_eos
+ .local int rx1204_rep
+ .local pmc rx1204_cur
+ (rx1204_cur, rx1204_pos, rx1204_tgt) = self."!cursor_start"()
+ rx1204_cur."!cursor_debug"("START ", "infix:sym<::=>")
+ .lex unicode:"$\x{a2}", rx1204_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1204_eos, rx1204_tgt
+ set rx1204_off, 0
+ lt rx1204_pos, 2, rx1204_start
+ sub rx1204_off, rx1204_pos, 1
+ substr rx1204_tgt, rx1204_tgt, rx1204_off
+ rx1204_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1208_done
+ goto rxscan1208_scan
+ rxscan1208_loop:
+ ($P10) = rx1204_cur."from"()
+ inc $P10
+ set rx1204_pos, $P10
+ ge rx1204_pos, rx1204_eos, rxscan1208_done
+ rxscan1208_scan:
+ set_addr $I10, rxscan1208_loop
+ rx1204_cur."!mark_push"(0, rx1204_pos, $I10)
+ rxscan1208_done:
+.annotate "line", 522
# rx subcapture "sym"
- set_addr $I10, rxcap_1206_fail
- rx1201_cur."!mark_push"(0, rx1201_pos, $I10)
+ set_addr $I10, rxcap_1209_fail
+ rx1204_cur."!mark_push"(0, rx1204_pos, $I10)
# rx literal "::="
- add $I11, rx1201_pos, 3
- gt $I11, rx1201_eos, rx1201_fail
- sub $I11, rx1201_pos, rx1201_off
- substr $S10, rx1201_tgt, $I11, 3
- ne $S10, "::=", rx1201_fail
- add rx1201_pos, 3
- set_addr $I10, rxcap_1206_fail
- ($I12, $I11) = rx1201_cur."!mark_peek"($I10)
- rx1201_cur."!cursor_pos"($I11)
- ($P10) = rx1201_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1201_pos, "")
- rx1201_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1204_pos, 3
+ gt $I11, rx1204_eos, rx1204_fail
+ sub $I11, rx1204_pos, rx1204_off
+ substr $S10, rx1204_tgt, $I11, 3
+ ne $S10, "::=", rx1204_fail
+ add rx1204_pos, 3
+ set_addr $I10, rxcap_1209_fail
+ ($I12, $I11) = rx1204_cur."!mark_peek"($I10)
+ rx1204_cur."!cursor_pos"($I11)
+ ($P10) = rx1204_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1204_pos, "")
+ rx1204_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1206_done
- rxcap_1206_fail:
- goto rx1201_fail
- rxcap_1206_done:
+ goto rxcap_1209_done
+ rxcap_1209_fail:
+ goto rx1204_fail
+ rxcap_1209_done:
# rx subrule "O" subtype=capture negate=
- rx1201_cur."!cursor_pos"(rx1201_pos)
- $P10 = rx1201_cur."O"("%assignment, :pasttype<bind>")
- unless $P10, rx1201_fail
- rx1201_cur."!mark_push"(0, -1, 0, $P10)
+ rx1204_cur."!cursor_pos"(rx1204_pos)
+ $P10 = rx1204_cur."O"("%assignment, :pasttype<bind>")
+ unless $P10, rx1204_fail
+ rx1204_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1201_pos = $P10."pos"()
+ rx1204_pos = $P10."pos"()
# rx pass
- rx1201_cur."!cursor_pass"(rx1201_pos, "infix:sym<::=>")
- rx1201_cur."!cursor_debug"("PASS ", "infix:sym<::=>", " at pos=", rx1201_pos)
- .return (rx1201_cur)
- rx1201_fail:
-.annotate "line", 417
- (rx1201_rep, rx1201_pos, $I10, $P10) = rx1201_cur."!mark_fail"(0)
- lt rx1201_pos, -1, rx1201_done
- eq rx1201_pos, -1, rx1201_fail
+ rx1204_cur."!cursor_pass"(rx1204_pos, "infix:sym<::=>")
+ rx1204_cur."!cursor_debug"("PASS ", "infix:sym<::=>", " at pos=", rx1204_pos)
+ .return (rx1204_cur)
+ rx1204_fail:
+.annotate "line", 421
+ (rx1204_rep, rx1204_pos, $I10, $P10) = rx1204_cur."!mark_fail"(0)
+ lt rx1204_pos, -1, rx1204_done
+ eq rx1204_pos, -1, rx1204_fail
jump $I10
- rx1201_done:
- rx1201_cur."!cursor_fail"()
- rx1201_cur."!cursor_debug"("FAIL ", "infix:sym<::=>")
- .return (rx1201_cur)
+ rx1204_done:
+ rx1204_cur."!cursor_fail"()
+ rx1204_cur."!cursor_debug"("FAIL ", "infix:sym<::=>")
+ .return (rx1204_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<::=>" :subid("310_1267204702.05125") :method
-.annotate "line", 417
- $P1203 = self."!PREFIX__!subrule"("O", "::=")
- new $P1204, "ResizablePMCArray"
- push $P1204, $P1203
- .return ($P1204)
+.sub "!PREFIX__infix:sym<::=>" :subid("310_1271336396.90314") :method
+.annotate "line", 421
+ $P1206 = self."!PREFIX__!subrule"("O", "::=")
+ new $P1207, "ResizablePMCArray"
+ push $P1207, $P1206
+ .return ($P1207)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<,>" :subid("311_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1208_tgt
- .local int rx1208_pos
- .local int rx1208_off
- .local int rx1208_eos
- .local int rx1208_rep
- .local pmc rx1208_cur
- (rx1208_cur, rx1208_pos, rx1208_tgt) = self."!cursor_start"()
- rx1208_cur."!cursor_debug"("START ", "infix:sym<,>")
- .lex unicode:"$\x{a2}", rx1208_cur
- .local pmc match
- .lex "$/", match
- length rx1208_eos, rx1208_tgt
- set rx1208_off, 0
- lt rx1208_pos, 2, rx1208_start
- sub rx1208_off, rx1208_pos, 1
- substr rx1208_tgt, rx1208_tgt, rx1208_off
- rx1208_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1212_done
- goto rxscan1212_scan
- rxscan1212_loop:
- ($P10) = rx1208_cur."from"()
- inc $P10
- set rx1208_pos, $P10
- ge rx1208_pos, rx1208_eos, rxscan1212_done
- rxscan1212_scan:
- set_addr $I10, rxscan1212_loop
- rx1208_cur."!mark_push"(0, rx1208_pos, $I10)
- rxscan1212_done:
-.annotate "line", 520
+.sub "infix:sym<,>" :subid("311_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1211_tgt
+ .local int rx1211_pos
+ .local int rx1211_off
+ .local int rx1211_eos
+ .local int rx1211_rep
+ .local pmc rx1211_cur
+ (rx1211_cur, rx1211_pos, rx1211_tgt) = self."!cursor_start"()
+ rx1211_cur."!cursor_debug"("START ", "infix:sym<,>")
+ .lex unicode:"$\x{a2}", rx1211_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1211_eos, rx1211_tgt
+ set rx1211_off, 0
+ lt rx1211_pos, 2, rx1211_start
+ sub rx1211_off, rx1211_pos, 1
+ substr rx1211_tgt, rx1211_tgt, rx1211_off
+ rx1211_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1215_done
+ goto rxscan1215_scan
+ rxscan1215_loop:
+ ($P10) = rx1211_cur."from"()
+ inc $P10
+ set rx1211_pos, $P10
+ ge rx1211_pos, rx1211_eos, rxscan1215_done
+ rxscan1215_scan:
+ set_addr $I10, rxscan1215_loop
+ rx1211_cur."!mark_push"(0, rx1211_pos, $I10)
+ rxscan1215_done:
+.annotate "line", 524
# rx subcapture "sym"
- set_addr $I10, rxcap_1213_fail
- rx1208_cur."!mark_push"(0, rx1208_pos, $I10)
+ set_addr $I10, rxcap_1216_fail
+ rx1211_cur."!mark_push"(0, rx1211_pos, $I10)
# rx literal ","
- add $I11, rx1208_pos, 1
- gt $I11, rx1208_eos, rx1208_fail
- sub $I11, rx1208_pos, rx1208_off
- substr $S10, rx1208_tgt, $I11, 1
- ne $S10, ",", rx1208_fail
- add rx1208_pos, 1
- set_addr $I10, rxcap_1213_fail
- ($I12, $I11) = rx1208_cur."!mark_peek"($I10)
- rx1208_cur."!cursor_pos"($I11)
- ($P10) = rx1208_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1208_pos, "")
- rx1208_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1211_pos, 1
+ gt $I11, rx1211_eos, rx1211_fail
+ sub $I11, rx1211_pos, rx1211_off
+ substr $S10, rx1211_tgt, $I11, 1
+ ne $S10, ",", rx1211_fail
+ add rx1211_pos, 1
+ set_addr $I10, rxcap_1216_fail
+ ($I12, $I11) = rx1211_cur."!mark_peek"($I10)
+ rx1211_cur."!cursor_pos"($I11)
+ ($P10) = rx1211_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1211_pos, "")
+ rx1211_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1213_done
- rxcap_1213_fail:
- goto rx1208_fail
- rxcap_1213_done:
+ goto rxcap_1216_done
+ rxcap_1216_fail:
+ goto rx1211_fail
+ rxcap_1216_done:
# rx subrule "O" subtype=capture negate=
- rx1208_cur."!cursor_pos"(rx1208_pos)
- $P10 = rx1208_cur."O"("%comma, :pasttype<list>")
- unless $P10, rx1208_fail
- rx1208_cur."!mark_push"(0, -1, 0, $P10)
+ rx1211_cur."!cursor_pos"(rx1211_pos)
+ $P10 = rx1211_cur."O"("%comma, :pasttype<list>")
+ unless $P10, rx1211_fail
+ rx1211_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1208_pos = $P10."pos"()
+ rx1211_pos = $P10."pos"()
# rx pass
- rx1208_cur."!cursor_pass"(rx1208_pos, "infix:sym<,>")
- rx1208_cur."!cursor_debug"("PASS ", "infix:sym<,>", " at pos=", rx1208_pos)
- .return (rx1208_cur)
- rx1208_fail:
-.annotate "line", 417
- (rx1208_rep, rx1208_pos, $I10, $P10) = rx1208_cur."!mark_fail"(0)
- lt rx1208_pos, -1, rx1208_done
- eq rx1208_pos, -1, rx1208_fail
+ rx1211_cur."!cursor_pass"(rx1211_pos, "infix:sym<,>")
+ rx1211_cur."!cursor_debug"("PASS ", "infix:sym<,>", " at pos=", rx1211_pos)
+ .return (rx1211_cur)
+ rx1211_fail:
+.annotate "line", 421
+ (rx1211_rep, rx1211_pos, $I10, $P10) = rx1211_cur."!mark_fail"(0)
+ lt rx1211_pos, -1, rx1211_done
+ eq rx1211_pos, -1, rx1211_fail
jump $I10
- rx1208_done:
- rx1208_cur."!cursor_fail"()
- rx1208_cur."!cursor_debug"("FAIL ", "infix:sym<,>")
- .return (rx1208_cur)
+ rx1211_done:
+ rx1211_cur."!cursor_fail"()
+ rx1211_cur."!cursor_debug"("FAIL ", "infix:sym<,>")
+ .return (rx1211_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<,>" :subid("312_1267204702.05125") :method
-.annotate "line", 417
- $P1210 = self."!PREFIX__!subrule"("O", ",")
- new $P1211, "ResizablePMCArray"
- push $P1211, $P1210
- .return ($P1211)
+.sub "!PREFIX__infix:sym<,>" :subid("312_1271336396.90314") :method
+.annotate "line", 421
+ $P1213 = self."!PREFIX__!subrule"("O", ",")
+ new $P1214, "ResizablePMCArray"
+ push $P1214, $P1213
+ .return ($P1214)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<return>" :subid("313_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .local string rx1215_tgt
- .local int rx1215_pos
- .local int rx1215_off
- .local int rx1215_eos
- .local int rx1215_rep
- .local pmc rx1215_cur
- (rx1215_cur, rx1215_pos, rx1215_tgt) = self."!cursor_start"()
- rx1215_cur."!cursor_debug"("START ", "prefix:sym<return>")
- .lex unicode:"$\x{a2}", rx1215_cur
- .local pmc match
- .lex "$/", match
- length rx1215_eos, rx1215_tgt
- set rx1215_off, 0
- lt rx1215_pos, 2, rx1215_start
- sub rx1215_off, rx1215_pos, 1
- substr rx1215_tgt, rx1215_tgt, rx1215_off
- rx1215_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1218_done
- goto rxscan1218_scan
- rxscan1218_loop:
- ($P10) = rx1215_cur."from"()
- inc $P10
- set rx1215_pos, $P10
- ge rx1215_pos, rx1215_eos, rxscan1218_done
- rxscan1218_scan:
- set_addr $I10, rxscan1218_loop
- rx1215_cur."!mark_push"(0, rx1215_pos, $I10)
- rxscan1218_done:
-.annotate "line", 522
+.sub "prefix:sym<return>" :subid("313_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1218_tgt
+ .local int rx1218_pos
+ .local int rx1218_off
+ .local int rx1218_eos
+ .local int rx1218_rep
+ .local pmc rx1218_cur
+ (rx1218_cur, rx1218_pos, rx1218_tgt) = self."!cursor_start"()
+ rx1218_cur."!cursor_debug"("START ", "prefix:sym<return>")
+ .lex unicode:"$\x{a2}", rx1218_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1218_eos, rx1218_tgt
+ set rx1218_off, 0
+ lt rx1218_pos, 2, rx1218_start
+ sub rx1218_off, rx1218_pos, 1
+ substr rx1218_tgt, rx1218_tgt, rx1218_off
+ rx1218_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1221_done
+ goto rxscan1221_scan
+ rxscan1221_loop:
+ ($P10) = rx1218_cur."from"()
+ inc $P10
+ set rx1218_pos, $P10
+ ge rx1218_pos, rx1218_eos, rxscan1221_done
+ rxscan1221_scan:
+ set_addr $I10, rxscan1221_loop
+ rx1218_cur."!mark_push"(0, rx1218_pos, $I10)
+ rxscan1221_done:
+.annotate "line", 526
# rx subcapture "sym"
- set_addr $I10, rxcap_1219_fail
- rx1215_cur."!mark_push"(0, rx1215_pos, $I10)
+ set_addr $I10, rxcap_1222_fail
+ rx1218_cur."!mark_push"(0, rx1218_pos, $I10)
# rx literal "return"
- add $I11, rx1215_pos, 6
- gt $I11, rx1215_eos, rx1215_fail
- sub $I11, rx1215_pos, rx1215_off
- substr $S10, rx1215_tgt, $I11, 6
- ne $S10, "return", rx1215_fail
- add rx1215_pos, 6
- set_addr $I10, rxcap_1219_fail
- ($I12, $I11) = rx1215_cur."!mark_peek"($I10)
- rx1215_cur."!cursor_pos"($I11)
- ($P10) = rx1215_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1215_pos, "")
- rx1215_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1218_pos, 6
+ gt $I11, rx1218_eos, rx1218_fail
+ sub $I11, rx1218_pos, rx1218_off
+ substr $S10, rx1218_tgt, $I11, 6
+ ne $S10, "return", rx1218_fail
+ add rx1218_pos, 6
+ set_addr $I10, rxcap_1222_fail
+ ($I12, $I11) = rx1218_cur."!mark_peek"($I10)
+ rx1218_cur."!cursor_pos"($I11)
+ ($P10) = rx1218_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1218_pos, "")
+ rx1218_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1219_done
- rxcap_1219_fail:
- goto rx1215_fail
- rxcap_1219_done:
+ goto rxcap_1222_done
+ rxcap_1222_fail:
+ goto rx1218_fail
+ rxcap_1222_done:
# rx charclass s
- ge rx1215_pos, rx1215_eos, rx1215_fail
- sub $I10, rx1215_pos, rx1215_off
- is_cclass $I11, 32, rx1215_tgt, $I10
- unless $I11, rx1215_fail
- inc rx1215_pos
+ ge rx1218_pos, rx1218_eos, rx1218_fail
+ sub $I10, rx1218_pos, rx1218_off
+ is_cclass $I11, 32, rx1218_tgt, $I10
+ unless $I11, rx1218_fail
+ inc rx1218_pos
# rx subrule "O" subtype=capture negate=
- rx1215_cur."!cursor_pos"(rx1215_pos)
- $P10 = rx1215_cur."O"("%list_prefix, :pasttype<return>")
- unless $P10, rx1215_fail
- rx1215_cur."!mark_push"(0, -1, 0, $P10)
+ rx1218_cur."!cursor_pos"(rx1218_pos)
+ $P10 = rx1218_cur."O"("%list_prefix, :pasttype<return>")
+ unless $P10, rx1218_fail
+ rx1218_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1215_pos = $P10."pos"()
+ rx1218_pos = $P10."pos"()
# rx pass
- rx1215_cur."!cursor_pass"(rx1215_pos, "prefix:sym<return>")
- rx1215_cur."!cursor_debug"("PASS ", "prefix:sym<return>", " at pos=", rx1215_pos)
- .return (rx1215_cur)
- rx1215_fail:
-.annotate "line", 417
- (rx1215_rep, rx1215_pos, $I10, $P10) = rx1215_cur."!mark_fail"(0)
- lt rx1215_pos, -1, rx1215_done
- eq rx1215_pos, -1, rx1215_fail
+ rx1218_cur."!cursor_pass"(rx1218_pos, "prefix:sym<return>")
+ rx1218_cur."!cursor_debug"("PASS ", "prefix:sym<return>", " at pos=", rx1218_pos)
+ .return (rx1218_cur)
+ rx1218_fail:
+.annotate "line", 421
+ (rx1218_rep, rx1218_pos, $I10, $P10) = rx1218_cur."!mark_fail"(0)
+ lt rx1218_pos, -1, rx1218_done
+ eq rx1218_pos, -1, rx1218_fail
jump $I10
- rx1215_done:
- rx1215_cur."!cursor_fail"()
- rx1215_cur."!cursor_debug"("FAIL ", "prefix:sym<return>")
- .return (rx1215_cur)
+ rx1218_done:
+ rx1218_cur."!cursor_fail"()
+ rx1218_cur."!cursor_debug"("FAIL ", "prefix:sym<return>")
+ .return (rx1218_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<return>" :subid("314_1267204702.05125") :method
-.annotate "line", 417
- new $P1217, "ResizablePMCArray"
- push $P1217, "return"
- .return ($P1217)
+.sub "!PREFIX__prefix:sym<return>" :subid("314_1271336396.90314") :method
+.annotate "line", 421
+ new $P1220, "ResizablePMCArray"
+ push $P1220, "return"
+ .return ($P1220)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<make>" :subid("315_1267204702.05125") :method :outer("11_1267204702.05125")
-.annotate "line", 417
- .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 ", "prefix:sym<make>")
- .lex unicode:"$\x{a2}", rx1221_cur
- .local pmc match
- .lex "$/", match
- length rx1221_eos, rx1221_tgt
- set rx1221_off, 0
- lt rx1221_pos, 2, rx1221_start
- sub rx1221_off, rx1221_pos, 1
- substr rx1221_tgt, rx1221_tgt, rx1221_off
- rx1221_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1224_done
- goto rxscan1224_scan
- rxscan1224_loop:
- ($P10) = rx1221_cur."from"()
- inc $P10
- set rx1221_pos, $P10
- ge rx1221_pos, rx1221_eos, rxscan1224_done
- rxscan1224_scan:
- set_addr $I10, rxscan1224_loop
- rx1221_cur."!mark_push"(0, rx1221_pos, $I10)
- rxscan1224_done:
-.annotate "line", 523
+.sub "prefix:sym<make>" :subid("315_1271336396.90314") :method :outer("11_1271336396.90314")
+.annotate "line", 421
+ .local string rx1224_tgt
+ .local int rx1224_pos
+ .local int rx1224_off
+ .local int rx1224_eos
+ .local int rx1224_rep
+ .local pmc rx1224_cur
+ (rx1224_cur, rx1224_pos, rx1224_tgt) = self."!cursor_start"()
+ rx1224_cur."!cursor_debug"("START ", "prefix:sym<make>")
+ .lex unicode:"$\x{a2}", rx1224_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1224_eos, rx1224_tgt
+ set rx1224_off, 0
+ lt rx1224_pos, 2, rx1224_start
+ sub rx1224_off, rx1224_pos, 1
+ substr rx1224_tgt, rx1224_tgt, rx1224_off
+ rx1224_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1227_done
+ goto rxscan1227_scan
+ rxscan1227_loop:
+ ($P10) = rx1224_cur."from"()
+ inc $P10
+ set rx1224_pos, $P10
+ ge rx1224_pos, rx1224_eos, rxscan1227_done
+ rxscan1227_scan:
+ set_addr $I10, rxscan1227_loop
+ rx1224_cur."!mark_push"(0, rx1224_pos, $I10)
+ rxscan1227_done:
+.annotate "line", 527
# rx subcapture "sym"
- set_addr $I10, rxcap_1225_fail
- rx1221_cur."!mark_push"(0, rx1221_pos, $I10)
+ set_addr $I10, rxcap_1228_fail
+ rx1224_cur."!mark_push"(0, rx1224_pos, $I10)
# rx literal "make"
- add $I11, rx1221_pos, 4
- gt $I11, rx1221_eos, rx1221_fail
- sub $I11, rx1221_pos, rx1221_off
- substr $S10, rx1221_tgt, $I11, 4
- ne $S10, "make", rx1221_fail
- add rx1221_pos, 4
- set_addr $I10, rxcap_1225_fail
- ($I12, $I11) = rx1221_cur."!mark_peek"($I10)
- rx1221_cur."!cursor_pos"($I11)
- ($P10) = rx1221_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1221_pos, "")
- rx1221_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1224_pos, 4
+ gt $I11, rx1224_eos, rx1224_fail
+ sub $I11, rx1224_pos, rx1224_off
+ substr $S10, rx1224_tgt, $I11, 4
+ ne $S10, "make", rx1224_fail
+ add rx1224_pos, 4
+ set_addr $I10, rxcap_1228_fail
+ ($I12, $I11) = rx1224_cur."!mark_peek"($I10)
+ rx1224_cur."!cursor_pos"($I11)
+ ($P10) = rx1224_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1224_pos, "")
+ rx1224_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1225_done
- rxcap_1225_fail:
- goto rx1221_fail
- rxcap_1225_done:
+ goto rxcap_1228_done
+ rxcap_1228_fail:
+ goto rx1224_fail
+ rxcap_1228_done:
# rx charclass s
- ge rx1221_pos, rx1221_eos, rx1221_fail
- sub $I10, rx1221_pos, rx1221_off
- is_cclass $I11, 32, rx1221_tgt, $I10
- unless $I11, rx1221_fail
- inc rx1221_pos
+ ge rx1224_pos, rx1224_eos, rx1224_fail
+ sub $I10, rx1224_pos, rx1224_off
+ is_cclass $I11, 32, rx1224_tgt, $I10
+ unless $I11, rx1224_fail
+ inc rx1224_pos
# rx subrule "O" subtype=capture negate=
- rx1221_cur."!cursor_pos"(rx1221_pos)
- $P10 = rx1221_cur."O"("%list_prefix")
- unless $P10, rx1221_fail
- rx1221_cur."!mark_push"(0, -1, 0, $P10)
+ rx1224_cur."!cursor_pos"(rx1224_pos)
+ $P10 = rx1224_cur."O"("%list_prefix")
+ unless $P10, rx1224_fail
+ rx1224_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1221_pos = $P10."pos"()
+ rx1224_pos = $P10."pos"()
# rx pass
- rx1221_cur."!cursor_pass"(rx1221_pos, "prefix:sym<make>")
- rx1221_cur."!cursor_debug"("PASS ", "prefix:sym<make>", " at pos=", rx1221_pos)
- .return (rx1221_cur)
- rx1221_fail:
-.annotate "line", 417
- (rx1221_rep, rx1221_pos, $I10, $P10) = rx1221_cur."!mark_fail"(0)
- lt rx1221_pos, -1, rx1221_done
- eq rx1221_pos, -1, rx1221_fail
+ rx1224_cur."!cursor_pass"(rx1224_pos, "prefix:sym<make>")
+ rx1224_cur."!cursor_debug"("PASS ", "prefix:sym<make>", " at pos=", rx1224_pos)
+ .return (rx1224_cur)
+ rx1224_fail:
+.annotate "line", 421
+ (rx1224_rep, rx1224_pos, $I10, $P10) = rx1224_cur."!mark_fail"(0)
+ lt rx1224_pos, -1, rx1224_done
+ eq rx1224_pos, -1, rx1224_fail
jump $I10
- rx1221_done:
- rx1221_cur."!cursor_fail"()
- rx1221_cur."!cursor_debug"("FAIL ", "prefix:sym<make>")
- .return (rx1221_cur)
+ rx1224_done:
+ rx1224_cur."!cursor_fail"()
+ rx1224_cur."!cursor_debug"("FAIL ", "prefix:sym<make>")
+ .return (rx1224_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<make>" :subid("316_1267204702.05125") :method
-.annotate "line", 417
- new $P1223, "ResizablePMCArray"
- push $P1223, "make"
- .return ($P1223)
+.sub "!PREFIX__prefix:sym<make>" :subid("316_1271336396.90314") :method
+.annotate "line", 421
+ new $P1226, "ResizablePMCArray"
+ push $P1226, "make"
+ .return ($P1226)
.end
.namespace ["NQP";"Grammar"]
-.sub "smartmatch" :subid("317_1267204702.05125") :method :outer("11_1267204702.05125")
- .param pmc param_1229
-.annotate "line", 525
- new $P1228, 'ExceptionHandler'
- set_addr $P1228, control_1227
- $P1228."handle_types"(58)
- push_eh $P1228
+.sub "smartmatch" :subid("317_1271336396.90314") :method :outer("11_1271336396.90314")
+ .param pmc param_1232
+.annotate "line", 529
+ new $P1231, 'ExceptionHandler'
+ set_addr $P1231, control_1230
+ $P1231."handle_types"(58)
+ push_eh $P1231
.lex "self", self
- .lex "$/", param_1229
-.annotate "line", 527
- new $P1230, "Undef"
- .lex "$t", $P1230
- find_lex $P1231, "$/"
- unless_null $P1231, vivify_343
- $P1231 = root_new ['parrot';'ResizablePMCArray']
+ .lex "$/", param_1232
+.annotate "line", 531
+ new $P1233, "Undef"
+ .lex "$t", $P1233
+ find_lex $P1234, "$/"
+ unless_null $P1234, vivify_343
+ $P1234 = root_new ['parrot';'ResizablePMCArray']
vivify_343:
- set $P1232, $P1231[0]
- unless_null $P1232, vivify_344
- new $P1232, "Undef"
+ set $P1235, $P1234[0]
+ unless_null $P1235, vivify_344
+ new $P1235, "Undef"
vivify_344:
- store_lex "$t", $P1232
- find_lex $P1233, "$/"
- unless_null $P1233, vivify_345
- $P1233 = root_new ['parrot';'ResizablePMCArray']
+ store_lex "$t", $P1235
+ find_lex $P1236, "$/"
+ unless_null $P1236, vivify_345
+ $P1236 = root_new ['parrot';'ResizablePMCArray']
vivify_345:
- set $P1234, $P1233[1]
- unless_null $P1234, vivify_346
- new $P1234, "Undef"
+ set $P1237, $P1236[1]
+ unless_null $P1237, vivify_346
+ new $P1237, "Undef"
vivify_346:
- find_lex $P1235, "$/"
- unless_null $P1235, vivify_347
- $P1235 = root_new ['parrot';'ResizablePMCArray']
- store_lex "$/", $P1235
+ find_lex $P1238, "$/"
+ unless_null $P1238, vivify_347
+ $P1238 = root_new ['parrot';'ResizablePMCArray']
+ store_lex "$/", $P1238
vivify_347:
- set $P1235[0], $P1234
- find_lex $P1236, "$t"
- find_lex $P1237, "$/"
- unless_null $P1237, vivify_348
- $P1237 = root_new ['parrot';'ResizablePMCArray']
- store_lex "$/", $P1237
+ set $P1238[0], $P1237
+ find_lex $P1239, "$t"
+ find_lex $P1240, "$/"
+ unless_null $P1240, vivify_348
+ $P1240 = root_new ['parrot';'ResizablePMCArray']
+ store_lex "$/", $P1240
vivify_348:
- set $P1237[1], $P1236
-.annotate "line", 525
- .return ($P1236)
- control_1227:
+ set $P1240[1], $P1239
+.annotate "line", 529
+ .return ($P1239)
+ control_1230:
.local pmc exception
.get_results (exception)
- getattribute $P1238, exception, "payload"
- .return ($P1238)
+ getattribute $P1241, exception, "payload"
+ .return ($P1241)
.end
.namespace ["NQP";"Regex"]
-.sub "_block1239" :subid("318_1267204702.05125") :outer("11_1267204702.05125")
-.annotate "line", 531
- .const 'Sub' $P1273 = "329_1267204702.05125"
- capture_lex $P1273
- .const 'Sub' $P1260 = "326_1267204702.05125"
- capture_lex $P1260
- .const 'Sub' $P1255 = "324_1267204702.05125"
- capture_lex $P1255
- .const 'Sub' $P1250 = "322_1267204702.05125"
- capture_lex $P1250
- .const 'Sub' $P1241 = "319_1267204702.05125"
- capture_lex $P1241
- .const 'Sub' $P1273 = "329_1267204702.05125"
- capture_lex $P1273
- .return ($P1273)
+.sub "_block1242" :subid("318_1271336396.90314") :outer("11_1271336396.90314")
+.annotate "line", 535
+ .const 'Sub' $P1276 = "329_1271336396.90314"
+ capture_lex $P1276
+ .const 'Sub' $P1263 = "326_1271336396.90314"
+ capture_lex $P1263
+ .const 'Sub' $P1258 = "324_1271336396.90314"
+ capture_lex $P1258
+ .const 'Sub' $P1253 = "322_1271336396.90314"
+ capture_lex $P1253
+ .const 'Sub' $P1244 = "319_1271336396.90314"
+ capture_lex $P1244
+ .const 'Sub' $P1276 = "329_1271336396.90314"
+ capture_lex $P1276
+ .return ($P1276)
.end
.namespace ["NQP";"Regex"]
-.sub "metachar:sym<:my>" :subid("319_1267204702.05125") :method :outer("318_1267204702.05125")
-.annotate "line", 531
- .const 'Sub' $P1247 = "321_1267204702.05125"
- capture_lex $P1247
- .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 ", "metachar:sym<:my>")
- .lex unicode:"$\x{a2}", rx1242_cur
- .local pmc match
- .lex "$/", match
- length rx1242_eos, rx1242_tgt
- set rx1242_off, 0
- lt rx1242_pos, 2, rx1242_start
- sub rx1242_off, rx1242_pos, 1
- substr rx1242_tgt, rx1242_tgt, rx1242_off
- rx1242_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1245_done
- goto rxscan1245_scan
- rxscan1245_loop:
- ($P10) = rx1242_cur."from"()
- inc $P10
- set rx1242_pos, $P10
- ge rx1242_pos, rx1242_eos, rxscan1245_done
- rxscan1245_scan:
- set_addr $I10, rxscan1245_loop
- rx1242_cur."!mark_push"(0, rx1242_pos, $I10)
- rxscan1245_done:
-.annotate "line", 533
+.sub "metachar:sym<:my>" :subid("319_1271336396.90314") :method :outer("318_1271336396.90314")
+.annotate "line", 535
+ .const 'Sub' $P1250 = "321_1271336396.90314"
+ capture_lex $P1250
+ .local string rx1245_tgt
+ .local int rx1245_pos
+ .local int rx1245_off
+ .local int rx1245_eos
+ .local int rx1245_rep
+ .local pmc rx1245_cur
+ (rx1245_cur, rx1245_pos, rx1245_tgt) = self."!cursor_start"()
+ rx1245_cur."!cursor_debug"("START ", "metachar:sym<:my>")
+ .lex unicode:"$\x{a2}", rx1245_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1245_eos, rx1245_tgt
+ set rx1245_off, 0
+ lt rx1245_pos, 2, rx1245_start
+ sub rx1245_off, rx1245_pos, 1
+ substr rx1245_tgt, rx1245_tgt, rx1245_off
+ rx1245_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1248_done
+ goto rxscan1248_scan
+ rxscan1248_loop:
+ ($P10) = rx1245_cur."from"()
+ inc $P10
+ set rx1245_pos, $P10
+ ge rx1245_pos, rx1245_eos, rxscan1248_done
+ rxscan1248_scan:
+ set_addr $I10, rxscan1248_loop
+ rx1245_cur."!mark_push"(0, rx1245_pos, $I10)
+ rxscan1248_done:
+.annotate "line", 537
# rx literal ":"
- add $I11, rx1242_pos, 1
- gt $I11, rx1242_eos, rx1242_fail
- sub $I11, rx1242_pos, rx1242_off
- substr $S10, rx1242_tgt, $I11, 1
- ne $S10, ":", rx1242_fail
- add rx1242_pos, 1
+ add $I11, rx1245_pos, 1
+ gt $I11, rx1245_eos, rx1245_fail
+ sub $I11, rx1245_pos, rx1245_off
+ substr $S10, rx1245_tgt, $I11, 1
+ ne $S10, ":", rx1245_fail
+ add rx1245_pos, 1
# rx subrule "before" subtype=zerowidth negate=
- rx1242_cur."!cursor_pos"(rx1242_pos)
- .const 'Sub' $P1247 = "321_1267204702.05125"
- capture_lex $P1247
- $P10 = rx1242_cur."before"($P1247)
- unless $P10, rx1242_fail
+ rx1245_cur."!cursor_pos"(rx1245_pos)
+ .const 'Sub' $P1250 = "321_1271336396.90314"
+ capture_lex $P1250
+ $P10 = rx1245_cur."before"($P1250)
+ unless $P10, rx1245_fail
# rx subrule "LANG" subtype=capture negate=
- rx1242_cur."!cursor_pos"(rx1242_pos)
- $P10 = rx1242_cur."LANG"("MAIN", "statement")
- unless $P10, rx1242_fail
- rx1242_cur."!mark_push"(0, -1, 0, $P10)
+ rx1245_cur."!cursor_pos"(rx1245_pos)
+ $P10 = rx1245_cur."LANG"("MAIN", "statement")
+ unless $P10, rx1245_fail
+ rx1245_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement")
- rx1242_pos = $P10."pos"()
+ rx1245_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx1242_cur."!cursor_pos"(rx1242_pos)
- $P10 = rx1242_cur."ws"()
- unless $P10, rx1242_fail
- rx1242_pos = $P10."pos"()
+ rx1245_cur."!cursor_pos"(rx1245_pos)
+ $P10 = rx1245_cur."ws"()
+ unless $P10, rx1245_fail
+ rx1245_pos = $P10."pos"()
# rx literal ";"
- add $I11, rx1242_pos, 1
- gt $I11, rx1242_eos, rx1242_fail
- sub $I11, rx1242_pos, rx1242_off
- substr $S10, rx1242_tgt, $I11, 1
- ne $S10, ";", rx1242_fail
- add rx1242_pos, 1
-.annotate "line", 532
+ add $I11, rx1245_pos, 1
+ gt $I11, rx1245_eos, rx1245_fail
+ sub $I11, rx1245_pos, rx1245_off
+ substr $S10, rx1245_tgt, $I11, 1
+ ne $S10, ";", rx1245_fail
+ add rx1245_pos, 1
+.annotate "line", 536
# rx pass
- rx1242_cur."!cursor_pass"(rx1242_pos, "metachar:sym<:my>")
- rx1242_cur."!cursor_debug"("PASS ", "metachar:sym<:my>", " at pos=", rx1242_pos)
- .return (rx1242_cur)
- rx1242_fail:
-.annotate "line", 531
- (rx1242_rep, rx1242_pos, $I10, $P10) = rx1242_cur."!mark_fail"(0)
- lt rx1242_pos, -1, rx1242_done
- eq rx1242_pos, -1, rx1242_fail
- jump $I10
- rx1242_done:
- rx1242_cur."!cursor_fail"()
- rx1242_cur."!cursor_debug"("FAIL ", "metachar:sym<:my>")
- .return (rx1242_cur)
+ rx1245_cur."!cursor_pass"(rx1245_pos, "metachar:sym<:my>")
+ rx1245_cur."!cursor_debug"("PASS ", "metachar:sym<:my>", " at pos=", rx1245_pos)
+ .return (rx1245_cur)
+ rx1245_fail:
+.annotate "line", 535
+ (rx1245_rep, rx1245_pos, $I10, $P10) = rx1245_cur."!mark_fail"(0)
+ lt rx1245_pos, -1, rx1245_done
+ eq rx1245_pos, -1, rx1245_fail
+ jump $I10
+ rx1245_done:
+ rx1245_cur."!cursor_fail"()
+ rx1245_cur."!cursor_debug"("FAIL ", "metachar:sym<:my>")
+ .return (rx1245_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<:my>" :subid("320_1267204702.05125") :method
-.annotate "line", 531
- new $P1244, "ResizablePMCArray"
- push $P1244, ":"
- .return ($P1244)
-.end
-
-
-.namespace ["NQP";"Regex"]
-.sub "_block1246" :anon :subid("321_1267204702.05125") :method :outer("319_1267204702.05125")
-.annotate "line", 533
- .local string rx1248_tgt
- .local int rx1248_pos
- .local int rx1248_off
- .local int rx1248_eos
- .local int rx1248_rep
- .local pmc rx1248_cur
- (rx1248_cur, rx1248_pos, rx1248_tgt) = self."!cursor_start"()
- rx1248_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx1248_cur
- .local pmc match
- .lex "$/", match
- length rx1248_eos, rx1248_tgt
- set rx1248_off, 0
- lt rx1248_pos, 2, rx1248_start
- sub rx1248_off, rx1248_pos, 1
- substr rx1248_tgt, rx1248_tgt, rx1248_off
- rx1248_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1249_done
- goto rxscan1249_scan
- rxscan1249_loop:
- ($P10) = rx1248_cur."from"()
- inc $P10
- set rx1248_pos, $P10
- ge rx1248_pos, rx1248_eos, rxscan1249_done
- rxscan1249_scan:
- set_addr $I10, rxscan1249_loop
- rx1248_cur."!mark_push"(0, rx1248_pos, $I10)
- rxscan1249_done:
- # rx literal "my"
- add $I11, rx1248_pos, 2
- gt $I11, rx1248_eos, rx1248_fail
- sub $I11, rx1248_pos, rx1248_off
- substr $S10, rx1248_tgt, $I11, 2
- ne $S10, "my", rx1248_fail
- add rx1248_pos, 2
- # rx pass
- rx1248_cur."!cursor_pass"(rx1248_pos, "")
- rx1248_cur."!cursor_debug"("PASS ", "", " at pos=", rx1248_pos)
- .return (rx1248_cur)
- rx1248_fail:
- (rx1248_rep, rx1248_pos, $I10, $P10) = rx1248_cur."!mark_fail"(0)
- lt rx1248_pos, -1, rx1248_done
- eq rx1248_pos, -1, rx1248_fail
- jump $I10
- rx1248_done:
- rx1248_cur."!cursor_fail"()
- rx1248_cur."!cursor_debug"("FAIL ", "")
- .return (rx1248_cur)
- .return ()
+.sub "!PREFIX__metachar:sym<:my>" :subid("320_1271336396.90314") :method
+.annotate "line", 535
+ new $P1247, "ResizablePMCArray"
+ push $P1247, ":"
+ .return ($P1247)
.end
.namespace ["NQP";"Regex"]
-.sub "metachar:sym<{ }>" :subid("322_1267204702.05125") :method :outer("318_1267204702.05125")
-.annotate "line", 531
+.sub "_block1249" :anon :subid("321_1271336396.90314") :method :outer("319_1271336396.90314")
+.annotate "line", 537
.local string rx1251_tgt
.local int rx1251_pos
.local int rx1251_off
@@ -15313,7 +15301,7 @@
.local int rx1251_rep
.local pmc rx1251_cur
(rx1251_cur, rx1251_pos, rx1251_tgt) = self."!cursor_start"()
- rx1251_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
+ rx1251_cur."!cursor_debug"("START ", "")
.lex unicode:"$\x{a2}", rx1251_cur
.local pmc match
.lex "$/", match
@@ -15324,444 +15312,500 @@
substr rx1251_tgt, rx1251_tgt, rx1251_off
rx1251_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan1254_done
- goto rxscan1254_scan
- rxscan1254_loop:
+ ne $I10, -1, rxscan1252_done
+ goto rxscan1252_scan
+ rxscan1252_loop:
($P10) = rx1251_cur."from"()
inc $P10
set rx1251_pos, $P10
- ge rx1251_pos, rx1251_eos, rxscan1254_done
- rxscan1254_scan:
- set_addr $I10, rxscan1254_loop
+ ge rx1251_pos, rx1251_eos, rxscan1252_done
+ rxscan1252_scan:
+ set_addr $I10, rxscan1252_loop
rx1251_cur."!mark_push"(0, rx1251_pos, $I10)
- rxscan1254_done:
-.annotate "line", 537
- # rx enumcharlist negate=0 zerowidth
- ge rx1251_pos, rx1251_eos, rx1251_fail
- sub $I10, rx1251_pos, rx1251_off
- substr $S10, rx1251_tgt, $I10, 1
- index $I11, "{", $S10
- lt $I11, 0, rx1251_fail
- # rx subrule "codeblock" subtype=capture negate=
- rx1251_cur."!cursor_pos"(rx1251_pos)
- $P10 = rx1251_cur."codeblock"()
- unless $P10, rx1251_fail
- rx1251_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("codeblock")
- rx1251_pos = $P10."pos"()
-.annotate "line", 536
+ rxscan1252_done:
+ # rx literal "my"
+ add $I11, rx1251_pos, 2
+ gt $I11, rx1251_eos, rx1251_fail
+ sub $I11, rx1251_pos, rx1251_off
+ substr $S10, rx1251_tgt, $I11, 2
+ ne $S10, "my", rx1251_fail
+ add rx1251_pos, 2
# rx pass
- rx1251_cur."!cursor_pass"(rx1251_pos, "metachar:sym<{ }>")
- rx1251_cur."!cursor_debug"("PASS ", "metachar:sym<{ }>", " at pos=", rx1251_pos)
+ rx1251_cur."!cursor_pass"(rx1251_pos, "")
+ rx1251_cur."!cursor_debug"("PASS ", "", " at pos=", rx1251_pos)
.return (rx1251_cur)
rx1251_fail:
-.annotate "line", 531
(rx1251_rep, rx1251_pos, $I10, $P10) = rx1251_cur."!mark_fail"(0)
lt rx1251_pos, -1, rx1251_done
eq rx1251_pos, -1, rx1251_fail
jump $I10
rx1251_done:
rx1251_cur."!cursor_fail"()
- rx1251_cur."!cursor_debug"("FAIL ", "metachar:sym<{ }>")
+ rx1251_cur."!cursor_debug"("FAIL ", "")
.return (rx1251_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<{ }>" :subid("323_1267204702.05125") :method
-.annotate "line", 531
- new $P1253, "ResizablePMCArray"
- push $P1253, "{"
- .return ($P1253)
+.sub "metachar:sym<{ }>" :subid("322_1271336396.90314") :method :outer("318_1271336396.90314")
+.annotate "line", 535
+ .local string rx1254_tgt
+ .local int rx1254_pos
+ .local int rx1254_off
+ .local int rx1254_eos
+ .local int rx1254_rep
+ .local pmc rx1254_cur
+ (rx1254_cur, rx1254_pos, rx1254_tgt) = self."!cursor_start"()
+ rx1254_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
+ .lex unicode:"$\x{a2}", rx1254_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1254_eos, rx1254_tgt
+ set rx1254_off, 0
+ lt rx1254_pos, 2, rx1254_start
+ sub rx1254_off, rx1254_pos, 1
+ substr rx1254_tgt, rx1254_tgt, rx1254_off
+ rx1254_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1257_done
+ goto rxscan1257_scan
+ rxscan1257_loop:
+ ($P10) = rx1254_cur."from"()
+ inc $P10
+ set rx1254_pos, $P10
+ ge rx1254_pos, rx1254_eos, rxscan1257_done
+ rxscan1257_scan:
+ set_addr $I10, rxscan1257_loop
+ rx1254_cur."!mark_push"(0, rx1254_pos, $I10)
+ rxscan1257_done:
+.annotate "line", 541
+ # rx enumcharlist negate=0 zerowidth
+ ge rx1254_pos, rx1254_eos, rx1254_fail
+ sub $I10, rx1254_pos, rx1254_off
+ substr $S10, rx1254_tgt, $I10, 1
+ index $I11, "{", $S10
+ lt $I11, 0, rx1254_fail
+ # rx subrule "codeblock" subtype=capture negate=
+ rx1254_cur."!cursor_pos"(rx1254_pos)
+ $P10 = rx1254_cur."codeblock"()
+ unless $P10, rx1254_fail
+ rx1254_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("codeblock")
+ rx1254_pos = $P10."pos"()
+.annotate "line", 540
+ # rx pass
+ rx1254_cur."!cursor_pass"(rx1254_pos, "metachar:sym<{ }>")
+ rx1254_cur."!cursor_debug"("PASS ", "metachar:sym<{ }>", " at pos=", rx1254_pos)
+ .return (rx1254_cur)
+ rx1254_fail:
+.annotate "line", 535
+ (rx1254_rep, rx1254_pos, $I10, $P10) = rx1254_cur."!mark_fail"(0)
+ lt rx1254_pos, -1, rx1254_done
+ eq rx1254_pos, -1, rx1254_fail
+ jump $I10
+ rx1254_done:
+ rx1254_cur."!cursor_fail"()
+ rx1254_cur."!cursor_debug"("FAIL ", "metachar:sym<{ }>")
+ .return (rx1254_cur)
+ .return ()
.end
.namespace ["NQP";"Regex"]
-.sub "assertion:sym<{ }>" :subid("324_1267204702.05125") :method :outer("318_1267204702.05125")
-.annotate "line", 531
- .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 ", "assertion:sym<{ }>")
- .lex unicode:"$\x{a2}", rx1256_cur
- .local pmc match
- .lex "$/", match
- length rx1256_eos, rx1256_tgt
- set rx1256_off, 0
- lt rx1256_pos, 2, rx1256_start
- sub rx1256_off, rx1256_pos, 1
- substr rx1256_tgt, rx1256_tgt, rx1256_off
- rx1256_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1259_done
- goto rxscan1259_scan
- rxscan1259_loop:
- ($P10) = rx1256_cur."from"()
- inc $P10
- set rx1256_pos, $P10
- ge rx1256_pos, rx1256_eos, rxscan1259_done
- rxscan1259_scan:
- set_addr $I10, rxscan1259_loop
- rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
- rxscan1259_done:
-.annotate "line", 541
+.sub "!PREFIX__metachar:sym<{ }>" :subid("323_1271336396.90314") :method
+.annotate "line", 535
+ new $P1256, "ResizablePMCArray"
+ push $P1256, "{"
+ .return ($P1256)
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "assertion:sym<{ }>" :subid("324_1271336396.90314") :method :outer("318_1271336396.90314")
+.annotate "line", 535
+ .local string rx1259_tgt
+ .local int rx1259_pos
+ .local int rx1259_off
+ .local int rx1259_eos
+ .local int rx1259_rep
+ .local pmc rx1259_cur
+ (rx1259_cur, rx1259_pos, rx1259_tgt) = self."!cursor_start"()
+ rx1259_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
+ .lex unicode:"$\x{a2}", rx1259_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1259_eos, rx1259_tgt
+ set rx1259_off, 0
+ lt rx1259_pos, 2, rx1259_start
+ sub rx1259_off, rx1259_pos, 1
+ substr rx1259_tgt, rx1259_tgt, rx1259_off
+ rx1259_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1262_done
+ goto rxscan1262_scan
+ rxscan1262_loop:
+ ($P10) = rx1259_cur."from"()
+ inc $P10
+ set rx1259_pos, $P10
+ ge rx1259_pos, rx1259_eos, rxscan1262_done
+ rxscan1262_scan:
+ set_addr $I10, rxscan1262_loop
+ rx1259_cur."!mark_push"(0, rx1259_pos, $I10)
+ rxscan1262_done:
+.annotate "line", 545
# rx enumcharlist negate=0 zerowidth
- ge rx1256_pos, rx1256_eos, rx1256_fail
- sub $I10, rx1256_pos, rx1256_off
- substr $S10, rx1256_tgt, $I10, 1
+ ge rx1259_pos, rx1259_eos, rx1259_fail
+ sub $I10, rx1259_pos, rx1259_off
+ substr $S10, rx1259_tgt, $I10, 1
index $I11, "{", $S10
- lt $I11, 0, rx1256_fail
+ lt $I11, 0, rx1259_fail
# rx subrule "codeblock" subtype=capture negate=
- rx1256_cur."!cursor_pos"(rx1256_pos)
- $P10 = rx1256_cur."codeblock"()
- unless $P10, rx1256_fail
- rx1256_cur."!mark_push"(0, -1, 0, $P10)
+ rx1259_cur."!cursor_pos"(rx1259_pos)
+ $P10 = rx1259_cur."codeblock"()
+ unless $P10, rx1259_fail
+ rx1259_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("codeblock")
- rx1256_pos = $P10."pos"()
-.annotate "line", 540
+ rx1259_pos = $P10."pos"()
+.annotate "line", 544
# rx pass
- rx1256_cur."!cursor_pass"(rx1256_pos, "assertion:sym<{ }>")
- rx1256_cur."!cursor_debug"("PASS ", "assertion:sym<{ }>", " at pos=", rx1256_pos)
- .return (rx1256_cur)
- rx1256_fail:
-.annotate "line", 531
- (rx1256_rep, rx1256_pos, $I10, $P10) = rx1256_cur."!mark_fail"(0)
- lt rx1256_pos, -1, rx1256_done
- eq rx1256_pos, -1, rx1256_fail
- jump $I10
- rx1256_done:
- rx1256_cur."!cursor_fail"()
- rx1256_cur."!cursor_debug"("FAIL ", "assertion:sym<{ }>")
- .return (rx1256_cur)
+ rx1259_cur."!cursor_pass"(rx1259_pos, "assertion:sym<{ }>")
+ rx1259_cur."!cursor_debug"("PASS ", "assertion:sym<{ }>", " at pos=", rx1259_pos)
+ .return (rx1259_cur)
+ rx1259_fail:
+.annotate "line", 535
+ (rx1259_rep, rx1259_pos, $I10, $P10) = rx1259_cur."!mark_fail"(0)
+ lt rx1259_pos, -1, rx1259_done
+ eq rx1259_pos, -1, rx1259_fail
+ jump $I10
+ rx1259_done:
+ rx1259_cur."!cursor_fail"()
+ rx1259_cur."!cursor_debug"("FAIL ", "assertion:sym<{ }>")
+ .return (rx1259_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<{ }>" :subid("325_1267204702.05125") :method
-.annotate "line", 531
- new $P1258, "ResizablePMCArray"
- push $P1258, "{"
- .return ($P1258)
+.sub "!PREFIX__assertion:sym<{ }>" :subid("325_1271336396.90314") :method
+.annotate "line", 535
+ new $P1261, "ResizablePMCArray"
+ push $P1261, "{"
+ .return ($P1261)
.end
.namespace ["NQP";"Regex"]
-.sub "assertion:sym<name>" :subid("326_1267204702.05125") :method :outer("318_1267204702.05125")
-.annotate "line", 531
- .const 'Sub' $P1269 = "328_1267204702.05125"
- capture_lex $P1269
- .local string rx1261_tgt
- .local int rx1261_pos
- .local int rx1261_off
- .local int rx1261_eos
- .local int rx1261_rep
- .local pmc rx1261_cur
- (rx1261_cur, rx1261_pos, rx1261_tgt) = self."!cursor_start"()
- rx1261_cur."!cursor_debug"("START ", "assertion:sym<name>")
- rx1261_cur."!cursor_caparray"("assertion", "nibbler", "arglist")
- .lex unicode:"$\x{a2}", rx1261_cur
- .local pmc match
- .lex "$/", match
- length rx1261_eos, rx1261_tgt
- set rx1261_off, 0
- lt rx1261_pos, 2, rx1261_start
- sub rx1261_off, rx1261_pos, 1
- substr rx1261_tgt, rx1261_tgt, rx1261_off
- rx1261_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1264_done
- goto rxscan1264_scan
- rxscan1264_loop:
- ($P10) = rx1261_cur."from"()
- inc $P10
- set rx1261_pos, $P10
- ge rx1261_pos, rx1261_eos, rxscan1264_done
- rxscan1264_scan:
- set_addr $I10, rxscan1264_loop
- rx1261_cur."!mark_push"(0, rx1261_pos, $I10)
- rxscan1264_done:
-.annotate "line", 545
+.sub "assertion:sym<name>" :subid("326_1271336396.90314") :method :outer("318_1271336396.90314")
+.annotate "line", 535
+ .const 'Sub' $P1272 = "328_1271336396.90314"
+ capture_lex $P1272
+ .local string rx1264_tgt
+ .local int rx1264_pos
+ .local int rx1264_off
+ .local int rx1264_eos
+ .local int rx1264_rep
+ .local pmc rx1264_cur
+ (rx1264_cur, rx1264_pos, rx1264_tgt) = self."!cursor_start"()
+ rx1264_cur."!cursor_debug"("START ", "assertion:sym<name>")
+ rx1264_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+ .lex unicode:"$\x{a2}", rx1264_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1264_eos, rx1264_tgt
+ set rx1264_off, 0
+ lt rx1264_pos, 2, rx1264_start
+ sub rx1264_off, rx1264_pos, 1
+ substr rx1264_tgt, rx1264_tgt, rx1264_off
+ rx1264_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1267_done
+ goto rxscan1267_scan
+ rxscan1267_loop:
+ ($P10) = rx1264_cur."from"()
+ inc $P10
+ set rx1264_pos, $P10
+ ge rx1264_pos, rx1264_eos, rxscan1267_done
+ rxscan1267_scan:
+ set_addr $I10, rxscan1267_loop
+ rx1264_cur."!mark_push"(0, rx1264_pos, $I10)
+ rxscan1267_done:
+.annotate "line", 549
# rx subcapture "longname"
- set_addr $I10, rxcap_1265_fail
- rx1261_cur."!mark_push"(0, rx1261_pos, $I10)
+ set_addr $I10, rxcap_1268_fail
+ rx1264_cur."!mark_push"(0, rx1264_pos, $I10)
# rx charclass_q w r 1..-1
- sub $I10, rx1261_pos, rx1261_off
- find_not_cclass $I11, 8192, rx1261_tgt, $I10, rx1261_eos
+ sub $I10, rx1264_pos, rx1264_off
+ find_not_cclass $I11, 8192, rx1264_tgt, $I10, rx1264_eos
add $I12, $I10, 1
- lt $I11, $I12, rx1261_fail
- add rx1261_pos, rx1261_off, $I11
- set_addr $I10, rxcap_1265_fail
- ($I12, $I11) = rx1261_cur."!mark_peek"($I10)
- rx1261_cur."!cursor_pos"($I11)
- ($P10) = rx1261_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1261_pos, "")
- rx1261_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, rx1264_fail
+ add rx1264_pos, rx1264_off, $I11
+ set_addr $I10, rxcap_1268_fail
+ ($I12, $I11) = rx1264_cur."!mark_peek"($I10)
+ rx1264_cur."!cursor_pos"($I11)
+ ($P10) = rx1264_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1264_pos, "")
+ rx1264_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("longname")
- goto rxcap_1265_done
- rxcap_1265_fail:
- goto rx1261_fail
- rxcap_1265_done:
-.annotate "line", 552
- # rx rxquantr1266 ** 0..1
- set_addr $I1272, rxquantr1266_done
- rx1261_cur."!mark_push"(0, rx1261_pos, $I1272)
- rxquantr1266_loop:
- alt1267_0:
-.annotate "line", 546
- set_addr $I10, alt1267_1
- rx1261_cur."!mark_push"(0, rx1261_pos, $I10)
-.annotate "line", 547
+ goto rxcap_1268_done
+ rxcap_1268_fail:
+ goto rx1264_fail
+ rxcap_1268_done:
+.annotate "line", 556
+ # rx rxquantr1269 ** 0..1
+ set_addr $I1275, rxquantr1269_done
+ rx1264_cur."!mark_push"(0, rx1264_pos, $I1275)
+ rxquantr1269_loop:
+ alt1270_0:
+.annotate "line", 550
+ set_addr $I10, alt1270_1
+ rx1264_cur."!mark_push"(0, rx1264_pos, $I10)
+.annotate "line", 551
# rx subrule "before" subtype=zerowidth negate=
- rx1261_cur."!cursor_pos"(rx1261_pos)
- .const 'Sub' $P1269 = "328_1267204702.05125"
- capture_lex $P1269
- $P10 = rx1261_cur."before"($P1269)
- unless $P10, rx1261_fail
- goto alt1267_end
- alt1267_1:
- set_addr $I10, alt1267_2
- rx1261_cur."!mark_push"(0, rx1261_pos, $I10)
-.annotate "line", 548
+ rx1264_cur."!cursor_pos"(rx1264_pos)
+ .const 'Sub' $P1272 = "328_1271336396.90314"
+ capture_lex $P1272
+ $P10 = rx1264_cur."before"($P1272)
+ unless $P10, rx1264_fail
+ goto alt1270_end
+ alt1270_1:
+ set_addr $I10, alt1270_2
+ rx1264_cur."!mark_push"(0, rx1264_pos, $I10)
+.annotate "line", 552
# rx literal "="
- add $I11, rx1261_pos, 1
- gt $I11, rx1261_eos, rx1261_fail
- sub $I11, rx1261_pos, rx1261_off
- substr $S10, rx1261_tgt, $I11, 1
- ne $S10, "=", rx1261_fail
- add rx1261_pos, 1
+ add $I11, rx1264_pos, 1
+ gt $I11, rx1264_eos, rx1264_fail
+ sub $I11, rx1264_pos, rx1264_off
+ substr $S10, rx1264_tgt, $I11, 1
+ ne $S10, "=", rx1264_fail
+ add rx1264_pos, 1
# rx subrule "assertion" subtype=capture negate=
- rx1261_cur."!cursor_pos"(rx1261_pos)
- $P10 = rx1261_cur."assertion"()
- unless $P10, rx1261_fail
- rx1261_cur."!mark_push"(0, -1, 0, $P10)
+ rx1264_cur."!cursor_pos"(rx1264_pos)
+ $P10 = rx1264_cur."assertion"()
+ unless $P10, rx1264_fail
+ rx1264_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("assertion")
- rx1261_pos = $P10."pos"()
- goto alt1267_end
- alt1267_2:
- set_addr $I10, alt1267_3
- rx1261_cur."!mark_push"(0, rx1261_pos, $I10)
-.annotate "line", 549
+ rx1264_pos = $P10."pos"()
+ goto alt1270_end
+ alt1270_2:
+ set_addr $I10, alt1270_3
+ rx1264_cur."!mark_push"(0, rx1264_pos, $I10)
+.annotate "line", 553
# rx literal ":"
- add $I11, rx1261_pos, 1
- gt $I11, rx1261_eos, rx1261_fail
- sub $I11, rx1261_pos, rx1261_off
- substr $S10, rx1261_tgt, $I11, 1
- ne $S10, ":", rx1261_fail
- add rx1261_pos, 1
+ add $I11, rx1264_pos, 1
+ gt $I11, rx1264_eos, rx1264_fail
+ sub $I11, rx1264_pos, rx1264_off
+ substr $S10, rx1264_tgt, $I11, 1
+ ne $S10, ":", rx1264_fail
+ add rx1264_pos, 1
# rx subrule "arglist" subtype=capture negate=
- rx1261_cur."!cursor_pos"(rx1261_pos)
- $P10 = rx1261_cur."arglist"()
- unless $P10, rx1261_fail
- rx1261_cur."!mark_push"(0, -1, 0, $P10)
+ rx1264_cur."!cursor_pos"(rx1264_pos)
+ $P10 = rx1264_cur."arglist"()
+ unless $P10, rx1264_fail
+ rx1264_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("arglist")
- rx1261_pos = $P10."pos"()
- goto alt1267_end
- alt1267_3:
- set_addr $I10, alt1267_4
- rx1261_cur."!mark_push"(0, rx1261_pos, $I10)
-.annotate "line", 550
+ rx1264_pos = $P10."pos"()
+ goto alt1270_end
+ alt1270_3:
+ set_addr $I10, alt1270_4
+ rx1264_cur."!mark_push"(0, rx1264_pos, $I10)
+.annotate "line", 554
# rx literal "("
- add $I11, rx1261_pos, 1
- gt $I11, rx1261_eos, rx1261_fail
- sub $I11, rx1261_pos, rx1261_off
- substr $S10, rx1261_tgt, $I11, 1
- ne $S10, "(", rx1261_fail
- add rx1261_pos, 1
+ add $I11, rx1264_pos, 1
+ gt $I11, rx1264_eos, rx1264_fail
+ sub $I11, rx1264_pos, rx1264_off
+ substr $S10, rx1264_tgt, $I11, 1
+ ne $S10, "(", rx1264_fail
+ add rx1264_pos, 1
# rx subrule "LANG" subtype=capture negate=
- rx1261_cur."!cursor_pos"(rx1261_pos)
- $P10 = rx1261_cur."LANG"("MAIN", "arglist")
- unless $P10, rx1261_fail
- rx1261_cur."!mark_push"(0, -1, 0, $P10)
+ rx1264_cur."!cursor_pos"(rx1264_pos)
+ $P10 = rx1264_cur."LANG"("MAIN", "arglist")
+ unless $P10, rx1264_fail
+ rx1264_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("arglist")
- rx1261_pos = $P10."pos"()
+ rx1264_pos = $P10."pos"()
# rx literal ")"
- add $I11, rx1261_pos, 1
- gt $I11, rx1261_eos, rx1261_fail
- sub $I11, rx1261_pos, rx1261_off
- substr $S10, rx1261_tgt, $I11, 1
- ne $S10, ")", rx1261_fail
- add rx1261_pos, 1
- goto alt1267_end
- alt1267_4:
-.annotate "line", 551
+ add $I11, rx1264_pos, 1
+ gt $I11, rx1264_eos, rx1264_fail
+ sub $I11, rx1264_pos, rx1264_off
+ substr $S10, rx1264_tgt, $I11, 1
+ ne $S10, ")", rx1264_fail
+ add rx1264_pos, 1
+ goto alt1270_end
+ alt1270_4:
+.annotate "line", 555
# rx subrule "normspace" subtype=method negate=
- rx1261_cur."!cursor_pos"(rx1261_pos)
- $P10 = rx1261_cur."normspace"()
- unless $P10, rx1261_fail
- rx1261_pos = $P10."pos"()
+ rx1264_cur."!cursor_pos"(rx1264_pos)
+ $P10 = rx1264_cur."normspace"()
+ unless $P10, rx1264_fail
+ rx1264_pos = $P10."pos"()
# rx subrule "nibbler" subtype=capture negate=
- rx1261_cur."!cursor_pos"(rx1261_pos)
- $P10 = rx1261_cur."nibbler"()
- unless $P10, rx1261_fail
- rx1261_cur."!mark_push"(0, -1, 0, $P10)
+ rx1264_cur."!cursor_pos"(rx1264_pos)
+ $P10 = rx1264_cur."nibbler"()
+ unless $P10, rx1264_fail
+ rx1264_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("nibbler")
- rx1261_pos = $P10."pos"()
- alt1267_end:
-.annotate "line", 552
- (rx1261_rep) = rx1261_cur."!mark_commit"($I1272)
- rxquantr1266_done:
-.annotate "line", 544
+ rx1264_pos = $P10."pos"()
+ alt1270_end:
+.annotate "line", 556
+ (rx1264_rep) = rx1264_cur."!mark_commit"($I1275)
+ rxquantr1269_done:
+.annotate "line", 548
# rx pass
- rx1261_cur."!cursor_pass"(rx1261_pos, "assertion:sym<name>")
- rx1261_cur."!cursor_debug"("PASS ", "assertion:sym<name>", " at pos=", rx1261_pos)
- .return (rx1261_cur)
- rx1261_fail:
-.annotate "line", 531
- (rx1261_rep, rx1261_pos, $I10, $P10) = rx1261_cur."!mark_fail"(0)
- lt rx1261_pos, -1, rx1261_done
- eq rx1261_pos, -1, rx1261_fail
- jump $I10
- rx1261_done:
- rx1261_cur."!cursor_fail"()
- rx1261_cur."!cursor_debug"("FAIL ", "assertion:sym<name>")
- .return (rx1261_cur)
+ rx1264_cur."!cursor_pass"(rx1264_pos, "assertion:sym<name>")
+ rx1264_cur."!cursor_debug"("PASS ", "assertion:sym<name>", " at pos=", rx1264_pos)
+ .return (rx1264_cur)
+ rx1264_fail:
+.annotate "line", 535
+ (rx1264_rep, rx1264_pos, $I10, $P10) = rx1264_cur."!mark_fail"(0)
+ lt rx1264_pos, -1, rx1264_done
+ eq rx1264_pos, -1, rx1264_fail
+ jump $I10
+ rx1264_done:
+ rx1264_cur."!cursor_fail"()
+ rx1264_cur."!cursor_debug"("FAIL ", "assertion:sym<name>")
+ .return (rx1264_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<name>" :subid("327_1267204702.05125") :method
-.annotate "line", 531
- new $P1263, "ResizablePMCArray"
- push $P1263, ""
- .return ($P1263)
+.sub "!PREFIX__assertion:sym<name>" :subid("327_1271336396.90314") :method
+.annotate "line", 535
+ new $P1266, "ResizablePMCArray"
+ push $P1266, ""
+ .return ($P1266)
.end
.namespace ["NQP";"Regex"]
-.sub "_block1268" :anon :subid("328_1267204702.05125") :method :outer("326_1267204702.05125")
-.annotate "line", 547
- .local string rx1270_tgt
- .local int rx1270_pos
- .local int rx1270_off
- .local int rx1270_eos
- .local int rx1270_rep
- .local pmc rx1270_cur
- (rx1270_cur, rx1270_pos, rx1270_tgt) = self."!cursor_start"()
- rx1270_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx1270_cur
- .local pmc match
- .lex "$/", match
- length rx1270_eos, rx1270_tgt
- set rx1270_off, 0
- lt rx1270_pos, 2, rx1270_start
- sub rx1270_off, rx1270_pos, 1
- substr rx1270_tgt, rx1270_tgt, rx1270_off
- rx1270_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1271_done
- goto rxscan1271_scan
- rxscan1271_loop:
- ($P10) = rx1270_cur."from"()
- inc $P10
- set rx1270_pos, $P10
- ge rx1270_pos, rx1270_eos, rxscan1271_done
- rxscan1271_scan:
- set_addr $I10, rxscan1271_loop
- rx1270_cur."!mark_push"(0, rx1270_pos, $I10)
- rxscan1271_done:
+.sub "_block1271" :anon :subid("328_1271336396.90314") :method :outer("326_1271336396.90314")
+.annotate "line", 551
+ .local string rx1273_tgt
+ .local int rx1273_pos
+ .local int rx1273_off
+ .local int rx1273_eos
+ .local int rx1273_rep
+ .local pmc rx1273_cur
+ (rx1273_cur, rx1273_pos, rx1273_tgt) = self."!cursor_start"()
+ rx1273_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx1273_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1273_eos, rx1273_tgt
+ set rx1273_off, 0
+ lt rx1273_pos, 2, rx1273_start
+ sub rx1273_off, rx1273_pos, 1
+ substr rx1273_tgt, rx1273_tgt, rx1273_off
+ rx1273_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1274_done
+ goto rxscan1274_scan
+ rxscan1274_loop:
+ ($P10) = rx1273_cur."from"()
+ inc $P10
+ set rx1273_pos, $P10
+ ge rx1273_pos, rx1273_eos, rxscan1274_done
+ rxscan1274_scan:
+ set_addr $I10, rxscan1274_loop
+ rx1273_cur."!mark_push"(0, rx1273_pos, $I10)
+ rxscan1274_done:
# rx literal ">"
- add $I11, rx1270_pos, 1
- gt $I11, rx1270_eos, rx1270_fail
- sub $I11, rx1270_pos, rx1270_off
- substr $S10, rx1270_tgt, $I11, 1
- ne $S10, ">", rx1270_fail
- add rx1270_pos, 1
- # rx pass
- rx1270_cur."!cursor_pass"(rx1270_pos, "")
- rx1270_cur."!cursor_debug"("PASS ", "", " at pos=", rx1270_pos)
- .return (rx1270_cur)
- rx1270_fail:
- (rx1270_rep, rx1270_pos, $I10, $P10) = rx1270_cur."!mark_fail"(0)
- lt rx1270_pos, -1, rx1270_done
- eq rx1270_pos, -1, rx1270_fail
- jump $I10
- rx1270_done:
- rx1270_cur."!cursor_fail"()
- rx1270_cur."!cursor_debug"("FAIL ", "")
- .return (rx1270_cur)
+ add $I11, rx1273_pos, 1
+ gt $I11, rx1273_eos, rx1273_fail
+ sub $I11, rx1273_pos, rx1273_off
+ substr $S10, rx1273_tgt, $I11, 1
+ ne $S10, ">", rx1273_fail
+ add rx1273_pos, 1
+ # rx pass
+ rx1273_cur."!cursor_pass"(rx1273_pos, "")
+ rx1273_cur."!cursor_debug"("PASS ", "", " at pos=", rx1273_pos)
+ .return (rx1273_cur)
+ rx1273_fail:
+ (rx1273_rep, rx1273_pos, $I10, $P10) = rx1273_cur."!mark_fail"(0)
+ lt rx1273_pos, -1, rx1273_done
+ eq rx1273_pos, -1, rx1273_fail
+ jump $I10
+ rx1273_done:
+ rx1273_cur."!cursor_fail"()
+ rx1273_cur."!cursor_debug"("FAIL ", "")
+ .return (rx1273_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "codeblock" :subid("329_1267204702.05125") :method :outer("318_1267204702.05125")
-.annotate "line", 531
- .local string rx1274_tgt
- .local int rx1274_pos
- .local int rx1274_off
- .local int rx1274_eos
- .local int rx1274_rep
- .local pmc rx1274_cur
- (rx1274_cur, rx1274_pos, rx1274_tgt) = self."!cursor_start"()
- rx1274_cur."!cursor_debug"("START ", "codeblock")
- .lex unicode:"$\x{a2}", rx1274_cur
- .local pmc match
- .lex "$/", match
- length rx1274_eos, rx1274_tgt
- set rx1274_off, 0
- lt rx1274_pos, 2, rx1274_start
- sub rx1274_off, rx1274_pos, 1
- substr rx1274_tgt, rx1274_tgt, rx1274_off
- rx1274_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1278_done
- goto rxscan1278_scan
- rxscan1278_loop:
- ($P10) = rx1274_cur."from"()
- inc $P10
- set rx1274_pos, $P10
- ge rx1274_pos, rx1274_eos, rxscan1278_done
- rxscan1278_scan:
- set_addr $I10, rxscan1278_loop
- rx1274_cur."!mark_push"(0, rx1274_pos, $I10)
- rxscan1278_done:
-.annotate "line", 557
+.sub "codeblock" :subid("329_1271336396.90314") :method :outer("318_1271336396.90314")
+.annotate "line", 535
+ .local string rx1277_tgt
+ .local int rx1277_pos
+ .local int rx1277_off
+ .local int rx1277_eos
+ .local int rx1277_rep
+ .local pmc rx1277_cur
+ (rx1277_cur, rx1277_pos, rx1277_tgt) = self."!cursor_start"()
+ rx1277_cur."!cursor_debug"("START ", "codeblock")
+ .lex unicode:"$\x{a2}", rx1277_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1277_eos, rx1277_tgt
+ set rx1277_off, 0
+ lt rx1277_pos, 2, rx1277_start
+ sub rx1277_off, rx1277_pos, 1
+ substr rx1277_tgt, rx1277_tgt, rx1277_off
+ rx1277_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1281_done
+ goto rxscan1281_scan
+ rxscan1281_loop:
+ ($P10) = rx1277_cur."from"()
+ inc $P10
+ set rx1277_pos, $P10
+ ge rx1277_pos, rx1277_eos, rxscan1281_done
+ rxscan1281_scan:
+ set_addr $I10, rxscan1281_loop
+ rx1277_cur."!mark_push"(0, rx1277_pos, $I10)
+ rxscan1281_done:
+.annotate "line", 561
# rx subrule "LANG" subtype=capture negate=
- rx1274_cur."!cursor_pos"(rx1274_pos)
- $P10 = rx1274_cur."LANG"("MAIN", "pblock")
- unless $P10, rx1274_fail
- rx1274_cur."!mark_push"(0, -1, 0, $P10)
+ rx1277_cur."!cursor_pos"(rx1277_pos)
+ $P10 = rx1277_cur."LANG"("MAIN", "pblock")
+ unless $P10, rx1277_fail
+ rx1277_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("block")
- rx1274_pos = $P10."pos"()
-.annotate "line", 556
+ rx1277_pos = $P10."pos"()
+.annotate "line", 560
# rx pass
- rx1274_cur."!cursor_pass"(rx1274_pos, "codeblock")
- rx1274_cur."!cursor_debug"("PASS ", "codeblock", " at pos=", rx1274_pos)
- .return (rx1274_cur)
- rx1274_fail:
-.annotate "line", 531
- (rx1274_rep, rx1274_pos, $I10, $P10) = rx1274_cur."!mark_fail"(0)
- lt rx1274_pos, -1, rx1274_done
- eq rx1274_pos, -1, rx1274_fail
- jump $I10
- rx1274_done:
- rx1274_cur."!cursor_fail"()
- rx1274_cur."!cursor_debug"("FAIL ", "codeblock")
- .return (rx1274_cur)
+ rx1277_cur."!cursor_pass"(rx1277_pos, "codeblock")
+ rx1277_cur."!cursor_debug"("PASS ", "codeblock", " at pos=", rx1277_pos)
+ .return (rx1277_cur)
+ rx1277_fail:
+.annotate "line", 535
+ (rx1277_rep, rx1277_pos, $I10, $P10) = rx1277_cur."!mark_fail"(0)
+ lt rx1277_pos, -1, rx1277_done
+ eq rx1277_pos, -1, rx1277_fail
+ jump $I10
+ rx1277_done:
+ rx1277_cur."!cursor_fail"()
+ rx1277_cur."!cursor_debug"("FAIL ", "codeblock")
+ .return (rx1277_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__codeblock" :subid("330_1267204702.05125") :method
-.annotate "line", 531
- $P1276 = self."!PREFIX__!subrule"("block", "")
- new $P1277, "ResizablePMCArray"
- push $P1277, $P1276
- .return ($P1277)
+.sub "!PREFIX__codeblock" :subid("330_1271336396.90314") :method
+.annotate "line", 535
+ $P1279 = self."!PREFIX__!subrule"("block", "")
+ new $P1280, "ResizablePMCArray"
+ push $P1280, $P1279
+ .return ($P1280)
.end
### .include 'gen/nqp-actions.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1267204714.47172")
+.sub "_block11" :anon :subid("10_1271336409.53729")
.annotate "line", 0
get_hll_global $P14, ["NQP";"Actions"], "_block13"
capture_lex $P14
@@ -15775,9 +15819,9 @@
.namespace []
-.sub "" :load :init :subid("post126") :outer("10_1267204714.47172")
+.sub "" :load :init :subid("post126") :outer("10_1271336409.53729")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1267204714.47172"
+ .const 'Sub' $P12 = "10_1271336409.53729"
.local pmc block
set block, $P12
$P2169 = get_root_global ["parrot"], "P6metaclass"
@@ -15786,199 +15830,199 @@
.namespace ["NQP";"Actions"]
-.sub "_block13" :subid("11_1267204714.47172") :outer("10_1267204714.47172")
+.sub "_block13" :subid("11_1271336409.53729") :outer("10_1271336409.53729")
.annotate "line", 3
- .const 'Sub' $P2164 = "125_1267204714.47172"
+ .const 'Sub' $P2164 = "125_1271336409.53729"
capture_lex $P2164
get_hll_global $P2100, ["NQP";"RegexActions"], "_block2099"
capture_lex $P2100
- .const 'Sub' $P2089 = "119_1267204714.47172"
+ .const 'Sub' $P2089 = "119_1271336409.53729"
capture_lex $P2089
- .const 'Sub' $P2077 = "118_1267204714.47172"
+ .const 'Sub' $P2077 = "118_1271336409.53729"
capture_lex $P2077
- .const 'Sub' $P2067 = "117_1267204714.47172"
+ .const 'Sub' $P2067 = "117_1271336409.53729"
capture_lex $P2067
- .const 'Sub' $P2057 = "116_1267204714.47172"
+ .const 'Sub' $P2057 = "116_1271336409.53729"
capture_lex $P2057
- .const 'Sub' $P2047 = "115_1267204714.47172"
+ .const 'Sub' $P2047 = "115_1271336409.53729"
capture_lex $P2047
- .const 'Sub' $P2033 = "114_1267204714.47172"
+ .const 'Sub' $P2033 = "114_1271336409.53729"
capture_lex $P2033
- .const 'Sub' $P2023 = "113_1267204714.47172"
+ .const 'Sub' $P2023 = "113_1271336409.53729"
capture_lex $P2023
- .const 'Sub' $P1986 = "112_1267204714.47172"
+ .const 'Sub' $P1986 = "112_1271336409.53729"
capture_lex $P1986
- .const 'Sub' $P1972 = "111_1267204714.47172"
+ .const 'Sub' $P1972 = "111_1271336409.53729"
capture_lex $P1972
- .const 'Sub' $P1962 = "110_1267204714.47172"
+ .const 'Sub' $P1962 = "110_1271336409.53729"
capture_lex $P1962
- .const 'Sub' $P1952 = "109_1267204714.47172"
+ .const 'Sub' $P1952 = "109_1271336409.53729"
capture_lex $P1952
- .const 'Sub' $P1942 = "108_1267204714.47172"
+ .const 'Sub' $P1942 = "108_1271336409.53729"
capture_lex $P1942
- .const 'Sub' $P1932 = "107_1267204714.47172"
+ .const 'Sub' $P1932 = "107_1271336409.53729"
capture_lex $P1932
- .const 'Sub' $P1922 = "106_1267204714.47172"
+ .const 'Sub' $P1922 = "106_1271336409.53729"
capture_lex $P1922
- .const 'Sub' $P1894 = "105_1267204714.47172"
+ .const 'Sub' $P1894 = "105_1271336409.53729"
capture_lex $P1894
- .const 'Sub' $P1877 = "104_1267204714.47172"
+ .const 'Sub' $P1877 = "104_1271336409.53729"
capture_lex $P1877
- .const 'Sub' $P1867 = "103_1267204714.47172"
+ .const 'Sub' $P1867 = "103_1271336409.53729"
capture_lex $P1867
- .const 'Sub' $P1854 = "102_1267204714.47172"
+ .const 'Sub' $P1854 = "102_1271336409.53729"
capture_lex $P1854
- .const 'Sub' $P1841 = "101_1267204714.47172"
+ .const 'Sub' $P1841 = "101_1271336409.53729"
capture_lex $P1841
- .const 'Sub' $P1828 = "100_1267204714.47172"
+ .const 'Sub' $P1828 = "100_1271336409.53729"
capture_lex $P1828
- .const 'Sub' $P1818 = "99_1267204714.47172"
+ .const 'Sub' $P1818 = "99_1271336409.53729"
capture_lex $P1818
- .const 'Sub' $P1789 = "98_1267204714.47172"
+ .const 'Sub' $P1789 = "98_1271336409.53729"
capture_lex $P1789
- .const 'Sub' $P1769 = "97_1267204714.47172"
+ .const 'Sub' $P1769 = "97_1271336409.53729"
capture_lex $P1769
- .const 'Sub' $P1759 = "96_1267204714.47172"
+ .const 'Sub' $P1759 = "96_1271336409.53729"
capture_lex $P1759
- .const 'Sub' $P1749 = "95_1267204714.47172"
+ .const 'Sub' $P1749 = "95_1271336409.53729"
capture_lex $P1749
- .const 'Sub' $P1722 = "94_1267204714.47172"
+ .const 'Sub' $P1722 = "94_1271336409.53729"
capture_lex $P1722
- .const 'Sub' $P1704 = "93_1267204714.47172"
+ .const 'Sub' $P1704 = "93_1271336409.53729"
capture_lex $P1704
- .const 'Sub' $P1694 = "92_1267204714.47172"
+ .const 'Sub' $P1694 = "92_1271336409.53729"
capture_lex $P1694
- .const 'Sub' $P1610 = "89_1267204714.47172"
+ .const 'Sub' $P1610 = "89_1271336409.53729"
capture_lex $P1610
- .const 'Sub' $P1600 = "88_1267204714.47172"
+ .const 'Sub' $P1600 = "88_1271336409.53729"
capture_lex $P1600
- .const 'Sub' $P1571 = "87_1267204714.47172"
+ .const 'Sub' $P1571 = "87_1271336409.53729"
capture_lex $P1571
- .const 'Sub' $P1529 = "86_1267204714.47172"
+ .const 'Sub' $P1529 = "86_1271336409.53729"
capture_lex $P1529
- .const 'Sub' $P1513 = "85_1267204714.47172"
+ .const 'Sub' $P1513 = "85_1271336409.53729"
capture_lex $P1513
- .const 'Sub' $P1504 = "84_1267204714.47172"
+ .const 'Sub' $P1504 = "84_1271336409.53729"
capture_lex $P1504
- .const 'Sub' $P1472 = "83_1267204714.47172"
+ .const 'Sub' $P1472 = "83_1271336409.53729"
capture_lex $P1472
- .const 'Sub' $P1373 = "80_1267204714.47172"
+ .const 'Sub' $P1373 = "80_1271336409.53729"
capture_lex $P1373
- .const 'Sub' $P1356 = "79_1267204714.47172"
+ .const 'Sub' $P1356 = "79_1271336409.53729"
capture_lex $P1356
- .const 'Sub' $P1336 = "78_1267204714.47172"
+ .const 'Sub' $P1336 = "78_1271336409.53729"
capture_lex $P1336
- .const 'Sub' $P1252 = "77_1267204714.47172"
+ .const 'Sub' $P1252 = "77_1271336409.53729"
capture_lex $P1252
- .const 'Sub' $P1228 = "75_1267204714.47172"
+ .const 'Sub' $P1228 = "75_1271336409.53729"
capture_lex $P1228
- .const 'Sub' $P1194 = "73_1267204714.47172"
+ .const 'Sub' $P1194 = "73_1271336409.53729"
capture_lex $P1194
- .const 'Sub' $P1144 = "71_1267204714.47172"
+ .const 'Sub' $P1144 = "71_1271336409.53729"
capture_lex $P1144
- .const 'Sub' $P1134 = "70_1267204714.47172"
+ .const 'Sub' $P1134 = "70_1271336409.53729"
capture_lex $P1134
- .const 'Sub' $P1124 = "69_1267204714.47172"
+ .const 'Sub' $P1124 = "69_1271336409.53729"
capture_lex $P1124
- .const 'Sub' $P1053 = "67_1267204714.47172"
+ .const 'Sub' $P1053 = "67_1271336409.53729"
capture_lex $P1053
- .const 'Sub' $P1036 = "66_1267204714.47172"
+ .const 'Sub' $P1036 = "66_1271336409.53729"
capture_lex $P1036
- .const 'Sub' $P1026 = "65_1267204714.47172"
+ .const 'Sub' $P1026 = "65_1271336409.53729"
capture_lex $P1026
- .const 'Sub' $P1016 = "64_1267204714.47172"
+ .const 'Sub' $P1016 = "64_1271336409.53729"
capture_lex $P1016
- .const 'Sub' $P1006 = "63_1267204714.47172"
+ .const 'Sub' $P1006 = "63_1271336409.53729"
capture_lex $P1006
- .const 'Sub' $P982 = "62_1267204714.47172"
+ .const 'Sub' $P982 = "62_1271336409.53729"
capture_lex $P982
- .const 'Sub' $P929 = "61_1267204714.47172"
+ .const 'Sub' $P929 = "61_1271336409.53729"
capture_lex $P929
- .const 'Sub' $P919 = "60_1267204714.47172"
+ .const 'Sub' $P919 = "60_1271336409.53729"
capture_lex $P919
- .const 'Sub' $P830 = "58_1267204714.47172"
+ .const 'Sub' $P830 = "58_1271336409.53729"
capture_lex $P830
- .const 'Sub' $P804 = "57_1267204714.47172"
+ .const 'Sub' $P804 = "57_1271336409.53729"
capture_lex $P804
- .const 'Sub' $P788 = "56_1267204714.47172"
+ .const 'Sub' $P788 = "56_1271336409.53729"
capture_lex $P788
- .const 'Sub' $P778 = "55_1267204714.47172"
+ .const 'Sub' $P778 = "55_1271336409.53729"
capture_lex $P778
- .const 'Sub' $P768 = "54_1267204714.47172"
+ .const 'Sub' $P768 = "54_1271336409.53729"
capture_lex $P768
- .const 'Sub' $P758 = "53_1267204714.47172"
+ .const 'Sub' $P758 = "53_1271336409.53729"
capture_lex $P758
- .const 'Sub' $P748 = "52_1267204714.47172"
+ .const 'Sub' $P748 = "52_1271336409.53729"
capture_lex $P748
- .const 'Sub' $P738 = "51_1267204714.47172"
+ .const 'Sub' $P738 = "51_1271336409.53729"
capture_lex $P738
- .const 'Sub' $P728 = "50_1267204714.47172"
+ .const 'Sub' $P728 = "50_1271336409.53729"
capture_lex $P728
- .const 'Sub' $P718 = "49_1267204714.47172"
+ .const 'Sub' $P718 = "49_1271336409.53729"
capture_lex $P718
- .const 'Sub' $P708 = "48_1267204714.47172"
+ .const 'Sub' $P708 = "48_1271336409.53729"
capture_lex $P708
- .const 'Sub' $P698 = "47_1267204714.47172"
+ .const 'Sub' $P698 = "47_1271336409.53729"
capture_lex $P698
- .const 'Sub' $P688 = "46_1267204714.47172"
+ .const 'Sub' $P688 = "46_1271336409.53729"
capture_lex $P688
- .const 'Sub' $P678 = "45_1267204714.47172"
+ .const 'Sub' $P678 = "45_1271336409.53729"
capture_lex $P678
- .const 'Sub' $P668 = "44_1267204714.47172"
+ .const 'Sub' $P668 = "44_1271336409.53729"
capture_lex $P668
- .const 'Sub' $P658 = "43_1267204714.47172"
+ .const 'Sub' $P658 = "43_1271336409.53729"
capture_lex $P658
- .const 'Sub' $P640 = "42_1267204714.47172"
+ .const 'Sub' $P640 = "42_1271336409.53729"
capture_lex $P640
- .const 'Sub' $P605 = "41_1267204714.47172"
+ .const 'Sub' $P605 = "41_1271336409.53729"
capture_lex $P605
- .const 'Sub' $P589 = "40_1267204714.47172"
+ .const 'Sub' $P589 = "40_1271336409.53729"
capture_lex $P589
- .const 'Sub' $P568 = "39_1267204714.47172"
+ .const 'Sub' $P568 = "39_1271336409.53729"
capture_lex $P568
- .const 'Sub' $P548 = "38_1267204714.47172"
+ .const 'Sub' $P548 = "38_1271336409.53729"
capture_lex $P548
- .const 'Sub' $P535 = "37_1267204714.47172"
+ .const 'Sub' $P535 = "37_1271336409.53729"
capture_lex $P535
- .const 'Sub' $P509 = "36_1267204714.47172"
+ .const 'Sub' $P509 = "36_1271336409.53729"
capture_lex $P509
- .const 'Sub' $P473 = "35_1267204714.47172"
+ .const 'Sub' $P473 = "35_1271336409.53729"
capture_lex $P473
- .const 'Sub' $P456 = "34_1267204714.47172"
+ .const 'Sub' $P456 = "34_1271336409.53729"
capture_lex $P456
- .const 'Sub' $P442 = "33_1267204714.47172"
+ .const 'Sub' $P442 = "33_1271336409.53729"
capture_lex $P442
- .const 'Sub' $P389 = "31_1267204714.47172"
+ .const 'Sub' $P389 = "31_1271336409.53729"
capture_lex $P389
- .const 'Sub' $P376 = "30_1267204714.47172"
+ .const 'Sub' $P376 = "30_1271336409.53729"
capture_lex $P376
- .const 'Sub' $P357 = "29_1267204714.47172"
+ .const 'Sub' $P357 = "29_1271336409.53729"
capture_lex $P357
- .const 'Sub' $P347 = "28_1267204714.47172"
+ .const 'Sub' $P347 = "28_1271336409.53729"
capture_lex $P347
- .const 'Sub' $P337 = "27_1267204714.47172"
+ .const 'Sub' $P337 = "27_1271336409.53729"
capture_lex $P337
- .const 'Sub' $P321 = "26_1267204714.47172"
+ .const 'Sub' $P321 = "26_1271336409.53729"
capture_lex $P321
- .const 'Sub' $P261 = "24_1267204714.47172"
+ .const 'Sub' $P261 = "24_1271336409.53729"
capture_lex $P261
- .const 'Sub' $P212 = "22_1267204714.47172"
+ .const 'Sub' $P212 = "22_1271336409.53729"
capture_lex $P212
- .const 'Sub' $P193 = "21_1267204714.47172"
+ .const 'Sub' $P193 = "21_1271336409.53729"
capture_lex $P193
- .const 'Sub' $P160 = "20_1267204714.47172"
+ .const 'Sub' $P160 = "20_1271336409.53729"
capture_lex $P160
- .const 'Sub' $P150 = "19_1267204714.47172"
+ .const 'Sub' $P150 = "19_1271336409.53729"
capture_lex $P150
- .const 'Sub' $P96 = "18_1267204714.47172"
+ .const 'Sub' $P96 = "18_1271336409.53729"
capture_lex $P96
- .const 'Sub' $P81 = "17_1267204714.47172"
+ .const 'Sub' $P81 = "17_1271336409.53729"
capture_lex $P81
- .const 'Sub' $P61 = "16_1267204714.47172"
+ .const 'Sub' $P61 = "16_1271336409.53729"
capture_lex $P61
- .const 'Sub' $P26 = "13_1267204714.47172"
+ .const 'Sub' $P26 = "13_1271336409.53729"
capture_lex $P26
- .const 'Sub' $P16 = "12_1267204714.47172"
+ .const 'Sub' $P16 = "12_1271336409.53729"
capture_lex $P16
get_global $P15, "@BLOCK"
unless_null $P15, vivify_129
@@ -15986,23 +16030,23 @@
set_global "@BLOCK", $P15
vivify_129:
.annotate "line", 9
- .const 'Sub' $P16 = "12_1267204714.47172"
+ .const 'Sub' $P16 = "12_1271336409.53729"
capture_lex $P16
.lex "xblock_immediate", $P16
.annotate "line", 14
- .const 'Sub' $P26 = "13_1267204714.47172"
+ .const 'Sub' $P26 = "13_1271336409.53729"
capture_lex $P26
.lex "block_immediate", $P26
.annotate "line", 24
- .const 'Sub' $P61 = "16_1267204714.47172"
+ .const 'Sub' $P61 = "16_1271336409.53729"
capture_lex $P61
.lex "vivitype", $P61
.annotate "line", 43
- .const 'Sub' $P81 = "17_1267204714.47172"
+ .const 'Sub' $P81 = "17_1271336409.53729"
capture_lex $P81
.lex "colonpair_str", $P81
.annotate "line", 190
- .const 'Sub' $P96 = "18_1267204714.47172"
+ .const 'Sub' $P96 = "18_1271336409.53729"
capture_lex $P96
.lex "push_block_handler", $P96
.annotate "line", 3
@@ -16025,13 +16069,13 @@
.namespace ["NQP";"Actions"]
-.sub "" :load :init :subid("post127") :outer("11_1267204714.47172")
+.sub "" :load :init :subid("post127") :outer("11_1271336409.53729")
.annotate "line", 3
get_hll_global $P14, ["NQP";"Actions"], "_block13"
.local pmc block
set block, $P14
.annotate "line", 5
- .const 'Sub' $P2164 = "125_1267204714.47172"
+ .const 'Sub' $P2164 = "125_1271336409.53729"
capture_lex $P2164
$P2164()
$P2167 = get_root_global ["parrot"], "P6metaclass"
@@ -16040,7 +16084,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block2163" :anon :subid("125_1267204714.47172") :outer("11_1267204714.47172")
+.sub "_block2163" :anon :subid("125_1271336409.53729") :outer("11_1271336409.53729")
.annotate "line", 6
get_global $P2165, "@BLOCK"
unless_null $P2165, vivify_128
@@ -16055,7 +16099,7 @@
.namespace ["NQP";"Actions"]
-.sub "xblock_immediate" :subid("12_1267204714.47172") :outer("11_1267204714.47172")
+.sub "xblock_immediate" :subid("12_1271336409.53729") :outer("11_1271336409.53729")
.param pmc param_19
.annotate "line", 9
new $P18, 'ExceptionHandler'
@@ -16091,10 +16135,10 @@
.namespace ["NQP";"Actions"]
-.sub "block_immediate" :subid("13_1267204714.47172") :outer("11_1267204714.47172")
+.sub "block_immediate" :subid("13_1271336409.53729") :outer("11_1271336409.53729")
.param pmc param_29
.annotate "line", 14
- .const 'Sub' $P39 = "14_1267204714.47172"
+ .const 'Sub' $P39 = "14_1271336409.53729"
capture_lex $P39
new $P28, 'ExceptionHandler'
set_addr $P28, control_27
@@ -16116,7 +16160,7 @@
set $P32, $P37
unless_33_end:
if $P32, unless_31_end
- .const 'Sub' $P39 = "14_1267204714.47172"
+ .const 'Sub' $P39 = "14_1271336409.53729"
capture_lex $P39
$P39()
unless_31_end:
@@ -16132,9 +16176,9 @@
.namespace ["NQP";"Actions"]
-.sub "_block38" :anon :subid("14_1267204714.47172") :outer("13_1267204714.47172")
+.sub "_block38" :anon :subid("14_1271336409.53729") :outer("13_1271336409.53729")
.annotate "line", 16
- .const 'Sub' $P50 = "15_1267204714.47172"
+ .const 'Sub' $P50 = "15_1271336409.53729"
capture_lex $P50
.annotate "line", 17
new $P40, "Undef"
@@ -16157,7 +16201,7 @@
unless $P44, loop55_done
shift $P48, $P44
loop55_redo:
- .const 'Sub' $P50 = "15_1267204714.47172"
+ .const 'Sub' $P50 = "15_1271336409.53729"
capture_lex $P50
$P50($P48)
loop55_next:
@@ -16180,7 +16224,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block49" :anon :subid("15_1267204714.47172") :outer("14_1267204714.47172")
+.sub "_block49" :anon :subid("15_1271336409.53729") :outer("14_1271336409.53729")
.param pmc param_51
.annotate "line", 18
.lex "$_", param_51
@@ -16192,7 +16236,7 @@
.namespace ["NQP";"Actions"]
-.sub "vivitype" :subid("16_1267204714.47172") :outer("11_1267204714.47172")
+.sub "vivitype" :subid("16_1271336409.53729") :outer("11_1271336409.53729")
.param pmc param_64
.annotate "line", 24
new $P63, 'ExceptionHandler'
@@ -16240,7 +16284,7 @@
.namespace ["NQP";"Actions"]
-.sub "colonpair_str" :subid("17_1267204714.47172") :outer("11_1267204714.47172")
+.sub "colonpair_str" :subid("17_1271336409.53729") :outer("11_1271336409.53729")
.param pmc param_84
.annotate "line", 43
new $P83, 'ExceptionHandler'
@@ -16278,7 +16322,7 @@
.namespace ["NQP";"Actions"]
-.sub "push_block_handler" :subid("18_1267204714.47172") :outer("11_1267204714.47172")
+.sub "push_block_handler" :subid("18_1271336409.53729") :outer("11_1271336409.53729")
.param pmc param_99
.param pmc param_100
.annotate "line", 190
@@ -16395,7 +16439,7 @@
.namespace ["NQP";"Actions"]
-.sub "TOP" :subid("19_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "TOP" :subid("19_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_153
.annotate "line", 33
new $P152, 'ExceptionHandler'
@@ -16425,7 +16469,7 @@
.namespace ["NQP";"Actions"]
-.sub "deflongname" :subid("20_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "deflongname" :subid("20_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_163
.annotate "line", 35
new $P162, 'ExceptionHandler'
@@ -16514,7 +16558,7 @@
.namespace ["NQP";"Actions"]
-.sub "comp_unit" :subid("21_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "comp_unit" :subid("21_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_196
.annotate "line", 49
new $P195, 'ExceptionHandler'
@@ -16567,10 +16611,10 @@
.namespace ["NQP";"Actions"]
-.sub "statementlist" :subid("22_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "statementlist" :subid("22_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_215
.annotate "line", 57
- .const 'Sub' $P229 = "23_1267204714.47172"
+ .const 'Sub' $P229 = "23_1271336409.53729"
capture_lex $P229
new $P214, 'ExceptionHandler'
set_addr $P214, control_213
@@ -16615,7 +16659,7 @@
unless $P223, loop254_done
shift $P227, $P223
loop254_redo:
- .const 'Sub' $P229 = "23_1267204714.47172"
+ .const 'Sub' $P229 = "23_1271336409.53729"
capture_lex $P229
$P229($P227)
loop254_next:
@@ -16645,7 +16689,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block228" :anon :subid("23_1267204714.47172") :outer("22_1267204714.47172")
+.sub "_block228" :anon :subid("23_1271336409.53729") :outer("22_1271336409.53729")
.param pmc param_231
.annotate "line", 61
new $P230, "Undef"
@@ -16705,12 +16749,12 @@
.namespace ["NQP";"Actions"]
-.sub "statement" :subid("24_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "statement" :subid("24_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_264
.param pmc param_265 :optional
.param int has_param_265 :opt_flag
.annotate "line", 72
- .const 'Sub' $P273 = "25_1267204714.47172"
+ .const 'Sub' $P273 = "25_1271336409.53729"
capture_lex $P273
new $P263, 'ExceptionHandler'
set_addr $P263, control_262
@@ -16769,7 +16813,7 @@
goto if_269_end
if_269:
.annotate "line", 74
- .const 'Sub' $P273 = "25_1267204714.47172"
+ .const 'Sub' $P273 = "25_1271336409.53729"
capture_lex $P273
$P273()
if_269_end:
@@ -16788,7 +16832,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block272" :anon :subid("25_1267204714.47172") :outer("24_1267204714.47172")
+.sub "_block272" :anon :subid("25_1271336409.53729") :outer("24_1271336409.53729")
.annotate "line", 75
new $P274, "Undef"
.lex "$mc", $P274
@@ -16901,7 +16945,7 @@
.namespace ["NQP";"Actions"]
-.sub "xblock" :subid("26_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "xblock" :subid("26_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_324
.annotate "line", 90
new $P323, 'ExceptionHandler'
@@ -16945,7 +16989,7 @@
.namespace ["NQP";"Actions"]
-.sub "pblock" :subid("27_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "pblock" :subid("27_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_340
.annotate "line", 94
new $P339, 'ExceptionHandler'
@@ -16977,7 +17021,7 @@
.namespace ["NQP";"Actions"]
-.sub "block" :subid("28_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "block" :subid("28_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_350
.annotate "line", 98
new $P349, 'ExceptionHandler'
@@ -17009,7 +17053,7 @@
.namespace ["NQP";"Actions"]
-.sub "blockoid" :subid("29_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "blockoid" :subid("29_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_360
.annotate "line", 102
new $P359, 'ExceptionHandler'
@@ -17062,7 +17106,7 @@
.namespace ["NQP";"Actions"]
-.sub "newpad" :subid("30_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "newpad" :subid("30_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_379
.annotate "line", 110
new $P378, 'ExceptionHandler'
@@ -17097,10 +17141,10 @@
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<if>" :subid("31_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "statement_control:sym<if>" :subid("31_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_392
.annotate "line", 117
- .const 'Sub' $P420 = "32_1267204714.47172"
+ .const 'Sub' $P420 = "32_1271336409.53729"
capture_lex $P420
new $P391, 'ExceptionHandler'
set_addr $P391, control_390
@@ -17185,7 +17229,7 @@
isgt $I418, $N417, 0.0
unless $I418, loop435_done
loop435_redo:
- .const 'Sub' $P420 = "32_1267204714.47172"
+ .const 'Sub' $P420 = "32_1271336409.53729"
capture_lex $P420
$P420()
loop435_next:
@@ -17213,7 +17257,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block419" :anon :subid("32_1267204714.47172") :outer("31_1267204714.47172")
+.sub "_block419" :anon :subid("32_1271336409.53729") :outer("31_1271336409.53729")
.annotate "line", 126
new $P421, "Undef"
.lex "$else", $P421
@@ -17252,7 +17296,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<unless>" :subid("33_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "statement_control:sym<unless>" :subid("33_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_445
.annotate "line", 133
new $P444, 'ExceptionHandler'
@@ -17293,7 +17337,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<while>" :subid("34_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "statement_control:sym<while>" :subid("34_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_459
.annotate "line", 139
new $P458, 'ExceptionHandler'
@@ -17343,7 +17387,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<repeat>" :subid("35_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "statement_control:sym<repeat>" :subid("35_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_476
.annotate "line", 145
new $P475, 'ExceptionHandler'
@@ -17443,7 +17487,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<for>" :subid("36_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "statement_control:sym<for>" :subid("36_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_512
.annotate "line", 159
new $P511, 'ExceptionHandler'
@@ -17523,7 +17567,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<return>" :subid("37_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "statement_control:sym<return>" :subid("37_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_538
.annotate "line", 172
new $P537, 'ExceptionHandler'
@@ -17558,7 +17602,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<CATCH>" :subid("38_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "statement_control:sym<CATCH>" :subid("38_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_551
.annotate "line", 176
new $P550, 'ExceptionHandler'
@@ -17616,7 +17660,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<CONTROL>" :subid("39_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "statement_control:sym<CONTROL>" :subid("39_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_571
.annotate "line", 183
new $P570, 'ExceptionHandler'
@@ -17674,7 +17718,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_prefix:sym<INIT>" :subid("40_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "statement_prefix:sym<INIT>" :subid("40_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_592
.annotate "line", 227
new $P591, 'ExceptionHandler'
@@ -17720,7 +17764,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_prefix:sym<try>" :subid("41_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "statement_prefix:sym<try>" :subid("41_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_608
.annotate "line", 232
new $P607, 'ExceptionHandler'
@@ -17797,7 +17841,7 @@
.namespace ["NQP";"Actions"]
-.sub "blorst" :subid("42_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "blorst" :subid("42_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_643
.annotate "line", 255
new $P642, 'ExceptionHandler'
@@ -17856,7 +17900,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_mod_cond:sym<if>" :subid("43_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "statement_mod_cond:sym<if>" :subid("43_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_661
.annotate "line", 263
new $P660, 'ExceptionHandler'
@@ -17886,7 +17930,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_mod_cond:sym<unless>" :subid("44_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "statement_mod_cond:sym<unless>" :subid("44_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_671
.annotate "line", 264
new $P670, 'ExceptionHandler'
@@ -17916,7 +17960,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_mod_loop:sym<while>" :subid("45_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "statement_mod_loop:sym<while>" :subid("45_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_681
.annotate "line", 266
new $P680, 'ExceptionHandler'
@@ -17946,7 +17990,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_mod_loop:sym<until>" :subid("46_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "statement_mod_loop:sym<until>" :subid("46_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_691
.annotate "line", 267
new $P690, 'ExceptionHandler'
@@ -17976,7 +18020,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<fatarrow>" :subid("47_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "term:sym<fatarrow>" :subid("47_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_701
.annotate "line", 271
new $P700, 'ExceptionHandler'
@@ -18006,7 +18050,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<colonpair>" :subid("48_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "term:sym<colonpair>" :subid("48_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_711
.annotate "line", 272
new $P710, 'ExceptionHandler'
@@ -18036,7 +18080,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<variable>" :subid("49_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "term:sym<variable>" :subid("49_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_721
.annotate "line", 273
new $P720, 'ExceptionHandler'
@@ -18066,7 +18110,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<package_declarator>" :subid("50_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "term:sym<package_declarator>" :subid("50_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_731
.annotate "line", 274
new $P730, 'ExceptionHandler'
@@ -18096,7 +18140,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<scope_declarator>" :subid("51_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "term:sym<scope_declarator>" :subid("51_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_741
.annotate "line", 275
new $P740, 'ExceptionHandler'
@@ -18126,7 +18170,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<routine_declarator>" :subid("52_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "term:sym<routine_declarator>" :subid("52_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_751
.annotate "line", 276
new $P750, 'ExceptionHandler'
@@ -18156,7 +18200,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<regex_declarator>" :subid("53_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "term:sym<regex_declarator>" :subid("53_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_761
.annotate "line", 277
new $P760, 'ExceptionHandler'
@@ -18186,7 +18230,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<statement_prefix>" :subid("54_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "term:sym<statement_prefix>" :subid("54_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_771
.annotate "line", 278
new $P770, 'ExceptionHandler'
@@ -18216,7 +18260,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<lambda>" :subid("55_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "term:sym<lambda>" :subid("55_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_781
.annotate "line", 279
new $P780, 'ExceptionHandler'
@@ -18246,7 +18290,7 @@
.namespace ["NQP";"Actions"]
-.sub "fatarrow" :subid("56_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "fatarrow" :subid("56_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_791
.annotate "line", 281
new $P790, 'ExceptionHandler'
@@ -18295,7 +18339,7 @@
.namespace ["NQP";"Actions"]
-.sub "colonpair" :subid("57_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "colonpair" :subid("57_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_807
.annotate "line", 287
new $P806, 'ExceptionHandler'
@@ -18376,10 +18420,10 @@
.namespace ["NQP";"Actions"]
-.sub "variable" :subid("58_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "variable" :subid("58_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_833
.annotate "line", 295
- .const 'Sub' $P846 = "59_1267204714.47172"
+ .const 'Sub' $P846 = "59_1271336409.53729"
capture_lex $P846
new $P832, 'ExceptionHandler'
set_addr $P832, control_831
@@ -18403,7 +18447,7 @@
vivify_296:
if $P838, if_836
.annotate "line", 301
- .const 'Sub' $P846 = "59_1267204714.47172"
+ .const 'Sub' $P846 = "59_1271336409.53729"
capture_lex $P846
$P846()
goto if_836_end
@@ -18440,7 +18484,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block845" :anon :subid("59_1267204714.47172") :outer("58_1267204714.47172")
+.sub "_block845" :anon :subid("59_1271336409.53729") :outer("58_1271336409.53729")
.annotate "line", 302
$P847 = root_new ['parrot';'ResizablePMCArray']
.lex "@name", $P847
@@ -18609,7 +18653,7 @@
.namespace ["NQP";"Actions"]
-.sub "package_declarator:sym<module>" :subid("60_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "package_declarator:sym<module>" :subid("60_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_922
.annotate "line", 333
new $P921, 'ExceptionHandler'
@@ -18639,7 +18683,7 @@
.namespace ["NQP";"Actions"]
-.sub "package_declarator:sym<class>" :subid("61_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "package_declarator:sym<class>" :subid("61_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_932
.annotate "line", 334
new $P931, 'ExceptionHandler'
@@ -18796,7 +18840,7 @@
.namespace ["NQP";"Actions"]
-.sub "package_def" :subid("62_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "package_def" :subid("62_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_985
.annotate "line", 357
new $P984, 'ExceptionHandler'
@@ -18874,7 +18918,7 @@
.namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<my>" :subid("63_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "scope_declarator:sym<my>" :subid("63_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1009
.annotate "line", 364
new $P1008, 'ExceptionHandler'
@@ -18904,7 +18948,7 @@
.namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<our>" :subid("64_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "scope_declarator:sym<our>" :subid("64_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1019
.annotate "line", 365
new $P1018, 'ExceptionHandler'
@@ -18934,7 +18978,7 @@
.namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<has>" :subid("65_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "scope_declarator:sym<has>" :subid("65_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1029
.annotate "line", 366
new $P1028, 'ExceptionHandler'
@@ -18964,7 +19008,7 @@
.namespace ["NQP";"Actions"]
-.sub "scoped" :subid("66_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "scoped" :subid("66_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1039
.annotate "line", 368
new $P1038, 'ExceptionHandler'
@@ -19022,10 +19066,10 @@
.namespace ["NQP";"Actions"]
-.sub "variable_declarator" :subid("67_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "variable_declarator" :subid("67_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1056
.annotate "line", 374
- .const 'Sub' $P1096 = "68_1267204714.47172"
+ .const 'Sub' $P1096 = "68_1271336409.53729"
capture_lex $P1096
new $P1055, 'ExceptionHandler'
set_addr $P1055, control_1054
@@ -19107,7 +19151,7 @@
iseq $I1081, $S1080, "has"
if $I1081, if_1078
.annotate "line", 391
- .const 'Sub' $P1096 = "68_1267204714.47172"
+ .const 'Sub' $P1096 = "68_1271336409.53729"
capture_lex $P1096
$P1096()
goto if_1078_end
@@ -19167,7 +19211,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1095" :anon :subid("68_1267204714.47172") :outer("67_1267204714.47172")
+.sub "_block1095" :anon :subid("68_1271336409.53729") :outer("67_1271336409.53729")
.annotate "line", 392
new $P1097, "Undef"
.lex "$scope", $P1097
@@ -19228,7 +19272,7 @@
.namespace ["NQP";"Actions"]
-.sub "routine_declarator:sym<sub>" :subid("69_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "routine_declarator:sym<sub>" :subid("69_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1127
.annotate "line", 402
new $P1126, 'ExceptionHandler'
@@ -19258,7 +19302,7 @@
.namespace ["NQP";"Actions"]
-.sub "routine_declarator:sym<method>" :subid("70_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "routine_declarator:sym<method>" :subid("70_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1137
.annotate "line", 403
new $P1136, 'ExceptionHandler'
@@ -19288,10 +19332,10 @@
.namespace ["NQP";"Actions"]
-.sub "routine_def" :subid("71_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "routine_def" :subid("71_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1147
.annotate "line", 405
- .const 'Sub' $P1158 = "72_1267204714.47172"
+ .const 'Sub' $P1158 = "72_1271336409.53729"
capture_lex $P1158
new $P1146, 'ExceptionHandler'
set_addr $P1146, control_1145
@@ -19328,7 +19372,7 @@
new $P1156, "Undef"
vivify_380:
unless $P1156, if_1154_end
- .const 'Sub' $P1158 = "72_1267204714.47172"
+ .const 'Sub' $P1158 = "72_1271336409.53729"
capture_lex $P1158
$P1158()
if_1154_end:
@@ -19347,7 +19391,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1157" :anon :subid("72_1267204714.47172") :outer("71_1267204714.47172")
+.sub "_block1157" :anon :subid("72_1271336409.53729") :outer("71_1271336409.53729")
.annotate "line", 410
new $P1159, "Undef"
.lex "$name", $P1159
@@ -19443,10 +19487,10 @@
.namespace ["NQP";"Actions"]
-.sub "method_def" :subid("73_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "method_def" :subid("73_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1197
.annotate "line", 423
- .const 'Sub' $P1213 = "74_1267204714.47172"
+ .const 'Sub' $P1213 = "74_1271336409.53729"
capture_lex $P1213
new $P1196, 'ExceptionHandler'
set_addr $P1196, control_1195
@@ -19498,7 +19542,7 @@
new $P1211, "Undef"
vivify_399:
unless $P1211, if_1209_end
- .const 'Sub' $P1213 = "74_1267204714.47172"
+ .const 'Sub' $P1213 = "74_1271336409.53729"
capture_lex $P1213
$P1213()
if_1209_end:
@@ -19517,7 +19561,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1212" :anon :subid("74_1267204714.47172") :outer("73_1267204714.47172")
+.sub "_block1212" :anon :subid("74_1271336409.53729") :outer("73_1271336409.53729")
.annotate "line", 430
new $P1214, "Undef"
.lex "$name", $P1214
@@ -19548,10 +19592,10 @@
.namespace ["NQP";"Actions"]
-.sub "signature" :subid("75_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "signature" :subid("75_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1231
.annotate "line", 437
- .const 'Sub' $P1242 = "76_1267204714.47172"
+ .const 'Sub' $P1242 = "76_1271336409.53729"
capture_lex $P1242
new $P1230, 'ExceptionHandler'
set_addr $P1230, control_1229
@@ -19595,7 +19639,7 @@
unless $P1236, loop1248_done
shift $P1240, $P1236
loop1248_redo:
- .const 'Sub' $P1242 = "76_1267204714.47172"
+ .const 'Sub' $P1242 = "76_1271336409.53729"
capture_lex $P1242
$P1242($P1240)
loop1248_next:
@@ -19620,7 +19664,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1241" :anon :subid("76_1267204714.47172") :outer("75_1267204714.47172")
+.sub "_block1241" :anon :subid("76_1271336409.53729") :outer("75_1271336409.53729")
.param pmc param_1243
.annotate "line", 439
.lex "$_", param_1243
@@ -19633,7 +19677,7 @@
.namespace ["NQP";"Actions"]
-.sub "parameter" :subid("77_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "parameter" :subid("77_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1255
.annotate "line", 442
new $P1254, 'ExceptionHandler'
@@ -19865,7 +19909,7 @@
.namespace ["NQP";"Actions"]
-.sub "param_var" :subid("78_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "param_var" :subid("78_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1339
.annotate "line", 474
new $P1338, 'ExceptionHandler'
@@ -19918,7 +19962,7 @@
.namespace ["NQP";"Actions"]
-.sub "named_param" :subid("79_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "named_param" :subid("79_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1359
.annotate "line", 482
new $P1358, 'ExceptionHandler'
@@ -19971,14 +20015,14 @@
.namespace ["NQP";"Actions"]
-.sub "regex_declarator" :subid("80_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "regex_declarator" :subid("80_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1376
.param pmc param_1377 :optional
.param int has_param_1377 :opt_flag
.annotate "line", 488
- .const 'Sub' $P1447 = "82_1267204714.47172"
+ .const 'Sub' $P1447 = "82_1271336409.53729"
capture_lex $P1447
- .const 'Sub' $P1419 = "81_1267204714.47172"
+ .const 'Sub' $P1419 = "81_1271336409.53729"
capture_lex $P1419
new $P1375, 'ExceptionHandler'
set_addr $P1375, control_1374
@@ -20036,13 +20080,13 @@
iseq $I1417, $S1416, "open"
if $I1417, if_1414
.annotate "line", 534
- .const 'Sub' $P1447 = "82_1267204714.47172"
+ .const 'Sub' $P1447 = "82_1271336409.53729"
capture_lex $P1447
$P1447()
goto if_1414_end
if_1414:
.annotate "line", 521
- .const 'Sub' $P1419 = "81_1267204714.47172"
+ .const 'Sub' $P1419 = "81_1271336409.53729"
capture_lex $P1419
$P1419()
if_1414_end:
@@ -20099,7 +20143,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1446" :anon :subid("82_1267204714.47172") :outer("80_1267204714.47172")
+.sub "_block1446" :anon :subid("82_1271336409.53729") :outer("80_1271336409.53729")
.annotate "line", 535
new $P1448, "Undef"
.lex "$regex", $P1448
@@ -20150,7 +20194,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1418" :anon :subid("81_1267204714.47172") :outer("80_1267204714.47172")
+.sub "_block1418" :anon :subid("81_1271336409.53729") :outer("80_1271336409.53729")
.annotate "line", 522
$P1420 = root_new ['parrot';'Hash']
.lex "%h", $P1420
@@ -20248,7 +20292,7 @@
.namespace ["NQP";"Actions"]
-.sub "dotty" :subid("83_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "dotty" :subid("83_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1475
.annotate "line", 552
new $P1474, 'ExceptionHandler'
@@ -20345,7 +20389,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<self>" :subid("84_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "term:sym<self>" :subid("84_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1507
.annotate "line", 561
new $P1506, 'ExceptionHandler'
@@ -20370,7 +20414,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<identifier>" :subid("85_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "term:sym<identifier>" :subid("85_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1516
.annotate "line", 565
new $P1515, 'ExceptionHandler'
@@ -20419,7 +20463,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<name>" :subid("86_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "term:sym<name>" :subid("86_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1532
.annotate "line", 571
new $P1531, 'ExceptionHandler'
@@ -20537,7 +20581,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<pir::op>" :subid("87_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "term:sym<pir::op>" :subid("87_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1574
.annotate "line", 585
new $P1573, 'ExceptionHandler'
@@ -20628,7 +20672,7 @@
.namespace ["NQP";"Actions"]
-.sub "args" :subid("88_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "args" :subid("88_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1603
.annotate "line", 600
new $P1602, 'ExceptionHandler'
@@ -20658,10 +20702,10 @@
.namespace ["NQP";"Actions"]
-.sub "arglist" :subid("89_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "arglist" :subid("89_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1613
.annotate "line", 602
- .const 'Sub' $P1624 = "90_1267204714.47172"
+ .const 'Sub' $P1624 = "90_1271336409.53729"
capture_lex $P1624
new $P1612, 'ExceptionHandler'
set_addr $P1612, control_1611
@@ -20693,7 +20737,7 @@
new $P1622, "Undef"
vivify_498:
unless $P1622, if_1620_end
- .const 'Sub' $P1624 = "90_1267204714.47172"
+ .const 'Sub' $P1624 = "90_1271336409.53729"
capture_lex $P1624
$P1624()
if_1620_end:
@@ -20801,9 +20845,9 @@
.namespace ["NQP";"Actions"]
-.sub "_block1623" :anon :subid("90_1267204714.47172") :outer("89_1267204714.47172")
+.sub "_block1623" :anon :subid("90_1271336409.53729") :outer("89_1271336409.53729")
.annotate "line", 604
- .const 'Sub' $P1645 = "91_1267204714.47172"
+ .const 'Sub' $P1645 = "91_1271336409.53729"
capture_lex $P1645
.annotate "line", 605
new $P1625, "Undef"
@@ -20856,7 +20900,7 @@
unless $P1639, loop1650_done
shift $P1643, $P1639
loop1650_redo:
- .const 'Sub' $P1645 = "91_1267204714.47172"
+ .const 'Sub' $P1645 = "91_1271336409.53729"
capture_lex $P1645
$P1645($P1643)
loop1650_next:
@@ -20879,7 +20923,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1644" :anon :subid("91_1267204714.47172") :outer("90_1267204714.47172")
+.sub "_block1644" :anon :subid("91_1271336409.53729") :outer("90_1271336409.53729")
.param pmc param_1646
.annotate "line", 607
.lex "$_", param_1646
@@ -20891,7 +20935,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<value>" :subid("92_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "term:sym<value>" :subid("92_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1697
.annotate "line", 624
new $P1696, 'ExceptionHandler'
@@ -20921,7 +20965,7 @@
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<( )>" :subid("93_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "circumfix:sym<( )>" :subid("93_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1707
.annotate "line", 626
new $P1706, 'ExceptionHandler'
@@ -20977,7 +21021,7 @@
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<[ ]>" :subid("94_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "circumfix:sym<[ ]>" :subid("94_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1725
.annotate "line", 632
new $P1724, 'ExceptionHandler'
@@ -21053,7 +21097,7 @@
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<ang>" :subid("95_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "circumfix:sym<ang>" :subid("95_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1752
.annotate "line", 647
new $P1751, 'ExceptionHandler'
@@ -21083,7 +21127,7 @@
.namespace ["NQP";"Actions"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("96_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("96_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1762
.annotate "line", 648
new $P1761, 'ExceptionHandler'
@@ -21113,7 +21157,7 @@
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<{ }>" :subid("97_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "circumfix:sym<{ }>" :subid("97_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1772
.annotate "line", 650
new $P1771, 'ExceptionHandler'
@@ -21177,7 +21221,7 @@
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<sigil>" :subid("98_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "circumfix:sym<sigil>" :subid("98_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1792
.annotate "line", 656
new $P1791, 'ExceptionHandler'
@@ -21256,7 +21300,7 @@
.namespace ["NQP";"Actions"]
-.sub "semilist" :subid("99_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "semilist" :subid("99_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1821
.annotate "line", 663
new $P1820, 'ExceptionHandler'
@@ -21286,7 +21330,7 @@
.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<[ ]>" :subid("100_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "postcircumfix:sym<[ ]>" :subid("100_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1831
.annotate "line", 665
new $P1830, 'ExceptionHandler'
@@ -21323,7 +21367,7 @@
.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<{ }>" :subid("101_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "postcircumfix:sym<{ }>" :subid("101_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1844
.annotate "line", 671
new $P1843, 'ExceptionHandler'
@@ -21360,7 +21404,7 @@
.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<ang>" :subid("102_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "postcircumfix:sym<ang>" :subid("102_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1857
.annotate "line", 677
new $P1856, 'ExceptionHandler'
@@ -21397,7 +21441,7 @@
.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<( )>" :subid("103_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "postcircumfix:sym<( )>" :subid("103_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1870
.annotate "line", 683
new $P1869, 'ExceptionHandler'
@@ -21429,7 +21473,7 @@
.namespace ["NQP";"Actions"]
-.sub "value" :subid("104_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "value" :subid("104_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1880
.annotate "line", 687
new $P1879, 'ExceptionHandler'
@@ -21484,7 +21528,7 @@
.namespace ["NQP";"Actions"]
-.sub "number" :subid("105_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "number" :subid("105_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1897
.annotate "line", 691
new $P1896, 'ExceptionHandler'
@@ -21562,7 +21606,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote:sym<apos>" :subid("106_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "quote:sym<apos>" :subid("106_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1925
.annotate "line", 697
new $P1924, 'ExceptionHandler'
@@ -21592,7 +21636,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote:sym<dblq>" :subid("107_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "quote:sym<dblq>" :subid("107_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1935
.annotate "line", 698
new $P1934, 'ExceptionHandler'
@@ -21622,7 +21666,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote:sym<qq>" :subid("108_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "quote:sym<qq>" :subid("108_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1945
.annotate "line", 699
new $P1944, 'ExceptionHandler'
@@ -21652,7 +21696,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote:sym<q>" :subid("109_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "quote:sym<q>" :subid("109_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1955
.annotate "line", 700
new $P1954, 'ExceptionHandler'
@@ -21682,7 +21726,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote:sym<Q>" :subid("110_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "quote:sym<Q>" :subid("110_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1965
.annotate "line", 701
new $P1964, 'ExceptionHandler'
@@ -21712,7 +21756,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote:sym<Q:PIR>" :subid("111_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "quote:sym<Q:PIR>" :subid("111_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1975
.annotate "line", 702
new $P1974, 'ExceptionHandler'
@@ -21748,7 +21792,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote:sym</ />" :subid("112_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "quote:sym</ />" :subid("112_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_1989
.param pmc param_1990 :optional
.param int has_param_1990 :opt_flag
@@ -21857,7 +21901,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<$>" :subid("113_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "quote_escape:sym<$>" :subid("113_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_2026
.annotate "line", 731
new $P2025, 'ExceptionHandler'
@@ -21887,7 +21931,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<{ }>" :subid("114_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "quote_escape:sym<{ }>" :subid("114_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_2036
.annotate "line", 732
new $P2035, 'ExceptionHandler'
@@ -21925,7 +21969,7 @@
.namespace ["NQP";"Actions"]
-.sub "postfix:sym<.>" :subid("115_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "postfix:sym<.>" :subid("115_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_2050
.annotate "line", 740
new $P2049, 'ExceptionHandler'
@@ -21955,7 +21999,7 @@
.namespace ["NQP";"Actions"]
-.sub "postfix:sym<++>" :subid("116_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "postfix:sym<++>" :subid("116_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_2060
.annotate "line", 742
new $P2059, 'ExceptionHandler'
@@ -21985,7 +22029,7 @@
.namespace ["NQP";"Actions"]
-.sub "postfix:sym<-->" :subid("117_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "postfix:sym<-->" :subid("117_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_2070
.annotate "line", 748
new $P2069, 'ExceptionHandler'
@@ -22015,7 +22059,7 @@
.namespace ["NQP";"Actions"]
-.sub "prefix:sym<make>" :subid("118_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "prefix:sym<make>" :subid("118_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_2080
.annotate "line", 754
new $P2079, 'ExceptionHandler'
@@ -22045,7 +22089,7 @@
.namespace ["NQP";"Actions"]
-.sub "infix:sym<~~>" :subid("119_1267204714.47172") :method :outer("11_1267204714.47172")
+.sub "infix:sym<~~>" :subid("119_1271336409.53729") :method :outer("11_1271336409.53729")
.param pmc param_2092
.annotate "line", 763
new $P2091, 'ExceptionHandler'
@@ -22071,18 +22115,18 @@
.namespace ["NQP";"RegexActions"]
-.sub "_block2099" :subid("120_1267204714.47172") :outer("11_1267204714.47172")
+.sub "_block2099" :subid("120_1271336409.53729") :outer("11_1271336409.53729")
.annotate "line", 768
- .const 'Sub' $P2135 = "124_1267204714.47172"
+ .const 'Sub' $P2135 = "124_1271336409.53729"
capture_lex $P2135
- .const 'Sub' $P2125 = "123_1267204714.47172"
+ .const 'Sub' $P2125 = "123_1271336409.53729"
capture_lex $P2125
- .const 'Sub' $P2115 = "122_1267204714.47172"
+ .const 'Sub' $P2115 = "122_1271336409.53729"
capture_lex $P2115
- .const 'Sub' $P2101 = "121_1267204714.47172"
+ .const 'Sub' $P2101 = "121_1271336409.53729"
capture_lex $P2101
.annotate "line", 779
- .const 'Sub' $P2135 = "124_1267204714.47172"
+ .const 'Sub' $P2135 = "124_1271336409.53729"
capture_lex $P2135
.annotate "line", 768
.return ($P2135)
@@ -22090,7 +22134,7 @@
.namespace ["NQP";"RegexActions"]
-.sub "metachar:sym<:my>" :subid("121_1267204714.47172") :method :outer("120_1267204714.47172")
+.sub "metachar:sym<:my>" :subid("121_1271336409.53729") :method :outer("120_1271336409.53729")
.param pmc param_2104
.annotate "line", 770
new $P2103, 'ExceptionHandler'
@@ -22129,7 +22173,7 @@
.namespace ["NQP";"RegexActions"]
-.sub "metachar:sym<{ }>" :subid("122_1267204714.47172") :method :outer("120_1267204714.47172")
+.sub "metachar:sym<{ }>" :subid("122_1271336409.53729") :method :outer("120_1271336409.53729")
.param pmc param_2118
.annotate "line", 775
new $P2117, 'ExceptionHandler'
@@ -22159,7 +22203,7 @@
.namespace ["NQP";"RegexActions"]
-.sub "assertion:sym<{ }>" :subid("123_1267204714.47172") :method :outer("120_1267204714.47172")
+.sub "assertion:sym<{ }>" :subid("123_1271336409.53729") :method :outer("120_1271336409.53729")
.param pmc param_2128
.annotate "line", 777
new $P2127, 'ExceptionHandler'
@@ -22189,7 +22233,7 @@
.namespace ["NQP";"RegexActions"]
-.sub "codeblock" :subid("124_1267204714.47172") :method :outer("120_1267204714.47172")
+.sub "codeblock" :subid("124_1271336409.53729") :method :outer("120_1271336409.53729")
.param pmc param_2138
.annotate "line", 779
new $P2137, 'ExceptionHandler'
Modified: branches/avl_string_cache/ext/nqp-rx/src/stage0/P6Regex-s0.pir
==============================================================================
--- branches/avl_string_cache/ext/nqp-rx/src/stage0/P6Regex-s0.pir Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/ext/nqp-rx/src/stage0/P6Regex-s0.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -16,7 +16,7 @@
### .include 'gen/p6regex-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1267204688.82934")
+.sub "_block11" :anon :subid("10_1271336383.463")
.annotate "line", 0
get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13"
capture_lex $P14
@@ -30,9 +30,9 @@
.namespace []
-.sub "" :load :init :subid("post158") :outer("10_1267204688.82934")
+.sub "" :load :init :subid("post158") :outer("10_1271336383.463")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1267204688.82934"
+ .const 'Sub' $P12 = "10_1271336383.463"
.local pmc block
set block, $P12
$P580 = get_root_global ["parrot"], "P6metaclass"
@@ -41,140 +41,140 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block13" :subid("11_1267204688.82934") :outer("10_1267204688.82934")
+.sub "_block13" :subid("11_1271336383.463") :outer("10_1271336383.463")
.annotate "line", 3
- .const 'Sub' $P571 = "156_1267204688.82934"
+ .const 'Sub' $P571 = "156_1271336383.463"
capture_lex $P571
- .const 'Sub' $P563 = "154_1267204688.82934"
+ .const 'Sub' $P563 = "154_1271336383.463"
capture_lex $P563
- .const 'Sub' $P555 = "152_1267204688.82934"
+ .const 'Sub' $P555 = "152_1271336383.463"
capture_lex $P555
- .const 'Sub' $P534 = "147_1267204688.82934"
+ .const 'Sub' $P534 = "147_1271336383.463"
capture_lex $P534
- .const 'Sub' $P499 = "141_1267204688.82934"
+ .const 'Sub' $P499 = "141_1271336383.463"
capture_lex $P499
- .const 'Sub' $P487 = "138_1267204688.82934"
+ .const 'Sub' $P487 = "138_1271336383.463"
capture_lex $P487
- .const 'Sub' $P474 = "135_1267204688.82934"
+ .const 'Sub' $P474 = "135_1271336383.463"
capture_lex $P474
- .const 'Sub' $P468 = "133_1267204688.82934"
+ .const 'Sub' $P468 = "133_1271336383.463"
capture_lex $P468
- .const 'Sub' $P457 = "130_1267204688.82934"
+ .const 'Sub' $P457 = "130_1271336383.463"
capture_lex $P457
- .const 'Sub' $P446 = "127_1267204688.82934"
+ .const 'Sub' $P446 = "127_1271336383.463"
capture_lex $P446
- .const 'Sub' $P437 = "123_1267204688.82934"
+ .const 'Sub' $P437 = "123_1271336383.463"
capture_lex $P437
- .const 'Sub' $P431 = "121_1267204688.82934"
+ .const 'Sub' $P431 = "121_1271336383.463"
capture_lex $P431
- .const 'Sub' $P425 = "119_1267204688.82934"
+ .const 'Sub' $P425 = "119_1271336383.463"
capture_lex $P425
- .const 'Sub' $P419 = "117_1267204688.82934"
+ .const 'Sub' $P419 = "117_1271336383.463"
capture_lex $P419
- .const 'Sub' $P413 = "115_1267204688.82934"
+ .const 'Sub' $P413 = "115_1271336383.463"
capture_lex $P413
- .const 'Sub' $P405 = "113_1267204688.82934"
+ .const 'Sub' $P405 = "113_1271336383.463"
capture_lex $P405
- .const 'Sub' $P394 = "111_1267204688.82934"
+ .const 'Sub' $P394 = "111_1271336383.463"
capture_lex $P394
- .const 'Sub' $P383 = "109_1267204688.82934"
+ .const 'Sub' $P383 = "109_1271336383.463"
capture_lex $P383
- .const 'Sub' $P377 = "107_1267204688.82934"
+ .const 'Sub' $P377 = "107_1271336383.463"
capture_lex $P377
- .const 'Sub' $P371 = "105_1267204688.82934"
+ .const 'Sub' $P371 = "105_1271336383.463"
capture_lex $P371
- .const 'Sub' $P365 = "103_1267204688.82934"
+ .const 'Sub' $P365 = "103_1271336383.463"
capture_lex $P365
- .const 'Sub' $P359 = "101_1267204688.82934"
+ .const 'Sub' $P359 = "101_1271336383.463"
capture_lex $P359
- .const 'Sub' $P353 = "99_1267204688.82934"
+ .const 'Sub' $P353 = "99_1271336383.463"
capture_lex $P353
- .const 'Sub' $P347 = "97_1267204688.82934"
+ .const 'Sub' $P347 = "97_1271336383.463"
capture_lex $P347
- .const 'Sub' $P341 = "95_1267204688.82934"
+ .const 'Sub' $P341 = "95_1271336383.463"
capture_lex $P341
- .const 'Sub' $P335 = "93_1267204688.82934"
+ .const 'Sub' $P335 = "93_1271336383.463"
capture_lex $P335
- .const 'Sub' $P323 = "89_1267204688.82934"
+ .const 'Sub' $P323 = "89_1271336383.463"
capture_lex $P323
- .const 'Sub' $P311 = "87_1267204688.82934"
+ .const 'Sub' $P311 = "87_1271336383.463"
capture_lex $P311
- .const 'Sub' $P304 = "85_1267204688.82934"
+ .const 'Sub' $P304 = "85_1271336383.463"
capture_lex $P304
- .const 'Sub' $P287 = "83_1267204688.82934"
+ .const 'Sub' $P287 = "83_1271336383.463"
capture_lex $P287
- .const 'Sub' $P280 = "81_1267204688.82934"
+ .const 'Sub' $P280 = "81_1271336383.463"
capture_lex $P280
- .const 'Sub' $P274 = "79_1267204688.82934"
+ .const 'Sub' $P274 = "79_1271336383.463"
capture_lex $P274
- .const 'Sub' $P268 = "77_1267204688.82934"
+ .const 'Sub' $P268 = "77_1271336383.463"
capture_lex $P268
- .const 'Sub' $P261 = "75_1267204688.82934"
+ .const 'Sub' $P261 = "75_1271336383.463"
capture_lex $P261
- .const 'Sub' $P254 = "73_1267204688.82934"
+ .const 'Sub' $P254 = "73_1271336383.463"
capture_lex $P254
- .const 'Sub' $P247 = "71_1267204688.82934"
+ .const 'Sub' $P247 = "71_1271336383.463"
capture_lex $P247
- .const 'Sub' $P240 = "69_1267204688.82934"
+ .const 'Sub' $P240 = "69_1271336383.463"
capture_lex $P240
- .const 'Sub' $P234 = "67_1267204688.82934"
+ .const 'Sub' $P234 = "67_1271336383.463"
capture_lex $P234
- .const 'Sub' $P228 = "65_1267204688.82934"
+ .const 'Sub' $P228 = "65_1271336383.463"
capture_lex $P228
- .const 'Sub' $P222 = "63_1267204688.82934"
+ .const 'Sub' $P222 = "63_1271336383.463"
capture_lex $P222
- .const 'Sub' $P216 = "61_1267204688.82934"
+ .const 'Sub' $P216 = "61_1271336383.463"
capture_lex $P216
- .const 'Sub' $P210 = "59_1267204688.82934"
+ .const 'Sub' $P210 = "59_1271336383.463"
capture_lex $P210
- .const 'Sub' $P205 = "57_1267204688.82934"
+ .const 'Sub' $P205 = "57_1271336383.463"
capture_lex $P205
- .const 'Sub' $P200 = "55_1267204688.82934"
+ .const 'Sub' $P200 = "55_1271336383.463"
capture_lex $P200
- .const 'Sub' $P194 = "53_1267204688.82934"
+ .const 'Sub' $P194 = "53_1271336383.463"
capture_lex $P194
- .const 'Sub' $P188 = "51_1267204688.82934"
+ .const 'Sub' $P188 = "51_1271336383.463"
capture_lex $P188
- .const 'Sub' $P182 = "49_1267204688.82934"
+ .const 'Sub' $P182 = "49_1271336383.463"
capture_lex $P182
- .const 'Sub' $P166 = "44_1267204688.82934"
+ .const 'Sub' $P166 = "44_1271336383.463"
capture_lex $P166
- .const 'Sub' $P154 = "42_1267204688.82934"
+ .const 'Sub' $P154 = "42_1271336383.463"
capture_lex $P154
- .const 'Sub' $P147 = "40_1267204688.82934"
+ .const 'Sub' $P147 = "40_1271336383.463"
capture_lex $P147
- .const 'Sub' $P140 = "38_1267204688.82934"
+ .const 'Sub' $P140 = "38_1271336383.463"
capture_lex $P140
- .const 'Sub' $P133 = "36_1267204688.82934"
+ .const 'Sub' $P133 = "36_1271336383.463"
capture_lex $P133
- .const 'Sub' $P114 = "31_1267204688.82934"
+ .const 'Sub' $P114 = "31_1271336383.463"
capture_lex $P114
- .const 'Sub' $P101 = "28_1267204688.82934"
+ .const 'Sub' $P101 = "28_1271336383.463"
capture_lex $P101
- .const 'Sub' $P94 = "26_1267204688.82934"
+ .const 'Sub' $P94 = "26_1271336383.463"
capture_lex $P94
- .const 'Sub' $P82 = "24_1267204688.82934"
+ .const 'Sub' $P82 = "24_1271336383.463"
capture_lex $P82
- .const 'Sub' $P75 = "22_1267204688.82934"
+ .const 'Sub' $P75 = "22_1271336383.463"
capture_lex $P75
- .const 'Sub' $P63 = "20_1267204688.82934"
+ .const 'Sub' $P63 = "20_1271336383.463"
capture_lex $P63
- .const 'Sub' $P56 = "18_1267204688.82934"
+ .const 'Sub' $P56 = "18_1271336383.463"
capture_lex $P56
- .const 'Sub' $P46 = "15_1267204688.82934"
+ .const 'Sub' $P46 = "15_1271336383.463"
capture_lex $P46
- .const 'Sub' $P38 = "13_1267204688.82934"
+ .const 'Sub' $P38 = "13_1271336383.463"
capture_lex $P38
- .const 'Sub' $P15 = "12_1267204688.82934"
+ .const 'Sub' $P15 = "12_1271336383.463"
capture_lex $P15
- .const 'Sub' $P571 = "156_1267204688.82934"
+ .const 'Sub' $P571 = "156_1271336383.463"
capture_lex $P571
.return ($P571)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "obs" :subid("12_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "obs" :subid("12_1271336383.463") :method :outer("11_1271336383.463")
.param pmc param_18
.param pmc param_19
.param pmc param_20 :optional
@@ -222,7 +222,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "ws" :subid("13_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "ws" :subid("13_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx39_tgt
.local int rx39_pos
@@ -304,7 +304,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__ws" :subid("14_1267204688.82934") :method
+.sub "!PREFIX__ws" :subid("14_1271336383.463") :method
.annotate "line", 3
new $P41, "ResizablePMCArray"
push $P41, ""
@@ -313,9 +313,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "normspace" :subid("15_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "normspace" :subid("15_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
- .const 'Sub' $P52 = "17_1267204688.82934"
+ .const 'Sub' $P52 = "17_1271336383.463"
capture_lex $P52
.local string rx47_tgt
.local int rx47_pos
@@ -349,7 +349,7 @@
.annotate "line", 10
# rx subrule "before" subtype=zerowidth negate=
rx47_cur."!cursor_pos"(rx47_pos)
- .const 'Sub' $P52 = "17_1267204688.82934"
+ .const 'Sub' $P52 = "17_1271336383.463"
capture_lex $P52
$P10 = rx47_cur."before"($P52)
unless $P10, rx47_fail
@@ -377,7 +377,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__normspace" :subid("16_1267204688.82934") :method
+.sub "!PREFIX__normspace" :subid("16_1271336383.463") :method
.annotate "line", 3
new $P49, "ResizablePMCArray"
push $P49, ""
@@ -386,7 +386,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block51" :anon :subid("17_1267204688.82934") :method :outer("15_1267204688.82934")
+.sub "_block51" :anon :subid("17_1271336383.463") :method :outer("15_1271336383.463")
.annotate "line", 10
.local string rx53_tgt
.local int rx53_pos
@@ -454,7 +454,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arg" :subid("18_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "arg" :subid("18_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx57_tgt
.local int rx57_pos
@@ -565,7 +565,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arg" :subid("19_1267204688.82934") :method
+.sub "!PREFIX__arg" :subid("19_1271336383.463") :method
.annotate "line", 3
new $P59, "ResizablePMCArray"
push $P59, ""
@@ -576,7 +576,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arglist" :subid("20_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "arglist" :subid("20_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx64_tgt
.local int rx64_pos
@@ -682,7 +682,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arglist" :subid("21_1267204688.82934") :method
+.sub "!PREFIX__arglist" :subid("21_1271336383.463") :method
.annotate "line", 3
new $P66, "ResizablePMCArray"
push $P66, ""
@@ -691,7 +691,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "TOP" :subid("22_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "TOP" :subid("22_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx76_tgt
.local int rx76_pos
@@ -764,7 +764,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__TOP" :subid("23_1267204688.82934") :method
+.sub "!PREFIX__TOP" :subid("23_1271336383.463") :method
.annotate "line", 3
$P78 = self."!PREFIX__!subrule"("nibbler", "")
new $P79, "ResizablePMCArray"
@@ -774,7 +774,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "nibbler" :subid("24_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "nibbler" :subid("24_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx83_tgt
.local int rx83_pos
@@ -942,7 +942,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__nibbler" :subid("25_1267204688.82934") :method
+.sub "!PREFIX__nibbler" :subid("25_1271336383.463") :method
.annotate "line", 3
new $P85, "ResizablePMCArray"
push $P85, ""
@@ -951,7 +951,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "termish" :subid("26_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "termish" :subid("26_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx95_tgt
.local int rx95_pos
@@ -1019,7 +1019,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__termish" :subid("27_1267204688.82934") :method
+.sub "!PREFIX__termish" :subid("27_1271336383.463") :method
.annotate "line", 3
new $P97, "ResizablePMCArray"
push $P97, ""
@@ -1028,9 +1028,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantified_atom" :subid("28_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "quantified_atom" :subid("28_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
- .const 'Sub' $P110 = "30_1267204688.82934"
+ .const 'Sub' $P110 = "30_1271336383.463"
capture_lex $P110
.local string rx102_tgt
.local int rx102_pos
@@ -1093,7 +1093,7 @@
alt108_1:
# rx subrule "before" subtype=zerowidth negate=
rx102_cur."!cursor_pos"(rx102_pos)
- .const 'Sub' $P110 = "30_1267204688.82934"
+ .const 'Sub' $P110 = "30_1271336383.463"
capture_lex $P110
$P10 = rx102_cur."before"($P110)
unless $P10, rx102_fail
@@ -1131,7 +1131,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantified_atom" :subid("29_1267204688.82934") :method
+.sub "!PREFIX__quantified_atom" :subid("29_1271336383.463") :method
.annotate "line", 3
$P104 = self."!PREFIX__!subrule"("atom", "")
new $P105, "ResizablePMCArray"
@@ -1141,7 +1141,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block109" :anon :subid("30_1267204688.82934") :method :outer("28_1267204688.82934")
+.sub "_block109" :anon :subid("30_1271336383.463") :method :outer("28_1271336383.463")
.annotate "line", 41
.local string rx111_tgt
.local int rx111_pos
@@ -1197,9 +1197,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "atom" :subid("31_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "atom" :subid("31_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
- .const 'Sub' $P125 = "33_1267204688.82934"
+ .const 'Sub' $P125 = "33_1271336383.463"
capture_lex $P125
.local string rx115_tgt
.local int rx115_pos
@@ -1259,7 +1259,7 @@
rxquantg122_done:
# rx subrule "before" subtype=zerowidth negate=
rx115_cur."!cursor_pos"(rx115_pos)
- .const 'Sub' $P125 = "33_1267204688.82934"
+ .const 'Sub' $P125 = "33_1271336383.463"
capture_lex $P125
$P10 = rx115_cur."before"($P125)
unless $P10, rx115_fail
@@ -1296,7 +1296,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__atom" :subid("32_1267204688.82934") :method
+.sub "!PREFIX__atom" :subid("32_1271336383.463") :method
.annotate "line", 3
$P117 = self."!PREFIX__!subrule"("metachar", "")
new $P118, "ResizablePMCArray"
@@ -1307,7 +1307,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block124" :anon :subid("33_1267204688.82934") :method :outer("31_1267204688.82934")
+.sub "_block124" :anon :subid("33_1271336383.463") :method :outer("31_1271336383.463")
.annotate "line", 47
.local string rx126_tgt
.local int rx126_pos
@@ -1362,7 +1362,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier" :subid("34_1267204688.82934") :method
+.sub "quantifier" :subid("34_1271336383.463") :method
.annotate "line", 52
$P130 = self."!protoregex"("quantifier")
.return ($P130)
@@ -1370,7 +1370,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier" :subid("35_1267204688.82934") :method
+.sub "!PREFIX__quantifier" :subid("35_1271336383.463") :method
.annotate "line", 52
$P132 = self."!PREFIX__!protoregex"("quantifier")
.return ($P132)
@@ -1378,7 +1378,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<*>" :subid("36_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "quantifier:sym<*>" :subid("36_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx134_tgt
.local int rx134_pos
@@ -1457,7 +1457,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<*>" :subid("37_1267204688.82934") :method
+.sub "!PREFIX__quantifier:sym<*>" :subid("37_1271336383.463") :method
.annotate "line", 3
$P136 = self."!PREFIX__!subrule"("backmod", "*")
new $P137, "ResizablePMCArray"
@@ -1467,7 +1467,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<+>" :subid("38_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "quantifier:sym<+>" :subid("38_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx141_tgt
.local int rx141_pos
@@ -1546,7 +1546,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<+>" :subid("39_1267204688.82934") :method
+.sub "!PREFIX__quantifier:sym<+>" :subid("39_1271336383.463") :method
.annotate "line", 3
$P143 = self."!PREFIX__!subrule"("backmod", "+")
new $P144, "ResizablePMCArray"
@@ -1556,7 +1556,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<?>" :subid("40_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "quantifier:sym<?>" :subid("40_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx148_tgt
.local int rx148_pos
@@ -1635,7 +1635,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<?>" :subid("41_1267204688.82934") :method
+.sub "!PREFIX__quantifier:sym<?>" :subid("41_1271336383.463") :method
.annotate "line", 3
$P150 = self."!PREFIX__!subrule"("backmod", "?")
new $P151, "ResizablePMCArray"
@@ -1645,7 +1645,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<**>" :subid("42_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "quantifier:sym<**>" :subid("42_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx155_tgt
.local int rx155_pos
@@ -1834,7 +1834,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<**>" :subid("43_1267204688.82934") :method
+.sub "!PREFIX__quantifier:sym<**>" :subid("43_1271336383.463") :method
.annotate "line", 3
new $P157, "ResizablePMCArray"
push $P157, "**"
@@ -1843,9 +1843,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backmod" :subid("44_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "backmod" :subid("44_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
- .const 'Sub' $P175 = "46_1267204688.82934"
+ .const 'Sub' $P175 = "46_1271336383.463"
capture_lex $P175
.local string rx167_tgt
.local int rx167_pos
@@ -1915,7 +1915,7 @@
alt173_2:
# rx subrule "before" subtype=zerowidth negate=1
rx167_cur."!cursor_pos"(rx167_pos)
- .const 'Sub' $P175 = "46_1267204688.82934"
+ .const 'Sub' $P175 = "46_1271336383.463"
capture_lex $P175
$P10 = rx167_cur."before"($P175)
if $P10, rx167_fail
@@ -1939,7 +1939,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backmod" :subid("45_1267204688.82934") :method
+.sub "!PREFIX__backmod" :subid("45_1271336383.463") :method
.annotate "line", 3
new $P169, "ResizablePMCArray"
push $P169, ""
@@ -1948,7 +1948,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block174" :anon :subid("46_1267204688.82934") :method :outer("44_1267204688.82934")
+.sub "_block174" :anon :subid("46_1271336383.463") :method :outer("44_1271336383.463")
.annotate "line", 71
.local string rx176_tgt
.local int rx176_pos
@@ -2004,7 +2004,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar" :subid("47_1267204688.82934") :method
+.sub "metachar" :subid("47_1271336383.463") :method
.annotate "line", 73
$P179 = self."!protoregex"("metachar")
.return ($P179)
@@ -2012,7 +2012,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar" :subid("48_1267204688.82934") :method
+.sub "!PREFIX__metachar" :subid("48_1271336383.463") :method
.annotate "line", 73
$P181 = self."!PREFIX__!protoregex"("metachar")
.return ($P181)
@@ -2020,7 +2020,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<ws>" :subid("49_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<ws>" :subid("49_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx183_tgt
.local int rx183_pos
@@ -2076,7 +2076,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<ws>" :subid("50_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<ws>" :subid("50_1271336383.463") :method
.annotate "line", 3
$P185 = self."!PREFIX__!subrule"("", "")
new $P186, "ResizablePMCArray"
@@ -2086,7 +2086,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<[ ]>" :subid("51_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<[ ]>" :subid("51_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx189_tgt
.local int rx189_pos
@@ -2158,7 +2158,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<[ ]>" :subid("52_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<[ ]>" :subid("52_1271336383.463") :method
.annotate "line", 3
$P191 = self."!PREFIX__!subrule"("nibbler", "[")
new $P192, "ResizablePMCArray"
@@ -2168,7 +2168,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<( )>" :subid("53_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<( )>" :subid("53_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx195_tgt
.local int rx195_pos
@@ -2240,7 +2240,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<( )>" :subid("54_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<( )>" :subid("54_1271336383.463") :method
.annotate "line", 3
$P197 = self."!PREFIX__!subrule"("nibbler", "(")
new $P198, "ResizablePMCArray"
@@ -2250,7 +2250,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<'>" :subid("55_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<'>" :subid("55_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx201_tgt
.local int rx201_pos
@@ -2314,7 +2314,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<'>" :subid("56_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<'>" :subid("56_1271336383.463") :method
.annotate "line", 3
new $P203, "ResizablePMCArray"
push $P203, "'"
@@ -2323,7 +2323,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<\">" :subid("57_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<\">" :subid("57_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx206_tgt
.local int rx206_pos
@@ -2387,7 +2387,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<\">" :subid("58_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<\">" :subid("58_1271336383.463") :method
.annotate "line", 3
new $P208, "ResizablePMCArray"
push $P208, "\""
@@ -2396,7 +2396,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<.>" :subid("59_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<.>" :subid("59_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx211_tgt
.local int rx211_pos
@@ -2468,7 +2468,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<.>" :subid("60_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<.>" :subid("60_1271336383.463") :method
.annotate "line", 3
new $P213, "ResizablePMCArray"
push $P213, "."
@@ -2477,7 +2477,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^>" :subid("61_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<^>" :subid("61_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx217_tgt
.local int rx217_pos
@@ -2549,7 +2549,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^>" :subid("62_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<^>" :subid("62_1271336383.463") :method
.annotate "line", 3
new $P219, "ResizablePMCArray"
push $P219, "^"
@@ -2558,7 +2558,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^^>" :subid("63_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<^^>" :subid("63_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx223_tgt
.local int rx223_pos
@@ -2630,7 +2630,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^^>" :subid("64_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<^^>" :subid("64_1271336383.463") :method
.annotate "line", 3
new $P225, "ResizablePMCArray"
push $P225, "^^"
@@ -2639,7 +2639,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$>" :subid("65_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<$>" :subid("65_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx229_tgt
.local int rx229_pos
@@ -2711,7 +2711,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$>" :subid("66_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<$>" :subid("66_1271336383.463") :method
.annotate "line", 3
new $P231, "ResizablePMCArray"
push $P231, "$"
@@ -2720,7 +2720,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$$>" :subid("67_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<$$>" :subid("67_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx235_tgt
.local int rx235_pos
@@ -2792,7 +2792,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$$>" :subid("68_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<$$>" :subid("68_1271336383.463") :method
.annotate "line", 3
new $P237, "ResizablePMCArray"
push $P237, "$$"
@@ -2801,7 +2801,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<:::>" :subid("69_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<:::>" :subid("69_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx241_tgt
.local int rx241_pos
@@ -2878,7 +2878,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<:::>" :subid("70_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<:::>" :subid("70_1271336383.463") :method
.annotate "line", 3
$P243 = self."!PREFIX__!subrule"("", ":::")
new $P244, "ResizablePMCArray"
@@ -2888,7 +2888,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<::>" :subid("71_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<::>" :subid("71_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx248_tgt
.local int rx248_pos
@@ -2965,7 +2965,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<::>" :subid("72_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<::>" :subid("72_1271336383.463") :method
.annotate "line", 3
$P250 = self."!PREFIX__!subrule"("", "::")
new $P251, "ResizablePMCArray"
@@ -2975,7 +2975,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<lwb>" :subid("73_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<lwb>" :subid("73_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx255_tgt
.local int rx255_pos
@@ -3060,7 +3060,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<lwb>" :subid("74_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<lwb>" :subid("74_1271336383.463") :method
.annotate "line", 3
new $P257, "ResizablePMCArray"
push $P257, unicode:"\x{ab}"
@@ -3070,7 +3070,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<rwb>" :subid("75_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<rwb>" :subid("75_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx262_tgt
.local int rx262_pos
@@ -3155,7 +3155,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<rwb>" :subid("76_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<rwb>" :subid("76_1271336383.463") :method
.annotate "line", 3
new $P264, "ResizablePMCArray"
push $P264, unicode:"\x{bb}"
@@ -3165,7 +3165,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<bs>" :subid("77_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<bs>" :subid("77_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx269_tgt
.local int rx269_pos
@@ -3230,7 +3230,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<bs>" :subid("78_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<bs>" :subid("78_1271336383.463") :method
.annotate "line", 3
$P271 = self."!PREFIX__!subrule"("backslash", "\\")
new $P272, "ResizablePMCArray"
@@ -3240,7 +3240,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<mod>" :subid("79_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<mod>" :subid("79_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx275_tgt
.local int rx275_pos
@@ -3298,7 +3298,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<mod>" :subid("80_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<mod>" :subid("80_1271336383.463") :method
.annotate "line", 3
$P277 = self."!PREFIX__!subrule"("mod_internal", "")
new $P278, "ResizablePMCArray"
@@ -3308,7 +3308,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<~>" :subid("81_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<~>" :subid("81_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx281_tgt
.local int rx281_pos
@@ -3407,7 +3407,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<~>" :subid("82_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<~>" :subid("82_1271336383.463") :method
.annotate "line", 3
$P283 = self."!PREFIX__!subrule"("", "~")
new $P284, "ResizablePMCArray"
@@ -3417,7 +3417,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<{*}>" :subid("83_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<{*}>" :subid("83_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx288_tgt
.local int rx288_pos
@@ -3584,7 +3584,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<{*}>" :subid("84_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<{*}>" :subid("84_1271336383.463") :method
.annotate "line", 3
new $P290, "ResizablePMCArray"
push $P290, "{*}"
@@ -3593,7 +3593,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<assert>" :subid("85_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<assert>" :subid("85_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx305_tgt
.local int rx305_pos
@@ -3678,7 +3678,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<assert>" :subid("86_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<assert>" :subid("86_1271336383.463") :method
.annotate "line", 3
$P307 = self."!PREFIX__!subrule"("assertion", "<")
new $P308, "ResizablePMCArray"
@@ -3688,7 +3688,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<var>" :subid("87_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<var>" :subid("87_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx312_tgt
.local int rx312_pos
@@ -3850,7 +3850,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<var>" :subid("88_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<var>" :subid("88_1271336383.463") :method
.annotate "line", 3
new $P314, "ResizablePMCArray"
push $P314, "$"
@@ -3860,7 +3860,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<PIR>" :subid("89_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "metachar:sym<PIR>" :subid("89_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx324_tgt
.local int rx324_pos
@@ -3951,7 +3951,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<PIR>" :subid("90_1267204688.82934") :method
+.sub "!PREFIX__metachar:sym<PIR>" :subid("90_1271336383.463") :method
.annotate "line", 3
new $P326, "ResizablePMCArray"
push $P326, ":PIR{{"
@@ -3960,7 +3960,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash" :subid("91_1267204688.82934") :method
+.sub "backslash" :subid("91_1271336383.463") :method
.annotate "line", 120
$P332 = self."!protoregex"("backslash")
.return ($P332)
@@ -3968,7 +3968,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash" :subid("92_1267204688.82934") :method
+.sub "!PREFIX__backslash" :subid("92_1271336383.463") :method
.annotate "line", 120
$P334 = self."!PREFIX__!protoregex"("backslash")
.return ($P334)
@@ -3976,7 +3976,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<w>" :subid("93_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "backslash:sym<w>" :subid("93_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx336_tgt
.local int rx336_pos
@@ -4048,7 +4048,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<w>" :subid("94_1267204688.82934") :method
+.sub "!PREFIX__backslash:sym<w>" :subid("94_1271336383.463") :method
.annotate "line", 3
new $P338, "ResizablePMCArray"
push $P338, "N"
@@ -4064,7 +4064,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<b>" :subid("95_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "backslash:sym<b>" :subid("95_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx342_tgt
.local int rx342_pos
@@ -4136,7 +4136,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<b>" :subid("96_1267204688.82934") :method
+.sub "!PREFIX__backslash:sym<b>" :subid("96_1271336383.463") :method
.annotate "line", 3
new $P344, "ResizablePMCArray"
push $P344, "B"
@@ -4146,7 +4146,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<e>" :subid("97_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "backslash:sym<e>" :subid("97_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx348_tgt
.local int rx348_pos
@@ -4218,7 +4218,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<e>" :subid("98_1267204688.82934") :method
+.sub "!PREFIX__backslash:sym<e>" :subid("98_1271336383.463") :method
.annotate "line", 3
new $P350, "ResizablePMCArray"
push $P350, "E"
@@ -4228,7 +4228,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<f>" :subid("99_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "backslash:sym<f>" :subid("99_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx354_tgt
.local int rx354_pos
@@ -4300,7 +4300,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<f>" :subid("100_1267204688.82934") :method
+.sub "!PREFIX__backslash:sym<f>" :subid("100_1271336383.463") :method
.annotate "line", 3
new $P356, "ResizablePMCArray"
push $P356, "F"
@@ -4310,7 +4310,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<h>" :subid("101_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "backslash:sym<h>" :subid("101_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx360_tgt
.local int rx360_pos
@@ -4382,7 +4382,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<h>" :subid("102_1267204688.82934") :method
+.sub "!PREFIX__backslash:sym<h>" :subid("102_1271336383.463") :method
.annotate "line", 3
new $P362, "ResizablePMCArray"
push $P362, "H"
@@ -4392,7 +4392,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<r>" :subid("103_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "backslash:sym<r>" :subid("103_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx366_tgt
.local int rx366_pos
@@ -4464,7 +4464,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<r>" :subid("104_1267204688.82934") :method
+.sub "!PREFIX__backslash:sym<r>" :subid("104_1271336383.463") :method
.annotate "line", 3
new $P368, "ResizablePMCArray"
push $P368, "R"
@@ -4474,7 +4474,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<t>" :subid("105_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "backslash:sym<t>" :subid("105_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx372_tgt
.local int rx372_pos
@@ -4546,7 +4546,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<t>" :subid("106_1267204688.82934") :method
+.sub "!PREFIX__backslash:sym<t>" :subid("106_1271336383.463") :method
.annotate "line", 3
new $P374, "ResizablePMCArray"
push $P374, "T"
@@ -4556,7 +4556,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<v>" :subid("107_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "backslash:sym<v>" :subid("107_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx378_tgt
.local int rx378_pos
@@ -4628,7 +4628,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<v>" :subid("108_1267204688.82934") :method
+.sub "!PREFIX__backslash:sym<v>" :subid("108_1271336383.463") :method
.annotate "line", 3
new $P380, "ResizablePMCArray"
push $P380, "V"
@@ -4638,7 +4638,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<o>" :subid("109_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "backslash:sym<o>" :subid("109_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx384_tgt
.local int rx384_pos
@@ -4744,7 +4744,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<o>" :subid("110_1267204688.82934") :method
+.sub "!PREFIX__backslash:sym<o>" :subid("110_1271336383.463") :method
.annotate "line", 3
$P386 = self."!PREFIX__!subrule"("octints", "O[")
$P387 = self."!PREFIX__!subrule"("octint", "O")
@@ -4760,7 +4760,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<x>" :subid("111_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "backslash:sym<x>" :subid("111_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx395_tgt
.local int rx395_pos
@@ -4866,7 +4866,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<x>" :subid("112_1267204688.82934") :method
+.sub "!PREFIX__backslash:sym<x>" :subid("112_1271336383.463") :method
.annotate "line", 3
$P397 = self."!PREFIX__!subrule"("hexints", "X[")
$P398 = self."!PREFIX__!subrule"("hexint", "X")
@@ -4882,7 +4882,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<c>" :subid("113_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "backslash:sym<c>" :subid("113_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx406_tgt
.local int rx406_pos
@@ -4961,7 +4961,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<c>" :subid("114_1267204688.82934") :method
+.sub "!PREFIX__backslash:sym<c>" :subid("114_1271336383.463") :method
.annotate "line", 3
$P408 = self."!PREFIX__!subrule"("charspec", "C")
$P409 = self."!PREFIX__!subrule"("charspec", "c")
@@ -4973,7 +4973,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<A>" :subid("115_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "backslash:sym<A>" :subid("115_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx414_tgt
.local int rx414_pos
@@ -5036,7 +5036,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<A>" :subid("116_1267204688.82934") :method
+.sub "!PREFIX__backslash:sym<A>" :subid("116_1271336383.463") :method
.annotate "line", 3
$P416 = self."!PREFIX__!subrule"("", "A")
new $P417, "ResizablePMCArray"
@@ -5046,7 +5046,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<z>" :subid("117_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "backslash:sym<z>" :subid("117_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx420_tgt
.local int rx420_pos
@@ -5109,7 +5109,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<z>" :subid("118_1267204688.82934") :method
+.sub "!PREFIX__backslash:sym<z>" :subid("118_1271336383.463") :method
.annotate "line", 3
$P422 = self."!PREFIX__!subrule"("", "z")
new $P423, "ResizablePMCArray"
@@ -5119,7 +5119,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Z>" :subid("119_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "backslash:sym<Z>" :subid("119_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx426_tgt
.local int rx426_pos
@@ -5182,7 +5182,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Z>" :subid("120_1267204688.82934") :method
+.sub "!PREFIX__backslash:sym<Z>" :subid("120_1271336383.463") :method
.annotate "line", 3
$P428 = self."!PREFIX__!subrule"("", "Z")
new $P429, "ResizablePMCArray"
@@ -5192,7 +5192,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Q>" :subid("121_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "backslash:sym<Q>" :subid("121_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx432_tgt
.local int rx432_pos
@@ -5255,7 +5255,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Q>" :subid("122_1267204688.82934") :method
+.sub "!PREFIX__backslash:sym<Q>" :subid("122_1271336383.463") :method
.annotate "line", 3
$P434 = self."!PREFIX__!subrule"("", "Q")
new $P435, "ResizablePMCArray"
@@ -5265,7 +5265,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<misc>" :subid("123_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "backslash:sym<misc>" :subid("123_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx438_tgt
.local int rx438_pos
@@ -5322,7 +5322,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<misc>" :subid("124_1267204688.82934") :method
+.sub "!PREFIX__backslash:sym<misc>" :subid("124_1271336383.463") :method
.annotate "line", 3
new $P440, "ResizablePMCArray"
push $P440, ""
@@ -5331,7 +5331,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion" :subid("125_1267204688.82934") :method
+.sub "assertion" :subid("125_1271336383.463") :method
.annotate "line", 138
$P443 = self."!protoregex"("assertion")
.return ($P443)
@@ -5339,7 +5339,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion" :subid("126_1267204688.82934") :method
+.sub "!PREFIX__assertion" :subid("126_1271336383.463") :method
.annotate "line", 138
$P445 = self."!PREFIX__!protoregex"("assertion")
.return ($P445)
@@ -5347,9 +5347,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<?>" :subid("127_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "assertion:sym<?>" :subid("127_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
- .const 'Sub' $P454 = "129_1267204688.82934"
+ .const 'Sub' $P454 = "129_1271336383.463"
capture_lex $P454
.local string rx447_tgt
.local int rx447_pos
@@ -5393,7 +5393,7 @@
rx447_cur."!mark_push"(0, rx447_pos, $I10)
# rx subrule "before" subtype=zerowidth negate=
rx447_cur."!cursor_pos"(rx447_pos)
- .const 'Sub' $P454 = "129_1267204688.82934"
+ .const 'Sub' $P454 = "129_1271336383.463"
capture_lex $P454
$P10 = rx447_cur."before"($P454)
unless $P10, rx447_fail
@@ -5426,7 +5426,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<?>" :subid("128_1267204688.82934") :method
+.sub "!PREFIX__assertion:sym<?>" :subid("128_1271336383.463") :method
.annotate "line", 3
$P449 = self."!PREFIX__!subrule"("assertion", "?")
new $P450, "ResizablePMCArray"
@@ -5437,7 +5437,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block453" :anon :subid("129_1267204688.82934") :method :outer("127_1267204688.82934")
+.sub "_block453" :anon :subid("129_1271336383.463") :method :outer("127_1271336383.463")
.annotate "line", 140
.local string rx455_tgt
.local int rx455_pos
@@ -5493,9 +5493,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<!>" :subid("130_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "assertion:sym<!>" :subid("130_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
- .const 'Sub' $P465 = "132_1267204688.82934"
+ .const 'Sub' $P465 = "132_1271336383.463"
capture_lex $P465
.local string rx458_tgt
.local int rx458_pos
@@ -5539,7 +5539,7 @@
rx458_cur."!mark_push"(0, rx458_pos, $I10)
# rx subrule "before" subtype=zerowidth negate=
rx458_cur."!cursor_pos"(rx458_pos)
- .const 'Sub' $P465 = "132_1267204688.82934"
+ .const 'Sub' $P465 = "132_1271336383.463"
capture_lex $P465
$P10 = rx458_cur."before"($P465)
unless $P10, rx458_fail
@@ -5572,7 +5572,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<!>" :subid("131_1267204688.82934") :method
+.sub "!PREFIX__assertion:sym<!>" :subid("131_1271336383.463") :method
.annotate "line", 3
$P460 = self."!PREFIX__!subrule"("assertion", "!")
new $P461, "ResizablePMCArray"
@@ -5583,7 +5583,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block464" :anon :subid("132_1267204688.82934") :method :outer("130_1267204688.82934")
+.sub "_block464" :anon :subid("132_1271336383.463") :method :outer("130_1271336383.463")
.annotate "line", 141
.local string rx466_tgt
.local int rx466_pos
@@ -5639,7 +5639,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<method>" :subid("133_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "assertion:sym<method>" :subid("133_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx469_tgt
.local int rx469_pos
@@ -5705,7 +5705,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<method>" :subid("134_1267204688.82934") :method
+.sub "!PREFIX__assertion:sym<method>" :subid("134_1271336383.463") :method
.annotate "line", 3
$P471 = self."!PREFIX__!subrule"("assertion", ".")
new $P472, "ResizablePMCArray"
@@ -5715,9 +5715,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<name>" :subid("135_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "assertion:sym<name>" :subid("135_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
- .const 'Sub' $P483 = "137_1267204688.82934"
+ .const 'Sub' $P483 = "137_1271336383.463"
capture_lex $P483
.local string rx475_tgt
.local int rx475_pos
@@ -5782,7 +5782,7 @@
.annotate "line", 150
# rx subrule "before" subtype=zerowidth negate=
rx475_cur."!cursor_pos"(rx475_pos)
- .const 'Sub' $P483 = "137_1267204688.82934"
+ .const 'Sub' $P483 = "137_1271336383.463"
capture_lex $P483
$P10 = rx475_cur."before"($P483)
unless $P10, rx475_fail
@@ -5889,7 +5889,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<name>" :subid("136_1267204688.82934") :method
+.sub "!PREFIX__assertion:sym<name>" :subid("136_1271336383.463") :method
.annotate "line", 3
new $P477, "ResizablePMCArray"
push $P477, ""
@@ -5898,7 +5898,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block482" :anon :subid("137_1267204688.82934") :method :outer("135_1267204688.82934")
+.sub "_block482" :anon :subid("137_1271336383.463") :method :outer("135_1271336383.463")
.annotate "line", 150
.local string rx484_tgt
.local int rx484_pos
@@ -5954,9 +5954,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<[>" :subid("138_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "assertion:sym<[>" :subid("138_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
- .const 'Sub' $P493 = "140_1267204688.82934"
+ .const 'Sub' $P493 = "140_1271336383.463"
capture_lex $P493
.local string rx488_tgt
.local int rx488_pos
@@ -5991,7 +5991,7 @@
.annotate "line", 158
# rx subrule "before" subtype=zerowidth negate=
rx488_cur."!cursor_pos"(rx488_pos)
- .const 'Sub' $P493 = "140_1267204688.82934"
+ .const 'Sub' $P493 = "140_1271336383.463"
capture_lex $P493
$P10 = rx488_cur."before"($P493)
unless $P10, rx488_fail
@@ -6029,7 +6029,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<[>" :subid("139_1267204688.82934") :method
+.sub "!PREFIX__assertion:sym<[>" :subid("139_1271336383.463") :method
.annotate "line", 3
new $P490, "ResizablePMCArray"
push $P490, ""
@@ -6038,7 +6038,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block492" :anon :subid("140_1267204688.82934") :method :outer("138_1267204688.82934")
+.sub "_block492" :anon :subid("140_1271336383.463") :method :outer("138_1271336383.463")
.annotate "line", 158
.local string rx494_tgt
.local int rx494_pos
@@ -6118,9 +6118,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "cclass_elem" :subid("141_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "cclass_elem" :subid("141_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
- .const 'Sub' $P511 = "143_1267204688.82934"
+ .const 'Sub' $P511 = "143_1271336383.463"
capture_lex $P511
.local string rx500_tgt
.local int rx500_pos
@@ -6223,7 +6223,7 @@
.annotate "line", 164
# rx subrule $P511 subtype=capture negate=
rx500_cur."!cursor_pos"(rx500_pos)
- .const 'Sub' $P511 = "143_1267204688.82934"
+ .const 'Sub' $P511 = "143_1271336383.463"
capture_lex $P511
$P10 = rx500_cur.$P511()
unless $P10, rx500_fail
@@ -6304,7 +6304,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__cclass_elem" :subid("142_1267204688.82934") :method
+.sub "!PREFIX__cclass_elem" :subid("142_1271336383.463") :method
.annotate "line", 3
new $P502, "ResizablePMCArray"
push $P502, ""
@@ -6315,13 +6315,13 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block510" :anon :subid("143_1267204688.82934") :method :outer("141_1267204688.82934")
+.sub "_block510" :anon :subid("143_1271336383.463") :method :outer("141_1271336383.463")
.annotate "line", 164
- .const 'Sub' $P526 = "146_1267204688.82934"
+ .const 'Sub' $P526 = "146_1271336383.463"
capture_lex $P526
- .const 'Sub' $P521 = "145_1267204688.82934"
+ .const 'Sub' $P521 = "145_1271336383.463"
capture_lex $P521
- .const 'Sub' $P517 = "144_1267204688.82934"
+ .const 'Sub' $P517 = "144_1271336383.463"
capture_lex $P517
.local string rx512_tgt
.local int rx512_pos
@@ -6392,7 +6392,7 @@
add rx512_pos, 1
# rx subrule $P517 subtype=capture negate=
rx512_cur."!cursor_pos"(rx512_pos)
- .const 'Sub' $P517 = "144_1267204688.82934"
+ .const 'Sub' $P517 = "144_1271336383.463"
capture_lex $P517
$P10 = rx512_cur.$P517()
unless $P10, rx512_fail
@@ -6403,7 +6403,7 @@
alt515_1:
# rx subrule $P521 subtype=capture negate=
rx512_cur."!cursor_pos"(rx512_pos)
- .const 'Sub' $P521 = "145_1267204688.82934"
+ .const 'Sub' $P521 = "145_1271336383.463"
capture_lex $P521
$P10 = rx512_cur.$P521()
unless $P10, rx512_fail
@@ -6432,7 +6432,7 @@
add rx512_pos, rx512_off, $I11
# rx subrule $P526 subtype=capture negate=
rx512_cur."!cursor_pos"(rx512_pos)
- .const 'Sub' $P526 = "146_1267204688.82934"
+ .const 'Sub' $P526 = "146_1271336383.463"
capture_lex $P526
$P10 = rx512_cur.$P526()
unless $P10, rx512_fail
@@ -6461,7 +6461,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block516" :anon :subid("144_1267204688.82934") :method :outer("143_1267204688.82934")
+.sub "_block516" :anon :subid("144_1271336383.463") :method :outer("143_1271336383.463")
.annotate "line", 166
.local string rx518_tgt
.local int rx518_pos
@@ -6513,7 +6513,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block520" :anon :subid("145_1267204688.82934") :method :outer("143_1267204688.82934")
+.sub "_block520" :anon :subid("145_1271336383.463") :method :outer("143_1271336383.463")
.annotate "line", 166
.local string rx522_tgt
.local int rx522_pos
@@ -6569,7 +6569,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block525" :anon :subid("146_1267204688.82934") :method :outer("143_1267204688.82934")
+.sub "_block525" :anon :subid("146_1271336383.463") :method :outer("143_1271336383.463")
.annotate "line", 166
.local string rx527_tgt
.local int rx527_pos
@@ -6621,9 +6621,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_internal" :subid("147_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "mod_internal" :subid("147_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
- .const 'Sub' $P543 = "149_1267204688.82934"
+ .const 'Sub' $P543 = "149_1271336383.463"
capture_lex $P543
.local string rx535_tgt
.local int rx535_pos
@@ -6673,7 +6673,7 @@
rxquantr541_loop:
# rx subrule $P543 subtype=capture negate=
rx535_cur."!cursor_pos"(rx535_pos)
- .const 'Sub' $P543 = "149_1267204688.82934"
+ .const 'Sub' $P543 = "149_1271336383.463"
capture_lex $P543
$P10 = rx535_cur.$P543()
unless $P10, rx535_fail
@@ -6775,7 +6775,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_internal" :subid("148_1267204688.82934") :method
+.sub "!PREFIX__mod_internal" :subid("148_1271336383.463") :method
.annotate "line", 3
$P537 = self."!PREFIX__!subrule"("mod_ident", ":")
new $P538, "ResizablePMCArray"
@@ -6786,7 +6786,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block542" :anon :subid("149_1267204688.82934") :method :outer("147_1267204688.82934")
+.sub "_block542" :anon :subid("149_1271336383.463") :method :outer("147_1271336383.463")
.annotate "line", 176
.local string rx544_tgt
.local int rx544_pos
@@ -6854,7 +6854,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident" :subid("150_1267204688.82934") :method
+.sub "mod_ident" :subid("150_1271336383.463") :method
.annotate "line", 181
$P552 = self."!protoregex"("mod_ident")
.return ($P552)
@@ -6862,7 +6862,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident" :subid("151_1267204688.82934") :method
+.sub "!PREFIX__mod_ident" :subid("151_1271336383.463") :method
.annotate "line", 181
$P554 = self."!PREFIX__!protoregex"("mod_ident")
.return ($P554)
@@ -6870,7 +6870,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ignorecase>" :subid("152_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "mod_ident:sym<ignorecase>" :subid("152_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx556_tgt
.local int rx556_pos
@@ -6955,7 +6955,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ignorecase>" :subid("153_1267204688.82934") :method
+.sub "!PREFIX__mod_ident:sym<ignorecase>" :subid("153_1271336383.463") :method
.annotate "line", 3
new $P558, "ResizablePMCArray"
push $P558, "i"
@@ -6964,7 +6964,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ratchet>" :subid("154_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "mod_ident:sym<ratchet>" :subid("154_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx564_tgt
.local int rx564_pos
@@ -7049,7 +7049,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ratchet>" :subid("155_1267204688.82934") :method
+.sub "!PREFIX__mod_ident:sym<ratchet>" :subid("155_1271336383.463") :method
.annotate "line", 3
new $P566, "ResizablePMCArray"
push $P566, "r"
@@ -7058,7 +7058,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<sigspace>" :subid("156_1267204688.82934") :method :outer("11_1267204688.82934")
+.sub "mod_ident:sym<sigspace>" :subid("156_1271336383.463") :method :outer("11_1271336383.463")
.annotate "line", 3
.local string rx572_tgt
.local int rx572_pos
@@ -7143,7 +7143,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<sigspace>" :subid("157_1267204688.82934") :method
+.sub "!PREFIX__mod_ident:sym<sigspace>" :subid("157_1271336383.463") :method
.annotate "line", 3
new $P574, "ResizablePMCArray"
push $P574, "s"
@@ -7153,7 +7153,7 @@
### .include 'gen/p6regex-actions.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1267204695.47543")
+.sub "_block11" :anon :subid("10_1271336390.22432")
.annotate "line", 0
get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13"
capture_lex $P14
@@ -7167,9 +7167,9 @@
.namespace []
-.sub "" :load :init :subid("post90") :outer("10_1267204695.47543")
+.sub "" :load :init :subid("post90") :outer("10_1271336390.22432")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1267204695.47543"
+ .const 'Sub' $P12 = "10_1271336390.22432"
.local pmc block
set block, $P12
$P1570 = get_root_global ["parrot"], "P6metaclass"
@@ -7178,117 +7178,117 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block13" :subid("11_1267204695.47543") :outer("10_1267204695.47543")
+.sub "_block13" :subid("11_1271336390.22432") :outer("10_1271336390.22432")
.annotate "line", 4
- .const 'Sub' $P1536 = "89_1267204695.47543"
+ .const 'Sub' $P1536 = "89_1271336390.22432"
capture_lex $P1536
- .const 'Sub' $P1467 = "85_1267204695.47543"
+ .const 'Sub' $P1467 = "85_1271336390.22432"
capture_lex $P1467
- .const 'Sub' $P1399 = "83_1267204695.47543"
+ .const 'Sub' $P1399 = "83_1271336390.22432"
capture_lex $P1399
- .const 'Sub' $P1326 = "80_1267204695.47543"
+ .const 'Sub' $P1326 = "80_1271336390.22432"
capture_lex $P1326
- .const 'Sub' $P1312 = "79_1267204695.47543"
+ .const 'Sub' $P1312 = "79_1271336390.22432"
capture_lex $P1312
- .const 'Sub' $P1288 = "78_1267204695.47543"
+ .const 'Sub' $P1288 = "78_1271336390.22432"
capture_lex $P1288
- .const 'Sub' $P1270 = "77_1267204695.47543"
+ .const 'Sub' $P1270 = "77_1271336390.22432"
capture_lex $P1270
- .const 'Sub' $P1256 = "76_1267204695.47543"
+ .const 'Sub' $P1256 = "76_1271336390.22432"
capture_lex $P1256
- .const 'Sub' $P1243 = "75_1267204695.47543"
+ .const 'Sub' $P1243 = "75_1271336390.22432"
capture_lex $P1243
- .const 'Sub' $P1212 = "74_1267204695.47543"
+ .const 'Sub' $P1212 = "74_1271336390.22432"
capture_lex $P1212
- .const 'Sub' $P1181 = "73_1267204695.47543"
+ .const 'Sub' $P1181 = "73_1271336390.22432"
capture_lex $P1181
- .const 'Sub' $P1165 = "72_1267204695.47543"
+ .const 'Sub' $P1165 = "72_1271336390.22432"
capture_lex $P1165
- .const 'Sub' $P1149 = "71_1267204695.47543"
+ .const 'Sub' $P1149 = "71_1271336390.22432"
capture_lex $P1149
- .const 'Sub' $P1133 = "70_1267204695.47543"
+ .const 'Sub' $P1133 = "70_1271336390.22432"
capture_lex $P1133
- .const 'Sub' $P1117 = "69_1267204695.47543"
+ .const 'Sub' $P1117 = "69_1271336390.22432"
capture_lex $P1117
- .const 'Sub' $P1101 = "68_1267204695.47543"
+ .const 'Sub' $P1101 = "68_1271336390.22432"
capture_lex $P1101
- .const 'Sub' $P1085 = "67_1267204695.47543"
+ .const 'Sub' $P1085 = "67_1271336390.22432"
capture_lex $P1085
- .const 'Sub' $P1069 = "66_1267204695.47543"
+ .const 'Sub' $P1069 = "66_1271336390.22432"
capture_lex $P1069
- .const 'Sub' $P1045 = "65_1267204695.47543"
+ .const 'Sub' $P1045 = "65_1271336390.22432"
capture_lex $P1045
- .const 'Sub' $P1030 = "64_1267204695.47543"
+ .const 'Sub' $P1030 = "64_1271336390.22432"
capture_lex $P1030
- .const 'Sub' $P974 = "63_1267204695.47543"
+ .const 'Sub' $P974 = "63_1271336390.22432"
capture_lex $P974
- .const 'Sub' $P953 = "62_1267204695.47543"
+ .const 'Sub' $P953 = "62_1271336390.22432"
capture_lex $P953
- .const 'Sub' $P931 = "61_1267204695.47543"
+ .const 'Sub' $P931 = "61_1271336390.22432"
capture_lex $P931
- .const 'Sub' $P921 = "60_1267204695.47543"
+ .const 'Sub' $P921 = "60_1271336390.22432"
capture_lex $P921
- .const 'Sub' $P911 = "59_1267204695.47543"
+ .const 'Sub' $P911 = "59_1271336390.22432"
capture_lex $P911
- .const 'Sub' $P901 = "58_1267204695.47543"
+ .const 'Sub' $P901 = "58_1271336390.22432"
capture_lex $P901
- .const 'Sub' $P889 = "57_1267204695.47543"
+ .const 'Sub' $P889 = "57_1271336390.22432"
capture_lex $P889
- .const 'Sub' $P877 = "56_1267204695.47543"
+ .const 'Sub' $P877 = "56_1271336390.22432"
capture_lex $P877
- .const 'Sub' $P865 = "55_1267204695.47543"
+ .const 'Sub' $P865 = "55_1271336390.22432"
capture_lex $P865
- .const 'Sub' $P853 = "54_1267204695.47543"
+ .const 'Sub' $P853 = "54_1271336390.22432"
capture_lex $P853
- .const 'Sub' $P841 = "53_1267204695.47543"
+ .const 'Sub' $P841 = "53_1271336390.22432"
capture_lex $P841
- .const 'Sub' $P829 = "52_1267204695.47543"
+ .const 'Sub' $P829 = "52_1271336390.22432"
capture_lex $P829
- .const 'Sub' $P817 = "51_1267204695.47543"
+ .const 'Sub' $P817 = "51_1271336390.22432"
capture_lex $P817
- .const 'Sub' $P805 = "50_1267204695.47543"
+ .const 'Sub' $P805 = "50_1271336390.22432"
capture_lex $P805
- .const 'Sub' $P782 = "49_1267204695.47543"
+ .const 'Sub' $P782 = "49_1271336390.22432"
capture_lex $P782
- .const 'Sub' $P759 = "48_1267204695.47543"
+ .const 'Sub' $P759 = "48_1271336390.22432"
capture_lex $P759
- .const 'Sub' $P741 = "47_1267204695.47543"
+ .const 'Sub' $P741 = "47_1271336390.22432"
capture_lex $P741
- .const 'Sub' $P731 = "46_1267204695.47543"
+ .const 'Sub' $P731 = "46_1271336390.22432"
capture_lex $P731
- .const 'Sub' $P713 = "45_1267204695.47543"
+ .const 'Sub' $P713 = "45_1271336390.22432"
capture_lex $P713
- .const 'Sub' $P666 = "44_1267204695.47543"
+ .const 'Sub' $P666 = "44_1271336390.22432"
capture_lex $P666
- .const 'Sub' $P649 = "43_1267204695.47543"
+ .const 'Sub' $P649 = "43_1271336390.22432"
capture_lex $P649
- .const 'Sub' $P634 = "42_1267204695.47543"
+ .const 'Sub' $P634 = "42_1271336390.22432"
capture_lex $P634
- .const 'Sub' $P619 = "41_1267204695.47543"
+ .const 'Sub' $P619 = "41_1271336390.22432"
capture_lex $P619
- .const 'Sub' $P593 = "40_1267204695.47543"
+ .const 'Sub' $P593 = "40_1271336390.22432"
capture_lex $P593
- .const 'Sub' $P543 = "38_1267204695.47543"
+ .const 'Sub' $P543 = "38_1271336390.22432"
capture_lex $P543
- .const 'Sub' $P475 = "36_1267204695.47543"
+ .const 'Sub' $P475 = "36_1271336390.22432"
capture_lex $P475
- .const 'Sub' $P420 = "33_1267204695.47543"
+ .const 'Sub' $P420 = "33_1271336390.22432"
capture_lex $P420
- .const 'Sub' $P405 = "32_1267204695.47543"
+ .const 'Sub' $P405 = "32_1271336390.22432"
capture_lex $P405
- .const 'Sub' $P379 = "30_1267204695.47543"
+ .const 'Sub' $P379 = "30_1271336390.22432"
capture_lex $P379
- .const 'Sub' $P362 = "29_1267204695.47543"
+ .const 'Sub' $P362 = "29_1271336390.22432"
capture_lex $P362
- .const 'Sub' $P340 = "28_1267204695.47543"
+ .const 'Sub' $P340 = "28_1271336390.22432"
capture_lex $P340
- .const 'Sub' $P308 = "27_1267204695.47543"
+ .const 'Sub' $P308 = "27_1271336390.22432"
capture_lex $P308
- .const 'Sub' $P54 = "14_1267204695.47543"
+ .const 'Sub' $P54 = "14_1271336390.22432"
capture_lex $P54
- .const 'Sub' $P21 = "13_1267204695.47543"
+ .const 'Sub' $P21 = "13_1271336390.22432"
capture_lex $P21
- .const 'Sub' $P16 = "12_1267204695.47543"
+ .const 'Sub' $P16 = "12_1271336390.22432"
capture_lex $P16
get_global $P15, "@MODIFIERS"
unless_null $P15, vivify_91
@@ -7296,23 +7296,23 @@
set_global "@MODIFIERS", $P15
vivify_91:
.annotate "line", 6
- .const 'Sub' $P16 = "12_1267204695.47543"
+ .const 'Sub' $P16 = "12_1271336390.22432"
capture_lex $P16
.lex "INIT", $P16
.annotate "line", 479
- .const 'Sub' $P21 = "13_1267204695.47543"
+ .const 'Sub' $P21 = "13_1271336390.22432"
capture_lex $P21
.lex "buildsub", $P21
.annotate "line", 496
- .const 'Sub' $P54 = "14_1267204695.47543"
+ .const 'Sub' $P54 = "14_1271336390.22432"
capture_lex $P54
.lex "capnames", $P54
.annotate "line", 562
- .const 'Sub' $P308 = "27_1267204695.47543"
+ .const 'Sub' $P308 = "27_1271336390.22432"
capture_lex $P308
.lex "backmod", $P308
.annotate "line", 569
- .const 'Sub' $P340 = "28_1267204695.47543"
+ .const 'Sub' $P340 = "28_1271336390.22432"
capture_lex $P340
.lex "subrule_alias", $P340
.annotate "line", 4
@@ -7329,7 +7329,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "INIT" :subid("12_1267204695.47543") :outer("11_1267204695.47543")
+.sub "INIT" :subid("12_1271336390.22432") :outer("11_1271336390.22432")
.annotate "line", 6
new $P18, 'ExceptionHandler'
set_addr $P18, control_17
@@ -7353,7 +7353,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "buildsub" :subid("13_1267204695.47543") :outer("11_1267204695.47543")
+.sub "buildsub" :subid("13_1271336390.22432") :outer("11_1271336390.22432")
.param pmc param_24
.param pmc param_25 :optional
.param int has_param_25 :opt_flag
@@ -7430,19 +7430,19 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "capnames" :subid("14_1267204695.47543") :outer("11_1267204695.47543")
+.sub "capnames" :subid("14_1271336390.22432") :outer("11_1271336390.22432")
.param pmc param_57
.param pmc param_58
.annotate "line", 496
- .const 'Sub' $P283 = "25_1267204695.47543"
+ .const 'Sub' $P283 = "25_1271336390.22432"
capture_lex $P283
- .const 'Sub' $P220 = "22_1267204695.47543"
+ .const 'Sub' $P220 = "22_1271336390.22432"
capture_lex $P220
- .const 'Sub' $P178 = "20_1267204695.47543"
+ .const 'Sub' $P178 = "20_1271336390.22432"
capture_lex $P178
- .const 'Sub' $P136 = "18_1267204695.47543"
+ .const 'Sub' $P136 = "18_1271336390.22432"
capture_lex $P136
- .const 'Sub' $P69 = "15_1267204695.47543"
+ .const 'Sub' $P69 = "15_1271336390.22432"
capture_lex $P69
new $P56, 'ExceptionHandler'
set_addr $P56, control_55
@@ -7498,21 +7498,21 @@
set $S280, $P279
iseq $I281, $S280, "quant"
unless $I281, if_278_end
- .const 'Sub' $P283 = "25_1267204695.47543"
+ .const 'Sub' $P283 = "25_1271336390.22432"
capture_lex $P283
$P283()
if_278_end:
goto if_215_end
if_215:
.annotate "line", 534
- .const 'Sub' $P220 = "22_1267204695.47543"
+ .const 'Sub' $P220 = "22_1271336390.22432"
capture_lex $P220
$P220()
if_215_end:
goto if_168_end
if_168:
.annotate "line", 521
- .const 'Sub' $P178 = "20_1267204695.47543"
+ .const 'Sub' $P178 = "20_1271336390.22432"
capture_lex $P178
$P178()
if_168_end:
@@ -7532,7 +7532,7 @@
unless $P130, loop165_done
shift $P134, $P130
loop165_redo:
- .const 'Sub' $P136 = "18_1267204695.47543"
+ .const 'Sub' $P136 = "18_1271336390.22432"
capture_lex $P136
$P136($P134)
loop165_next:
@@ -7551,7 +7551,7 @@
goto if_64_end
if_64:
.annotate "line", 499
- .const 'Sub' $P69 = "15_1267204695.47543"
+ .const 'Sub' $P69 = "15_1271336390.22432"
capture_lex $P69
$P69()
if_64_end:
@@ -7575,9 +7575,9 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block282" :anon :subid("25_1267204695.47543") :outer("14_1267204695.47543")
+.sub "_block282" :anon :subid("25_1271336390.22432") :outer("14_1271336390.22432")
.annotate "line", 551
- .const 'Sub' $P294 = "26_1267204695.47543"
+ .const 'Sub' $P294 = "26_1271336390.22432"
capture_lex $P294
.annotate "line", 552
$P284 = root_new ['parrot';'Hash']
@@ -7606,7 +7606,7 @@
unless $P289, loop299_done
shift $P292, $P289
loop299_redo:
- .const 'Sub' $P294 = "26_1267204695.47543"
+ .const 'Sub' $P294 = "26_1271336390.22432"
capture_lex $P294
$P294($P292)
loop299_next:
@@ -7636,7 +7636,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block293" :anon :subid("26_1267204695.47543") :outer("25_1267204695.47543")
+.sub "_block293" :anon :subid("26_1271336390.22432") :outer("25_1271336390.22432")
.param pmc param_295
.annotate "line", 553
.lex "$_", param_295
@@ -7656,11 +7656,11 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block219" :anon :subid("22_1267204695.47543") :outer("14_1267204695.47543")
+.sub "_block219" :anon :subid("22_1271336390.22432") :outer("14_1271336390.22432")
.annotate "line", 534
- .const 'Sub' $P260 = "24_1267204695.47543"
+ .const 'Sub' $P260 = "24_1271336390.22432"
capture_lex $P260
- .const 'Sub' $P232 = "23_1267204695.47543"
+ .const 'Sub' $P232 = "23_1271336390.22432"
capture_lex $P232
.annotate "line", 535
new $P221, "Undef"
@@ -7695,7 +7695,7 @@
unless $P227, loop248_done
shift $P230, $P227
loop248_redo:
- .const 'Sub' $P232 = "23_1267204695.47543"
+ .const 'Sub' $P232 = "23_1271336390.22432"
capture_lex $P232
$P232($P230)
loop248_next:
@@ -7734,7 +7734,7 @@
unless $P255, loop273_done
shift $P258, $P255
loop273_redo:
- .const 'Sub' $P260 = "24_1267204695.47543"
+ .const 'Sub' $P260 = "24_1271336390.22432"
capture_lex $P260
$P260($P258)
loop273_next:
@@ -7764,7 +7764,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block231" :anon :subid("23_1267204695.47543") :outer("22_1267204695.47543")
+.sub "_block231" :anon :subid("23_1271336390.22432") :outer("22_1271336390.22432")
.param pmc param_233
.annotate "line", 541
.lex "$_", param_233
@@ -7804,7 +7804,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block259" :anon :subid("24_1267204695.47543") :outer("22_1267204695.47543")
+.sub "_block259" :anon :subid("24_1271336390.22432") :outer("22_1271336390.22432")
.param pmc param_261
.annotate "line", 546
.lex "$_", param_261
@@ -7844,9 +7844,9 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block177" :anon :subid("20_1267204695.47543") :outer("14_1267204695.47543")
+.sub "_block177" :anon :subid("20_1271336390.22432") :outer("14_1271336390.22432")
.annotate "line", 521
- .const 'Sub' $P196 = "21_1267204695.47543"
+ .const 'Sub' $P196 = "21_1271336390.22432"
capture_lex $P196
.annotate "line", 522
new $P179, "Undef"
@@ -7889,7 +7889,7 @@
unless $P191, loop212_done
shift $P194, $P191
loop212_redo:
- .const 'Sub' $P196 = "21_1267204695.47543"
+ .const 'Sub' $P196 = "21_1271336390.22432"
capture_lex $P196
$P196($P194)
loop212_next:
@@ -7909,7 +7909,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block195" :anon :subid("21_1267204695.47543") :outer("20_1267204695.47543")
+.sub "_block195" :anon :subid("21_1271336390.22432") :outer("20_1271336390.22432")
.param pmc param_197
.annotate "line", 529
.lex "$_", param_197
@@ -7949,10 +7949,10 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block135" :anon :subid("18_1267204695.47543") :outer("14_1267204695.47543")
+.sub "_block135" :anon :subid("18_1271336390.22432") :outer("14_1271336390.22432")
.param pmc param_138
.annotate "line", 513
- .const 'Sub' $P147 = "19_1267204695.47543"
+ .const 'Sub' $P147 = "19_1271336390.22432"
capture_lex $P147
.annotate "line", 514
$P137 = root_new ['parrot';'Hash']
@@ -7975,7 +7975,7 @@
unless $P142, loop160_done
shift $P145, $P142
loop160_redo:
- .const 'Sub' $P147 = "19_1267204695.47543"
+ .const 'Sub' $P147 = "19_1271336390.22432"
capture_lex $P147
$P147($P145)
loop160_next:
@@ -8005,7 +8005,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block146" :anon :subid("19_1267204695.47543") :outer("18_1267204695.47543")
+.sub "_block146" :anon :subid("19_1271336390.22432") :outer("18_1271336390.22432")
.param pmc param_148
.annotate "line", 515
.lex "$_", param_148
@@ -8045,9 +8045,9 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block68" :anon :subid("15_1267204695.47543") :outer("14_1267204695.47543")
+.sub "_block68" :anon :subid("15_1271336390.22432") :outer("14_1271336390.22432")
.annotate "line", 499
- .const 'Sub' $P78 = "16_1267204695.47543"
+ .const 'Sub' $P78 = "16_1271336390.22432"
capture_lex $P78
.annotate "line", 500
new $P70, "Undef"
@@ -8068,7 +8068,7 @@
unless $P72, loop122_done
shift $P76, $P72
loop122_redo:
- .const 'Sub' $P78 = "16_1267204695.47543"
+ .const 'Sub' $P78 = "16_1271336390.22432"
capture_lex $P78
$P78($P76)
loop122_next:
@@ -8091,10 +8091,10 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block77" :anon :subid("16_1267204695.47543") :outer("15_1267204695.47543")
+.sub "_block77" :anon :subid("16_1271336390.22432") :outer("15_1271336390.22432")
.param pmc param_80
.annotate "line", 501
- .const 'Sub' $P89 = "17_1267204695.47543"
+ .const 'Sub' $P89 = "17_1271336390.22432"
capture_lex $P89
.annotate "line", 502
$P79 = root_new ['parrot';'Hash']
@@ -8117,7 +8117,7 @@
unless $P84, loop109_done
shift $P87, $P84
loop109_redo:
- .const 'Sub' $P89 = "17_1267204695.47543"
+ .const 'Sub' $P89 = "17_1271336390.22432"
capture_lex $P89
$P89($P87)
loop109_next:
@@ -8166,7 +8166,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block88" :anon :subid("17_1267204695.47543") :outer("16_1267204695.47543")
+.sub "_block88" :anon :subid("17_1271336390.22432") :outer("16_1271336390.22432")
.param pmc param_90
.annotate "line", 503
.lex "$_", param_90
@@ -8225,7 +8225,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backmod" :subid("27_1267204695.47543") :outer("11_1267204695.47543")
+.sub "backmod" :subid("27_1271336390.22432") :outer("11_1271336390.22432")
.param pmc param_311
.param pmc param_312
.annotate "line", 562
@@ -8299,7 +8299,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "subrule_alias" :subid("28_1267204695.47543") :outer("11_1267204695.47543")
+.sub "subrule_alias" :subid("28_1271336390.22432") :outer("11_1271336390.22432")
.param pmc param_343
.param pmc param_344
.annotate "line", 569
@@ -8343,7 +8343,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "arg" :subid("29_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "arg" :subid("29_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_365
.annotate "line", 14
new $P364, 'ExceptionHandler'
@@ -8399,10 +8399,10 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "arglist" :subid("30_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "arglist" :subid("30_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_382
.annotate "line", 18
- .const 'Sub' $P392 = "31_1267204695.47543"
+ .const 'Sub' $P392 = "31_1271336390.22432"
capture_lex $P392
new $P381, 'ExceptionHandler'
set_addr $P381, control_380
@@ -8436,7 +8436,7 @@
unless $P386, loop398_done
shift $P390, $P386
loop398_redo:
- .const 'Sub' $P392 = "31_1267204695.47543"
+ .const 'Sub' $P392 = "31_1271336390.22432"
capture_lex $P392
$P392($P390)
loop398_next:
@@ -8465,7 +8465,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block391" :anon :subid("31_1267204695.47543") :outer("30_1267204695.47543")
+.sub "_block391" :anon :subid("31_1271336390.22432") :outer("30_1271336390.22432")
.param pmc param_393
.annotate "line", 20
.lex "$_", param_393
@@ -8478,7 +8478,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "TOP" :subid("32_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "TOP" :subid("32_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_408
.annotate "line", 24
new $P407, 'ExceptionHandler'
@@ -8520,14 +8520,14 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "nibbler" :subid("33_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "nibbler" :subid("33_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_423
.param pmc param_424 :optional
.param int has_param_424 :opt_flag
.annotate "line", 30
- .const 'Sub' $P458 = "35_1267204695.47543"
+ .const 'Sub' $P458 = "35_1271336390.22432"
capture_lex $P458
- .const 'Sub' $P432 = "34_1267204695.47543"
+ .const 'Sub' $P432 = "34_1271336390.22432"
capture_lex $P432
new $P422, 'ExceptionHandler'
set_addr $P422, control_421
@@ -8548,7 +8548,7 @@
set $S429, $P428
iseq $I430, $S429, "open"
unless $I430, if_427_end
- .const 'Sub' $P432 = "34_1267204695.47543"
+ .const 'Sub' $P432 = "34_1271336390.22432"
capture_lex $P432
$P432()
if_427_end:
@@ -8611,7 +8611,7 @@
unless $P452, loop464_done
shift $P456, $P452
loop464_redo:
- .const 'Sub' $P458 = "35_1267204695.47543"
+ .const 'Sub' $P458 = "35_1271336390.22432"
capture_lex $P458
$P458($P456)
loop464_next:
@@ -8641,7 +8641,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block431" :anon :subid("34_1267204695.47543") :outer("33_1267204695.47543")
+.sub "_block431" :anon :subid("34_1271336390.22432") :outer("33_1271336390.22432")
.annotate "line", 32
$P433 = root_new ['parrot';'Hash']
.lex "%old", $P433
@@ -8681,7 +8681,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block457" :anon :subid("35_1267204695.47543") :outer("33_1267204695.47543")
+.sub "_block457" :anon :subid("35_1271336390.22432") :outer("33_1271336390.22432")
.param pmc param_459
.annotate "line", 45
.lex "$_", param_459
@@ -8696,10 +8696,10 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "termish" :subid("36_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "termish" :subid("36_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_478
.annotate "line", 55
- .const 'Sub' $P491 = "37_1267204695.47543"
+ .const 'Sub' $P491 = "37_1271336390.22432"
capture_lex $P491
new $P477, 'ExceptionHandler'
set_addr $P477, control_476
@@ -8742,7 +8742,7 @@
unless $P485, loop536_done
shift $P489, $P485
loop536_redo:
- .const 'Sub' $P491 = "37_1267204695.47543"
+ .const 'Sub' $P491 = "37_1271336390.22432"
capture_lex $P491
$P491($P489)
loop536_next:
@@ -8771,7 +8771,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block490" :anon :subid("37_1267204695.47543") :outer("36_1267204695.47543")
+.sub "_block490" :anon :subid("37_1271336390.22432") :outer("36_1271336390.22432")
.param pmc param_493
.annotate "line", 59
new $P492, "Undef"
@@ -8898,10 +8898,10 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantified_atom" :subid("38_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "quantified_atom" :subid("38_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_546
.annotate "line", 76
- .const 'Sub' $P555 = "39_1267204695.47543"
+ .const 'Sub' $P555 = "39_1271336390.22432"
capture_lex $P555
new $P545, 'ExceptionHandler'
set_addr $P545, control_544
@@ -8964,7 +8964,7 @@
goto if_551_end
if_551:
.annotate "line", 78
- .const 'Sub' $P555 = "39_1267204695.47543"
+ .const 'Sub' $P555 = "39_1271336390.22432"
capture_lex $P555
$P555()
if_551_end:
@@ -9018,7 +9018,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block554" :anon :subid("39_1267204695.47543") :outer("38_1267204695.47543")
+.sub "_block554" :anon :subid("39_1271336390.22432") :outer("38_1271336390.22432")
.annotate "line", 80
new $P556, "Undef"
.lex "$qast", $P556
@@ -9057,7 +9057,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "atom" :subid("40_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "atom" :subid("40_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_596
.annotate "line", 91
new $P595, 'ExceptionHandler'
@@ -9135,7 +9135,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<*>" :subid("41_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "quantifier:sym<*>" :subid("41_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_622
.annotate "line", 101
new $P621, 'ExceptionHandler'
@@ -9175,7 +9175,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<+>" :subid("42_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "quantifier:sym<+>" :subid("42_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_637
.annotate "line", 106
new $P636, 'ExceptionHandler'
@@ -9215,7 +9215,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<?>" :subid("43_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "quantifier:sym<?>" :subid("43_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_652
.annotate "line", 111
new $P651, 'ExceptionHandler'
@@ -9259,7 +9259,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<**>" :subid("44_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "quantifier:sym<**>" :subid("44_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_669
.annotate "line", 117
new $P668, 'ExceptionHandler'
@@ -9399,7 +9399,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<ws>" :subid("45_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<ws>" :subid("45_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_716
.annotate "line", 131
new $P715, 'ExceptionHandler'
@@ -9451,7 +9451,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<[ ]>" :subid("46_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<[ ]>" :subid("46_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_734
.annotate "line", 140
new $P733, 'ExceptionHandler'
@@ -9483,7 +9483,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<( )>" :subid("47_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<( )>" :subid("47_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_744
.annotate "line", 144
new $P743, 'ExceptionHandler'
@@ -9531,7 +9531,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<'>" :subid("48_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<'>" :subid("48_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_762
.annotate "line", 151
new $P761, 'ExceptionHandler'
@@ -9587,7 +9587,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<\">" :subid("49_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<\">" :subid("49_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_785
.annotate "line", 158
new $P784, 'ExceptionHandler'
@@ -9643,7 +9643,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<.>" :subid("50_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<.>" :subid("50_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_808
.annotate "line", 165
new $P807, 'ExceptionHandler'
@@ -9674,7 +9674,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<^>" :subid("51_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<^>" :subid("51_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_820
.annotate "line", 170
new $P819, 'ExceptionHandler'
@@ -9705,7 +9705,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<^^>" :subid("52_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<^^>" :subid("52_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_832
.annotate "line", 175
new $P831, 'ExceptionHandler'
@@ -9736,7 +9736,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<$>" :subid("53_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<$>" :subid("53_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_844
.annotate "line", 180
new $P843, 'ExceptionHandler'
@@ -9767,7 +9767,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<$$>" :subid("54_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<$$>" :subid("54_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_856
.annotate "line", 185
new $P855, 'ExceptionHandler'
@@ -9798,7 +9798,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<:::>" :subid("55_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<:::>" :subid("55_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_868
.annotate "line", 190
new $P867, 'ExceptionHandler'
@@ -9829,7 +9829,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<lwb>" :subid("56_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<lwb>" :subid("56_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_880
.annotate "line", 195
new $P879, 'ExceptionHandler'
@@ -9860,7 +9860,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<rwb>" :subid("57_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<rwb>" :subid("57_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_892
.annotate "line", 200
new $P891, 'ExceptionHandler'
@@ -9891,7 +9891,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<bs>" :subid("58_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<bs>" :subid("58_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_904
.annotate "line", 205
new $P903, 'ExceptionHandler'
@@ -9923,7 +9923,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<mod>" :subid("59_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<mod>" :subid("59_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_914
.annotate "line", 209
new $P913, 'ExceptionHandler'
@@ -9955,7 +9955,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<assert>" :subid("60_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<assert>" :subid("60_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_924
.annotate "line", 213
new $P923, 'ExceptionHandler'
@@ -9987,7 +9987,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<~>" :subid("61_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<~>" :subid("61_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_934
.annotate "line", 217
new $P933, 'ExceptionHandler'
@@ -10049,7 +10049,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<{*}>" :subid("62_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<{*}>" :subid("62_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_956
.annotate "line", 230
new $P955, 'ExceptionHandler'
@@ -10110,7 +10110,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<var>" :subid("63_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<var>" :subid("63_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_977
.annotate "line", 237
new $P976, 'ExceptionHandler'
@@ -10270,7 +10270,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<PIR>" :subid("64_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "metachar:sym<PIR>" :subid("64_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1033
.annotate "line", 257
new $P1032, 'ExceptionHandler'
@@ -10309,7 +10309,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<w>" :subid("65_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "backslash:sym<w>" :subid("65_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1048
.annotate "line", 265
new $P1047, 'ExceptionHandler'
@@ -10375,7 +10375,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<b>" :subid("66_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "backslash:sym<b>" :subid("66_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1072
.annotate "line", 271
new $P1071, 'ExceptionHandler'
@@ -10418,7 +10418,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<e>" :subid("67_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "backslash:sym<e>" :subid("67_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1088
.annotate "line", 277
new $P1087, 'ExceptionHandler'
@@ -10443,7 +10443,7 @@
set $S1093, $P1092
iseq $I1094, $S1093, "E"
find_lex $P1095, "$/"
- $P1096 = $P1090."new"("\\e", "enumcharlist" :named("pasttype"), $I1094 :named("negate"), $P1095 :named("node"))
+ $P1096 = $P1090."new"("\e", "enumcharlist" :named("pasttype"), $I1094 :named("negate"), $P1095 :named("node"))
.annotate "line", 278
store_lex "$past", $P1096
.annotate "line", 280
@@ -10461,7 +10461,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<f>" :subid("68_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "backslash:sym<f>" :subid("68_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1104
.annotate "line", 283
new $P1103, 'ExceptionHandler'
@@ -10486,7 +10486,7 @@
set $S1109, $P1108
iseq $I1110, $S1109, "F"
find_lex $P1111, "$/"
- $P1112 = $P1106."new"("\\f", "enumcharlist" :named("pasttype"), $I1110 :named("negate"), $P1111 :named("node"))
+ $P1112 = $P1106."new"("\f", "enumcharlist" :named("pasttype"), $I1110 :named("negate"), $P1111 :named("node"))
.annotate "line", 284
store_lex "$past", $P1112
.annotate "line", 286
@@ -10504,7 +10504,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<h>" :subid("69_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "backslash:sym<h>" :subid("69_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1120
.annotate "line", 289
new $P1119, 'ExceptionHandler'
@@ -10547,7 +10547,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<r>" :subid("70_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "backslash:sym<r>" :subid("70_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1136
.annotate "line", 295
new $P1135, 'ExceptionHandler'
@@ -10590,7 +10590,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<t>" :subid("71_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "backslash:sym<t>" :subid("71_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1152
.annotate "line", 301
new $P1151, 'ExceptionHandler'
@@ -10633,7 +10633,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<v>" :subid("72_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "backslash:sym<v>" :subid("72_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1168
.annotate "line", 307
new $P1167, 'ExceptionHandler'
@@ -10676,7 +10676,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<o>" :subid("73_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "backslash:sym<o>" :subid("73_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1184
.annotate "line", 314
new $P1183, 'ExceptionHandler'
@@ -10759,7 +10759,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<x>" :subid("74_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "backslash:sym<x>" :subid("74_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1215
.annotate "line", 323
new $P1214, 'ExceptionHandler'
@@ -10842,7 +10842,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<c>" :subid("75_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "backslash:sym<c>" :subid("75_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1246
.annotate "line", 332
new $P1245, 'ExceptionHandler'
@@ -10877,7 +10877,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<misc>" :subid("76_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "backslash:sym<misc>" :subid("76_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1259
.annotate "line", 336
new $P1258, 'ExceptionHandler'
@@ -10910,7 +10910,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<?>" :subid("77_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "assertion:sym<?>" :subid("77_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1273
.annotate "line", 342
new $P1272, 'ExceptionHandler'
@@ -10970,7 +10970,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<!>" :subid("78_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "assertion:sym<!>" :subid("78_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1291
.annotate "line", 352
new $P1290, 'ExceptionHandler'
@@ -11038,7 +11038,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<method>" :subid("79_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "assertion:sym<method>" :subid("79_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1315
.annotate "line", 365
new $P1314, 'ExceptionHandler'
@@ -11081,12 +11081,12 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<name>" :subid("80_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "assertion:sym<name>" :subid("80_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1329
.annotate "line", 372
- .const 'Sub' $P1387 = "82_1267204695.47543"
+ .const 'Sub' $P1387 = "82_1271336390.22432"
capture_lex $P1387
- .const 'Sub' $P1351 = "81_1267204695.47543"
+ .const 'Sub' $P1351 = "81_1271336390.22432"
capture_lex $P1351
new $P1328, 'ExceptionHandler'
set_addr $P1328, control_1327
@@ -11182,7 +11182,7 @@
unless $P1378, loop1392_done
shift $P1385, $P1378
loop1392_redo:
- .const 'Sub' $P1387 = "82_1267204695.47543"
+ .const 'Sub' $P1387 = "82_1271336390.22432"
capture_lex $P1387
$P1387($P1385)
loop1392_next:
@@ -11222,7 +11222,7 @@
goto if_1346_end
if_1346:
.annotate "line", 379
- .const 'Sub' $P1351 = "81_1267204695.47543"
+ .const 'Sub' $P1351 = "81_1271336390.22432"
capture_lex $P1351
$P1351()
if_1346_end:
@@ -11263,7 +11263,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1386" :anon :subid("82_1267204695.47543") :outer("80_1267204695.47543")
+.sub "_block1386" :anon :subid("82_1271336390.22432") :outer("80_1271336390.22432")
.param pmc param_1388
.annotate "line", 401
.lex "$_", param_1388
@@ -11275,7 +11275,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1350" :anon :subid("81_1267204695.47543") :outer("80_1267204695.47543")
+.sub "_block1350" :anon :subid("81_1271336390.22432") :outer("80_1271336390.22432")
.annotate "line", 380
new $P1352, "Undef"
.lex "$regexsym", $P1352
@@ -11306,10 +11306,10 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<[>" :subid("83_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "assertion:sym<[>" :subid("83_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1402
.annotate "line", 407
- .const 'Sub' $P1437 = "84_1267204695.47543"
+ .const 'Sub' $P1437 = "84_1271336390.22432"
capture_lex $P1437
new $P1401, 'ExceptionHandler'
set_addr $P1401, control_1400
@@ -11401,7 +11401,7 @@
islt $I1435, $N1432, $N1434
unless $I1435, loop1460_done
loop1460_redo:
- .const 'Sub' $P1437 = "84_1267204695.47543"
+ .const 'Sub' $P1437 = "84_1271336390.22432"
capture_lex $P1437
$P1437()
loop1460_next:
@@ -11429,7 +11429,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1436" :anon :subid("84_1267204695.47543") :outer("83_1267204695.47543")
+.sub "_block1436" :anon :subid("84_1271336390.22432") :outer("83_1271336390.22432")
.annotate "line", 421
new $P1438, "Undef"
.lex "$ast", $P1438
@@ -11480,12 +11480,12 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "cclass_elem" :subid("85_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "cclass_elem" :subid("85_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1470
.annotate "line", 434
- .const 'Sub' $P1495 = "87_1267204695.47543"
+ .const 'Sub' $P1495 = "87_1271336390.22432"
capture_lex $P1495
- .const 'Sub' $P1479 = "86_1267204695.47543"
+ .const 'Sub' $P1479 = "86_1271336390.22432"
capture_lex $P1479
new $P1469, 'ExceptionHandler'
set_addr $P1469, control_1468
@@ -11534,7 +11534,7 @@
unless $P1489, loop1520_done
shift $P1493, $P1489
loop1520_redo:
- .const 'Sub' $P1495 = "87_1267204695.47543"
+ .const 'Sub' $P1495 = "87_1271336390.22432"
capture_lex $P1495
$P1495($P1493)
loop1520_next:
@@ -11558,7 +11558,7 @@
goto if_1475_end
if_1475:
.annotate "line", 437
- .const 'Sub' $P1479 = "86_1267204695.47543"
+ .const 'Sub' $P1479 = "86_1271336390.22432"
capture_lex $P1479
$P1479()
if_1475_end:
@@ -11590,10 +11590,10 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1494" :anon :subid("87_1267204695.47543") :outer("85_1267204695.47543")
+.sub "_block1494" :anon :subid("87_1271336390.22432") :outer("85_1271336390.22432")
.param pmc param_1496
.annotate "line", 441
- .const 'Sub' $P1502 = "88_1267204695.47543"
+ .const 'Sub' $P1502 = "88_1271336390.22432"
capture_lex $P1502
.lex "$_", param_1496
.annotate "line", 442
@@ -11622,7 +11622,7 @@
.annotate "line", 442
goto if_1498_end
if_1498:
- .const 'Sub' $P1502 = "88_1267204695.47543"
+ .const 'Sub' $P1502 = "88_1271336390.22432"
capture_lex $P1502
$P1515 = $P1502()
set $P1497, $P1515
@@ -11633,7 +11633,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1501" :anon :subid("88_1267204695.47543") :outer("87_1267204695.47543")
+.sub "_block1501" :anon :subid("88_1271336390.22432") :outer("87_1271336390.22432")
.annotate "line", 443
new $P1503, "Undef"
.lex "$a", $P1503
@@ -11697,7 +11697,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1478" :anon :subid("86_1267204695.47543") :outer("85_1267204695.47543")
+.sub "_block1478" :anon :subid("86_1271336390.22432") :outer("85_1271336390.22432")
.annotate "line", 438
new $P1480, "Undef"
.lex "$name", $P1480
@@ -11725,7 +11725,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "mod_internal" :subid("89_1267204695.47543") :method :outer("11_1267204695.47543")
+.sub "mod_internal" :subid("89_1271336390.22432") :method :outer("11_1271336390.22432")
.param pmc param_1539
.annotate "line", 472
new $P1538, 'ExceptionHandler'
Modified: branches/avl_string_cache/include/parrot/call.h
==============================================================================
--- branches/avl_string_cache/include/parrot/call.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/call.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -157,6 +157,7 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
PMC* Parrot_pcc_build_call_from_c_args(PARROT_INTERP,
ARGIN_NULLOK(PMC *signature),
@@ -182,8 +183,8 @@
PARROT_CANNOT_RETURN_NULL
PMC* Parrot_pcc_build_sig_object_from_op(PARROT_INTERP,
ARGIN_NULLOK(PMC *signature),
- ARGIN(PMC * const raw_sig),
- ARGIN(opcode_t * const raw_args))
+ ARGIN(PMC *raw_sig),
+ ARGIN(opcode_t *raw_args))
__attribute__nonnull__(1)
__attribute__nonnull__(3)
__attribute__nonnull__(4);
@@ -250,15 +251,13 @@
FUNC_MODIFIES(*arg_flags)
FUNC_MODIFIES(*return_flags);
-PARROT_CAN_RETURN_NULL
-void Parrot_pcc_split_signature_string(PARROT_INTERP,
+void Parrot_pcc_split_signature_string(
ARGIN(const char *signature),
ARGMOD(const char **arg_sig),
ARGMOD(const char **return_sig))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
- __attribute__nonnull__(4)
FUNC_MODIFIES(*arg_sig)
FUNC_MODIFIES(*return_sig);
@@ -306,8 +305,7 @@
, PARROT_ASSERT_ARG(return_flags))
#define ASSERT_ARGS_Parrot_pcc_split_signature_string \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(signature) \
+ PARROT_ASSERT_ARG(signature) \
, PARROT_ASSERT_ARG(arg_sig) \
, PARROT_ASSERT_ARG(return_sig))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
@@ -321,10 +319,10 @@
/* XXX Remove interp from this */
#define ADD_OP_VAR_PART(interp, seg, pc, n) do { \
- if (*(pc) == PARROT_OP_set_args_pc || \
- *(pc) == PARROT_OP_get_results_pc || \
- *(pc) == PARROT_OP_get_params_pc || \
- *(pc) == PARROT_OP_set_returns_pc) { \
+ if (*(pc) == PARROT_OP_set_args_pc \
+ || *(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; \
(n) += VTABLE_elements((interp), sig); \
} \
Modified: branches/avl_string_cache/include/parrot/charset.h
==============================================================================
--- branches/avl_string_cache/include/parrot/charset.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/charset.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -34,19 +34,17 @@
#define PARROT_UNICODE_CHARSET Parrot_unicode_charset_ptr
typedef STRING *(*charset_get_graphemes_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset, UINTVAL count);
-typedef STRING *(*charset_get_graphemes_inplace_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset, UINTVAL count, STRING *dest_string);
-typedef void (*charset_set_graphemes_t)(PARROT_INTERP, STRING *source_string, UINTVAL offset, UINTVAL replace_count, STRING *insert_string);
-typedef STRING * (*charset_to_charset_t)(PARROT_INTERP, STRING *source_string, STRING *dest);
-typedef STRING * (*charset_from_unicode_t)(PARROT_INTERP, STRING *source_string, STRING *dest);
+typedef STRING * (*charset_to_charset_t)(PARROT_INTERP, STRING *source_string);
+typedef STRING * (*charset_from_unicode_t)(PARROT_INTERP, STRING *source_string);
typedef STRING* (*charset_compose_t)(PARROT_INTERP, STRING *source_string);
typedef STRING* (*charset_decompose_t)(PARROT_INTERP, STRING *source_string);
-typedef void (*charset_upcase_t)(PARROT_INTERP, STRING *source_string);
-typedef void (*charset_downcase_t)(PARROT_INTERP, STRING *source_string);
-typedef void (*charset_titlecase_t)(PARROT_INTERP, STRING *source_string);
-typedef void (*charset_upcase_first_t)(PARROT_INTERP, STRING *source_string);
-typedef void (*charset_downcase_first_t)(PARROT_INTERP, STRING *source_string);
-typedef void (*charset_titlecase_first_t)(PARROT_INTERP, STRING *source_string);
+typedef STRING* (*charset_upcase_t)(PARROT_INTERP, const STRING *source_string);
+typedef STRING* (*charset_downcase_t)(PARROT_INTERP, const STRING *source_string);
+typedef STRING* (*charset_titlecase_t)(PARROT_INTERP, const STRING *source_string);
+typedef STRING* (*charset_upcase_first_t)(PARROT_INTERP, const STRING *source_string);
+typedef STRING* (*charset_downcase_first_t)(PARROT_INTERP, const STRING *source_string);
+typedef STRING* (*charset_titlecase_first_t)(PARROT_INTERP, const STRING *source_string);
typedef INTVAL (*charset_compare_t)(PARROT_INTERP, const STRING *lhs, const STRING *rhs);
typedef INTVAL (*charset_index_t)(PARROT_INTERP, STRING *source_string, STRING *search_string, UINTVAL offset);
typedef INTVAL (*charset_rindex_t)(PARROT_INTERP, STRING *source_string, STRING *search_string, UINTVAL offset);
@@ -73,7 +71,7 @@
typedef STRING *(*charset_string_from_codepoint_t)(PARROT_INTERP, UINTVAL codepoint);
typedef size_t (*charset_compute_hash_t)(PARROT_INTERP, const STRING *, size_t seed);
-typedef STRING* (*charset_converter_t)(PARROT_INTERP, STRING *src, STRING *dst);
+typedef STRING* (*charset_converter_t)(PARROT_INTERP, STRING *src);
/* HEADERIZER BEGIN: src/string/charset.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
@@ -86,7 +84,7 @@
PARROT_EXPORT
PARROT_CAN_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
-STRING* Parrot_charset_name(SHIM_INTERP, INTVAL number_of_charset);
+STRING * Parrot_charset_name(SHIM_INTERP, INTVAL number_of_charset);
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
@@ -137,18 +135,19 @@
PARROT_EXPORT
PARROT_CAN_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
-CHARSET * Parrot_load_charset(PARROT_INTERP, ARGIN(const char *charsetname))
+const CHARSET * Parrot_load_charset(PARROT_INTERP,
+ ARGIN(const char *charsetname))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
INTVAL Parrot_make_default_charset(SHIM_INTERP,
SHIM(const char *charsetname),
- ARGIN(CHARSET *charset))
+ ARGIN(const CHARSET *charset))
__attribute__nonnull__(3);
PARROT_EXPORT
-PARROT_CAN_RETURN_NULL
+PARROT_CANNOT_RETURN_NULL
PARROT_MALLOC
CHARSET * Parrot_new_charset(PARROT_INTERP)
__attribute__nonnull__(1);
@@ -164,7 +163,7 @@
PARROT_EXPORT
void Parrot_register_charset_converter(PARROT_INTERP,
ARGIN(const CHARSET *lhs),
- ARGIN(CHARSET *rhs),
+ ARGIN(const CHARSET *rhs),
ARGIN(charset_converter_t func))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
@@ -214,8 +213,6 @@
struct _charset {
const char *name;
charset_get_graphemes_t get_graphemes;
- charset_get_graphemes_inplace_t get_graphemes_inplace;
- charset_set_graphemes_t set_graphemes;
charset_to_charset_t to_charset;
charset_compose_t compose;
charset_decompose_t decompose;
@@ -238,8 +235,6 @@
};
#define CHARSET_GET_GRAPEMES(interp, source, offset, count) ((source)->charset)->get_graphemes((interp), (source), (offset), (count))
-#define CHARSET_GET_GRAPHEMES_INPLACE(interp, source, dest, offset, count) ((source)->charset)->get_graphemes((interp), (source), (dest), (offset), (count))
-#define CHARSET_SET_GRAPHEMES(interp, source, offset, replace_count, insert) ((source)->charset)->set_graphemes((interp), (source), (offset), (replace_count), (insert))
#define CHARSET_TO_UNICODE(interp, source, dest) ((source)->charset)->to_unicode((interp), (source), (dest))
#define CHARSET_COMPOSE(interp, source) ((source)->charset)->compose((interp), (source))
#define CHARSET_DECOMPOSE(interp, source) ((source)->charset)->decompose((interp), (source))
@@ -262,16 +257,10 @@
#define CHARSET_TO_ENCODING(interp, source) ((source)->encoding)->to_encoding((interp), (source))
#define CHARSET_COPY_TO_ENCODING(interp, source) ((source)->encoding)->copy_to_encoding((interp), (source))
#define CHARSET_GET_CODEPOINT(interp, source, offset) ((source)->encoding)->get_codepoint((interp), (source), (offset))
-#define CHARSET_SET_CODEPOINT(interp, source, offset, codepoint) ((source)->encoding)->set_codepoint((interp), (source), (offset), (codepoint))
#define CHARSET_GET_BYTE(interp, source, offset) ((source)->encoding)->get_byte((interp), (source), (offset))
#define CHARSET_SET_BYTE(interp, source, offset, value) ((source)->encoding)->set_byte((interp), (source), (offset), (value))
#define CHARSET_GET_CODEPOINTS(interp, source, offset, count) ((source)->encoding)->get_codepoints((interp), (source), (offset), (count))
-#define CHARSET_GET_CODEPOINTS_INPLACE(interp, source, dest, offset, count) ((source)->encoding)->get_codepoints_inplace((interp), (source), (dest), (offset), (count))
#define CHARSET_GET_BYTES(interp, source, offset, count) ((source)->encoding)->get_bytes((interp), (source), (offset), (count))
-#define CHARSET_GET_BYTES_INPLACE(interp, source, offset, count, dest) ((source)->encoding)->get_bytes((interp), (source), (offset), (count), (dest))
-#define CHARSET_SET_CODEPOINTS(interp, source, offset, count, newdata) ((source)->encoding)->set_codepoints((interp), (source), (offset), (count), (newdata))
-#define CHARSET_SET_BYTES(interp, source, offset, count, newdata) ((source)->encoding)->set_bytes((interp), (source), (offset), (count), (newdata))
-#define CHARSET_BECOME_ENCODING(interp, source) ((source)->encoding)->become_encoding((interp), (source))
#define CHARSET_CODEPOINTS(interp, source) ((source)->encoding)->codepoints((interp), (source))
#define CHARSET_BYTES(interp, source) ((source)->encoding)->bytes((interp), (source))
Modified: branches/avl_string_cache/include/parrot/compiler.h
==============================================================================
--- branches/avl_string_cache/include/parrot/compiler.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/compiler.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/* compiler.h
- * Copyright (C) 2007-2008, Parrot Foundation.
+ * Copyright (C) 2007-2010, Parrot Foundation.
* SVN Info
* $Id$
* Overview:
@@ -25,7 +25,7 @@
# endif
#endif
#ifdef HASATTRIBUTE_FORMAT
-# define __attribute__format__(x, y, z) __attribute__((__format__((x), (y), (z))))
+# define __attribute__format__(x, y, z) __attribute__((format((x), (y), (z))))
#endif
#ifdef HASATTRIBUTE_MALLOC
# define __attribute__malloc__ __attribute__((__malloc__))
@@ -59,6 +59,12 @@
#ifdef HASATTRIBUTE_WARN_UNUSED_RESULT
# define __attribute__warn_unused_result__ __attribute__((__warn_unused_result__))
#endif
+#ifdef HASATTRIBUTE_HOT
+# define __attribute__hot__ __attribute__((__hot__))
+#endif
+#ifdef HASATTRIBUTE_COLD
+# define __attribute__cold__ __attribute__((__cold__))
+#endif
/* If we haven't defined the attributes yet, define them to blank. */
#ifndef __attribute__deprecated__
@@ -88,6 +94,12 @@
#ifndef __attribute__warn_unused_result__
# define __attribute__warn_unused_result__
#endif
+#ifndef __attribute__hot__
+# define __attribute__hot__
+#endif
+#ifndef __attribute__cold__
+# define __attribute__cold__
+#endif
/* Shim arguments are arguments that must be included in your function,
@@ -134,6 +146,10 @@
#define PARROT_DOES_NOT_RETURN_WHEN_FALSE /*@noreturnwhenfalse@*/
#define PARROT_MALLOC /*@only@*/ __attribute__malloc__ __attribute__warn_unused_result__
+/* Hot functions can be optimized by the compiler. */
+#define PARROT_HOT __attribute__hot__
+#define PARROT_COLD __attribute__cold__
+
/* Macros for exposure tracking for splint. */
/* See http://www.splint.org/manual/html/all.html section 6.2 */
#define PARROT_OBSERVER /*@observer@*/
@@ -200,6 +216,7 @@
/* may not pass in a reference to a shared object. There is nothing */
/* special about malloc and free -- their behavior can be described */
/* entirely in terms of the provided annotations. */
+#define ARGFREE_NOTNULL(x) /*@only@*/ /*@out@*/ /*@notnull@*/ x
#endif /* PARROT_COMPILER_H_GUARD */
Modified: branches/avl_string_cache/include/parrot/embed.h
==============================================================================
--- branches/avl_string_cache/include/parrot/embed.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/embed.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -56,11 +56,7 @@
PARROT_EXPORT void Parrot_pbc_fixup_loaded(Parrot_Interp);
-PARROT_EXPORT void Parrot_setup_argv(Parrot_Interp, int argc, const char **argv);
-
-PARROT_EXPORT void Parrot_setup_opt(Parrot_Interp, int n, char *argv);
-
-PARROT_EXPORT void Parrot_runcode(Parrot_Interp, int argc, char **argv);
+PARROT_EXPORT void Parrot_runcode(Parrot_Interp, int argc, const char **argv);
PARROT_EXPORT Parrot_PMC Parrot_compile_string(Parrot_Interp,
Parrot_String type, const char *code, Parrot_String *error);
@@ -82,8 +78,6 @@
addition to libparrot */
void Parrot_set_config_hash(void);
-int Parrot_revision(void);
-
#endif /* PARROT_EMBED_H_GUARD */
/*
Modified: branches/avl_string_cache/include/parrot/encoding.h
==============================================================================
--- branches/avl_string_cache/include/parrot/encoding.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/encoding.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -15,21 +15,16 @@
#include "parrot/parrot.h"
-typedef STRING * (*encoding_to_encoding_t)(PARROT_INTERP, NOTNULL(STRING *src), NULLOK(STRING *dest));
+typedef STRING * (*encoding_to_encoding_t)(PARROT_INTERP, NOTNULL(const STRING *src));
typedef UINTVAL (*encoding_get_codepoint_t)(PARROT_INTERP, const STRING *src, UINTVAL offset);
-typedef void (*encoding_set_codepoint_t)(PARROT_INTERP, STRING *src, UINTVAL offset, UINTVAL codepoint);
typedef UINTVAL (*encoding_get_byte_t)(PARROT_INTERP, const STRING *src, UINTVAL offset);
typedef void (*encoding_set_byte_t)(PARROT_INTERP, const STRING *src, UINTVAL offset, UINTVAL count);
typedef STRING *(*encoding_get_codepoints_t)(PARROT_INTERP, STRING *src, UINTVAL offset, UINTVAL count);
typedef STRING *(*encoding_get_bytes_t)(PARROT_INTERP, STRING *src, UINTVAL offset, UINTVAL count);
-typedef STRING *(*encoding_get_codepoints_inplace_t)(PARROT_INTERP, STRING *src, UINTVAL offset, UINTVAL count, STRING *dest_string);
-typedef STRING *(*encoding_get_bytes_inplace_t)(PARROT_INTERP, STRING *src, UINTVAL offset, UINTVAL count, STRING *dest_string);
-typedef void (*encoding_set_codepoints_t)(PARROT_INTERP, STRING *src, UINTVAL offset, UINTVAL count, STRING *new_bytes);
-typedef void (*encoding_set_bytes_t)(PARROT_INTERP, STRING *src, UINTVAL offset, UINTVAL count, STRING *new_bytes);
-typedef void (*encoding_become_encoding_t)(PARROT_INTERP, STRING *src);
-typedef UINTVAL (*encoding_codepoints_t)(PARROT_INTERP, STRING *src);
-typedef UINTVAL (*encoding_bytes_t)(PARROT_INTERP, STRING *src);
+typedef UINTVAL (*encoding_codepoints_t)(PARROT_INTERP, ARGIN(const STRING *src));
+typedef UINTVAL (*encoding_bytes_t)(PARROT_INTERP, ARGIN(const STRING *src));
typedef UINTVAL (*encoding_find_cclass_t)(PARROT_INTERP, STRING *s, const INTVAL *typetable, INTVAL flags, UINTVAL offset, UINTVAL count);
+typedef size_t (*encoding_hash_t)(PARROT_INTERP, const STRING *s, size_t hashval);
/* iterator support */
@@ -43,20 +38,15 @@
UINTVAL max_bytes_per_codepoint;
encoding_to_encoding_t to_encoding;
encoding_get_codepoint_t get_codepoint;
- encoding_set_codepoint_t set_codepoint;
encoding_get_byte_t get_byte;
encoding_set_byte_t set_byte;
encoding_get_codepoints_t get_codepoints;
- encoding_get_codepoints_inplace_t get_codepoints_inplace;
encoding_get_bytes_t get_bytes;
- encoding_get_bytes_inplace_t get_bytes_inplace;
- encoding_set_codepoints_t set_codepoints;
- encoding_set_bytes_t set_bytes;
- encoding_become_encoding_t become_encoding;
encoding_codepoints_t codepoints;
encoding_bytes_t bytes;
encoding_iter_init_t iter_init;
encoding_find_cclass_t find_cclass;
+ encoding_hash_t hash;
};
typedef struct _encoding ENCODING;
@@ -79,21 +69,25 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
const ENCODING * Parrot_default_encoding(SHIM_INTERP);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
const char * Parrot_encoding_c_name(SHIM_INTERP, INTVAL number_of_encoding);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
STRING* Parrot_encoding_name(SHIM_INTERP, INTVAL number_of_encoding);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
INTVAL Parrot_encoding_number(PARROT_INTERP,
ARGIN(const STRING *encodingname))
@@ -101,11 +95,13 @@
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
INTVAL Parrot_encoding_number_of_str(SHIM_INTERP, ARGIN(const STRING *src))
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
const ENCODING * Parrot_find_encoding(SHIM_INTERP,
@@ -122,6 +118,7 @@
__attribute__nonnull__(3);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
const ENCODING* Parrot_get_encoding(SHIM_INTERP, INTVAL number_of_encoding);
@@ -199,26 +196,14 @@
((src)->encoding)->max_bytes_per_codepoint
#define ENCODING_GET_CODEPOINT(i, src, offset) \
((src)->encoding)->get_codepoint((i), (src), (offset))
-#define ENCODING_SET_CODEPOINT(i, src, offset, codepoint) \
- ((src)->encoding)->set_codepoint((i), (src), (offset), (codepoint))
#define ENCODING_GET_BYTE(i, src, offset) \
((src)->encoding)->get_byte((i), (src), (offset))
#define ENCODING_SET_BYTE(i, src, offset, value) \
((src)->encoding)->set_byte((i), (src), (offset), (value))
#define ENCODING_GET_CODEPOINTS(i, src, offset, count) \
((src)->encoding)->get_codepoints((i), (src), (offset), (count))
-#define ENCODING_GET_CODEPOINTS_INPLACE(i, src, offset, count, dest) \
- ((src)->encoding)->get_codepoints_inplace((i), (src), (offset), (count), (dest))
#define ENCODING_GET_BYTES(i, src, offset, count) \
((src)->encoding)->get_bytes((i), (src), (offset), (count))
-#define ENCODING_GET_BYTES_INPLACE(i, src, offset, count, dest) \
- ((src)->encoding)->get_bytes_inplace((i), (src), (offset), (count), (dest))
-#define ENCODING_SET_CODEPOINTS(i, src, offset, count, newdata) \
- ((src)->encoding)->set_codepoints((i), (src), (offset), (count), (newdata))
-#define ENCODING_SET_BYTES(i, src, offset, count, newdata) \
- ((src)->encoding)->set_bytes((i), (src), (offset), (count), (newdata))
-#define ENCODING_BECOME_ENCODING(i, src) \
- ((src)->encoding)->become_encoding((i), (src))
#define ENCODING_CODEPOINTS(i, src) \
((src)->encoding)->codepoints((i), (src))
#define ENCODING_BYTES(i, src) \
@@ -227,6 +212,8 @@
((src)->encoding)->iter_init((i), (src), (iter))
#define ENCODING_FIND_CCLASS(i, src, typetable, flags, pos, end) \
((src)->encoding)->find_cclass((i), (src), (typetable), (flags), (pos), (end))
+#define ENCODING_HASH(i, src, seed) \
+ ((src)->encoding)->hash((i), (src), (seed))
#endif /* PARROT_ENCODING_H_GUARD */
Modified: branches/avl_string_cache/include/parrot/exceptions.h
==============================================================================
--- branches/avl_string_cache/include/parrot/exceptions.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/exceptions.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -118,6 +118,7 @@
PARROT_EXPORT
PARROT_DOES_NOT_RETURN
+PARROT_COLD
void exit_fatal(int exitcode, ARGIN(const char *format), ...)
__attribute__nonnull__(2);
@@ -133,6 +134,7 @@
PARROT_EXPORT
PARROT_DOES_NOT_RETURN
+PARROT_COLD
void Parrot_confess(
ARGIN(const char *cond),
ARGIN(const char *file),
@@ -160,6 +162,7 @@
PARROT_EXPORT
PARROT_DOES_NOT_RETURN
+PARROT_COLD
void Parrot_ex_rethrow_from_c(PARROT_INTERP, ARGIN(PMC *exception))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -173,12 +176,14 @@
PARROT_EXPORT
PARROT_DOES_NOT_RETURN
+PARROT_COLD
void Parrot_ex_throw_from_c(PARROT_INTERP, ARGIN(PMC *exception))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
PARROT_DOES_NOT_RETURN
+PARROT_COLD
void Parrot_ex_throw_from_c_args(PARROT_INTERP,
SHIM(void *ret_addr),
int exitcode,
@@ -206,11 +211,13 @@
__attribute__nonnull__(4);
PARROT_DOES_NOT_RETURN
+PARROT_COLD
void die_from_exception(PARROT_INTERP, ARGIN(PMC *exception))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_DOES_NOT_RETURN
+PARROT_COLD
void do_panic(
NULLOK_INTERP,
ARGIN_NULLOK(const char *message),
Modified: branches/avl_string_cache/include/parrot/exit.h
==============================================================================
--- branches/avl_string_cache/include/parrot/exit.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/exit.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -29,6 +29,7 @@
PARROT_EXPORT
PARROT_DOES_NOT_RETURN
+PARROT_COLD
void Parrot_exit(PARROT_INTERP, int status)
__attribute__nonnull__(1);
Modified: branches/avl_string_cache/include/parrot/extend.h
==============================================================================
--- branches/avl_string_cache/include/parrot/extend.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/extend.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -88,7 +88,7 @@
__attribute__nonnull__(3);
PARROT_EXPORT
-void Parrot_free_cstring(ARGIN_NULLOK(char *string));
+void Parrot_free_cstring(ARGFREE(char *string));
PARROT_EXPORT
Parrot_Int Parrot_get_intreg(PARROT_INTERP, Parrot_Int regnum)
@@ -131,13 +131,15 @@
PARROT_EXPORT
PARROT_MALLOC
-PARROT_CAN_RETURN_NULL
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
char * Parrot_PMC_get_cstring(PARROT_INTERP, Parrot_PMC pmc)
__attribute__nonnull__(1);
PARROT_EXPORT
PARROT_MALLOC
-PARROT_CAN_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
char * Parrot_PMC_get_cstring_intkey(PARROT_INTERP,
Parrot_PMC pmc,
Parrot_Int key)
@@ -145,7 +147,8 @@
PARROT_EXPORT
PARROT_MALLOC
-PARROT_CAN_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
char * Parrot_PMC_get_cstringn(PARROT_INTERP,
ARGIN(Parrot_PMC pmc),
ARGOUT(Parrot_Int *length))
@@ -156,7 +159,8 @@
PARROT_EXPORT
PARROT_MALLOC
-PARROT_CAN_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
char * Parrot_PMC_get_cstringn_intkey(PARROT_INTERP,
ARGIN(Parrot_PMC pmc),
ARGOUT(Parrot_Int *length),
Modified: branches/avl_string_cache/include/parrot/gc_api.h
==============================================================================
--- branches/avl_string_cache/include/parrot/gc_api.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/gc_api.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/* gc_api.h
- * Copyright (C) 2001-2009, Parrot Foundation.
+ * Copyright (C) 2001-2010, Parrot Foundation.
* SVN Info
* $Id$
* Overview:
@@ -136,9 +136,8 @@
FUNC_MODIFIES(*obj);
PARROT_EXPORT
-void Parrot_gc_mark_STRING_alive_fun(PARROT_INTERP,
+void Parrot_gc_mark_STRING_alive_fun(SHIM_INTERP,
ARGMOD_NULLOK(STRING *obj))
- __attribute__nonnull__(1)
FUNC_MODIFIES(*obj);
PARROT_EXPORT
@@ -349,8 +348,7 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(obj))
#define ASSERT_ARGS_Parrot_gc_mark_STRING_alive_fun \
- __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_Parrot_gc_reallocate_memory_chunk \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
@@ -470,8 +468,6 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: src/gc/api.c */
-void Parrot_gc_inf_init(PARROT_INTERP);
-
#if defined(NDEBUG) && defined(PARROT_IN_CORE)
# define Parrot_gc_mark_STRING_alive(interp, obj) \
do if (! STRING_IS_NULL(obj)) PObj_live_SET(obj); while (0)
Modified: branches/avl_string_cache/include/parrot/global_setup.h
==============================================================================
--- branches/avl_string_cache/include/parrot/global_setup.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/global_setup.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -17,6 +17,13 @@
#include "parrot/config.h"
#include "parrot/interpreter.h"
+void Parrot_register_core_pmcs(PARROT_INTERP, ARGIN(PMC *registry))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void Parrot_initialize_core_pmcs(PARROT_INTERP, int pass)
+ __attribute__nonnull__(1);
+
/* HEADERIZER BEGIN: src/global_setup.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
Modified: branches/avl_string_cache/include/parrot/hash.h
==============================================================================
--- branches/avl_string_cache/include/parrot/hash.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/hash.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -113,10 +113,9 @@
FUNC_MODIFIES(*hash);
PARROT_EXPORT
-void parrot_hash_destroy(PARROT_INTERP, ARGMOD(Hash *hash))
+void parrot_hash_destroy(PARROT_INTERP, ARGFREE_NOTNULL(Hash *hash))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*hash);
+ __attribute__nonnull__(2);
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
@@ -131,7 +130,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
void * parrot_hash_get(PARROT_INTERP,
- ARGIN(Hash *hash),
+ ARGIN(const Hash *hash),
ARGIN(const void *key))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
@@ -185,9 +184,10 @@
FUNC_MODIFIES(*pinfo);
PARROT_EXPORT
-void parrot_mark_hash(PARROT_INTERP, ARGIN(Hash *hash))
+void parrot_mark_hash(PARROT_INTERP, ARGMOD(Hash *hash))
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*hash);
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
@@ -224,15 +224,13 @@
__attribute__nonnull__(2);
PARROT_CAN_RETURN_NULL
-void* hash_key_from_int(PARROT_INTERP,
- ARGIN(const Hash * const hash),
- INTVAL key)
+void* hash_key_from_int(PARROT_INTERP, ARGIN(const Hash *hash), INTVAL key)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_CAN_RETURN_NULL
void* hash_key_from_pmc(PARROT_INTERP,
- ARGIN(const Hash * const hash),
+ ARGIN(const Hash *hash),
ARGIN(PMC *key))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
@@ -240,14 +238,14 @@
PARROT_CAN_RETURN_NULL
void* hash_key_from_string(PARROT_INTERP,
- ARGIN(const Hash * const hash),
+ ARGIN(const Hash *hash),
ARGIN(STRING *key))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3);
INTVAL hash_key_to_int(PARROT_INTERP,
- ARGIN(const Hash * const hash),
+ ARGIN(const Hash *hash),
ARGIN_NULLOK(void *key))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -262,61 +260,61 @@
PARROT_CANNOT_RETURN_NULL
STRING* hash_key_to_string(PARROT_INTERP,
- ARGIN(const Hash * const hash),
+ ARGIN(const Hash *hash),
ARGIN_NULLOK(void *key))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_CAN_RETURN_NULL
void* hash_value_from_int(PARROT_INTERP,
- ARGIN(const Hash * const hash),
+ ARGIN(const Hash *hash),
INTVAL value)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_CAN_RETURN_NULL
void* hash_value_from_number(PARROT_INTERP,
- ARGIN(const Hash * const hash),
+ ARGIN(const Hash *hash),
FLOATVAL value)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_CAN_RETURN_NULL
void* hash_value_from_pmc(PARROT_INTERP,
- ARGIN(const Hash * const hash),
+ ARGIN(const Hash *hash),
ARGIN_NULLOK(PMC *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_CAN_RETURN_NULL
void* hash_value_from_string(PARROT_INTERP,
- ARGIN(const Hash * const hash),
+ ARGIN(const Hash *hash),
ARGIN_NULLOK(STRING *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
INTVAL hash_value_to_int(PARROT_INTERP,
- ARGIN(const Hash * const hash),
+ ARGIN(const Hash *hash),
ARGIN_NULLOK(void *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
FLOATVAL hash_value_to_number(PARROT_INTERP,
- ARGIN(const Hash * const hash),
+ ARGIN(const Hash *hash),
ARGIN_NULLOK(void *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_CANNOT_RETURN_NULL
PMC* hash_value_to_pmc(PARROT_INTERP,
- ARGIN(const Hash * const hash),
+ ARGIN(const Hash *hash),
ARGIN_NULLOK(void *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_CANNOT_RETURN_NULL
STRING* hash_value_to_string(PARROT_INTERP,
- ARGIN(const Hash * const hash),
+ ARGIN(const Hash *hash),
ARGIN_NULLOK(void *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -374,15 +372,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_PURE_FUNCTION
-int PMC_compare(PARROT_INTERP, ARGIN(PMC *a), ARGIN_NULLOK(PMC *b))
+int PMC_compare(PARROT_INTERP, ARGIN(PMC *a), ARGIN(PMC *b))
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_PURE_FUNCTION
-int pointer_compare(SHIM_INTERP,
- ARGIN_NULLOK(const void *a),
- ARGIN_NULLOK(const void *b));
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
PARROT_WARN_UNUSED_RESULT
int STRING_compare(PARROT_INTERP,
@@ -511,8 +504,8 @@
, PARROT_ASSERT_ARG(keyhash))
#define ASSERT_ARGS_PMC_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(a))
-#define ASSERT_ARGS_pointer_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+ , PARROT_ASSERT_ARG(a) \
+ , PARROT_ASSERT_ARG(b))
#define ASSERT_ARGS_STRING_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(search_key))
Modified: branches/avl_string_cache/include/parrot/imcc.h
==============================================================================
--- branches/avl_string_cache/include/parrot/imcc.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/imcc.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -9,7 +9,7 @@
PARROT_EXPORT void imcc_initialize(PARROT_INTERP);
PARROT_EXPORT void imcc_start_handling_flags(PARROT_INTERP);
PARROT_EXPORT int imcc_handle_flag(PARROT_INTERP, struct longopt_opt_info *opt, Parrot_Run_core_t *core);
-PARROT_EXPORT int imcc_run(PARROT_INTERP, const char *sourcefile, int argc, char **argv);
+PARROT_EXPORT int imcc_run(PARROT_INTERP, const char *sourcefile, int argc, const char **argv);
#endif /* PARROT_IMCC_H_GUARD */
Modified: branches/avl_string_cache/include/parrot/interpreter.h
==============================================================================
--- branches/avl_string_cache/include/parrot/interpreter.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/interpreter.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -315,6 +315,8 @@
IGLOBALS_COMPREG_HASH,
IGLOBALS_ARGV_LIST,
IGLOBALS_NCI_FUNCS,
+ IGLOBALS_NCI_FB_CB,
+ IGLOBALS_NCI_FB_UD,
IGLOBALS_INTERPRETER, /* this interpreter as ParrotInterpreter PMC */
IGLOBALS_DYN_LIBS, /* Hash of ParrotLibrary loaded dynamic ext */
IGLOBALS_CONFIG_HASH,
@@ -330,30 +332,28 @@
#define PNCONST PF_NCONST(interp->code)
/* TODO - Make this a config option */
-/* Splint complains about PMCNULL's storage, so don't use it. */
-#ifdef S_SPLINT_S
-# define PARROT_CATCH_NULL 0
-#else
-# define PARROT_CATCH_NULL 1
+#ifndef PARROT_CATCH_NULL
+# ifdef S_SPLINT_S
+# define PARROT_CATCH_NULL 0
+# else
+# define PARROT_CATCH_NULL 1
+# endif
#endif
+/* Maybe PMC_IS_NULL(interp, pmc) ? */
#if PARROT_CATCH_NULL
PARROT_DATA PMC *PMCNULL; /* Holds single Null PMC */
+PARROT_DATA STRING *STRINGNULL; /* a single Null STRING */
+# define PMC_IS_NULL(pmc) ((pmc) == PMCNULL || (pmc) == NULL)
+# define STRING_IS_NULL(s) ((s) == STRINGNULL || (s) == NULL)
#else
-# define PMCNULL ((PMC *)NULL)
+# define PMCNULL ((PMC *)NULL)
+# define STRINGNULL ((STRING *)NULL)
+# define PMC_IS_NULL(pmc) ((pmc) == NULL)
+# define STRING_IS_NULL(string) ((string) == NULL)
#endif /* PARROT_CATCH_NULL */
-/* Maybe PMC_IS_NULL(interp, pmc) ? */
-#if PARROT_CATCH_NULL
-# define PMC_IS_NULL(pmc) ((pmc) == PMCNULL || (pmc) == NULL)
-#else
-# define PMC_IS_NULL(pmc) (pmc) == NULL
-#endif
-
-PARROT_DATA STRING *STRINGNULL; /* a single Null STRING */
-
-#define STRING_IS_NULL(s) ((s) == STRINGNULL || (s) == NULL)
-#define STRING_IS_EMPTY(s) !(int)(s)->strlen
+#define STRING_IS_EMPTY(s) ((s)->strlen == 0)
/* &gen_from_def(sysinfo.pasm) prefix(SYSINFO_) */
@@ -581,21 +581,10 @@
/* HEADERIZER END: src/interp/inter_misc.c */
-/* interpreter.c */
-void runops_int(Interp *, size_t offset);
-void exec_init_prederef(PARROT_INTERP,
- void *prederef_arena);
-void prepare_for_run(PARROT_INTERP);
-PARROT_EXPORT void dynop_register(PARROT_INTERP, PMC *op_lib);
-
-/* interpreter.pmc */
+/* parrotinterpreter.pmc */
+/* XXX Would be nice if this could live in some headerized grouping */
void clone_interpreter(Parrot_Interp dest, Parrot_Interp self, INTVAL flags);
-void Parrot_setup_event_func_ptrs(PARROT_INTERP);
-
-PARROT_EXPORT void disable_event_checking(PARROT_INTERP);
-PARROT_EXPORT void enable_event_checking(PARROT_INTERP);
-
#else /* !PARROT_IN_CORE */
typedef void * *(*native_func_t)(PARROT_INTERP,
Modified: branches/avl_string_cache/include/parrot/io.h
==============================================================================
--- branches/avl_string_cache/include/parrot/io.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/io.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/* io.h
- * Copyright (C) 2001-2003, Parrot Foundation.
+ * Copyright (C) 2001-2010, Parrot Foundation.
* SVN Info
* $Id$
* Overview:
@@ -453,14 +453,17 @@
FUNC_MODIFIES(*filehandle)
FUNC_MODIFIES(*buf);
+PARROT_WARN_UNUSED_RESULT
size_t Parrot_io_read_buffer(PARROT_INTERP,
ARGMOD(PMC *filehandle),
- ARGIN(STRING **buf))
+ ARGMOD(STRING **buf))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
- FUNC_MODIFIES(*filehandle);
+ FUNC_MODIFIES(*filehandle)
+ FUNC_MODIFIES(*buf);
+PARROT_WARN_UNUSED_RESULT
size_t Parrot_io_readline_buffer(PARROT_INTERP,
ARGMOD(PMC *filehandle),
ARGOUT(STRING **buf))
@@ -584,24 +587,29 @@
FUNC_MODIFIES(*pmc);
PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
unsigned char * Parrot_io_get_buffer_end(SHIM_INTERP,
- ARGIN_NULLOK(PMC *filehandle));
+ ARGIN(const PMC *filehandle))
+ __attribute__nonnull__(2);
PARROT_EXPORT
PARROT_CAN_RETURN_NULL
unsigned char * Parrot_io_get_buffer_next(SHIM_INTERP,
- ARGIN(PMC *filehandle))
+ ARGIN(const PMC *filehandle))
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
unsigned char * Parrot_io_get_buffer_start(SHIM_INTERP,
ARGIN(PMC *filehandle))
__attribute__nonnull__(2);
PARROT_EXPORT
-PIOOFF_T Parrot_io_get_file_position(SHIM_INTERP, ARGIN(PMC *filehandle))
+PARROT_WARN_UNUSED_RESULT
+PIOOFF_T Parrot_io_get_file_position(SHIM_INTERP,
+ ARGIN(const PMC *filehandle))
__attribute__nonnull__(2);
PARROT_EXPORT
@@ -613,24 +621,26 @@
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
PIOOFF_T Parrot_io_get_last_file_position(SHIM_INTERP,
- ARGIN(PMC *filehandle))
+ ARGIN(const PMC *filehandle))
__attribute__nonnull__(2);
PARROT_EXPORT
-PIOHANDLE Parrot_io_get_os_handle(SHIM_INTERP, ARGIN(PMC *filehandle))
+PARROT_WARN_UNUSED_RESULT
+PIOHANDLE Parrot_io_get_os_handle(SHIM_INTERP, ARGIN(const PMC *filehandle))
__attribute__nonnull__(2);
PARROT_EXPORT
-INTVAL Parrot_io_is_closed_filehandle(PARROT_INTERP, ARGMOD(PMC *pmc))
+PARROT_WARN_UNUSED_RESULT
+INTVAL Parrot_io_is_closed_filehandle(PARROT_INTERP, ARGIN(const PMC *pmc))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*pmc);
+ __attribute__nonnull__(2);
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
INTVAL Parrot_io_is_encoding(PARROT_INTERP,
- ARGIN(PMC *filehandle),
+ ARGIN(const PMC *filehandle),
ARGIN(STRING *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
@@ -639,14 +649,15 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
INTVAL Parrot_io_parse_open_flags(PARROT_INTERP,
- ARGIN_NULLOK(STRING *mode_str))
+ ARGIN_NULLOK(const STRING *mode_str))
__attribute__nonnull__(1);
PARROT_EXPORT
void Parrot_io_set_file_position(SHIM_INTERP,
- ARGIN(PMC *filehandle),
+ ARGMOD(PMC *filehandle),
PIOOFF_T file_pos)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*filehandle);
PARROT_EXPORT
void Parrot_io_set_file_size(SHIM_INTERP,
@@ -660,21 +671,24 @@
PARROT_EXPORT
void Parrot_io_set_os_handle(SHIM_INTERP,
- ARGIN(PMC *filehandle),
+ ARGMOD(PMC *filehandle),
PIOHANDLE file_descriptor)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*filehandle);
PARROT_CAN_RETURN_NULL
-void Parrot_io_clear_buffer(PARROT_INTERP, ARGIN(PMC *filehandle))
+void Parrot_io_clear_buffer(PARROT_INTERP, ARGMOD(PMC *filehandle))
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*filehandle);
PARROT_CAN_RETURN_NULL
-INTVAL Parrot_io_get_buffer_flags(SHIM_INTERP, ARGIN(PMC *filehandle))
+INTVAL Parrot_io_get_buffer_flags(SHIM_INTERP, ARGIN(const PMC *filehandle))
__attribute__nonnull__(2);
PARROT_CAN_RETURN_NULL
-size_t Parrot_io_get_buffer_size(SHIM_INTERP, ARGIN(PMC *filehandle))
+PARROT_WARN_UNUSED_RESULT
+size_t Parrot_io_get_buffer_size(SHIM_INTERP, ARGIN(const PMC *filehandle))
__attribute__nonnull__(2);
PARROT_WARN_UNUSED_RESULT
@@ -687,29 +701,34 @@
FUNC_MODIFIES(*buf);
void Parrot_io_set_buffer_end(SHIM_INTERP,
- ARGIN(PMC *filehandle),
+ ARGMOD(PMC *filehandle),
ARGIN_NULLOK(unsigned char *new_end))
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*filehandle);
void Parrot_io_set_buffer_flags(SHIM_INTERP,
- ARGIN(PMC *filehandle),
+ ARGMOD(PMC *filehandle),
INTVAL new_flags)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*filehandle);
void Parrot_io_set_buffer_next(SHIM_INTERP,
- ARGIN(PMC *filehandle),
+ ARGMOD(PMC *filehandle),
ARGIN_NULLOK(unsigned char *new_next))
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*filehandle);
void Parrot_io_set_buffer_size(SHIM_INTERP,
- ARGIN(PMC *filehandle),
+ ARGMOD(PMC *filehandle),
size_t new_size)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*filehandle);
void Parrot_io_set_buffer_start(SHIM_INTERP,
- ARGIN(PMC *filehandle),
+ ARGMOD(PMC *filehandle),
ARGIN_NULLOK(unsigned char *new_start))
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*filehandle);
#define ASSERT_ARGS_Parrot_io_close_filehandle __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -717,7 +736,8 @@
#define ASSERT_ARGS_Parrot_io_flush_filehandle __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc))
-#define ASSERT_ARGS_Parrot_io_get_buffer_end __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_Parrot_io_get_buffer_end __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(filehandle))
#define ASSERT_ARGS_Parrot_io_get_buffer_next __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(filehandle))
#define ASSERT_ARGS_Parrot_io_get_buffer_start __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -895,25 +915,6 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: src/io/socket_api.c */
-/* Put platform specific macros here if you must */
-#ifdef PIO_OS_WIN32
-extern STRING *PIO_sockaddr_in(PARROT_INTERP, unsigned short, STRING *);
-extern INTVAL PIO_win32_getblksize(PIOHANDLE fd);
-# define PIO_getblksize(x) PIO_win32_getblksize(x)
-#endif
-
-#ifdef PIO_OS_UNIX
-extern STRING *PIO_sockaddr_in(PARROT_INTERP, unsigned short, STRING *);
-extern INTVAL PIO_unix_getblksize(PIOHANDLE fd);
-# define PIO_getblksize(x) PIO_unix_getblksize(x)
-#endif
-
-#ifdef PIO_OS_STDIO
-extern INTVAL PIO_stdio_getblksize(PIOHANDLE fd);
-# define PIO_sockaddr_in(i, p, a)
-# define PIO_getblksize(x) PIO_stdio_getblksize(x)
-#endif
-
/*
* pioctl argument constants. These don't have to
* be unique across io commands.
Modified: branches/avl_string_cache/include/parrot/io_unix.h
==============================================================================
--- branches/avl_string_cache/include/parrot/io_unix.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/io_unix.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -39,11 +39,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
PMC * Parrot_io_fdopen_unix(PARROT_INTERP,
- ARGMOD(PMC *filehandle),
+ ARGMOD_NULLOK(PMC *filehandle),
PIOHANDLE fd,
INTVAL flags)
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
FUNC_MODIFIES(*filehandle);
INTVAL Parrot_io_flush_unix(PARROT_INTERP, ARGMOD(PMC *filehandle))
@@ -55,7 +54,7 @@
INTVAL Parrot_io_init_unix(PARROT_INTERP)
__attribute__nonnull__(1);
-INTVAL Parrot_io_is_closed_unix(PARROT_INTERP, ARGIN(PMC *filehandle))
+INTVAL Parrot_io_is_closed_unix(PARROT_INTERP, ARGIN(const PMC *filehandle))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -133,8 +132,7 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(filehandle))
#define ASSERT_ARGS_Parrot_io_fdopen_unix __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(filehandle))
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_io_flush_unix __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(filehandle))
Modified: branches/avl_string_cache/include/parrot/key.h
==============================================================================
--- branches/avl_string_cache/include/parrot/key.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/key.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -161,6 +161,7 @@
__attribute__nonnull__(1);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
INTVAL key_type(SHIM_INTERP, ARGIN(const PMC *key))
__attribute__nonnull__(2);
Modified: branches/avl_string_cache/include/parrot/misc.h
==============================================================================
--- branches/avl_string_cache/include/parrot/misc.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/misc.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -321,12 +321,6 @@
#endif /* IN_SPF_SYSTEM */
-
-/*
- * generated src/revision.c
- */
-PARROT_EXPORT int Parrot_config_revision(void);
-
#endif /* PARROT_MISC_H_GUARD */
/*
Modified: branches/avl_string_cache/include/parrot/nci.h
==============================================================================
--- branches/avl_string_cache/include/parrot/nci.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/nci.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -15,14 +15,26 @@
#include "parrot/parrot.h"
+typedef PMC *(*nci_fb_func_t)(PMC *user_data, STRING *signature);
typedef void (*nci_thunk_t)(PARROT_INTERP, PMC *, PMC *);
-PMC *build_call_func(PARROT_INTERP, NOTNULL(STRING *signature));
-
void Parrot_nci_load_core_thunks(PARROT_INTERP);
-
void Parrot_nci_load_extra_thunks(PARROT_INTERP);
+/* HEADERIZER BEGIN: src/nci/api.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+PARROT_CANNOT_RETURN_NULL
+PMC * build_call_func(PARROT_INTERP, ARGIN(STRING *signature))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_build_call_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(signature))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: src/nci/api.c */
+
#endif /* PARROT_NCI_H_GUARD */
/*
Modified: branches/avl_string_cache/include/parrot/oo.h
==============================================================================
--- branches/avl_string_cache/include/parrot/oo.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/oo.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -148,11 +148,9 @@
PARROT_CANNOT_RETURN_NULL
PMC * Parrot_oo_clone_object(PARROT_INTERP,
ARGIN(PMC *pmc),
- ARGMOD_NULLOK(PMC *class_),
ARGMOD_NULLOK(PMC *dest))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
- FUNC_MODIFIES(*class_)
FUNC_MODIFIES(*dest);
void Parrot_oo_extract_methods_from_namespace(PARROT_INTERP,
Modified: branches/avl_string_cache/include/parrot/packfile.h
==============================================================================
--- branches/avl_string_cache/include/parrot/packfile.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/packfile.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -453,11 +453,12 @@
PARROT_EXPORT
void PackFile_add_segment(PARROT_INTERP,
ARGMOD(PackFile_Directory *dir),
- ARGIN(PackFile_Segment *seg))
+ ARGMOD(PackFile_Segment *seg))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
- FUNC_MODIFIES(*dir);
+ FUNC_MODIFIES(*dir)
+ FUNC_MODIFIES(*seg);
PARROT_EXPORT
void PackFile_Annotations_add_entry(PARROT_INTERP,
@@ -562,8 +563,9 @@
__attribute__nonnull__(3);
PARROT_EXPORT
-void PackFile_destroy(PARROT_INTERP, ARGMOD_NULLOK(PackFile *pf))
+void PackFile_destroy(PARROT_INTERP, ARGMOD(PackFile *pf))
__attribute__nonnull__(1)
+ __attribute__nonnull__(2)
FUNC_MODIFIES(*pf);
PARROT_EXPORT
@@ -580,7 +582,7 @@
PARROT_CAN_RETURN_NULL
PackFile_Segment * PackFile_find_segment(PARROT_INTERP,
ARGIN_NULLOK(PackFile_Directory *dir),
- ARGIN(STRING *name),
+ ARGIN(const STRING *name),
int sub_dir)
__attribute__nonnull__(1)
__attribute__nonnull__(3);
@@ -808,10 +810,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-opcode_t * PackFile_Annotations_pack(PARROT_INTERP,
+opcode_t * PackFile_Annotations_pack(SHIM_INTERP,
ARGIN(PackFile_Segment *seg),
ARGMOD(opcode_t *cursor))
- __attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
FUNC_MODIFIES(*cursor);
@@ -880,7 +881,8 @@
, PARROT_ASSERT_ARG(seg) \
, PARROT_ASSERT_ARG(cursor))
#define ASSERT_ARGS_PackFile_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(pf))
#define ASSERT_ARGS_PackFile_find_fixup_entry __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(name))
@@ -976,8 +978,7 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self))
#define ASSERT_ARGS_PackFile_Annotations_pack __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(seg) \
+ PARROT_ASSERT_ARG(seg) \
, PARROT_ASSERT_ARG(cursor))
#define ASSERT_ARGS_PackFile_Annotations_packed_size \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/avl_string_cache/include/parrot/pmc.h
==============================================================================
--- branches/avl_string_cache/include/parrot/pmc.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/pmc.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -54,6 +54,7 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
+PARROT_HOT
INTVAL Parrot_pmc_is_null(SHIM_INTERP, ARGIN_NULLOK(const PMC *pmc));
PARROT_EXPORT
@@ -76,6 +77,13 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
+PMC * Parrot_pmc_new_constant_init_int(PARROT_INTERP,
+ INTVAL base_type,
+ INTVAL init)
+ __attribute__nonnull__(1);
+
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
PMC * Parrot_pmc_new_constant_noinit(PARROT_INTERP, INTVAL base_type)
__attribute__nonnull__(1);
@@ -109,7 +117,7 @@
PMC * Parrot_pmc_reuse(PARROT_INTERP,
ARGIN(PMC *pmc),
INTVAL new_type,
- UINTVAL flags)
+ NULLOK(UINTVAL flags))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -132,7 +140,7 @@
ARGIN(PMC *pmc),
INTVAL new_type,
ARGIN(PMC *init),
- UINTVAL flags)
+ NULLOK(UINTVAL flags))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(4);
@@ -176,6 +184,9 @@
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_pmc_new_constant_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_pmc_new_constant_init_int \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_pmc_new_constant_noinit \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
Modified: branches/avl_string_cache/include/parrot/runcore_api.h
==============================================================================
--- branches/avl_string_cache/include/parrot/runcore_api.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/runcore_api.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -83,6 +83,11 @@
__attribute__nonnull__(1);
PARROT_EXPORT
+void dynop_register(PARROT_INTERP, ARGIN(PMC *lib_pmc))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
void enable_event_checking(PARROT_INTERP)
__attribute__nonnull__(1);
@@ -97,10 +102,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-void dynop_register(PARROT_INTERP, ARGIN(PMC *lib_pmc))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
void Parrot_runcore_destroy(PARROT_INTERP)
__attribute__nonnull__(1);
@@ -118,6 +119,9 @@
#define ASSERT_ARGS_disable_event_checking __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_dynop_register __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(lib_pmc))
#define ASSERT_ARGS_enable_event_checking __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_runcore_register __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -126,9 +130,6 @@
#define ASSERT_ARGS_Parrot_runcore_switch __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(name))
-#define ASSERT_ARGS_dynop_register __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(lib_pmc))
#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 = (\
@@ -147,9 +148,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-oplib_init_f get_core_op_lib_init(PARROT_INTERP,
+oplib_init_f get_core_op_lib_init(SHIM_INTERP,
ARGIN(Parrot_runcore_t *runcore))
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_CAN_RETURN_NULL
@@ -186,8 +186,7 @@
__attribute__nonnull__(1);
#define ASSERT_ARGS_get_core_op_lib_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(runcore))
+ PARROT_ASSERT_ARG(runcore))
#define ASSERT_ARGS_init_prederef __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(runcore))
Modified: branches/avl_string_cache/include/parrot/string_funcs.h
==============================================================================
--- branches/avl_string_cache/include/parrot/string_funcs.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/string_funcs.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,6 +1,5 @@
-#define ASSERT_ARGS_STRING_is_null __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
/* string_funcs.h
- * Copyright (C) 2001-2008, Parrot Foundation.
+ * Copyright (C) 2001-2010, Parrot Foundation.
* SVN Info
* $Id$
* Overview:
@@ -28,48 +27,31 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-STRING * Parrot_str_append(PARROT_INTERP,
- ARGMOD_NULLOK(STRING *a),
- ARGIN_NULLOK(STRING *b))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*a);
-
-PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
STRING * Parrot_str_bitwise_and(PARROT_INTERP,
ARGIN_NULLOK(const STRING *s1),
- ARGIN_NULLOK(const STRING *s2),
- ARGOUT_NULLOK(STRING **dest))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*dest);
+ ARGIN_NULLOK(const STRING *s2))
+ __attribute__nonnull__(1);
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
STRING * Parrot_str_bitwise_not(PARROT_INTERP,
- ARGIN_NULLOK(const STRING *s),
- ARGOUT_NULLOK(STRING **dest))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*dest);
+ ARGIN_NULLOK(const STRING *s))
+ __attribute__nonnull__(1);
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
STRING * Parrot_str_bitwise_or(PARROT_INTERP,
ARGIN_NULLOK(const STRING *s1),
- ARGIN_NULLOK(const STRING *s2),
- ARGOUT_NULLOK(STRING **dest))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*dest);
+ ARGIN_NULLOK(const STRING *s2))
+ __attribute__nonnull__(1);
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
STRING * Parrot_str_bitwise_xor(PARROT_INTERP,
ARGIN_NULLOK(const STRING *s1),
- ARGIN_NULLOK(const STRING *s2),
- ARGOUT_NULLOK(STRING **dest))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*dest);
+ ARGIN_NULLOK(const STRING *s2))
+ __attribute__nonnull__(1);
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
@@ -85,21 +67,17 @@
PARROT_CAN_RETURN_NULL
STRING* Parrot_str_change_charset(PARROT_INTERP,
ARGMOD_NULLOK(STRING *src),
- INTVAL charset_nr,
- ARGOUT_NULLOK(STRING *dest))
+ INTVAL charset_nr)
__attribute__nonnull__(1)
- FUNC_MODIFIES(*src)
- FUNC_MODIFIES(*dest);
+ FUNC_MODIFIES(*src);
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
STRING* Parrot_str_change_encoding(PARROT_INTERP,
ARGIN_NULLOK(STRING *src),
- INTVAL encoding_nr,
- ARGOUT_NULLOK(STRING *dest))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*dest);
+ INTVAL encoding_nr)
+ __attribute__nonnull__(1);
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
@@ -109,12 +87,6 @@
FUNC_MODIFIES(*s);
PARROT_EXPORT
-void Parrot_str_chopn_inplace(PARROT_INTERP, ARGMOD(STRING *s), INTVAL n)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*s);
-
-PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
INTVAL Parrot_str_compare(PARROT_INTERP,
ARGIN_NULLOK(const STRING *s1),
@@ -131,8 +103,7 @@
PARROT_CANNOT_RETURN_NULL
STRING * Parrot_str_concat(PARROT_INTERP,
ARGIN_NULLOK(STRING *a),
- ARGIN_NULLOK(STRING *b),
- UINTVAL Uflags)
+ ARGIN_NULLOK(STRING *b))
__attribute__nonnull__(1);
PARROT_EXPORT
@@ -150,11 +121,6 @@
__attribute__nonnull__(1);
PARROT_EXPORT
-void Parrot_str_downcase_inplace(PARROT_INTERP, ARGMOD_NULLOK(STRING *s))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*s);
-
-PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
INTVAL Parrot_str_equal(PARROT_INTERP,
ARGIN_NULLOK(const STRING *s1),
@@ -214,7 +180,7 @@
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_str_free_cstring(ARGIN_NULLOK(char *p));
+void Parrot_str_free_cstring(ARGFREE(char *p));
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
@@ -250,6 +216,8 @@
__attribute__nonnull__(3);
PARROT_EXPORT
+PARROT_HOT
+PARROT_PURE_FUNCTION
INTVAL Parrot_str_is_null(SHIM_INTERP, ARGIN_NULLOK(const STRING *s));
PARROT_EXPORT
@@ -262,12 +230,9 @@
__attribute__nonnull__(3);
PARROT_EXPORT
-PARROT_IGNORABLE_RESULT
-INTVAL /*@alt void@*/
-Parrot_str_length(PARROT_INTERP, ARGMOD(STRING *s))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*s);
+PARROT_WARN_UNUSED_RESULT
+INTVAL Parrot_str_length(SHIM_INTERP, ARGIN(const STRING *s))
+ __attribute__nonnull__(2);
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
@@ -299,14 +264,6 @@
__attribute__nonnull__(5);
PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-STRING * Parrot_str_new_COW(PARROT_INTERP, ARGMOD(STRING *s))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*s);
-
-PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
@@ -345,8 +302,7 @@
__attribute__nonnull__(1);
PARROT_EXPORT
-void Parrot_str_pin(PARROT_INTERP, ARGMOD(STRING *s))
- __attribute__nonnull__(1)
+void Parrot_str_pin(SHIM_INTERP, ARGMOD(STRING *s))
__attribute__nonnull__(2)
FUNC_MODIFIES(*s);
@@ -360,46 +316,19 @@
PARROT_EXPORT
PARROT_CAN_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
STRING * Parrot_str_replace(PARROT_INTERP,
- ARGIN(STRING *src),
+ ARGIN(const STRING *src),
INTVAL offset,
INTVAL length,
- ARGIN(STRING *rep),
- ARGOUT_NULLOK(STRING **d))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(5)
- FUNC_MODIFIES(*d);
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-STRING * Parrot_str_resize(PARROT_INTERP, ARGMOD(STRING *s), UINTVAL addlen)
+ ARGIN(const STRING *rep))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
- FUNC_MODIFIES(*s);
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-STRING * Parrot_str_reuse_COW(SHIM_INTERP,
- ARGMOD(STRING *s),
- ARGOUT(STRING *d))
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*s)
- FUNC_MODIFIES(*d);
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-STRING * Parrot_str_set(PARROT_INTERP,
- ARGIN_NULLOK(STRING *dest),
- ARGMOD(STRING *src))
- __attribute__nonnull__(1)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*src);
+ __attribute__nonnull__(5);
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
+PARROT_CAN_RETURN_NULL
PMC* Parrot_str_split(PARROT_INTERP,
ARGIN_NULLOK(STRING *delim),
ARGIN_NULLOK(STRING *str))
@@ -411,11 +340,8 @@
STRING * Parrot_str_substr(PARROT_INTERP,
ARGIN_NULLOK(STRING *src),
INTVAL offset,
- INTVAL length,
- ARGOUT_NULLOK(STRING **d),
- int replace_dest)
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*d);
+ INTVAL length)
+ __attribute__nonnull__(1);
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
@@ -424,11 +350,6 @@
__attribute__nonnull__(1);
PARROT_EXPORT
-void Parrot_str_titlecase_inplace(PARROT_INTERP, ARGMOD_NULLOK(STRING *s))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*s);
-
-PARROT_EXPORT
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
char * Parrot_str_to_cstring(PARROT_INTERP, ARGIN_NULLOK(const STRING *s))
@@ -473,29 +394,12 @@
__attribute__nonnull__(1);
PARROT_EXPORT
-void Parrot_str_upcase_inplace(PARROT_INTERP, ARGMOD_NULLOK(STRING *s))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*s);
-
-PARROT_EXPORT
-void Parrot_str_write_COW(PARROT_INTERP, ARGMOD(STRING *s))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*s);
-
-PARROT_EXPORT
PARROT_PURE_FUNCTION
PARROT_CANNOT_RETURN_NULL
const char * Parrot_string_cstring(SHIM_INTERP, ARGIN(const STRING *str))
__attribute__nonnull__(2);
PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_PURE_FUNCTION
-UINTVAL string_capacity(SHIM_INTERP, ARGIN(const STRING *s))
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
STRING * string_chr(PARROT_INTERP, UINTVAL character)
@@ -509,6 +413,8 @@
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_HOT
+PARROT_PURE_FUNCTION
INTVAL STRING_is_null(SHIM_INTERP, ARGIN_NULLOK(const STRING *s));
PARROT_EXPORT
@@ -533,6 +439,7 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
+PARROT_PURE_FUNCTION
INTVAL string_max_bytes(SHIM_INTERP, ARGIN(const STRING *s), UINTVAL nchars)
__attribute__nonnull__(2);
@@ -556,6 +463,12 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
+STRING* Parrot_str_clone(PARROT_INTERP, ARGIN(const STRING *s))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
STRING * Parrot_str_from_int_base(PARROT_INTERP,
ARGOUT(char *tc),
HUGEINTVAL num,
@@ -581,8 +494,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-#define ASSERT_ARGS_Parrot_str_append __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_str_bitwise_and __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_str_bitwise_not __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -601,9 +512,6 @@
#define ASSERT_ARGS_Parrot_str_chopn __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(s))
-#define ASSERT_ARGS_Parrot_str_chopn_inplace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_Parrot_str_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_str_compose __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -615,8 +523,6 @@
, PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_Parrot_str_downcase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_str_downcase_inplace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_str_equal __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_str_escape __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -654,8 +560,7 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(ar))
#define ASSERT_ARGS_Parrot_str_length __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(s))
+ PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_Parrot_str_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_str_new_constant __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -665,9 +570,6 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(encoding) \
, PARROT_ASSERT_ARG(charset))
-#define ASSERT_ARGS_Parrot_str_new_COW __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_Parrot_str_new_from_buffer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(buffer))
@@ -680,8 +582,7 @@
#define ASSERT_ARGS_Parrot_str_not_equal __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_str_pin __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(s))
+ PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_Parrot_str_repeat __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(s))
@@ -689,23 +590,12 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src) \
, PARROT_ASSERT_ARG(rep))
-#define ASSERT_ARGS_Parrot_str_resize __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(s))
-#define ASSERT_ARGS_Parrot_str_reuse_COW __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(s) \
- , PARROT_ASSERT_ARG(d))
-#define ASSERT_ARGS_Parrot_str_set __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(src))
#define ASSERT_ARGS_Parrot_str_split __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_str_substr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_str_titlecase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_str_titlecase_inplace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_str_to_cstring __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_str_to_hashval __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -723,15 +613,8 @@
, PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_Parrot_str_upcase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_str_upcase_inplace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_str_write_COW __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_Parrot_string_cstring __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(str))
-#define ASSERT_ARGS_string_capacity __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_string_chr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_string_increment __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -750,6 +633,9 @@
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_string_to_cstring_nullable __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_Parrot_str_clone __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_Parrot_str_from_int_base __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(tc))
Modified: branches/avl_string_cache/include/parrot/string_primitives.h
==============================================================================
--- branches/avl_string_cache/include/parrot/string_primitives.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/string_primitives.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -36,12 +36,11 @@
PARROT_EXPORT
Parrot_UInt4 string_unescape_one(PARROT_INTERP,
ARGMOD(UINTVAL *offset),
- ARGMOD(STRING *string))
+ ARGIN(const STRING *string))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
- FUNC_MODIFIES(*offset)
- FUNC_MODIFIES(*string);
+ FUNC_MODIFIES(*offset);
#define ASSERT_ARGS_Parrot_char_digit_value __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_str_dup_remove_quotes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/avl_string_cache/include/parrot/sub.h
==============================================================================
--- branches/avl_string_cache/include/parrot/sub.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/sub.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -64,6 +64,7 @@
typedef enum {
SUB_COMP_FLAG_BIT_0 = SUB_FLAG(0),
SUB_COMP_FLAG_BIT_1 = SUB_FLAG(1),
+ SUB_COMP_FLAG_VTABLE = SUB_COMP_FLAG_BIT_1,
SUB_COMP_FLAG_BIT_2 = SUB_FLAG(2),
SUB_COMP_FLAG_METHOD = SUB_COMP_FLAG_BIT_2,
SUB_COMP_FLAG_BIT_3 = SUB_FLAG(3),
@@ -76,6 +77,7 @@
SUB_COMP_FLAG_BIT_10 = SUB_FLAG(10),
SUB_COMP_FLAG_PF_INIT = SUB_COMP_FLAG_BIT_10,
SUB_COMP_FLAG_BIT_11 = SUB_FLAG(11),
+ SUB_COMP_FLAG_NSENTRY = SUB_COMP_FLAG_BIT_11,
SUB_COMP_FLAG_BIT_12 = SUB_FLAG(12),
SUB_COMP_FLAG_BIT_13 = SUB_FLAG(13),
SUB_COMP_FLAG_BIT_14 = SUB_FLAG(14),
@@ -95,7 +97,7 @@
SUB_COMP_FLAG_BIT_28 = SUB_FLAG(28),
SUB_COMP_FLAG_BIT_29 = SUB_FLAG(29),
SUB_COMP_FLAG_BIT_30 = SUB_FLAG(30),
- SUB_COMP_FLAG_MASK = 0x00000404
+ SUB_COMP_FLAG_MASK = SUB_COMP_FLAG_VTABLE | SUB_COMP_FLAG_METHOD | SUB_COMP_FLAG_NSENTRY | SUB_COMP_FLAG_PF_INIT
} sub_comp_flags_enum;
#undef SUB_FLAG
@@ -170,13 +172,6 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
PARROT_EXPORT
-PARROT_MALLOC
-PARROT_CANNOT_RETURN_NULL
-PMC * new_ret_continuation_pmc(PARROT_INTERP,
- ARGIN_NULLOK(opcode_t *address))
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
void Parrot_capture_lex(PARROT_INTERP, ARGMOD(PMC *sub_pmc))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
@@ -217,11 +212,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-void invalidate_retc_context(PARROT_INTERP, ARGMOD(PMC *cont))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*cont);
-
void mark_context_start(void);
void Parrot_continuation_check(PARROT_INTERP, ARGIN(const PMC *pmc))
__attribute__nonnull__(1)
@@ -260,8 +250,6 @@
ARGIN_NULLOK(opcode_t *pc))
__attribute__nonnull__(1);
-#define ASSERT_ARGS_new_ret_continuation_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_capture_lex __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(sub_pmc))
@@ -281,9 +269,6 @@
#define ASSERT_ARGS_parrot_new_closure __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(sub_pmc))
-#define ASSERT_ARGS_invalidate_retc_context __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(cont))
#define ASSERT_ARGS_mark_context_start __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_Parrot_continuation_check __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
Modified: branches/avl_string_cache/include/parrot/vtables.h
==============================================================================
--- branches/avl_string_cache/include/parrot/vtables.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/include/parrot/vtables.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -26,10 +26,9 @@
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_destroy_vtable(PARROT_INTERP, ARGMOD(VTABLE *vtable))
+void Parrot_destroy_vtable(PARROT_INTERP, ARGFREE_NOTNULL(VTABLE *vtable))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*vtable);
+ __attribute__nonnull__(2);
PARROT_EXPORT
void Parrot_initialize_core_vtables(PARROT_INTERP)
Modified: branches/avl_string_cache/lib/Parrot/Configure/Options/Conf.pm
==============================================================================
--- branches/avl_string_cache/lib/Parrot/Configure/Options/Conf.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/lib/Parrot/Configure/Options/Conf.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -99,8 +99,6 @@
External Library Options:
- --without-crypto Build parrot without crypto support (libssl)
- --without-gdbm Build parrot without GDBM support
--without-gettext Build parrot without gettext support
--without-gmp Build parrot without GMP support
--without-opengl Build parrot without OpenGL support (GL/GLU/GLUT)
Modified: branches/avl_string_cache/lib/Parrot/Configure/Options/Test/Prepare.pm
==============================================================================
--- branches/avl_string_cache/lib/Parrot/Configure/Options/Test/Prepare.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/lib/Parrot/Configure/Options/Test/Prepare.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -78,6 +78,8 @@
? qq|$secondlevel-$number|
: $number;
$steps_tests_complex{$category}{$class}{$final}++;
+
+ return;
}
} # END wanted()
finddepth( \&wanted, ( $steps_dir ) );
Modified: branches/avl_string_cache/lib/Parrot/Configure/Step/List.pm
==============================================================================
--- branches/avl_string_cache/lib/Parrot/Configure/Step/List.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/lib/Parrot/Configure/Step/List.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -52,10 +52,8 @@
auto::thread
auto::gmp
auto::readline
- auto::gdbm
auto::pcre
auto::opengl
- auto::crypto
auto::gettext
auto::snprintf
auto::perldoc
@@ -65,7 +63,6 @@
auto::icu
gen::config_h
gen::core_pmcs
- gen::crypto
gen::opengl
gen::makefiles
gen::platform
Modified: branches/avl_string_cache/lib/Parrot/Distribution.pm
==============================================================================
--- branches/avl_string_cache/lib/Parrot/Distribution.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/lib/Parrot/Distribution.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2009, Parrot Foundation.
+# Copyright (C) 2004-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -248,13 +248,13 @@
# and make a hash out of the directories
my %dirs =
map { ( ( File::Spec->splitpath($_) )[1] => 1 ) }
- grep { m|(?i)(?:$filter_ext)| } $self->_dist_files;
+ grep { m/(?i)(?:$filter_ext)/ } $self->_dist_files;
# Filter out ignored directories
# and return the results
my @dirs = sort
map { $self->directory_with_name($_) }
- grep { !m|(?:$filter_dir)| }
+ grep { !m/(?:$filter_dir)/ }
keys %dirs;
return @dirs;
};
@@ -293,7 +293,7 @@
# and return a sorted list of filenames
my @files = sort
map { $self->file_with_name($_) }
- grep { m|(?i)(?:$filter_ext)| }
+ grep { m/(?i)(?:$filter_ext)/ }
$self->_dist_files;
return @files;
};
@@ -334,7 +334,7 @@
# and return a sorted list of filenames
my @files = sort
map { $self->file_with_name($_) }
- grep { m|[/\\]makefiles[/\\][a-z]+\.in$| }
+ grep { m{[/\\]makefiles[/\\][a-z]+\.in$} }
$self->_dist_files;
return @files;
}
@@ -614,7 +614,7 @@
my $line = <$file_handle>;
close $file_handle;
- if ( $line && $line =~ /^#!.*parrot/ ) {
+ if ( $line && $line =~ /^#!.*parrot(?:\s|$)/ ) {
# something that specifies a pir or pbc is probably a HLL, skip it
return 0 if $line =~ /\.(?:pir|pbc)/;
return 1;
Modified: branches/avl_string_cache/lib/Parrot/Harness/Smoke.pm
==============================================================================
--- branches/avl_string_cache/lib/Parrot/Harness/Smoke.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/lib/Parrot/Harness/Smoke.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -116,6 +116,7 @@
. '/app/projects/process_add_report/'
. $project_id;
my $ua = LWP::UserAgent->new();
+ $ua->timeout(360);
$ua->agent( 'Parrot::Harness::Smoke' );
$ua->env_proxy();
Modified: branches/avl_string_cache/lib/Parrot/Headerizer.pm
==============================================================================
--- branches/avl_string_cache/lib/Parrot/Headerizer.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/lib/Parrot/Headerizer.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,6 +1,8 @@
-# Copyright (C) 2004-2007, Parrot Foundation.
+# Copyright (C) 2004-2010, Parrot Foundation.
# $Id$
+package Parrot::Headerizer;
+
=head1 NAME
Parrot::Headerizer - Parrot Header Generation functionality
@@ -13,8 +15,8 @@
=head1 DESCRIPTION
-C<Parrot::Headerizer> knows how to strip all kinds of information out of
-C-language files.
+C<Parrot::Headerizer> knows how to extract all kinds of information out
+of C-language files.
=head2 Class Methods
@@ -22,8 +24,6 @@
=cut
-package Parrot::Headerizer;
-
use strict;
use warnings;
@@ -33,39 +33,68 @@
Contructor of headerizer objects
-Don't blame me too much, I've never done OO in Perl before.
-
=cut
-## i'm a singleton
-my $headerizer;
-
sub new {
my ($class) = @_;
- return $headerizer if defined $headerizer;
+ my $self = bless {
+ warnings => {},
+ }, $class;
+
+ $self->{valid_macros} = { map { ( $_, 1 ) } qw(
+ PARROT_EXPORT
+ PARROT_INLINE
+
+ PARROT_CAN_RETURN_NULL
+ PARROT_CANNOT_RETURN_NULL
- my $self = bless {}, $class;
+ PARROT_IGNORABLE_RESULT
+ PARROT_WARN_UNUSED_RESULT
+
+ PARROT_PURE_FUNCTION
+ PARROT_CONST_FUNCTION
+
+ PARROT_DOES_NOT_RETURN
+ PARROT_DOES_NOT_RETURN_WHEN_FALSE
+
+ PARROT_MALLOC
+ PARROT_OBSERVER
+
+ PARROT_HOT
+ PARROT_COLD
+ )
+ };
return $self;
}
-my %warnings;
-my %valid_macros = map { ( $_, 1 ) } qw(
- PARROT_EXPORT
- PARROT_INLINE
- PARROT_CAN_RETURN_NULL
- PARROT_CANNOT_RETURN_NULL
- PARROT_IGNORABLE_RESULT
- PARROT_WARN_UNUSED_RESULT
- PARROT_PURE_FUNCTION
- PARROT_CONST_FUNCTION
- PARROT_DOES_NOT_RETURN
- PARROT_MALLOC
- PARROT_OBSERVER
-);
+=item $headerizer->valid_macro( $macro )
+
+Returns a boolean saying wither I<$macro> is a valid PARROT_XXX macro.
-=item C<extract_function_declarations($text)>
+=cut
+
+sub valid_macro {
+ my $self = shift;
+ my $macro = shift;
+
+ return exists $self->{valid_macros}{$macro};
+}
+
+=item $headerizer->valid_macros()
+
+Returns a list of all the valid PARROT_XXX macros.
+
+=cut
+
+sub valid_macros {
+ my $self = shift;
+
+ return sort keys %{$self->{valid_macros}};
+}
+
+=item $headerizer->extract_function_declarations($text)
Extracts the function declarations from the text argument, and returns an
array of strings containing the function declarations.
@@ -76,12 +105,16 @@
my $self = shift;
my $text = shift;
+ # Only check the YACC C code if we find what looks like YACC file
+ $text =~ s/%\{(.*)%\}.*/$1/sm;
+
+ # Drop all text after HEADERIZER STOP
$text =~ s{/\*\s*HEADERIZER STOP.+}{}s;
# Strip blocks of comments
$text =~ s{^/\*.*?\*/}{}mxsg;
- # Strip # compiler directives (Thanks, Audrey!)
+ # Strip # compiler directives
$text =~ s{^#(\\\n|.)*}{}mg;
# Strip code blocks
@@ -108,6 +141,9 @@
# Ignore anything with magic words HEADERIZER SKIP
@funcs = grep { !m{/\*\s*HEADERIZER SKIP\s*\*/} } @funcs;
+ # pmclass declarations in PMC files are no good
+ @funcs = grep { !m{^pmclass } } @funcs;
+
# Variables are of no use to us
@funcs = grep { !/=/ } @funcs;
@@ -135,14 +171,15 @@
Returns an anonymous hash of function components:
- file => $file,
- name => $name,
- args => \@args,
- macros => \@macros,
- is_static => $is_static,
- is_inline => $parrot_inline,
- is_api => $parrot_api,
- return_type => $return_type,
+ file => $file,
+ name => $name,
+ args => \@args,
+ macros => \@macros,
+ is_static => $is_static,
+ is_inline => $parrot_inline,
+ is_api => $parrot_api,
+ is_ignorable => $is_ignorable,
+ return_type => $return_type,
=cut
@@ -174,7 +211,7 @@
$args =~ s/\s+/ /g;
$args =~ s{([^(]+)\s*\((.+)\);?}{$2}
- or die qq{Couldn't handle "$proto"};
+ or die qq{Couldn't handle "$proto" in $file\n};
my $name = $1;
$args = $2;
@@ -190,6 +227,7 @@
or die "Bad args in $proto";
}
+ my $is_ignorable = 0;
my $is_static = 0;
$is_static = $2 if $return_type =~ s/^((static)\s+)?//i;
@@ -198,9 +236,12 @@
my %macros;
for my $macro (@macros) {
$macros{$macro} = 1;
- if ( not $valid_macros{$macro} ) {
+ if (not $self->valid_macro($macro)) {
$self->squawk( $file, $name, "Invalid macro $macro" );
}
+ if ( $macro eq 'PARROT_IGNORABLE_RESULT' ) {
+ $is_ignorable = 1;
+ }
}
if ( $return_type =~ /\*/ ) {
if ( !$macros{PARROT_CAN_RETURN_NULL} && !$macros{PARROT_CANNOT_RETURN_NULL} ) {
@@ -214,14 +255,15 @@
}
return {
- file => $file,
- name => $name,
- args => \@args,
- macros => \@macros,
- is_static => $is_static,
- is_inline => $parrot_inline,
- is_api => $parrot_api,
- return_type => $return_type,
+ file => $file,
+ name => $name,
+ args => \@args,
+ macros => \@macros,
+ is_static => $is_static,
+ is_inline => $parrot_inline,
+ is_api => $parrot_api,
+ is_ignorable => $is_ignorable,
+ return_type => $return_type,
};
}
@@ -237,7 +279,7 @@
my $function_decl = shift;
# strip out any PARROT_* function modifiers
- foreach my $key (%valid_macros) {
+ foreach my $key ($self->valid_macros) {
$function_decl =~ s/^$key$//m;
}
@@ -245,7 +287,7 @@
$function_decl =~ s/\s+/ /g;
# strip out any ARG* modifiers
- $function_decl =~ s/ARG(?:IN|IN_NULLOK|OUT|OUT_NULLOK|MOD|MOD_NULLOK|FREE)\((.*?)\)/$1/g;
+ $function_decl =~ s/ARG(?:IN|IN_NULLOK|OUT|OUT_NULLOK|MOD|MOD_NULLOK|FREE|FREE_NOTNULL)\((.*?)\)/$1/g;
# strip out the SHIM modifier
$function_decl =~ s/SHIM\((.*?)\)/$1/g;
@@ -301,7 +343,7 @@
my $func = shift;
my $error = shift;
- push( @{ $warnings{$file}->{$func} }, $error );
+ push( @{ $self->{warnings}{$file}{$func} }, $error );
return;
}
Modified: branches/avl_string_cache/lib/Parrot/Manifest.pm
==============================================================================
--- branches/avl_string_cache/lib/Parrot/Manifest.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/lib/Parrot/Manifest.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -68,7 +68,7 @@
my %data = (
id => '$' . 'Id$',
time => scalar gmtime,
- cmd => -d '.svn' ? 'svn' : 'svk',
+ cmd => 'svn',
script => $argsref->{script},
file => $argsref->{file} ? $argsref->{file} : q{MANIFEST},
skip => $argsref->{skip} ? $argsref->{skip} : q{MANIFEST.SKIP},
Modified: branches/avl_string_cache/lib/Parrot/Ops2c/Utils.pm
==============================================================================
--- branches/avl_string_cache/lib/Parrot/Ops2c/Utils.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/lib/Parrot/Ops2c/Utils.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -479,6 +479,7 @@
print $fh <<END_C;
#include "parrot/parrot.h"
#include "parrot/oplib.h"
+#include "parrot/runcore_api.h"
$self->{sym_export} op_lib_t *$self->{init_func}(PARROT_INTERP, long init);
@@ -893,8 +894,8 @@
static HOP **hop;
static void hop_init(PARROT_INTERP);
-static size_t hash_str(const char *str);
-static void store_op(PARROT_INTERP, op_info_t *info, int full);
+static size_t hash_str(ARGIN_NULLOK(const char *str));
+static void store_op(PARROT_INTERP, ARGIN(op_info_t *info), int full);
/* XXX on changing interpreters, this should be called,
through a hook */
@@ -911,7 +912,8 @@
* returns >= 0 (found idx into info_table), -1 if not
*/
-static size_t hash_str(const char *str) {
+static size_t hash_str(ARGIN_NULLOK(const char *str))
+{
size_t key = 0;
const char *s = str;
@@ -923,8 +925,9 @@
return key;
}
-static void store_op(PARROT_INTERP, op_info_t *info, int full) {
- HOP * const p = mem_gc_allocate_zeroed_typed(interp, HOP);
+static void store_op(PARROT_INTERP, ARGIN(op_info_t *info), int full)
+{
+ HOP * const p = mem_gc_allocate_typed(interp, HOP);
const size_t hidx =
hash_str(full ? info->full_name : info->name) % OP_HASH_SIZE;
@@ -932,30 +935,40 @@
p->next = hop[hidx];
hop[hidx] = p;
}
+
static int get_op(PARROT_INTERP, const char * name, int full) {
- const HOP * p;
+ const HOP *p;
+
const size_t hidx = hash_str(name) % OP_HASH_SIZE;
+
if (!hop) {
- hop = mem_gc_allocate_n_zeroed_typed(interp, OP_HASH_SIZE,HOP *);
+ hop = mem_gc_allocate_n_zeroed_typed(interp, OP_HASH_SIZE, HOP *);
hop_init(interp);
}
+
for (p = hop[hidx]; p; p = p->next) {
- if(STREQ(name, full ? p->info->full_name : p->info->name))
+ if (STREQ(name, full ? p->info->full_name : p->info->name))
return p->info - $self->{bs}op_lib.op_info_table;
}
+
return -1;
}
-static void hop_init(PARROT_INTERP) {
+
+static void hop_init(PARROT_INTERP)
+{
size_t i;
op_info_t * const info = $self->{bs}op_lib.op_info_table;
+
/* store full names */
for (i = 0; i < $self->{bs}op_lib.op_count; i++)
store_op(interp, info + i, 1);
+
/* plus one short name */
for (i = 0; i < $self->{bs}op_lib.op_count; i++)
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/avl_string_cache/lib/Parrot/Pmc2c/PCCMETHOD.pm
==============================================================================
--- branches/avl_string_cache/lib/Parrot/Pmc2c/PCCMETHOD.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/lib/Parrot/Pmc2c/PCCMETHOD.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -258,8 +258,8 @@
/*BEGIN RETURN $returns */
END
$e->emit( <<"END", __FILE__, __LINE__ + 1 );
- Parrot_pcc_build_call_from_c_args(interp, _call_object, "$returns_signature",
- $returns_varargs);
+ _ret_object = Parrot_pcc_build_call_from_c_args(interp, _call_object,
+ "$returns_signature", $returns_varargs);
return;
/*END RETURN $returns */
}
@@ -415,6 +415,7 @@
PMC * const _ctx = CURRENT_CONTEXT(interp);
PMC * const _ccont = Parrot_pcc_get_continuation(interp, _ctx);
PMC * const _call_object = Parrot_pcc_get_signature(interp, _ctx);
+ PMC * _ret_object = PMCNULL;
{ /* BEGIN PARMS SCOPE */
END
@@ -427,11 +428,11 @@
$params_varargs);
END
}
- $e->emit( <<"END", __FILE__, __LINE__ + 1 );
+ $e->emit( <<'END', __FILE__, __LINE__ + 1 );
{ /* BEGIN PMETHOD BODY */
END
- $e_post->emit( <<"END", __FILE__, __LINE__ + 1 );
+ $e_post->emit( <<'END', __FILE__, __LINE__ + 1 );
} /* END PMETHOD BODY */
} /* END PARAMS SCOPE */
@@ -449,10 +450,6 @@
return 1;
}
-sub isquoted {
- 1;
-}
-
sub rewrite_pccinvoke {
my ( $method, $pmc ) = @_;
my $body = $method->body;
Modified: branches/avl_string_cache/lib/Parrot/Pmc2c/PMCEmitter.pm
==============================================================================
--- branches/avl_string_cache/lib/Parrot/Pmc2c/PMCEmitter.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/lib/Parrot/Pmc2c/PMCEmitter.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -570,7 +570,7 @@
vt->base_type = entry;
vt->whoami = string_make(interp, "$classname", @{[length($classname)]},
"ascii", PObj_constant_FLAG|PObj_external_FLAG);
- vt->provides_str = Parrot_str_append(interp, vt->provides_str,
+ vt->provides_str = Parrot_str_concat(interp, vt->provides_str,
string_make(interp, "$provides", @{[length($provides)]}, "ascii",
PObj_constant_FLAG|PObj_external_FLAG));
Modified: branches/avl_string_cache/lib/Parrot/Pmc2c/Pmc2cMain.pm
==============================================================================
--- branches/avl_string_cache/lib/Parrot/Pmc2c/Pmc2cMain.pm Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/lib/Parrot/Pmc2c/Pmc2cMain.pm Thu Apr 22 09:55:26 2010 (r45889)
@@ -240,8 +240,11 @@
return $path if -e $path;
}
- print Carp::longmess;
- die "cannot find file '$file' in path '", join( "', '", @includes ), "'" if $die_unless_found;
+ if ($die_unless_found) {
+ my $includes_list = join q|', '| => @includes;
+ Carp::confess("cannot find file '$file' in path '$includes_list'");
+ }
+
return;
}
Modified: branches/avl_string_cache/ports/debian/control.in
==============================================================================
--- branches/avl_string_cache/ports/debian/control.in Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/ports/debian/control.in Thu Apr 22 09:55:26 2010 (r45889)
@@ -3,7 +3,7 @@
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
+Build-Depends: debhelper (>= 5.0.0), perl, perl-doc, libreadline-dev, quilt
Standards-Version: 3.8.4
Package: parrot
Added: branches/avl_string_cache/ports/fedora/2.3.0/parrot.desk.in.tar.gz
==============================================================================
Files /dev/null 00:00:00 1970 (empty, because file is newly added) and branches/avl_string_cache/ports/fedora/2.3.0/parrot.desk.in.tar.gz Thu Apr 22 09:55:26 2010 (r45889) differ
Added: branches/avl_string_cache/ports/fedora/2.3.0/parrot.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/avl_string_cache/ports/fedora/2.3.0/parrot.patch Thu Apr 22 09:55:26 2010 (r45889)
@@ -0,0 +1,19 @@
+--- lib/Parrot/Install.pm 2009-06-01 09:29:57.000000000 +0200
++++ lib/Parrot/Install.pm 2009-06-03 08:41:22.000000000 +0200
+@@ -220,6 +220,16 @@
+ else {
+ next unless -e $src;
+ next if $^O eq 'cygwin' and -e "$src.exe"; # stat works, copy not
++ if (-l $src) {
++ # check if the system supports symbolic linking
++ use Config;
++ if ($Config{d_symlink} && $Config{d_readlink}) {
++ # copy as symbolic link
++ symlink(readlink($src), $dest);
++ print "$dest\n";
++ next;
++ }
++ }
+ copy( $src, $dest ) or die "Error: couldn't copy $src to $dest: $!\n";
+ print "$dest\n";
+ }
Copied and modified: branches/avl_string_cache/ports/fedora/2.3.0/parrot.spec (from r45357, branches/avl_string_cache/ports/fedora/parrot.spec.fedora)
==============================================================================
--- branches/avl_string_cache/ports/fedora/parrot.spec.fedora Wed Mar 31 13:36:15 2010 (r45357, copy source)
+++ branches/avl_string_cache/ports/fedora/2.3.0/parrot.spec Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
Name: parrot
-Version: 2.0.0
+Version: 2.3.0
Release: 1%{?dist}
Summary: a virtual machine
License: Artistic 2.0
@@ -7,13 +7,9 @@
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
-# patched file: tools/dev/install_files.pl
-# It is responsible to have no subdirectory under pkgconfig.
-#
-# patched file: config/gen/makefiles/parrot_pc.in
-# So "pkg-config parrot --cflags" works correct
#
# see for upstream: https://trac.parrot.org/parrot/ticket/509
# patched file: lib/Parrot/Install.pm
@@ -33,6 +29,10 @@
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
@@ -40,6 +40,8 @@
Group: Documentation
Requires: perl(strict)
Requires: perl(warnings)
+# Provides the executable in the desktop file (xdg-open)
+Requires: xdg-utils
BuildArch: noarch
#--
@@ -113,6 +115,11 @@
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} \
@@ -124,6 +131,7 @@
--optimize="$RPM_OPT_FLAGS" \
--parrot_is_shared \
--disable-rpath \
+ --pkgconfigdir=pkgconfig \
--lex=%{_bindir}/flex
# The LD_LIBRARY_PATH hack is needed for "miniparrot"
@@ -132,9 +140,7 @@
# pbc_to_exe would not build if %{_smp_mflags} would used
make
-make parrot_utils
-make installable
-make html
+make html pdf
%install
@@ -144,9 +150,7 @@
# to find his parrot-library in "blib/lib"
export LD_LIBRARY_PATH=$( pwd )/blib/lib
-# install-dev: Same as 'install' taget but also install support for
-# language development
-make install-dev DESTDIR=$RPM_BUILD_ROOT
+make install DESTDIR=$RPM_BUILD_ROOT
# Creating man-pages
%{__install} -d $RPM_BUILD_ROOT%{_mandir}/man1
@@ -221,6 +225,18 @@
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
@@ -251,16 +267,20 @@
%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
@@ -282,13 +302,18 @@
%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
-* Sat Aug 22 2009 Tomas Mraz <tmraz at redhat.com> 1.5.0-2
-- rebuilt with new openssl
-
* Fri Aug 21 2009 Gerd Pokorra <gp at zimt.uni-siegen.de> 1.5.0-1
- add man pages
@@ -306,7 +331,6 @@
- change the group of the subpackage "-docs" to Documentation
- put the main-documentation from the docs-package to the main package
- LICENSE file added
-- change 'make install' to 'make install-dev' to also install support for development (tools)
- add Provides-lines
- add patch for the file "tools/dev/install_files.pl"
- add commands to reduce output of errors when using rpmlint
@@ -326,7 +350,6 @@
- updated to 1.0.0
* Tue Jan 23 2009 Reini Urban <rurban at x-ray.at> 0.9.0
-- added make installable
- added parrot_utils to devel
* Tue Dec 16 2008 Whiteknight <wknight8111 at gmail.com> 0.8.2
Deleted: branches/avl_string_cache/ports/fedora/parrot.patch
==============================================================================
--- branches/avl_string_cache/ports/fedora/parrot.patch Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,38 +0,0 @@
---- tools/dev/install_files.pl 2009-07-13 10:26:40.000000000 +0200
-+++ tools/dev/install_files.pl 2009-07-13 13:37:49.000000000 +0200
-@@ -163,7 +163,7 @@
- # libdir as it is typically done with automake installed packages.
- # If there is a use case to make this configurable we'll add a
- # seperate --pkgconfigdir option.
-- $filehash->{DestDirs} = ['pkgconfig', $parrotdir];
-+ $filehash->{DestDirs} = ['pkgconfig'];
- return($filehash);
- },
- },
---- config/gen/makefiles/parrot_pc.in 2009-06-06 16:33:32.000000000 +0200
-+++ config/gen/makefiles/parrot_pc.in.new 2009-07-13 23:09:45.000000000 +0200
-@@ -7,4 +7,4 @@
- Description: virtual machine to execute bytecode for interpreted languages
- Version: @VERSION@
- Libs: -L${libdir} -lparrot @icu_shared@ @libs@
--Cflags: -I${includedir}
-+Cflags: -I${includedir}@versiondir@
---- 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/avl_string_cache/ports/fedora/parrot.spec.fedora
==============================================================================
--- branches/avl_string_cache/ports/fedora/parrot.spec.fedora Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,356 +0,0 @@
-Name: parrot
-Version: 2.0.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
-
-Patch0: parrot.patch
-# patched file: tools/dev/install_files.pl
-# It is responsible to have no subdirectory under pkgconfig.
-#
-# patched file: config/gen/makefiles/parrot_pc.in
-# So "pkg-config parrot --cflags" works correct
-#
-# 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
-
-
-%package docs
-Summary: Parrot Virtual Machine documentation
-Group: Documentation
-Requires: perl(strict)
-Requires: perl(warnings)
-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
-
-%{__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 \
- --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 parrot_utils
-make installable
-make html
-
-
-%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
-
-# install-dev: Same as 'install' taget but also install support for
-# language development
-make install-dev 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$//' {} \;
-
-
-%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
-
-%files devel
-%defattr(-,root,root,-)
-%{_bindir}/parrot_config
-%{_bindir}/parrot_debugger
-%{_bindir}/parrot-nqp
-%{_bindir}/pbc_disassemble
-%{_bindir}/pbc_merge
-%{_bindir}/pbc_to_exe
-%{_bindir}/pbc_dump
-%{_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
-* 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
-
-* Sat Aug 22 2009 Tomas Mraz <tmraz at redhat.com> 1.5.0-2
-- rebuilt with new openssl
-
-* 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
-- change 'make install' to 'make install-dev' to also install support for development (tools)
-- 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 make installable
-- 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
Added: branches/avl_string_cache/ports/suse/2.2.0/parrot.diff
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/avl_string_cache/ports/suse/2.2.0/parrot.diff Thu Apr 22 09:55:26 2010 (r45889)
@@ -0,0 +1,47 @@
+--- ./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
+
Added: branches/avl_string_cache/ports/suse/2.2.0/parrot.spec
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/avl_string_cache/ports/suse/2.2.0/parrot.spec Thu Apr 22 09:55:26 2010 (r45889)
@@ -0,0 +1,226 @@
+#
+# 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
Deleted: branches/avl_string_cache/ports/suse/parrot.spec.suse
==============================================================================
--- branches/avl_string_cache/ports/suse/parrot.spec.suse Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,244 +0,0 @@
-Name: parrot
-Version: 1.1.0
-Release: 1%{dist}
-Summary: Parrot 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
-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
-
-%package docs
-Summary: Parrot Virtual Machine documentation
-License: Artistic 2.0
-Group: Development/Libraries
-BuildRequires: /usr/bin/perldoc
-
-%package devel
-Summary: Parrot Virtual Machine development headers and libraries
-License: Artistic 2.0
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
-Requires: %{_libdir}/pkgconfig
-
-%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.
-
-%prep
-%setup -q
-
-%{__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
-
-%build
-
-%ifarch i386 x86_64
-%{__perl} Configure.pl \
- --prefix=%{_usr} \
- --libdir=%{_libdir} \
- --sysconfdir=%{_sysconfdir} \
- --infodir=%{_datadir}/info \
- --mandir=%{_mandir} \
- --cc="%{__cc}" \
- --cxx=%{__cxx} \
- --optimize="$RPM_OPT_FLAGS -maccumulate-outgoing-args" \
- --parrot_is_shared \
- --lex=/usr/bin/flex \
- --yacc=/usr/bin/yacc \
- --libs="-lncurses -lm"
-%else
-# PowerPC
-%{__perl} Configure.pl \
- --prefix=%{_usr} \
- --libdir=%{_libdir}
-%endif
-
-export LD_LIBRARY_PATH=$( pwd )/blib/lib
-make
-make parrot_utils
-make installable
-make html
-
-%install
-rm -rf $RPM_BUILD_ROOT
-
-export LD_LIBRARY_PATH=$( pwd )/blib/lib
-make install DESTDIR=$RPM_BUILD_ROOT
-
-# 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 {} \;
-
-# These files *probably* aren't needed.
-rm -rf $RPM_BUILD_ROOT%{_usr}/config \
- $RPM_BUILD_ROOT%{_includedir}/src \
- $RPM_BUILD_ROOT%{_usr}/src \
- $RPM_BUILD_ROOT%{_usr}/tools
-
-%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 -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
-%files
-%defattr(-,root,root,-)
-%exclude %{_bindir}/parrot_config
-%exclude %{_bindir}/parrot_debugger
-%exclude %{_bindir}/pbc_*
-%{_bindir}/*
-%{_libdir}/parrot
-%{_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/*
-
-%changelog
-* Tue Apr 21 2009 Francois Perrad <francois.perrad at gadz.org> 1.1.0
-- updated to 1.1.0
-
-* 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 make installable, perl6 is still not installable
-- added parrot_utils to devel
-- fixed Source0 url
-
-* Tue Jan 23 2009 Gerd Pokorra <gp at zimt.uni-siegen.de> 0.9.0
-- added make html
-- make reallyinstall => make install
-
-* Tue Jan 20 2009 chromatic <chromatic at wgz.org> 0.9.0
-- updated to 0.9.0
-
-* Tue Dec 16 2008 Whiteknight <wknight8111 at gmail.com> 0.8.2
-- updated to 0.8.2
-
-* Tue Nov 18 2008 chromatic <chromatic at parrot.org> 0.8.1
-- updated to 0.8.1
-
-* Tue Oct 21 2008 particle <particle at parrot.org> 0.8.0
-- updated to 0.8.0
-
-* Tue Sep 16 2008 pmichaud <pmichaud at pobox.com> 0.7.1
-- updated to 0.7.1
-
-* Wed Sep 3 2008 chromatic <chromatic at wgz.org> 0.7.0
-- install parrot_config (not parrot-config)
-
-* Tue Jun 17 2008 Nuno Carvalho <smash at cpan.org> 0.6.3
-- updated to 0.6.3
-
-* Tue May 20 2008 chromatic <chromatic at wgz.org>> 0.6.2
-- updated to 0.6.2
-
-* Mon Apr 28 2008 chromatic <chromatic at wgz.org> 0.6.1
-- minor fixes; tested with Fedora 7, 8, and 9-beta
-
-* Tue Mar 18 2008 Bernhard Schmalhofer <Bernhard.Schmalhofer at gmx.de> 0.6.0
-- Update to 0.5.3.
-
-* Wed Feb 20 2008 Patrick Michaud <pmichaud at pobox.com> 0.5.3
-- Update to 0.5.3.
-
-* Tue Jan 15 2008 Bob Rogers <rogers at rgrjr.dyndns.org> 0.5.2
-- Update to 0.5.2.
-
-* Tue Dec 18 2007 Jonathan Worthington <jnthn at jnthn.net> 0.5.1
-- Update to 0.5.1.
-
-* Tue Nov 20 2007 chromatic <chromatic at wgz.org> 0.5.0
-- Update to 0.5.0.
-
-* Fri May 25 2007 David Fetter <david at fetter.org> 0.4.12-1
-- Update to 0.4.12.
-
-* Wed Apr 18 2007 Steven Pritchard <steve at kspei.com> 0.4.11-1
-- Update to 0.4.11.
-
-* Wed Mar 21 2007 Steven Pritchard <steve at kspei.com> 0.4.10-1
-- Update to 0.4.10.
-
-* Sat Mar 10 2007 Steven Pritchard <steve at kspei.com> 0.4.9-1
-- Update to 0.4.9.
-- BR ncurses-devel.
-- For some reason now I need to force -lm too.
-- Remove some files/directories that shouldn't be included.
-
-* Wed Jan 17 2007 Steven Pritchard <steve at kspei.com> 0.4.8-1
-- Attempt update to 0.4.8.
-
-* Fri Jun 30 2006 Steven Pritchard <steve at kspei.com> 0.4.5-5
-- 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.
-
-* Wed Jun 28 2006 Steven Pritchard <steve at kspei.com> 0.4.5-4
-- Force permissions on shared libraries so rpmbuild strips them.
-
-* Wed Jun 28 2006 Steven Pritchard <steve at kspei.com> 0.4.5-3
-- Fix URL, description, summary, etc.
-- Add post/postun.
-- Move parrot-config to the devel sub-package.
-- Force permissions on the doc directories.
-
-* Tue Jun 27 2006 Steven Pritchard <steve at kspei.com> 0.4.5-2
-- Add -lcurses to get readline detection to work.
-- BR libicu-devel.
-
-* Tue Jun 27 2006 Steven Pritchard <steve at kspei.com> 0.4.5-1
-- Initial packaging attempt.
-
-* Tue Mar 18 2003 Steve Fink <sfink at foxglove.localdomain> 0.0.11
-- first .spec file created
Modified: branches/avl_string_cache/ports/ubuntu/control.in
==============================================================================
--- branches/avl_string_cache/ports/ubuntu/control.in Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/ports/ubuntu/control.in Thu Apr 22 09:55:26 2010 (r45889)
@@ -4,7 +4,7 @@
Maintainer: Ubuntu Developers <ubuntu-devel-discuss at lists.ubuntu.com>
XSBC-Original-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
+Build-Depends: debhelper (>= 5.0.0), perl, perl-doc, libreadline-dev
Standards-Version: 3.8.1
Package: parrot
Modified: branches/avl_string_cache/runtime/parrot/library/P6object.pir
==============================================================================
--- branches/avl_string_cache/runtime/parrot/library/P6object.pir Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/runtime/parrot/library/P6object.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -95,7 +95,7 @@
=cut
-.sub 'HOW' :method
+.sub 'HOW' :method :nsentry
$P0 = typeof self
$P1 = getprop 'metaclass', $P0
.return ($P1)
@@ -108,7 +108,7 @@
=cut
-.sub 'WHAT' :method
+.sub 'WHAT' :method :nsentry
.local pmc how, what
how = self.'HOW'()
.tailcall how.'WHAT'()
@@ -121,7 +121,7 @@
=cut
-.sub 'WHERE' :method
+.sub 'WHERE' :method :nsentry
$I0 = get_addr self
.return ($I0)
.end
@@ -133,7 +133,7 @@
=cut
-.sub 'WHO' :method
+.sub 'WHO' :method :nsentry
$P0 = typeof self
$P0 = getprop 'metaclass', $P0
$P0 = getattribute $P0, 'parrotclass'
@@ -170,7 +170,7 @@
.namespace ['P6metaclass']
-.sub 'WHAT' :method
+.sub 'WHAT' :method :nsentry
$P0 = getattribute self, 'protoobject'
.return ($P0)
.end
Modified: branches/avl_string_cache/runtime/parrot/library/ProfTest/Matcher.nqp
==============================================================================
--- branches/avl_string_cache/runtime/parrot/library/ProfTest/Matcher.nqp Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/runtime/parrot/library/ProfTest/Matcher.nqp Thu Apr 22 09:55:26 2010 (r45889)
@@ -24,21 +24,31 @@
my $start_line := 0;
my $max_line := +$profile.profile_array;
- my $curr_line;
+ my %curr_line;
my $curr_want;
while ($line_idx < $max_line) {
- $curr_line := $profile.profile_array[$line_idx];
+ %curr_line := $profile.profile_array[$line_idx];
$curr_want := self<wants>[$want_idx];
self.say("current want: "~$curr_want.get_str);
- self.say("current line: "~ ~$curr_line);
+ my $line_desc;
+ if self<debugging> {
+ $line_desc := "current line: " ~ %curr_line<type> ~'(';
+ for %curr_line -> $k {
+ unless $k eq 'type' {
+ $line_desc := "$line_desc :$k(" ~ %curr_line{$k} ~") ";
+ }
+ }
+ $line_desc := $line_desc ~ ")";
+ }
+ self.say($line_desc);
if $curr_want.goal {
self.say("SUCCESS\n");
return 1;
}
- elsif ($curr_want.accepts($curr_line)) {
+ elsif ($curr_want.accepts(%curr_line)) {
self.say("ACCEPTED");
$line_idx++;
Modified: branches/avl_string_cache/runtime/parrot/library/ProfTest/PIRProfile.nqp
==============================================================================
--- branches/avl_string_cache/runtime/parrot/library/ProfTest/PIRProfile.nqp Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/runtime/parrot/library/ProfTest/PIRProfile.nqp Thu Apr 22 09:55:26 2010 (r45889)
@@ -21,39 +21,56 @@
my @pprof_lines := pir::split("\n", self<profile>);
self<profile_array> := ();
- grammar pprof_line {
- rule TOP { ^^ [ <variable_line> | <fixed_line> ] $$ }
-
- rule line_type { [ 'VERSION' | 'CLI' | 'END_OF_RUNLOOP' | 'CS' | 'OP' ] }
-
- rule fixed_line { <line_type> ':' <fixed_data> }
- rule fixed_data { \N* }
-
- rule variable_line { <line_type> ':' <variable_data>* }
- rule variable_data { '{x{' <field_name> ':' <field_data> '}x}' }
- rule field_name { <.ident> }
- #XXX: really need to find something better
- rule field_data { <[a..zA..Z0..9_\-;\/.]>* }
- }
-
for @pprof_lines -> $line {
- my $line_match := pprof_line.parse($line);
+ my $line_match := self.make_line_hash($line);
#pir::say($line);
#_dumper($line_match);
self<profile_array>.push($line_match);
}
}
+method make_line_hash($line) {
+
+ my %line_hash := {};
+
+ my $colon_idx := pir::index($line, ":");
+ #if the line starts with "VERSION, CLI or END_OF_RUNLOOP,
+ if ($colon_idx >= 3) {
+ my $type := pir::substr($line, 0, $colon_idx);
+ my $data := pir::substr($line, $colon_idx+1);
+ %line_hash<type> := $type;
+ %line_hash<data> := $data;
+ }
+ else {
+ my $type := pir::substr($line, 0, $colon_idx);
+ %line_hash<type> := $type;
+ $line := pir::substr($line, $colon_idx+1);
+ while ($line) {
+ $line := pir::substr($line, 3);
+ my $colon_idx := pir::index($line, ":");
+ my $split_idx := pir::index($line, "}x}");
+ my $name := pir::substr($line, 0, $colon_idx);
+ my $value := pir::substr($line, $colon_idx+1, $split_idx-$colon_idx-1);
+ %line_hash{ $name } := $value;
+ $line := pir::substr($line, $split_idx+3);
+ }
+ }
+ %line_hash;
+}
+
+
method build_pir_profile() {
- my $tmp_pir := '/tmp/test.pir';
- my $tmp_pprof := '/tmp/test.pprof';
+ my %config := self.get_config();
+ #XXX(cotto) use a random filename (requires randomness from pir)
+ my $tmp_pir := %config<tempdir> ~ %config<slash> ~ 'test.pir';
+ my $tmp_pprof := %config<tempdir> ~ %config<slash> ~ 'test.pprof';
+
my $fh := pir::new__p_sc('FileHandle');
$fh.open($tmp_pir, "w");
$fh.puts(self<pir_code>);
$fh.close();
- my %config := self.get_config();
my $parrot_exe := %config<prefix> ~ %config<slash> ~ %config<test_prog>;
my $hash_seed_opt := '';
Modified: branches/avl_string_cache/runtime/parrot/library/ProfTest/Want.nqp
==============================================================================
--- branches/avl_string_cache/runtime/parrot/library/ProfTest/Want.nqp Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/runtime/parrot/library/ProfTest/Want.nqp Thu Apr 22 09:55:26 2010 (r45889)
@@ -8,14 +8,6 @@
method accepts() { 1; }
-method hashify_profile_data($data) {
- my %h := {};
- for $data -> $match {
- %h{ $match<field_name> } := $match<field_data>;
- }
- %h;
-}
-
method goal() { 0; }
@@ -36,13 +28,9 @@
self;
}
-method accepts($prof_line) {
- my $line_type := $prof_line<variable_line> ??
- $prof_line<variable_line><line_type> !!
- $prof_line<variable_line><line_type> ;
-
+method accepts(%prof_line) {
for self<except> -> $except_type {
- if $except_type eq $line_type {
+ if $except_type eq %prof_line<type>{
return 0;
}
}
@@ -63,13 +51,12 @@
class ProfTest::Want::Version is ProfTest::Want;
method new($version?) {
- self<version> := $version;
+ self<version> := $version;
self;
}
-method accepts($prof_line) {
- if $prof_line<fixed_line> &&
- $prof_line<fixed_line><line_type> eq 'VERSION' {
+method accepts(%prof_line) {
+ if %prof_line<type> eq 'VERSION' {
return 1;
}
}
@@ -87,13 +74,10 @@
class ProfTest::Want::CLI is ProfTest::Want;
-method new() {
- self;
-}
+method new() { self }
-method accepts($prof_line) {
- if $prof_line<fixed_line> &&
- $prof_line<fixed_line><line_type> eq 'CLI' {
+method accepts(%prof_line) {
+ if %prof_line<type> eq 'CLI' {
return 1;
}
}
@@ -106,9 +90,8 @@
method new() { self; }
-method accepts($prof_line) {
- if $prof_line<fixed_line> &&
- $prof_line<fixed_line><line_type> eq 'END_OF_RUNLOOP' {
+method accepts(%prof_line) {
+ if %prof_line<type> eq 'END_OF_RUNLOOP' {
return 1;
}
}
@@ -127,13 +110,12 @@
self;
}
-method accepts($prof_line) {
- if $prof_line<variable_line> && $prof_line<variable_line><line_type> eq 'OP' {
- my %variable_data := self.hashify_profile_data($prof_line<variable_line><variable_data>);
- if self<name> ne %variable_data<op> {
+method accepts(%prof_line) {
+ if %prof_line<type> eq 'OP' {
+ if self<name> ne %prof_line<op> {
return 0;
}
- if self<line> && self<line> != %variable_data<line> {
+ if self<line> && self<line> != %prof_line<line> {
return 0;
}
return 1;
@@ -163,20 +145,19 @@
self;
}
-method accepts($prof_line) {
+method accepts(%prof_line) {
if self<found_cs> && self<slurp_until> {
- if pir::downcase($prof_line<variable_line><line_type>) ne self<slurp_until> {
+ if pir::downcase(%prof_line<type>) ne self<slurp_until> {
return 1;
}
return 0;
}
- elsif $prof_line<variable_line> && $prof_line<variable_line><line_type> eq 'CS' {
+ elsif %prof_line<type> eq 'CS' {
if !self<ns> {
self<found_cs> := 1;
return 1;
}
- my %h := self.hashify_profile_data($prof_line<variable_line><variable_data>);
- if %h<ns> eq self<ns> {
+ if %prof_line<ns> eq self<ns> {
self<found_cs> := 1;
return 1;
}
Deleted: branches/avl_string_cache/runtime/parrot/library/SQLite3.pir
==============================================================================
--- branches/avl_string_cache/runtime/parrot/library/SQLite3.pir Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,135 +0,0 @@
-# Copyright (C) 2008-2009, Parrot Foundation.
-# $Id$
-
-.namespace ['SQLite3']
-
-.const int SQLITE_OK = 0 # Successful result
-# beginning-of-error-codes
-.const int SQLITE_ERROR = 1 # SQL error or missing database
-.const int SQLITE_INTERNAL = 2 # Internal logic error in SQLite
-.const int SQLITE_PERM = 3 # Access permission denied
-.const int SQLITE_ABORT = 4 # Callback routine requested an abort
-.const int SQLITE_BUSY = 5 # The database file is locked
-.const int SQLITE_LOCKED = 6 # A table in the database is locked
-.const int SQLITE_NOMEM = 7 # A malloc() failed
-.const int SQLITE_READONLY = 8 # Attempt to write a readonly database
-.const int SQLITE_INTERRUPT = 9 # Operation terminated by sqlite3_interrupt()
-.const int SQLITE_IOERR = 10 # Some kind of disk I/O error occurred
-.const int SQLITE_CORRUPT = 11 # The database disk image is malformed
-.const int SQLITE_NOTFOUND = 12 # NOT USED. Table or record not found
-.const int SQLITE_FULL = 13 # Insertion failed because database is full
-.const int SQLITE_CANTOPEN = 14 # Unable to open the database file
-.const int SQLITE_PROTOCOL = 15 # NOT USED. Database lock protocol error
-.const int SQLITE_EMPTY = 16 # Database is empty
-.const int SQLITE_SCHEMA = 17 # The database schema changed
-.const int SQLITE_TOOBIG = 18 # String or BLOB exceeds size limit
-.const int SQLITE_CONSTRAINT = 19 # Abort due to constraint violation
-.const int SQLITE_MISMATCH = 20 # Data type mismatch
-.const int SQLITE_MISUSE = 21 # Library used incorrectly
-.const int SQLITE_NOLFS = 22 # Uses OS features not supported on host
-.const int SQLITE_AUTH = 23 # Authorization denied
-.const int SQLITE_FORMAT = 24 # Auxiliary database format error
-.const int SQLITE_RANGE = 25 # 2nd parameter to sqlite3_bind out of range
-.const int SQLITE_NOTADB = 26 # File opened that is not a database file
-.const int SQLITE_ROW = 100 # sqlite3_step() has another row ready
-.const int SQLITE_DONE = 101 # sqlite3_step() has finished executing
-
-.sub '_sqlite_init' :load
- .local pmc libname
- .local pmc function
- .local pmc sqlite_funcs
-
- libname = loadlib 'libsqlite3'
- set_global '_sqlite3', libname
-
- sqlite_funcs = new 'ResizableStringArray'
- push sqlite_funcs, 'step'
- push sqlite_funcs, 'ip'
- push sqlite_funcs, 'finalize'
- push sqlite_funcs, 'ip'
- push sqlite_funcs, 'close'
- push sqlite_funcs, 'ip'
- push sqlite_funcs, 'errmsg'
- push sqlite_funcs, 'tp'
- push sqlite_funcs, 'errcode'
- push sqlite_funcs, 'ip'
- push sqlite_funcs, 'bind_int'
- push sqlite_funcs, 'ipii'
- push sqlite_funcs, 'bind_double'
- push sqlite_funcs, 'ipid'
- push sqlite_funcs, 'bind_text'
- push sqlite_funcs, 'ipitii'
- push sqlite_funcs, 'column_name'
- push sqlite_funcs, 'tpi'
- push sqlite_funcs, 'column_count'
- push sqlite_funcs, 'ip'
- push sqlite_funcs, 'column_type'
- push sqlite_funcs, 'ipi'
- push sqlite_funcs, 'column_int'
- push sqlite_funcs, 'ipi'
- push sqlite_funcs, 'column_double'
- push sqlite_funcs, 'lpi'
- push sqlite_funcs, 'column_text'
- push sqlite_funcs, 'tpi'
-
- function = dlfunc libname, 'sqlite3_open', 'itV'
- set_global 'open_raw', function
-
- function = dlfunc libname, 'sqlite3_prepare_v2', 'iptiVp'
- set_global 'prepare_raw', function
-
- .local pmc list_iter
- list_iter = iter sqlite_funcs
- .local string func_name, signature
- .local pmc function
-
- list_loop:
- unless list_iter goto done
- func_name = shift list_iter
- signature = shift list_iter
- $S0 = concat 'sqlite3_', func_name
- function = dlfunc libname, $S0, signature
- set_global func_name, function
- goto list_loop
-
- done:
-
-.end
-
-.sub 'open'
- .param string connectstr
- .local pmc dbhandle
- .local pmc open_raw
- .local int rc
-
- open_raw = get_global 'open_raw'
- dbhandle = new 'Pointer'
- rc = open_raw(connectstr, dbhandle)
-
- .return(dbhandle)
-.end
-
-.sub 'prepare'
- .param pmc dbhandle
- .param string psstr
- .local int psstrlen
- .local pmc pshandle
- .local pmc dummy
- .local pmc prepare_raw
- .local int rc
-
- prepare_raw = get_global 'prepare_raw'
-
- pshandle = new 'Pointer'
- dummy = new 'Pointer'
- psstrlen = length psstr
- rc = prepare_raw(dbhandle, psstr, psstrlen, pshandle, dummy)
-
- .return(pshandle)
-.end
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/avl_string_cache/runtime/parrot/library/Stream/Base.pir
==============================================================================
--- branches/avl_string_cache/runtime/parrot/library/Stream/Base.pir Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/runtime/parrot/library/Stream/Base.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -65,7 +65,7 @@
=cut
-.sub close :method
+.sub close :method :nsentry
.local pmc temp
# reset source
Added: branches/avl_string_cache/runtime/parrot/library/TAP/Formatter.pir
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/avl_string_cache/runtime/parrot/library/TAP/Formatter.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -0,0 +1,851 @@
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+TAP/Formatter
+
+=head2 DESCRIPTION
+
+Simplified port of TAP::Harness (version 3.21)
+
+See L<http://search.cpan.org/~andya/Test-Harness/>
+
+=head3 Class TAP;Formatter;Base
+
+Base class for harness output delegates
+
+=over 4
+
+=cut
+
+.namespace ['TAP';'Formatter';'Base']
+
+.sub '' :init :load :anon
+ $P0 = newclass ['TAP';'Formatter';'Base']
+ $P0.'add_attribute'('verbosity')
+ $P0.'add_attribute'('normalize')
+ $P0.'add_attribute'('failures')
+ $P0.'add_attribute'('comments')
+ $P0.'add_attribute'('directives')
+ $P0.'add_attribute'('_longest')
+ $P0.'add_attribute'('_printed_summary_header')
+.end
+
+.sub 'init' :vtable :method
+ $P0 = box 0
+ setattribute self, 'verbosity', $P0
+.end
+
+=item process_args
+
+=cut
+
+.sub 'process_args' :method
+ .param pmc opts
+ $I0 = exists opts['verbose']
+ unless $I0 goto L1
+ $P0 = box 1
+ setattribute self, 'verbosity', $P0
+ L1:
+ $I0 = exists opts['quiet']
+ unless $I0 goto L2
+ $P0 = box -1
+ setattribute self, 'verbosity', $P0
+ L2:
+ $I0 = exists opts['QUIET']
+ unless $I0 goto L3
+ $P0 = box -2
+ setattribute self, 'verbosity', $P0
+ L3:
+ $I0 = exists opts['normalize']
+ unless $I0 goto L4
+ $P0 = new 'Boolean'
+ set $P0, 1
+ setattribute self, 'normalize', $P0
+ L4:
+ $I0 = exists opts['failures']
+ unless $I0 goto L5
+ $P0 = new 'Boolean'
+ set $P0, 1
+ setattribute self, 'failures', $P0
+ L5:
+ $I0 = exists opts['comments']
+ unless $I0 goto L6
+ $P0 = new 'Boolean'
+ set $P0, 1
+ setattribute self, 'comments', $P0
+ L6:
+ $I0 = exists opts['directives']
+ unless $I0 goto L7
+ $P0 = new 'Boolean'
+ set $P0, 1
+ setattribute self, 'directives', $P0
+ L7:
+.end
+
+=item verbose
+
+=cut
+
+.sub 'verbose' :method
+ $P0 = getattribute self, 'verbosity'
+ $I0 = $P0
+ $I0 = $I0 >= 1
+ .return ($I0)
+.end
+
+=item quiet
+
+=cut
+
+.sub 'quiet' :method
+ $P0 = getattribute self, 'verbosity'
+ $I0 = $P0
+ $I0 = $I0 <= -1
+ .return ($I0)
+.end
+
+=item really_quiet
+
+=cut
+
+.sub 'really_quiet' :method
+ $P0 = getattribute self, 'verbosity'
+ $I0 = $P0
+ $I0 = $I0 <= -2
+ .return ($I0)
+.end
+
+=item silent
+
+=cut
+
+.sub 'silent' :method
+ $P0 = getattribute self, 'verbosity'
+ $I0 = $P0
+ $I0 = $I0 <= -3
+ .return ($I0)
+.end
+
+=item prepare
+
+=cut
+
+.sub 'prepare' :method
+ .param pmc tests
+ .local int longest
+ longest = 0
+ $P0 = iter tests
+ L1:
+ unless $P0 goto L2
+ $S0 = shift $P0
+ $I0 = length $S0
+ unless $I0 > longest goto L1
+ longest = $I0
+ goto L1
+ L2:
+ $P0 = box longest
+ setattribute self, '_longest', $P0
+.end
+
+=item _format_name
+
+=cut
+
+.sub '_format_name' :method
+ .param string name
+ $P0 = getattribute self, '_longest'
+ $I0 = $P0
+ $I0 += 2
+ $I1 = length name
+ $I0 -= $I1
+ $S0 = repeat '.', $I0
+ $S0 = ' ' . $S0
+ $S0 .= ' '
+ $S1 = name . $S0
+ .return ($S1)
+.end
+
+.sub 'open_test' :method
+ die "Unimplemented."
+.end
+
+=item summary
+
+=cut
+
+.sub 'summary' :method
+ .param pmc aggregate
+ $I0 = self.'silent'()
+ if $I0 goto L1
+ .local pmc tests
+ tests = aggregate.'descriptions'()
+ .local string runtime
+ runtime = aggregate.'elapsed_timestr'()
+ .local int total, passed
+ total = aggregate.'total'()
+ passed = aggregate.'passed'()
+
+ $I0 = aggregate.'all_passed'()
+ unless $I0 goto L2
+ self.'_output_success'("All tests successful.\n")
+ L2:
+
+ if total != passed goto L3
+ $I0 = aggregate.'has_problems'()
+ unless $I0 goto L4
+ L3:
+ self.'_output'("\nTest Summary Report")
+ self.'_output'("\n-------------------\n")
+ $P0 = iter tests
+ L5:
+ unless $P0 goto L4
+ .local string test
+ test = shift $P0
+ $P1 = box 0
+ setattribute self, '_printed_summary_header', $P1
+ .local pmc parser
+ parser = aggregate.'parsers'(test)
+ $P2 = parser.'failed'()
+ self.'_output_summary_failure'($P2, ' Failed test: ', ' Failed tests: ', test, parser)
+ $P2 = parser.'todo_passed'()
+ self.'_output_summary_failure'($P2, " TODO passed: ", " TODO passed: ", test, parser)
+
+ .local int _exit
+ _exit = parser.'exit'()
+ unless _exit goto L6
+ self.'_summary_test_header'(test, parser)
+ $S1 = _exit
+ self.'_failure_output'(" Non-zero exit status: ", $S1, "\n")
+ L6:
+
+ .local pmc errors
+ errors = parser.'parse_errors'()
+ $I0 = elements errors
+ unless $I0 goto L5
+ self.'_summary_test_header'(test, parser)
+ $P2 = iter errors
+ $S1 = shift $P2
+ self.'_failure_output'(" Parse errors: ", $S1, "\n")
+ L8:
+ unless $P2 goto L5
+ $S1 = repeat ' ', 16
+ $S2 = shift $P2
+ self.'_failure_output'($S1, $S2, "\n")
+ goto L8
+
+ L4:
+ $I0 = elements tests
+ $S1 = $I0
+ $S2 = total
+ self.'_output'("Files=", $S1, ", Tests=", $S2, ", ", runtime, "\n")
+ $S1 = aggregate.'get_status'()
+ self.'_output'("Result: ", $S1, "\n")
+ L1:
+.end
+
+.sub '_output_summary_failure' :method
+ .param pmc r
+ .param string singular
+ .param string plural
+ .param string test
+ .param pmc parser
+ $I0 = elements r
+ unless $I0 goto L1
+ self.'_summary_test_header'(test, parser)
+ unless $I0 == 1 goto L2
+ self.'_output'(singular)
+ goto L3
+ L2:
+ self.'_output'(plural)
+ L3:
+ .local pmc results
+ results = self.'_balanced_range'(40, r)
+ $S1 = shift results
+ self.'_output'($S1, "\n")
+ L4:
+ unless results goto L1
+ $S1 = repeat ' ', 16
+ $S2 = shift results
+ self.'_output'($S1, $S2, "\n")
+ goto L4
+ L1:
+.end
+
+.sub '_summary_test_header' :method
+ .param string test
+ .param pmc parser
+ .local pmc _printed_summary_header
+ _printed_summary_header = getattribute self, '_printed_summary_header'
+ if _printed_summary_header goto L1
+ .local string spaces, tests_run, failed
+ $P0 = getattribute self, '_longest'
+ $I0 = $P0
+ $I1 = length test
+ $I0 -= $I1
+ inc $I0
+ spaces = repeat ' ', $I0
+ tests_run = parser.'tests_run'()
+ $P0 = parser.'failed'()
+ $I0 = elements $P0
+ failed = $I0
+ self.'_output'(test, spaces, "(Tests: ", tests_run, " Failed: ", failed, ")\n")
+ set _printed_summary_header, 1
+ L1:
+.end
+
+=item _output
+
+=cut
+
+.sub '_output' :method
+ .param pmc args :slurpy
+ $S0 = join '', args
+ print $S0
+.end
+
+=item _failure_output
+
+=cut
+
+.sub '_failure_output' :method
+ .param pmc args :slurpy
+ self.'_output'(args :flat)
+.end
+
+.sub '_output_success' :method
+ .param pmc args :slurpy
+ self.'_output'(args :flat)
+.end
+
+.sub '_balanced_range' :method
+ .param int limit
+ .param pmc range
+ range = self.'_range'(range)
+ .local string line
+ line = ''
+ .local pmc lines
+ lines = new 'ResizableStringArray'
+ .local int curr
+ curr = 0
+ L1:
+ unless range goto L2
+ unless curr < limit goto L3
+ $S0 = shift range
+ $S0 .= ", "
+ line .= $S0
+ $I0 = length $S0
+ curr += $I0
+ goto L1
+ L3:
+ unless range goto L1
+ $I0 = length line
+ $I0 -= 2
+ line = substr line, 0, $I0
+ push lines, line
+ line = ''
+ curr = 0
+ goto L1
+ L2:
+ if line == '' goto L9
+ $I0 = length line
+ $I0 -= 2
+ line = substr line, 0, $I0
+ push lines, line
+ L9:
+ .return (lines)
+.end
+
+.sub '_range' :method
+ .param pmc numbers
+ .local int min, i, _num, next
+ .local pmc range
+ range = new 'ResizableStringArray'
+ push numbers, -1
+ min = -1
+ L1:
+ _num = shift numbers
+ if _num == -1 goto L2
+ next = shift numbers
+ unshift numbers, next
+ $I0 = _num + 1
+ unless next == $I0 goto L3
+ unless min == -1 goto L1
+ min = _num
+ goto L1
+ L3:
+ unless min != -1 goto L4
+ $S0 = min
+ $S0 .= '-'
+ $S1 = _num
+ $S0 .= $S1
+ push range, $S0
+ min = -1
+ goto L1
+ L4:
+ $S0 = _num
+ push range, $S0
+ goto L1
+ L2:
+ .return (range)
+.end
+
+=back
+
+=head3 Class TAP;Formatter;Session
+
+Abstract base class for harness output delegate
+
+=over 4
+
+=cut
+
+.namespace ['TAP';'Formatter';'Session']
+
+.sub '' :init :load :anon
+ $P0 = newclass ['TAP';'Formatter';'Session']
+ $P0.'add_attribute'('name')
+ $P0.'add_attribute'('formatter')
+ $P0.'add_attribute'('parser')
+ $P0.'add_attribute'('show_count')
+.end
+
+.sub 'init' :vtable :nsentry
+ $P0 = getattribute self, 'show_count'
+ unless null $P0 goto L1
+ $P0 = new 'Boolean'
+ set $P0, 1
+ setattribute self, 'show_count', $P0
+ L1:
+.end
+
+=item header
+
+=cut
+
+.sub 'header' :method
+ # nothing
+.end
+
+=item result
+
+=cut
+
+.sub 'result' :method
+ .param pmc result
+ # nothing
+.end
+
+=item close_test
+
+=cut
+
+.sub 'close_test' :method
+ # nothing
+.end
+
+=item clear_for_close
+
+=cut
+
+.sub 'clear_for_close' :method
+ # nothing
+.end
+
+.sub '_should_show_count' :method
+ $P0 = getattribute self, 'formatter'
+ $I0 = $P0.'verbose'()
+ unless $I0 goto L1
+ .return (0)
+ L1:
+ # work in progress
+ .return (1)
+.end
+
+.sub '_format_for_output' :method
+ .param pmc result
+ $P0 = getattribute self, 'formatter'
+ $P0 = getattribute $P0, 'normalize'
+ if null $P0 goto L1
+ unless $P0 goto L1
+ $S0 = result
+ .return ($S0)
+ L1:
+ $P0 = getattribute result, 'raw'
+ .return ($P0)
+.end
+
+.sub '_output_test_failure' :method
+ .param pmc parser
+ .local pmc formatter
+ formatter = getattribute self, 'formatter'
+ $I0 = formatter.'really_quiet'()
+ if $I0 goto L1
+
+ .local pmc tests_run, tests_planned
+ tests_run = parser.'tests_run'()
+ tests_planned = parser.'tests_planned'()
+ .local int total
+ if null tests_planned goto L2
+ total = tests_planned
+ goto L3
+ L2:
+ total = tests_run
+ L3:
+
+ .local int passed, failed, exit
+ $P0 = parser.'passed'()
+ passed = elements $P0
+ $P0 = parser.'failed'()
+ failed = elements $P0
+ failed += total
+ $I0 = tests_run
+ failed -= $I0
+ exit = parser.'exit'()
+
+ unless exit goto L4
+ $S1 = exit
+ formatter.'_failure_output'("Dubious, test returned ", $S1, "\n")
+ L4:
+
+ unless failed == 0 goto L5
+ unless total goto L6
+ $S1 = total
+ formatter.'_failure_output'("All ", $S1, " subtests passed ")
+ goto L7
+ L6:
+ formatter.'_failure_output'("No subtests run ")
+ goto L7
+ L5:
+ $S1 = failed
+ $S2 = total
+ formatter.'_failure_output'("Failed ", $S1, "/", $S2, " subtests ")
+ if total goto L7
+ formatter.'_failure_output'("\nNo tests run!")
+ L7:
+
+ .local int skipped
+ $P0 = parser.'skipped'()
+ skipped = elements $P0
+ unless skipped goto L8
+ passed -= skipped
+ $S1 = skipped
+ $S2 = ''
+ if skipped == 1 goto L9
+ $S2 = 's'
+ L9:
+ $S3 = passed
+ formatter.'_output'("\n\t(less ", $S1, " skipped subtest", $S2, ": ", $S3, " okay)")
+ L8:
+
+ $P0 = parser.'todo_passed'()
+ failed = elements $P0
+ unless failed goto L10
+ $S1 = failed
+ $S2 = ''
+ if failed == 1 goto L11
+ $S2 = 's'
+ L11:
+ formatter.'_output'("\n\t(", $S1, " TODO test", $S2, " unexpectedly succeeded)")
+ L10:
+
+ formatter.'_output'("\n")
+ L1:
+.end
+
+=back
+
+=head3 Class TAP;Formatter;Console
+
+Harness output delegate for default console output
+
+=over 4
+
+=cut
+
+.namespace ['TAP';'Formatter';'Console']
+
+.sub '' :init :load :anon
+ $P0 = subclass ['TAP';'Formatter';'Base'], ['TAP';'Formatter';'Console']
+.end
+
+=item open_test
+
+=cut
+
+.sub 'open_test' :method
+ .param string test
+ .param pmc parser
+ $P0 = new ['TAP';'Formatter';'Console';'Session']
+ $P1 = box test
+ setattribute $P0, 'name', $P1
+ setattribute $P0, 'formatter', self
+ setattribute $P0, 'parser', parser
+ $P1 = getattribute $P0, 'show_count'
+ unless $P1 goto L1
+ $I0 = $P0.'_should_show_count'()
+ set $P1, $I0
+ L1:
+ $P0.'header'()
+ .return ($P0)
+.end
+
+=item _set_colors
+
+=cut
+
+.sub '_set_colors' :method
+ .param pmc colors :slurpy
+.end
+
+=item _output_success
+
+=cut
+
+.sub '_output_success' :method
+ .param string msg
+ self.'_set_colors'('green')
+ self.'_output'(msg)
+ self.'_set_colors'('reset')
+.end
+
+=item _failure_output
+
+=cut
+
+.sub '_failure_output' :method
+ .param pmc args :slurpy
+ self.'_set_colors'('red')
+ $S0 = join '', args
+ self.'_output'($S0)
+ self.'_set_colors'('reset')
+.end
+
+=back
+
+=head3 Class TAP;Formatter;Console;Session
+
+Harness output delegate for default console output
+
+=over 4
+
+=cut
+
+.namespace ['TAP';'Formatter';'Console';'Session']
+
+.sub '' :init :load :anon
+ $P0 = subclass ['TAP';'Formatter';'Session'], ['TAP';'Formatter';'Console';'Session']
+ $P0.'add_attribute'('plan')
+ $P0.'add_attribute'('newline_printed')
+ $P0.'add_attribute'('last_status_printed')
+.end
+
+.sub 'init' :vtable :method
+ $P0 = box ''
+ setattribute self, 'plan', $P0
+ $P0 = new 'Boolean'
+ set $P0, 0
+ setattribute self, 'newline_printed', $P0
+ $P0 = box 0
+ setattribute self, 'last_status_printed', $P0
+ $P0 = get_hll_global ['TAP';'Formatter';'Session'], 'init'
+ $P0(self)
+.end
+
+=item _get_output_result
+
+=cut
+
+.sub '_get_output_result' :method
+ .param pmc result
+ .local pmc formatter
+ formatter = getattribute self, 'formatter'
+ $S0 = self.'_format_for_output'(result)
+ formatter.'_output'($S0)
+.end
+
+=item header
+
+=cut
+
+.sub 'header' :method
+ .local pmc formatter
+ formatter = getattribute self, 'formatter'
+ $I0 = formatter.'really_quiet'()
+ if $I0 goto L1
+ .local pmc name
+ name = getattribute self, 'name'
+ .local string pretty
+ pretty = formatter.'_format_name'(name)
+ formatter.'_output'(pretty)
+ L1:
+.end
+
+=item result
+
+=cut
+
+.sub 'result' :method
+ .param pmc result
+ .local pmc formatter
+ formatter = getattribute self, 'formatter'
+ $I0 = isa result, ['TAP';'Parser';'Result';'Bailout']
+ unless $I0 goto L1
+ $S1 = result.'bailout'()
+ formatter.'_failure_output'("Bailout called. Further testing stopped: ", $S1, "\n")
+ L1:
+
+ $I0 = formatter.'really_quiet'()
+ if $I0 goto L2
+
+ .local pmc plan
+ plan = getattribute self, 'plan'
+ unless null plan goto L3
+ $S0 = '?'
+ .local pmc parser, tests_planned
+ parser = getattribute self, 'parser'
+ tests_planned = getattribute parser, 'tests_planned'
+ unless null tests_planned goto L4
+ $S0 = tests_planned
+ L4:
+ $S0 = '/' . $S0
+ plan = box $S0
+ setattribute self, 'plan', $P0
+ L3:
+
+ .local int is_test
+ is_test = isa result, ['TAP';'Parser';'Result';'Test']
+ unless is_test goto L5
+ .local pmc show_count
+ show_count = getattribute self, 'show_count'
+ unless show_count goto L5
+ .local int now
+ now = time
+ .local pmc last_status_printed
+ last_status_printed = getattribute self, 'last_status_printed'
+ $I0 = last_status_printed
+ if now == $I0 goto L5
+ .local pmc name
+ name = getattribute self, 'name'
+ .local string pretty
+ pretty = formatter.'_format_name'(name)
+ .local pmc number
+ number = getattribute result, 'test_num'
+ $S1 = number
+ $S2 = plan
+ formatter.'_output'("\r", pretty, $S1, $S2)
+ set last_status_printed, now
+ L5:
+
+ $I0 = formatter.'quiet'()
+ if $I0 goto L2
+ $I0 = formatter.'verbose'()
+ if $I0 goto L6
+ unless is_test goto L7
+ $P0 = getattribute formatter, 'failures'
+ if null $P0 goto L7
+ unless $P0 goto L7
+ $I0 = result.'is_ok'()
+ unless $I0 goto L6
+ L7:
+ $P0 = getattribute formatter, 'comments'
+ if null $P0 goto L8
+ $I0 = isa result, ['TAP';'Parser';'Result';'Comment']
+ if $I0 goto L6
+ L8:
+ $P0 = getattribute formatter, 'directives'
+ if null $P0 goto L2
+ $I0 = result.'has_directive'()
+ unless $I0 goto L2
+ L6:
+ $P0 = getattribute self, 'newline_printed'
+ if $P0 goto L9
+ formatter.'_output'("\n")
+ set $P0, 1
+ L9:
+ self.'_get_output_result'(result)
+ formatter.'_output'("\n")
+ L2:
+.end
+
+=item close_test
+
+=cut
+
+.sub 'close_test' :method
+ .local pmc formatter
+ formatter = getattribute self, 'formatter'
+ $I0 = formatter.'really_quiet'()
+ if $I0 goto L1
+
+ .local pmc show_count
+ show_count = getattribute self, 'show_count'
+ unless show_count goto L2
+ self.'clear_for_close'()
+ .local pmc name
+ name = getattribute self, 'name'
+ .local string pretty
+ pretty = formatter.'_format_name'(name)
+ formatter.'_output'("\r", pretty)
+ L2:
+
+ .local pmc parser, skip_all
+ parser = getattribute self, 'parser'
+ skip_all = getattribute parser, 'skip_all'
+ if null skip_all goto L3
+ unless skip_all goto L3
+ $S1 = skip_all
+ formatter.'_output'("skipped: ", $S1, "\n")
+ goto L1
+ L3:
+ $I0 = parser.'has_problems'()
+ unless $I0 goto L4
+ self.'_output_test_failure'(parser)
+ goto L1
+ L4:
+ .local string time_report
+ time_report = ''
+ # work in progress
+ formatter.'_output'("ok", time_report, "\n")
+ L1:
+.end
+
+=item clear_for_close
+
+=cut
+
+.sub 'clear_for_close' :method
+ .local pmc parser, formatter, name, plan, output
+ .local string tests_run, pretty
+ $I0 = 1
+ parser = getattribute self, 'parser'
+ tests_run = parser.'tests_run'()
+ $I1 = length tests_run
+ $I0 += $I1
+ formatter = getattribute self, 'formatter'
+ name = getattribute self, 'name'
+ pretty = formatter.'_format_name'(name)
+ $I1 = length pretty
+ $I0 += $I1
+ plan = getattribute self, 'plan'
+ $S0 = plan
+ $I1 = length $S0
+ $I0 += $I1
+ $S0 = repeat ' ', $I0
+ formatter.'_output'("\r", $S0)
+.end
+
+=back
+
+=head1 AUTHOR
+
+Francois Perrad
+
+=cut
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Added: branches/avl_string_cache/runtime/parrot/library/TAP/Harness.pir
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/avl_string_cache/runtime/parrot/library/TAP/Harness.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -0,0 +1,421 @@
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+TAP/Harness
+
+=head2 DESCRIPTION
+
+Simplified port of TAP::Harness (version 3.21)
+and TAP::Harness::Archive (version 0.14)
+
+See L<http://search.cpan.org/~andya/Test-Harness/>
+end L<http://search.cpan.org/~wonko/TAP-Harness-Archive/>.
+
+=head3 Class TAP;Harness
+
+This is a simple test harness which allows tests to be run and results
+automatically aggregated and output to STDOUT.
+
+=over 4
+
+=cut
+
+.namespace ['TAP';'Harness']
+
+.sub '' :init :load :anon
+ load_bytecode 'TAP/Parser.pbc'
+ load_bytecode 'TAP/Formatter.pbc'
+ $P0 = subclass ['TAP';'Base'], ['TAP';'Harness']
+ $P0.'add_attribute'('formatter')
+ $P0.'add_attribute'('exec')
+ $P0.'add_attribute'('ignore_exit')
+ $P0.'add_attribute'('merge')
+ $P0.'add_attribute'('opts')
+
+ $P0 = new 'Hash'
+ $P1 = split ' ', 'parser_args made_parser before_runtests after_runtests after_test'
+ L1:
+ unless $P1 goto L2
+ $S0 = shift $P1
+ $P0[$S0] = 1
+ goto L1
+ L2:
+ set_global ['TAP';'Harness'], 'LEGAL_CALLBACK', $P0
+.end
+
+.sub 'init' :vtable :init
+ $P0 = get_global ['TAP';'Harness'], 'LEGAL_CALLBACK'
+ setattribute self, 'ok_callbacks', $P0
+.end
+
+=item process_args
+
+=cut
+
+.sub 'process_args' :method
+ .param pmc opts
+ setattribute self, 'opts', opts
+ $I0 = exists opts['exec']
+ unless $I0 goto L1
+ $S0 = opts['exec']
+ $P0 = box $S0
+ setattribute self, 'exec', $P0
+ L1:
+ $I0 = exists opts['ignore-exit']
+ unless $I0 goto L2
+ $S0 = opts['ignore-exit']
+ $P0 = new 'Boolean'
+ set $P0, 1
+ setattribute self, 'ignore_exit', $P0
+ L2:
+ $I0 = exists opts['merge']
+ unless $I0 goto L3
+ $S0 = opts['merge']
+ $P0 = new 'Boolean'
+ set $P0, 1
+ setattribute self, 'merge', $P0
+ L3:
+.end
+
+=item formatter
+
+=cut
+
+.sub 'formatter' :method
+ .param pmc formatter
+ setattribute self, 'formatter', formatter
+.end
+
+=item runtests
+
+=cut
+
+.sub 'runtests' :method :nsentry
+ .param pmc tests
+ $P0 = getattribute self, 'formatter'
+ unless null $P0 goto L1
+ $P0 = new ['TAP';'Formatter';'Console']
+ setattribute self, 'formatter', $P0
+ $P1 = getattribute self, 'opts'
+ $P0.'process_args'($P1)
+ L1:
+ .local pmc aggregate
+ aggregate = new ['TAP';'Parser';'Aggregator']
+ self.'_make_callback'('before_runtests', aggregate)
+ aggregate.'start'()
+ self.'aggregate_tests'(aggregate, tests)
+ aggregate.'stop'()
+ self.'summary'(aggregate)
+ self.'_make_callback'('after_runtests', aggregate)
+ .return (aggregate)
+.end
+
+.sub 'aggregate_tests' :method
+ .param pmc aggregate
+ .param pmc tests
+ $P0 = getattribute self, 'formatter'
+ $P0.'prepare'(tests)
+ .local string exec
+ exec = ''
+ $P0 = getattribute self, 'exec'
+ if null $P0 goto L1
+ exec = $P0
+ L1:
+ $P0 = iter tests
+ L2:
+ unless $P0 goto L3
+ $S0 = shift $P0
+ .local pmc parser, session
+ (parser, session) = self.'make_parser'($S0)
+ unless exec == '' goto L4
+ parser.'file'($S0)
+ goto L5
+ L4:
+ parser.'exec'(exec, $S0)
+ L5:
+ .local pmc coro
+ $P1 = get_hll_global ['TAP';'Parser'], 'next'
+ coro = newclosure $P1
+ L6:
+ .local pmc result
+ result = coro(parser)
+ if null result goto L7
+ session.'result'(result)
+ $I0 = isa result, ['TAP';'Parser';'Result';'Bailout']
+ unless $I0 goto L6
+ self.'_bailout'(result)
+ L7:
+ self.'finish_parser'(parser, session)
+ self.'_after_test'(aggregate, $S0, parser)
+ goto L2
+ L3:
+.end
+
+.sub '_after_test' :method
+ .param pmc aggregate
+ .param pmc desc
+ .param pmc parser
+ self.'_make_callback'('after_test', parser)
+ aggregate.'add'(desc, parser)
+.end
+
+.sub '_bailout' :method
+ .param pmc result
+ $S0 = ".\n"
+ $P0 = result.'bailout'()
+ if null $P0 goto L1
+ $S0 = $P0
+ L1:
+ $S0 = "FAILED--Further testing stopped" . $S0
+ die $S0
+.end
+
+.sub 'summary' :method
+ .param pmc aggregate
+ $P0 = getattribute self, 'formatter'
+ $P0.'summary'(aggregate)
+.end
+
+.sub 'make_parser' :method
+ .param string desc
+ .local pmc parser, session
+ parser = new ['TAP';'Parser']
+ $P0 = getattribute self, 'merge'
+ if null $P0 goto L1
+ parser.'merge'($P0)
+ L1:
+ $P0 = getattribute self, 'ignore_exit'
+ if null $P0 goto L2
+ parser.'ignore_exit'($P0)
+ L2:
+ self.'_open_spool'(parser, desc)
+ self.'_make_callback'('made_parser', parser)
+ $P0 = getattribute self, 'formatter'
+ session = $P0.'open_test'(desc, parser)
+ .return (parser, session)
+.end
+
+.sub 'finish_parser' :method
+ .param pmc parser
+ .param pmc session
+ session.'close_test'()
+ self.'_close_spool'(parser)
+ .return (parser)
+.end
+
+.sub '_open_spool' :method
+ .param pmc parser
+ .param string test
+ $P0 = new 'Env'
+ $I0 = exists $P0['PARROT_TEST_HARNESS_DUMP_TAP']
+ unless $I0 goto L1
+ .local string spool
+ spool = $P0['PARROT_TEST_HARNESS_DUMP_TAP']
+ spool .= '/'
+ spool .= test
+ $S0 = dirname(spool)
+ mkpath($S0)
+ $P0 = new 'FileHandle'
+ $P0.'open'(spool, 'w')
+ parser.'spool'($P0)
+ L1:
+.end
+
+.sub '_close_spool' :method
+ .param pmc parser
+ $P0 = parser.'delete_spool'()
+ if null $P0 goto L1
+ close $P0
+ L1:
+.end
+
+=back
+
+=head3 Class TAP';Harness;Archive
+
+This module is a direct subclass of C<TAP;Harness> and behaves
+in exactly the same way except for one detail. In addition to
+outputting a running progress of the tests and an ending summary
+it can also capture all of the raw TAP from the individual test
+files or streams into an archive file (C<.tar.gz>).
+
+=over 4
+
+=cut
+
+.namespace ['TAP';'Harness';'Archive']
+
+.sub '' :init :load :anon
+ load_bytecode 'osutils.pbc'
+ $P0 = subclass ['TAP';'Harness'], ['TAP';'Harness';'Archive']
+ $P0.'add_attribute'('archive_file')
+ $P0.'add_attribute'('archive_extra_files')
+ $P0.'add_attribute'('archive_extra_props')
+.end
+
+=item archive
+
+=cut
+
+.sub 'archive' :method
+ .param pmc archive
+ setattribute self, 'archive_file', archive
+.end
+
+=item extra_files
+
+=cut
+
+.sub 'extra_files' :method
+ .param pmc extra_files
+ $I0 = does extra_files, 'array'
+ if $I0 goto L1
+ die "extra_files must be an array!"
+ L1:
+ setattribute self, 'archive_extra_files', extra_files
+.end
+
+=item extra_props
+
+=cut
+
+.sub 'extra_props' :method
+ .param pmc extra_props
+ $I0 = does extra_props, 'hash'
+ if $I0 goto L1
+ die "extra_props must be an hash!"
+ L1:
+ setattribute self, 'archive_extra_props', extra_props
+.end
+
+=item runtests
+
+=cut
+
+.sub 'runtests' :method
+ .param pmc files
+ $P0 = getattribute self, 'archive_file'
+ unless null $P0 goto L1
+ die "You must provide the name of the archive to create!"
+ L1:
+ .local string archive, dir
+ archive = $P0
+ dir = tempdir()
+ .local pmc env
+ env = new 'Env'
+ env['PARROT_TEST_HARNESS_DUMP_TAP'] = dir
+ .local pmc aggregate
+ $P0 = get_hll_global ['TAP';'Harness'], 'runtests'
+ aggregate = $P0(self, files)
+ .local string current_dir, cmd
+ current_dir = cwd()
+ chdir(dir)
+ $S0 = self.'_mk_meta'(aggregate)
+ spew('meta.yml', $S0)
+ $P0 = getattribute self, 'archive_extra_files'
+ if null $P0 goto L2
+ $P1 = iter $P0
+ L3:
+ unless $P1 goto L2
+ $S2 = shift $P1
+ $S1 = current_dir . '/'
+ $S1 .= $S2
+ cp($S1, $S2)
+ goto L3
+ L2:
+ $S0 = current_dir
+ $I0 = index $S0, ':'
+ unless $I0 == 1 goto L4
+ $S0 = substr $S0, 2 # remove Windows drive
+ L4:
+ cmd = "tar -cf " . $S0
+ cmd .= "/"
+ $I0 = length archive
+ $I0 -= 3
+ $S0 = substr archive, 0, $I0
+ cmd .= $S0
+ cmd .= " *"
+ system(cmd)
+ chdir(current_dir)
+ cmd = "gzip --best " . $S0
+ system(cmd)
+ rmtree(dir)
+ .return (aggregate)
+.end
+
+.sub '_mk_meta' :method
+ .param pmc aggregate
+ $S0 = "---"
+ $S0 .= "\nfile_attributes:"
+ $P0 = aggregate.'descriptions'()
+ $P1 = iter $P0
+ L1:
+ unless $P1 goto L2
+ $S1 = shift $P1
+ .local pmc parser
+ parser = aggregate.'parsers'($S1)
+ $S0 .= "\n -"
+ $S0 .= "\n description: "
+ $S0 .= $S1
+ $N0 = parser.'start_time'()
+ $S0 .= "\n start_time: "
+ $S1 = $N0
+ $S0 .= $S1
+ $N0 = parser.'end_time'()
+ $S0 .= "\n stop_time: "
+ $S1 = $N0
+ $S0 .= $S1
+ goto L1
+ L2:
+ $S0 .= "\nfile_order:"
+ $P1 = iter $P0
+ L3:
+ unless $P1 goto L4
+ $S1 = shift $P1
+ $S0 .= "\n - "
+ $S0 .= $S1
+ goto L3
+ L4:
+ $I0 = aggregate.'start_time'()
+ $S0 .= "\nstart_time: "
+ $S1 = $I0
+ $S0 .= $S1
+ $I0 = aggregate.'end_time'()
+ $S0 .= "\nstop_time: "
+ $S1 = $I0
+ $S0 .= $S1
+ $P0 = getattribute self, 'archive_extra_props'
+ if null $P0 goto L5
+ $S0 .= "\nextra_properties:"
+ $P1 = iter $P0
+ L6:
+ unless $P1 goto L5
+ .local string key, value
+ key = shift $P1
+ value = $P0[key]
+ if value == '' goto L6
+ $S0 .= "\n "
+ $S0 .= key
+ $S0 .= ": "
+ $S0 .= value
+ goto L6
+ L5:
+ $S0 .= "\n"
+ .return ($S0)
+.end
+
+=back
+
+=head1 AUTHOR
+
+Francois Perrad
+
+=cut
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Added: branches/avl_string_cache/runtime/parrot/library/TAP/Parser.pir
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/avl_string_cache/runtime/parrot/library/TAP/Parser.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -0,0 +1,1662 @@
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+TAP/Parser
+
+=head2 DESCRIPTION
+
+Simplified port of TAP::Parser (version 3.21)
+
+See L<http://search.cpan.org/~andya/Test-Harness/>
+
+=head3 Class TAP;Parser;Result
+
+Base class for TAP::Parser output objects
+
+=over 4
+
+=cut
+
+.namespace ['TAP';'Parser';'Result']
+
+.sub '' :init :load :anon
+ $P0 = newclass ['TAP';'Parser';'Result']
+ $P0.'add_attribute'('raw')
+ $P0.'add_attribute'('directive')
+ $P0.'add_attribute'('explanation')
+.end
+
+=item get_string
+
+=cut
+
+.sub 'get_string' :vtable :method
+ $P0 = getattribute self, 'raw'
+ $S0 = $P0
+ .return ($S0)
+.end
+
+=item type
+
+=cut
+
+.sub 'type' :method
+ $S0 = typeof self
+ $P0 = split ';', $S0
+ $S0 = pop $P0
+ $S0 = downcase $S0
+ .return ($S0)
+.end
+
+=item has_todo
+
+=cut
+
+.sub 'has_todo' :method
+ $P0 = getattribute self, 'directive'
+ unless null $P0 goto L1
+ .return (0)
+ L1:
+ $S0 = $P0
+ $I0 = $S0 == 'TODO'
+ .return ($I0)
+.end
+
+=item has_skip
+
+=cut
+
+.sub 'has_skip' :method
+ $P0 = getattribute self, 'directive'
+ unless null $P0 goto L1
+ .return (0)
+ L1:
+ $S0 = $P0
+ $I0 = $S0 == 'SKIP'
+ .return ($I0)
+.end
+
+=item has_directive
+
+=cut
+
+.sub 'has_directive' :method
+ $I0 = self.'has_todo'()
+ if $I0 goto L1
+ $I0 = self.'has_skip'()
+ L1:
+ .return ($I0)
+.end
+
+=back
+
+=head3 Class TAP;Parser;Result;Bailout
+
+=over 4
+
+=cut
+
+.namespace ['TAP';'Parser';'Result';'Bailout']
+
+.sub '' :init :load :anon
+ $P0 = subclass ['TAP';'Parser';'Result'], ['TAP';'Parser';'Result';'Bailout']
+.end
+
+=item bailout
+
+=cut
+
+.sub 'bailout' :method
+ $P0 = getattribute self, 'explanation'
+ .return ($P0)
+.end
+
+=back
+
+=head3 Class TAP;Parser;Result;Comment
+
+=cut
+
+.namespace ['TAP';'Parser';'Result';'Comment']
+
+.sub '' :init :load :anon
+ $P0 = subclass ['TAP';'Parser';'Result'], ['TAP';'Parser';'Result';'Comment']
+ $P0.'add_attribute'('comment')
+.end
+
+=head3 Class TAP;Parser;Result;Plan
+
+=cut
+
+.namespace ['TAP';'Parser';'Result';'Plan']
+
+.sub '' :init :load :anon
+ $P0 = subclass ['TAP';'Parser';'Result'], ['TAP';'Parser';'Result';'Plan']
+ $P0.'add_attribute'('plan')
+ $P0.'add_attribute'('tests_planned')
+.end
+
+=head3 Class TAP;Parser;Result;Test
+
+=over 4
+
+=cut
+
+.namespace ['TAP';'Parser';'Result';'Test']
+
+.sub '' :init :load :anon
+ $P0 = subclass ['TAP';'Parser';'Result'], ['TAP';'Parser';'Result';'Test']
+ $P0.'add_attribute'('ok')
+ $P0.'add_attribute'('test_num')
+ $P0.'add_attribute'('description')
+ $P0.'add_attribute'('unplanned')
+.end
+
+=item get_string
+
+=cut
+
+.sub 'get_string' :vtable :method
+ $P0 = getattribute self, 'ok'
+ $S0 = $P0
+ $S0 .= ' '
+ $P0 = getattribute self, 'test_num'
+ $S1 = $P0
+ $S0 .= $S1
+ $P0 = getattribute self, 'description'
+ if null $P0 goto L1
+ $S1 = $P0
+ if $S1 == '' goto L1
+ $S0 .= ' '
+ $S0 .= $S1
+ L1:
+ $P0 = getattribute self, 'directive'
+ if null $P0 goto L2
+ $S1 = $P0
+ if $S1 == '' goto L2
+ $S0 .= ' # '
+ $S0 .= $S1
+ $S0 .= ' '
+ $P0 = getattribute self, 'explanation'
+ if null $P0 goto L2
+ $S1 = $P0
+ $S0 .= $S1
+ L2:
+ .return ($S0)
+.end
+
+=item is_ok
+
+=cut
+
+.sub 'is_ok' :method
+ $P0 = getattribute self, 'unplanned'
+ if null $P0 goto L1
+ unless $P0 goto L1
+ .return (0)
+ L1:
+ $I0 = self.'has_todo'()
+ if $I0 goto L2
+ $I0 = self.'is_actual_ok'()
+ L2:
+ .return ($I0)
+.end
+
+=item is_actual_ok
+
+=cut
+
+.sub 'is_actual_ok' :method
+ $P0 = getattribute self, 'ok'
+ $S0 = $P0
+ $I0 = index $S0, 'not'
+ $I0 = $I0 != 0
+ .return ($I0)
+.end
+
+=item todo_passed
+
+=cut
+
+.sub 'todo_passed' :method
+ $I0 = self.'has_todo'()
+ unless $I0 goto L1
+ $I0 = self.'is_actual_ok'()
+ L1:
+ .return ($I0)
+.end
+
+=item is_unplanned
+
+=cut
+
+.sub 'is_unplanned' :method
+ $I0 = 0
+ $P0 = getattribute self, 'unplanned'
+ if null $P0 goto L1
+ $I0 = $P0
+ L1:
+ .return ($I0)
+.end
+
+=back
+
+=head3 Class TAP;Parser;Result;Unknown
+
+=cut
+
+.namespace ['TAP';'Parser';'Result';'Unknown']
+
+.sub '' :init :load :anon
+ $P0 = subclass ['TAP';'Parser';'Result'], ['TAP';'Parser';'Result';'Unknown']
+.end
+
+=head3 Class TAP;Parser;Result;Version
+
+=cut
+
+.namespace ['TAP';'Parser';'Result';'Version']
+
+.sub '' :init :load :anon
+ $P0 = subclass ['TAP';'Parser';'Result'], ['TAP';'Parser';'Result';'Version']
+ $P0.'add_attribute'('version')
+.end
+
+=head3 Class TAP;Parser;Grammar
+
+C<TAP;Parser;Grammar> tokenizes lines and constructs C<TAP;Parser;Result>
+subclasses to represent the tokens.
+
+=over 4
+
+=cut
+
+.namespace ['TAP';'Parser';'Grammar']
+
+.sub '' :init :load :anon
+ $P0 = newclass ['TAP';'Parser';'Grammar']
+.end
+
+.include 'cclass.pasm'
+
+.sub 'trim' :anon
+ .param string str
+ $I0 = length str
+ $I0 = find_not_cclass .CCLASS_WHITESPACE, str, 0, $I0
+ str = substr str, $I0
+ $I0 = length str
+ L1:
+ dec $I0
+ unless $I0 > 0 goto L2
+ $I1 = is_cclass .CCLASS_WHITESPACE, str, $I0
+ if $I1 != 0 goto L1
+ L2:
+ inc $I0
+ str = substr str, 0, $I0
+ .return (str)
+.end
+
+=item tokenize
+
+=cut
+
+.sub 'tokenize' :method
+ .param string line
+ .local pmc result
+ .local int pos, lastpos
+ .local string up, directive, explanation, ok
+ lastpos = length line
+
+ $I0 = index line, 'not ok'
+ unless $I0 == 0 goto L1
+ ok = 'not ok'
+ pos = 6
+ goto L2
+ L1:
+ $I0 = index line, 'ok'
+ unless $I0 == 0 goto L3
+ ok = 'ok'
+ pos = 2
+ L2:
+ .local string description, test_num
+ test_num = ''
+ description = ''
+ directive = ''
+ explanation = ''
+ if pos == lastpos goto L4
+ $I0 = is_cclass .CCLASS_WHITESPACE, line, pos
+ unless $I0 goto L3
+ pos = find_not_cclass .CCLASS_WHITESPACE, line, pos, lastpos
+ if pos == lastpos goto L4
+ $I0 = is_cclass .CCLASS_NUMERIC, line, pos
+ unless $I0 goto L5
+ $I2 = find_not_cclass .CCLASS_NUMERIC, line, pos, lastpos
+ if $I2 == lastpos goto L_5
+ $I0 = is_cclass .CCLASS_WHITESPACE, line, $I2
+ unless $I0 goto L5
+ L_5:
+ $I1 = $I2 - pos
+ test_num = substr line, pos, $I1
+ if $I2 == lastpos goto L4
+ pos = find_not_cclass .CCLASS_WHITESPACE, line, $I2, lastpos
+ L5:
+ $S0 = substr line, pos
+ description = trim($S0)
+ up = upcase description
+ lastpos = length description
+ pos = -1
+ L6:
+ inc pos
+ pos = index description, '#', pos
+ if pos < 0 goto L4
+ $I1 = pos - 1
+ $S0 = substr description, $I1, 1
+ inc pos
+ if $S0 == "\\" goto L6
+ if pos == lastpos goto L4
+ $I0 = is_cclass .CCLASS_WHITESPACE, description, pos
+ unless $I0 != 0 goto L7
+ pos = find_not_cclass .CCLASS_WHITESPACE, description, pos, lastpos
+ if pos == lastpos goto L4
+ L7:
+ $S0 = substr description, pos, 4
+ $I0 = index up, 'SKIP', pos
+ if $I0 == pos goto L8
+ $I0 = index up, 'TODO', pos
+ if $I0 == pos goto L8
+ goto L6
+ L8:
+ directive = substr up, pos, 4
+ $I1 = pos + 4
+ $S0 = substr description, $I1
+ explanation = trim($S0)
+ pos -= 2
+ $S0 = substr description, 0, pos
+ description = trim($S0)
+ L4:
+ result = new ['TAP';'Parser';'Result';'Test']
+ $P1 = box line
+ setattribute result, 'raw', $P1
+ $P1 = box ok
+ setattribute result, 'ok', $P1
+ unless test_num != '' goto L11
+ $I0 = test_num
+ $P1 = box test_num
+ setattribute result, 'test_num', $P1
+ L11:
+ unless description != '' goto L12
+ $P1 = box description
+ setattribute result, 'description', $P1
+ L12:
+ unless directive != '' goto L13
+ $P1 = box directive
+ setattribute result, 'directive', $P1
+ L13:
+ unless explanation != '' goto L14
+ $P1 = box explanation
+ setattribute result, 'explanation', $P1
+ L14:
+ .return (result)
+ L3:
+
+ $I0 = index line, '#'
+ unless $I0 == 0 goto L19
+ result = new ['TAP';'Parser';'Result';'Comment']
+ $P1 = box line
+ setattribute result, 'raw', $P1
+ $S0 = substr line, 1
+ $S0 = trim($S0)
+ $P1 = box $S0
+ setattribute result, 'comment', $P1
+ .return (result)
+ L19:
+
+ $I0 = index line, '1..'
+ unless $I0 == 0 goto L21
+ pos = 3
+ $I0 = is_cclass .CCLASS_NUMERIC, line, pos
+ unless $I0 goto L21
+ pos = find_not_cclass .CCLASS_NUMERIC, line, pos, lastpos
+ directive = ''
+ explanation = ''
+ .local string plan
+ plan = substr line, 0, pos
+ .local int tests_planned
+ $I1 = pos - 3
+ $S0 = substr line, 3, $I1
+ tests_planned = $S0
+ if pos == lastpos goto L22
+ $I0 = is_cclass .CCLASS_WHITESPACE, line, pos
+ unless $I0 goto L23
+ pos = find_not_cclass .CCLASS_WHITESPACE, line, pos, lastpos
+ if pos == lastpos goto L22
+ L23:
+ $S0 = substr line, pos, 1
+ unless $S0 == '#' goto L21
+ inc pos
+ $I0 = is_cclass .CCLASS_WHITESPACE, line, pos
+ unless $I0 goto L24
+ pos = find_not_cclass .CCLASS_WHITESPACE, line, pos, lastpos
+ L24:
+ up = upcase line
+ $I0 = index up, 'SKIP', pos
+ unless $I0 == pos goto L21
+ directive = 'SKIP'
+ pos += 4
+ $S0 = substr line, pos
+ explanation = trim($S0)
+ L22:
+ result = new ['TAP';'Parser';'Result';'Plan']
+ $P1 = box line
+ setattribute result, 'raw', $P1
+ $P1 = box plan
+ setattribute result, 'plan', $P1
+ $P1 = box tests_planned
+ setattribute result, 'tests_planned', $P1
+ unless tests_planned == 0 goto L25
+ directive = 'SKIP'
+ L25:
+ unless directive != '' goto L26
+ $P1 = box directive
+ setattribute result, 'directive', $P1
+ L26:
+ unless explanation != '' goto L27
+ $P1 = box explanation
+ setattribute result, 'explanation', $P1
+ L27:
+ .return (result)
+ L21:
+
+ $I0 = index line, 'Bail out!'
+ unless $I0 == 0 goto L31
+ result = new ['TAP';'Parser';'Result';'Bailout']
+ $P1 = box line
+ setattribute result, 'raw', $P1
+ $S0 = substr line, 9
+ $S0 = trim($S0)
+ $P1 = box $S0
+ setattribute result, 'explanation', $P1
+ .return (result)
+ L31:
+
+ $I0 = index line, 'TAP'
+ unless $I0 == 0 goto L41
+ pos = 3
+ $I0 = is_cclass .CCLASS_WHITESPACE, line, pos
+ unless $I0 goto L41
+ pos = find_not_cclass .CCLASS_WHITESPACE, line, pos, lastpos
+ $I0 = index line, 'version', pos
+ unless $I0 == pos goto L41
+ pos += 7
+ $I0 = is_cclass .CCLASS_WHITESPACE, line, pos
+ unless $I0 goto L41
+ pos = find_not_cclass .CCLASS_WHITESPACE, line, pos, lastpos
+ $I0 = is_cclass .CCLASS_NUMERIC, line, pos
+ unless $I0 goto L41
+ $I2 = find_not_cclass .CCLASS_NUMERIC, line, pos, lastpos
+ $I1 = $I2 - pos
+ $S0 = substr line, pos, $I1
+ .local int version
+ version = $S0
+ if $I2 == lastpos goto L42
+ $I0 = is_cclass .CCLASS_WHITESPACE, line, $I2
+ unless $I0 goto L41
+ $I0 = find_not_cclass .CCLASS_WHITESPACE, line, $I2, lastpos
+ unless $I0 == lastpos goto L41
+ L42:
+ result = new ['TAP';'Parser';'Result';'Version']
+ $P1 = box line
+ setattribute result, 'raw', $P1
+ $P1 = box version
+ setattribute result, 'version', $P1
+ .return (result)
+ L41:
+
+ result = new ['TAP';'Parser';'Result';'Unknown']
+ $P1 = box line
+ setattribute result, 'raw', $P1
+ .return (result)
+.end
+
+=back
+
+=head3 Class TAP;Base
+
+Base class that provides common functionality to C<TAP;Parser>
+and C<TAP;Harness> ie. callback support.
+
+=over 4
+
+=cut
+
+.namespace ['TAP';'Base']
+
+.sub '' :init :load :anon
+ $P0 = newclass ['TAP';'Base']
+ $P0.'add_attribute'('code_for')
+ $P0.'add_attribute'('ok_callbacks')
+.end
+
+=item callback
+
+=cut
+
+.sub 'callback' :method
+ .param string event
+ .param pmc callback
+ $P0 = getattribute self, 'ok_callbacks'
+ if null $P0 goto L1
+ $I0 = exists $P0[event]
+ if $I0 goto L1
+ $S0 = "Callback " . event
+ $S0 .= " is not supported."
+ die $S0
+ L1:
+ $P0 = getattribute self, 'code_for'
+ unless null $P0 goto L2
+ $P0 = new 'Hash'
+ setattribute self, 'code_for', $P0
+ L2:
+ $P0[event] = callback
+.end
+
+=item _has_callback
+
+=cut
+
+.sub '_has_callback' :method
+ $P0 = getattribute self, 'code_for'
+ if null $P0 goto L1
+ .return (1)
+ L1:
+ .return (0)
+.end
+
+=item _callback_for
+
+=cut
+
+.sub '_callback_for' :method
+ .param string event
+ null $P1
+ $P0 = getattribute self, 'code_for'
+ if null $P0 goto L1
+ $I0 = exists $P0[event]
+ unless $I0 goto L1
+ $P1 = $P0[event]
+ L1:
+ .return ($P1)
+.end
+
+=item _make_callback
+
+=cut
+
+.sub '_make_callback' :method
+ .param string event
+ .param pmc args :slurpy
+ $P0 = getattribute self, 'code_for'
+ if null $P0 goto L1
+ $I0 = exists $P0[event]
+ unless $I0 goto L1
+ $P0 = $P0[event]
+ $P0 = $P0(args :flat)
+ .return ($P0)
+ L1:
+ .return ()
+.end
+
+=back
+
+=head3 Class TAP;Parser
+
+C<TAP;Parser> is designed to produce a proper parse of TAP output.
+
+=over 4
+
+=cut
+
+.namespace ['TAP';'Parser']
+
+.sub '' :init :load :anon
+ load_bytecode 'osutils.pbc'
+
+ $P0 = subclass ['TAP';'Base'], ['TAP';'Parser']
+ $P0.'add_attribute'('stream')
+ $P0.'add_attribute'('skipped')
+ $P0.'add_attribute'('todo')
+ $P0.'add_attribute'('passed')
+ $P0.'add_attribute'('failed')
+ $P0.'add_attribute'('actual_failed')
+ $P0.'add_attribute'('actual_passed')
+ $P0.'add_attribute'('todo_passed')
+ $P0.'add_attribute'('parse_errors')
+ $P0.'add_attribute'('tests_run')
+ $P0.'add_attribute'('tests_planned')
+ $P0.'add_attribute'('plan')
+ $P0.'add_attribute'('good_plan')
+ $P0.'add_attribute'('skip_all')
+ $P0.'add_attribute'('version')
+ $P0.'add_attribute'('exit')
+ $P0.'add_attribute'('ignore_exit')
+ $P0.'add_attribute'('merge')
+ $P0.'add_attribute'('spool')
+ $P0.'add_attribute'('start_time')
+ $P0.'add_attribute'('end_time')
+
+ $P0 = _make_state_table()
+ set_global ['TAP';'Parser'], 'STATES', $P0
+
+ $P0 = new 'Hash'
+ $P1 = split ' ', 'test version plan comment bailout unknown ALL ELSE EOF'
+ L1:
+ unless $P1 goto L2
+ $S0 = shift $P1
+ $P0[$S0] = 1
+ goto L1
+ L2:
+ set_global ['TAP';'Parser'], 'LEGAL_CALLBACK', $P0
+.end
+
+.sub 'init' :vtable :init
+ $P0 = new 'ResizableIntegerArray'
+ setattribute self, 'skipped', $P0
+ $P0 = new 'ResizableIntegerArray'
+ setattribute self, 'todo', $P0
+ $P0 = new 'ResizableIntegerArray'
+ setattribute self, 'passed', $P0
+ $P0 = new 'ResizableIntegerArray'
+ setattribute self, 'failed', $P0
+ $P0 = new 'ResizableIntegerArray'
+ setattribute self, 'actual_failed', $P0
+ $P0 = new 'ResizableIntegerArray'
+ setattribute self, 'actual_passed', $P0
+ $P0 = new 'ResizableIntegerArray'
+ setattribute self, 'todo_passed', $P0
+ $P0 = new 'ResizableStringArray'
+ setattribute self, 'parse_errors', $P0
+ $P0 = box 0
+ setattribute self, 'tests_run', $P0
+ $P0 = get_global ['TAP';'Parser'], 'LEGAL_CALLBACK'
+ setattribute self, 'ok_callbacks', $P0
+.end
+
+=item start_time
+
+=cut
+
+.sub 'start_time' :method
+ $P0 = getattribute self, 'start_time'
+ .return ($P0)
+.end
+
+=item end_time
+
+=cut
+
+.sub 'end_time' :method
+ $P0 = getattribute self, 'end_time'
+ .return ($P0)
+.end
+
+=item skipped
+
+=cut
+
+.sub 'skipped' :method :nsentry
+ $P0 = getattribute self, 'skipped'
+ .return ($P0)
+.end
+
+=item todo
+
+=cut
+
+.sub 'todo' :method :nsentry
+ $P0 = getattribute self, 'todo'
+ .return ($P0)
+.end
+
+=item passed
+
+=cut
+
+.sub 'passed' :method :nsentry
+ $P0 = getattribute self, 'passed'
+ .return ($P0)
+.end
+
+=item failed
+
+=cut
+
+.sub 'failed' :method :nsentry
+ $P0 = getattribute self, 'failed'
+ .return ($P0)
+.end
+
+=item todo_passed
+
+=cut
+
+.sub 'todo_passed' :method :nsentry
+ $P0 = getattribute self, 'todo_passed'
+ .return ($P0)
+.end
+
+=item parse_errors
+
+=cut
+
+.sub 'parse_errors' :method :nsentry
+ $P0 = getattribute self, 'parse_errors'
+ .return ($P0)
+.end
+
+=item tests_run
+
+=cut
+
+.sub 'tests_run' :method :nsentry
+ $P0 = getattribute self, 'tests_run'
+ .return ($P0)
+.end
+
+=item tests_planned
+
+=cut
+
+.sub 'tests_planned' :method :nsentry
+ $P0 = getattribute self, 'tests_planned'
+ .return ($P0)
+.end
+
+=item merge
+
+=cut
+
+.sub 'merge' :method :nsentry
+ .param int val
+ $P0 = new 'Boolean'
+ set $P0, val
+ setattribute self, 'merge', $P0
+.end
+
+=item ignore_exit
+
+=cut
+
+.sub 'ignore_exit' :method :nsentry
+ .param int val
+ $P0 = new 'Boolean'
+ set $P0, val
+ setattribute self, 'ignore_exit', $P0
+.end
+
+=item exit
+
+=cut
+
+.sub 'exit' :method :nsentry
+ $P0 = getattribute self, 'ignore_exit'
+ if null $P0 goto L1
+ unless $P0 goto L1
+ .return (0)
+ L1:
+ $P0 = getattribute self, 'exit'
+ $I0 = 0
+ if null $P0 goto L2
+ $I0 = $P0
+ L2:
+ .return ($I0)
+.end
+
+=item has_problems
+
+=cut
+
+.sub 'has_problems' :method
+ $P0 = getattribute self, 'failed'
+ $I0 = elements $P0
+ if $I0 goto L1
+ $P0 = getattribute self, 'parse_errors'
+ $I0 = elements $P0
+ if $I0 goto L1
+ $P0 = getattribute self, 'ignore_exit'
+ if null $P0 goto L2
+ if $P0 goto L1
+ L2:
+ $P0 = getattribute self, 'exit'
+ if null $P0 goto L1
+ $I0 = $P0
+ .return ($I0)
+ L1:
+ .return ($I0)
+.end
+
+=item _add_error
+
+=cut
+
+.sub '_add_error' :method
+ .param pmc args :slurpy
+ $P0 = getattribute self, 'parse_errors'
+ $S0 = join '', args
+ $P1 = box $S0
+ push $P0, $P1
+.end
+
+=item is_good_plan
+
+=cut
+
+.sub 'is_good_plan' :method
+ $P0 = getattribute self, 'good_plan'
+ .return ($P0)
+.end
+
+=item spool
+
+=cut
+
+.sub 'spool' :method
+ .param pmc spool
+ setattribute self, 'spool', spool
+.end
+
+=item delete_spool
+
+=cut
+
+.sub 'delete_spool' :method
+ $P0 = getattribute self, 'spool'
+ null $P1
+ setattribute self, 'spool', $P1
+ .return ($P0)
+.end
+
+=item pragma
+
+=cut
+
+.sub 'pragma' :method
+ .param string name
+ .return (1)
+.end
+
+=item tap
+
+=cut
+
+.sub 'tap' :method
+ .param string tap
+ $P0 = new 'StringHandle'
+ $P0.'open'('tap', 'w')
+ print $P0, tap
+ setattribute self, 'stream', $P0
+.end
+
+=item file
+
+=cut
+
+.sub 'file' :method
+ .param string filename
+ $P0 = new 'FileHandle'
+ push_eh _handler
+ $P0.'open'(filename, 'r')
+ pop_eh
+ $S0 = readline $P0
+ $I0 = index $S0, '#!'
+ unless $I0 == 0 goto L1
+ close $P0
+ $S0 = _get_exec($S0)
+ .tailcall self.'exec'($S0, filename)
+ L1:
+ seek $P0, 0, 0
+ setattribute self, 'stream', $P0
+ .return ()
+ _handler:
+ .local pmc ex
+ .get_results (ex)
+ $S0 = "Can't open '"
+ $S0 .= filename
+ $S0 .= "' ("
+ $S1 = err
+ $S0 .= $S1
+ $S0 .= ")\n"
+ ex = $S0
+ rethrow ex
+.end
+
+.include 'iglobals.pasm'
+
+.sub '_get_exec' :anon
+ .param string line
+ $S0 = chomp(line)
+ $I0 = length $S0
+ $I0 = find_not_cclass .CCLASS_WHITESPACE, $S0, 2, $I0
+ $S0 = substr $S0, $I0
+ .local string slash
+ $P0 = getinterp
+ $P1 = $P0[.IGLOBALS_CONFIG_HASH]
+ slash = $P1['slash']
+ $P0 = split "/", $S0
+ $S0 = join slash, $P0
+ .return ($S0)
+.end
+
+=item exec
+
+=cut
+
+.sub 'exec' :method
+ .param pmc cmds :slurpy
+ .local string cmd
+ cmd = join ' ', cmds
+ $P0 = getattribute self, 'merge'
+ if null $P0 goto L1
+ unless $P0 goto L1
+ cmd .= ' 2>&1'
+ L1:
+ $P0 = new 'FileHandle'
+ push_eh _handler
+ $P0.'open'(cmd, 'pr')
+ pop_eh
+ setattribute self, 'stream', $P0
+ .return ()
+ _handler:
+ .local pmc ex
+ .get_results (ex)
+ $S0 = "Can't open '"
+ $S0 .= cmd
+ $S0 .= "' ("
+ $S1 = err
+ $S0 .= $S1
+ $S0 .= ")\n"
+ ex = $S0
+ rethrow ex
+.end
+
+=item run
+
+=cut
+
+.sub 'run' :method
+ .const 'Sub' $P0 = 'next'
+ $P0 = newclosure $P0
+ L1:
+ $P1 = $P0(self)
+ unless null $P1 goto L1
+.end
+
+=item next
+
+=cut
+
+.sub 'next' :method :nsentry :lex
+ .local pmc stream, spool
+ stream = getattribute self, 'stream'
+ if null stream goto L1
+ $N0 = time
+ $P0 = box $N0
+ setattribute self, 'start_time', $P0
+ .local pmc grammar, st
+ grammar = new ['TAP';'Parser';'Grammar']
+ .const 'Sub' $P0 = 'next_state'
+ capture_lex $P0
+ st = box 'INIT'
+ .lex 'state', st
+ L2:
+ $S0 = readline stream
+ if $S0 == '' goto L3
+ $S0 = chomp($S0)
+ .local pmc token
+ token = grammar.'tokenize'($S0)
+ self.'next_state'(token)
+ $S0 = token.'type'()
+ $P0 = self.'_callback_for'($S0)
+ if null $P0 goto L4
+ $P0(token)
+ goto L5
+ L4:
+ self.'_make_callback'('ELSE', token)
+ L5:
+ self.'_make_callback'('ALL', token)
+ spool = getattribute self, 'spool'
+ if null spool goto L6
+ $S0 = token
+ print spool, $S0
+ print spool, "\n"
+ L6:
+ .yield (token)
+ goto L2
+ L3:
+ close stream
+ $I0 = can stream, 'exit_status'
+ unless $I0 goto L7
+ $I0 = stream.'exit_status'()
+ unless $I0 goto L7
+ $P0 = box $I0
+ setattribute self, 'exit', $P0
+ L7:
+ self.'_finish'()
+ $I0 = self.'_make_callback'('EOF', self)
+ null $P0
+ .return ($P0)
+ L1:
+ die "no stream"
+.end
+
+.sub 'next_state' :method :lex :outer('next')
+ .param pmc token
+ .local pmc STATES, st
+ STATES = get_global ['TAP';'Parser'], 'STATES'
+ st = find_lex 'state'
+ .local string type
+ type = token.'type'()
+ REDO:
+ $I0 = STATES[st]
+ if $I0 goto L1
+ $S0 = st
+ $S0 = "Illegal state: " . $S0
+ die $S0
+ L1:
+ $P0 = STATES[st]
+ $I0 = exists $P0[type]
+ unless $I0 goto L2
+ $P1 = $P0[type]
+ $I0 = exists $P1['act']
+ unless $I0 goto L3
+ $P2 = $P1['act']
+ $P2(self, token)
+ L3:
+ $I0 = exists $P1['continue']
+ unless $I0 goto L4
+ $S0 = $P1['continue']
+ set st, $S0
+ goto REDO
+ L4:
+ $I0 = exists $P1['goto']
+ unless $I0 goto L5
+ $S0 = $P1['goto']
+ set st, $S0
+ goto L5
+ L2:
+ printerr "Unhandled token type: "
+ printerr type
+ printerr "\n"
+ L5:
+.end
+
+.sub '_make_state_table'
+ .local pmc states
+ states = new 'Hash'
+ $P0 = split ' ', 'INIT PLAN PLANNED PLANNED_AFTER_TEST GOT_PLAN UNPLANNED UNPLANNED_AFTER_TEST'
+ $P1 = split ' ', 'bailout comment plan test unknown version'
+ L1:
+ unless $P0 goto L2
+ $S0 = shift $P0
+ .local pmc st
+ st = new 'Hash'
+ states[$S0] = st
+ $P2 = iter $P1
+ L3:
+ unless $P2 goto L4
+ $S0 = shift $P2
+ $P3 = new 'Hash'
+ st[$S0] = $P3
+ goto L3
+ L4:
+ $P3 = st['version']
+ $P4 = get_hll_global ['TAP';'Parser'], '_DEFAULT_version'
+ $P3['act'] = $P4
+ $P3 = st['unknown']
+ $P4 = get_hll_global ['TAP';'Parser'], '_DEFAULT_unknown'
+ $P3['act'] = $P4
+ $P3 = st['plan']
+ $P4 = get_hll_global ['TAP';'Parser'], '_DEFAULT_plan'
+ $P3['act'] = $P4
+ $P3 = st['test']
+ $P4 = get_hll_global ['TAP';'Parser'], '_DEFAULT_test'
+ $P3['act'] = $P4
+ goto L1
+ L2:
+
+ st = states['INIT']
+ $P0 = st['version']
+ $P1 = get_hll_global ['TAP';'Parser'], '_INIT_version'
+ $P0['act'] = $P1
+ $P0['goto'] = 'PLAN'
+ $P0 = st['plan']
+ $P0['goto'] = 'PLANNED'
+ $P0 = st['test']
+ $P0['goto'] = 'UNPLANNED'
+
+ st = states['PLAN']
+ $P0 = st['plan']
+ $P0['goto'] = 'PLANNED'
+ $P0 = st['test']
+ $P0['goto'] = 'UNPLANNED'
+
+ st = states['PLANNED']
+ $P0 = st['test']
+ $P0['goto'] = 'PLANNED_AFTER_TEST'
+ $P0 = st['plan']
+ $P1 = get_hll_global ['TAP';'Parser'], '_PLANNED_plan'
+ $P0['act'] = $P1
+
+ st = states['PLANNED_AFTER_TEST']
+ $P0 = st['test']
+ $P0['goto'] = 'PLANNED_AFTER_TEST'
+ $P0 = st['plan']
+ $P1 = get_hll_global ['TAP';'Parser'], '_no_action'
+ $P0['act'] = $P1
+ $P0['continue'] = 'PLANNED'
+
+ st = states['GOT_PLAN']
+ $P0 = st['test']
+ $P1 = get_hll_global ['TAP';'Parser'], '_GOT_PLAN_test'
+ $P0['act'] = $P1
+ $P0['continue'] = 'PLANNED'
+ $P0 = st['plan']
+ $P0['continue'] = 'PLANNED'
+
+ st = states['UNPLANNED']
+ $P0 = st['test']
+ $P0['goto'] = 'UNPLANNED_AFTER_TEST'
+ $P0 = st['plan']
+ $P0['goto'] = 'GOT_PLAN'
+
+ st = states['UNPLANNED_AFTER_TEST']
+ $P0 = st['test']
+ $P1 = get_hll_global ['TAP';'Parser'], '_no_action'
+ $P0['act'] = $P1
+ $P0['continue'] = 'UNPLANNED'
+ $P0 = st['plan']
+ $P1 = get_hll_global ['TAP';'Parser'], '_no_action'
+ $P0['act'] = $P1
+ $P0['continue'] = 'UNPLANNED'
+
+ .return (states)
+.end
+
+.sub '_no_action' :method :nsentry
+ .param pmc result
+ # nothing
+.end
+
+.sub '_DEFAULT_version' :method :nsentry
+ .param pmc result
+ self.'_add_error'('If TAP version is present it must be the first line of output')
+.end
+
+.sub '_DEFAULT_unknown' :method :nsentry
+ .param pmc result
+ $I0 = self.'pragma'('strict')
+ unless $I0 goto L1
+ $P0 = getattribute result, 'raw'
+ $S1 = $P0
+ self.'_add_error'('Unknown TAP token: "', $S1, '"')
+ L1:
+.end
+
+.sub '_DEFAULT_plan' :method :nsentry
+ .param pmc result
+ $P0 = getattribute result, 'tests_planned'
+ setattribute self, 'tests_planned', $P0
+ $P0 = getattribute result, 'plan'
+ setattribute self, 'plan', $P0
+ $I0 = result.'has_skip'()
+ unless $I0 goto L1
+ $S0 = '(no reason given)'
+ $P0 = getattribute result, 'explanation'
+ if null $P0 goto L2
+ $S0 = $P0
+ L2:
+ $P0 = box $S0
+ setattribute self, 'skip_all', $P0
+ L1:
+.end
+
+.sub '_DEFAULT_test' :method :nsentry
+ .param pmc result
+ $P0 = getattribute self, 'tests_run'
+ inc $P0
+ .local int tests_run
+ tests_run = $P0
+
+ $P0 = getattribute self, 'tests_planned'
+ if null $P0 goto L11
+ .local int tests_planned
+ tests_planned = $P0
+ unless tests_run > tests_planned goto L11
+ $P0 = new 'Boolean'
+ set $P0, 1
+ setattribute result, 'unplanned', $P0
+ L11:
+
+ $P0 = getattribute result, 'test_num'
+ if null $P0 goto L21
+ .local int number
+ number = $P0
+ unless number != tests_run goto L22
+ $S1 = number
+ $S2 = tests_run
+ self.'_add_error'("Tests out of sequence. Found (", $S1, ") but expected (", $S2, ")")
+ goto L22
+ L21:
+ number = tests_run
+ $P0 = box number
+ setattribute result, 'test_num', $P0
+ L22:
+
+ $I0 = result.'has_todo'()
+ unless $I0 goto L31
+ $P0 = getattribute self, 'todo'
+ push $P0, number
+ L31:
+ $I0 = result.'todo_passed'()
+ unless $I0 goto L32
+ $P0 = getattribute self, 'todo_passed'
+ push $P0, number
+ L32:
+ $I0 = result.'has_skip'()
+ unless $I0 goto L33
+ $P0 = getattribute self, 'skipped'
+ push $P0, number
+ L33:
+ $I0 = result.'is_ok'()
+ unless $I0 goto L34
+ $P0 = getattribute self, 'passed'
+ push $P0, number
+ goto L35
+ L34:
+ $P0 = getattribute self, 'failed'
+ push $P0, number
+ L35:
+ $I0 = result.'is_actual_ok'()
+ unless $I0 goto L36
+ $P0 = getattribute self, 'actual_passed'
+ push $P0, number
+ goto L37
+ L36:
+ $P0 = getattribute self, 'actual_failed'
+ push $P0, number
+ L37:
+.end
+
+.sub '_INIT_version' :method :nsentry
+ .param pmc result
+ $P0 = getattribute result, 'version'
+ setattribute self, 'version', $P0
+.end
+
+.sub '_PLANNED_plan' :method :nsentry
+ .param pmc result
+ self.'_add_error'('More than one plan found in TAP output')
+.end
+
+.sub '_GOT_PLAN_test' :method :nsentry
+ .param pmc result
+ $P0 = getattribute self, 'plan'
+ $S1 = $P0
+ self.'_add_error'("Plan (", $S1, ") must be at the beginning or end of the TAP output")
+ self.'is_good_plan'(0)
+.end
+
+.sub '_finish' :method
+ $N0 = time
+ $P0 = box $N0
+ setattribute self, 'end_time', $P0
+
+ $P0 = getattribute self, 'plan'
+ unless null $P0 goto L1
+ self.'_add_error'('No plan found in TAP output')
+ goto L2
+ L1:
+ $P0 = getattribute self, 'good_plan'
+ unless null $P0 goto L2
+ $P0 = box 1
+ setattribute self, 'good_plan', $P0
+ L2:
+
+ .local int tests_run, tests_planned
+ $P0 = getattribute self, 'tests_run'
+ tests_run = $P0
+ tests_planned = 0
+ $P0 = getattribute self, 'tests_planned'
+ if null $P0 goto L3
+ tests_planned = $P0
+ L3:
+ unless tests_run != tests_planned goto L4
+ $P0 = box 0
+ setattribute self, 'good_plan', $P0
+ if tests_planned == 0 goto L4
+ $S1 = tests_planned
+ $S2 = tests_run
+ self.'_add_error'("Bad plan. You planned ", $S1, " tests but ran ", $S2, ".")
+ L4:
+
+ $P0 = getattribute self, 'good_plan'
+ unless null $P0 goto L5
+ $P0 = box 0
+ setattribute self, 'good_plan', $P0
+ L5:
+.end
+
+=back
+
+=head3 Class TAP;Parser;Aggregator
+
+C<TAP;Parser;Aggregator> collects parser objects and allows
+reporting/querying their aggregate results.
+
+=over 4
+
+=cut
+
+.namespace ['TAP';'Parser';'Aggregator']
+
+.sub '' :init :load :anon
+ $P0 = newclass ['TAP';'Parser';'Aggregator']
+ $P0.'add_attribute'('parser_for')
+ $P0.'add_attribute'('parse_order')
+ $P0.'add_attribute'('start_time')
+ $P0.'add_attribute'('end_time')
+ $P0.'add_attribute'('failed')
+ $P0.'add_attribute'('parse_errors')
+ $P0.'add_attribute'('passed')
+ $P0.'add_attribute'('skipped')
+ $P0.'add_attribute'('todo')
+ $P0.'add_attribute'('todo_passed')
+ $P0.'add_attribute'('total')
+ $P0.'add_attribute'('planned')
+ $P0.'add_attribute'('exit')
+ $P0.'add_attribute'('description_for_failed')
+ $P0.'add_attribute'('description_for_parse_errors')
+ $P0.'add_attribute'('description_for_passed')
+ $P0.'add_attribute'('description_for_skipped')
+ $P0.'add_attribute'('description_for_todo')
+ $P0.'add_attribute'('description_for_todo_passed')
+ $P0.'add_attribute'('description_for_planned')
+ $P0.'add_attribute'('description_for_exit')
+
+ $P0 = new 'Hash'
+ $P1 = get_hll_global ['TAP';'Parser'], 'failed'
+ $P0['failed'] = $P1
+ $P1 = get_hll_global ['TAP';'Parser'], 'parse_errors'
+ $P0['parse_errors'] = $P1
+ $P1 = get_hll_global ['TAP';'Parser'], 'passed'
+ $P0['passed'] = $P1
+ $P1 = get_hll_global ['TAP';'Parser'], 'skipped'
+ $P0['skipped'] = $P1
+ $P1 = get_hll_global ['TAP';'Parser'], 'todo'
+ $P0['todo'] = $P1
+ $P1 = get_hll_global ['TAP';'Parser'], 'todo_passed'
+ $P0['todo_passed'] = $P1
+ $P1 = get_hll_global ['TAP';'Parser'], 'tests_run'
+ $P0['total'] = $P1
+ $P1 = get_hll_global ['TAP';'Parser'], 'tests_planned'
+ $P0['planned'] = $P1
+ $P1 = get_hll_global ['TAP';'Parser'], 'exit'
+ $P0['exit'] = $P1
+ set_global ['TAP';'Parser';'Aggregator'], 'SUMMARY_METHOD_FOR', $P0
+.end
+
+.sub 'init' :vtable :method
+ $P0 = new 'Hash'
+ setattribute self, 'parser_for', $P0
+ $P0 = new 'ResizableStringArray'
+ setattribute self, 'parse_order', $P0
+ .local pmc SUMMARY_METHOD_FOR
+ SUMMARY_METHOD_FOR = get_global ['TAP';'Parser';'Aggregator'], 'SUMMARY_METHOD_FOR'
+ $P0 = iter SUMMARY_METHOD_FOR
+ L1:
+ unless $P0 goto L2
+ $S0 = shift $P0
+ $P1 = box 0
+ setattribute self, $S0, $P1
+ if $S0 == 'total' goto L1
+ $S0 = 'description_for_' . $S0
+ $P1 = new 'ResizableStringArray'
+ setattribute self, $S0, $P1
+ goto L1
+ L2:
+.end
+
+=item add
+
+=cut
+
+.sub 'add' :method
+ .param string description
+ .param pmc parser
+ .local pmc parser_for
+ parser_for = getattribute self, 'parser_for'
+ $I0 = exists parser_for[description]
+ unless $I0 goto L1
+ $S0 = "You already have a parser for (" . description
+ $S0 .= "). Perhaps you have run the same test twice.\n"
+ die $S0
+ L1:
+ parser_for[description] = parser
+ .local pmc parse_order
+ parse_order = getattribute self, 'parse_order'
+ push parse_order, description
+ .local pmc SUMMARY_METHOD_FOR
+ SUMMARY_METHOD_FOR = get_global ['TAP';'Parser';'Aggregator'], 'SUMMARY_METHOD_FOR'
+ $P0 = iter SUMMARY_METHOD_FOR
+ L2:
+ unless $P0 goto L3
+ .local string summary
+ summary = shift $P0
+ .local pmc method
+ method = SUMMARY_METHOD_FOR[summary]
+ .local int count
+ count = method(parser)
+ unless count > 0 goto L2
+ $P1 = getattribute self, summary
+ $P1 += count
+ if summary == 'total' goto L2
+ $S0 = 'description_for_' . summary
+ $P1 = getattribute self, $S0
+ push $P1, description
+ goto L2
+ L3:
+.end
+
+=item parsers
+
+=cut
+
+.sub 'parsers' :method
+ .param string desc
+ $P0 = getattribute self, 'parser_for'
+ $P1 = $P0[desc]
+ .return ($P1)
+.end
+
+=item total
+
+=cut
+
+.sub 'total' :method
+ $P0 = getattribute self, 'total'
+ $I0 = $P0
+ .return ($I0)
+.end
+
+=item passed
+
+=cut
+
+.sub 'passed' :method
+ $P0 = getattribute self, 'passed'
+ $I0 = $P0
+ .return ($I0)
+.end
+
+=item descriptions
+
+=cut
+
+.sub 'descriptions' :method
+ $P0 = getattribute self, 'parse_order'
+ .return ($P0)
+.end
+
+=item start
+
+=cut
+
+.sub 'start' :method
+ $N0 = time
+ $P0 = box $N0
+ setattribute self, 'start_time', $P0
+.end
+
+=item stop
+
+=cut
+
+.sub 'stop' :method
+ $N0 = time
+ $P0 = box $N0
+ setattribute self, 'end_time', $P0
+.end
+
+=item start_time
+
+=cut
+
+.sub 'start_time' :method
+ $P0= getattribute self, 'start_time'
+ .return ($P0)
+.end
+
+=item en_time
+
+=cut
+
+.sub 'end_time' :method
+ $P0= getattribute self, 'end_time'
+ .return ($P0)
+.end
+
+=item elapsed
+
+=cut
+
+.sub 'elapsed' :method
+ $P0 = getattribute self, 'end_time'
+ if null $P0 goto L1
+ $N2 = $P0
+ $P0 = getattribute self, 'start_time'
+ if null $P0 goto L1
+ $N1 = $P0
+ $N0 = $N2 - $N1
+ .return ($N0)
+ L1:
+ die "Can't call elapsed without first calling start and then stop"
+.end
+
+=item elapsed_timestr
+
+=cut
+
+.sub 'elapsed_timestr' :method
+ $N0 = self.'elapsed'()
+ $P0 = new 'FixedPMCArray'
+ $P0 = 1
+ $P0[0] = $N0
+ $S0 = sprintf "%.3f wallclock secs", $P0
+ .return ($S0)
+.end
+
+=item has_problems
+
+=cut
+
+.sub 'has_problems' :method
+ $P0 = getattribute self, 'todo_passed'
+ $I0 = $P0
+ if $I0 goto L1
+ $I0 = self.'has_errors'()
+ L1:
+ .return ($I0)
+.end
+
+=item has_errors
+
+=cut
+
+.sub 'has_errors' :method
+ $P0 = getattribute self, 'failed'
+ $I0 = $P0
+ if $I0 goto L1
+ $P0 = getattribute self, 'parse_errors'
+ $I0 = $P0
+ if $I0 goto L1
+ $P0 = getattribute self, 'exit'
+ $I0 = $P0
+ L1:
+ .return ($I0)
+.end
+
+=item get_status
+
+=cut
+
+.sub 'get_status' :method
+ .local int total, passed
+ $P0 = getattribute self, 'total'
+ total = $P0
+ $P0 = getattribute self, 'passed'
+ passed = $P0
+ $I0 = self.'has_errors'()
+ if $I0 goto L1
+ if total == passed goto L2
+ L1:
+ .return ('FAIL')
+ L2:
+ unless total goto L3
+ .return ('PASS')
+ L3:
+ .return ('NOTESTS')
+.end
+
+=item all_passed
+
+=cut
+
+.sub 'all_passed' :method
+ .local int total
+ $P0 = getattribute self, 'total'
+ total = $P0
+ unless total goto L1
+ $P0 = getattribute self, 'passed'
+ $I0 = $P0
+ unless total == $I0 goto L1
+ $I0 = self.'has_errors'()
+ $I0 = not $I0
+ .return ($I0)
+ L1:
+ .return (0)
+.end
+
+=back
+
+=head1 AUTHOR
+
+Francois Perrad
+
+=cut
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/avl_string_cache/runtime/parrot/library/Test/Builder/Test.pir
==============================================================================
--- branches/avl_string_cache/runtime/parrot/library/Test/Builder/Test.pir Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/runtime/parrot/library/Test/Builder/Test.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -323,30 +323,32 @@
.sub report :method
.local pmc passed
- .local pmc description
+ .local pmc reason
.local pmc number
.local string report
- .local string number_string
- .local string desc_string
passed = self.'passed'()
number = self.'number'()
- description = self.'description'()
report = ''
- number_string = number
- desc_string = description
if passed goto PASSED
report = 'not '
PASSED:
concat report, 'ok '
- concat report, number_string
- concat report, ' # TODO'
-
- unless description goto REPORT
- concat report, ' '
- concat report, desc_string
+ $S0 = number
+ concat report, $S0
+ concat report, ' # TODO '
+
+ $S0 = self.'reason'()
+ concat report, $S0
+
+ if passed goto REPORT
+ # Build long explanation why
+ report .= "\n\tFailed (TODO) test '"
+ $S0 = self.'description'()
+ report .= $S0
+ report .= "'"
REPORT:
.return( report )
Modified: branches/avl_string_cache/runtime/parrot/library/distutils.pir
==============================================================================
--- branches/avl_string_cache/runtime/parrot/library/distutils.pir Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/runtime/parrot/library/distutils.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -96,14 +96,6 @@
=over 4
-=item prove (in step 'test')
-
-core module Test-Harness
-
-=item prove --archive (in step 'smoke')
-
-module TAP-Harness-Archive
-
=item pod2html
core module Pod-Html
@@ -120,9 +112,11 @@
=item glob (in step 'manifest' & 'sdist')
-PGE::Glob
+PGE/Glob.pbc
-Limitation: currently, OS.'readdir' is dummy with MSVC.
+=item tempdir (in step 'smoke')
+
+Math/Rand.pbc
=back
@@ -132,7 +126,7 @@
=item smoke
-curl
+tar, gzip, curl
=item sdist_gztar
@@ -199,6 +193,7 @@
=cut
.sub '__onload' :load :init :anon
+ load_bytecode 'osutils.pbc'
$P0 = new 'Hash'
set_global '%step', $P0
@@ -999,10 +994,7 @@
.local string bin, pbc
bin = shift $P0
pbc = hash[bin]
- $I0 = length pbc
- $I0 -= 4
- $S0 = substr pbc, 0, $I0
- $S1 = $S0 . exe
+ $S1 = _mk_path_exe(pbc, exe)
$I0 = newer($S1, pbc)
if $I0 goto L1
.local string cmd
@@ -1015,6 +1007,16 @@
.tailcall run_jobs(jobs)
.end
+.sub '_mk_path_exe' :anon
+ .param string pbcname
+ .param string exe
+ $I0 = length pbcname
+ $I0 -= 4
+ $S0 = substr pbcname, 0, $I0
+ $S1 = $S0 . exe
+ .return ($S1)
+.end
+
=item installable_pbc
hash
@@ -1048,11 +1050,7 @@
.local string bin, pbc
bin = shift $P0
pbc = hash[bin]
- $I0 = length pbc
- $I0 -= 4
- $S0 = substr pbc, 0, $I0
- $S1 = "installable_" . $S0
- $S1 .= exe
+ $S1 = _mk_path_installable(pbc, exe)
$I0 = newer($S1, pbc)
if $I0 goto L1
.local string cmd
@@ -1070,6 +1068,21 @@
.tailcall run_jobs(jobs)
.end
+.sub '_mk_path_installable' :anon
+ .param string pbcname
+ .param string exe
+ $P0 = split '/', pbcname
+ $S0 = $P0[-1]
+ $I0 = length $S0
+ $I0 -= 4
+ $S0 = substr $S0, 0, $I0
+ $S1 = "installable_" . $S0
+ $S1 .= exe
+ $P0[-1] = $S1
+ $S1 = join '/', $P0
+ .return ($S1)
+.end
+
.sub '_has_strip' :anon
.param string cflags :optional
.param int has_cflags :opt_flag
@@ -1351,10 +1364,6 @@
pmc2c .= " "
$S0 = get_tool('build/pmc2c.pl')
pmc2c .= $S0
- $S0 = config['osname']
- unless $S0 == 'solaris' goto L1
- pmc2c .= " --no-lines"
- L1:
.local string pmc2c_includes
pmc2c_includes = "--include "
$S0 = get_srcdir()
@@ -1403,10 +1412,6 @@
cmd .= " "
$S0 = get_tool('build/pmc2c.pl')
cmd .= $S0
- $S0 = config['osname']
- unless $S0 == 'solaris' goto L0
- cmd .= " --no-lines"
- L0:
cmd .= " --library "
$S0 = dirname(src)
cmd .= $S0
@@ -1735,14 +1740,11 @@
unless $P0 goto L2
bin = shift $P0
pbc = hash[bin]
- $I0 = length pbc
- $I0 -= 4
- $S0 = substr pbc, 0, $I0
- $S1 = $S0 . exe
+ $S1 = _mk_path_exe(pbc, exe)
unlink($S1, 1 :named('verbose'))
- $S1 = $S0 . '.c'
+ $S1 = _mk_path_exe(pbc, '.c')
unlink($S1, 1 :named('verbose'))
- $S1 = $S0 . obj
+ $S1 = _mk_path_exe(pbc, obj)
unlink($S1, 1 :named('verbose'))
goto L1
L2:
@@ -1771,15 +1773,11 @@
unless $P0 goto L2
bin = shift $P0
pbc = hash[bin]
- $I0 = length pbc
- $I0 -= 4
- $S0 = substr pbc, 0, $I0
- $S1 = 'installable_' . $S0
- $S1 .= exe
+ $S1 = _mk_path_installable(pbc, exe)
unlink($S1, 1 :named('verbose'))
- $S1 = $S0 . '.c'
+ $S1 = _mk_path_exe(pbc, '.c')
unlink($S1, 1 :named('verbose'))
- $S1 = $S0 . obj
+ $S1 = _mk_path_exe(pbc, obj)
unlink($S1, 1 :named('verbose'))
goto L1
L2:
@@ -2042,72 +2040,13 @@
=head3 Step test
-If t/harness exists, run : t/harness
-
-If parrot-tapir exists, run it with t/*.t
-
-Else run : prove t/*.t
-
-=cut
-
-.sub '_test' :anon
- .param pmc kv :slurpy :named
- run_step('build', kv :flat :named)
- $I0 = file_exists('t/harness')
- unless $I0 goto L1
- .tailcall _test_harness(kv :flat :named)
- L1:
- $S0 = get_executable('parrot-tapir')
- $I0 = file_exists($S0)
- unless $I0 goto L2
- .tailcall _test_tapir($S0, kv :flat :named)
- L2:
- .tailcall _test_prove(kv :flat :named)
-.end
-
=over 4
-=item harness_exec
-
-the default value is with perl
-
-=item harness_options
-
-the default value is empty
-
-=item harness_files
-
-the default value is "t/*.t"
-
-=cut
-
-.sub '_test_harness' :anon
- .param pmc kv :slurpy :named
- .local string cmd
- $I0 = exists kv['harness_exec']
- unless $I0 goto L1
- cmd = kv['harness_exec']
- goto L2
- L1:
- cmd = "perl -I"
- $S0 = get_libdir()
- cmd .= $S0
- cmd .= "/tools/lib"
- L2:
- cmd .= " t/harness "
- $S0 = get_value('harness_options', '' :named('default'), kv :flat :named)
- cmd .= $S0
- cmd .= " "
- $S0 = get_value('harness_files', "t/*.t" :named('default'), kv :flat :named)
- cmd .= $S0
- system(cmd, 1 :named('verbose'))
-.end
-
-=item prove_exec
+=item prove_exec / test_exec
-option --exec of prove
+option --exec of prove / tapir
-=item prove_files
+=item prove_files / test_files
the default value is "t/*.t"
@@ -2115,113 +2054,78 @@
=cut
-.sub '_test_prove' :anon
+.sub '_test' :anon
.param pmc kv :slurpy :named
- .local string cmd
- cmd = "prove"
- $I0 = exists kv['prove_exec']
- unless $I0 goto L1
- $S0 = get_prove_version()
- $S0 = substr $S0, 0, 1
- unless $S0 == "3" goto L3
- cmd .= " --exec="
- goto L4
- L3:
- cmd .= " --perl="
- L4:
- $S0 = kv['prove_exec']
- $I0 = index $S0, ' '
- if $I0 < 0 goto L2
- cmd .= "\""
- L2:
- cmd .= $S0
- if $I0 < 0 goto L1
- cmd .= "\""
- L1:
- cmd .= " "
- $S0 = get_value('prove_files', "t/*.t" :named('default'), kv :flat :named)
- cmd .= $S0
- system(cmd, 1 :named('verbose'))
-.end
-
-.sub 'get_prove_version' :anon
- $P0 = open 'prove --version', 'rp'
- $S0 = $P0.'readline'()
- $P0.'close'()
- $I1 = index $S0, "Test::Harness v"
- $I1 += 15
- $I2 = index $S0, " ", $I1
- $I3 = $I2 - $I1
- $S0 = substr $S0, $I1, $I3
- .return ($S0)
-.end
+ run_step('build', kv :flat :named)
-.sub '_test_tapir' :anon
- .param string tapir
- .param pmc kv :slurpy :named
- .local string cmd
- cmd = tapir
+ load_bytecode 'TAP/Harness.pbc'
+ .local pmc opts, files, harness, aggregate
+ opts = new 'Hash'
$I0 = exists kv['prove_exec']
unless $I0 goto L1
- cmd .= " --exec="
$S0 = kv['prove_exec']
- $I0 = index $S0, ' '
- if $I0 < 0 goto L2
- cmd .= "\""
- L2:
- cmd .= $S0
- if $I0 < 0 goto L1
- cmd .= "\""
+ opts['exec'] = $S0
L1:
- cmd .= " "
- $S0 = get_value('prove_files', "t/*.t" :named('default'), kv :flat :named)
- cmd .= $S0
- system(cmd, 1 :named('verbose'))
+ $I0 = exists kv['test_exec']
+ unless $I0 goto L2
+ $S0 = kv['test_exec']
+ opts['exec'] = $S0
+ L2:
+ $S0 = "t/*.t"
+ $I0 = exists kv['prove_files']
+ unless $I0 goto L3
+ $S0 = kv['prove_files']
+ L3:
+ $I0 = exists kv['test_files']
+ unless $I0 goto L4
+ $S0 = kv['test_files']
+ L4:
+ $P0 = glob($S0)
+ files = sort_strings($P0)
+ harness = new ['TAP';'Harness']
+ harness.'process_args'(opts)
+ aggregate = harness.'runtests'(files)
+ $I0 = aggregate.'has_errors'()
+ unless $I0 goto L5
+ die "test fails"
+ L5:
.end
-=head3 Step smoke
-
-Unless t/harness exists, run : prove --archive t/*.t
-
-=cut
-
-.sub '_smoke' :anon
- .param pmc kv :slurpy :named
- run_step('build', kv :flat :named)
- $I0 = file_exists('t/harness')
- if $I0 goto L1
- $S0 = get_prove_version()
- $S0 = substr $S0, 0, 1
- unless $S0 == "3" goto L2
- .tailcall _smoke_prove(kv :flat :named)
- L2:
- die "Require Test::Harness v3.x (option --archive)."
+.sub 'sort_strings'
+ .param pmc array
+ # currently, FixedStringArray hasn't the method sort.
+ # see TT #1356
+ $I0 = elements array
+ $P0 = new 'FixedPMCArray'
+ set $P0, $I0
+ $I0 = 0
+ $P1 = iter array
L1:
- .tailcall _smoke_harness(kv :flat :named)
+ unless $P1 goto L2
+ $S0 = shift $P1
+ $P0[$I0] = $S0
+ inc $I0
+ goto L1
+ L2:
+ $P0.'sort'()
+ .return ($P0)
.end
-.sub '_clean_smoke' :anon
- .param pmc kv :slurpy :named
- $S0 = get_value('prove_archive', "report.tar.gz" :named('default'), kv :flat :named)
- unlink($S0, 1 :named('verbose'))
- $S0 = get_value('harness_archive', "report.tar.gz" :named('default'), kv :flat :named)
- unlink($S0, 1 :named('verbose'))
- unlink('meta.yml', 1 :named('verbose'))
-.end
+=head3 Step smoke
=over 4
-=item prove_exec
+=item prove_exec / test_exec
option --exec of prove
-=item prove_files
+=item prove_files / test_files
the default value is "t/*.t"
-=item prove_archive
+=item prove_archive / smolder_archive
-option --archive of prove
+option --archive of prove / tapir
the default value is report.tar.gz
@@ -2241,80 +2145,60 @@
a hash
+=back
+
=cut
-.sub '_smoke_prove' :anon
+.sub '_smoke' :anon
.param pmc kv :slurpy :named
- .local string cmd
- cmd = "prove"
+ run_step('build', kv :flat :named)
+
+ load_bytecode 'TAP/Harness.pbc'
+ .local pmc opts, files, harness, aggregate
+ opts = new 'Hash'
$I0 = exists kv['prove_exec']
unless $I0 goto L1
- cmd .= " --exec="
$S0 = kv['prove_exec']
- $I0 = index $S0, ' '
- if $I0 < 0 goto L2
- cmd .= "\""
- L2:
- cmd .= $S0
- if $I0 < 0 goto L1
- cmd .= "\""
+ opts['exec'] = $S0
L1:
- cmd .= " "
- $S0 = get_value('prove_files', "t/*.t" :named('default'), kv :flat :named)
- cmd .= $S0
- cmd .= " --archive="
+ $I0 = exists kv['test_exec']
+ unless $I0 goto L2
+ $S0 = kv['test_exec']
+ opts['exec'] = $S0
+ L2:
+ $S0 = "t/*.t"
+ $I0 = exists kv['prove_files']
+ unless $I0 goto L3
+ $S0 = kv['prove_files']
+ L3:
+ $I0 = exists kv['test_files']
+ unless $I0 goto L4
+ $S0 = kv['test_files']
+ L4:
+ $P0 = glob($S0)
+ files = sort_strings($P0)
+ harness = new ['TAP';'Harness';'Archive']
+ harness.'process_args'(opts)
.local string archive
+ archive = "report.tar.gz"
+ $I0 = exists kv['prove_archive']
+ unless $I0 goto L5
+ archive = kv['prove_archive']
+ L5:
+ $I0 = exists kv['smolder_archive']
+ unless $I0 goto L6
+ archive = kv['smolder_archive']
+ L6:
archive = get_value('prove_archive', "report.tar.gz" :named('default'), kv :flat :named)
- cmd .= archive
- system(cmd, 1 :named('verbose'), 1 :named('ignore_error'))
-
- add_extra_properties(archive, kv :flat :named)
- smolder_post(archive, kv :flat :named)
-.end
-
-.sub 'add_extra_properties' :anon
- .param string archive
- .param pmc kv :slurpy :named
- .local string cmd
+ harness.'archive'(archive)
$I0 = exists kv['smolder_extra_properties']
- unless $I0 goto L1
- system('perl -MExtUtils::Command -e rm_rf tmp')
- cmd = "mkdir tmp && cd tmp && tar xzf ../"
- cmd .= archive
- system(cmd, 1 :named('verbose'))
-
+ unless $I0 goto L7
$P0 = kv['smolder_extra_properties']
- $S0 = mk_extra_properties($P0)
- say "append extra properties"
- append('tmp/meta.yml', $S0)
-
- unlink(archive)
- cmd = "cd tmp && tar czf ../"
- cmd .= archive
- cmd .= " *"
- system(cmd, 1 :named('verbose'))
- system('perl -MExtUtils::Command -e rm_rf tmp')
- L1:
-.end
+ harness.'extra_props'($P0)
+ L7:
+ aggregate = harness.'runtests'(files)
-.sub 'mk_extra_properties' :anon
- .param pmc hash
- $S0 = "extra_properties:\n"
- $P0 = iter hash
- L1:
- unless $P0 goto L2
- .local string key, value
- key = shift $P0
- value = hash[key]
- if value == '' goto L1
- $S0 .= " "
- $S0 .= key
- $S0 .= ": "
- $S0 .= value
- $S0 .= "\n"
- goto L1
- L2:
- .return ($S0)
+ smolder_post(archive, kv :flat :named)
.end
.sub 'smolder_post' :anon
@@ -2357,53 +2241,12 @@
L1:
.end
-=item harness_exec
-
-the default value is with perl
-
-=item harness_options
-
-the default value is empty
-
-=item harness_archive
-
-the default value is report.tar.gz
-
-=item harness_files
-
-the default value is "t/*.t"
-
-=back
-
-=cut
-
-.sub '_smoke_harness' :anon
+.sub '_clean_smoke' :anon
.param pmc kv :slurpy :named
- .local string cmd
- $I0 = exists kv['harness_exec']
- unless $I0 goto L1
- cmd = kv['harness_exec']
- goto L2
- L1:
- cmd = "perl -I"
- $S0 = get_libdir()
- cmd .= $S0
- cmd .= "/tools/lib"
- L2:
- cmd .= " t/harness "
- $S0 = get_value('harness_options', '' :named('default'), kv :flat :named)
- cmd .= $S0
- cmd .= " --archive="
- .local string archive
- archive = get_value('harness_archive', "report.tar.gz" :named('default'), kv :flat :named)
- cmd .= archive
- cmd .= " "
- $S0 = get_value('harness_files', "t/*.t" :named('default'), kv :flat :named)
- cmd .= $S0
- system(cmd, 1 :named('verbose'), 1 :named('ignore_error'))
-
- add_extra_properties(archive, kv :flat :named)
- smolder_post(archive, kv :flat :named)
+ $S0 = get_value('prove_archive', "report.tar.gz" :named('default'), kv :flat :named)
+ unlink($S0, 1 :named('verbose'))
+ $S0 = get_value('smolder_archive', "report.tar.gz" :named('default'), kv :flat :named)
+ unlink($S0, 1 :named('verbose'))
.end
=head3 Step install
@@ -2564,7 +2407,12 @@
$I0 = does array, 'array'
if $I0 goto L1
$S0 = array
- $S2 = $S1 . $S0
+ $S3 = $S0
+ $S2 = $S1 . $S3
+ $I0 = index $S0, "build/"
+ unless $I0 == 0 goto L0
+ $S3 = substr $S0, 6
+ L0:
files[$S2] = $S0
goto L2
L1:
@@ -2572,7 +2420,12 @@
L3:
unless $P0 goto L2
$S0 = shift $P0
- $S2 = $S1 . $S0
+ $S3 = $S0
+ $I0 = index $S0, "build/"
+ unless $I0 == 0 goto L4
+ $S3 = substr $S0, 6
+ L4:
+ $S2 = $S1 . $S3
files[$S2] = $S0
goto L3
L2:
@@ -2611,11 +2464,7 @@
unless $P0 goto L2
bin = shift $P0
pbc = hash[bin]
- $I0 = length pbc
- $I0 -= 4
- $S0 = substr pbc, 0, $I0
- $S1 = 'installable_' . $S0
- $S1 .= exe
+ $S1 = _mk_path_installable(pbc, exe)
$S2 = bindir . '/'
$S2 .= bin
$S2 .= exe
@@ -2904,7 +2753,7 @@
"requires" : {
"fetch" : ["%s"],
"build" : [],
- "test" : ["perl5"],
+ "test" : [],
"install" : [],
"runtime" : []
}
@@ -4156,11 +4005,7 @@
unless $P1 goto L1
bin = shift $P1
pbc = $P0[bin]
- $I0 = length pbc
- $I0 -= 4
- $S0 = substr pbc, 0, $I0
- $S1 = 'installable_' . $S0
- $S1 .= exe
+ $S1 = _mk_path_installable(pbc, exe)
$S2 = bin . exe
$I0 = newer($S2, $S1)
if $I0 goto L2
@@ -4831,662 +4676,6 @@
=back
-=head2 OS Utilities
-
-=over 4
-
-=item system
-
-=cut
-
-.sub 'system'
- .param string cmd
- .param int verbose :named('verbose') :optional
- .param int has_verbose :opt_flag
- .param int ignore_error :named('ignore_error') :optional
- .param int has_ignore_error :opt_flag
- unless has_verbose goto L1
- unless verbose goto L1
- say cmd
- L1:
- $I0 = spawnw cmd
- unless $I0 goto L2
- unless has_ignore_error goto L3
- if ignore_error goto L2
- L3:
- $S0 = "exit status: "
- $S1 = $I0
- $S0 .= $S1
- $S0 .= "\ncommand: "
- $S0 .= cmd
- $S0 .= "\n"
- die $S0
- L2:
- .return ($I0)
-.end
-
-.include 'stat.pasm'
-
-.sub 'file_exists'
- .param string filename
- $I0 = stat filename, .STAT_EXISTS
- .return ($I0)
-.end
-
-=item newer
-
-=cut
-
-.sub 'newer' :multi(string, pmc)
- .param string target
- .param pmc depends
- $I0 = does depends, 'array'
- if $I0 goto L1
- $S0 = depends
- .tailcall newer(target, $S0)
- L1:
- $I0 = stat target, .STAT_EXISTS
- unless $I0 goto L2
- $I0 = stat target, .STAT_FILESIZE
- unless $I0 goto L2
- goto L3
- L2:
- .return (0)
- L3:
- $I0 = stat target, .STAT_MODIFYTIME
- $P0 = iter depends
- L4:
- unless $P0 goto L5
- $S0 = shift $P0
- if $S0 == '' goto L4
- $I1 = stat $S0, .STAT_MODIFYTIME
- if $I1 < $I0 goto L4
- .return (0)
- L5:
- .return (1)
-.end
-
-.sub 'newer' :multi(string, string)
- .param string target
- .param string depend
- $I0 = stat target, .STAT_EXISTS
- unless $I0 goto L1
- $I0 = stat target, .STAT_FILESIZE
- unless $I0 goto L1
- goto L2
- L1:
- .return (0)
- L2:
- $I1 = stat target, .STAT_MODIFYTIME
- $I2 = stat depend, .STAT_MODIFYTIME
- $I0 = $I1 > $I2
- .return ($I0)
-.end
-
-.sub 'newer' :multi(pmc, pmc)
- .param pmc target
- .param pmc depend
- $S0 = target
- .tailcall newer($S0, depend)
-.end
-
-=item mkpath
-
-=cut
-
-.sub 'mkpath'
- .param string pathname
- .param int verbose :named('verbose') :optional
- $I1 = 1
- L1:
- $I1 = index pathname, '/', $I1
- if $I1 < 0 goto L2
- $S0 = substr pathname, 0, $I1
- inc $I1
- $I0 = stat $S0, .STAT_EXISTS
- if $I0 goto L1
- mkdir($S0, verbose :named('verbose'))
- goto L1
- L2:
- $I0 = stat pathname, .STAT_EXISTS
- if $I0 goto L3
- mkdir(pathname, verbose :named('verbose'))
- L3:
-.end
-
-=item mkdir
-
-=cut
-
-.sub 'mkdir'
- .param string dirname
- .param int verbose :named('verbose') :optional
- .param int has_verbose :opt_flag
- unless has_verbose goto L1
- unless verbose goto L1
- print "mkdir "
- say dirname
- L1:
- $P0 = new 'OS'
- $I1 = 0o775
- push_eh _handler
- $P0.'mkdir'(dirname, $I1)
- pop_eh
- .return ()
- _handler:
- .local pmc e
- .get_results (e)
- $S0 = "Can't mkdir '"
- $S0 .= dirname
- $S0 .= "' ("
- $S1 = err
- $S0 .= $S1
- $S0 .= ")\n"
- e = $S0
- rethrow e
-.end
-
-=item install
-
-=cut
-
-.sub 'install'
- .param string src
- .param string dst
- .param int exe :named('exe') :optional
- .param int has_exe :opt_flag
- .param int verbose :named('verbose') :optional
- # mkpath
- $I1 = 1
- L1:
- $I1 = index dst, '/', $I1
- if $I1 < 0 goto L2
- $S0 = substr dst, 0, $I1
- inc $I1
- $I0 = stat $S0, .STAT_EXISTS
- if $I0 goto L1
- mkdir($S0, verbose :named('verbose'))
- goto L1
- L2:
- $I0 = newer(dst, src)
- if $I0 goto L3
- cp(src, dst, verbose :named('verbose'))
- unless has_exe goto L3
- unless exe goto L3
- $P0 = getinterp
- $P0 = $P0[.IGLOBALS_CONFIG_HASH]
- $I0 = $P0['cygwin']
- if $I0 goto L4
- $I0 = $P0['hpux']
- if $I0 goto L4
- goto L3
- L4:
- chmod(dst, 0o755, verbose :named('verbose'))
- L3:
-.end
-
-=item cp
-
-=cut
-
-.sub 'cp'
- .param string src
- .param string dst
- .param int verbose :named('verbose') :optional
- .param int has_verbose :opt_flag
- unless has_verbose goto L1
- unless verbose goto L1
- print "cp "
- print src
- print " "
- say dst
- L1:
- $P0 = new 'FileHandle'
- push_eh _handler1
- $S0 = $P0.'readall'(src)
- pop_eh
- push_eh _handler2
- $P0.'open'(dst, 'w')
- pop_eh
- $P0.'puts'($S0)
- $P0.'close'()
- .return ()
- _handler1:
- .local pmc e
- .get_results (e)
- $S0 = "Can't open '"
- $S0 .= src
- $S0 .= "' ("
- $S1 = err
- $S0 .= $S1
- $S0 .= ")\n"
- e = $S0
- rethrow e
- _handler2:
- .local pmc e
- .get_results (e)
- $S0 = "Can't open '"
- $S0 .= dst
- $S0 .= "' ("
- $S1 = err
- $S0 .= $S1
- $S0 .= ")\n"
- e = $S0
- rethrow e
-.end
-
-=item chmod
-
-=cut
-
-.sub 'chmod'
- .param string filename
- .param int mode
- .param int verbose :named('verbose') :optional
- # see TT #1322
- $P0 = get_config()
- .local string cmd
- cmd = $P0['perl']
- cmd .= " -MExtUtils::Command -e ExtUtils::Command::chmod "
- $P1 = new 'FixedIntegerArray'
- set $P1, 1
- $P1[0] = mode
- $S0 = sprintf '0%o', $P1
- cmd .= $S0
- cmd .= " "
- cmd .= filename
- system(cmd, verbose :named('verbose'))
-.end
-
-=item unlink
-
-=cut
-
-.sub 'unlink' :multi(string)
- .param string filename
- .param int verbose :named('verbose') :optional
- .param int has_verbose :opt_flag
- $I0 = stat filename, .STAT_EXISTS
- unless $I0 goto L1
- $I0 = stat filename, .STAT_ISREG
- unless $I0 goto L1
- unless has_verbose goto L2
- unless verbose goto L2
- print "unlink "
- say filename
- L2:
- new $P0, 'OS'
- push_eh _handler
- $P0.'rm'(filename)
- pop_eh
- L1:
- .return ()
- _handler:
- .local pmc e
- .get_results (e)
- $S0 = "Can't remove '"
- $S0 .= filename
- $S0 .= "' ("
- $S1 = err
- $S0 .= $S1
- $S0 .= ")\n"
- e = $S0
- rethrow e
-.end
-
-.sub 'unlink' :multi(pmc)
- .param pmc list
- .param int verbose :named('verbose') :optional
- $I0 = does list, 'array'
- if $I0 goto L1
- $S0 = list
- unlink($S0, verbose :named('verbose'))
- goto L2
- L1:
- $P0 = iter list
- L3:
- unless $P0 goto L2
- $S0 = shift $P0
- unlink($S0, verbose :named('verbose'))
- goto L3
- L2:
-.end
-
-=item rmtree
-
-=cut
-
-.sub 'rmtree'
- .param string path
- .param int verbose :named('verbose') :optional
- .param int has_verbose :opt_flag
- $I0 = stat path, .STAT_EXISTS
- unless $I0 goto L1
- $I0 = stat path, .STAT_ISDIR
- unless $I0 goto L1
- unless has_verbose goto L2
- unless verbose goto L2
- print "rmtree "
- say path
- L2:
- new $P0, 'OS'
- $P1 = $P0.'readdir'(path)
- push_eh _handler
- L3:
- unless $P1 goto L4
- $S0 = shift $P1
- if $S0 == '.' goto L3
- if $S0 == '..' goto L3
- $S1 = path . '/'
- $S1 .= $S0
- $I0 = stat $S1, .STAT_ISDIR
- unless $I0 goto L5
- rmtree($S1)
- goto L3
- L5:
- $P0.'rm'($S1)
- goto L3
- L4:
- push_eh _handler
- $S1 = path
- $P0.'rm'($S1)
- pop_eh
- L1:
- .return ()
- _handler:
- .local pmc e
- .get_results (e)
- $S0 = "Can't remove '"
- $S0 .= $S1
- $S0 .= "' ("
- $S1 = err
- $S0 .= $S1
- $S0 .= ")\n"
- e = $S0
- rethrow e
-.end
-
-=item basename
-
-=cut
-
-.sub 'basename'
- .param string path
- $I0 = 0
- L1:
- $I1 = index path, '/', $I0
- if $I1 < 0 goto L2
- $I0 = $I1 + 1
- goto L1
- L2:
- $S0 = substr path, $I0
- .return ($S0)
-.end
-
-=item dirname
-
-=cut
-
-.sub 'dirname'
- .param string path
- unless path goto L3
- $I0 = 0
- L1:
- $I1 = index path, '/', $I0
- if $I1 < 0 goto L2
- $I0 = $I1 + 1
- goto L1
- L2:
- dec $I0
- unless $I0 > 0 goto L3
- $S0 = substr path, 0, $I0
- .return ($S0)
- L3:
- .return ('.')
-.end
-
-=item cwd
-
-=cut
-
-.sub 'cwd'
- new $P0, 'OS'
- $S0 = $P0.'cwd'()
- $P0 = split "\\", $S0
- $S0 = join "/", $P0
- .return ($S0)
-.end
-
-=item chdir
-
-=cut
-
-.sub 'chdir'
- .param string dirname
- .param int verbose :named('verbose') :optional
- .param int has_verbose :opt_flag
- unless has_verbose goto L1
- unless verbose goto L1
- print "cd "
- say dirname
- L1:
- new $P0, 'OS'
- push_eh _handler
- $P0.'chdir'(dirname)
- pop_eh
- .return ()
- _handler:
- .local pmc e
- .get_results (e)
- $S0 = "Can't chdir '"
- $S0 .= dirname
- $S0 .= "' ("
- $S1 = err
- $S0 .= $S1
- $S0 .= ")\n"
- e = $S0
- rethrow e
-.end
-
-=item chomp
-
-=cut
-
-.include 'cclass.pasm'
-
-.sub 'chomp'
- .param string str
- $I0 = index str, "\r"
- if $I0 < 0 goto L1
- str = substr str, 0, $I0
- L1:
- $I1 = index str, "\n"
- if $I1 < 0 goto L2
- str = substr str, 0, $I1
- L2:
- .return (str)
-.end
-
-=item glob
-
-=cut
-
-.sub 'glob'
- .param string patterns
- $P0 = new 'ResizableStringArray'
- $P1 = split ' ', patterns
- L1:
- unless $P1 goto L2
- .local string pattern
- pattern = shift $P1
- $I0 = index pattern, '*'
- unless $I0 < 0 goto L3
- $I0 = index pattern, '?'
- unless $I0 < 0 goto L3
- $I0 = index pattern, '['
- unless $I0 < 0 goto L3
- $I0 = stat pattern, .STAT_EXISTS
- unless $I0 goto L1
- push $P0, pattern
- goto L1
- L3:
- .local pmc matcher
- load_bytecode 'PGE/Glob.pbc'
- $P2 = compreg 'PGE::Glob'
- matcher = $P2.'compile'(pattern)
- $S0 = dirname(pattern)
- $P3 = glob($S0)
- $P4 = new 'OS'
- L4:
- unless $P3 goto L1
- .local string dir
- dir = shift $P3
- $I0 = stat dir, .STAT_ISDIR
- unless $I0 goto L4
- $S0 = basename(dir)
- $P5 = $P4.'readdir'(dir)
- L5:
- unless $P5 goto L4
- $S0 = shift $P5
- if $S0 == '.' goto L5
- if $S0 == '..' goto L5
- if dir == '.' goto L6
- $S1 = dir . '/'
- $S0 = $S1 . $S0
- L6:
- $P6 = matcher($S0)
- unless $P6 goto L5
- push $P0, $S0
- goto L5
- L2:
- .return ($P0)
-.end
-
-=item getenv
-
-=cut
-
-.sub 'getenv'
- .param string name
- new $P0, 'Env'
- $S0 = $P0[name]
- .return ($S0)
-.end
-
-=item setenv
-
-=cut
-
-.sub 'setenv'
- .param string name
- .param string value
- .param int verbose :named('verbose') :optional
- .param int has_verbose :opt_flag
- unless has_verbose goto L1
- unless verbose goto L1
- print "setenv "
- print name
- print " = "
- say value
- L1:
- new $P0, 'Env'
- $P0[name] = value
-.end
-
-=item slurp
-
-=cut
-
-.sub 'slurp'
- .param string filename
- $P0 = new 'FileHandle'
- push_eh _handler
- $S0 = $P0.'readall'(filename)
- pop_eh
- .return ($S0)
- _handler:
- .local pmc e
- .get_results (e)
- $S0 = "Can't open '"
- $S0 .= filename
- $S0 .= "' ("
- $S1 = err
- $S0 .= $S1
- $S0 .= ")\n"
- e = $S0
- rethrow e
-.end
-
-=item spew
-
-=cut
-
-.sub 'spew'
- .param string filename
- .param string content
- .param int verbose :named('verbose') :optional
- .param int has_verbose :opt_flag
- unless has_verbose goto L1
- unless verbose goto L1
- print "creat "
- say filename
- L1:
- $P0 = new 'FileHandle'
- push_eh _handler
- $P0.'open'(filename, 'w')
- pop_eh
- $P0.'puts'(content)
- $P0.'close'()
- .return ()
- _handler:
- .local pmc e
- .get_results (e)
- $S0 = "Can't open '"
- $S0 .= filename
- $S0 .= "' ("
- $S1 = err
- $S0 .= $S1
- $S0 .= ")\n"
- e = $S0
- rethrow e
-.end
-
-=item append
-
-=cut
-
-.sub 'append'
- .param string filename
- .param string content
- .param int verbose :named('verbose') :optional
- .param int has_verbose :opt_flag
- unless has_verbose goto L1
- unless verbose goto L1
- print "append "
- say filename
- L1:
- $P0 = new 'FileHandle'
- push_eh _handler
- $P0.'open'(filename, 'a')
- pop_eh
- $P0.'puts'(content)
- $P0.'close'()
- .return ()
- _handler:
- .local pmc e
- .get_results (e)
- $S0 = "Can't open '"
- $S0 .= filename
- $S0 .= "' ("
- $S1 = err
- $S0 .= $S1
- $S0 .= ")\n"
- e = $S0
- rethrow e
-.end
-
-=back
-
=head1 AUTHOR
Francois Perrad
Added: branches/avl_string_cache/runtime/parrot/library/osutils.pir
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/avl_string_cache/runtime/parrot/library/osutils.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -0,0 +1,779 @@
+# Copyright (C) 2009-2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+osutils - Parrot OS Utilities
+
+=head2 DESCRIPTION
+
+=over 4
+
+=item system
+
+=cut
+
+.sub 'system'
+ .param string cmd
+ .param int verbose :named('verbose') :optional
+ .param int has_verbose :opt_flag
+ .param int ignore_error :named('ignore_error') :optional
+ .param int has_ignore_error :opt_flag
+ unless has_verbose goto L1
+ unless verbose goto L1
+ say cmd
+ L1:
+ $I0 = spawnw cmd
+ unless $I0 goto L2
+ unless has_ignore_error goto L3
+ if ignore_error goto L2
+ L3:
+ $S0 = "exit status: "
+ $S1 = $I0
+ $S0 .= $S1
+ $S0 .= "\ncommand: "
+ $S0 .= cmd
+ $S0 .= "\n"
+ die $S0
+ L2:
+ .return ($I0)
+.end
+
+.include 'stat.pasm'
+
+.sub 'file_exists'
+ .param string filename
+ $I0 = stat filename, .STAT_EXISTS
+ .return ($I0)
+.end
+
+=item newer
+
+=cut
+
+.sub 'newer' :multi(string, pmc)
+ .param string target
+ .param pmc depends
+ $I0 = does depends, 'array'
+ if $I0 goto L1
+ $S0 = depends
+ .tailcall newer(target, $S0)
+ L1:
+ $I0 = stat target, .STAT_EXISTS
+ unless $I0 goto L2
+ $I0 = stat target, .STAT_FILESIZE
+ unless $I0 goto L2
+ goto L3
+ L2:
+ .return (0)
+ L3:
+ $I0 = stat target, .STAT_MODIFYTIME
+ $P0 = iter depends
+ L4:
+ unless $P0 goto L5
+ $S0 = shift $P0
+ if $S0 == '' goto L4
+ $I1 = stat $S0, .STAT_MODIFYTIME
+ if $I1 < $I0 goto L4
+ .return (0)
+ L5:
+ .return (1)
+.end
+
+.sub 'newer' :multi(string, string)
+ .param string target
+ .param string depend
+ $I0 = stat target, .STAT_EXISTS
+ unless $I0 goto L1
+ $I0 = stat target, .STAT_FILESIZE
+ unless $I0 goto L1
+ goto L2
+ L1:
+ .return (0)
+ L2:
+ $I1 = stat target, .STAT_MODIFYTIME
+ $I2 = stat depend, .STAT_MODIFYTIME
+ $I0 = $I1 > $I2
+ .return ($I0)
+.end
+
+.sub 'newer' :multi(pmc, pmc)
+ .param pmc target
+ .param pmc depend
+ $S0 = target
+ .tailcall newer($S0, depend)
+.end
+
+=item mkpath
+
+=cut
+
+.sub 'mkpath'
+ .param string pathname
+ .param int verbose :named('verbose') :optional
+ $I1 = 1
+ L1:
+ $I1 = index pathname, '/', $I1
+ if $I1 < 0 goto L2
+ $S0 = substr pathname, 0, $I1
+ inc $I1
+ $I0 = stat $S0, .STAT_EXISTS
+ if $I0 goto L1
+ $I0 = length $S0
+ if $I0 != 2 goto L3
+ $I0 = index $S0, ':'
+ if $I0 == 1 goto L1
+ L3:
+ mkdir($S0, verbose :named('verbose'))
+ goto L1
+ L2:
+ $I0 = stat pathname, .STAT_EXISTS
+ if $I0 goto L4
+ mkdir(pathname, verbose :named('verbose'))
+ L4:
+.end
+
+=item mkdir
+
+=cut
+
+.sub 'mkdir'
+ .param string dirname
+ .param int verbose :named('verbose') :optional
+ .param int has_verbose :opt_flag
+ unless has_verbose goto L1
+ unless verbose goto L1
+ print "mkdir "
+ say dirname
+ L1:
+ $P0 = new 'OS'
+ $I1 = 0o775
+ push_eh _handler
+ $P0.'mkdir'(dirname, $I1)
+ pop_eh
+ .return ()
+ _handler:
+ .local pmc e
+ .get_results (e)
+ $S0 = "Can't mkdir '"
+ $S0 .= dirname
+ $S0 .= "' ("
+ $S1 = err
+ $S0 .= $S1
+ $S0 .= ")\n"
+ e = $S0
+ rethrow e
+.end
+
+=item install
+
+=cut
+
+.include 'iglobals.pasm'
+
+.sub 'install'
+ .param string src
+ .param string dst
+ .param int exe :named('exe') :optional
+ .param int has_exe :opt_flag
+ .param int verbose :named('verbose') :optional
+ # mkpath
+ $I1 = 1
+ L1:
+ $I1 = index dst, '/', $I1
+ if $I1 < 0 goto L2
+ $S0 = substr dst, 0, $I1
+ inc $I1
+ $I0 = stat $S0, .STAT_EXISTS
+ if $I0 goto L1
+ mkdir($S0, verbose :named('verbose'))
+ goto L1
+ L2:
+ $I0 = newer(dst, src)
+ if $I0 goto L3
+ cp(src, dst, verbose :named('verbose'))
+ unless has_exe goto L3
+ unless exe goto L3
+ $P0 = getinterp
+ $P0 = $P0[.IGLOBALS_CONFIG_HASH]
+ $I0 = $P0['win32']
+ if $I0 goto L3
+ chmod(dst, 0o755, verbose :named('verbose'))
+ L3:
+.end
+
+=item cp
+
+=cut
+
+.sub 'cp'
+ .param string src
+ .param string dst
+ .param int verbose :named('verbose') :optional
+ .param int has_verbose :opt_flag
+ unless has_verbose goto L1
+ unless verbose goto L1
+ print "cp "
+ print src
+ print " "
+ say dst
+ L1:
+ $P0 = new 'FileHandle'
+ push_eh _handler1
+ $S0 = $P0.'readall'(src)
+ pop_eh
+ push_eh _handler2
+ $P0.'open'(dst, 'w')
+ pop_eh
+ $P0.'puts'($S0)
+ $P0.'close'()
+ .return ()
+ _handler1:
+ .local pmc e
+ .get_results (e)
+ $S0 = "Can't open '"
+ $S0 .= src
+ $S0 .= "' ("
+ $S1 = err
+ $S0 .= $S1
+ $S0 .= ")\n"
+ e = $S0
+ rethrow e
+ _handler2:
+ .local pmc e
+ .get_results (e)
+ $S0 = "Can't open '"
+ $S0 .= dst
+ $S0 .= "' ("
+ $S1 = err
+ $S0 .= $S1
+ $S0 .= ")\n"
+ e = $S0
+ rethrow e
+.end
+
+=item chmod
+
+=cut
+
+.sub 'chmod'
+ .param string filename
+ .param int mode
+ .param int verbose :named('verbose') :optional
+ # see TT #1322
+ $P0 = get_config()
+ .local string cmd
+ cmd = $P0['perl']
+ cmd .= " -MExtUtils::Command -e ExtUtils::Command::chmod "
+ $P1 = new 'FixedIntegerArray'
+ set $P1, 1
+ $P1[0] = mode
+ $S0 = sprintf '0%o', $P1
+ cmd .= $S0
+ cmd .= " "
+ cmd .= filename
+ system(cmd, verbose :named('verbose'))
+.end
+
+=item unlink
+
+=cut
+
+.sub 'unlink' :multi(string)
+ .param string filename
+ .param int verbose :named('verbose') :optional
+ .param int has_verbose :opt_flag
+ $I0 = stat filename, .STAT_EXISTS
+ unless $I0 goto L1
+ $I0 = stat filename, .STAT_ISREG
+ unless $I0 goto L1
+ unless has_verbose goto L2
+ unless verbose goto L2
+ print "unlink "
+ say filename
+ L2:
+ new $P0, 'OS'
+ push_eh _handler
+ $P0.'rm'(filename)
+ pop_eh
+ L1:
+ .return ()
+ _handler:
+ .local pmc e
+ .get_results (e)
+ $S0 = "Can't remove '"
+ $S0 .= filename
+ $S0 .= "' ("
+ $S1 = err
+ $S0 .= $S1
+ $S0 .= ")\n"
+ e = $S0
+ rethrow e
+.end
+
+.sub 'unlink' :multi(pmc)
+ .param pmc list
+ .param int verbose :named('verbose') :optional
+ $I0 = does list, 'array'
+ if $I0 goto L1
+ $S0 = list
+ unlink($S0, verbose :named('verbose'))
+ goto L2
+ L1:
+ $P0 = iter list
+ L3:
+ unless $P0 goto L2
+ $S0 = shift $P0
+ unlink($S0, verbose :named('verbose'))
+ goto L3
+ L2:
+.end
+
+=item rmtree
+
+=cut
+
+.sub 'rmtree'
+ .param string path
+ .param int verbose :named('verbose') :optional
+ .param int has_verbose :opt_flag
+ $I0 = stat path, .STAT_EXISTS
+ unless $I0 goto L1
+ $I0 = stat path, .STAT_ISDIR
+ unless $I0 goto L1
+ unless has_verbose goto L2
+ unless verbose goto L2
+ print "rmtree "
+ say path
+ L2:
+ new $P0, 'OS'
+ $P1 = $P0.'readdir'(path)
+ push_eh _handler
+ L3:
+ unless $P1 goto L4
+ $S0 = shift $P1
+ if $S0 == '.' goto L3
+ if $S0 == '..' goto L3
+ $S1 = path . '/'
+ $S1 .= $S0
+ $I0 = stat $S1, .STAT_ISDIR
+ unless $I0 goto L5
+ rmtree($S1)
+ goto L3
+ L5:
+ $P0.'rm'($S1)
+ goto L3
+ L4:
+ push_eh _handler
+ $S1 = path
+ $P0.'rm'($S1)
+ pop_eh
+ L1:
+ .return ()
+ _handler:
+ .local pmc e
+ .get_results (e)
+ $S0 = "Can't remove '"
+ $S0 .= $S1
+ $S0 .= "' ("
+ $S1 = err
+ $S0 .= $S1
+ $S0 .= ")\n"
+ e = $S0
+ rethrow e
+.end
+
+=item basename
+
+=cut
+
+.sub 'basename'
+ .param string path
+ $I0 = 0
+ L1:
+ $I1 = index path, '/', $I0
+ if $I1 < 0 goto L2
+ $I0 = $I1 + 1
+ goto L1
+ L2:
+ $S0 = substr path, $I0
+ .return ($S0)
+.end
+
+=item dirname
+
+=cut
+
+.sub 'dirname'
+ .param string path
+ unless path goto L3
+ $I0 = 0
+ L1:
+ $I1 = index path, '/', $I0
+ if $I1 < 0 goto L2
+ $I0 = $I1 + 1
+ goto L1
+ L2:
+ dec $I0
+ unless $I0 > 0 goto L3
+ $S0 = substr path, 0, $I0
+ .return ($S0)
+ L3:
+ .return ('.')
+.end
+
+=item cwd
+
+=cut
+
+.sub 'cwd'
+ new $P0, 'OS'
+ $S0 = $P0.'cwd'()
+ $P0 = split "\\", $S0
+ $S0 = join "/", $P0
+ .return ($S0)
+.end
+
+=item chdir
+
+=cut
+
+.sub 'chdir'
+ .param string dirname
+ .param int verbose :named('verbose') :optional
+ .param int has_verbose :opt_flag
+ unless has_verbose goto L1
+ unless verbose goto L1
+ print "cd "
+ say dirname
+ L1:
+ new $P0, 'OS'
+ push_eh _handler
+ $P0.'chdir'(dirname)
+ pop_eh
+ .return ()
+ _handler:
+ .local pmc e
+ .get_results (e)
+ $S0 = "Can't chdir '"
+ $S0 .= dirname
+ $S0 .= "' ("
+ $S1 = err
+ $S0 .= $S1
+ $S0 .= ")\n"
+ e = $S0
+ rethrow e
+.end
+
+=item chomp
+
+=cut
+
+.include 'cclass.pasm'
+
+.sub 'chomp'
+ .param string str
+ $I0 = index str, "\r"
+ if $I0 < 0 goto L1
+ str = substr str, 0, $I0
+ L1:
+ $I1 = index str, "\n"
+ if $I1 < 0 goto L2
+ str = substr str, 0, $I1
+ L2:
+ .return (str)
+.end
+
+=item glob
+
+=cut
+
+.sub 'glob'
+ .param string patterns
+ $P0 = new 'ResizableStringArray'
+ $P1 = split ' ', patterns
+ L1:
+ unless $P1 goto L2
+ .local string pattern
+ pattern = shift $P1
+ $I0 = index pattern, '*'
+ unless $I0 < 0 goto L3
+ $I0 = index pattern, '?'
+ unless $I0 < 0 goto L3
+ $I0 = index pattern, '['
+ unless $I0 < 0 goto L3
+ $I0 = stat pattern, .STAT_EXISTS
+ unless $I0 goto L1
+ push $P0, pattern
+ goto L1
+ L3:
+ .local pmc matcher
+ load_bytecode 'PGE/Glob.pbc'
+ $P2 = compreg 'PGE::Glob'
+ matcher = $P2.'compile'(pattern)
+ $S0 = dirname(pattern)
+ $P3 = glob($S0)
+ $P4 = new 'OS'
+ L4:
+ unless $P3 goto L1
+ .local string dir
+ dir = shift $P3
+ $I0 = stat dir, .STAT_ISDIR
+ unless $I0 goto L4
+ $S0 = basename(dir)
+ $P5 = $P4.'readdir'(dir)
+ L5:
+ unless $P5 goto L4
+ $S0 = shift $P5
+ if $S0 == '.' goto L5
+ if $S0 == '..' goto L5
+ if dir == '.' goto L6
+ $S1 = dir . '/'
+ $S0 = $S1 . $S0
+ L6:
+ $P6 = matcher($S0)
+ unless $P6 goto L5
+ push $P0, $S0
+ goto L5
+ L2:
+ .return ($P0)
+.end
+
+=item getenv
+
+=cut
+
+.sub 'getenv'
+ .param string name
+ new $P0, 'Env'
+ $S0 = $P0[name]
+ .return ($S0)
+.end
+
+=item setenv
+
+=cut
+
+.sub 'setenv'
+ .param string name
+ .param string value
+ .param int verbose :named('verbose') :optional
+ .param int has_verbose :opt_flag
+ unless has_verbose goto L1
+ unless verbose goto L1
+ print "setenv "
+ print name
+ print " = "
+ say value
+ L1:
+ new $P0, 'Env'
+ $P0[name] = value
+.end
+
+=item slurp
+
+=cut
+
+.sub 'slurp'
+ .param string filename
+ $P0 = new 'FileHandle'
+ push_eh _handler
+ $S0 = $P0.'readall'(filename)
+ pop_eh
+ .return ($S0)
+ _handler:
+ .local pmc e
+ .get_results (e)
+ $S0 = "Can't open '"
+ $S0 .= filename
+ $S0 .= "' ("
+ $S1 = err
+ $S0 .= $S1
+ $S0 .= ")\n"
+ e = $S0
+ rethrow e
+.end
+
+=item spew
+
+=cut
+
+.sub 'spew'
+ .param string filename
+ .param string content
+ .param int verbose :named('verbose') :optional
+ .param int has_verbose :opt_flag
+ unless has_verbose goto L1
+ unless verbose goto L1
+ print "creat "
+ say filename
+ L1:
+ $P0 = new 'FileHandle'
+ push_eh _handler
+ $P0.'open'(filename, 'w')
+ pop_eh
+ $P0.'puts'(content)
+ $P0.'close'()
+ .return ()
+ _handler:
+ .local pmc e
+ .get_results (e)
+ $S0 = "Can't open '"
+ $S0 .= filename
+ $S0 .= "' ("
+ $S1 = err
+ $S0 .= $S1
+ $S0 .= ")\n"
+ e = $S0
+ rethrow e
+.end
+
+=item append
+
+=cut
+
+.sub 'append'
+ .param string filename
+ .param string content
+ .param int verbose :named('verbose') :optional
+ .param int has_verbose :opt_flag
+ unless has_verbose goto L1
+ unless verbose goto L1
+ print "append "
+ say filename
+ L1:
+ $P0 = new 'FileHandle'
+ push_eh _handler
+ $P0.'open'(filename, 'a')
+ pop_eh
+ $P0.'puts'(content)
+ $P0.'close'()
+ .return ()
+ _handler:
+ .local pmc e
+ .get_results (e)
+ $S0 = "Can't open '"
+ $S0 .= filename
+ $S0 .= "' ("
+ $S1 = err
+ $S0 .= $S1
+ $S0 .= ")\n"
+ e = $S0
+ rethrow e
+.end
+
+=item tempdir
+
+=cut
+
+.sub 'tempdir'
+ .param string suffix :named('SUFFIX') :optional
+ .param int has_suffix :opt_flag
+ $S0 = tmpdir()
+ $S0 .= '/TEMPXXX'
+ unless has_suffix goto L1
+ $S0 .= suffix
+ L1:
+ .tailcall _gettemp($S0)
+.end
+
+.sub '_gettemp' :anon
+ .param string template
+ $P0 = split "/", template
+ $S0 = pop $P0
+ .const string TEMPCHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
+ $P1 = split '', TEMPCHARS
+ $I1 = elements $P1
+ load_bytecode 'Math/Rand.pbc'
+ .local pmc rand
+ rand = get_global [ 'Math'; 'Rand' ], 'rand'
+ .local pmc srand
+ srand = get_global [ 'Math'; 'Rand' ], 'srand'
+ $I0 = time
+ srand($I0)
+ REDO:
+ $S1 = ''
+ $P2 = split '', $S0
+ L1:
+ unless $P2 goto L2
+ $S2 = shift $P2
+ unless $S2 == 'X' goto L3
+ $I0 = rand()
+ $I0 = $I0 % $I1
+ $S2 = $P1[$I0]
+ L3:
+ $S1 .= $S2
+ goto L1
+ L2:
+ push $P0, $S1
+ $S0 = join "/", $P0
+ $I0 = stat $S0, .STAT_EXISTS
+ if $I0 goto REDO
+ .return ($S0)
+.end
+
+=item tmpdir
+
+=cut
+
+.sub 'tmpdir'
+ .local pmc env, dirlist
+ env = new 'Env'
+ dirlist = new 'ResizableStringArray'
+ $P0 = getinterp
+ $P0 = $P0[.IGLOBALS_CONFIG_HASH]
+ $I0 = $P0['win32']
+ unless $I0 goto L1
+ $I0 = exists env['TMPDIR']
+ unless $I0 goto L2
+ $S0 = env['TMPDIR']
+ push dirlist, $S0
+ L2:
+ $I0 = exists env['TEMP']
+ unless $I0 goto L3
+ $S0 = env['TEMP']
+ push dirlist, $S0
+ L3:
+ $I0 = exists env['TMP']
+ unless $I0 goto L4
+ $S0 = env['TMP']
+ push dirlist, $S0
+ L4:
+ push dirlist, 'c:/system/temp'
+ push dirlist, 'c:/temp'
+ push dirlist, '/tmp'
+ push dirlist, '/'
+ goto L5
+ L1:
+ $I0 = exists env['TMPDIR']
+ unless $I0 goto L6
+ $S0 = env['TMPDIR']
+ push dirlist, $S0
+ L6:
+ push dirlist, '/tmp'
+ L5:
+ unless dirlist goto L7
+ $S0 = shift dirlist
+ $I0 = stat $S0, .STAT_EXISTS
+ unless $I0 goto L5
+ $I0 = stat $S0, .STAT_ISDIR
+ unless $I0 goto L5
+ $P0 = split "\\", $S0
+ $S0 = join "/", $P0
+ .return ($S0)
+ L7:
+.end
+
+=back
+
+=head1 AUTHOR
+
+Francois Perrad
+
+=cut
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/avl_string_cache/runtime/parrot/library/pcore.pir
==============================================================================
--- branches/avl_string_cache/runtime/parrot/library/pcore.pir Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/runtime/parrot/library/pcore.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -7,7 +7,7 @@
.namespace [ 'Sub' ]
# implementation Sub.get_lexenv :method
-.sub get_lexenv :method
+.sub get_lexenv :method :nsentry
.local pmc env, pad, interp
env = new 'ResizablePMCArray'
.local int level
Modified: branches/avl_string_cache/src/call/args.c
==============================================================================
--- branches/avl_string_cache/src/call/args.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/call/args.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -71,17 +71,18 @@
INTVAL param_index,
INTVAL param_flags,
ARGIN(void *arg_info),
- ARGIN(struct pcc_set_funcs *accessor))
+ ARGMOD(struct pcc_set_funcs *accessor))
__attribute__nonnull__(1)
__attribute__nonnull__(4)
- __attribute__nonnull__(5);
+ __attribute__nonnull__(5)
+ FUNC_MODIFIES(*accessor);
PARROT_CAN_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
static PMC* clone_key_arg(PARROT_INTERP, ARGIN(PMC *key))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-PARROT_CANNOT_RETURN_NULL
static void dissect_aggregate_arg(PARROT_INTERP,
ARGMOD(PMC *call_object),
ARGIN(PMC *aggregate))
@@ -93,8 +94,8 @@
static void extract_named_arg_from_op(PARROT_INTERP,
ARGMOD(PMC *call_object),
ARGIN(STRING *name),
- ARGIN(PMC * const raw_sig),
- ARGIN(opcode_t * const raw_args),
+ ARGIN(PMC *raw_sig),
+ ARGIN(opcode_t *raw_args),
INTVAL arg_index)
__attribute__nonnull__(1)
__attribute__nonnull__(2)
@@ -115,87 +116,59 @@
__attribute__nonnull__(5)
FUNC_MODIFIES(*call_object);
-PARROT_CANNOT_RETURN_NULL
-static INTVAL intval_arg_from_c_args(PARROT_INTERP,
- ARGIN(va_list *args),
- SHIM(INTVAL param_index))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_CANNOT_RETURN_NULL
-static INTVAL intval_arg_from_op(PARROT_INTERP,
- ARGIN(opcode_t *raw_args),
- INTVAL arg_index)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-static INTVAL intval_constant_from_op(PARROT_INTERP,
- ARGIN(opcode_t *raw_params),
+PARROT_WARN_UNUSED_RESULT
+static INTVAL intval_constant_from_op(SHIM_INTERP,
+ ARGIN(const opcode_t *raw_params),
INTVAL param_index)
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
-static INTVAL intval_constant_from_varargs(PARROT_INTERP,
- ARGIN(void *data),
- INTVAL index)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
+PARROT_WARN_UNUSED_RESULT
+static INTVAL intval_constant_from_varargs(SHIM_INTERP,
+ SHIM(void *data),
+ SHIM(INTVAL index));
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-static INTVAL* intval_param_from_c_args(PARROT_INTERP,
+static INTVAL* intval_param_from_c_args(SHIM_INTERP,
ARGIN(va_list *args),
SHIM(INTVAL param_index))
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static INTVAL* intval_param_from_op(PARROT_INTERP,
- ARGIN(opcode_t *raw_params),
+ ARGIN(const opcode_t *raw_params),
INTVAL param_index)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-PARROT_CANNOT_RETURN_NULL
-static FLOATVAL numval_arg_from_c_args(PARROT_INTERP,
- ARGIN(va_list *args),
- SHIM(INTVAL param_index))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_CANNOT_RETURN_NULL
-static FLOATVAL numval_arg_from_op(PARROT_INTERP,
- ARGIN(opcode_t *raw_args),
- INTVAL arg_index)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
+PARROT_WARN_UNUSED_RESULT
static FLOATVAL numval_constant_from_op(PARROT_INTERP,
- ARGIN(opcode_t *raw_params),
+ ARGIN(const opcode_t *raw_params),
INTVAL param_index)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static FLOATVAL numval_constant_from_varargs(PARROT_INTERP,
- ARGIN(void *data),
- INTVAL index)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
+PARROT_WARN_UNUSED_RESULT
+static FLOATVAL numval_constant_from_varargs(SHIM_INTERP,
+ SHIM(void *data),
+ SHIM(INTVAL index));
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-static FLOATVAL* numval_param_from_c_args(PARROT_INTERP,
+static FLOATVAL* numval_param_from_c_args(SHIM_INTERP,
ARGIN(va_list *args),
SHIM(INTVAL param_index))
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static FLOATVAL* numval_param_from_op(PARROT_INTERP,
- ARGIN(opcode_t *raw_params),
+ ARGIN(const opcode_t *raw_params),
INTVAL param_index)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-PARROT_CAN_RETURN_NULL
static void parse_signature_string(PARROT_INTERP,
ARGIN(const char *signature),
ARGMOD(PMC **arg_flags))
@@ -204,86 +177,60 @@
__attribute__nonnull__(3)
FUNC_MODIFIES(*arg_flags);
-PARROT_CANNOT_RETURN_NULL
-static PMC* pmc_arg_from_c_args(PARROT_INTERP,
- ARGIN(va_list *args),
- SHIM(INTVAL param_index))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_CANNOT_RETURN_NULL
-static PMC* pmc_arg_from_op(PARROT_INTERP,
- ARGIN(opcode_t *raw_args),
- INTVAL arg_index)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
+PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static PMC* pmc_constant_from_op(PARROT_INTERP,
- ARGIN(opcode_t *raw_params),
+ ARGIN(const opcode_t *raw_params),
INTVAL param_index)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_CAN_RETURN_NULL
-static PMC* pmc_constant_from_varargs(PARROT_INTERP,
- ARGIN(void *data),
- INTVAL index)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
+PARROT_WARN_UNUSED_RESULT
+static PMC* pmc_constant_from_varargs(SHIM_INTERP,
+ SHIM(void *data),
+ SHIM(INTVAL index));
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-static PMC** pmc_param_from_c_args(PARROT_INTERP,
+static PMC** pmc_param_from_c_args(SHIM_INTERP,
ARGIN(va_list *args),
SHIM(INTVAL param_index))
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static PMC** pmc_param_from_op(PARROT_INTERP,
- ARGIN(opcode_t *raw_params),
+ ARGIN(const opcode_t *raw_params),
INTVAL param_index)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-PARROT_CANNOT_RETURN_NULL
-static STRING* string_arg_from_c_args(PARROT_INTERP,
- ARGIN(va_list *args),
- SHIM(INTVAL param_index))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_CANNOT_RETURN_NULL
-static STRING* string_arg_from_op(PARROT_INTERP,
- ARGIN(opcode_t *raw_args),
- INTVAL arg_index)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
+PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static STRING* string_constant_from_op(PARROT_INTERP,
- ARGIN(opcode_t *raw_params),
+ ARGIN(const opcode_t *raw_params),
INTVAL param_index)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_CAN_RETURN_NULL
-static STRING* string_constant_from_varargs(PARROT_INTERP,
- ARGIN(void *data),
- INTVAL index)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
+PARROT_WARN_UNUSED_RESULT
+static STRING* string_constant_from_varargs(SHIM_INTERP,
+ SHIM(void *data),
+ SHIM(INTVAL index));
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-static STRING** string_param_from_c_args(PARROT_INTERP,
+static STRING** string_param_from_c_args(SHIM_INTERP,
ARGIN(va_list *args),
SHIM(INTVAL param_index))
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static STRING** string_param_from_op(PARROT_INTERP,
- ARGIN(opcode_t *raw_params),
+ ARGIN(const opcode_t *raw_params),
INTVAL param_index)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -310,39 +257,20 @@
, PARROT_ASSERT_ARG(raw_sig) \
, PARROT_ASSERT_ARG(arg_info) \
, PARROT_ASSERT_ARG(accessor))
-#define ASSERT_ARGS_intval_arg_from_c_args __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(args))
-#define ASSERT_ARGS_intval_arg_from_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(raw_args))
#define ASSERT_ARGS_intval_constant_from_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(raw_params))
-#define ASSERT_ARGS_intval_constant_from_varargs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(data))
+ PARROT_ASSERT_ARG(raw_params))
+#define ASSERT_ARGS_intval_constant_from_varargs __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_intval_param_from_c_args __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(args))
+ PARROT_ASSERT_ARG(args))
#define ASSERT_ARGS_intval_param_from_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(raw_params))
-#define ASSERT_ARGS_numval_arg_from_c_args __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(args))
-#define ASSERT_ARGS_numval_arg_from_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(raw_args))
#define ASSERT_ARGS_numval_constant_from_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(raw_params))
-#define ASSERT_ARGS_numval_constant_from_varargs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(data))
+#define ASSERT_ARGS_numval_constant_from_varargs __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_numval_param_from_c_args __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(args))
+ PARROT_ASSERT_ARG(args))
#define ASSERT_ARGS_numval_param_from_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(raw_params))
@@ -350,39 +278,21 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(signature) \
, PARROT_ASSERT_ARG(arg_flags))
-#define ASSERT_ARGS_pmc_arg_from_c_args __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(args))
-#define ASSERT_ARGS_pmc_arg_from_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(raw_args))
#define ASSERT_ARGS_pmc_constant_from_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(raw_params))
-#define ASSERT_ARGS_pmc_constant_from_varargs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(data))
+#define ASSERT_ARGS_pmc_constant_from_varargs __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_pmc_param_from_c_args __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(args))
+ PARROT_ASSERT_ARG(args))
#define ASSERT_ARGS_pmc_param_from_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(raw_params))
-#define ASSERT_ARGS_string_arg_from_c_args __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(args))
-#define ASSERT_ARGS_string_arg_from_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(raw_args))
#define ASSERT_ARGS_string_constant_from_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(raw_params))
-#define ASSERT_ARGS_string_constant_from_varargs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(data))
+#define ASSERT_ARGS_string_constant_from_varargs __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_string_param_from_c_args __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(args))
+ PARROT_ASSERT_ARG(args))
#define ASSERT_ARGS_string_param_from_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(raw_params))
@@ -392,7 +302,7 @@
/*
=item C<PMC* Parrot_pcc_build_sig_object_from_op(PARROT_INTERP, PMC *signature,
-PMC * const raw_sig, opcode_t * const raw_args)>
+PMC *raw_sig, opcode_t *raw_args)>
Take a raw signature and argument list from a set_args opcode and
convert it to a CallContext PMC.
@@ -406,7 +316,7 @@
PARROT_CANNOT_RETURN_NULL
PMC*
Parrot_pcc_build_sig_object_from_op(PARROT_INTERP, ARGIN_NULLOK(PMC *signature),
- ARGIN(PMC * const raw_sig), ARGIN(opcode_t * const raw_args))
+ ARGIN(PMC *raw_sig), ARGIN(opcode_t *raw_args))
{
ASSERT_ARGS(Parrot_pcc_build_sig_object_from_op)
PMC * const ctx = CURRENT_CONTEXT(interp);
@@ -454,9 +364,7 @@
{
STRING *string_value;
if (constant)
- /* ensure that callees don't modify constant caller strings */
- string_value = Parrot_str_new_COW(interp,
- Parrot_pcc_get_string_constant(interp, ctx, raw_index));
+ string_value = Parrot_pcc_get_string_constant(interp, ctx, raw_index);
else
string_value = CTX_REG_STR(ctx, raw_index);
@@ -509,7 +417,7 @@
/*
=item C<static void extract_named_arg_from_op(PARROT_INTERP, PMC *call_object,
-STRING *name, PMC * const raw_sig, opcode_t * const raw_args, INTVAL arg_index)>
+STRING *name, PMC *raw_sig, opcode_t *raw_args, INTVAL arg_index)>
Pulls in the next argument from a set_args opcode, and sets it as the
value of a named argument in the CallContext PMC.
@@ -520,8 +428,7 @@
static void
extract_named_arg_from_op(PARROT_INTERP, ARGMOD(PMC *call_object), ARGIN(STRING *name),
- ARGIN(PMC * const raw_sig), ARGIN(opcode_t * const raw_args),
- INTVAL arg_index)
+ ARGIN(PMC *raw_sig), ARGIN(opcode_t *raw_args), INTVAL arg_index)
{
ASSERT_ARGS(extract_named_arg_from_op)
PMC * const ctx = CURRENT_CONTEXT(interp);
@@ -547,10 +454,8 @@
break;
case PARROT_ARG_STRING:
if (constant)
- /* ensure that callees don't modify constant caller strings */
VTABLE_set_string_keyed_str(interp, call_object, name,
- Parrot_str_new_COW(interp,
- Parrot_pcc_get_string_constant(interp, ctx, raw_index)));
+ Parrot_pcc_get_string_constant(interp, ctx, raw_index));
else
VTABLE_set_string_keyed_str(interp, call_object, name,
CTX_REG_STR(ctx, raw_index));
@@ -582,7 +487,6 @@
*/
-PARROT_CANNOT_RETURN_NULL
static void
dissect_aggregate_arg(PARROT_INTERP, ARGMOD(PMC *call_object), ARGIN(PMC *aggregate))
{
@@ -633,6 +537,7 @@
*/
PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
PMC*
Parrot_pcc_build_call_from_c_args(PARROT_INTERP,
@@ -899,8 +804,6 @@
}
/* First iterate over positional args and positional parameters. */
- arg_index = 0;
- param_index = 0;
GETATTR_CallContext_num_positionals(interp, call_object, positional_args);
while (1) {
@@ -1069,7 +972,7 @@
/* Now iterate over the named arguments and parameters. */
while (1) {
- STRING *param_name = NULL;
+ STRING *param_name;
INTVAL param_flags;
/* Check if we've used up all the parameters. We'll check for leftover
@@ -1110,7 +1013,7 @@
PMC * const named_arg_list = VTABLE_get_attr_str(interp, call_object, CONST_STRING(interp, "named"));
if (!PMC_IS_NULL(named_arg_list)) {
- INTVAL named_arg_count = VTABLE_elements(interp, named_arg_list);
+ const INTVAL named_arg_count = VTABLE_elements(interp, named_arg_list);
INTVAL named_arg_index;
/* Named argument iteration. */
@@ -1137,8 +1040,8 @@
}
/* Store the name. */
- if (!(param_flags & PARROT_ARG_STRING))
- Parrot_ex_throw_from_c_args(interp, NULL,
+ if (!(param_flags & PARROT_ARG_STRING))
+ Parrot_ex_throw_from_c_args(interp, NULL,
EXCEPTION_INVALID_OPERATION,
"named parameters must have a name specified");
@@ -1294,7 +1197,7 @@
static void
assign_default_param_value(PARROT_INTERP, INTVAL param_index, INTVAL param_flags,
- ARGIN(void *arg_info), ARGIN(struct pcc_set_funcs *accessor))
+ ARGIN(void *arg_info), ARGMOD(struct pcc_set_funcs *accessor))
{
ASSERT_ARGS(assign_default_param_value)
switch (PARROT_ARG_TYPE_MASK_MASK(param_flags)) {
@@ -1439,8 +1342,8 @@
/*
-=item C<void Parrot_pcc_split_signature_string(PARROT_INTERP, const char
-*signature, const char **arg_sig, const char **return_sig)>
+=item C<void Parrot_pcc_split_signature_string(const char *signature, const char
+**arg_sig, const char **return_sig)>
Splits a full signature string and creates call and return signature strings.
The two result strings should be passed in as references to a C string.
@@ -1449,9 +1352,8 @@
*/
-PARROT_CAN_RETURN_NULL
void
-Parrot_pcc_split_signature_string(PARROT_INTERP, ARGIN(const char *signature),
+Parrot_pcc_split_signature_string(ARGIN(const char *signature),
ARGMOD(const char **arg_sig), ARGMOD(const char **return_sig))
{
ASSERT_ARGS(Parrot_pcc_split_signature_string)
@@ -1481,7 +1383,6 @@
*/
-PARROT_CAN_RETURN_NULL
static void
parse_signature_string(PARROT_INTERP, ARGIN(const char *signature),
ARGMOD(PMC **arg_flags))
@@ -1569,7 +1470,7 @@
char * const s = Parrot_str_to_cstring(interp, signature);
const char *arg_sig, *ret_sig;
- Parrot_pcc_split_signature_string(interp, s, &arg_sig, &ret_sig);
+ Parrot_pcc_split_signature_string(s, &arg_sig, &ret_sig);
*arg_flags = PMCNULL;
*return_flags = PMCNULL;
@@ -1611,44 +1512,44 @@
Get the appropriate argument value from the op.
-=item C<static INTVAL intval_arg_from_op(PARROT_INTERP, opcode_t *raw_args,
-INTVAL arg_index)>
+=item C<static INTVAL intval_arg_from_op(PARROT_INTERP, const opcode_t
+*raw_args, INTVAL arg_index)>
-=item C<static FLOATVAL numval_arg_from_op(PARROT_INTERP, opcode_t *raw_args,
-INTVAL arg_index)>
+=item C<static FLOATVAL numval_arg_from_op(PARROT_INTERP, const opcode_t
+*raw_args, INTVAL arg_index)>
-=item C<static STRING* string_arg_from_op(PARROT_INTERP, opcode_t *raw_args,
-INTVAL arg_index)>
+=item C<static STRING* string_arg_from_op(PARROT_INTERP, const opcode_t
+*raw_args, INTVAL arg_index)>
-=item C<static PMC* pmc_arg_from_op(PARROT_INTERP, opcode_t *raw_args, INTVAL
-arg_index)>
+=item C<static PMC* pmc_arg_from_op(PARROT_INTERP, const opcode_t *raw_args,
+INTVAL arg_index)>
Get the appropriate parameter value from the op (these are pointers, so the
argument value can be stored into them.)
-=item C<static INTVAL* intval_param_from_op(PARROT_INTERP, opcode_t *raw_params,
-INTVAL param_index)>
+=item C<static INTVAL* intval_param_from_op(PARROT_INTERP, const opcode_t
+*raw_params, INTVAL param_index)>
-=item C<static FLOATVAL* numval_param_from_op(PARROT_INTERP, opcode_t
+=item C<static FLOATVAL* numval_param_from_op(PARROT_INTERP, const opcode_t
*raw_params, INTVAL param_index)>
-=item C<static STRING** string_param_from_op(PARROT_INTERP, opcode_t
+=item C<static STRING** string_param_from_op(PARROT_INTERP, const opcode_t
*raw_params, INTVAL param_index)>
-=item C<static PMC** pmc_param_from_op(PARROT_INTERP, opcode_t *raw_params,
-INTVAL param_index)>
+=item C<static PMC** pmc_param_from_op(PARROT_INTERP, const opcode_t
+*raw_params, INTVAL param_index)>
-=item C<static INTVAL intval_constant_from_op(PARROT_INTERP, opcode_t
+=item C<static INTVAL intval_constant_from_op(PARROT_INTERP, const opcode_t
*raw_params, INTVAL param_index)>
-=item C<static FLOATVAL numval_constant_from_op(PARROT_INTERP, opcode_t
+=item C<static FLOATVAL numval_constant_from_op(PARROT_INTERP, const opcode_t
*raw_params, INTVAL param_index)>
-=item C<static STRING* string_constant_from_op(PARROT_INTERP, opcode_t
+=item C<static STRING* string_constant_from_op(PARROT_INTERP, const opcode_t
*raw_params, INTVAL param_index)>
-=item C<static PMC* pmc_constant_from_op(PARROT_INTERP, opcode_t *raw_params,
-INTVAL param_index)>
+=item C<static PMC* pmc_constant_from_op(PARROT_INTERP, const opcode_t
+*raw_params, INTVAL param_index)>
Get the appropriate argument value from varargs.
@@ -1700,210 +1601,154 @@
*/
-PARROT_CANNOT_RETURN_NULL
-static INTVAL
-intval_arg_from_op(PARROT_INTERP, ARGIN(opcode_t *raw_args), INTVAL arg_index)
-{
- ASSERT_ARGS(intval_arg_from_op)
- const INTVAL raw_index = raw_args[arg_index + 2];
- return REG_INT(interp, raw_index);
-}
-
-PARROT_CANNOT_RETURN_NULL
-static FLOATVAL
-numval_arg_from_op(PARROT_INTERP, ARGIN(opcode_t *raw_args), INTVAL arg_index)
-{
- ASSERT_ARGS(numval_arg_from_op)
- const INTVAL raw_index = raw_args[arg_index + 2];
- return REG_NUM(interp, raw_index);
-}
-
-PARROT_CANNOT_RETURN_NULL
-static STRING*
-string_arg_from_op(PARROT_INTERP, ARGIN(opcode_t *raw_args), INTVAL arg_index)
-{
- ASSERT_ARGS(string_arg_from_op)
- const INTVAL raw_index = raw_args[arg_index + 2];
- return REG_STR(interp, raw_index);
-}
-
-PARROT_CANNOT_RETURN_NULL
-static PMC*
-pmc_arg_from_op(PARROT_INTERP, ARGIN(opcode_t *raw_args), INTVAL arg_index)
-{
- ASSERT_ARGS(pmc_arg_from_op)
- const INTVAL raw_index = raw_args[arg_index + 2];
- return REG_PMC(interp, raw_index);
-}
-
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static INTVAL*
-intval_param_from_op(PARROT_INTERP, ARGIN(opcode_t *raw_params), INTVAL param_index)
+intval_param_from_op(PARROT_INTERP, ARGIN(const opcode_t *raw_params), INTVAL param_index)
{
ASSERT_ARGS(intval_param_from_op)
const INTVAL raw_index = raw_params[param_index + 2];
return ®_INT(interp, raw_index);
}
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static FLOATVAL*
-numval_param_from_op(PARROT_INTERP, ARGIN(opcode_t *raw_params), INTVAL param_index)
+numval_param_from_op(PARROT_INTERP, ARGIN(const opcode_t *raw_params), INTVAL param_index)
{
ASSERT_ARGS(numval_param_from_op)
const INTVAL raw_index = raw_params[param_index + 2];
return ®_NUM(interp, raw_index);
}
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static STRING**
-string_param_from_op(PARROT_INTERP, ARGIN(opcode_t *raw_params), INTVAL param_index)
+string_param_from_op(PARROT_INTERP, ARGIN(const opcode_t *raw_params), INTVAL param_index)
{
ASSERT_ARGS(string_param_from_op)
const INTVAL raw_index = raw_params[param_index + 2];
return ®_STR(interp, raw_index);
}
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static PMC**
-pmc_param_from_op(PARROT_INTERP, ARGIN(opcode_t *raw_params), INTVAL param_index)
+pmc_param_from_op(PARROT_INTERP, ARGIN(const opcode_t *raw_params), INTVAL param_index)
{
ASSERT_ARGS(pmc_param_from_op)
const INTVAL raw_index = raw_params[param_index + 2];
return ®_PMC(interp, raw_index);
}
+PARROT_WARN_UNUSED_RESULT
static INTVAL
-intval_constant_from_op(PARROT_INTERP, ARGIN(opcode_t *raw_params), INTVAL param_index)
+intval_constant_from_op(SHIM_INTERP, ARGIN(const opcode_t *raw_params), INTVAL param_index)
{
ASSERT_ARGS(intval_constant_from_op)
const INTVAL raw_index = raw_params[param_index + 2];
return raw_index;
}
+PARROT_WARN_UNUSED_RESULT
static FLOATVAL
-numval_constant_from_op(PARROT_INTERP, ARGIN(opcode_t *raw_params), INTVAL param_index)
+numval_constant_from_op(PARROT_INTERP, ARGIN(const opcode_t *raw_params), INTVAL param_index)
{
ASSERT_ARGS(numval_constant_from_op)
const INTVAL raw_index = raw_params[param_index + 2];
return Parrot_pcc_get_num_constant(interp, CURRENT_CONTEXT(interp), raw_index);
}
+PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static STRING*
-string_constant_from_op(PARROT_INTERP, ARGIN(opcode_t *raw_params), INTVAL param_index)
+string_constant_from_op(PARROT_INTERP, ARGIN(const opcode_t *raw_params), INTVAL param_index)
{
ASSERT_ARGS(string_constant_from_op)
const INTVAL raw_index = raw_params[param_index + 2];
return Parrot_pcc_get_string_constant(interp, CURRENT_CONTEXT(interp), raw_index);
}
+PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static PMC*
-pmc_constant_from_op(PARROT_INTERP, ARGIN(opcode_t *raw_params), INTVAL param_index)
+pmc_constant_from_op(PARROT_INTERP, ARGIN(const opcode_t *raw_params), INTVAL param_index)
{
ASSERT_ARGS(pmc_constant_from_op)
const INTVAL raw_index = raw_params[param_index + 2];
return Parrot_pcc_get_pmc_constant(interp, CURRENT_CONTEXT(interp), raw_index);
}
-PARROT_CANNOT_RETURN_NULL
-static INTVAL
-intval_arg_from_c_args(PARROT_INTERP, ARGIN(va_list *args), SHIM(INTVAL param_index))
-{
- ASSERT_ARGS(intval_arg_from_c_args)
- return va_arg(*args, INTVAL);
-}
-
-PARROT_CANNOT_RETURN_NULL
-static FLOATVAL
-numval_arg_from_c_args(PARROT_INTERP, ARGIN(va_list *args), SHIM(INTVAL param_index))
-{
- ASSERT_ARGS(numval_arg_from_c_args)
- return va_arg(*args, FLOATVAL);
-}
-
-PARROT_CANNOT_RETURN_NULL
-static STRING*
-string_arg_from_c_args(PARROT_INTERP, ARGIN(va_list *args), SHIM(INTVAL param_index))
-{
- ASSERT_ARGS(string_arg_from_c_args)
- return va_arg(*args, STRING*);
-}
-
-PARROT_CANNOT_RETURN_NULL
-static PMC*
-pmc_arg_from_c_args(PARROT_INTERP, ARGIN(va_list *args), SHIM(INTVAL param_index))
-{
- ASSERT_ARGS(pmc_arg_from_c_args)
- return va_arg(*args, PMC*);
-}
-
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static INTVAL*
-intval_param_from_c_args(PARROT_INTERP, ARGIN(va_list *args), SHIM(INTVAL param_index))
+intval_param_from_c_args(SHIM_INTERP, ARGIN(va_list *args), SHIM(INTVAL param_index))
{
ASSERT_ARGS(intval_param_from_c_args)
return va_arg(*args, INTVAL*);
}
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static FLOATVAL*
-numval_param_from_c_args(PARROT_INTERP, ARGIN(va_list *args), SHIM(INTVAL param_index))
+numval_param_from_c_args(SHIM_INTERP, ARGIN(va_list *args), SHIM(INTVAL param_index))
{
ASSERT_ARGS(numval_param_from_c_args)
return va_arg(*args, FLOATVAL*);
}
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static STRING**
-string_param_from_c_args(PARROT_INTERP, ARGIN(va_list *args), SHIM(INTVAL param_index))
+string_param_from_c_args(SHIM_INTERP, ARGIN(va_list *args), SHIM(INTVAL param_index))
{
ASSERT_ARGS(string_param_from_c_args)
return va_arg(*args, STRING**);
}
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static PMC**
-pmc_param_from_c_args(PARROT_INTERP, ARGIN(va_list *args), SHIM(INTVAL param_index))
+pmc_param_from_c_args(SHIM_INTERP, ARGIN(va_list *args), SHIM(INTVAL param_index))
{
ASSERT_ARGS(pmc_param_from_c_args)
return va_arg(*args, PMC**);
}
+PARROT_WARN_UNUSED_RESULT
static INTVAL
-intval_constant_from_varargs(PARROT_INTERP, ARGIN(void *data), INTVAL index)
+intval_constant_from_varargs(SHIM_INTERP, SHIM(void *data), SHIM(INTVAL index))
{
ASSERT_ARGS(intval_constant_from_varargs)
- UNUSED(index);
PARROT_FAILURE("Wrong call");
return 0;
}
+PARROT_WARN_UNUSED_RESULT
static FLOATVAL
-numval_constant_from_varargs(PARROT_INTERP, ARGIN(void *data), INTVAL index)
+numval_constant_from_varargs(SHIM_INTERP, SHIM(void *data), SHIM(INTVAL index))
{
ASSERT_ARGS(numval_constant_from_varargs)
- UNUSED(index);
PARROT_FAILURE("Wrong call");
return 0.0;
}
PARROT_CAN_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
static STRING*
-string_constant_from_varargs(PARROT_INTERP, ARGIN(void *data), INTVAL index)
+string_constant_from_varargs(SHIM_INTERP, SHIM(void *data), SHIM(INTVAL index))
{
ASSERT_ARGS(string_constant_from_varargs)
- UNUSED(index);
PARROT_FAILURE("Wrong call");
return NULL;
}
PARROT_CAN_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
static PMC*
-pmc_constant_from_varargs(PARROT_INTERP, ARGIN(void *data), INTVAL index)
+pmc_constant_from_varargs(SHIM_INTERP, SHIM(void *data), SHIM(INTVAL index))
{
ASSERT_ARGS(pmc_constant_from_varargs)
- UNUSED(index);
PARROT_FAILURE("Wrong call");
return PMCNULL;
}
@@ -1921,6 +1766,7 @@
*/
PARROT_CAN_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
static PMC*
clone_key_arg(PARROT_INTERP, ARGIN(PMC *key))
{
Modified: branches/avl_string_cache/src/call/context.c
==============================================================================
--- branches/avl_string_cache/src/call/context.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/call/context.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2009, Parrot Foundation.
+Copyright (C) 2009-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -79,10 +79,10 @@
ARGIN(const UINTVAL *number_regs_used))
__attribute__nonnull__(2);
-static void clear_regs(PARROT_INTERP, ARGMOD(PMC *pmcctx))
+static void clear_regs(PARROT_INTERP, ARGMOD(Parrot_Context *ctx))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
- FUNC_MODIFIES(*pmcctx);
+ FUNC_MODIFIES(*ctx);
PARROT_INLINE
PARROT_CANNOT_RETURN_NULL
@@ -111,7 +111,7 @@
PARROT_ASSERT_ARG(number_regs_used))
#define ASSERT_ARGS_clear_regs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(pmcctx))
+ , PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_get_context_struct_fast __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(ctx))
@@ -242,7 +242,7 @@
/*
-=item C<static void clear_regs(PARROT_INTERP, PMC *pmcctx)>
+=item C<static void clear_regs(PARROT_INTERP, Parrot_Context *ctx)>
Clears all registers in a context. PMC and STRING registers contain PMCNULL
and NULL, respectively. Integer and float registers contain negative flag
@@ -253,11 +253,10 @@
*/
static void
-clear_regs(PARROT_INTERP, ARGMOD(PMC *pmcctx))
+clear_regs(PARROT_INTERP, ARGMOD(Parrot_Context *ctx))
{
ASSERT_ARGS(clear_regs)
UINTVAL i;
- Parrot_Context *ctx = get_context_struct_fast(interp, pmcctx);
/* NULL out registers - P/S have to be NULL for GC
*
@@ -269,7 +268,7 @@
}
for (i = 0; i < ctx->n_regs_used[REGNO_STR]; i++) {
- ctx->bp_ps.regs_s[i] = NULL;
+ ctx->bp_ps.regs_s[i] = STRINGNULL;
}
if (Interp_debug_TEST(interp, PARROT_REG_DEBUG_FLAG)) {
@@ -350,7 +349,7 @@
}
/* other stuff is set inside Sub.invoke */
- clear_regs(interp, pmcctx);
+ clear_regs(interp, ctx);
}
@@ -488,7 +487,7 @@
/* ctx.bp_ps points to S0, which has Px on the left */
ctx->bp_ps.regs_s = (STRING **)((char *)ctx->registers + size_nip);
- clear_regs(interp, pmcctx);
+ clear_regs(interp, ctx);
}
Modified: branches/avl_string_cache/src/call/ops.c
==============================================================================
--- branches/avl_string_cache/src/call/ops.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/call/ops.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -22,6 +22,7 @@
#include "parrot/parrot.h"
#include "parrot/oplib/ops.h"
#include "pmc/pmc_continuation.h"
+#include "parrot/runcore_api.h"
/* HEADERIZER HFILE: include/parrot/call.h */
Modified: branches/avl_string_cache/src/call/pcc.c
==============================================================================
--- branches/avl_string_cache/src/call/pcc.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/call/pcc.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -53,9 +53,6 @@
/* HEADERIZER END: static */
-/* Make sure we don't conflict with any other MAX() macros defined elsewhere */
-#define PARROT_MAX(a, b) (((a)) > (b) ? (a) : (b))
-
/*
=item C<void Parrot_pcc_invoke_sub_from_c_args(PARROT_INTERP, PMC *sub_obj,
@@ -78,9 +75,10 @@
PMC *call_obj;
va_list args;
const char *arg_sig, *ret_sig;
- PMC *old_call_obj = Parrot_pcc_get_signature(interp, CURRENT_CONTEXT(interp));
+ PMC * const old_call_obj =
+ Parrot_pcc_get_signature(interp, CURRENT_CONTEXT(interp));
- Parrot_pcc_split_signature_string(interp, sig, &arg_sig, &ret_sig);
+ Parrot_pcc_split_signature_string(sig, &arg_sig, &ret_sig);
va_start(args, sig);
call_obj = Parrot_pcc_build_call_from_varargs(interp, PMCNULL,
@@ -228,9 +226,10 @@
PMC *sub_obj;
va_list args;
const char *arg_sig, *ret_sig;
- PMC *old_call_obj = Parrot_pcc_get_signature(interp, CURRENT_CONTEXT(interp));
+ PMC * const old_call_obj =
+ Parrot_pcc_get_signature(interp, CURRENT_CONTEXT(interp));
- Parrot_pcc_split_signature_string(interp, signature, &arg_sig, &ret_sig);
+ Parrot_pcc_split_signature_string(signature, &arg_sig, &ret_sig);
va_start(args, signature);
call_obj = Parrot_pcc_build_call_from_varargs(interp, PMCNULL, arg_sig, &args);
@@ -341,7 +340,7 @@
opcode_t *dest;
UINTVAL n_regs_used[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
PMC *ctx = Parrot_push_context(interp, n_regs_used);
- PMC * const ret_cont = new_ret_continuation_pmc(interp, NULL);
+ PMC * const ret_cont = pmc_new(interp, enum_class_Continuation);
Parrot_pcc_set_signature(interp, ctx, call_object);
Parrot_pcc_set_continuation(interp, ctx, ret_cont);
Modified: branches/avl_string_cache/src/debug.c
==============================================================================
--- branches/avl_string_cache/src/debug.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/debug.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1314,8 +1314,9 @@
cond_argleft = condition_regtype(command);
/* get the register number */
- auxcmd = ++command;
- get_uint(&command, 0);
+ auxcmd = ++command;
+ reg_number = get_uint(&command, 0);
+
if (auxcmd == command) {
Parrot_io_eprintf(interp->pdb->debugger, "Invalid register\n");
return NULL;
@@ -2198,7 +2199,14 @@
*(fill++) = '"';
break;
default:
- *(fill++) = *string;
+ /* Hide non-ascii chars that may come from utf8 or latin-1
+ * strings in constant strings.
+ * Workaround for TT #1557
+ */
+ if ((unsigned char)*string > 127)
+ *(fill++) = '?';
+ else
+ *(fill++) = *string;
break;
}
}
Modified: branches/avl_string_cache/src/dynext.c
==============================================================================
--- branches/avl_string_cache/src/dynext.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/dynext.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -294,7 +294,7 @@
for (i = 0; i < n; ++i) {
ext = VTABLE_get_string_keyed_int(interp, share_ext, i);
- full_name = Parrot_str_concat(interp, wo_ext, ext, 0);
+ full_name = Parrot_str_concat(interp, wo_ext, ext);
path = Parrot_locate_runtime_file_str(interp, full_name,
PARROT_RUNTIME_FT_DYNEXT);
if (path) {
@@ -341,7 +341,7 @@
if (!STRING_IS_EMPTY(lib) && memcmp(lib->strstart, "lib", 3) == 0) {
*handle = Parrot_dlopen((char *)lib->strstart + 3, 0);
if (*handle) {
- path = Parrot_str_substr(interp, lib, 3, lib->strlen - 3, NULL, 0);
+ path = Parrot_str_substr(interp, lib, 3, lib->strlen - 3);
return path;
}
}
@@ -350,8 +350,8 @@
/* And on cygwin replace a leading "lib" by "cyg". */
#ifdef __CYGWIN__
if (!STRING_IS_EMPTY(lib) && memcmp(lib->strstart, "lib", 3) == 0) {
- path = Parrot_str_append(interp, CONST_STRING(interp, "cyg"),
- Parrot_str_substr(interp, lib, 3, lib->strlen - 3, NULL, 0));
+ path = Parrot_str_concat(interp, CONST_STRING(interp, "cyg"),
+ Parrot_str_substr(interp, lib, 3, lib->strlen - 3));
*handle = dlopen_string(interp, flags, path);
Deleted: branches/avl_string_cache/src/dynpmc/gdbmhash.pmc
==============================================================================
--- branches/avl_string_cache/src/dynpmc/gdbmhash.pmc Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,442 +0,0 @@
-/* gdbmhash.pmc
- * Copyright (C) 2005-2010, Parrot Foundation.
- * SVN Info
- * $Id$
- * Overview:
- * These are the vtable functions for the GDBMHash PMC
- * Data Structure and Algorithms:
- * History:
- * Notes:
- * Please remove unneeded entries.
- * References:
-
-=head1 NAME
-
-src/dynpmc/gdbmhash.pmc - GDBM PMC
-
-=head1 DESCRIPTION
-
-This is an interface to the GNU dbm library.
-
-=head1 keys
-
-On inserted and fetch, keys are converted to STRINGs.
-
-=head2 store
-
-PMC insert values are converted to STRINGs.
-
-=head2 fetch
-
-C<get_integer_keyed()> and C<get_number_keyed()> probably don't make
-any sense, as integers usually can't be converted.
-
-When a PMC is requested, a String PMC is returned.
-
-
-=head2 Functions
-
-=over 4
-
-=cut
-
- */
-
-#include <gdbm.h>
-#include "parrot/extend.h"
-
-typedef struct GDBM_FH {
- GDBM_FILE f;
-} GDBM_FH;
-
-#define PMC_dbfh(x) ((Parrot_GDBMHash_attributes *)PMC_data(x))->db_handle->f
-
-
-/*
-
-=item C<static STRING* make_hash_key(PARROT_INTERP, PMC *key)>
-
-Returns a Parrot string for C<*key>.
-
-=cut
-
-*/
-
-static STRING* make_hash_key(PARROT_INTERP, ARGIN(PMC * key))
-{
- if (key)
- return VTABLE_get_string(interp, key);
-
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "Hash: Cannot use NULL key");
-}
-
-
-pmclass GDBMHash provides hash dynpmc lib gdbm auto_attrs {
- ATTR struct GDBM_FH *db_handle;
-
-/*
-
-=item C<void class_init()>
-
-Class initialization. GDBMHash is a dynamic PMC, meaning that a dynamically
-loadable module is created. On Unix-like systems this is a shared library.
-When it is available, the shared library has linked in the library 'gdbm'.
-
-On WIN32 the relevant library seems to be called 'gdbm3'.
-So we do a bit of cheating here, and load it during class initialization.
-
-=cut
-
-*/
-
- VTABLE void class_init() {
-#ifdef WIN32
- /* TT #1252: What if libgdbm.so cannot be loaded */
- /* Parrot_load_lib(interp, slib, NULL); */
- STRING *slib = CONST_STRING(interp, "gdbm3");
-#endif
- }
-
- VTABLE void init() {
- Parrot_GDBMHash_attributes *attrs = PARROT_GDBMHASH(SELF);
- attrs->db_handle = mem_gc_allocate_zeroed_typed(INTERP, GDBM_FH);
- PObj_custom_destroy_SET(SELF);
- }
-
- VTABLE void destroy() {
- Parrot_GDBMHash_attributes *attrs = PARROT_GDBMHASH(SELF);
- mem_gc_free(INTERP, attrs->db_handle);
- PMC_data(SELF) = NULL;
- }
-
- VTABLE void* get_pointer() {
- return PMC_dbfh(SELF);
- }
-
- VTABLE void set_pointer(void* p) {
- PMC_dbfh(SELF) = (GDBM_FILE)p;
- }
-
-/*
-
-=item C<VOID set_string_native(STRING* value)>
-
-Open a or create a new dbm file.
-
-=cut
-
-*/
-
- VTABLE void set_string_native(STRING* value) {
- char * const c_db_name = Parrot_str_to_cstring(interp, value);
- GDBM_FILE dbf = gdbm_open(c_db_name, 0, GDBM_NEWDB, 0666, 0);
-
- Parrot_str_free_cstring(c_db_name);
-
- PMC_dbfh(SELF) = dbf;
- }
-
-/*
-
-=item C<INTVAL get_integer()>
-
-Returns the number of pairs in the hash.
-A uninitialized GDBMHash returns 0.
-
-=cut
-
-*/
-
- VTABLE INTVAL get_integer() {
- GDBM_FILE dbf = PMC_dbfh(SELF);
- if (! dbf) {
- return 0;
- }
- else {
- INTVAL cnt = 0;
- datum key, nextkey;
- for (key = gdbm_firstkey(dbf); key.dptr; key = nextkey) {
- cnt++;
- nextkey = gdbm_nextkey(dbf, key);
- free(key.dptr);
- }
-
- return cnt;
- }
- }
-
-/*
-
-=item C<INTVAL get_bool()>
-
-Returns true if the hash size is not zero.
-
-=cut
-
-*/
-
- VTABLE INTVAL get_bool() {
- GDBM_FILE dbf = PMC_dbfh(SELF);
- if (! dbf) {
- return 0;
- }
- else {
- datum key = gdbm_firstkey(dbf);
- if (key.dptr) {
- return 1;
- }
- else {
- return 0;
- }
- }
- }
-
-/*
-
-=item C<void set_string_keyed(PMC *key, STRING *value)>
-
-=cut
-
-*/
-
- VTABLE void set_string_keyed(PMC* key, STRING* value) {
- STRING* keystr;
- GDBM_FILE dbf = PMC_dbfh(SELF);
- datum key_gdbm, val_gdbm;
-
- if (!key) return;
- if (!dbf) return;
- keystr = make_hash_key(interp, key);
-
- key_gdbm.dptr = Parrot_str_to_cstring(interp, keystr);
- key_gdbm.dsize = strlen(key_gdbm.dptr);
- val_gdbm.dptr = Parrot_str_to_cstring(interp, value);
- val_gdbm.dsize = strlen(val_gdbm.dptr);
-
- gdbm_store(dbf, key_gdbm, val_gdbm, GDBM_REPLACE);
-
- Parrot_str_free_cstring(key_gdbm.dptr);
- Parrot_str_free_cstring(val_gdbm.dptr);
-
- return;
- }
-
-/*
-
-=item C<STRING *get_string_keyed(PMC *key)>
-
-Returns the string value for the element at C<*key>.
-
-=cut
-
-*/
-
- VTABLE STRING* get_string_keyed(PMC *key) {
- STRING *keystr, *val;
- GDBM_FILE dbf = PMC_dbfh(SELF);
- datum key_gdbm, val_gdbm;
-
- if (!key)
- return string_from_literal(INTERP, "");
-
- if (!dbf)
- return string_from_literal(INTERP, "");
-
- keystr = make_hash_key(interp, key);
-
- key_gdbm.dptr = Parrot_str_to_cstring(interp, keystr);
- key_gdbm.dsize = strlen(key_gdbm.dptr);
- val_gdbm = gdbm_fetch(dbf, key_gdbm);
-
- val = Parrot_str_new(interp, val_gdbm.dptr, val_gdbm.dsize);
- Parrot_str_free_cstring(key_gdbm.dptr);
- free(val_gdbm.dptr);
-
- return val;
- }
-
-
-/*
-
-=item C<void set_pmc_keyed(PMC* key, PMC *value)>
-
-Convert C<value> to a string and set the string for the C<key>.
-
-=cut
-
-*/
-
- VTABLE void set_pmc_keyed(PMC* key, PMC* value) {
- STRING * const temp = VTABLE_get_string(interp, value);
-
- SELF.set_string_keyed(key, temp);
- }
-
-/*
-
-=item C<PMC *get_pmc_keyed(PMC *key)>
-
-Returns the PMC value for the element at C<*key>.
-
-=cut
-
-*/
-
- VTABLE PMC* get_pmc_keyed(PMC* key) {
- STRING * const ret_string = SELF.get_string_keyed(key);
- PMC * const ret_pmc = Parrot_pmc_new(interp, enum_class_String);
-
- VTABLE_set_string_native(interp, ret_pmc, ret_string);
-
- return ret_pmc;
- }
-
-/*
-
-=item C<void set_integer_keyed(PMC* key, INTVAL value)>
-
-Convert C<value> to a string and set the string for the C<key>.
-
-=cut
-
-*/
-
- VTABLE void set_integer_keyed(PMC* key, INTVAL value) {
- PMC * const temp = Parrot_pmc_new(interp, enum_class_String);
-
- VTABLE_set_integer_native(interp, temp, value);
- SELF.set_pmc_keyed(key, temp);
- }
-
-
-/*
-
-=item C<void set_number_keyed(PMC* key, FLOATVAL value)>
-
-Convert C<value> to a string and set the string for the C<key>.
-
-=cut
-
-*/
-
- VTABLE void set_number_keyed(PMC* key, FLOATVAL value) {
- PMC * const temp = Parrot_pmc_new(interp, enum_class_String);
-
- VTABLE_set_number_native(interp, temp, value);
- SELF.set_pmc_keyed(key, temp);
- }
-
-/*
-
-=item C<INTVAL exists_keyed(PMC *key)>
-
-Returns whether a key C<*key> exists in the hash.
-
-=cut
-
-*/
-
- VTABLE INTVAL exists_keyed(PMC* key) {
- STRING* keystr;
- GDBM_FILE dbf = PMC_dbfh(SELF);
- datum key_gdbm;
- INTVAL ret;
-
- if (!key) return 0;
- if (!dbf) return 0;
- keystr = make_hash_key(interp, key);
-
- key_gdbm.dptr = Parrot_str_to_cstring(interp, keystr);
- key_gdbm.dsize = strlen(key_gdbm.dptr);
-
- ret = gdbm_exists(dbf, key_gdbm);
- Parrot_str_free_cstring(key_gdbm.dptr);
-
- return ret;
- }
-
-/*
-
-=item C<void delete_keyed(PMC *key)>
-
-Deletes the element associated with C<*key>.
-
-=cut
-
-*/
-
- VTABLE void delete_keyed(PMC* key) {
- STRING* keystr;
- GDBM_FILE dbf = PMC_dbfh(SELF);
- datum key_gdbm;
-
- if (!key) return;
- if (!dbf) return;
- keystr = make_hash_key(interp, key);
-
- key_gdbm.dptr = Parrot_str_to_cstring(interp, keystr);
- key_gdbm.dsize = strlen(key_gdbm.dptr);
-
- if (gdbm_exists(dbf, key_gdbm)) {
- gdbm_delete(dbf, key_gdbm);
- }
-
- Parrot_str_free_cstring(key_gdbm.dptr);
-
- return;
- }
-
-/*
-
-=back
-
-=head2 Specific Methods
-
-=over 4
-
-=item C<void open(STRING* value)>
-
-Open a or create a new dbm file.
-
-=cut
-
-*/
-
- METHOD void open(STRING* value) {
- VTABLE_set_string_native(interp, SELF, value);
- }
-
-/*
-
-=item C<void close()>
-
-Close current dbm file.
-
-=cut
-
-*/
-
- METHOD void close() {
- gdbm_close(PMC_dbfh(SELF));
- }
-}
-
-/*
-
-=back
-
-=head1 SEE ALSO
-
-F<docs/pdds/pdd08_keys.pod>, L<http://gdbm.gnu.org>
-
-=cut
-
-*/
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Modified: branches/avl_string_cache/src/embed.c
==============================================================================
--- branches/avl_string_cache/src/embed.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/embed.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -44,7 +44,7 @@
__attribute__nonnull__(1);
PARROT_CANNOT_RETURN_NULL
-static PMC* setup_argv(PARROT_INTERP, int argc, ARGIN(char **argv))
+static PMC* setup_argv(PARROT_INTERP, int argc, ARGIN(const char **argv))
__attribute__nonnull__(1)
__attribute__nonnull__(3);
@@ -618,7 +618,7 @@
/*
-=item C<static PMC* setup_argv(PARROT_INTERP, int argc, char **argv)>
+=item C<static PMC* setup_argv(PARROT_INTERP, int argc, const char **argv)>
Creates and returns C<ARGS> array PMC.
@@ -628,7 +628,7 @@
PARROT_CANNOT_RETURN_NULL
static PMC*
-setup_argv(PARROT_INTERP, int argc, ARGIN(char **argv))
+setup_argv(PARROT_INTERP, int argc, ARGIN(const char **argv))
{
ASSERT_ARGS(setup_argv)
PMC * const userargv = Parrot_pmc_new(interp, enum_class_ResizableStringArray);
@@ -748,7 +748,7 @@
/*
-=item C<void Parrot_runcode(PARROT_INTERP, int argc, char **argv)>
+=item C<void Parrot_runcode(PARROT_INTERP, int argc, const char **argv)>
Sets up C<ARGV> and runs the ops.
@@ -758,7 +758,7 @@
PARROT_EXPORT
void
-Parrot_runcode(PARROT_INTERP, int argc, ARGIN(char **argv))
+Parrot_runcode(PARROT_INTERP, int argc, ARGIN(const char **argv))
{
PMC *userargv, *main_sub;
Modified: branches/avl_string_cache/src/exceptions.c
==============================================================================
--- branches/avl_string_cache/src/exceptions.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/exceptions.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -89,6 +89,7 @@
*/
PARROT_DOES_NOT_RETURN
+PARROT_COLD
void
die_from_exception(PARROT_INTERP, ARGIN(PMC *exception))
{
@@ -326,6 +327,7 @@
PARROT_EXPORT
PARROT_DOES_NOT_RETURN
+PARROT_COLD
void
Parrot_ex_throw_from_c(PARROT_INTERP, ARGIN(PMC *exception))
{
@@ -423,6 +425,7 @@
PARROT_EXPORT
PARROT_DOES_NOT_RETURN
+PARROT_COLD
void
Parrot_ex_throw_from_c_args(PARROT_INTERP, SHIM(void *ret_addr),
int exitcode, ARGIN(const char *format), ...)
@@ -476,6 +479,7 @@
PARROT_EXPORT
PARROT_DOES_NOT_RETURN
+PARROT_COLD
void
Parrot_ex_rethrow_from_c(PARROT_INTERP, ARGIN(PMC *exception))
{
@@ -511,8 +515,8 @@
=over 4
-=item C<PARROT_DOES_NOT_RETURN_WHEN_FALSE void Parrot_assert(INTVAL condition,
-const char *condition_string, const char *file, unsigned int line)>
+=item C<void Parrot_assert(INTVAL condition, const char *condition_string, const
+char *file, unsigned int line)>
A better version of assert() that gives a backtrace.
@@ -544,6 +548,7 @@
PARROT_EXPORT
PARROT_DOES_NOT_RETURN
+PARROT_COLD
void
Parrot_confess(ARGIN(const char *cond), ARGIN(const char *file), unsigned int line)
{
@@ -637,6 +642,7 @@
PARROT_EXPORT
PARROT_DOES_NOT_RETURN
+PARROT_COLD
void
exit_fatal(int exitcode, ARGIN(const char *format), ...)
{
@@ -675,6 +681,7 @@
*/
PARROT_DOES_NOT_RETURN
+PARROT_COLD
void
do_panic(NULLOK_INTERP, ARGIN_NULLOK(const char *message),
ARGIN_NULLOK(const char *file), unsigned int line)
Modified: branches/avl_string_cache/src/exit.c
==============================================================================
--- branches/avl_string_cache/src/exit.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/exit.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -62,6 +62,7 @@
PARROT_EXPORT
PARROT_DOES_NOT_RETURN
+PARROT_COLD
void
Parrot_exit(PARROT_INTERP, int status)
{
@@ -103,10 +104,6 @@
F<include/parrot/exit.h> and F<t/src/exit.t>.
-=head1 HISTORY
-
-Initial version by Josh Wilmes.
-
=cut
*/
Modified: branches/avl_string_cache/src/extend.c
==============================================================================
--- branches/avl_string_cache/src/extend.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/extend.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -417,10 +417,10 @@
PARROT_EXPORT
PARROT_MALLOC
-PARROT_CAN_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
char *
-Parrot_PMC_get_cstring_intkey(PARROT_INTERP,
- Parrot_PMC pmc, Parrot_Int key)
+Parrot_PMC_get_cstring_intkey(PARROT_INTERP, Parrot_PMC pmc, Parrot_Int key)
{
ASSERT_ARGS(Parrot_PMC_get_cstring_intkey)
STRING *intermediate;
@@ -448,7 +448,8 @@
PARROT_EXPORT
PARROT_MALLOC
-PARROT_CAN_RETURN_NULL
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
char *
Parrot_PMC_get_cstring(PARROT_INTERP, Parrot_PMC pmc)
{
@@ -482,10 +483,10 @@
PARROT_EXPORT
PARROT_MALLOC
-PARROT_CAN_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
char *
-Parrot_PMC_get_cstringn(PARROT_INTERP, ARGIN(Parrot_PMC pmc),
- ARGOUT(Parrot_Int *length))
+Parrot_PMC_get_cstringn(PARROT_INTERP, ARGIN(Parrot_PMC pmc), ARGOUT(Parrot_Int *length))
{
ASSERT_ARGS(Parrot_PMC_get_cstringn)
char *retval;
@@ -516,7 +517,8 @@
PARROT_EXPORT
PARROT_MALLOC
-PARROT_CAN_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
char *
Parrot_PMC_get_cstringn_intkey(PARROT_INTERP, ARGIN(Parrot_PMC pmc),
ARGOUT(Parrot_Int *length), Parrot_Int key)
@@ -832,8 +834,7 @@
PARROT_EXPORT
void
-Parrot_PMC_push_intval(PARROT_INTERP,
- Parrot_PMC pmc, Parrot_Int value)
+Parrot_PMC_push_intval(PARROT_INTERP, Parrot_PMC pmc, Parrot_Int value)
{
ASSERT_ARGS(Parrot_PMC_push_intval)
PARROT_CALLIN_START(interp);
@@ -1003,7 +1004,7 @@
PARROT_EXPORT
void
-Parrot_free_cstring(ARGIN_NULLOK(char *string))
+Parrot_free_cstring(ARGFREE(char *string))
{
ASSERT_ARGS(Parrot_free_cstring)
Parrot_str_free_cstring(string);
@@ -1050,9 +1051,9 @@
PMC *call_obj;
const char *arg_sig, *ret_sig;
- PMC *old_call_obj = Parrot_pcc_get_signature(interp,
+ PMC * const old_call_obj = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));
- Parrot_pcc_split_signature_string(interp, signature, &arg_sig, &ret_sig);
+ Parrot_pcc_split_signature_string(signature, &arg_sig, &ret_sig);
va_start(args, signature);
call_obj = Parrot_pcc_build_call_from_varargs(interp, PMCNULL,
Modified: branches/avl_string_cache/src/gc/alloc_resources.c
==============================================================================
--- branches/avl_string_cache/src/gc/alloc_resources.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/gc/alloc_resources.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -39,15 +39,14 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-static void alloc_new_block(PARROT_INTERP,
- ARGMOD(Memory_Pools *mem_pools),
+static void alloc_new_block(
+ ARGMOD(Memory_Pools *mem_pools),
size_t size,
ARGMOD(Variable_Size_Pool *pool),
ARGIN(const char *why))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
__attribute__nonnull__(4)
- __attribute__nonnull__(5)
FUNC_MODIFIES(*mem_pools)
FUNC_MODIFIES(*pool);
@@ -60,10 +59,8 @@
static void check_fixed_size_obj_pool(ARGIN(const Fixed_Size_Pool *pool))
__attribute__nonnull__(1);
-static void check_memory_system(PARROT_INTERP,
- ARGIN(const Memory_Pools *mem_pools))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
+static void check_memory_system(ARGIN(const Memory_Pools *mem_pools))
+ __attribute__nonnull__(1);
static void check_var_size_obj_pool(ARGIN(const Variable_Size_Pool *pool))
__attribute__nonnull__(1);
@@ -80,15 +77,14 @@
FUNC_MODIFIES(*dest_interp);
static void free_memory_pool(ARGFREE(Variable_Size_Pool *pool));
-static void free_old_mem_blocks(PARROT_INTERP,
- ARGMOD(Memory_Pools *mem_pools),
+static void free_old_mem_blocks(
+ ARGMOD(Memory_Pools *mem_pools),
ARGMOD(Variable_Size_Pool *pool),
ARGMOD(Memory_Block *new_block),
UINTVAL total_size)
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
- __attribute__nonnull__(4)
FUNC_MODIFIES(*mem_pools)
FUNC_MODIFIES(*pool)
FUNC_MODIFIES(*new_block);
@@ -113,9 +109,8 @@
ARGIN_NULLOK(compact_f compact));
PARROT_CANNOT_RETURN_NULL
-static UINTVAL pad_pool_size(PARROT_INTERP, ARGIN(Variable_Size_Pool *pool))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
+static UINTVAL pad_pool_size(ARGIN(const Variable_Size_Pool *pool))
+ __attribute__nonnull__(1);
static void Parrot_gc_merge_buffer_pools(PARROT_INTERP,
ARGMOD(Memory_Pools *mem_pools),
@@ -149,8 +144,7 @@
FUNC_MODIFIES(*pool);
#define ASSERT_ARGS_alloc_new_block __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(mem_pools) \
+ PARROT_ASSERT_ARG(mem_pools) \
, PARROT_ASSERT_ARG(pool) \
, PARROT_ASSERT_ARG(why))
#define ASSERT_ARGS_buffer_location __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -159,8 +153,7 @@
#define ASSERT_ARGS_check_fixed_size_obj_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(pool))
#define ASSERT_ARGS_check_memory_system __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(mem_pools))
+ PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_check_var_size_obj_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(pool))
#define ASSERT_ARGS_debug_print_buf __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -171,8 +164,7 @@
, PARROT_ASSERT_ARG(pool))
#define ASSERT_ARGS_free_memory_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_free_old_mem_blocks __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(mem_pools) \
+ PARROT_ASSERT_ARG(mem_pools) \
, PARROT_ASSERT_ARG(pool) \
, PARROT_ASSERT_ARG(new_block))
#define ASSERT_ARGS_free_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
@@ -182,8 +174,7 @@
, PARROT_ASSERT_ARG(new_pool_ptr))
#define ASSERT_ARGS_new_memory_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_pad_pool_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(pool))
+ PARROT_ASSERT_ARG(pool))
#define ASSERT_ARGS_Parrot_gc_merge_buffer_pools __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(mem_pools) \
@@ -202,8 +193,8 @@
/*
-=item C<static void alloc_new_block(PARROT_INTERP, Memory_Pools *mem_pools,
-size_t size, Variable_Size_Pool *pool, const char *why)>
+=item C<static void alloc_new_block( Memory_Pools *mem_pools, size_t size,
+Variable_Size_Pool *pool, const char *why)>
Allocate a new memory block. We allocate either the requested size or the
default size, whichever is larger. Add the new block to the given memory
@@ -214,7 +205,7 @@
*/
static void
-alloc_new_block(PARROT_INTERP,
+alloc_new_block(
ARGMOD(Memory_Pools *mem_pools),
size_t size,
ARGMOD(Variable_Size_Pool *pool),
@@ -348,7 +339,7 @@
* Mark the block as big block (it has just one item)
* And don't set big blocks as the top_block.
*/
- alloc_new_block(interp, mem_pools, size, pool, "compact failed");
+ alloc_new_block(mem_pools, size, pool, "compact failed");
mem_pools->mem_allocs_since_last_collect++;
@@ -465,8 +456,8 @@
mem_pools->gc_collect_runs++;
/* Snag a block big enough for everything */
- total_size = pad_pool_size(interp, pool);
- alloc_new_block(interp, mem_pools, total_size, pool, "inside compact");
+ total_size = pad_pool_size(pool);
+ alloc_new_block(mem_pools, total_size, pool, "inside compact");
new_block = pool->top_block;
@@ -508,14 +499,14 @@
new_block->free = new_block->size - (cur_spot - new_block->start);
mem_pools->memory_collected += (cur_spot - new_block->start);
- free_old_mem_blocks(interp, mem_pools, pool, new_block, total_size);
+ free_old_mem_blocks(mem_pools, pool, new_block, total_size);
--mem_pools->gc_sweep_block_level;
}
/*
-=item C<static UINTVAL pad_pool_size(PARROT_INTERP, Variable_Size_Pool *pool)>
+=item C<static UINTVAL pad_pool_size(const Variable_Size_Pool *pool)>
Calculate the size of the new pool. The currently used size equals the total
size minus the reclaimable size. Add a minimum block to the current amount, so
@@ -542,11 +533,10 @@
PARROT_CANNOT_RETURN_NULL
static UINTVAL
-pad_pool_size(PARROT_INTERP,
- ARGIN(Variable_Size_Pool *pool))
+pad_pool_size(ARGIN(const Variable_Size_Pool *pool))
{
ASSERT_ARGS(pad_pool_size)
- Memory_Block *cur_block = pool->top_block;
+ const Memory_Block *cur_block = pool->top_block;
UINTVAL total_size = 0;
@@ -597,6 +587,8 @@
#if RESOURCE_DEBUG
if (Buffer_buflen(old_buf) >= RESOURCE_DEBUG_SIZE)
debug_print_buf(interp, old_buf);
+#else
+ UNUSED(interp);
#endif
/* we can't perform the math all the time, because
@@ -677,7 +669,7 @@
/*
-=item C<static void free_old_mem_blocks(PARROT_INTERP, Memory_Pools *mem_pools,
+=item C<static void free_old_mem_blocks( Memory_Pools *mem_pools,
Variable_Size_Pool *pool, Memory_Block *new_block, UINTVAL total_size)>
The compact_pool operation collects disjointed blocks of memory allocated on a
@@ -693,7 +685,7 @@
*/
static void
-free_old_mem_blocks(PARROT_INTERP,
+free_old_mem_blocks(
ARGMOD(Memory_Pools *mem_pools),
ARGMOD(Variable_Size_Pool *pool),
ARGMOD(Memory_Block *new_block),
@@ -743,21 +735,9 @@
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
char *
-aligned_mem(ARGIN(const Buffer *buffer), ARGIN(char *mem))
+aligned_mem(SHIM(const Buffer *buffer), ARGIN(char *mem))
{
ASSERT_ARGS(aligned_mem)
-#if 0
- This code causing assert in compact_pool. Looks like STRINGs have
- aligned flag set, but allocated less memory.
- See C<aligned_string_size>.
- if (PObj_is_COWable_TEST(buffer))
- mem += sizeof (void*);
- if (PObj_aligned_TEST(buffer))
- mem = (char*)(((unsigned long)(mem + BUFFER_ALIGN_1)) &
- BUFFER_ALIGN_MASK);
- else
- mem = (char*)(((unsigned long)(mem + WORD_ALIGN_1)) & WORD_ALIGN_MASK);
-#endif
mem += sizeof (void *);
mem = (char *)(((unsigned long)(mem + WORD_ALIGN_1)) & WORD_ALIGN_MASK);
@@ -839,16 +819,16 @@
*/
void
-initialize_var_size_pools(PARROT_INTERP, ARGMOD(Memory_Pools *mem_pools))
+initialize_var_size_pools(SHIM_INTERP, ARGMOD(Memory_Pools *mem_pools))
{
ASSERT_ARGS(initialize_var_size_pools)
mem_pools->memory_pool = new_memory_pool(POOL_SIZE, &compact_pool);
- alloc_new_block(interp, mem_pools, POOL_SIZE, mem_pools->memory_pool, "init");
+ alloc_new_block(mem_pools, POOL_SIZE, mem_pools->memory_pool, "init");
/* Constant strings - not compacted */
mem_pools->constant_string_pool = new_memory_pool(POOL_SIZE, NULL);
- alloc_new_block(interp, mem_pools, POOL_SIZE, mem_pools->constant_string_pool, "init");
+ alloc_new_block(mem_pools, POOL_SIZE, mem_pools->constant_string_pool, "init");
}
@@ -898,8 +878,7 @@
/*
-=item C<static void check_memory_system(PARROT_INTERP, const Memory_Pools
-*mem_pools)>
+=item C<static void check_memory_system(const Memory_Pools *mem_pools)>
Checks the memory system of parrot on any corruptions, including
the string system.
@@ -909,7 +888,7 @@
*/
static void
-check_memory_system(PARROT_INTERP, ARGIN(const Memory_Pools *mem_pools))
+check_memory_system(ARGIN(const Memory_Pools *mem_pools))
{
ASSERT_ARGS(check_memory_system)
size_t i;
@@ -1282,8 +1261,7 @@
*/
void
-Parrot_gc_destroy_memory_pools(PARROT_INTERP,
- ARGMOD(Memory_Pools *mem_pools))
+Parrot_gc_destroy_memory_pools(SHIM_INTERP, ARGMOD(Memory_Pools *mem_pools))
{
ASSERT_ARGS(Parrot_gc_destroy_memory_pools)
Modified: branches/avl_string_cache/src/gc/api.c
==============================================================================
--- branches/avl_string_cache/src/gc/api.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/gc/api.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -205,7 +205,7 @@
PARROT_EXPORT
void
-Parrot_gc_mark_STRING_alive_fun(PARROT_INTERP, ARGMOD_NULLOK(STRING *obj))
+Parrot_gc_mark_STRING_alive_fun(SHIM_INTERP, ARGMOD_NULLOK(STRING *obj))
{
ASSERT_ARGS(Parrot_gc_mark_STRING_alive_fun)
if (!STRING_IS_NULL(obj)) {
Modified: branches/avl_string_cache/src/gc/gc_inf.c
==============================================================================
--- branches/avl_string_cache/src/gc/gc_inf.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/gc/gc_inf.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -42,21 +42,19 @@
PARROT_DOES_NOT_RETURN
static void failed_allocation(unsigned int line, unsigned long size);
-static void gc_inf_allocate_buffer_storage(PARROT_INTERP,
+static void gc_inf_allocate_buffer_storage(SHIM_INTERP,
ARGMOD(Buffer *buffer),
size_t size)
- __attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*buffer);
+PARROT_MALLOC
PARROT_CAN_RETURN_NULL
-static Buffer* gc_inf_allocate_bufferlike_header(PARROT_INTERP,
- SHIM(size_t size))
- __attribute__nonnull__(1);
+static Buffer* gc_inf_allocate_bufferlike_header(SHIM_INTERP,
+ SHIM(size_t size));
PARROT_CAN_RETURN_NULL
-static void* gc_inf_allocate_fixed_size_storage(PARROT_INTERP, size_t size)
- __attribute__nonnull__(1);
+static void* gc_inf_allocate_fixed_size_storage(SHIM_INTERP, size_t size);
PARROT_MALLOC
PARROT_CANNOT_RETURN_NULL
@@ -66,64 +64,50 @@
PARROT_CANNOT_RETURN_NULL
static void * gc_inf_allocate_memory_chunk_zeroed(SHIM_INTERP, size_t size);
+PARROT_MALLOC
PARROT_CAN_RETURN_NULL
-static void* gc_inf_allocate_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
- __attribute__nonnull__(1)
+static void* gc_inf_allocate_pmc_attributes(SHIM_INTERP, ARGMOD(PMC *pmc))
__attribute__nonnull__(2)
FUNC_MODIFIES(*pmc);
+PARROT_MALLOC
PARROT_CAN_RETURN_NULL
-static PMC* gc_inf_allocate_pmc_header(PARROT_INTERP, SHIM(UINTVAL flags))
- __attribute__nonnull__(1);
+static PMC* gc_inf_allocate_pmc_header(SHIM_INTERP, SHIM(UINTVAL flags));
+PARROT_MALLOC
PARROT_CAN_RETURN_NULL
-static STRING* gc_inf_allocate_string_header(PARROT_INTERP,
- SHIM(UINTVAL flags))
- __attribute__nonnull__(1);
+static STRING* gc_inf_allocate_string_header(SHIM_INTERP,
+ SHIM(UINTVAL flags));
-static void gc_inf_allocate_string_storage(PARROT_INTERP,
+static void gc_inf_allocate_string_storage(SHIM_INTERP,
ARGMOD(STRING *str),
size_t size)
- __attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*str);
-static void gc_inf_compact_memory_pool(PARROT_INTERP)
- __attribute__nonnull__(1);
+static void gc_inf_compact_memory_pool(SHIM_INTERP);
+static void gc_inf_free_bufferlike_header(SHIM_INTERP,
+ ARGFREE(Buffer *b),
+ SHIM(size_t size));
-static void gc_inf_free_bufferlike_header(PARROT_INTERP,
- ARGIN_NULLOK(Buffer *b),
- SHIM(size_t size))
- __attribute__nonnull__(1);
-
-static void gc_inf_free_fixed_size_storage(PARROT_INTERP,
+static void gc_inf_free_fixed_size_storage(SHIM_INTERP,
SHIM(size_t size),
ARGMOD(void *data))
- __attribute__nonnull__(1)
__attribute__nonnull__(3)
FUNC_MODIFIES(*data);
static void gc_inf_free_memory_chunk(SHIM_INTERP, ARGFREE(void *data));
-static void gc_inf_free_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
- __attribute__nonnull__(1)
+static void gc_inf_free_pmc_attributes(SHIM_INTERP, ARGMOD(PMC *pmc))
__attribute__nonnull__(2)
FUNC_MODIFIES(*pmc);
-static void gc_inf_free_pmc_header(PARROT_INTERP, ARGIN_NULLOK(PMC *pmc))
- __attribute__nonnull__(1);
-
-static void gc_inf_free_string_header(PARROT_INTERP,
- ARGIN_NULLOK(STRING *s))
- __attribute__nonnull__(1);
-
-static size_t gc_inf_get_gc_info(PARROT_INTERP, SHIM(Interpinfo_enum what))
- __attribute__nonnull__(1);
-
+static void gc_inf_free_pmc_header(SHIM_INTERP, ARGFREE(PMC *pmc));
+static void gc_inf_free_string_header(SHIM_INTERP, ARGFREE(STRING *s));
+static size_t gc_inf_get_gc_info(SHIM_INTERP, SHIM(Interpinfo_enum what));
static void gc_inf_mark_and_sweep(SHIM_INTERP, UINTVAL flags);
-static void gc_inf_reallocate_buffer_storage(PARROT_INTERP,
+static void gc_inf_reallocate_buffer_storage(SHIM_INTERP,
ARGMOD(Buffer *buffer),
size_t size)
- __attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*buffer);
@@ -140,70 +124,53 @@
size_t newsize,
size_t oldsize);
-static void gc_inf_reallocate_string_storage(PARROT_INTERP,
+static void gc_inf_reallocate_string_storage(SHIM_INTERP,
ARGMOD(STRING *str),
size_t size)
- __attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*str);
#define ASSERT_ARGS_failed_allocation __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_gc_inf_allocate_buffer_storage \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(buffer))
+ PARROT_ASSERT_ARG(buffer))
#define ASSERT_ARGS_gc_inf_allocate_bufferlike_header \
- __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_gc_inf_allocate_fixed_size_storage \
- __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_gc_inf_allocate_memory_chunk __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_gc_inf_allocate_memory_chunk_zeroed \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_gc_inf_allocate_pmc_attributes \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(pmc))
-#define ASSERT_ARGS_gc_inf_allocate_pmc_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_gc_inf_allocate_string_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(pmc))
+#define ASSERT_ARGS_gc_inf_allocate_pmc_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_gc_inf_allocate_string_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_gc_inf_allocate_string_storage \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(str))
-#define ASSERT_ARGS_gc_inf_compact_memory_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_gc_inf_free_bufferlike_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(str))
+#define ASSERT_ARGS_gc_inf_compact_memory_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_gc_inf_free_bufferlike_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_gc_inf_free_fixed_size_storage \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(data))
+ PARROT_ASSERT_ARG(data))
#define ASSERT_ARGS_gc_inf_free_memory_chunk __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_gc_inf_free_pmc_attributes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(pmc))
-#define ASSERT_ARGS_gc_inf_free_pmc_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_gc_inf_free_string_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_gc_inf_get_gc_info __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(pmc))
+#define ASSERT_ARGS_gc_inf_free_pmc_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_gc_inf_free_string_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_gc_inf_get_gc_info __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_gc_inf_mark_and_sweep __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_gc_inf_reallocate_buffer_storage \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(buffer))
+ PARROT_ASSERT_ARG(buffer))
#define ASSERT_ARGS_gc_inf_reallocate_memory_chunk \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_gc_inf_reallocate_memory_chunk_zeroed \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_gc_inf_reallocate_string_storage \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(str))
+ PARROT_ASSERT_ARG(str))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -247,7 +214,7 @@
*/
static void
-gc_inf_compact_memory_pool(PARROT_INTERP)
+gc_inf_compact_memory_pool(SHIM_INTERP)
{
ASSERT_ARGS(gc_inf_compact_memory_pool)
}
@@ -295,57 +262,61 @@
*/
+PARROT_MALLOC
PARROT_CAN_RETURN_NULL
static PMC*
-gc_inf_allocate_pmc_header(PARROT_INTERP, SHIM(UINTVAL flags))
+gc_inf_allocate_pmc_header(SHIM_INTERP, SHIM(UINTVAL flags))
{
ASSERT_ARGS(gc_inf_allocate_pmc_header)
return (PMC*)calloc(sizeof (PMC), 1);
}
static void
-gc_inf_free_pmc_header(PARROT_INTERP, ARGIN_NULLOK(PMC *pmc))
+gc_inf_free_pmc_header(SHIM_INTERP, ARGFREE(PMC *pmc))
{
ASSERT_ARGS(gc_inf_free_pmc_header)
if (pmc)
free(pmc);
}
+PARROT_MALLOC
PARROT_CAN_RETURN_NULL
static STRING*
-gc_inf_allocate_string_header(PARROT_INTERP, SHIM(UINTVAL flags))
+gc_inf_allocate_string_header(SHIM_INTERP, SHIM(UINTVAL flags))
{
ASSERT_ARGS(gc_inf_allocate_string_header)
return (STRING*)calloc(sizeof (STRING), 1);
}
static void
-gc_inf_free_string_header(PARROT_INTERP, ARGIN_NULLOK(STRING *s))
+gc_inf_free_string_header(SHIM_INTERP, ARGFREE(STRING *s))
{
ASSERT_ARGS(gc_inf_free_string_header)
if (s)
free(s);
}
+PARROT_MALLOC
PARROT_CAN_RETURN_NULL
static Buffer*
-gc_inf_allocate_bufferlike_header(PARROT_INTERP, SHIM(size_t size))
+gc_inf_allocate_bufferlike_header(SHIM_INTERP, SHIM(size_t size))
{
ASSERT_ARGS(gc_inf_allocate_bufferlike_header)
return (Buffer*)calloc(sizeof (Buffer), 1);
}
static void
-gc_inf_free_bufferlike_header(PARROT_INTERP, ARGIN_NULLOK(Buffer *b), SHIM(size_t size))
+gc_inf_free_bufferlike_header(SHIM_INTERP, ARGFREE(Buffer *b), SHIM(size_t size))
{
ASSERT_ARGS(gc_inf_free_bufferlike_header)
if (b)
free(b);
}
+PARROT_MALLOC
PARROT_CAN_RETURN_NULL
static void*
-gc_inf_allocate_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
+gc_inf_allocate_pmc_attributes(SHIM_INTERP, ARGMOD(PMC *pmc))
{
ASSERT_ARGS(gc_inf_allocate_pmc_attributes)
const size_t attr_size = pmc->vtable->attr_size;
@@ -354,7 +325,7 @@
}
static void
-gc_inf_free_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
+gc_inf_free_pmc_attributes(SHIM_INTERP, ARGMOD(PMC *pmc))
{
ASSERT_ARGS(gc_inf_free_pmc_attributes)
if (PMC_data(pmc))
@@ -363,30 +334,27 @@
static void
-gc_inf_allocate_string_storage(PARROT_INTERP, ARGMOD(STRING *str), size_t size)
+gc_inf_allocate_string_storage(SHIM_INTERP, ARGMOD(STRING *str), size_t size)
{
ASSERT_ARGS(gc_inf_allocate_string_storage)
- char *mem;
-
- Buffer_buflen(str) = 0;
- Buffer_bufstart(str) = NULL;
- if (size == 0)
- return;
+ Buffer_buflen(str) = size;
- mem = (char *)mem_internal_allocate(size);
+ if (size > 0) {
+ char * const mem = (char *)mem_internal_allocate(size);
- Buffer_bufstart(str) = str->strstart = mem;
- Buffer_buflen(str) = size;
+ Buffer_bufstart(str) = str->strstart = mem;
+ }
+ else {
+ Buffer_bufstart(str) = NULL;
+ }
}
static void
-gc_inf_reallocate_string_storage(PARROT_INTERP, ARGMOD(STRING *str), size_t size)
+gc_inf_reallocate_string_storage(SHIM_INTERP, ARGMOD(STRING *str), size_t size)
{
ASSERT_ARGS(gc_inf_reallocate_string_storage)
- char *mem;
-
- mem = (char *)mem_internal_realloc(Buffer_bufstart(str), size);
+ char * const mem = (char *)mem_internal_realloc(Buffer_bufstart(str), size);
Buffer_bufstart(str) = str->strstart = mem;
Buffer_buflen(str) = size;
@@ -394,7 +362,7 @@
static void
-gc_inf_allocate_buffer_storage(PARROT_INTERP, ARGMOD(Buffer *buffer), size_t size)
+gc_inf_allocate_buffer_storage(SHIM_INTERP, ARGMOD(Buffer *buffer), size_t size)
{
ASSERT_ARGS(gc_inf_allocate_buffer_storage)
char *mem;
@@ -412,12 +380,10 @@
}
static void
-gc_inf_reallocate_buffer_storage(PARROT_INTERP, ARGMOD(Buffer *buffer), size_t size)
+gc_inf_reallocate_buffer_storage(SHIM_INTERP, ARGMOD(Buffer *buffer), size_t size)
{
ASSERT_ARGS(gc_inf_reallocate_buffer_storage)
- char *mem;
-
- mem = (char *)mem_internal_realloc(Buffer_bufstart(buffer), size);
+ char * const mem = (char *)mem_internal_realloc(Buffer_bufstart(buffer), size);
Buffer_bufstart(buffer) = mem;
Buffer_buflen(buffer) = size;
@@ -425,14 +391,14 @@
PARROT_CAN_RETURN_NULL
static void*
-gc_inf_allocate_fixed_size_storage(PARROT_INTERP, size_t size)
+gc_inf_allocate_fixed_size_storage(SHIM_INTERP, size_t size)
{
ASSERT_ARGS(gc_inf_allocate_fixed_size_storage)
return calloc(size, 1);
}
static void
-gc_inf_free_fixed_size_storage(PARROT_INTERP, SHIM(size_t size), ARGMOD(void *data))
+gc_inf_free_fixed_size_storage(SHIM_INTERP, SHIM(size_t size), ARGMOD(void *data))
{
ASSERT_ARGS(gc_inf_free_fixed_size_storage)
if (data)
@@ -449,7 +415,7 @@
*/
static size_t
-gc_inf_get_gc_info(PARROT_INTERP, SHIM(Interpinfo_enum what))
+gc_inf_get_gc_info(SHIM_INTERP, SHIM(Interpinfo_enum what))
{
ASSERT_ARGS(gc_inf_get_gc_info)
return 0;
Modified: branches/avl_string_cache/src/gc/gc_ms.c
==============================================================================
--- branches/avl_string_cache/src/gc/gc_ms.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/gc/gc_ms.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -835,11 +835,11 @@
{
ASSERT_ARGS(gc_ms_allocate_buffer_storage)
const size_t new_size = aligned_string_size(size);
- const char * const mem = aligned_mem(buffer,
+
+ Buffer_bufstart(buffer) = (void *)aligned_mem(buffer,
(char *)mem_allocate(interp,
interp->mem_pools, new_size, interp->mem_pools->memory_pool));
- Buffer_bufstart(buffer) = (void *)mem;
Buffer_buflen(buffer) = new_size - sizeof (void *);
}
Modified: branches/avl_string_cache/src/gc/gc_private.h
==============================================================================
--- branches/avl_string_cache/src/gc/gc_private.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/gc/gc_private.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -486,8 +486,7 @@
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
-char * aligned_mem(ARGIN(const Buffer *buffer), ARGIN(char *mem))
- __attribute__nonnull__(1)
+char * aligned_mem(SHIM(const Buffer *buffer), ARGIN(char *mem))
__attribute__nonnull__(2);
PARROT_CONST_FUNCTION
@@ -511,9 +510,7 @@
FUNC_MODIFIES(*mem_pools)
FUNC_MODIFIES(*pool);
-void initialize_var_size_pools(PARROT_INTERP,
- ARGMOD(Memory_Pools *mem_pools))
- __attribute__nonnull__(1)
+void initialize_var_size_pools(SHIM_INTERP, ARGMOD(Memory_Pools *mem_pools))
__attribute__nonnull__(2)
FUNC_MODIFIES(*mem_pools);
@@ -543,9 +540,8 @@
__attribute__nonnull__(2)
FUNC_MODIFIES(*mem_pools);
-void Parrot_gc_destroy_memory_pools(PARROT_INTERP,
+void Parrot_gc_destroy_memory_pools(SHIM_INTERP,
ARGMOD(Memory_Pools *mem_pools))
- __attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*mem_pools);
@@ -560,8 +556,7 @@
FUNC_MODIFIES(*dest_arena);
#define ASSERT_ARGS_aligned_mem __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(buffer) \
- , PARROT_ASSERT_ARG(mem))
+ PARROT_ASSERT_ARG(mem))
#define ASSERT_ARGS_aligned_string_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_check_buffer_ptr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(pobj) \
@@ -571,8 +566,7 @@
, PARROT_ASSERT_ARG(mem_pools) \
, PARROT_ASSERT_ARG(pool))
#define ASSERT_ARGS_initialize_var_size_pools __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(mem_pools))
+ PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_mem_allocate __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(mem_pools) \
@@ -586,8 +580,7 @@
, PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_Parrot_gc_destroy_memory_pools \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(mem_pools))
+ PARROT_ASSERT_ARG(mem_pools))
#define ASSERT_ARGS_Parrot_gc_merge_memory_pools __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(dest_interp) \
, PARROT_ASSERT_ARG(dest_arena) \
Modified: branches/avl_string_cache/src/gc/mark_sweep.c
==============================================================================
--- branches/avl_string_cache/src/gc/mark_sweep.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/gc/mark_sweep.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -862,7 +862,7 @@
ASSERT_ARGS(header_pools_iterate_callback)
if (flag & POOL_PMC) {
- Fixed_Size_Pool *pool = flag & POOL_CONST
+ Fixed_Size_Pool * const pool = flag & POOL_CONST
? mem_pools->constant_pmc_pool
: mem_pools->pmc_pool;
Modified: branches/avl_string_cache/src/global.c
==============================================================================
--- branches/avl_string_cache/src/global.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/global.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -648,7 +648,7 @@
ASSERT_ARGS(Parrot_find_global_op)
PMC *res;
- if (!globalname)
+ if (STRING_IS_NULL(globalname))
Parrot_ex_throw_from_c_args(interp, next, EXCEPTION_GLOBAL_NOT_FOUND,
"Tried to get null global");
Modified: branches/avl_string_cache/src/global_setup.c
==============================================================================
--- branches/avl_string_cache/src/global_setup.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/global_setup.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -211,8 +211,7 @@
parrot_global_setup_2(PARROT_INTERP)
{
ASSERT_ARGS(parrot_global_setup_2)
- PMC *classname_hash, *iglobals;
- int i;
+ PMC *classname_hash;
create_initial_context(interp);
@@ -228,13 +227,8 @@
Parrot_register_core_pmcs(interp, classname_hash);
/* init the interpreter globals array */
- iglobals = Parrot_pmc_new(interp, enum_class_FixedPMCArray);
- interp->iglobals = iglobals;
- VTABLE_set_integer_native(interp, iglobals, (INTVAL)IGLOBALS_SIZE);
-
- /* clear the array */
- for (i = 0; i < (INTVAL)IGLOBALS_SIZE; i++)
- VTABLE_set_pmc_keyed_int(interp, iglobals, i, NULL);
+ interp->iglobals = Parrot_pmc_new_init_int(interp,
+ enum_class_FixedPMCArray, (INTVAL)IGLOBALS_SIZE);
}
/*
Modified: branches/avl_string_cache/src/hash.c
==============================================================================
--- branches/avl_string_cache/src/hash.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/hash.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -54,7 +54,7 @@
FUNC_MODIFIES(*hash);
static void hash_freeze(PARROT_INTERP,
- ARGIN(const Hash * const hash),
+ ARGIN(const Hash *hash),
ARGMOD(PMC *info))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
@@ -76,7 +76,7 @@
__attribute__nonnull__(2);
PARROT_WARN_UNUSED_RESULT
-PARROT_PURE_FUNCTION
+PARROT_CONST_FUNCTION
static size_t key_hash_pointer(SHIM_INTERP,
ARGIN(const void *value),
size_t seed)
@@ -94,6 +94,12 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
+PARROT_WARN_UNUSED_RESULT
+PARROT_CONST_FUNCTION
+static int pointer_compare(SHIM_INTERP,
+ ARGIN_NULLOK(const void *a),
+ ARGIN_NULLOK(const void *b));
+
#define ASSERT_ARGS_cstring_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(a) \
, PARROT_ASSERT_ARG(b))
@@ -121,6 +127,7 @@
#define ASSERT_ARGS_parrot_mark_hash_values __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(hash))
+#define ASSERT_ARGS_pointer_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -176,7 +183,8 @@
return 1;
/* COWed strings */
- if (Buffer_bufstart(s1) == Buffer_bufstart(s2) && s1->bufused == s2->bufused)
+ if (Buffer_bufstart(s1) == Buffer_bufstart(s2)
+ && s1->bufused == s2->bufused)
return 0;
return CHARSET_COMPARE(interp, s1, s2);
@@ -185,7 +193,7 @@
/*
-=item C<int pointer_compare(PARROT_INTERP, const void *a, const void *b)>
+=item C<static int pointer_compare(PARROT_INTERP, const void *a, const void *b)>
Compares the two pointers, returning 0 if they are identical
@@ -194,8 +202,8 @@
*/
PARROT_WARN_UNUSED_RESULT
-PARROT_PURE_FUNCTION
-int
+PARROT_CONST_FUNCTION
+static int
pointer_compare(SHIM_INTERP, ARGIN_NULLOK(const void *a), ARGIN_NULLOK(const void *b))
{
ASSERT_ARGS(pointer_compare)
@@ -215,7 +223,7 @@
*/
PARROT_WARN_UNUSED_RESULT
-PARROT_PURE_FUNCTION
+PARROT_CONST_FUNCTION
static size_t
key_hash_pointer(SHIM_INTERP, ARGIN(const void *value), size_t seed)
{
@@ -312,7 +320,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_PURE_FUNCTION
int
-PMC_compare(PARROT_INTERP, ARGIN(PMC *a), ARGIN_NULLOK(PMC *b))
+PMC_compare(PARROT_INTERP, ARGIN(PMC *a), ARGIN(PMC *b))
{
ASSERT_ARGS(PMC_compare)
@@ -399,7 +407,7 @@
PARROT_EXPORT
void
-parrot_mark_hash(PARROT_INTERP, ARGIN(Hash *hash))
+parrot_mark_hash(PARROT_INTERP, ARGMOD(Hash *hash))
{
ASSERT_ARGS(parrot_mark_hash)
int mark_key = 0;
@@ -564,18 +572,24 @@
HashBucket *b;
switch (hash->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);
+ }
+ break;
case Hash_key_type_STRING:
{
STRING * const s_key = VTABLE_shift_string(interp, info);
b = parrot_hash_put(interp, hash, s_key, NULL);
}
break;
- case Hash_key_type_int:
+ case Hash_key_type_PMC:
{
- const INTVAL i_key = VTABLE_shift_integer(interp, info);
- b = parrot_hash_put(interp, hash, (void*)i_key, NULL);
+ PMC * const p_key = VTABLE_shift_pmc(interp, info);
+ b = parrot_hash_put(interp, hash, p_key, NULL);
+ break;
}
- break;
default:
Parrot_ex_throw_from_c_args(interp, NULL, 1,
"unimplemented key type");
@@ -583,18 +597,24 @@
}
switch (hash->entry_type) {
- case enum_hash_pmc:
- {
- PMC *p = VTABLE_shift_pmc(interp, info);
- b->value = (void *)p;
- break;
- }
case enum_hash_int:
{
const INTVAL i = VTABLE_shift_integer(interp, info);
b->value = (void *)i;
break;
}
+ case enum_hash_string:
+ {
+ STRING * const s = VTABLE_shift_string(interp, info);
+ b->value = (void *)s;
+ break;
+ }
+ case enum_hash_pmc:
+ {
+ PMC * const p = VTABLE_shift_pmc(interp, info);
+ b->value = (void *)p;
+ break;
+ }
default:
Parrot_ex_throw_from_c_args(interp, NULL, 1,
"unimplemented value type");
@@ -606,8 +626,7 @@
/*
-=item C<static void hash_freeze(PARROT_INTERP, const Hash * const hash, PMC
-*info)>
+=item C<static void hash_freeze(PARROT_INTERP, const Hash *hash, PMC *info)>
Freezes hash into a string.
@@ -621,7 +640,7 @@
*/
static void
-hash_freeze(PARROT_INTERP, ARGIN(const Hash * const hash), ARGMOD(PMC *info))
+hash_freeze(PARROT_INTERP, ARGIN(const Hash *hash), ARGMOD(PMC *info))
{
ASSERT_ARGS(hash_freeze)
size_t i;
@@ -630,11 +649,14 @@
HashBucket * const b = hash->bs+i;
switch (hash->key_type) {
+ case Hash_key_type_int:
+ VTABLE_push_integer(interp, info, (INTVAL)b->key);
+ break;
case Hash_key_type_STRING:
VTABLE_push_string(interp, info, (STRING *)b->key);
break;
- case Hash_key_type_int:
- VTABLE_push_integer(interp, info, (INTVAL)b->key);
+ case Hash_key_type_PMC:
+ VTABLE_push_pmc(interp, info, (PMC *)b->key);
break;
default:
Parrot_ex_throw_from_c_args(interp, NULL, 1,
@@ -643,12 +665,15 @@
}
switch (hash->entry_type) {
- case enum_hash_pmc:
- VTABLE_push_pmc(interp, info, (PMC *)b->value);
- break;
case enum_hash_int:
VTABLE_push_integer(interp, info, (INTVAL)b->value);
break;
+ case enum_hash_string:
+ VTABLE_push_string(interp, info, (STRING *)b->value);
+ break;
+ case enum_hash_pmc:
+ VTABLE_push_pmc(interp, info, (PMC *)b->value);
+ break;
default:
Parrot_ex_throw_from_c_args(interp, NULL, 1,
"unimplemented value type");
@@ -728,13 +753,13 @@
ASSERT_ARGS(expand_hash)
HashBucket **old_bi, **new_bi;
HashBucket *bs, *b, *new_mem;
- HashBucket *old_offset = (HashBucket *)((char *)hash + sizeof (Hash));
+ HashBucket * const old_offset = (HashBucket *)((char *)hash + sizeof (Hash));
void * const old_mem = hash->bs;
const UINTVAL old_size = hash->mask + 1;
const UINTVAL new_size = old_size << 1;
const UINTVAL old_nb = N_BUCKETS(old_size);
- size_t offset, i, new_loc;
+ size_t offset, i;
/*
allocate some less buckets
@@ -792,8 +817,9 @@
* as expand_hash is only called for that case).
*/
if (offset) {
- for (i = 0; i < old_size; ++i) {
- HashBucket **next_p = new_bi + i;
+ size_t j;
+ for (j = 0; j < old_size; ++j) {
+ HashBucket **next_p = new_bi + j;
while (*next_p) {
*next_p = (HashBucket *)((char *)*next_p + offset);
b = *next_p;
@@ -805,11 +831,11 @@
/* recalc bucket index */
for (i = 0; i < old_size; ++i) {
HashBucket **next_p = new_bi + i;
- while (*next_p) {
- b = *next_p;
+
+ while ((b = *next_p) != NULL) {
/* rehash the bucket */
- new_loc = (hash->hash_val)(interp, b->key, hash->seed) &
- (new_size - 1);
+ const size_t new_loc =
+ (hash->hash_val)(interp, b->key, hash->seed) & (new_size - 1);
if (i != new_loc) {
*next_p = b->next;
@@ -1002,16 +1028,18 @@
Frees the memory allocated to the specified hash and its bucket store. Used by
parrot_chash_destroy.
+Unlike the C library function free(), the hash function must not be NULL.
+
=cut
*/
PARROT_EXPORT
void
-parrot_hash_destroy(PARROT_INTERP, ARGMOD(Hash *hash))
+parrot_hash_destroy(PARROT_INTERP, ARGFREE_NOTNULL(Hash *hash))
{
ASSERT_ARGS(parrot_hash_destroy)
- HashBucket *bp = (HashBucket*)((char*)hash + sizeof (Hash));
+ HashBucket * const bp = (HashBucket*)((char*)hash + sizeof (Hash));
if (bp != hash->bs)
mem_gc_free(interp, hash->bs);
mem_gc_free(interp, hash);
@@ -1229,7 +1257,8 @@
/*
-=item C<void * parrot_hash_get(PARROT_INTERP, Hash *hash, const void *key)>
+=item C<void * parrot_hash_get(PARROT_INTERP, const Hash *hash, const void
+*key)>
Returns the value keyed by C<key>, or C<NULL> if no bucket is found.
@@ -1241,7 +1270,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
void *
-parrot_hash_get(PARROT_INTERP, ARGIN(Hash *hash), ARGIN(const void *key))
+parrot_hash_get(PARROT_INTERP, ARGIN(const Hash *hash), ARGIN(const void *key))
{
ASSERT_ARGS(parrot_hash_get)
const HashBucket * const bucket = parrot_hash_get_bucket(interp, hash, key);
@@ -1295,13 +1324,14 @@
/* When the hash is constant, check that the key and value are also
* constant. */
if (!PMC_IS_NULL(hash->container)
- && PObj_constant_TEST(hash->container)) {
+ && PObj_constant_TEST(hash->container)) {
if (hash->key_type == Hash_key_type_STRING
- && !PObj_constant_TEST((PObj *)key))
+ && !PObj_constant_TEST((PObj *)key))
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
"Used non-constant key in constant hash.");
- if (((hash->entry_type == enum_type_PMC) || (hash->entry_type == enum_type_STRING))
- && !PObj_constant_TEST((PObj *)value))
+ if (((hash->entry_type == enum_type_PMC)
+ || (hash->entry_type == enum_type_STRING))
+ && !PObj_constant_TEST((PObj *)value))
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
"Used non-constant value in constant hash.");
}
@@ -1316,7 +1346,6 @@
if (bucket)
bucket->value = value;
else {
-
bucket = hash->free_list;
if (!bucket) {
@@ -1407,7 +1436,7 @@
break;
case enum_type_STRING:
- valtmp = (void *)Parrot_str_copy(interp, (STRING *)b->value);
+ valtmp = b->value;
break;
case enum_type_PMC:
@@ -1423,9 +1452,8 @@
"hash corruption: type = %d\n", hash->entry_type);
};
- if (key){
+ if (key)
parrot_hash_put(interp, dest, key, valtmp);
- }
}
}
@@ -1507,8 +1535,7 @@
/*
-=item C<void* hash_key_from_int(PARROT_INTERP, const Hash * const hash, INTVAL
-key)>
+=item C<void* hash_key_from_int(PARROT_INTERP, const Hash *hash, INTVAL key)>
Cast INTVAL to hash key.
@@ -1518,7 +1545,7 @@
PARROT_CAN_RETURN_NULL
void*
-hash_key_from_int(PARROT_INTERP, ARGIN(const Hash * const hash), INTVAL key)
+hash_key_from_int(PARROT_INTERP, ARGIN(const Hash *hash), INTVAL key)
{
ASSERT_ARGS(hash_key_from_int)
void *ret;
@@ -1542,8 +1569,8 @@
/*
-=item C<void* hash_key_from_string(PARROT_INTERP, const Hash * const hash,
-STRING *key)>
+=item C<void* hash_key_from_string(PARROT_INTERP, const Hash *hash, STRING
+*key)>
Cast STRING to hash key.
@@ -1553,7 +1580,7 @@
PARROT_CAN_RETURN_NULL
void*
-hash_key_from_string(PARROT_INTERP, ARGIN(const Hash * const hash), ARGIN(STRING *key))
+hash_key_from_string(PARROT_INTERP, ARGIN(const Hash *hash), ARGIN(STRING *key))
{
ASSERT_ARGS(hash_key_from_string)
void *ret;
@@ -1583,8 +1610,7 @@
/*
-=item C<void* hash_key_from_pmc(PARROT_INTERP, const Hash * const hash, PMC
-*key)>
+=item C<void* hash_key_from_pmc(PARROT_INTERP, const Hash *hash, PMC *key)>
Cast PMC* to hash key.
@@ -1594,7 +1620,7 @@
PARROT_CAN_RETURN_NULL
void*
-hash_key_from_pmc(PARROT_INTERP, ARGIN(const Hash * const hash), ARGIN(PMC *key))
+hash_key_from_pmc(PARROT_INTERP, ARGIN(const Hash *hash), ARGIN(PMC *key))
{
ASSERT_ARGS(hash_key_from_pmc)
void *ret;
@@ -1636,7 +1662,7 @@
case Hash_key_type_STRING:
{
STRING * const tmp = VTABLE_get_string(interp, key);
- if (!tmp)
+ if (STRING_IS_NULL(tmp))
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNEXPECTED_NULL,
"hash: can't use null as key");
ret = (void *)tmp;
@@ -1651,8 +1677,7 @@
/*
-=item C<INTVAL hash_key_to_int(PARROT_INTERP, const Hash * const hash, void
-*key)>
+=item C<INTVAL hash_key_to_int(PARROT_INTERP, const Hash *hash, void *key)>
Cast hash key to INTVAL.
@@ -1661,7 +1686,7 @@
*/
INTVAL
-hash_key_to_int(PARROT_INTERP, ARGIN(const Hash * const hash), ARGIN_NULLOK(void *key))
+hash_key_to_int(PARROT_INTERP, ARGIN(const Hash *hash), ARGIN_NULLOK(void *key))
{
ASSERT_ARGS(hash_key_to_int)
INTVAL ret;
@@ -1684,8 +1709,7 @@
/*
-=item C<STRING* hash_key_to_string(PARROT_INTERP, const Hash * const hash, void
-*key)>
+=item C<STRING* hash_key_to_string(PARROT_INTERP, const Hash *hash, void *key)>
Cast hash key to STRING.
@@ -1695,7 +1719,7 @@
PARROT_CANNOT_RETURN_NULL
STRING*
-hash_key_to_string(PARROT_INTERP, ARGIN(const Hash * const hash), ARGIN_NULLOK(void *key))
+hash_key_to_string(PARROT_INTERP, ARGIN(const Hash *hash), ARGIN_NULLOK(void *key))
{
ASSERT_ARGS(hash_key_to_string)
STRING *ret;
@@ -1757,7 +1781,7 @@
/*
-=item C<void* hash_value_from_int(PARROT_INTERP, const Hash * const hash, INTVAL
+=item C<void* hash_value_from_int(PARROT_INTERP, const Hash *hash, INTVAL
value)>
Cast INTVAL to hash value.
@@ -1768,7 +1792,7 @@
PARROT_CAN_RETURN_NULL
void*
-hash_value_from_int(PARROT_INTERP, ARGIN(const Hash * const hash), INTVAL value)
+hash_value_from_int(PARROT_INTERP, ARGIN(const Hash *hash), INTVAL value)
{
ASSERT_ARGS(hash_value_from_int)
void *ret;
@@ -1794,8 +1818,8 @@
/*
-=item C<void* hash_value_from_string(PARROT_INTERP, const Hash * const hash,
-STRING *value)>
+=item C<void* hash_value_from_string(PARROT_INTERP, const Hash *hash, STRING
+*value)>
Cast STRING to hash value.
@@ -1805,7 +1829,7 @@
PARROT_CAN_RETURN_NULL
void*
-hash_value_from_string(PARROT_INTERP, ARGIN(const Hash * const hash),
+hash_value_from_string(PARROT_INTERP, ARGIN(const Hash *hash),
ARGIN_NULLOK(STRING *value))
{
ASSERT_ARGS(hash_value_from_string)
@@ -1837,8 +1861,7 @@
/*
-=item C<void* hash_value_from_pmc(PARROT_INTERP, const Hash * const hash, PMC
-*value)>
+=item C<void* hash_value_from_pmc(PARROT_INTERP, const Hash *hash, PMC *value)>
Cast PMC to hash value.
@@ -1848,7 +1871,7 @@
PARROT_CAN_RETURN_NULL
void*
-hash_value_from_pmc(PARROT_INTERP, ARGIN(const Hash * const hash),
+hash_value_from_pmc(PARROT_INTERP, ARGIN(const Hash *hash),
ARGIN_NULLOK(PMC *value))
{
ASSERT_ARGS(hash_value_from_pmc)
@@ -1877,8 +1900,8 @@
/*
-=item C<void* hash_value_from_number(PARROT_INTERP, const Hash * const hash,
-FLOATVAL value)>
+=item C<void* hash_value_from_number(PARROT_INTERP, const Hash *hash, FLOATVAL
+value)>
Cast FLOATVAL to hash value.
@@ -1888,7 +1911,7 @@
PARROT_CAN_RETURN_NULL
void*
-hash_value_from_number(PARROT_INTERP, ARGIN(const Hash * const hash), FLOATVAL value)
+hash_value_from_number(PARROT_INTERP, ARGIN(const Hash *hash), FLOATVAL value)
{
ASSERT_ARGS(hash_value_from_number)
void *ret;
@@ -1917,8 +1940,7 @@
/*
-=item C<INTVAL hash_value_to_int(PARROT_INTERP, const Hash * const hash, void
-*value)>
+=item C<INTVAL hash_value_to_int(PARROT_INTERP, const Hash *hash, void *value)>
Cast hash value to INTVAL.
@@ -1927,7 +1949,7 @@
*/
INTVAL
-hash_value_to_int(PARROT_INTERP, ARGIN(const Hash * const hash), ARGIN_NULLOK(void *value))
+hash_value_to_int(PARROT_INTERP, ARGIN(const Hash *hash), ARGIN_NULLOK(void *value))
{
ASSERT_ARGS(hash_value_to_int)
INTVAL ret;
@@ -1951,8 +1973,8 @@
/*
-=item C<STRING* hash_value_to_string(PARROT_INTERP, const Hash * const hash,
-void *value)>
+=item C<STRING* hash_value_to_string(PARROT_INTERP, const Hash *hash, void
+*value)>
Cast hash value to STRING.
@@ -1962,7 +1984,7 @@
PARROT_CANNOT_RETURN_NULL
STRING*
-hash_value_to_string(PARROT_INTERP, ARGIN(const Hash * const hash), ARGIN_NULLOK(void *value))
+hash_value_to_string(PARROT_INTERP, ARGIN(const Hash *hash), ARGIN_NULLOK(void *value))
{
ASSERT_ARGS(hash_value_to_string)
STRING *ret;
@@ -1985,8 +2007,7 @@
/*
-=item C<PMC* hash_value_to_pmc(PARROT_INTERP, const Hash * const hash, void
-*value)>
+=item C<PMC* hash_value_to_pmc(PARROT_INTERP, const Hash *hash, void *value)>
Cast hash value to PMC.
@@ -1996,7 +2017,7 @@
PARROT_CANNOT_RETURN_NULL
PMC*
-hash_value_to_pmc(PARROT_INTERP, ARGIN(const Hash * const hash), ARGIN_NULLOK(void *value))
+hash_value_to_pmc(PARROT_INTERP, ARGIN(const Hash *hash), ARGIN_NULLOK(void *value))
{
ASSERT_ARGS(hash_value_to_pmc)
PMC *ret;
@@ -2019,8 +2040,8 @@
/*
-=item C<FLOATVAL hash_value_to_number(PARROT_INTERP, const Hash * const hash,
-void *value)>
+=item C<FLOATVAL hash_value_to_number(PARROT_INTERP, const Hash *hash, void
+*value)>
Cast hash value to FLOATVAL.
@@ -2029,7 +2050,7 @@
*/
FLOATVAL
-hash_value_to_number(PARROT_INTERP, ARGIN(const Hash * const hash), ARGIN_NULLOK(void *value))
+hash_value_to_number(PARROT_INTERP, ARGIN(const Hash *hash), ARGIN_NULLOK(void *value))
{
ASSERT_ARGS(hash_value_to_number)
FLOATVAL ret;
Modified: branches/avl_string_cache/src/hll.c
==============================================================================
--- branches/avl_string_cache/src/hll.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/hll.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -88,7 +88,8 @@
PMC *entry_id;
- PMC * const entry = Parrot_pmc_new_constant(interp, enum_class_FixedPMCArray);
+ PMC * const entry = Parrot_pmc_new_constant_init_int(interp,
+ enum_class_FixedPMCArray, e_HLL_MAX);
if (entry_name && !STRING_IS_EMPTY(entry_name)) {
VTABLE_set_pmc_keyed_str(interp, hll_info, entry_name, entry);
@@ -96,8 +97,6 @@
else
VTABLE_push_pmc(interp, hll_info, entry);
- VTABLE_set_integer_native(interp, entry, e_HLL_MAX);
-
entry_id = Parrot_pmc_new_constant(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, entry_id, id);
VTABLE_set_pmc_keyed_int(interp, entry, e_HLL_id, entry_id);
@@ -522,11 +521,11 @@
if (PMC_IS_NULL(ns_hash) ||
ns_hash->vtable->base_type == enum_class_Undef)
{
- STRING * const hll_name = Parrot_get_HLL_name(interp, hll_id);
+ STRING * hll_name = Parrot_get_HLL_name(interp, hll_id);
if (!hll_name)
continue;
- Parrot_str_downcase_inplace(interp, hll_name);
+ hll_name = Parrot_str_downcase(interp, hll_name);
/* XXX as in Parrot_register_HLL() this needs to be fixed to use
* the correct type of namespace. It's relatively easy to do that
Modified: branches/avl_string_cache/src/interp/inter_create.c
==============================================================================
--- branches/avl_string_cache/src/interp/inter_create.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/interp/inter_create.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -131,7 +131,11 @@
interp->parent_interpreter = parent;
else {
interp->parent_interpreter = NULL;
+
+#if PARROT_CATCH_NULL
PMCNULL = NULL;
+#endif
+
/*
* we need a global mutex to protect the interpreter array
*/
Modified: branches/avl_string_cache/src/interp/inter_misc.c
==============================================================================
--- branches/avl_string_cache/src/interp/inter_misc.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/interp/inter_misc.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -140,7 +140,7 @@
PMC * hash = VTABLE_get_pmc_keyed_int(interp, interp->iglobals,
IGLOBALS_COMPREG_HASH);
- if (!hash) {
+ if (PMC_IS_NULL(hash)) {
hash = Parrot_pmc_new_noinit(interp, enum_class_Hash);
VTABLE_init(interp, hash);
VTABLE_set_pmc_keyed_int(interp, iglobals,
@@ -283,9 +283,6 @@
case CURRENT_CONT:
{
PMC * const cont = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
- if (!PMC_IS_NULL(cont) && cont->vtable->base_type ==
- enum_class_RetContinuation)
- return VTABLE_clone(interp, cont);
return cont;
}
case CURRENT_OBJECT:
Modified: branches/avl_string_cache/src/io/api.c
==============================================================================
--- branches/avl_string_cache/src/io/api.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/io/api.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -179,9 +179,8 @@
{
ASSERT_ARGS(Parrot_io_fdopen)
PMC *new_filehandle;
- INTVAL flags;
+ const INTVAL flags = Parrot_io_parse_open_flags(interp, sflags);
- flags = Parrot_io_parse_open_flags(interp, sflags);
if (!flags)
return PMCNULL;
@@ -349,7 +348,7 @@
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_PIO_ERROR,
"Cannot read from a closed or non-readable filehandle");
- result = Parrot_io_make_string(interp, &result, length);
+ result = Parrot_str_new_noinit(interp, enum_stringrep_one, length);
result->bufused = length;
if (Parrot_io_is_encoding(interp, pmc, CONST_STRING(interp, "utf8")))
@@ -367,7 +366,7 @@
"Cannot read from a closed filehandle");
if (length == 0)
- result = Parrot_str_copy(interp, string_orig);
+ result = string_orig;
else {
INTVAL read_length = length;
const INTVAL orig_length = Parrot_str_byte_length(interp, string_orig);
@@ -378,8 +377,7 @@
if (offset + read_length > orig_length)
read_length = orig_length - offset;
- result = Parrot_str_substr(interp, string_orig, offset,
- read_length, NULL, 0);
+ result = Parrot_str_substr(interp, string_orig, offset, read_length);
SETATTR_StringHandle_read_offset(interp, pmc, offset + read_length);
}
}
@@ -437,8 +435,7 @@
else
read_length = newline_pos - offset + 1; /* +1 to include the newline */
- result = Parrot_str_substr(interp, result, offset,
- read_length, NULL, 0);
+ result = Parrot_str_substr(interp, result, offset, read_length);
SETATTR_StringHandle_read_offset(interp, pmc, newline_pos + 1);
}
else
Modified: branches/avl_string_cache/src/io/buffer.c
==============================================================================
--- branches/avl_string_cache/src/io/buffer.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/io/buffer.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -228,14 +228,13 @@
Parrot_io_fill_readbuf(PARROT_INTERP, ARGMOD(PMC *filehandle))
{
ASSERT_ARGS(Parrot_io_fill_readbuf)
- size_t got;
- STRING fake;
- STRING *s = &fake;
PIOOFF_T pos = Parrot_io_get_file_position(interp, filehandle);
-
- Buffer_bufstart(s) = Parrot_io_get_buffer_start(interp, filehandle);
- fake.bufused = Parrot_io_get_buffer_size(interp, filehandle);
- got = PIO_READ(interp, filehandle, &s);
+ char *buf = (char *) Parrot_io_get_buffer_start(interp, filehandle);
+ size_t size = Parrot_io_get_buffer_size(interp, filehandle);
+ STRING *s = Parrot_str_new_init(interp, buf, size,
+ PARROT_DEFAULT_ENCODING, PARROT_DEFAULT_CHARSET,
+ PObj_external_FLAG);
+ size_t got = PIO_READ(interp, filehandle, &s);
/* buffer-filling does not change fileposition */
Parrot_io_set_file_position(interp, filehandle, pos);
@@ -267,9 +266,10 @@
*/
+PARROT_WARN_UNUSED_RESULT
size_t
Parrot_io_read_buffer(PARROT_INTERP, ARGMOD(PMC *filehandle),
- ARGIN(STRING **buf))
+ ARGMOD(STRING **buf))
{
ASSERT_ARGS(Parrot_io_read_buffer)
unsigned char *out_buf, *buffer_start, *buffer_next, *buffer_end;
@@ -292,17 +292,11 @@
if (Parrot_io_get_flags(interp, filehandle) & PIO_F_LINEBUF)
return Parrot_io_readline_buffer(interp, filehandle, buf);
- if (*buf == NULL) {
- *buf = Parrot_gc_new_string_header(interp, 0);
- (*buf)->bufused = len = 2048;
- }
-
- s = *buf;
- len = s->bufused;
-
- if (!s->strstart)
- Parrot_gc_allocate_string_storage(interp, s, len);
+ if (*buf == NULL)
+ *buf = Parrot_str_new_noinit(interp, enum_stringrep_one, 2048);
+ s = *buf;
+ len = s->bufused;
out_buf = (unsigned char *)s->strstart;
/* read Data from buffer */
@@ -357,11 +351,6 @@
}
got = Parrot_io_fill_readbuf(interp, filehandle);
-
- /* got is never < 0, but C's type system can't tell */
- if (got < 0)
- got = 0;
-
len = (len < got) ? len : got;
}
@@ -461,6 +450,7 @@
*/
+PARROT_WARN_UNUSED_RESULT
size_t
Parrot_io_readline_buffer(PARROT_INTERP, ARGMOD(PMC *filehandle), ARGOUT(STRING **buf))
{
Modified: branches/avl_string_cache/src/io/filehandle.c
==============================================================================
--- branches/avl_string_cache/src/io/filehandle.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/io/filehandle.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -27,7 +27,8 @@
=over 4
-=item C<INTVAL Parrot_io_parse_open_flags(PARROT_INTERP, STRING *mode_str)>
+=item C<INTVAL Parrot_io_parse_open_flags(PARROT_INTERP, const STRING
+*mode_str)>
Parses a Parrot string for file open mode flags (C<r> for read, C<w> for write,
C<a> for append, and C<p> for pipe) and returns the combined generic bit flags.
@@ -39,7 +40,7 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
INTVAL
-Parrot_io_parse_open_flags(PARROT_INTERP, ARGIN_NULLOK(STRING *mode_str))
+Parrot_io_parse_open_flags(PARROT_INTERP, ARGIN_NULLOK(const STRING *mode_str))
{
ASSERT_ARGS(Parrot_io_parse_open_flags)
INTVAL i, mode_len;
@@ -51,7 +52,7 @@
mode_len = Parrot_str_byte_length(interp, mode_str);
for (i = 0; i < mode_len; ++i) {
- INTVAL s = Parrot_str_indexed(interp, mode_str, i);
+ const INTVAL s = Parrot_str_indexed(interp, mode_str, i);
switch (s) {
case 'r':
flags |= PIO_F_READ;
@@ -124,7 +125,7 @@
return *buf;
}
else {
- STRING *s = *buf;
+ STRING * const s = *buf;
if (s->bufused < len)
Parrot_gc_reallocate_string_storage(interp, s, len);
return s;
@@ -154,7 +155,7 @@
PARROT_EXPORT
void
-Parrot_io_set_os_handle(SHIM_INTERP, ARGIN(PMC *filehandle), PIOHANDLE file_descriptor)
+Parrot_io_set_os_handle(SHIM_INTERP, ARGMOD(PMC *filehandle), PIOHANDLE file_descriptor)
{
ASSERT_ARGS(Parrot_io_set_os_handle)
PARROT_FILEHANDLE(filehandle)->os_handle = file_descriptor;
@@ -162,7 +163,7 @@
/*
-=item C<PIOHANDLE Parrot_io_get_os_handle(PARROT_INTERP, PMC *filehandle)>
+=item C<PIOHANDLE Parrot_io_get_os_handle(PARROT_INTERP, const PMC *filehandle)>
Retrieve the C<os_handle> attribute of the FileHandle object, which stores the
low-level filehandle for the OS.
@@ -177,8 +178,9 @@
*/
PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
PIOHANDLE
-Parrot_io_get_os_handle(SHIM_INTERP, ARGIN(PMC *filehandle))
+Parrot_io_get_os_handle(SHIM_INTERP, ARGIN(const PMC *filehandle))
{
ASSERT_ARGS(Parrot_io_get_os_handle)
return PARROT_FILEHANDLE(filehandle)->os_handle;
@@ -205,7 +207,7 @@
Parrot_io_set_flags(SHIM_INTERP, ARGIN(PMC *filehandle), INTVAL flags)
{
ASSERT_ARGS(Parrot_io_set_flags)
- Parrot_FileHandle_attributes *handle_struct = PARROT_FILEHANDLE(filehandle);
+ Parrot_FileHandle_attributes * const handle_struct = PARROT_FILEHANDLE(filehandle);
handle_struct->flags = flags;
}
@@ -304,7 +306,7 @@
*/
void
-Parrot_io_set_buffer_start(SHIM_INTERP, ARGIN(PMC *filehandle),
+Parrot_io_set_buffer_start(SHIM_INTERP, ARGMOD(PMC *filehandle),
ARGIN_NULLOK(unsigned char *new_start))
{
ASSERT_ARGS(Parrot_io_set_buffer_start)
@@ -329,6 +331,7 @@
*/
PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
unsigned char *
Parrot_io_get_buffer_start(SHIM_INTERP, ARGIN(PMC *filehandle))
@@ -339,7 +342,7 @@
/*
-=item C<unsigned char * Parrot_io_get_buffer_next(PARROT_INTERP, PMC
+=item C<unsigned char * Parrot_io_get_buffer_next(PARROT_INTERP, const PMC
*filehandle)>
Get the C<buffer_next> attribute of the FileHandle object, which stores
@@ -357,7 +360,7 @@
PARROT_EXPORT
PARROT_CAN_RETURN_NULL
unsigned char *
-Parrot_io_get_buffer_next(SHIM_INTERP, ARGIN(PMC *filehandle))
+Parrot_io_get_buffer_next(SHIM_INTERP, ARGIN(const PMC *filehandle))
{
ASSERT_ARGS(Parrot_io_get_buffer_next)
return PARROT_FILEHANDLE(filehandle)->buffer_next;
@@ -381,7 +384,7 @@
*/
void
-Parrot_io_set_buffer_next(SHIM_INTERP, ARGIN(PMC *filehandle),
+Parrot_io_set_buffer_next(SHIM_INTERP, ARGMOD(PMC *filehandle),
ARGIN_NULLOK(unsigned char *new_next))
{
ASSERT_ARGS(Parrot_io_set_buffer_next)
@@ -390,7 +393,7 @@
/*
-=item C<unsigned char * Parrot_io_get_buffer_end(PARROT_INTERP, PMC
+=item C<unsigned char * Parrot_io_get_buffer_end(PARROT_INTERP, const PMC
*filehandle)>
Get the C<buffer_end> attribute of the FileHandle object, which stores
@@ -406,9 +409,10 @@
*/
PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
unsigned char *
-Parrot_io_get_buffer_end(SHIM_INTERP, ARGIN_NULLOK(PMC *filehandle))
+Parrot_io_get_buffer_end(SHIM_INTERP, ARGIN(const PMC *filehandle))
{
ASSERT_ARGS(Parrot_io_get_buffer_end)
return PARROT_FILEHANDLE(filehandle)->buffer_end;
@@ -432,7 +436,7 @@
*/
void
-Parrot_io_set_buffer_end(SHIM_INTERP, ARGIN(PMC *filehandle),
+Parrot_io_set_buffer_end(SHIM_INTERP, ARGMOD(PMC *filehandle),
ARGIN_NULLOK(unsigned char *new_end))
{
ASSERT_ARGS(Parrot_io_set_buffer_end)
@@ -441,7 +445,7 @@
/*
-=item C<INTVAL Parrot_io_get_buffer_flags(PARROT_INTERP, PMC *filehandle)>
+=item C<INTVAL Parrot_io_get_buffer_flags(PARROT_INTERP, const PMC *filehandle)>
Get the C<buffer_flags> attribute of the FileHandle object, which stores
a collection of flags specific to the buffer.
@@ -457,7 +461,7 @@
PARROT_CAN_RETURN_NULL
INTVAL
-Parrot_io_get_buffer_flags(SHIM_INTERP, ARGIN(PMC *filehandle))
+Parrot_io_get_buffer_flags(SHIM_INTERP, ARGIN(const PMC *filehandle))
{
ASSERT_ARGS(Parrot_io_get_buffer_flags)
return PARROT_FILEHANDLE(filehandle)->buffer_flags;
@@ -481,7 +485,7 @@
*/
void
-Parrot_io_set_buffer_flags(SHIM_INTERP, ARGIN(PMC *filehandle), INTVAL new_flags)
+Parrot_io_set_buffer_flags(SHIM_INTERP, ARGMOD(PMC *filehandle), INTVAL new_flags)
{
ASSERT_ARGS(Parrot_io_set_buffer_flags)
PARROT_FILEHANDLE(filehandle)->buffer_flags = new_flags;
@@ -489,7 +493,7 @@
/*
-=item C<size_t Parrot_io_get_buffer_size(PARROT_INTERP, PMC *filehandle)>
+=item C<size_t Parrot_io_get_buffer_size(PARROT_INTERP, const PMC *filehandle)>
Get the C<buffer_size> attribute of the FileHandle object, which stores
the size of the buffer (in bytes).
@@ -504,8 +508,9 @@
*/
PARROT_CAN_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
size_t
-Parrot_io_get_buffer_size(SHIM_INTERP, ARGIN(PMC *filehandle))
+Parrot_io_get_buffer_size(SHIM_INTERP, ARGIN(const PMC *filehandle))
{
ASSERT_ARGS(Parrot_io_get_buffer_size)
return PARROT_FILEHANDLE(filehandle)->buffer_size;
@@ -529,7 +534,7 @@
*/
void
-Parrot_io_set_buffer_size(SHIM_INTERP, ARGIN(PMC *filehandle), size_t new_size)
+Parrot_io_set_buffer_size(SHIM_INTERP, ARGMOD(PMC *filehandle), size_t new_size)
{
ASSERT_ARGS(Parrot_io_set_buffer_size)
PARROT_FILEHANDLE(filehandle)->buffer_size = new_size;
@@ -552,7 +557,7 @@
PARROT_CAN_RETURN_NULL
void
-Parrot_io_clear_buffer(PARROT_INTERP, ARGIN(PMC *filehandle))
+Parrot_io_clear_buffer(PARROT_INTERP, ARGMOD(PMC *filehandle))
{
ASSERT_ARGS(Parrot_io_clear_buffer)
Parrot_FileHandle_attributes * const io = PARROT_FILEHANDLE(filehandle);
@@ -564,7 +569,8 @@
/*
-=item C<PIOOFF_T Parrot_io_get_file_position(PARROT_INTERP, PMC *filehandle)>
+=item C<PIOOFF_T Parrot_io_get_file_position(PARROT_INTERP, const PMC
+*filehandle)>
Get the C<file_pos> attribute of the FileHandle object, which stores
the current file position of the filehandle.
@@ -579,8 +585,9 @@
*/
PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
PIOOFF_T
-Parrot_io_get_file_position(SHIM_INTERP, ARGIN(PMC *filehandle))
+Parrot_io_get_file_position(SHIM_INTERP, ARGIN(const PMC *filehandle))
{
ASSERT_ARGS(Parrot_io_get_file_position)
return PARROT_FILEHANDLE(filehandle)->file_pos;
@@ -588,7 +595,7 @@
/*
-=item C<PIOOFF_T Parrot_io_get_last_file_position(PARROT_INTERP, PMC
+=item C<PIOOFF_T Parrot_io_get_last_file_position(PARROT_INTERP, const PMC
*filehandle)>
Get the C<file_pos> attribute of the FileHandle object, which stores
@@ -604,8 +611,9 @@
*/
PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
PIOOFF_T
-Parrot_io_get_last_file_position(SHIM_INTERP, ARGIN(PMC *filehandle))
+Parrot_io_get_last_file_position(SHIM_INTERP, ARGIN(const PMC *filehandle))
{
ASSERT_ARGS(Parrot_io_get_last_file_position)
return PARROT_FILEHANDLE(filehandle)->last_pos;
@@ -631,7 +639,7 @@
PARROT_EXPORT
void
-Parrot_io_set_file_position(SHIM_INTERP, ARGIN(PMC *filehandle), PIOOFF_T file_pos)
+Parrot_io_set_file_position(SHIM_INTERP, ARGMOD(PMC *filehandle), PIOOFF_T file_pos)
{
ASSERT_ARGS(Parrot_io_set_file_position)
Parrot_FileHandle_attributes * const handle_struct = PARROT_FILEHANDLE(filehandle);
@@ -641,8 +649,8 @@
/*
-=item C<INTVAL Parrot_io_is_encoding(PARROT_INTERP, PMC *filehandle, STRING
-*value)>
+=item C<INTVAL Parrot_io_is_encoding(PARROT_INTERP, const PMC *filehandle,
+STRING *value)>
Check whether the encoding attribute of the filehandle matches a passed in
string.
@@ -659,7 +667,7 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
INTVAL
-Parrot_io_is_encoding(PARROT_INTERP, ARGIN(PMC *filehandle), ARGIN(STRING *value))
+Parrot_io_is_encoding(PARROT_INTERP, ARGIN(const PMC *filehandle), ARGIN(STRING *value))
{
ASSERT_ARGS(Parrot_io_is_encoding)
Parrot_FileHandle_attributes * const handle_struct = PARROT_FILEHANDLE(filehandle);
@@ -704,7 +712,7 @@
/*
-=item C<INTVAL Parrot_io_is_closed_filehandle(PARROT_INTERP, PMC *pmc)>
+=item C<INTVAL Parrot_io_is_closed_filehandle(PARROT_INTERP, const PMC *pmc)>
Test whether a filehandle is closed.
@@ -713,8 +721,9 @@
*/
PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
INTVAL
-Parrot_io_is_closed_filehandle(PARROT_INTERP, ARGMOD(PMC *pmc))
+Parrot_io_is_closed_filehandle(PARROT_INTERP, ARGIN(const PMC *pmc))
{
ASSERT_ARGS(Parrot_io_is_closed_filehandle)
return PIO_IS_CLOSED(interp, pmc);
Modified: branches/avl_string_cache/src/io/unix.c
==============================================================================
--- branches/avl_string_cache/src/io/unix.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/io/unix.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -305,7 +305,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
PMC *
-Parrot_io_fdopen_unix(PARROT_INTERP, ARGMOD(PMC *filehandle), PIOHANDLE fd, INTVAL flags)
+Parrot_io_fdopen_unix(PARROT_INTERP, ARGMOD_NULLOK(PMC *filehandle), PIOHANDLE fd, INTVAL flags)
{
ASSERT_ARGS(Parrot_io_fdopen_unix)
if (io_is_tty_unix(fd))
@@ -388,7 +388,7 @@
/*
-=item C<INTVAL Parrot_io_is_closed_unix(PARROT_INTERP, PMC *filehandle)>
+=item C<INTVAL Parrot_io_is_closed_unix(PARROT_INTERP, const PMC *filehandle)>
Test whether the filehandle has been closed.
@@ -397,7 +397,7 @@
*/
INTVAL
-Parrot_io_is_closed_unix(PARROT_INTERP, ARGIN(PMC *filehandle))
+Parrot_io_is_closed_unix(PARROT_INTERP, ARGIN(const PMC *filehandle))
{
ASSERT_ARGS(Parrot_io_is_closed_unix)
if (Parrot_io_get_os_handle(interp, filehandle) == -1)
@@ -815,8 +815,9 @@
Parrot_io_pipe_unix(SHIM_INTERP, ARGMOD(PIOHANDLE *reader), ARGMOD(PIOHANDLE *writer))
{
ASSERT_ARGS(Parrot_io_pipe_unix)
- int fds[2], rv;
- rv = pipe(fds);
+ int fds[2];
+ const int rv = pipe(fds);
+
if (rv >= 0) {
*reader = fds[0];
*writer = fds[1];
Modified: branches/avl_string_cache/src/io/utf8.c
==============================================================================
--- branches/avl_string_cache/src/io/utf8.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/io/utf8.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -74,18 +74,19 @@
/* need len - 1 more chars */
len2--;
- s2 = NULL;
- s2 = Parrot_io_make_string(interp, &s2, len2);
+ s2 = Parrot_str_new_init(interp, NULL, len2, Parrot_utf8_encoding_ptr,
+ Parrot_unicode_charset_ptr, 0);
s2->bufused = len2;
- s2->charset = Parrot_unicode_charset_ptr;
- s2->encoding = Parrot_utf8_encoding_ptr;
/* TT #1257: need to check the amount read here? */
read = Parrot_io_read_buffer(interp, filehandle, &s2);
UNUSED(read);
s->strlen = iter.charpos;
- s = Parrot_str_append(interp, s, s2);
+ s = Parrot_str_concat(interp, s, s2);
+ /* String is updated. Poke into iterator to replace old string */
+ iter.str = s;
+ *buf = s;
len += len2 + 1;
/* check last char */
@@ -118,8 +119,7 @@
if (s->encoding == Parrot_utf8_encoding_ptr)
return Parrot_io_write_buffer(interp, filehandle, s);
- dest = Parrot_utf8_encoding_ptr->to_encoding(interp, s,
- Parrot_gc_new_string_header(interp, 0));
+ dest = Parrot_utf8_encoding_ptr->to_encoding(interp, s);
return Parrot_io_write_buffer(interp, filehandle, dest);
}
Modified: branches/avl_string_cache/src/io/win32.c
==============================================================================
--- branches/avl_string_cache/src/io/win32.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/io/win32.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -660,8 +660,8 @@
if (comspec == NULL)
comspec = "cmd";
auxcomm = Parrot_str_new(interp, comspec, 0);
- auxcomm = Parrot_str_append(interp, auxcomm, Parrot_str_new(interp, " /c ", 0));
- auxcomm = Parrot_str_append(interp, auxcomm, command);
+ auxcomm = Parrot_str_concat(interp, auxcomm, Parrot_str_new(interp, " /c ", 0));
+ auxcomm = Parrot_str_concat(interp, auxcomm, command);
cmd = Parrot_str_to_cstring(interp, auxcomm);
start.cb = sizeof start;
GetStartupInfo(&start);
Modified: branches/avl_string_cache/src/key.c
==============================================================================
--- branches/avl_string_cache/src/key.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/key.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2008, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -301,6 +301,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
INTVAL
key_type(SHIM_INTERP, ARGIN(const PMC *key))
@@ -443,19 +444,13 @@
{
STRING *s;
GETATTR_Key_str_key(interp, key, s);
- if (s)
- s = Parrot_str_new_COW(interp, s);
return s;
}
case KEY_string_FLAG | KEY_register_FLAG:
{
INTVAL int_key;
- STRING *s;
GETATTR_Key_int_key(interp, key, int_key);
- s = REG_STR(interp, int_key);
- if (s)
- s = Parrot_str_new_COW(interp, s);
- return s;
+ return REG_STR(interp, int_key);
}
case KEY_pmc_FLAG | KEY_register_FLAG:
{
@@ -543,9 +538,9 @@
key_next(PARROT_INTERP, ARGIN(PMC *key))
{
ASSERT_ARGS(key_next)
- PMC *next_key;
if (VTABLE_isa(interp, key, CONST_STRING(interp, "Key"))) {
+ PMC *next_key;
GETATTR_Key_next_key(interp, key, next_key);
return next_key;
}
@@ -655,65 +650,65 @@
switch (PObj_get_FLAGS(key) & KEY_type_FLAGS) {
case KEY_integer_FLAG:
GETATTR_Key_int_key(interp, key, int_key);
- value = Parrot_str_append(interp, value,
- Parrot_str_from_int(interp, int_key));
+ value = Parrot_str_concat(interp, value,
+ Parrot_str_from_int(interp, int_key));
break;
case KEY_number_FLAG:
GETATTR_Key_int_key(interp, key, int_key);
- value = Parrot_str_append(interp, value,
- Parrot_str_from_num(interp, (FLOATVAL)int_key));
+ value = Parrot_str_concat(interp, value,
+ Parrot_str_from_num(interp, (FLOATVAL)int_key));
break;
case KEY_string_FLAG:
GETATTR_Key_str_key(interp, key, str_key);
- value = Parrot_str_append(interp, value, quote);
- value = Parrot_str_append(interp, value, str_key);
- value = Parrot_str_append(interp, value, quote);
+ value = Parrot_str_concat(interp, value, quote);
+ value = Parrot_str_concat(interp, value, str_key);
+ value = Parrot_str_concat(interp, value, quote);
break;
case KEY_pmc_FLAG:
- value = Parrot_str_append(interp, value,
- VTABLE_get_string(interp, key));
+ value = Parrot_str_concat(interp, value,
+ VTABLE_get_string(interp, key));
break;
case KEY_integer_FLAG | KEY_register_FLAG:
GETATTR_Key_int_key(interp, key, int_key);
- value = Parrot_str_append(interp, value,
+ value = Parrot_str_concat(interp, value,
Parrot_str_from_int(interp,
REG_INT(interp, int_key)));
break;
case KEY_number_FLAG | KEY_register_FLAG:
GETATTR_Key_int_key(interp, key, int_key);
- value = Parrot_str_append(interp, value,
+ value = Parrot_str_concat(interp, value,
Parrot_str_from_num(interp,
REG_NUM(interp, int_key)));
break;
case KEY_string_FLAG | KEY_register_FLAG:
- value = Parrot_str_append(interp, value, quote);
+ value = Parrot_str_concat(interp, value, quote);
GETATTR_Key_int_key(interp, key, int_key);
- value = Parrot_str_append(interp, value,
+ value = Parrot_str_concat(interp, value,
REG_STR(interp, int_key));
- value = Parrot_str_append(interp, value, quote);
+ value = Parrot_str_concat(interp, value, quote);
break;
case KEY_pmc_FLAG | KEY_register_FLAG:
{
PMC *reg;
GETATTR_Key_int_key(interp, key, int_key);
reg = REG_PMC(interp, int_key);
- value = Parrot_str_append(interp, value,
- VTABLE_get_string(interp, reg));
+ value = Parrot_str_concat(interp, value,
+ VTABLE_get_string(interp, reg));
}
break;
default:
- value = Parrot_str_append(interp, value, CONST_STRING(interp, "Key type unknown"));
+ value = Parrot_str_concat(interp, value, CONST_STRING(interp, "Key type unknown"));
break;
}
GETATTR_Key_next_key(interp, key, next_key);
if (next_key)
- value = Parrot_str_append(interp, value, semicolon);
+ value = Parrot_str_concat(interp, value, semicolon);
GETATTR_Key_next_key(interp, key, key);
}
- value = Parrot_str_append(interp, value, Parrot_str_new(interp, " ]", 2));
+ value = Parrot_str_concat(interp, value, Parrot_str_new(interp, " ]", 2));
return value;
}
@@ -725,10 +720,6 @@
F<include/parrot/key.h>.
-=head1 HISTORY
-
-Initial version by Jeff G. on 2001.12.05.
-
=cut
*/
Modified: branches/avl_string_cache/src/library.c
==============================================================================
--- branches/avl_string_cache/src/library.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/library.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -168,9 +168,8 @@
(INTVAL)IGLOBALS_CONFIG_HASH);
/* create the lib_paths array */
- PMC * const lib_paths = Parrot_pmc_new(interp, enum_class_FixedPMCArray);
-
- VTABLE_set_integer_native(interp, lib_paths, PARROT_LIB_PATH_SIZE);
+ PMC * const lib_paths = Parrot_pmc_new_init_int(interp,
+ enum_class_FixedPMCArray, PARROT_LIB_PATH_SIZE);
VTABLE_set_pmc_keyed_int(interp, iglobals,
IGLOBALS_LIB_PATHS, lib_paths);
@@ -182,7 +181,7 @@
versionlib = VTABLE_get_string_keyed_str(interp, config_hash, libkey);
entry = VTABLE_get_string_keyed_str(interp, config_hash, verkey);
- versionlib = Parrot_str_append(interp, versionlib, entry);
+ versionlib = Parrot_str_concat(interp, versionlib, entry);
if (!VTABLE_get_integer_keyed_str(interp, config_hash, installed))
builddir = VTABLE_get_string_keyed_str(interp,
@@ -194,32 +193,47 @@
paths = Parrot_pmc_new(interp, enum_class_ResizableStringArray);
VTABLE_set_pmc_keyed_int(interp, lib_paths,
PARROT_LIB_PATH_INCLUDE, paths);
+ { /* EXPERIMENTAL: add include path from environment */
+ const char *envvar = Parrot_getenv(interp,
+ Parrot_str_new_constant(interp, "PARROT_INCLUDE"));
+ if (envvar != NULL && envvar[0]) {
+ entry = Parrot_str_new(interp, envvar, 0);
+ VTABLE_push_string(interp, paths, entry);
+ }
+ }
if (!STRING_IS_NULL(builddir)) {
- entry = Parrot_str_concat(interp, builddir, CONST_STRING(interp, "/"), 0);
+ entry = Parrot_str_concat(interp, builddir, CONST_STRING(interp, "/"));
VTABLE_push_string(interp, paths, entry);
- entry = Parrot_str_concat(interp, builddir, CONST_STRING(interp, "/runtime/parrot/include/"), 0);
+ entry = Parrot_str_concat(interp, builddir, CONST_STRING(interp, "/runtime/parrot/include/"));
VTABLE_push_string(interp, paths, entry);
}
entry = CONST_STRING(interp, "./");
VTABLE_push_string(interp, paths, entry);
if (!STRING_IS_NULL(versionlib)) {
- entry = Parrot_str_concat(interp, versionlib, CONST_STRING(interp, "/include/"), 0);
+ entry = Parrot_str_concat(interp, versionlib, CONST_STRING(interp, "/include/"));
VTABLE_push_string(interp, paths, entry);
}
-
/* define library paths */
paths = Parrot_pmc_new(interp, enum_class_ResizableStringArray);
VTABLE_set_pmc_keyed_int(interp, lib_paths,
PARROT_LIB_PATH_LIBRARY, paths);
+ { /* EXPERIMENTAL: add library path from environment */
+ const char *envvar = Parrot_getenv(interp,
+ Parrot_str_new_constant(interp, "PARROT_LIBRARY"));
+ if (envvar != NULL && envvar[0]) {
+ entry = Parrot_str_new(interp, envvar, 0);
+ VTABLE_push_string(interp, paths, entry);
+ }
+ }
if (!STRING_IS_NULL(builddir)) {
- entry = Parrot_str_concat(interp, builddir, CONST_STRING(interp, "/runtime/parrot/library/"), 0);
+ entry = Parrot_str_concat(interp, builddir, CONST_STRING(interp, "/runtime/parrot/library/"));
VTABLE_push_string(interp, paths, entry);
}
entry = CONST_STRING(interp, "./");
VTABLE_push_string(interp, paths, entry);
if (!STRING_IS_NULL(versionlib)) {
- entry = Parrot_str_concat(interp, versionlib, CONST_STRING(interp, "/library/"), 0);
+ entry = Parrot_str_concat(interp, versionlib, CONST_STRING(interp, "/library/"));
VTABLE_push_string(interp, paths, entry);
}
@@ -228,13 +242,13 @@
VTABLE_set_pmc_keyed_int(interp, lib_paths,
PARROT_LIB_PATH_LANG, paths);
if (!STRING_IS_NULL(builddir)) {
- entry = Parrot_str_concat(interp, builddir, CONST_STRING(interp, "/runtime/parrot/languages/"), 0);
+ entry = Parrot_str_concat(interp, builddir, CONST_STRING(interp, "/runtime/parrot/languages/"));
VTABLE_push_string(interp, paths, entry);
}
entry = CONST_STRING(interp, "./");
VTABLE_push_string(interp, paths, entry);
if (!STRING_IS_NULL(versionlib)) {
- entry = Parrot_str_concat(interp, versionlib, CONST_STRING(interp, "/languages/"), 0);
+ entry = Parrot_str_concat(interp, versionlib, CONST_STRING(interp, "/languages/"));
VTABLE_push_string(interp, paths, entry);
}
@@ -243,13 +257,13 @@
VTABLE_set_pmc_keyed_int(interp, lib_paths,
PARROT_LIB_PATH_DYNEXT, paths);
if (!STRING_IS_NULL(builddir)) {
- entry = Parrot_str_concat(interp, builddir, CONST_STRING(interp, "/runtime/parrot/dynext/"), 0);
+ entry = Parrot_str_concat(interp, builddir, CONST_STRING(interp, "/runtime/parrot/dynext/"));
VTABLE_push_string(interp, paths, entry);
}
entry = CONST_STRING(interp, "dynext/");
VTABLE_push_string(interp, paths, entry);
if (!STRING_IS_NULL(versionlib)) {
- entry = Parrot_str_concat(interp, versionlib, CONST_STRING(interp, "/dynext/"), 0);
+ entry = Parrot_str_concat(interp, versionlib, CONST_STRING(interp, "/dynext/"));
VTABLE_push_string(interp, paths, entry);
}
@@ -405,7 +419,7 @@
STRING * const nul = string_chr(interp, '\0');
- path = Parrot_str_append(interp, path, nul);
+ path = Parrot_str_concat(interp, path, nul);
path->bufused--;
path->strlen--;
@@ -440,7 +454,7 @@
/* make sure the path has a trailing slash before appending the file */
if (Parrot_str_indexed(interp, path , path->strlen - 1)
!= Parrot_str_indexed(interp, path_separator_string, 0))
- path = Parrot_str_append(interp, path , path_separator_string);
+ path = Parrot_str_concat(interp, path , path_separator_string);
return path;
}
@@ -465,7 +479,7 @@
{
ASSERT_ARGS(path_append)
l_path = path_guarantee_trailing_separator(interp, l_path);
- l_path = Parrot_str_append(interp, l_path, r_path);
+ l_path = Parrot_str_concat(interp, l_path, r_path);
return l_path;
}
@@ -491,9 +505,9 @@
ASSERT_ARGS(path_concat)
STRING* join;
- join = Parrot_str_copy(interp, l_path);
+ join = l_path;
join = path_guarantee_trailing_separator(interp, join);
- join = Parrot_str_append(interp, join, r_path);
+ join = Parrot_str_concat(interp, join, r_path);
return join;
}
@@ -518,9 +532,7 @@
ASSERT_ARGS(try_load_path)
STRING *final;
- final = Parrot_str_copy(interp, path);
-
- final = path_finalize(interp, final);
+ final = path_finalize(interp, path);
if (Parrot_stat_info_intval(interp, final, STAT_EXISTS)) {
return final;
@@ -552,7 +564,7 @@
STRING * const pir_extension = CONST_STRING(interp, ".pir");
STRING * const pasm_extension = CONST_STRING(interp, ".pasm");
- test_path = Parrot_str_copy(interp, path);
+ test_path = path;
/* First try the path as given. */
result = try_load_path(interp, test_path);
@@ -568,11 +580,11 @@
if (!STRING_IS_NULL(test_path)) {
if (Parrot_str_byte_length(interp, test_path) > 4) {
- STRING *orig_ext = Parrot_str_substr(interp, test_path, -4, 4, NULL, 0);
+ STRING *orig_ext = Parrot_str_substr(interp, test_path, -4, 4);
/* First try substituting .pbc for the .pir extension */
if (Parrot_str_equal(interp, orig_ext, pir_extension)) {
STRING * const without_ext = Parrot_str_chopn(interp, test_path, 4);
- test_path = Parrot_str_append(interp, without_ext, bytecode_extension);
+ test_path = Parrot_str_concat(interp, without_ext, bytecode_extension);
result = try_load_path(interp, test_path);
if (result)
return result;
@@ -580,12 +592,12 @@
/* Next try substituting .pir, then .pasm for the .pbc extension */
else if (Parrot_str_equal(interp, orig_ext, bytecode_extension)) {
STRING * const without_ext = Parrot_str_chopn(interp, test_path, 4);
- test_path = Parrot_str_append(interp, without_ext, pir_extension);
+ test_path = Parrot_str_concat(interp, without_ext, pir_extension);
result = try_load_path(interp, test_path);
if (result)
return result;
- test_path = Parrot_str_append(interp, without_ext, pasm_extension);
+ test_path = Parrot_str_concat(interp, without_ext, pasm_extension);
result = try_load_path(interp, test_path);
if (result)
return result;
@@ -595,10 +607,10 @@
/* Finally, try substituting .pbc for the .pasm extension. */
if (Parrot_str_byte_length(interp, test_path) > 5) {
- STRING * const orig_ext = Parrot_str_substr(interp, test_path, -5, 5, NULL, 0);
+ STRING * const orig_ext = Parrot_str_substr(interp, test_path, -5, 5);
if (Parrot_str_equal(interp, orig_ext, pasm_extension)) {
STRING * const without_ext = Parrot_str_chopn(interp, test_path, 5);
- test_path = Parrot_str_append(interp, without_ext, bytecode_extension);
+ test_path = Parrot_str_concat(interp, without_ext, bytecode_extension);
result = try_load_path(interp, test_path);
if (result)
return result;
@@ -703,8 +715,7 @@
STRING * const path = VTABLE_get_string_keyed_int(interp, paths, i);
STRING *found_name;
- full_name = Parrot_str_copy(interp, path);
- full_name = path_append(interp, full_name, file);
+ full_name = path_append(interp, path, file);
found_name =
(type & PARROT_RUNTIME_FT_DYNEXT)
@@ -903,23 +914,22 @@
++pos_dot;
++pos_sl;
if (pos_sl && pos_dot) {
- stem = Parrot_str_substr(interp, in, pos_sl, pos_dot - pos_sl - 1,
- NULL, 0);
- *wo_ext = Parrot_str_substr(interp, in, 0, pos_dot - 1, NULL, 0);
- *ext = Parrot_str_substr(interp, in, pos_dot, len - pos_dot, NULL, 0);
+ stem = Parrot_str_substr(interp, in, pos_sl, pos_dot - pos_sl - 1);
+ *wo_ext = Parrot_str_substr(interp, in, 0, pos_dot - 1);
+ *ext = Parrot_str_substr(interp, in, pos_dot, len - pos_dot);
}
else if (pos_dot) {
- stem = Parrot_str_substr(interp, in, 0, pos_dot - 1, NULL, 0);
+ stem = Parrot_str_substr(interp, in, 0, pos_dot - 1);
*wo_ext = stem;
- *ext = Parrot_str_substr(interp, in, pos_dot, len - pos_dot, NULL, 0);
+ *ext = Parrot_str_substr(interp, in, pos_dot, len - pos_dot);
}
else if (pos_sl) {
- stem = Parrot_str_substr(interp, in, pos_sl, len - pos_sl, NULL, 0);
- *wo_ext = Parrot_str_copy(interp, in);
+ stem = Parrot_str_substr(interp, in, pos_sl, len - pos_sl);
+ *wo_ext = in;
*ext = NULL;
}
else {
- stem = Parrot_str_copy(interp, in);
+ stem = in;
*wo_ext = stem;
*ext = NULL;
}
Modified: branches/avl_string_cache/src/main.c
==============================================================================
--- branches/avl_string_cache/src/main.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/main.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -46,7 +46,7 @@
PARROT_CAN_RETURN_NULL
static const char * parseflags(PARROT_INTERP,
ARGMOD(int *argc),
- ARGMOD(char **argv[]),
+ ARGMOD(const char **argv[]),
ARGMOD(Parrot_Run_core_t *core),
ARGMOD(Parrot_trace_flags *trace))
__attribute__nonnull__(1)
@@ -59,7 +59,9 @@
FUNC_MODIFIES(*core)
FUNC_MODIFIES(*trace);
-static void parseflags_minimal(PARROT_INTERP, int argc, ARGIN(char *argv[]))
+static void parseflags_minimal(PARROT_INTERP,
+ int argc,
+ ARGIN(const char *argv[]))
__attribute__nonnull__(1)
__attribute__nonnull__(3);
@@ -88,7 +90,7 @@
/*
-=item C<int main(int argc, char * argv[])>
+=item C<int main(int argc, const char *argv[])>
The entry point from the command line into Parrot.
@@ -97,7 +99,7 @@
*/
int
-main(int argc, char * argv[])
+main(int argc, const char *argv[])
{
int stacktop;
const char *sourcefile;
@@ -129,18 +131,6 @@
initialize_interpreter(interp, (void*)&stacktop);
imcc_initialize(interp);
- { /* EXPERIMENTAL: add library and include paths from environment */
- PMC *env = Parrot_pmc_new(interp, enum_class_Env);
- STRING *path = VTABLE_get_string_keyed_str(interp, env,
- Parrot_str_new_constant(interp, "PARROT_LIBRARY"));
- if (!Parrot_str_is_null(interp, path) && Parrot_str_length(interp, path) > 0)
- Parrot_lib_add_path(interp, path, PARROT_LIB_PATH_LIBRARY);
- path = VTABLE_get_string_keyed_str(interp, env,
- Parrot_str_new_constant(interp, "PARROT_INCLUDE"));
- if (!Parrot_str_is_null(interp, path) && Parrot_str_length(interp, path) > 0)
- Parrot_lib_add_path(interp, path, PARROT_LIB_PATH_INCLUDE);
- }
-
/* Parse flags */
sourcefile = parseflags(interp, &argc, &argv, &core, &trace);
@@ -370,7 +360,8 @@
/*
-=item C<static void parseflags_minimal(PARROT_INTERP, int argc, char *argv[])>
+=item C<static void parseflags_minimal(PARROT_INTERP, int argc, const char
+*argv[])>
Parse minimal subset of args required for initializing interpreter.
@@ -378,7 +369,7 @@
*/
static void
-parseflags_minimal(PARROT_INTERP, int argc, ARGIN(char *argv[]))
+parseflags_minimal(PARROT_INTERP, int argc, ARGIN(const char *argv[]))
{
ASSERT_ARGS(parseflags_minimal)
@@ -410,11 +401,11 @@
}
else if (!strncmp(arg, "--hash-seed", 11)) {
- arg = strrchr(arg, '=')+1;
- if (!arg) {
- ++pos;
- arg = argv[pos];
- }
+ if ((arg = strrchr(arg, '=')))
+ arg++;
+ else
+ arg = argv[++pos];
+
if (is_all_hex_digits(arg)) {
interp->hash_seed = strtoul(arg, NULL, 16);
}
@@ -432,8 +423,8 @@
/*
-=item C<static const char * parseflags(PARROT_INTERP, int *argc, char **argv[],
-Parrot_Run_core_t *core, Parrot_trace_flags *trace)>
+=item C<static const char * parseflags(PARROT_INTERP, int *argc, const char
+**argv[], Parrot_Run_core_t *core, Parrot_trace_flags *trace)>
Parse Parrot's command line for options and set appropriate flags.
@@ -444,7 +435,7 @@
PARROT_CAN_RETURN_NULL
static const char *
parseflags(PARROT_INTERP,
- ARGMOD(int *argc), ARGMOD(char **argv[]),
+ ARGMOD(int *argc), ARGMOD(const char **argv[]),
ARGMOD(Parrot_Run_core_t *core), ARGMOD(Parrot_trace_flags *trace))
{
ASSERT_ARGS(parseflags)
Modified: branches/avl_string_cache/src/multidispatch.c
==============================================================================
--- branches/avl_string_cache/src/multidispatch.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/multidispatch.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -268,7 +268,7 @@
va_list args;
const char *arg_sig, *ret_sig;
- Parrot_pcc_split_signature_string(interp, sig, &arg_sig, &ret_sig);
+ 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);
@@ -391,12 +391,11 @@
mmd_build_type_tuple_from_type_list(PARROT_INTERP, ARGIN(PMC *type_list))
{
ASSERT_ARGS(mmd_build_type_tuple_from_type_list)
- PMC *multi_sig = Parrot_pmc_new_constant(interp, enum_class_FixedIntegerArray);
INTVAL param_count = VTABLE_elements(interp, type_list);
+ PMC *multi_sig = Parrot_pmc_new_constant_init_int(interp,
+ enum_class_FixedIntegerArray, param_count);
INTVAL i;
- VTABLE_set_integer_native(interp, multi_sig, param_count);
-
for (i = 0; i < param_count; i++) {
STRING *type_name = VTABLE_get_string_keyed_int(interp, type_list, i);
INTVAL type;
@@ -518,10 +517,8 @@
type = Parrot_pmc_get_type(interp, sig_elem);
/* create destination PMC only as necessary */
- if (PMC_IS_NULL(ar)) {
- ar = Parrot_pmc_new(interp, enum_class_FixedIntegerArray);
- VTABLE_set_integer_native(interp, ar, n);
- }
+ if (PMC_IS_NULL(ar))
+ ar = Parrot_pmc_new_init_int(interp, enum_class_FixedIntegerArray, n);
VTABLE_set_integer_keyed_int(interp, ar, i, type);
}
Modified: branches/avl_string_cache/src/nci/api.c
==============================================================================
--- branches/avl_string_cache/src/nci/api.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/nci/api.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,30 +1,49 @@
/* nci.c
- * Copyright (C) 2001-2009, Parrot Foundation.
- * SVN Info
- * $Id$
- * Overview:
- * Native Call Interface routines. The code needed to build a
- * parrot to C call frame is in here
- * Data Structure and Algorithms:
- * History:
- * Notes:
- * References:
- */
+Copyright (C) 2001-2009, Parrot Foundation.
+$Id$
+
+=head1 NAME
+
+src/nci/api.c - Native Call Interface routines
+
+=head1 DESCRIPTION
+
+This file implements the interface to the Parrot Native Call Interface system,
+which builds parrot to C call frames.
+
+=head2 Functions
+
+=over 4
+
+=cut
+
+*/
#include "parrot/parrot.h"
#include "parrot/nci.h"
#include "api.str"
/* HEADERIZER HFILE: include/parrot/nci.h */
-/* HEADERIZER STOP */
-/* This function serves a single purpose. It takes the function signature for a
- C function we want to call and returns a PMC with a pointer to a function
- that can call it. */
+/*
+
+=item C<PMC * build_call_func(PARROT_INTERP, STRING *signature)>
+This function serves a single purpose. It takes the function signature for a
+C function we want to call and returns a PMC with a pointer to a function
+that can call it.
+
+=cut
+
+*/
+
+PARROT_CANNOT_RETURN_NULL
PMC *
-build_call_func(PARROT_INTERP, NOTNULL(STRING *signature)) {
- PMC *iglobals;
+build_call_func(PARROT_INTERP, ARGIN(STRING *signature))
+{
+ ASSERT_ARGS(build_call_func)
+
+ PMC * const iglobals = interp->iglobals;
PMC *nci_funcs;
PMC *thunk;
@@ -32,7 +51,6 @@
if (STRING_IS_EMPTY(signature))
signature = CONST_STRING(interp, "v");
- iglobals = interp->iglobals;
if (PMC_IS_NULL(iglobals))
PANIC(interp, "iglobals isn't created yet");
@@ -42,6 +60,19 @@
thunk = VTABLE_get_pmc_keyed_str(interp, nci_funcs, signature);
+ if (PMC_IS_NULL(thunk)) {
+ /* try to dynamically build a thunk */
+ PMC *nci_fb_cb = VTABLE_get_pmc_keyed_int(interp, iglobals, IGLOBALS_NCI_FB_CB);
+ if (!PMC_IS_NULL(nci_fb_cb)) {
+ void *cb_ptr = VTABLE_get_pointer(interp, nci_fb_cb);
+ nci_fb_func_t cb = (nci_fb_func_t)D2FPTR(cb_ptr);
+ if (cb_ptr) {
+ PMC *nci_fb_ud = VTABLE_get_pmc_keyed_int(interp, iglobals, IGLOBALS_NCI_FB_UD);
+ thunk = cb(nci_fb_ud, signature);
+ }
+ }
+ }
+
if (!PMC_IS_NULL(thunk)) {
PARROT_ASSERT(thunk->vtable);
PARROT_ASSERT(thunk->vtable->base_type == enum_class_UnManagedStruct);
@@ -54,6 +85,14 @@
}
/*
+
+=back
+
+=cut
+
+*/
+
+/*
* Local variables:
* c-file-style: "parrot"
* End:
Modified: branches/avl_string_cache/src/nci/core_thunks.c
==============================================================================
--- branches/avl_string_cache/src/nci/core_thunks.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/nci/core_thunks.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -45,18 +45,20 @@
typedef double(* func_t)(PARROT_INTERP, PMC *, double);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
FLOATVAL return_data;
PMC * t_1;
FLOATVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiN", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (double)(*fn_pointer)(interp, t_1, t_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "N", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "N", return_data);
@@ -67,18 +69,20 @@
typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, STRING *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
STRING * t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiS", &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -89,18 +93,20 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, long);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -111,17 +117,19 @@
typedef PMC *(* func_t)(PARROT_INTERP, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
if (t_1) Parrot_str_free_cstring(t_1);
}
@@ -131,18 +139,20 @@
typedef STRING *(* func_t)(PARROT_INTERP, PMC *, STRING *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
STRING * return_data;
PMC * t_1;
STRING * t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiS", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (STRING *)(*fn_pointer)(interp, t_1, t_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", return_data);
@@ -153,17 +163,19 @@
typedef INTVAL(* func_t)(PARROT_INTERP, INTVAL);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (INTVAL)(*fn_pointer)(interp, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -173,13 +185,15 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, STRING *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
STRING * t_2;
PMC * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiSP", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -197,12 +211,14 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, STRING *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
STRING * t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiS", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -219,18 +235,20 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, STRING *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
STRING * t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiS", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -241,18 +259,20 @@
typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, INTVAL);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -263,18 +283,20 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
PMC * t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiP", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -285,19 +307,21 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, STRING *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
PMC * t_2;
STRING * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPS", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -309,14 +333,16 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, PMC *, STRING *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
PMC * t_2;
STRING * t_3;
PMC * t_4;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPSP", &t_1, &t_2, &t_3, &t_4);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -335,13 +361,15 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
PMC * t_2;
PMC * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -359,13 +387,15 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, INTVAL, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
INTVAL t_2;
PMC * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIP", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -383,13 +413,15 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, STRING *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
STRING * t_2;
PMC * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSP", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -407,13 +439,15 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, FLOATVAL, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
FLOATVAL t_2;
PMC * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PNP", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -431,12 +465,14 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
PMC * t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -453,12 +489,14 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, INTVAL);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -475,12 +513,14 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, STRING *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
STRING * t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -497,12 +537,14 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, FLOATVAL);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
FLOATVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PN", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -519,19 +561,21 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
PMC * t_2;
PMC * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -543,19 +587,21 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, INTVAL, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
INTVAL t_2;
PMC * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIP", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -567,19 +613,21 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, STRING *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
STRING * t_2;
PMC * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSP", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -591,19 +639,21 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, FLOATVAL, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
FLOATVAL t_2;
PMC * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PNP", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -615,18 +665,20 @@
typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
PMC * t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -637,18 +689,20 @@
typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, STRING *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
STRING * t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -659,18 +713,20 @@
typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, FLOATVAL);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
FLOATVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PN", &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -681,17 +737,19 @@
typedef int(* func_t)(PARROT_INTERP, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(interp, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -701,11 +759,13 @@
typedef void(* func_t)(PARROT_INTERP, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -721,18 +781,20 @@
typedef int(* func_t)(PARROT_INTERP, PMC *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -743,19 +805,21 @@
typedef int(* func_t)(PARROT_INTERP, PMC *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
INTVAL t_2;
INTVAL t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_1, &t_2, &t_3);
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, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -767,20 +831,22 @@
typedef int(* func_t)(PARROT_INTERP, PMC *, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
INTVAL t_2;
INTVAL t_3;
INTVAL t_4;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIII", &t_1, &t_2, &t_3, &t_4);
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, t_3, t_4);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -793,18 +859,20 @@
typedef int(* func_t)(PARROT_INTERP, PMC *, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -815,20 +883,22 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, STRING *, STRING *, STRING *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
STRING * t_2;
STRING * t_3;
STRING * t_4;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiSSS", &t_1, &t_2, &t_3, &t_4);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3, t_4);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -841,13 +911,15 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, STRING *, STRING *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
STRING * t_2;
STRING * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiSS", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -865,18 +937,20 @@
typedef STRING *(* func_t)(PARROT_INTERP, PMC *, INTVAL);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
STRING * return_data;
PMC * t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (STRING *)(*fn_pointer)(interp, t_1, t_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", return_data);
@@ -887,12 +961,14 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
STRING *t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiS", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -909,19 +985,21 @@
typedef int(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
PMC * t_2;
PMC * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPPs", &t_1, &t_2, &t_3);
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, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -933,19 +1011,21 @@
typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
PMC * t_2;
PMC * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPPs", &t_1, &t_2, &t_3);
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, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -957,20 +1037,22 @@
typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, INTVAL, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
INTVAL t_2;
PMC * t_3;
PMC * t_4;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiIPPs", &t_1, &t_2, &t_3, &t_4);
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, t_3, t_4);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -983,17 +1065,19 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "Pi", &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
}
@@ -1003,12 +1087,14 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
PMC * t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiP", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -1025,36 +1111,33 @@
typedef PMC *(* func_t)(PARROT_INTERP, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
}
void
Parrot_nci_load_core_thunks(PARROT_INTERP)
-;
- void
-Parrot_nci_load_core_thunks(PARROT_INTERP)
{
- PMC *iglobals;
+ PMC * const iglobals = interp->iglobals;
PMC *nci_funcs;
PMC *temp_pmc;
- iglobals = interp->iglobals;
PARROT_ASSERT(!(PMC_IS_NULL(iglobals)));
- nci_funcs = VTABLE_get_pmc_keyed_int(interp, iglobals,
- IGLOBALS_NCI_FUNCS);
+ nci_funcs = VTABLE_get_pmc_keyed_int(interp, iglobals, IGLOBALS_NCI_FUNCS);
PARROT_ASSERT(!(PMC_IS_NULL(nci_funcs)));
temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
Modified: branches/avl_string_cache/src/nci/extra_thunks.c
==============================================================================
--- branches/avl_string_cache/src/nci/extra_thunks.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/nci/extra_thunks.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -45,11 +45,13 @@
typedef void(* func_t)(PARROT_INTERP);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "");
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -64,18 +66,20 @@
typedef int(* func_t)(int, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
PMC *t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IP", &t_0, &t_1);
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));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -85,19 +89,21 @@
typedef int(* func_t)(PARROT_INTERP, PMC *, int, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
INTVAL t_2;
PMC *t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIP", &t_1, &t_2, &t_3);
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, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -109,18 +115,20 @@
typedef int(* func_t)(PARROT_INTERP, void *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_1;
PMC * t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(interp, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -131,19 +139,21 @@
typedef int(* func_t)(PARROT_INTERP, void *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_1;
INTVAL t_2;
INTVAL t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(interp, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -155,17 +165,19 @@
typedef int(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
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));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
static void
@@ -174,18 +186,20 @@
typedef int(* func_t)(char *, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
char *t_0; STRING *ts_0;
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;
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));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_0) Parrot_str_free_cstring(t_0);
}
@@ -195,12 +209,14 @@
typedef void *(* func_t)(PARROT_INTERP);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "");
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -210,7 +226,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
}
static void
@@ -219,12 +235,14 @@
typedef void *(* func_t)(PARROT_INTERP, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
PMC *t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -234,7 +252,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
}
@@ -244,19 +262,21 @@
typedef char *(* func_t)(PARROT_INTERP);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "");
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)(interp);
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
}
static void
@@ -265,21 +285,23 @@
typedef char *(* func_t)(PARROT_INTERP, void *, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
PMC *t_1;
char *t_2; STRING *ts_2;
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;
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);
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -291,19 +313,21 @@
typedef char *(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
PMC *t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
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));
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
}
static void
@@ -312,20 +336,22 @@
typedef char *(* func_t)(void *, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
PMC *t_0;
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;
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);
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
if (t_1) Parrot_str_free_cstring(t_1);
}
@@ -335,11 +361,13 @@
typedef void(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -354,13 +382,15 @@
typedef void(* func_t)(void *, int, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_0;
INTVAL t_1;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -377,13 +407,15 @@
typedef void(* func_t)(void *, char *, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_0;
char *t_1; STRING *ts_1;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -400,8 +432,9 @@
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 *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
char *t_1; STRING *ts_1;
@@ -410,6 +443,7 @@
INTVAL t_4;
PMC *t_5;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -430,8 +464,9 @@
typedef void *(* func_t)(PARROT_INTERP, char *, char *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -439,6 +474,7 @@
char *t_2; STRING *ts_2;
PMC * t_3;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -448,7 +484,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_1) Parrot_str_free_cstring(t_1);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -461,19 +497,21 @@
typedef PMC *(* func_t)(PARROT_INTERP, char *, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
char *t_1; STRING *ts_1;
PMC *t_2;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
if (t_1) Parrot_str_free_cstring(t_1);
@@ -485,20 +523,22 @@
typedef int(* func_t)(void **, void *, void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0; void *v_0;
PMC *t_1;
PMC *t_2;
PMC *t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPP", &t_0, &t_1, &t_2, &t_3);
v_0 = VTABLE_get_pointer(interp, t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(&v_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), PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_pointer(interp, t_0, v_0);
@@ -510,13 +550,15 @@
typedef void(* func_t)(PARROT_INTERP, void *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_1;
PMC * t_2;
PMC * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -534,12 +576,14 @@
typedef void(* func_t)(void *, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_0;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -555,12 +599,14 @@
typedef void(* func_t)(PARROT_INTERP, void *, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_1;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -577,11 +623,13 @@
typedef void(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
;
+ UNUSED(return_data); /* Potentially unused, at least */
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
(*fn_pointer)();
@@ -594,14 +642,16 @@
typedef void(* func_t)(PARROT_INTERP, int, int, int, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
INTVAL t_1;
INTVAL t_2;
INTVAL t_3;
PMC *t_4;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIIP", &t_1, &t_2, &t_3, &t_4);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -620,11 +670,13 @@
typedef void(* func_t)(int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
INTVAL t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -639,12 +691,14 @@
typedef void(* func_t)(int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
INTVAL t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -660,8 +714,9 @@
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 *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
INTVAL t_0;
@@ -673,6 +728,7 @@
INTVAL t_6;
INTVAL t_7;
INTVAL t_8;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIIIIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6, &t_7, &t_8);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -695,11 +751,13 @@
typedef void(* func_t)(long);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
INTVAL t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -714,14 +772,16 @@
typedef void(* func_t)(void *, void *, int, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_0;
STRING *t_1;
INTVAL t_2;
PMC *t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSIP", &t_0, &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -739,12 +799,14 @@
typedef void(* func_t)(void *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -760,8 +822,9 @@
typedef void(* func_t)(void *, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_0;
@@ -769,6 +832,7 @@
INTVAL t_2;
INTVAL t_3;
INTVAL t_4;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIII", &t_0, &t_1, &t_2, &t_3, &t_4);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -787,12 +851,14 @@
typedef void(* func_t)(void *, long);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -808,12 +874,14 @@
typedef void(* func_t)(void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_0;
PMC *t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_0, &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -829,18 +897,20 @@
typedef int(* func_t)(PARROT_INTERP, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
PMC * t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -851,17 +921,19 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
}
@@ -871,18 +943,20 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
PMC * t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -893,17 +967,19 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "Pi", &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
}
@@ -913,17 +989,19 @@
typedef STRING *(* func_t)(PARROT_INTERP, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
STRING * return_data;
PMC * t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "Pi", &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (STRING *)(*fn_pointer)(interp, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", return_data);
}
@@ -933,17 +1011,19 @@
typedef int(* func_t)(PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(t_0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
static void
@@ -952,19 +1032,21 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
PMC * t_2;
PMC * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPP", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -976,20 +1058,22 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
PMC * t_2;
PMC * t_3;
PMC * t_4;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPPP", &t_1, &t_2, &t_3, &t_4);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3, t_4);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -1002,13 +1086,15 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
PMC * t_2;
PMC * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPP", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -1026,14 +1112,16 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
PMC * t_2;
PMC * t_3;
PMC * t_4;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPPP", &t_1, &t_2, &t_3, &t_4);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -1052,8 +1140,9 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, PMC *, PMC *, PMC *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
@@ -1061,12 +1150,13 @@
PMC * t_3;
PMC * t_4;
PMC * t_5;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPPPP", &t_1, &t_2, &t_3, &t_4, &t_5);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3, t_4, t_5);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -1080,8 +1170,9 @@
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 *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
@@ -1090,12 +1181,13 @@
PMC * t_4;
PMC * t_5;
PMC * t_6;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiPPPPP", &t_1, &t_2, &t_3, &t_4, &t_5, &t_6);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3, t_4, t_5, t_6);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -1110,19 +1202,21 @@
typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, STRING *, INTVAL);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
STRING * t_2;
INTVAL t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiSI", &t_1, &t_2, &t_3);
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, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -1134,20 +1228,22 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, STRING *, INTVAL, INTVAL);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
STRING * t_2;
INTVAL t_3;
INTVAL t_4;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiSII", &t_1, &t_2, &t_3, &t_4);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3, t_4);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -1160,20 +1256,22 @@
typedef char *(* func_t)(void *, int *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
PMC *t_0;
PMC *t_1; int i_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_0, &t_1);
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)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), &i_1);
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
VTABLE_set_integer_native(interp, t_1, i_1);
}
@@ -1183,20 +1281,22 @@
typedef int(* func_t)(void *, void *, int *, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
PMC *t_1;
PMC *t_2; int i_2;
PMC *t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPP", &t_0, &t_1, &t_2, &t_3);
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 = (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), &i_2, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_2, i_2);
@@ -1208,19 +1308,21 @@
typedef int(* func_t)(void *, void *, int *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
PMC *t_1;
PMC *t_2; int i_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_0, &t_1, &t_2);
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 = (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), &i_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_2, i_2);
@@ -1231,19 +1333,21 @@
typedef int(* func_t)(void *, void *, double);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
PMC *t_1;
FLOATVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPN", &t_0, &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -1254,20 +1358,22 @@
typedef int(* func_t)(void *, char *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
char *t_1; STRING *ts_1;
INTVAL t_2;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_1) Parrot_str_free_cstring(t_1);
@@ -1279,20 +1385,22 @@
typedef int(* func_t)(void *, int, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
PMC *t_2;
INTVAL t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIPI", &t_0, &t_1, &t_2, &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, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -1304,8 +1412,9 @@
typedef char *(* func_t)(void *, char *, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
@@ -1313,13 +1422,14 @@
char *t_1; STRING *ts_1;
char *t_2; STRING *ts_2;
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;
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);
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
if (t_1) Parrot_str_free_cstring(t_1);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -1331,21 +1441,23 @@
typedef char *(* func_t)(void *, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
PMC *t_0;
char *t_1; STRING *ts_1;
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;
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);
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
if (t_1) Parrot_str_free_cstring(t_1);
@@ -1356,8 +1468,9 @@
typedef char *(* func_t)(void *, char *, char *, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
@@ -1366,13 +1479,14 @@
char *t_2; STRING *ts_2;
char *t_3; STRING *ts_3;
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;
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);
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
if (t_1) Parrot_str_free_cstring(t_1);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -1385,12 +1499,14 @@
typedef void *(* func_t)(PARROT_INTERP, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -1400,7 +1516,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
}
@@ -1410,14 +1526,16 @@
typedef void *(* func_t)(PARROT_INTERP, int, void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
INTVAL t_1;
PMC *t_2;
PMC *t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IPP", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -1427,7 +1545,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
@@ -1439,14 +1557,16 @@
typedef void *(* func_t)(PARROT_INTERP, void *, int, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
STRING *t_1;
INTVAL t_2;
PMC *t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "SIP", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -1456,7 +1576,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
@@ -1468,11 +1588,13 @@
typedef void(* func_t)(PARROT_INTERP, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -1488,11 +1610,13 @@
typedef void(* func_t)(PARROT_INTERP, STRING *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
STRING * t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -1508,20 +1632,22 @@
typedef char *(* func_t)(char *, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
char *t_0; STRING *ts_0;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)(t_0, t_1);
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
if (t_0) Parrot_str_free_cstring(t_0);
if (t_1) Parrot_str_free_cstring(t_1);
}
@@ -1531,18 +1657,20 @@
typedef INTVAL(* func_t)(PARROT_INTERP, PMC *, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -1553,13 +1681,15 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, STRING *, INTVAL);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
STRING * t_2;
INTVAL t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiSI", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -1577,18 +1707,20 @@
typedef STRING *(* func_t)(PARROT_INTERP, PMC *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
STRING * return_data;
PMC * t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (STRING *)(*fn_pointer)(interp, t_1, t_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", return_data);
@@ -1599,12 +1731,14 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -1621,17 +1755,19 @@
typedef INTVAL(* func_t)(PARROT_INTERP, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "Pi", &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (INTVAL)(*fn_pointer)(interp, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -1641,17 +1777,19 @@
typedef FLOATVAL(* func_t)(PARROT_INTERP, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
FLOATVAL return_data;
PMC * t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "Pi", &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (FLOATVAL)(*fn_pointer)(interp, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "N", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "N", return_data);
}
@@ -1661,12 +1799,14 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, FLOATVAL);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
FLOATVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiN", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -1683,18 +1823,20 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -1705,12 +1847,14 @@
typedef void(* func_t)(PARROT_INTERP, PMC *, INTVAL);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -1727,18 +1871,20 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, INTVAL);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -1749,19 +1895,21 @@
typedef PMC *(* func_t)(PARROT_INTERP, PMC *, INTVAL, STRING *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
PMC * return_data;
PMC * t_1;
INTVAL t_2;
STRING * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiIS", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (PMC *)(*fn_pointer)(interp, t_1, t_2, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", return_data);
@@ -1773,19 +1921,21 @@
typedef STRING *(* func_t)(PARROT_INTERP, PMC *, STRING *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
STRING * return_data;
PMC * t_1;
STRING * t_2;
PMC * t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiSP", &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (STRING *)(*fn_pointer)(interp, t_1, t_2, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", return_data);
@@ -1797,15 +1947,17 @@
typedef int(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
;
+ UNUSED(return_data); /* Potentially unused, at least */
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)();
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
static void
@@ -1814,19 +1966,21 @@
typedef int(* func_t)(int, int *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
PMC *t_1; int i_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IPI", &t_0, &t_1, &t_2);
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 = (int)(*fn_pointer)(t_0, &i_1, t_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_1, i_1);
@@ -1837,19 +1991,21 @@
typedef int(* func_t)(int, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
STRING *t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "ISI", &t_0, &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(t_0, Buffer_bufstart(t_1), t_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -1860,20 +2016,22 @@
typedef long(* func_t)(long, char *, char *, long);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
char *t_1; STRING *ts_1;
char *t_2; STRING *ts_2;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_1) Parrot_str_free_cstring(t_1);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -1885,19 +2043,21 @@
typedef int(* func_t)(void *, int, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
PMC *t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIP", &t_0, &t_1, &t_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, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -1908,19 +2068,21 @@
typedef int(* func_t)(void *, int, STRING *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
STRING * t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIS", &t_0, &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -1931,17 +2093,19 @@
typedef STRING *(* func_t)(int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
STRING * return_data;
INTVAL t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (STRING *)(*fn_pointer)(t_0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", return_data);
}
static void
@@ -1950,17 +2114,19 @@
typedef long(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
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));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
static void
@@ -1969,17 +2135,19 @@
typedef char(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
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));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
static void
@@ -1988,13 +2156,15 @@
typedef void *(* func_t)(void *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
PMC *t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2004,7 +2174,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
}
@@ -2014,12 +2184,14 @@
typedef void *(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
PMC *t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2029,7 +2201,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
}
static void
@@ -2038,8 +2210,9 @@
typedef int(* func_t)(void *, char *, char *, char *, char *, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -2048,12 +2221,13 @@
char *t_3; STRING *ts_3;
char *t_4; STRING *ts_4;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_1) Parrot_str_free_cstring(t_1);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -2067,20 +2241,22 @@
typedef char(* func_t)(void *, char *, char *, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
char *t_1; STRING *ts_1;
char *t_2; STRING *ts_2;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_1) Parrot_str_free_cstring(t_1);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -2092,8 +2268,9 @@
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 *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -2105,6 +2282,7 @@
INTVAL t_5;
char *t_6; STRING *ts_6;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2114,7 +2292,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_1) Parrot_str_free_cstring(t_1);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -2130,18 +2308,20 @@
typedef int(* func_t)(void *, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_1) Parrot_str_free_cstring(t_1);
}
@@ -2151,19 +2331,21 @@
typedef int(* func_t)(void *, char *, long);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
char *t_1; STRING *ts_1;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_1) Parrot_str_free_cstring(t_1);
@@ -2174,18 +2356,20 @@
typedef int(* func_t)(void *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -2195,18 +2379,20 @@
typedef int(* func_t)(void *, long);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -2216,15 +2402,17 @@
typedef long(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
;
+ UNUSED(return_data); /* Potentially unused, at least */
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (long)(*fn_pointer)();
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
static void
@@ -2233,13 +2421,15 @@
typedef void *(* func_t)(void *, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
PMC *t_0;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2249,7 +2439,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_1) Parrot_str_free_cstring(t_1);
}
@@ -2259,14 +2449,16 @@
typedef void *(* func_t)(void *, char *, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
PMC *t_0;
char *t_1; STRING *ts_1;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2276,7 +2468,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_1) Parrot_str_free_cstring(t_1);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -2287,19 +2479,21 @@
typedef int(* func_t)(void *, int, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -2310,13 +2504,15 @@
typedef void *(* func_t)(void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
PMC *t_0;
PMC *t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_0, &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2326,7 +2522,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
}
@@ -2336,19 +2532,21 @@
typedef long(* func_t)(char *, char *, long);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
char *t_0; STRING *ts_0;
char *t_1; STRING *ts_1;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_0) Parrot_str_free_cstring(t_0);
if (t_1) Parrot_str_free_cstring(t_1);
@@ -2359,20 +2557,22 @@
typedef long(* func_t)(void *, char *, char *, long);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
char *t_1; STRING *ts_1;
char *t_2; STRING *ts_2;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_1) Parrot_str_free_cstring(t_1);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -2384,11 +2584,13 @@
typedef void(* func_t)(char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2403,8 +2605,9 @@
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 *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -2416,6 +2619,7 @@
INTVAL t_5;
char *t_6; STRING *ts_6;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2425,7 +2629,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_1) Parrot_str_free_cstring(t_1);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -2441,8 +2645,9 @@
typedef void *(* func_t)(char *, int, char **, int *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -2451,6 +2656,7 @@
char *t_2; STRING *ts_2;
PMC *t_3; int i_3;
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);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2460,7 +2666,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_0) Parrot_str_free_cstring(t_0);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -2473,8 +2679,9 @@
typedef void *(* func_t)(char *, int, void *, int *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -2483,6 +2690,7 @@
PMC *t_2;
PMC *t_3; int i_3;
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);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2492,7 +2700,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_0) Parrot_str_free_cstring(t_0);
@@ -2505,8 +2713,9 @@
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 *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -2517,12 +2726,13 @@
INTVAL t_5;
PMC *t_6;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -2538,8 +2748,9 @@
typedef int(* func_t)(char *, void *, int, int, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
char *t_0; STRING *ts_0;
@@ -2548,12 +2759,13 @@
INTVAL t_3;
STRING *t_4;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_0) Parrot_str_free_cstring(t_0);
@@ -2567,8 +2779,9 @@
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 *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -2580,6 +2793,7 @@
PMC *t_5;
PMC *t_6;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2589,7 +2803,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_1) Parrot_str_free_cstring(t_1);
@@ -2605,8 +2819,9 @@
typedef void *(* func_t)(void *, int, int *, int *, int, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -2617,6 +2832,7 @@
INTVAL t_4;
PMC *t_5;
INTVAL t_6;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIPPIPI", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6);
i_2 = VTABLE_get_integer(interp, t_2);i_3 = VTABLE_get_integer(interp, t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2626,7 +2842,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
VTABLE_set_integer_native(interp, t_2, i_2);
@@ -2641,8 +2857,9 @@
typedef void *(* func_t)(void *, char *, char *, int, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -2651,6 +2868,7 @@
char *t_2; STRING *ts_2;
INTVAL t_3;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2660,7 +2878,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_1) Parrot_str_free_cstring(t_1);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -2673,8 +2891,9 @@
typedef void *(* func_t)(void *, char *, int, void *, void *, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -2685,6 +2904,7 @@
PMC *t_4;
PMC *t_5;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2694,7 +2914,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_1) Parrot_str_free_cstring(t_1);
@@ -2709,14 +2929,16 @@
typedef void *(* func_t)(void *, void *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
PMC *t_0;
PMC *t_1;
PMC * t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_0, &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2726,7 +2948,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
@@ -2737,8 +2959,9 @@
typedef void *(* func_t)(int, int, int, long);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -2746,6 +2969,7 @@
INTVAL t_1;
INTVAL t_2;
INTVAL t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIII", &t_0, &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2755,7 +2979,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
@@ -2767,19 +2991,21 @@
typedef int(* func_t)(void *, void *, long);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
PMC *t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPI", &t_0, &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -2790,13 +3016,15 @@
typedef void(* func_t)(void *, int, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_0;
INTVAL t_1;
PMC *t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIP", &t_0, &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2813,14 +3041,16 @@
typedef void *(* func_t)(void *, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
PMC *t_0;
char *t_1; STRING *ts_1;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2830,7 +3060,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_1) Parrot_str_free_cstring(t_1);
@@ -2841,19 +3071,21 @@
typedef int(* func_t)(void *, void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
PMC *t_1;
PMC *t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_0, &t_1, &t_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), PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -2864,8 +3096,9 @@
typedef void *(* func_t)(void *, char *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -2873,6 +3106,7 @@
char *t_1; STRING *ts_1;
INTVAL t_2;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2882,7 +3116,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_1) Parrot_str_free_cstring(t_1);
@@ -2894,13 +3128,15 @@
typedef void *(* func_t)(char *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
char *t_0; STRING *ts_0;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2910,7 +3146,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_0) Parrot_str_free_cstring(t_0);
}
@@ -2920,14 +3156,16 @@
typedef void *(* func_t)(void *, char *, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
PMC *t_0;
char *t_1; STRING *ts_1;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -2937,7 +3175,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_1) Parrot_str_free_cstring(t_1);
@@ -2948,20 +3186,22 @@
typedef int(* func_t)(void *, char *, int *, int *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
char *t_1; STRING *ts_1;
PMC *t_2; int i_2;
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);
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_1) Parrot_str_free_cstring(t_1);
VTABLE_set_integer_native(interp, t_2, i_2);
@@ -2973,15 +3213,17 @@
typedef char(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
;
+ UNUSED(return_data); /* Potentially unused, at least */
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char)(*fn_pointer)();
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
static void
@@ -2990,18 +3232,20 @@
typedef char(* func_t)(void *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -3011,15 +3255,17 @@
typedef double(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
FLOATVAL return_data;
;
+ UNUSED(return_data); /* Potentially unused, at least */
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (double)(*fn_pointer)();
- Parrot_pcc_build_call_from_c_args(interp, call_object, "N", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "N", return_data);
}
static void
@@ -3028,17 +3274,19 @@
typedef double(* func_t)(double);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
FLOATVAL return_data;
FLOATVAL t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "N", &t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (double)(*fn_pointer)(t_0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "N", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "N", return_data);
}
static void
@@ -3047,15 +3295,17 @@
typedef float(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
FLOATVAL return_data;
;
+ UNUSED(return_data); /* Potentially unused, at least */
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (float)(*fn_pointer)();
- Parrot_pcc_build_call_from_c_args(interp, call_object, "N", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "N", return_data);
}
static void
@@ -3064,18 +3314,20 @@
typedef float(* func_t)(float, float);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
FLOATVAL return_data;
FLOATVAL t_0;
FLOATVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "NN", &t_0, &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (float)(*fn_pointer)(t_0, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "N", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "N", return_data);
}
@@ -3085,18 +3337,20 @@
typedef float(* func_t)(int, short);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
FLOATVAL return_data;
INTVAL t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (float)(*fn_pointer)(t_0, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "N", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "N", return_data);
}
@@ -3106,17 +3360,19 @@
typedef int(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
STRING *t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(Buffer_bufstart(t_0));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
static void
@@ -3125,17 +3381,19 @@
typedef int(* func_t)(double);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
FLOATVAL t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "N", &t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(t_0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
static void
@@ -3144,17 +3402,19 @@
typedef int(* func_t)(int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(t_0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
static void
@@ -3163,18 +3423,20 @@
typedef int(* func_t)(int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -3184,19 +3446,21 @@
typedef int(* func_t)(int, int, long *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
PMC *t_2; long i_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIP", &t_0, &t_1, &t_2);
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 = (int)(*fn_pointer)(t_0, t_1, &i_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_2, i_2);
@@ -3207,20 +3471,22 @@
typedef int(* func_t)(int, int, long *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
PMC *t_2; long i_2;
INTVAL t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIPI", &t_0, &t_1, &t_2, &t_3);
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 = (int)(*fn_pointer)(t_0, t_1, &i_2, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_2, i_2);
@@ -3232,20 +3498,22 @@
typedef int(* func_t)(int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
INTVAL t_2;
INTVAL t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIII", &t_0, &t_1, &t_2, &t_3);
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3257,8 +3525,9 @@
typedef int(* func_t)(int, int, int, long, short, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
@@ -3267,12 +3536,13 @@
INTVAL t_3;
INTVAL t_4;
PMC *t_5;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIIIIP", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5);
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, t_4, PMC_IS_NULL((PMC*)t_5) ? (void *)NULL : VTABLE_get_pointer(interp, t_5));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3286,19 +3556,21 @@
typedef int(* func_t)(int, int, long);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "III", &t_0, &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3309,20 +3581,22 @@
typedef int(* func_t)(int, int, long, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
INTVAL t_2;
INTVAL t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIII", &t_0, &t_1, &t_2, &t_3);
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3334,19 +3608,21 @@
typedef int(* func_t)(int, int, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
PMC *t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIP", &t_0, &t_1, &t_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, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3357,19 +3633,21 @@
typedef int(* func_t)(int, int, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -3380,20 +3658,22 @@
typedef int(* func_t)(int, int, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
char *t_2; STRING *ts_2;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -3405,20 +3685,22 @@
typedef int(* func_t)(int, long, short, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
INTVAL t_2;
PMC *t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIIP", &t_0, &t_1, &t_2, &t_3);
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, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3430,19 +3712,21 @@
typedef int(* func_t)(int, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
char *t_1; STRING *ts_1;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_1) Parrot_str_free_cstring(t_1);
@@ -3453,17 +3737,19 @@
typedef int(* func_t)(long);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(t_0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
static void
@@ -3472,18 +3758,20 @@
typedef int(* func_t)(long, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -3493,18 +3781,20 @@
typedef int(* func_t)(long, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
PMC *t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IP", &t_0, &t_1);
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));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -3514,19 +3804,21 @@
typedef int(* func_t)(long, short, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
PMC *t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIP", &t_0, &t_1, &t_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, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3537,19 +3829,21 @@
typedef int(* func_t)(void *, int *, int *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
PMC *t_1; int i_1;
PMC *t_2; int i_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_0, &t_1, &t_2);
i_1 = VTABLE_get_integer(interp, t_1);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 = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), &i_1, &i_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_1, i_1);
VTABLE_set_integer_native(interp, t_2, i_2);
@@ -3560,20 +3854,22 @@
typedef int(* func_t)(void *, int *, int *, int *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
PMC *t_1; int i_1;
PMC *t_2; int i_2;
PMC *t_3; int i_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPP", &t_0, &t_1, &t_2, &t_3);
i_1 = VTABLE_get_integer(interp, t_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), &i_1, &i_2, &i_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_1, i_1);
VTABLE_set_integer_native(interp, t_2, i_2);
@@ -3585,8 +3881,9 @@
typedef int(* func_t)(void *, int *, int *, int *, int *, int *, int *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -3596,12 +3893,13 @@
PMC *t_4; int i_4;
PMC *t_5; int i_5;
PMC *t_6; int i_6;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPPPPP", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6);
i_1 = VTABLE_get_integer(interp, t_1);i_2 = VTABLE_get_integer(interp, t_2);i_3 = VTABLE_get_integer(interp, t_3);i_4 = VTABLE_get_integer(interp, t_4);i_5 = VTABLE_get_integer(interp, t_5);i_6 = VTABLE_get_integer(interp, t_6);
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), &i_1, &i_2, &i_3, &i_4, &i_5, &i_6);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_1, i_1);
VTABLE_set_integer_native(interp, t_2, i_2);
@@ -3616,18 +3914,20 @@
typedef int(* func_t)(void *, long *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
PMC *t_1; long i_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_0, &t_1);
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 = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), &i_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_1, i_1);
}
@@ -3637,20 +3937,22 @@
typedef int(* func_t)(void *, long *, short *, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
PMC *t_1; long i_1;
PMC *t_2; short i_2;
PMC *t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPP", &t_0, &t_1, &t_2, &t_3);
i_1 = VTABLE_get_integer(interp, t_1);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 = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), &i_1, &i_2, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_1, i_1);
VTABLE_set_integer_native(interp, t_2, i_2);
@@ -3662,19 +3964,21 @@
typedef int(* func_t)(void *, long *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
PMC *t_1; long i_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPI", &t_0, &t_1, &t_2);
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 = (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), &i_1, t_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_1, i_1);
@@ -3685,18 +3989,20 @@
typedef int(* func_t)(void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
STRING *t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_0, &t_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), Buffer_bufstart(t_1));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -3706,19 +4012,21 @@
typedef int(* func_t)(void *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_0, &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3729,20 +4037,22 @@
typedef int(* func_t)(void *, int, int, long *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
INTVAL t_2;
PMC *t_3; long i_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIP", &t_0, &t_1, &t_2, &t_3);
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, t_2, &i_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3754,8 +4064,9 @@
typedef int(* func_t)(void *, int, int, long *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -3763,12 +4074,13 @@
INTVAL t_2;
PMC *t_3; long i_3;
INTVAL t_4;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIPI", &t_0, &t_1, &t_2, &t_3, &t_4);
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, t_2, &i_3, t_4);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3781,20 +4093,22 @@
typedef int(* func_t)(void *, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
INTVAL t_2;
INTVAL t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIII", &t_0, &t_1, &t_2, &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, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3806,8 +4120,9 @@
typedef int(* func_t)(void *, int, int, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -3817,12 +4132,13 @@
INTVAL t_4;
INTVAL t_5;
INTVAL t_6;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6);
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, t_6);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3837,8 +4153,9 @@
typedef int(* func_t)(void *, int, int, int, long, short, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -3848,12 +4165,13 @@
INTVAL t_4;
INTVAL t_5;
PMC *t_6;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIIIIP", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6);
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));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3868,20 +4186,22 @@
typedef int(* func_t)(void *, int, int, long);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
INTVAL t_2;
INTVAL t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIII", &t_0, &t_1, &t_2, &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, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3893,8 +4213,9 @@
typedef int(* func_t)(void *, int, int, long, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -3902,12 +4223,13 @@
INTVAL t_2;
INTVAL t_3;
INTVAL t_4;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIII", &t_0, &t_1, &t_2, &t_3, &t_4);
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3920,20 +4242,22 @@
typedef int(* func_t)(void *, int, int, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
INTVAL t_2;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3945,8 +4269,9 @@
typedef int(* func_t)(void *, int, int, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -3954,12 +4279,13 @@
INTVAL t_2;
char *t_3; STRING *ts_3;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3972,8 +4298,9 @@
typedef int(* func_t)(void *, int, long, short, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -3981,12 +4308,13 @@
INTVAL t_2;
INTVAL t_3;
PMC *t_4;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIIP", &t_0, &t_1, &t_2, &t_3, &t_4);
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, PMC_IS_NULL((PMC*)t_4) ? (void *)NULL : VTABLE_get_pointer(interp, t_4));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -3999,19 +4327,21 @@
typedef int(* func_t)(void *, long, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_0, &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -4022,19 +4352,21 @@
typedef int(* func_t)(void *, long, long);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_0, &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -4045,8 +4377,9 @@
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 *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -4058,12 +4391,13 @@
INTVAL t_6;
INTVAL t_7;
INTVAL t_8;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIIIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6, &t_7, &t_8);
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, t_6, t_7, t_8);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -4080,19 +4414,21 @@
typedef int(* func_t)(void *, long, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
PMC *t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIP", &t_0, &t_1, &t_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, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -4103,20 +4439,22 @@
typedef int(* func_t)(void *, long, short, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
INTVAL t_2;
PMC *t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIP", &t_0, &t_1, &t_2, &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, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -4128,18 +4466,20 @@
typedef int(* func_t)(void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
PMC *t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_0, &t_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), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -4149,19 +4489,21 @@
typedef int(* func_t)(void *, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
PMC *t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPI", &t_0, &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -4172,8 +4514,9 @@
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 *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -4186,12 +4529,13 @@
INTVAL t_7;
INTVAL t_8;
INTVAL t_9;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPIIIIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6, &t_7, &t_8, &t_9);
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, t_3, t_4, t_5, t_6, t_7, t_8, t_9);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -4209,20 +4553,22 @@
typedef int(* func_t)(void *, void *, void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
PMC *t_1;
PMC *t_2;
PMC *t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPP", &t_0, &t_1, &t_2, &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), 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), PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -4234,19 +4580,21 @@
typedef int(* func_t)(void *, short, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
PMC *t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIP", &t_0, &t_1, &t_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, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -4257,19 +4605,21 @@
typedef int(* func_t)(void *, char *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
char *t_1; STRING *ts_1;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_1) Parrot_str_free_cstring(t_1);
@@ -4280,20 +4630,22 @@
typedef int(* func_t)(void *, int, char *, long);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
char *t_2; STRING *ts_2;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -4305,17 +4657,19 @@
typedef int(* func_t)(short);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(t_0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
static void
@@ -4324,19 +4678,21 @@
typedef int(* func_t)(short, short *, short *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
PMC *t_1; short i_1;
PMC *t_2; short i_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IPP", &t_0, &t_1, &t_2);
i_1 = VTABLE_get_integer(interp, t_1);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 = (int)(*fn_pointer)(t_0, &i_1, &i_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_1, i_1);
VTABLE_set_integer_native(interp, t_2, i_2);
@@ -4347,20 +4703,22 @@
typedef int(* func_t)(short, short *, short *, short *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
PMC *t_1; short i_1;
PMC *t_2; short i_2;
PMC *t_3; short i_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IPPP", &t_0, &t_1, &t_2, &t_3);
i_1 = VTABLE_get_integer(interp, t_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)(t_0, &i_1, &i_2, &i_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_1, i_1);
VTABLE_set_integer_native(interp, t_2, i_2);
@@ -4372,18 +4730,20 @@
typedef int(* func_t)(short, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
PMC *t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IP", &t_0, &t_1);
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));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -4393,19 +4753,21 @@
typedef int(* func_t)(short, short, short);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "III", &t_0, &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -4416,20 +4778,22 @@
typedef int(* func_t)(short, short, short, short);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
INTVAL t_2;
INTVAL t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIII", &t_0, &t_1, &t_2, &t_3);
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -4441,17 +4805,19 @@
typedef int(* func_t)(char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(t_0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_0) Parrot_str_free_cstring(t_0);
}
static void
@@ -4460,18 +4826,20 @@
typedef int(* func_t)(char *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
char *t_0; STRING *ts_0;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(t_0, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_0) Parrot_str_free_cstring(t_0);
}
@@ -4481,17 +4849,19 @@
typedef int(* func_t)(long *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0; long i_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
i_0 = VTABLE_get_integer(interp, t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(&i_0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_0, i_0);
}
static void
@@ -4500,18 +4870,20 @@
typedef int(* func_t)(long *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0; long i_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_1);
i_0 = VTABLE_get_integer(interp, t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(&i_0, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_0, i_0);
}
@@ -4521,19 +4893,21 @@
typedef int(* func_t)(long *, short *, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0; long i_0;
PMC *t_1; short i_1;
PMC *t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_0, &t_1, &t_2);
i_0 = VTABLE_get_integer(interp, t_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 = (int)(*fn_pointer)(&i_0, &i_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_0, i_0);
VTABLE_set_integer_native(interp, t_1, i_1);
@@ -4544,18 +4918,20 @@
typedef long(* func_t)(int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -4565,18 +4941,20 @@
typedef long(* func_t)(long, long *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
PMC *t_1; long i_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IP", &t_0, &t_1);
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 = (long)(*fn_pointer)(t_0, &i_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_1, i_1);
}
@@ -4586,18 +4964,20 @@
typedef long(* func_t)(void *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_1);
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -4607,19 +4987,21 @@
typedef long(* func_t)(void *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_0, &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -4630,20 +5012,22 @@
typedef long(* func_t)(void *, int *, int *, long);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
PMC *t_1; int i_1;
PMC *t_2; int i_2;
INTVAL t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPI", &t_0, &t_1, &t_2, &t_3);
i_1 = VTABLE_get_integer(interp, t_1);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 = (long)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), &i_1, &i_2, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_1, i_1);
VTABLE_set_integer_native(interp, t_2, i_2);
@@ -4655,19 +5039,21 @@
typedef long(* func_t)(int *, int *, long);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0; int i_0;
PMC *t_1; int i_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPI", &t_0, &t_1, &t_2);
i_0 = VTABLE_get_integer(interp, t_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 = (long)(*fn_pointer)(&i_0, &i_1, t_2);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_0, i_0);
VTABLE_set_integer_native(interp, t_1, i_1);
@@ -4678,12 +5064,14 @@
typedef void *(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
;
+ UNUSED(return_data); /* Potentially unused, at least */
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (void *)(*fn_pointer)();
@@ -4691,7 +5079,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
}
static void
@@ -4700,12 +5088,14 @@
typedef void *(* func_t)(char **);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -4715,7 +5105,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_0) Parrot_str_free_cstring(t_0);
}
static void
@@ -4724,12 +5114,14 @@
typedef void *(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
STRING *t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -4739,7 +5131,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
}
static void
@@ -4748,12 +5140,14 @@
typedef void *(* func_t)(PARROT_INTERP, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -4763,7 +5157,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_1) Parrot_str_free_cstring(t_1);
}
@@ -4773,12 +5167,14 @@
typedef void *(* func_t)(int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
INTVAL t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -4788,7 +5184,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
}
static void
@@ -4797,13 +5193,15 @@
typedef void *(* func_t)(int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
INTVAL t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -4813,7 +5211,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
}
@@ -4823,8 +5221,9 @@
typedef void *(* func_t)(int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -4832,6 +5231,7 @@
INTVAL t_1;
INTVAL t_2;
INTVAL t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIII", &t_0, &t_1, &t_2, &t_3);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -4841,7 +5241,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
@@ -4853,8 +5253,9 @@
typedef void *(* func_t)(int, int, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -4864,6 +5265,7 @@
INTVAL t_3;
INTVAL t_4;
INTVAL t_5;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -4873,7 +5275,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
@@ -4887,8 +5289,9 @@
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 *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -4900,6 +5303,7 @@
INTVAL t_5;
INTVAL t_6;
INTVAL t_7;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIIIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6, &t_7);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -4909,7 +5313,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
@@ -4925,14 +5329,16 @@
typedef void *(* func_t)(void *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
PMC *t_0;
INTVAL t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_0, &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -4942,7 +5348,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
@@ -4953,8 +5359,9 @@
typedef void *(* func_t)(void *, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -4963,6 +5370,7 @@
INTVAL t_2;
INTVAL t_3;
INTVAL t_4;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIII", &t_0, &t_1, &t_2, &t_3, &t_4);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -4972,7 +5380,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
@@ -4985,12 +5393,14 @@
typedef void *(* func_t)(char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -5000,7 +5410,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_0) Parrot_str_free_cstring(t_0);
}
static void
@@ -5009,14 +5419,16 @@
typedef void *(* func_t)(char *, void *, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
char *t_0; STRING *ts_0;
PMC *t_1;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -5026,7 +5438,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_0) Parrot_str_free_cstring(t_0);
@@ -5037,8 +5449,9 @@
typedef void *(* func_t)(char *, char *, char *, char *, char *, char *, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -5049,6 +5462,7 @@
char *t_4; STRING *ts_4;
char *t_5; STRING *ts_5;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -5058,7 +5472,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
if (t_0) Parrot_str_free_cstring(t_0);
if (t_1) Parrot_str_free_cstring(t_1);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -5073,15 +5487,17 @@
typedef short(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
;
+ UNUSED(return_data); /* Potentially unused, at least */
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (short)(*fn_pointer)();
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
static void
@@ -5090,17 +5506,19 @@
typedef char *(* func_t)(void);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
;
+ UNUSED(return_data); /* Potentially unused, at least */
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)();
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
}
static void
@@ -5109,19 +5527,21 @@
typedef char *(* func_t)(int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
INTVAL t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)(t_0);
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
}
static void
@@ -5130,20 +5550,22 @@
typedef char *(* func_t)(int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
INTVAL t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_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);
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
}
@@ -5153,20 +5575,22 @@
typedef char *(* func_t)(void *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
PMC *t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_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);
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
}
@@ -5176,21 +5600,23 @@
typedef char *(* func_t)(void *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
PMC *t_0;
INTVAL t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_0, &t_1, &t_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);
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
@@ -5201,19 +5627,21 @@
typedef char *(* func_t)(char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)(t_0);
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
if (t_0) Parrot_str_free_cstring(t_0);
}
static void
@@ -5222,21 +5650,23 @@
typedef char *(* func_t)(char *, long, long *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
char *t_0; STRING *ts_0;
INTVAL t_1;
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);
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);
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
if (t_0) Parrot_str_free_cstring(t_0);
VTABLE_set_integer_native(interp, t_2, i_2);
@@ -5247,20 +5677,22 @@
typedef char *(* func_t)(char *, long *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
char *t_0; STRING *ts_0;
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);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)(t_0, &i_1);
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
if (t_0) Parrot_str_free_cstring(t_0);
VTABLE_set_integer_native(interp, t_1, i_1);
}
@@ -5270,18 +5702,20 @@
typedef int(* func_t)(short, char);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -5291,18 +5725,20 @@
typedef short(* func_t)(short, char);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (short)(*fn_pointer)(t_0, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -5312,18 +5748,20 @@
typedef char(* func_t)(short, char);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_0, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -5333,19 +5771,21 @@
typedef int(* func_t)(int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
INTVAL t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "III", &t_0, &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -5356,18 +5796,20 @@
typedef int(* func_t)(int, int *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_0;
PMC *t_1; int i_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IP", &t_0, &t_1);
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 = (int)(*fn_pointer)(t_0, &i_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_1, i_1);
}
@@ -5377,19 +5819,21 @@
typedef char *(* func_t)(void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
STRING *t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)(Buffer_bufstart(t_0));
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
}
static void
@@ -5398,19 +5842,21 @@
typedef char *(* func_t)(char **);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
char * return_data;
STRING *final_destination;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (char *)(*fn_pointer)(&t_0);
final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "S", final_destination);
if (t_0) Parrot_str_free_cstring(t_0);
}
static void
@@ -5419,11 +5865,13 @@
typedef void(* func_t)(PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -5438,12 +5886,14 @@
typedef void(* func_t)(void *, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_0;
PMC * t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_0, &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -5459,13 +5909,15 @@
typedef void *(* func_t)(int, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
INTVAL t_0;
PMC *t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "IP", &t_0, &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -5475,7 +5927,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
}
@@ -5485,18 +5937,20 @@
typedef int(* func_t)(int *, int *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0; int i_0;
PMC *t_1; int i_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_0, &t_1);
i_0 = VTABLE_get_integer(interp, t_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 = (int)(*fn_pointer)(&i_0, &i_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
VTABLE_set_integer_native(interp, t_0, i_0);
VTABLE_set_integer_native(interp, t_1, i_1);
}
@@ -5506,13 +5960,15 @@
typedef void(* func_t)(void *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_0;
INTVAL t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PII", &t_0, &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -5529,11 +5985,13 @@
typedef void(* func_t)(PARROT_INTERP, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "Pi", &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -5549,17 +6007,19 @@
typedef int(* func_t)(PARROT_INTERP, PMC *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "Pi", &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(interp, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -5569,18 +6029,20 @@
typedef int(* func_t)(PARROT_INTERP, PMC *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
INTVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiI", &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -5591,18 +6053,20 @@
typedef int(* func_t)(PARROT_INTERP, PMC *, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC * t_1;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -5613,17 +6077,19 @@
typedef int(* func_t)(PARROT_INTERP, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
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;
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(interp, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_1) Parrot_str_free_cstring(t_1);
}
@@ -5633,17 +6099,19 @@
typedef int(* func_t)(PARROT_INTERP, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_1);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(interp, t_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
}
@@ -5653,12 +6121,14 @@
typedef void(* func_t)(void **, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_0; void *v_0;
INTVAL t_1;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_0, &t_1);
v_0 = VTABLE_get_pointer(interp, t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -5674,8 +6144,9 @@
typedef void *(* func_t)(void *, void *, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -5684,6 +6155,7 @@
INTVAL t_2;
INTVAL t_3;
INTVAL t_4;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPIII", &t_0, &t_1, &t_2, &t_3, &t_4);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -5693,7 +6165,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
@@ -5706,8 +6178,9 @@
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 *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC * final_destination = PMCNULL;
@@ -5720,6 +6193,7 @@
INTVAL t_6;
INTVAL t_7;
INTVAL t_8;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPIIIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6, &t_7, &t_8);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -5729,7 +6203,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "P", final_destination);
@@ -5746,20 +6220,22 @@
typedef int(* func_t)(void *, void *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
PMC *t_1;
INTVAL t_2;
INTVAL t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPII", &t_0, &t_1, &t_2, &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), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -5771,8 +6247,9 @@
typedef int(* func_t)(void *, void *, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -5780,12 +6257,13 @@
INTVAL t_2;
INTVAL t_3;
INTVAL t_4;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPIII", &t_0, &t_1, &t_2, &t_3, &t_4);
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, t_3, t_4);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -5798,8 +6276,9 @@
typedef int(* func_t)(void *, void *, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -5808,12 +6287,13 @@
INTVAL t_3;
INTVAL t_4;
INTVAL t_5;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_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), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3, t_4, t_5);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -5827,8 +6307,9 @@
typedef int(* func_t)(void *, void *, int, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -5838,12 +6319,13 @@
INTVAL t_4;
INTVAL t_5;
INTVAL t_6;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6);
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, t_3, t_4, t_5, t_6);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -5858,8 +6340,9 @@
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 *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -5870,12 +6353,13 @@
INTVAL t_5;
INTVAL t_6;
INTVAL t_7;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPIIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6, &t_7);
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, t_3, t_4, t_5, t_6, t_7);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -5891,19 +6375,21 @@
typedef int(* func_t)(void *, void *, char *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
PMC *t_1;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -5914,20 +6400,22 @@
typedef int(* func_t)(void *, void *, void *, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
PMC *t_1;
PMC *t_2;
INTVAL t_3;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPI", &t_0, &t_1, &t_2, &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), 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), t_3);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -5939,8 +6427,9 @@
typedef int(* func_t)(void *, void *, void *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -5948,12 +6437,13 @@
PMC *t_2;
INTVAL t_3;
INTVAL t_4;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPII", &t_0, &t_1, &t_2, &t_3, &t_4);
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), PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), t_3, t_4);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -5966,8 +6456,9 @@
typedef int(* func_t)(void *, void *, void *, int, int, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -5977,12 +6468,13 @@
INTVAL t_4;
INTVAL t_5;
INTVAL t_6;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6);
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), PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), t_3, t_4, t_5, t_6);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -5997,8 +6489,9 @@
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 *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -6011,12 +6504,13 @@
INTVAL t_7;
INTVAL t_8;
INTVAL t_9;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPPPIIIIII", &t_0, &t_1, &t_2, &t_3, &t_4, &t_5, &t_6, &t_7, &t_8, &t_9);
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), PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3), t_4, t_5, t_6, t_7, t_8, t_9);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -6034,13 +6528,15 @@
typedef void(* func_t)(float, float, float);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
FLOATVAL t_0;
FLOATVAL t_1;
FLOATVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "NNN", &t_0, &t_1, &t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -6057,11 +6553,13 @@
typedef void(* func_t)(void **);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_0; void *v_0;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_0);
v_0 = VTABLE_get_pointer(interp, t_0);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -6076,13 +6574,15 @@
typedef void(* func_t)(void **, void **, void **);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
void * return_data;
PMC *t_0; void *v_0;
PMC *t_1; void *v_1;
PMC *t_2; void *v_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPP", &t_0, &t_1, &t_2);
v_0 = VTABLE_get_pointer(interp, t_0);v_1 = VTABLE_get_pointer(interp, t_1);v_2 = VTABLE_get_pointer(interp, t_2);
GETATTR_NCI_orig_func(interp, nci, orig_func);
@@ -6099,18 +6599,20 @@
typedef int(* func_t)(char *, void **);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
char *t_0; STRING *ts_0;
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);
GETATTR_NCI_orig_func(interp, nci, orig_func);
fn_pointer = (func_t)D2FPTR(orig_func);
return_data = (int)(*fn_pointer)(t_0, &v_1);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_0) Parrot_str_free_cstring(t_0);
VTABLE_set_pointer(interp, t_1, v_1);
}
@@ -6120,8 +6622,9 @@
typedef int(* func_t)(void *, char *, int, void **, void *);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -6129,12 +6632,13 @@
INTVAL t_2;
PMC *t_3; void *v_3;
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);
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));
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_1) Parrot_str_free_cstring(t_1);
@@ -6147,19 +6651,21 @@
typedef int(* func_t)(void *, int, double);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
INTVAL t_1;
FLOATVAL t_2;
+ UNUSED(return_data); /* Potentially unused, at least */
Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIN", &t_0, &t_1, &t_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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
@@ -6170,8 +6676,9 @@
typedef int(* func_t)(void *, int, char *, int, int);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
INTVAL return_data;
PMC *t_0;
@@ -6179,12 +6686,13 @@
char *t_2; STRING *ts_2;
INTVAL t_3;
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;
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);
- Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "I", return_data);
if (t_2) Parrot_str_free_cstring(t_2);
@@ -6194,19 +6702,14 @@
void
Parrot_nci_load_extra_thunks(PARROT_INTERP)
-;
- void
-Parrot_nci_load_extra_thunks(PARROT_INTERP)
{
- PMC *iglobals;
+ PMC * const iglobals = interp->iglobals;
PMC *nci_funcs;
PMC *temp_pmc;
- iglobals = interp->iglobals;
PARROT_ASSERT(!(PMC_IS_NULL(iglobals)));
- nci_funcs = VTABLE_get_pmc_keyed_int(interp, iglobals,
- IGLOBALS_NCI_FUNCS);
+ nci_funcs = VTABLE_get_pmc_keyed_int(interp, iglobals, IGLOBALS_NCI_FUNCS);
PARROT_ASSERT(!(PMC_IS_NULL(nci_funcs)));
temp_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
Modified: branches/avl_string_cache/src/oo.c
==============================================================================
--- branches/avl_string_cache/src/oo.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/oo.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -219,8 +219,7 @@
/*
-=item C<PMC * Parrot_oo_clone_object(PARROT_INTERP, PMC *pmc, PMC *class_, PMC
-*dest)>
+=item C<PMC * Parrot_oo_clone_object(PARROT_INTERP, PMC *pmc, PMC *dest)>
Clone an Object PMC. If an existing PMC C<dest> is provided, reuse that
PMC to store copies of the data. Otherwise, create a new PMC and populate
@@ -232,11 +231,10 @@
PARROT_CANNOT_RETURN_NULL
PMC *
-Parrot_oo_clone_object(PARROT_INTERP, ARGIN(PMC *pmc),
- ARGMOD_NULLOK(PMC *class_), ARGMOD_NULLOK(PMC *dest))
+Parrot_oo_clone_object(PARROT_INTERP, ARGIN(PMC *pmc), ARGMOD_NULLOK(PMC *dest))
{
ASSERT_ARGS(Parrot_oo_clone_object)
- Parrot_Object_attributes *obj;
+ Parrot_Object_attributes *obj = PARROT_OBJECT(pmc);
Parrot_Object_attributes *cloned_guts;
Parrot_Class_attributes *_class;
PMC *cloned;
@@ -244,13 +242,9 @@
INTVAL i, num_attrs;
if (!PMC_IS_NULL(dest)) {
- PARROT_ASSERT(!PMC_IS_NULL(class_));
- PARROT_ASSERT(class_->vtable->base_type == enum_class_Class);
- obj = PARROT_OBJECT(pmc);
cloned = dest;
}
else {
- obj = PARROT_OBJECT(pmc);
cloned = Parrot_pmc_new_noinit(interp, enum_class_Object);
}
@@ -268,7 +262,7 @@
/* Now clone attributes list.class. */
cloned_guts = (Parrot_Object_attributes *) PMC_data(cloned);
cloned_guts->_class = obj->_class;
- cloned_guts->attrib_store = NULL;
+ cloned_guts->attrib_store = NULL; /* XXX Do we need to set ->attrib_store twice? */
cloned_guts->attrib_store = VTABLE_clone(interp, obj->attrib_store);
num_attrs = VTABLE_elements(interp, cloned_guts->attrib_store);
for (i = 0; i < num_attrs; i++) {
@@ -282,9 +276,10 @@
/* Some of the attributes may have been the PMCs providing storage for any
* PMCs we inherited from; also need to clone those. */
if (CLASS_has_alien_parents_TEST(obj->_class)) {
+ int j;
/* Locate any PMC parents. */
- for (i = 0; i < num_classes; i++) {
- PMC * const cur_class = VTABLE_get_pmc_keyed_int(interp, _class->all_parents, i);
+ for (j = 0; j < num_classes; j++) {
+ PMC * const cur_class = VTABLE_get_pmc_keyed_int(interp, _class->all_parents, j);
if (cur_class->vtable->base_type == enum_class_PMCProxy) {
/* Clone this PMC too. */
STRING * const proxy = CONST_STRING(interp, "proxy");
Modified: branches/avl_string_cache/src/ops/bit.ops
==============================================================================
--- branches/avl_string_cache/src/ops/bit.ops Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/ops/bit.ops Thu Apr 22 09:55:26 2010 (r45889)
@@ -109,37 +109,37 @@
=cut
-inline op bands(inout STR, in STR) :base_core {
- Parrot_str_bitwise_and(interp, $1, $2, &$1);
+inline op bands(inout STR, in STR) :base_core :deprecated {
+ $1 = Parrot_str_bitwise_and(interp, $1, $2);
}
inline op bands(invar PMC, in STR) :base_core {
STRING * const a = VTABLE_get_string(interp, $1);
- STRING * const b = Parrot_str_bitwise_and(interp, a, $2, NULL);
+ STRING * const b = Parrot_str_bitwise_and(interp, a, $2);
VTABLE_set_string_native(interp, $1, b);
}
inline op bands(invar PMC, invar PMC) :base_core {
STRING * a = VTABLE_get_string(interp, $1);
STRING * const b = VTABLE_get_string(interp, $2);
- a = Parrot_str_bitwise_and(interp, a, b, NULL);
+ a = Parrot_str_bitwise_and(interp, a, b);
VTABLE_set_string_native(interp, $1, a);
}
inline op bands(out STR, in STR, in STR) :base_core {
- $1 = Parrot_str_bitwise_and(interp, $2, $3, NULL);
+ $1 = Parrot_str_bitwise_and(interp, $2, $3);
}
inline op bands(invar PMC, invar PMC, in STR) :base_core {
STRING * const a = VTABLE_get_string(interp, $2);
- STRING * const b = Parrot_str_bitwise_and(interp, a, $3, NULL);
+ STRING * const b = Parrot_str_bitwise_and(interp, a, $3);
VTABLE_set_string_native(interp, $1, b);
}
inline op bands(invar PMC, invar PMC, invar PMC) :base_core {
STRING * const a = VTABLE_get_string(interp, $2);
STRING * const b = VTABLE_get_string(interp, $3);
- STRING * const c = Parrot_str_bitwise_and(interp, a, b, NULL);
+ STRING * const c = Parrot_str_bitwise_and(interp, a, b);
VTABLE_set_string_native(interp, $1, c);
}
@@ -187,23 +187,23 @@
=cut
-inline op bnots(inout STR) :base_core {
- Parrot_str_bitwise_not(interp, $1, &$1);
+inline op bnots(inout STR) :base_core :deprecated {
+ $1 = Parrot_str_bitwise_not(interp, $1);
}
inline op bnots(out STR, in STR) :base_core {
- Parrot_str_bitwise_not(interp, $2, &$1);
+ $1 = Parrot_str_bitwise_not(interp, $2);
}
inline op bnots(invar PMC) :base_core {
STRING * const a = VTABLE_get_string(interp, $1);
- STRING * const b = Parrot_str_bitwise_not(interp, a, NULL);
+ STRING * const b = Parrot_str_bitwise_not(interp, a);
VTABLE_set_string_native(interp, $1, b);
}
inline op bnots(out PMC, invar PMC) :base_core {
STRING * const a = VTABLE_get_string(interp, $2);
- STRING * const b = Parrot_str_bitwise_not(interp, a, NULL);
+ STRING * const b = Parrot_str_bitwise_not(interp, a);
VTABLE_set_string_native(interp, $1, b);
}
@@ -279,37 +279,37 @@
=cut
-inline op bors(inout STR, in STR) :base_core {
- Parrot_str_bitwise_or(interp, $1, $2, &$1);
+inline op bors(inout STR, in STR) :base_core :deprecated {
+ $1 = Parrot_str_bitwise_or(interp, $1, $2);
}
inline op bors(invar PMC, in STR) :base_core {
STRING * const a = VTABLE_get_string(interp, $1);
- STRING * const b = Parrot_str_bitwise_or(interp, a, $2, NULL);
+ STRING * const b = Parrot_str_bitwise_or(interp, a, $2);
VTABLE_set_string_native(interp, $1, b);
}
inline op bors(invar PMC, invar PMC) :base_core {
STRING * const a = VTABLE_get_string(interp, $1);
STRING * const b = VTABLE_get_string(interp, $2);
- STRING * const c = Parrot_str_bitwise_or(interp, a, b, NULL);
+ STRING * const c = Parrot_str_bitwise_or(interp, a, b);
VTABLE_set_string_native(interp, $1, c);
}
inline op bors(out STR, in STR, in STR) :base_core {
- $1 = Parrot_str_bitwise_or(interp, $2, $3, NULL);
+ $1 = Parrot_str_bitwise_or(interp, $2, $3);
}
inline op bors(invar PMC, invar PMC, in STR) :base_core {
STRING * const b = VTABLE_get_string(interp, $2);
- STRING * const c = Parrot_str_bitwise_or(interp, b, $3, NULL);
+ STRING * const c = Parrot_str_bitwise_or(interp, b, $3);
VTABLE_set_string_native(interp, $1, c);
}
inline op bors(invar PMC, invar PMC, invar PMC) :base_core {
STRING * const a = VTABLE_get_string(interp, $2);
STRING * const b = VTABLE_get_string(interp, $3);
- STRING * const c = Parrot_str_bitwise_or(interp, a, b, NULL);
+ STRING * const c = Parrot_str_bitwise_or(interp, a, b);
VTABLE_set_string_native(interp, $1, c);
}
@@ -579,37 +579,37 @@
=cut
-inline op bxors(inout STR, in STR) :base_core {
- Parrot_str_bitwise_xor(interp, $1, $2, &$1);
+inline op bxors(inout STR, in STR) :base_core :deprecated {
+ $1 = Parrot_str_bitwise_xor(interp, $1, $2);
}
inline op bxors(invar PMC, in STR) :base_core {
STRING * const a = VTABLE_get_string(interp, $1);
- STRING * const b = Parrot_str_bitwise_xor(interp, a, $2, NULL);
+ STRING * const b = Parrot_str_bitwise_xor(interp, a, $2);
VTABLE_set_string_native(interp, $1, b);
}
inline op bxors(invar PMC, invar PMC) :base_core {
STRING * const a = VTABLE_get_string(interp, $1);
STRING * const b = VTABLE_get_string(interp, $2);
- STRING * const c = Parrot_str_bitwise_xor(interp, a, b, NULL);
+ STRING * const c = Parrot_str_bitwise_xor(interp, a, b);
VTABLE_set_string_native(interp, $1, c);
}
inline op bxors(out STR, in STR, in STR) :base_core {
- $1 = Parrot_str_bitwise_xor(interp, $2, $3, NULL);
+ $1 = Parrot_str_bitwise_xor(interp, $2, $3);
}
inline op bxors(invar PMC, invar PMC, in STR) :base_core {
STRING * const a = VTABLE_get_string(interp, $2);
- STRING * const b = Parrot_str_bitwise_xor(interp, a, $3, NULL);
+ STRING * const b = Parrot_str_bitwise_xor(interp, a, $3);
VTABLE_set_string_native(interp, $1, b);
}
inline op bxors(invar PMC, invar PMC, invar PMC) :base_core {
STRING * const a = VTABLE_get_string(interp, $2);
STRING * const b = VTABLE_get_string(interp, $3);
- STRING * const c = Parrot_str_bitwise_xor(interp, a, b, NULL);
+ STRING * const c = Parrot_str_bitwise_xor(interp, a, b);
VTABLE_set_string_native(interp, $1, c);
}
Modified: branches/avl_string_cache/src/ops/core.ops
==============================================================================
--- branches/avl_string_cache/src/ops/core.ops Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/ops/core.ops Thu Apr 22 09:55:26 2010 (r45889)
@@ -746,7 +746,9 @@
PMC * except = $1;
opcode_t *dest;
opcode_t * const ret = expr NEXT();
- PMC * const resume = new_ret_continuation_pmc(interp, ret);
+ PMC * const resume = pmc_new(interp, enum_class_Continuation);
+
+ VTABLE_set_pointer(interp, resume, ret);
if (PMC_IS_NULL(except) || except->vtable->base_type != enum_class_Exception)
except = Parrot_ex_build_exception(interp, EXCEPT_fatal,
@@ -792,10 +794,12 @@
inline op die(in STR) :flow {
opcode_t *dest;
opcode_t * const ret = expr NEXT();
- PMC * const resume = new_ret_continuation_pmc(interp, ret);
+ PMC * const resume = pmc_new(interp, enum_class_Continuation);
PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_error,
CONTROL_ERROR, $1);
+ VTABLE_set_pointer(interp, resume, ret);
+
VTABLE_set_attr_str(interp, exception,
Parrot_str_new_constant(interp, "resume"), resume);
dest = Parrot_ex_throw_from_op(interp, exception, ret);
@@ -805,11 +809,13 @@
inline op die(in PMC) :flow {
opcode_t *dest;
opcode_t * const ret = expr NEXT();
- PMC * const resume = new_ret_continuation_pmc(interp, ret);
+ PMC * const resume = pmc_new(interp, enum_class_Continuation);
STRING * const msg = PMC_IS_NULL($1) ? NULL : VTABLE_get_string(interp, $1);
PMC * const exception =
Parrot_ex_build_exception(interp, EXCEPT_error, CONTROL_ERROR, msg);
+ VTABLE_set_pointer(interp, resume, ret);
+
VTABLE_set_attr_str(interp, exception,
Parrot_str_new_constant(interp, "resume"), resume);
dest = Parrot_ex_throw_from_op(interp, exception, ret);
@@ -831,9 +837,11 @@
inline op exit(in INT) :flow {
opcode_t *dest;
opcode_t * const ret = expr NEXT();
- PMC * const resume = new_ret_continuation_pmc(interp, ret);
+ PMC * const resume = pmc_new(interp, enum_class_Continuation);
PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit, $1, NULL);
+ VTABLE_set_pointer(interp, resume, ret);
+
VTABLE_set_attr_str(interp, exception,
Parrot_str_new_constant(interp, "resume"), resume);
VTABLE_set_integer_keyed_str(interp, exception,
Modified: branches/avl_string_cache/src/ops/ops.num
==============================================================================
--- branches/avl_string_cache/src/ops/ops.num Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/ops/ops.num Thu Apr 22 09:55:26 2010 (r45889)
@@ -1087,193 +1087,209 @@
substr_s_p_ic_i 1063
substr_s_p_i_ic 1064
substr_s_p_ic_ic 1065
-index_i_s_s 1066
-index_i_sc_s 1067
-index_i_s_sc 1068
-index_i_sc_sc 1069
-index_i_s_s_i 1070
-index_i_sc_s_i 1071
-index_i_s_sc_i 1072
-index_i_sc_sc_i 1073
-index_i_s_s_ic 1074
-index_i_sc_s_ic 1075
-index_i_s_sc_ic 1076
-index_i_sc_sc_ic 1077
-sprintf_s_s_p 1078
-sprintf_s_sc_p 1079
-sprintf_p_p_p 1080
-new_s 1081
-new_s_i 1082
-new_s_ic 1083
-stringinfo_i_s_i 1084
-stringinfo_i_sc_i 1085
-stringinfo_i_s_ic 1086
-stringinfo_i_sc_ic 1087
-upcase_s_s 1088
-upcase_s_sc 1089
-upcase_s 1090
-downcase_s_s 1091
-downcase_s_sc 1092
-downcase_s 1093
-titlecase_s_s 1094
-titlecase_s_sc 1095
-titlecase_s 1096
-join_s_s_p 1097
-join_s_sc_p 1098
-split_p_s_s 1099
-split_p_sc_s 1100
-split_p_s_sc 1101
-split_p_sc_sc 1102
-charset_i_s 1103
-charset_i_sc 1104
-charsetname_s_i 1105
-charsetname_s_ic 1106
-find_charset_i_s 1107
-find_charset_i_sc 1108
-trans_charset_s_i 1109
-trans_charset_s_ic 1110
-trans_charset_s_s_i 1111
-trans_charset_s_sc_i 1112
-trans_charset_s_s_ic 1113
-trans_charset_s_sc_ic 1114
-encoding_i_s 1115
-encoding_i_sc 1116
-encodingname_s_i 1117
-encodingname_s_ic 1118
-find_encoding_i_s 1119
-find_encoding_i_sc 1120
-trans_encoding_s_i 1121
-trans_encoding_s_ic 1122
-trans_encoding_s_s_i 1123
-trans_encoding_s_sc_i 1124
-trans_encoding_s_s_ic 1125
-trans_encoding_s_sc_ic 1126
-is_cclass_i_i_s_i 1127
-is_cclass_i_ic_s_i 1128
-is_cclass_i_i_sc_i 1129
-is_cclass_i_ic_sc_i 1130
-is_cclass_i_i_s_ic 1131
-is_cclass_i_ic_s_ic 1132
-is_cclass_i_i_sc_ic 1133
-is_cclass_i_ic_sc_ic 1134
-find_cclass_i_i_s_i_i 1135
-find_cclass_i_ic_s_i_i 1136
-find_cclass_i_i_sc_i_i 1137
-find_cclass_i_ic_sc_i_i 1138
-find_cclass_i_i_s_ic_i 1139
-find_cclass_i_ic_s_ic_i 1140
-find_cclass_i_i_sc_ic_i 1141
-find_cclass_i_ic_sc_ic_i 1142
-find_cclass_i_i_s_i_ic 1143
-find_cclass_i_ic_s_i_ic 1144
-find_cclass_i_i_sc_i_ic 1145
-find_cclass_i_ic_sc_i_ic 1146
-find_cclass_i_i_s_ic_ic 1147
-find_cclass_i_ic_s_ic_ic 1148
-find_cclass_i_i_sc_ic_ic 1149
-find_cclass_i_ic_sc_ic_ic 1150
-find_not_cclass_i_i_s_i_i 1151
-find_not_cclass_i_ic_s_i_i 1152
-find_not_cclass_i_i_sc_i_i 1153
-find_not_cclass_i_ic_sc_i_i 1154
-find_not_cclass_i_i_s_ic_i 1155
-find_not_cclass_i_ic_s_ic_i 1156
-find_not_cclass_i_i_sc_ic_i 1157
-find_not_cclass_i_ic_sc_ic_i 1158
-find_not_cclass_i_i_s_i_ic 1159
-find_not_cclass_i_ic_s_i_ic 1160
-find_not_cclass_i_i_sc_i_ic 1161
-find_not_cclass_i_ic_sc_i_ic 1162
-find_not_cclass_i_i_s_ic_ic 1163
-find_not_cclass_i_ic_s_ic_ic 1164
-find_not_cclass_i_i_sc_ic_ic 1165
-find_not_cclass_i_ic_sc_ic_ic 1166
-escape_s_s 1167
-compose_s_s 1168
-compose_s_sc 1169
-spawnw_i_s 1170
-spawnw_i_sc 1171
-spawnw_i_p 1172
-err_i 1173
-err_s 1174
-err_s_i 1175
-err_s_ic 1176
-time_i 1177
-time_n 1178
-gmtime_s_i 1179
-gmtime_s_ic 1180
-localtime_s_i 1181
-localtime_s_ic 1182
-decodetime_p_i 1183
-decodetime_p_ic 1184
-decodelocaltime_p_i 1185
-decodelocaltime_p_ic 1186
-sysinfo_s_i 1187
-sysinfo_s_ic 1188
-sysinfo_i_i 1189
-sysinfo_i_ic 1190
-sleep_i 1191
-sleep_ic 1192
-sleep_n 1193
-sleep_nc 1194
-sizeof_i_i 1195
-sizeof_i_ic 1196
-store_lex_s_p 1197
-store_lex_sc_p 1198
-store_dynamic_lex_s_p 1199
-store_dynamic_lex_sc_p 1200
-find_lex_p_s 1201
-find_lex_p_sc 1202
-find_dynamic_lex_p_s 1203
-find_dynamic_lex_p_sc 1204
-find_caller_lex_p_s 1205
-find_caller_lex_p_sc 1206
-get_namespace_p 1207
-get_namespace_p_p 1208
-get_namespace_p_pc 1209
-get_hll_namespace_p 1210
-get_hll_namespace_p_p 1211
-get_hll_namespace_p_pc 1212
-get_root_namespace_p 1213
-get_root_namespace_p_p 1214
-get_root_namespace_p_pc 1215
-get_global_p_s 1216
-get_global_p_sc 1217
-get_global_p_p_s 1218
-get_global_p_pc_s 1219
-get_global_p_p_sc 1220
-get_global_p_pc_sc 1221
-get_hll_global_p_s 1222
-get_hll_global_p_sc 1223
-get_hll_global_p_p_s 1224
-get_hll_global_p_pc_s 1225
-get_hll_global_p_p_sc 1226
-get_hll_global_p_pc_sc 1227
-get_root_global_p_s 1228
-get_root_global_p_sc 1229
-get_root_global_p_p_s 1230
-get_root_global_p_pc_s 1231
-get_root_global_p_p_sc 1232
-get_root_global_p_pc_sc 1233
-set_global_s_p 1234
-set_global_sc_p 1235
-set_global_p_s_p 1236
-set_global_pc_s_p 1237
-set_global_p_sc_p 1238
-set_global_pc_sc_p 1239
-set_hll_global_s_p 1240
-set_hll_global_sc_p 1241
-set_hll_global_p_s_p 1242
-set_hll_global_pc_s_p 1243
-set_hll_global_p_sc_p 1244
-set_hll_global_pc_sc_p 1245
-set_root_global_s_p 1246
-set_root_global_sc_p 1247
-set_root_global_p_s_p 1248
-set_root_global_pc_s_p 1249
-set_root_global_p_sc_p 1250
-set_root_global_pc_sc_p 1251
-find_name_p_s 1252
-find_name_p_sc 1253
-find_sub_not_null_p_s 1254
-find_sub_not_null_p_sc 1255
+replace_s_s_i_i_s 1066
+replace_s_sc_i_i_s 1067
+replace_s_s_ic_i_s 1068
+replace_s_sc_ic_i_s 1069
+replace_s_s_i_ic_s 1070
+replace_s_sc_i_ic_s 1071
+replace_s_s_ic_ic_s 1072
+replace_s_sc_ic_ic_s 1073
+replace_s_s_i_i_sc 1074
+replace_s_sc_i_i_sc 1075
+replace_s_s_ic_i_sc 1076
+replace_s_sc_ic_i_sc 1077
+replace_s_s_i_ic_sc 1078
+replace_s_sc_i_ic_sc 1079
+replace_s_s_ic_ic_sc 1080
+replace_s_sc_ic_ic_sc 1081
+index_i_s_s 1082
+index_i_sc_s 1083
+index_i_s_sc 1084
+index_i_sc_sc 1085
+index_i_s_s_i 1086
+index_i_sc_s_i 1087
+index_i_s_sc_i 1088
+index_i_sc_sc_i 1089
+index_i_s_s_ic 1090
+index_i_sc_s_ic 1091
+index_i_s_sc_ic 1092
+index_i_sc_sc_ic 1093
+sprintf_s_s_p 1094
+sprintf_s_sc_p 1095
+sprintf_p_p_p 1096
+new_s 1097
+new_s_i 1098
+new_s_ic 1099
+stringinfo_i_s_i 1100
+stringinfo_i_sc_i 1101
+stringinfo_i_s_ic 1102
+stringinfo_i_sc_ic 1103
+upcase_s_s 1104
+upcase_s_sc 1105
+upcase_s 1106
+downcase_s_s 1107
+downcase_s_sc 1108
+downcase_s 1109
+titlecase_s_s 1110
+titlecase_s_sc 1111
+titlecase_s 1112
+join_s_s_p 1113
+join_s_sc_p 1114
+split_p_s_s 1115
+split_p_sc_s 1116
+split_p_s_sc 1117
+split_p_sc_sc 1118
+charset_i_s 1119
+charset_i_sc 1120
+charsetname_s_i 1121
+charsetname_s_ic 1122
+find_charset_i_s 1123
+find_charset_i_sc 1124
+trans_charset_s_i 1125
+trans_charset_s_ic 1126
+trans_charset_s_s_i 1127
+trans_charset_s_sc_i 1128
+trans_charset_s_s_ic 1129
+trans_charset_s_sc_ic 1130
+encoding_i_s 1131
+encoding_i_sc 1132
+encodingname_s_i 1133
+encodingname_s_ic 1134
+find_encoding_i_s 1135
+find_encoding_i_sc 1136
+trans_encoding_s_i 1137
+trans_encoding_s_ic 1138
+trans_encoding_s_s_i 1139
+trans_encoding_s_sc_i 1140
+trans_encoding_s_s_ic 1141
+trans_encoding_s_sc_ic 1142
+is_cclass_i_i_s_i 1143
+is_cclass_i_ic_s_i 1144
+is_cclass_i_i_sc_i 1145
+is_cclass_i_ic_sc_i 1146
+is_cclass_i_i_s_ic 1147
+is_cclass_i_ic_s_ic 1148
+is_cclass_i_i_sc_ic 1149
+is_cclass_i_ic_sc_ic 1150
+find_cclass_i_i_s_i_i 1151
+find_cclass_i_ic_s_i_i 1152
+find_cclass_i_i_sc_i_i 1153
+find_cclass_i_ic_sc_i_i 1154
+find_cclass_i_i_s_ic_i 1155
+find_cclass_i_ic_s_ic_i 1156
+find_cclass_i_i_sc_ic_i 1157
+find_cclass_i_ic_sc_ic_i 1158
+find_cclass_i_i_s_i_ic 1159
+find_cclass_i_ic_s_i_ic 1160
+find_cclass_i_i_sc_i_ic 1161
+find_cclass_i_ic_sc_i_ic 1162
+find_cclass_i_i_s_ic_ic 1163
+find_cclass_i_ic_s_ic_ic 1164
+find_cclass_i_i_sc_ic_ic 1165
+find_cclass_i_ic_sc_ic_ic 1166
+find_not_cclass_i_i_s_i_i 1167
+find_not_cclass_i_ic_s_i_i 1168
+find_not_cclass_i_i_sc_i_i 1169
+find_not_cclass_i_ic_sc_i_i 1170
+find_not_cclass_i_i_s_ic_i 1171
+find_not_cclass_i_ic_s_ic_i 1172
+find_not_cclass_i_i_sc_ic_i 1173
+find_not_cclass_i_ic_sc_ic_i 1174
+find_not_cclass_i_i_s_i_ic 1175
+find_not_cclass_i_ic_s_i_ic 1176
+find_not_cclass_i_i_sc_i_ic 1177
+find_not_cclass_i_ic_sc_i_ic 1178
+find_not_cclass_i_i_s_ic_ic 1179
+find_not_cclass_i_ic_s_ic_ic 1180
+find_not_cclass_i_i_sc_ic_ic 1181
+find_not_cclass_i_ic_sc_ic_ic 1182
+escape_s_s 1183
+compose_s_s 1184
+compose_s_sc 1185
+spawnw_i_s 1186
+spawnw_i_sc 1187
+spawnw_i_p 1188
+err_i 1189
+err_s 1190
+err_s_i 1191
+err_s_ic 1192
+time_i 1193
+time_n 1194
+gmtime_s_i 1195
+gmtime_s_ic 1196
+localtime_s_i 1197
+localtime_s_ic 1198
+decodetime_p_i 1199
+decodetime_p_ic 1200
+decodelocaltime_p_i 1201
+decodelocaltime_p_ic 1202
+sysinfo_s_i 1203
+sysinfo_s_ic 1204
+sysinfo_i_i 1205
+sysinfo_i_ic 1206
+sleep_i 1207
+sleep_ic 1208
+sleep_n 1209
+sleep_nc 1210
+sizeof_i_i 1211
+sizeof_i_ic 1212
+store_lex_s_p 1213
+store_lex_sc_p 1214
+store_dynamic_lex_s_p 1215
+store_dynamic_lex_sc_p 1216
+find_lex_p_s 1217
+find_lex_p_sc 1218
+find_dynamic_lex_p_s 1219
+find_dynamic_lex_p_sc 1220
+find_caller_lex_p_s 1221
+find_caller_lex_p_sc 1222
+get_namespace_p 1223
+get_namespace_p_p 1224
+get_namespace_p_pc 1225
+get_hll_namespace_p 1226
+get_hll_namespace_p_p 1227
+get_hll_namespace_p_pc 1228
+get_root_namespace_p 1229
+get_root_namespace_p_p 1230
+get_root_namespace_p_pc 1231
+get_global_p_s 1232
+get_global_p_sc 1233
+get_global_p_p_s 1234
+get_global_p_pc_s 1235
+get_global_p_p_sc 1236
+get_global_p_pc_sc 1237
+get_hll_global_p_s 1238
+get_hll_global_p_sc 1239
+get_hll_global_p_p_s 1240
+get_hll_global_p_pc_s 1241
+get_hll_global_p_p_sc 1242
+get_hll_global_p_pc_sc 1243
+get_root_global_p_s 1244
+get_root_global_p_sc 1245
+get_root_global_p_p_s 1246
+get_root_global_p_pc_s 1247
+get_root_global_p_p_sc 1248
+get_root_global_p_pc_sc 1249
+set_global_s_p 1250
+set_global_sc_p 1251
+set_global_p_s_p 1252
+set_global_pc_s_p 1253
+set_global_p_sc_p 1254
+set_global_pc_sc_p 1255
+set_hll_global_s_p 1256
+set_hll_global_sc_p 1257
+set_hll_global_p_s_p 1258
+set_hll_global_pc_s_p 1259
+set_hll_global_p_sc_p 1260
+set_hll_global_pc_sc_p 1261
+set_root_global_s_p 1262
+set_root_global_sc_p 1263
+set_root_global_p_s_p 1264
+set_root_global_pc_s_p 1265
+set_root_global_p_sc_p 1266
+set_root_global_pc_sc_p 1267
+find_name_p_s 1268
+find_name_p_sc 1269
+find_sub_not_null_p_s 1270
+find_sub_not_null_p_sc 1271
Modified: branches/avl_string_cache/src/ops/set.ops
==============================================================================
--- branches/avl_string_cache/src/ops/set.ops Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/ops/set.ops Thu Apr 22 09:55:26 2010 (r45889)
@@ -19,15 +19,15 @@
=item B<clone>(out STR, in STR)
-Make a clone of $2, and put it in $1. Doesn't affect what was in
-$1. Removes the constant flag on the copy, if there was one.
+Effectively the same as set $1, $2, except that if $2 is a null STRING, $1 gets
+a new empty string instead.
=cut
inline op clone(out STR, in STR) :base_mem {
/* cloning a NULL STRING produces an empty STRING; TT #964 */
$1 = $2
- ? Parrot_str_copy(interp, $2)
+ ? $2
: Parrot_str_new(interp, NULL, 0);
}
@@ -154,7 +154,7 @@
}
inline op set(out STR, inconst STR) :base_core {
- $1 = Parrot_str_copy(interp, $2);
+ $1 = $2;
}
inline op set(out STR, in INT) :base_core {
@@ -186,8 +186,7 @@
}
inline op set(invar PMC, inconst STR) :base_core {
- VTABLE_set_string_native(interp, $1,
- Parrot_str_copy(interp, $2));
+ VTABLE_set_string_native(interp, $1, $2);
}
inline op set(out INT, invar PMC) :base_core {
$1 = VTABLE_get_integer(interp, $2);
@@ -247,7 +246,7 @@
}
inline op assign(out STR, in STR) :base_core {
- $1 = Parrot_str_set(interp, $1, $2);
+ $1 = $2;
}
inline op setref(invar PMC, invar PMC) :base_core {
@@ -560,7 +559,7 @@
=cut
inline op null(out STR) :base_core {
- $1 = NULL;
+ $1 = STRINGNULL;
}
inline op null(out INT) :base_core {
Modified: branches/avl_string_cache/src/ops/string.ops
==============================================================================
--- branches/avl_string_cache/src/ops/string.ops Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/ops/string.ops Thu Apr 22 09:55:26 2010 (r45889)
@@ -70,8 +70,8 @@
=cut
-inline op chopn(inout STR, in INT) :base_core {
- Parrot_str_chopn_inplace(interp, $1, $2);
+inline op chopn(inout STR, in INT) :base_core :deprecated {
+ $1 = Parrot_str_chopn(interp, $1, $2);
}
inline op chopn(out STR, in STR, in INT) :base_core {
@@ -97,8 +97,8 @@
=cut
-inline op concat(inout STR, in STR) :base_mem {
- $1 = Parrot_str_append(interp, $1, $2);
+inline op concat(inout STR, in STR) :base_mem :deprecated {
+ $1 = Parrot_str_concat(interp, $1, $2);
}
inline op concat(invar PMC, invar PMC) :base_core {
@@ -110,7 +110,7 @@
}
inline op concat(out STR, in STR, in STR) :base_mem {
- $1 = Parrot_str_concat(interp, $2, $3, 1);
+ $1 = Parrot_str_concat(interp, $2, $3);
}
inline op concat(invar PMC, invar PMC, in STR) :base_core {
@@ -198,8 +198,8 @@
inline op bytelength(out INT, in STR) :base_mem {
UINTVAL n;
- STRING * const s = $2;
- if (!s)
+ const STRING * const s = $2;
+ if (STRING_IS_NULL(s))
n = 0;
else {
n = s->bufused;
@@ -244,6 +244,8 @@
=item B<substr>(inout STR, in INT, in INT, in STR)
+=item B<replace>(out STR, in STR, in INT, in INT, in STR)
+
=item B<substr>(out STR, invar PMC, in INT, in INT)
Set $1 to the portion of $2 starting at (zero-based) character position
@@ -269,25 +271,30 @@
inline op substr(out STR, in STR, in INT) :base_core {
const INTVAL len = Parrot_str_byte_length(interp, $2);
- $1 = Parrot_str_substr(interp, $2, $3, len, &$1, 0);
+ $1 = Parrot_str_substr(interp, $2, $3, len);
}
inline op substr(out STR, in STR, in INT, in INT) :base_core {
- $1 = Parrot_str_substr(interp, $2, $3, $4, &$1, 0);
+ $1 = Parrot_str_substr(interp, $2, $3, $4);
}
-inline op substr(out STR, inout STR, in INT, in INT, in STR) :base_core {
- $1 = Parrot_str_replace(interp, $2, $3, $4, $5, &$1);
+inline op substr(out STR, inout STR, in INT, in INT, in STR) :base_core :deprecated {
+ $1 = Parrot_str_substr(interp, $2, $3, $4);
+ $2 = Parrot_str_replace(interp, $2, $3, $4, $5);
}
-inline op substr(inout STR, in INT, in INT, in STR) :base_core {
- (void)Parrot_str_replace(interp, $1, $2, $3, $4, NULL);
+inline op substr(inout STR, in INT, in INT, in STR) :base_core :deprecated {
+ $1 = Parrot_str_replace(interp, $1, $2, $3, $4);
}
inline op substr(out STR, invar PMC, in INT, in INT) :base_core {
$1 = VTABLE_substr_str(interp, $2, $3, $4);
}
+inline op replace(out STR, in STR, in INT, in INT, in STR) :base_core {
+ $1 = Parrot_str_replace(interp, $2, $3, $4, $5);
+}
+
=item B<index>(out INT, in STR, in STR)
@@ -429,8 +436,8 @@
$1 = Parrot_str_upcase(interp, $2);
}
-inline op upcase(inout STR) :base_core {
- Parrot_str_upcase_inplace(interp, $1);
+inline op upcase(inout STR) :base_core :deprecated {
+ $1 = Parrot_str_upcase(interp, $1);
}
@@ -448,8 +455,8 @@
$1 = Parrot_str_downcase(interp, $2);
}
-inline op downcase(inout STR) :base_core {
- Parrot_str_downcase_inplace(interp, $1);
+inline op downcase(inout STR) :base_core :deprecated {
+ $1 = Parrot_str_downcase(interp, $1);
}
@@ -467,8 +474,8 @@
$1 = Parrot_str_titlecase(interp, $2);
}
-inline op titlecase(inout STR) :base_core {
- Parrot_str_titlecase_inplace(interp, $1);
+inline op titlecase(inout STR) :base_core :deprecated {
+ $1 = Parrot_str_titlecase(interp, $1);
}
@@ -529,8 +536,7 @@
}
op charsetname(out STR, in INT) :base_core {
- STRING * const name = Parrot_charset_name(interp, $2);
- $1 = name ? Parrot_str_copy(interp, name) : NULL;
+ $1 = Parrot_charset_name(interp, $2);
}
op find_charset(out INT, in STR) :base_core {
@@ -544,13 +550,12 @@
$1 = n;
}
-op trans_charset(inout STR, in INT) {
- $1 = Parrot_str_change_charset(interp, $1, $2, NULL);
+op trans_charset(inout STR, in INT) :deprecated {
+ $1 = Parrot_str_change_charset(interp, $1, $2);
}
op trans_charset(out STR, in STR, in INT) {
- STRING *dest = Parrot_gc_new_string_header(interp, 0);
- $1 = Parrot_str_change_charset(interp, $2, $3, dest);
+ $1 = Parrot_str_change_charset(interp, $2, $3);
}
@@ -585,8 +590,7 @@
}
op encodingname(out STR, in INT) :base_core {
- STRING * const name = Parrot_encoding_name(interp, $2);
- $1 = name ? Parrot_str_copy(interp, name) : NULL;
+ $1 = Parrot_encoding_name(interp, $2);
}
op find_encoding(out INT, in STR) :base_core {
@@ -600,13 +604,12 @@
$1 = n;
}
-op trans_encoding(inout STR, in INT) {
- $1 = Parrot_str_change_encoding(interp, $1, $2, NULL);
+op trans_encoding(inout STR, in INT) :deprecated {
+ $1 = Parrot_str_change_encoding(interp, $1, $2);
}
op trans_encoding(out STR, in STR, in INT) {
- STRING * const dest = Parrot_gc_new_string_header(interp, 0);
- $1 = Parrot_str_change_encoding(interp, $2, $3, dest);
+ $1 = Parrot_str_change_encoding(interp, $2, $3);
}
@@ -674,7 +677,7 @@
=head1 COPYRIGHT
-Copyright (C) 2001-2008, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
=head1 LICENSE
Modified: branches/avl_string_cache/src/ops/var.ops
==============================================================================
--- branches/avl_string_cache/src/ops/var.ops Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/ops/var.ops Thu Apr 22 09:55:26 2010 (r45889)
@@ -484,7 +484,7 @@
if (PMC_IS_NULL(sub)) {
opcode_t *handler = Parrot_ex_throw_from_op_args(interp, dest,
EXCEPTION_GLOBAL_NOT_FOUND,
- "Could not find non-existent sub %Ss", $2);
+ "Could not find sub %Ss", $2);
goto ADDRESS(handler);
}
Modified: branches/avl_string_cache/src/packdump.c
==============================================================================
--- branches/avl_string_cache/src/packdump.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/packdump.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -299,10 +299,10 @@
switch (sub->namespace_name->vtable->base_type) {
case enum_class_String:
namespace_description = Parrot_str_new(interp, "'", 1);
- namespace_description = Parrot_str_append(interp,
+ namespace_description = Parrot_str_concat(interp,
namespace_description,
VTABLE_get_string(interp, sub->namespace_name));
- namespace_description = Parrot_str_append(interp,
+ namespace_description = Parrot_str_concat(interp,
namespace_description,
Parrot_str_new(interp, "'", 1));
break;
Modified: branches/avl_string_cache/src/packfile.c
==============================================================================
--- branches/avl_string_cache/src/packfile.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/packfile.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
This program is free software. It is subject to the same license as
Parrot itself.
$Id$
@@ -93,10 +93,10 @@
__attribute__nonnull__(5)
FUNC_MODIFIES(*dir);
-static void default_destroy(PARROT_INTERP, ARGMOD(PackFile_Segment *self))
+static void default_destroy(PARROT_INTERP,
+ ARGFREE_NOTNULL(PackFile_Segment *self))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*self);
+ __attribute__nonnull__(2);
static void default_dump(PARROT_INTERP, ARGIN(const PackFile_Segment *self))
__attribute__nonnull__(1)
@@ -534,13 +534,9 @@
PARROT_EXPORT
void
-PackFile_destroy(PARROT_INTERP, ARGMOD_NULLOK(PackFile *pf))
+PackFile_destroy(PARROT_INTERP, ARGMOD(PackFile *pf))
{
ASSERT_ARGS(PackFile_destroy)
- if (!pf) {
- Parrot_io_eprintf(NULL, "PackFile_destroy: pf == NULL!\n");
- return;
- }
#ifdef PARROT_HAS_HEADER_SYSMMAN
if (pf->is_mmap_ped) {
@@ -1200,7 +1196,7 @@
PARROT_EXPORT
void
PackFile_add_segment(PARROT_INTERP, ARGMOD(PackFile_Directory *dir),
- ARGIN(PackFile_Segment *seg))
+ ARGMOD(PackFile_Segment *seg))
{
ASSERT_ARGS(PackFile_add_segment)
dir->segments = mem_gc_realloc_n_typed_zeroed(interp, dir->segments,
@@ -1216,7 +1212,7 @@
/*
=item C<PackFile_Segment * PackFile_find_segment(PARROT_INTERP,
-PackFile_Directory *dir, STRING *name, int sub_dir)>
+PackFile_Directory *dir, const STRING *name, int sub_dir)>
Finds the segment with the name C<name> in the C<PackFile_Directory> if
C<sub_dir> is true, searches directories recursively. The returned segment is
@@ -1231,7 +1227,7 @@
PARROT_CAN_RETURN_NULL
PackFile_Segment *
PackFile_find_segment(PARROT_INTERP, ARGIN_NULLOK(PackFile_Directory *dir),
- ARGIN(STRING *name), int sub_dir)
+ ARGIN(const STRING *name), int sub_dir)
{
ASSERT_ARGS(PackFile_find_segment)
if (dir) {
@@ -2390,7 +2386,8 @@
for (i = 0; i < num_segs; i++) {
const PackFile_Segment * const seg = dir->segments[i];
- char *name = Parrot_str_to_cstring(interp, seg->name);
+ char * const name = Parrot_str_to_cstring(interp, seg->name);
+
*cursor++ = seg->type;
cursor = PF_store_cstring(cursor, name);
*cursor++ = seg->file_offset;
@@ -2452,7 +2449,7 @@
self->size = 0;
self->data = NULL;
self->id = 0;
- self->name = Parrot_str_copy(interp, name);
+ self->name = name;
}
@@ -2500,7 +2497,7 @@
*/
static void
-default_destroy(PARROT_INTERP, ARGMOD(PackFile_Segment *self))
+default_destroy(PARROT_INTERP, ARGFREE_NOTNULL(PackFile_Segment *self))
{
ASSERT_ARGS(default_destroy)
if (!self->pf->is_mmap_ped && self->data) {
@@ -2786,7 +2783,7 @@
/* find seg e.g. CODE_DB => CODE and attach it */
str_len = Parrot_str_length(interp, debug->base.name);
- code_name = Parrot_str_substr(interp, debug->base.name, 0, str_len - 3, NULL, 1);
+ code_name = Parrot_str_substr(interp, debug->base.name, 0, str_len - 3);
code = (PackFile_ByteCode *)PackFile_find_segment(interp, self->dir, code_name, 0);
if (!code || code->base.type != PF_BYTEC_SEG) {
@@ -4213,7 +4210,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
opcode_t *
-PackFile_Annotations_pack(PARROT_INTERP, ARGIN(PackFile_Segment *seg),
+PackFile_Annotations_pack(SHIM_INTERP, ARGIN(PackFile_Segment *seg),
ARGMOD(opcode_t *cursor))
{
ASSERT_ARGS(PackFile_Annotations_pack)
@@ -4269,7 +4266,7 @@
ARGIN(const opcode_t *cursor))
{
ASSERT_ARGS(PackFile_Annotations_unpack)
- PackFile_Annotations *self = (PackFile_Annotations *)seg;
+ PackFile_Annotations * const self = (PackFile_Annotations *)seg;
PackFile_ByteCode *code;
STRING *code_name;
#if TRACE_PACKFILE
@@ -4327,7 +4324,7 @@
/* Need to associate this segment with the applicable code segment. */
str_len = Parrot_str_length(interp, self->base.name);
- code_name = Parrot_str_substr(interp, self->base.name, 0, str_len - 4, NULL, 1);
+ code_name = Parrot_str_substr(interp, self->base.name, 0, str_len - 4);
code = (PackFile_ByteCode *)PackFile_find_segment(interp,
self->base.dir, code_name, 0);
@@ -4359,7 +4356,7 @@
PackFile_Annotations_dump(PARROT_INTERP, ARGIN(const PackFile_Segment *seg))
{
ASSERT_ARGS(PackFile_Annotations_dump)
- const PackFile_Annotations *self = (const PackFile_Annotations *)seg;
+ const PackFile_Annotations * const self = (const PackFile_Annotations *)seg;
INTVAL i;
default_dump_header(interp, (const PackFile_Segment *)self);
@@ -4432,6 +4429,7 @@
opcode_t offset)
{
ASSERT_ARGS(PackFile_Annotations_add_group)
+ PackFile_Annotations_Group *group;
/* Allocate extra space for the group in the groups array. */
if (self->groups)
@@ -4442,11 +4440,10 @@
1 + self->num_groups, PackFile_Annotations_Group *);
/* Store details. */
- self->groups[self->num_groups] =
- mem_gc_allocate_zeroed_typed(interp,
- PackFile_Annotations_Group);
- self->groups[self->num_groups]->bytecode_offset = offset;
- self->groups[self->num_groups]->entries_offset = self->num_entries;
+ group = self->groups[self->num_groups] =
+ mem_gc_allocate_zeroed_typed(interp, PackFile_Annotations_Group);
+ group->bytecode_offset = offset;
+ group->entries_offset = self->num_entries;
/* Increment group count. */
self->num_groups++;
@@ -4476,12 +4473,12 @@
{
ASSERT_ARGS(PackFile_Annotations_add_entry)
/* See if we already have this key. */
- STRING *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 *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;
@@ -4600,7 +4597,7 @@
/* If we have a key, look up its ID; if we don't find one. */
opcode_t key_id = -1;
- if (key) {
+ 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;
if (Parrot_str_equal(interp, test_key, key)) {
@@ -4762,10 +4759,10 @@
/* Full path to language library is "abc/abc.pbc". */
pbc = CONST_STRING(interp, "pbc");
- wo_ext = Parrot_str_concat(interp, lang_name, CONST_STRING(interp, "/"), 0);
- wo_ext = Parrot_str_append(interp, wo_ext, lang_name);
- file_str = Parrot_str_concat(interp, wo_ext, CONST_STRING(interp, "."), 0);
- file_str = Parrot_str_append(interp, file_str, pbc);
+ wo_ext = Parrot_str_concat(interp, lang_name, CONST_STRING(interp, "/"));
+ wo_ext = Parrot_str_concat(interp, wo_ext, lang_name);
+ file_str = Parrot_str_concat(interp, wo_ext, CONST_STRING(interp, "."));
+ file_str = Parrot_str_concat(interp, file_str, pbc);
/* Check if the language is already loaded */
is_loaded_hash = VTABLE_get_pmc_keyed_int(interp,
@@ -4790,13 +4787,13 @@
parrot_split_path_ext(interp, path, &found_path, &found_ext);
name_length = Parrot_str_length(interp, lang_name);
found_path = Parrot_str_substr(interp, found_path, 0,
- Parrot_str_length(interp, found_path)-name_length, NULL, 0);
+ Parrot_str_length(interp, found_path)-name_length);
- Parrot_lib_add_path(interp, Parrot_str_append(interp, found_path, CONST_STRING(interp, "include/")),
+ Parrot_lib_add_path(interp, Parrot_str_concat(interp, found_path, CONST_STRING(interp, "include/")),
PARROT_LIB_PATH_INCLUDE);
- Parrot_lib_add_path(interp, Parrot_str_append(interp, found_path, CONST_STRING(interp, "dynext/")),
+ Parrot_lib_add_path(interp, Parrot_str_concat(interp, found_path, CONST_STRING(interp, "dynext/")),
PARROT_LIB_PATH_DYNEXT);
- Parrot_lib_add_path(interp, Parrot_str_append(interp, found_path, CONST_STRING(interp, "library/")),
+ Parrot_lib_add_path(interp, Parrot_str_concat(interp, found_path, CONST_STRING(interp, "library/")),
PARROT_LIB_PATH_LIBRARY);
Modified: branches/avl_string_cache/src/packfile/pf_items.c
==============================================================================
--- branches/avl_string_cache/src/packfile/pf_items.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/packfile/pf_items.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1290,9 +1290,7 @@
Opcode format is:
- opcode_t flags
- opcode_t encoding
- opcode_t type
+ opcode_t flags8 | encoding
opcode_t size
* data
@@ -1315,8 +1313,19 @@
const int wordsize = pf ? pf->header->wordsize : sizeof (opcode_t);
const CHARSET *charset;
- /* don't let PBC mess our internals - only constant or not */
- flags &= (PObj_constant_FLAG | PObj_private7_FLAG);
+ flag_charset_word = PF_fetch_opcode(pf, cursor);
+
+ if (flag_charset_word == -1) {
+ return STRINGNULL;
+ }
+
+ /* decode flags and charset */
+ flags = (flag_charset_word & 0x1 ? PObj_constant_FLAG : 0) |
+ (flag_charset_word & 0x2 ? PObj_private7_FLAG : 0) ;
+ charset_nr = flag_charset_word >> 8;
+
+
+ size = (size_t)PF_fetch_opcode(pf, cursor);
TRACE_PRINTF(("PF_fetch_string(): flags=0x%04x, ", flags));
TRACE_PRINTF(("charset_nr=%ld, ", charset_nr));
@@ -1374,7 +1383,12 @@
padded_size += sizeof (opcode_t) - (padded_size % sizeof (opcode_t));
}
- *cursor++ = PObj_get_FLAGS(s); /* only constant_FLAG and private7 */
+ if (STRING_IS_NULL(s)) {
+ /* preserve NULL-ness of strings */
+ *cursor++ = -1;
+ return cursor;
+ }
+
/*
* TODO as soon as we have dynamically loadable charsets
* we have to store the charset name, not the number
@@ -1383,7 +1397,11 @@
*
* see also PF_fetch_string
*/
- *cursor++ = Parrot_charset_number_of_str(NULL, s);
+
+ /* encode charset_nr and flags into the same word for a 33% savings on constant overhead */
+ *cursor++ = (Parrot_charset_number_of_str(NULL, s) << 8) |
+ (PObj_get_FLAGS(s) & PObj_constant_FLAG ? 0x1 : 0x0) |
+ (PObj_get_FLAGS(s) & PObj_private7_FLAG ? 0x2 : 0x0) ;
*cursor++ = s->bufused;
/* Switch to char * since rest of string is addressed by
@@ -1421,7 +1439,10 @@
ASSERT_ARGS(PF_size_string)
/* TODO: don't break encapsulation on strings */
const UINTVAL len = s->bufused;
- return PF_size_strlen(len);
+ if (STRING_IS_NULL(s))
+ return 1;
+ else
+ return PF_size_strlen(len);
}
/*
@@ -1446,7 +1467,7 @@
}
/* Include space for flags, representation, and size fields. */
- return 3 + (size_t)padded_size / sizeof (opcode_t);
+ return 2 + (size_t)padded_size / sizeof (opcode_t);
}
/*
Modified: branches/avl_string_cache/src/parrot_debugger.c
==============================================================================
--- branches/avl_string_cache/src/parrot_debugger.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/parrot_debugger.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -147,11 +147,11 @@
#include "parrot/runcore_api.h"
static void PDB_printwelcome(void);
-static void PDB_run_code(PARROT_INTERP, int argc, char *argv[]);
+static void PDB_run_code(PARROT_INTERP, int argc, const char *argv[]);
/*
-=item C<int main(int argc, char *argv[])>
+=item C<int main(int argc, const char *argv[])>
Reads the PIR, PASM or PBC file from argv[1], loads it, and then calls
Parrot_debug().
@@ -161,7 +161,7 @@
*/
int
-main(int argc, char *argv[])
+main(int argc, const char *argv[])
{
int nextarg;
Parrot_Interp interp;
@@ -271,7 +271,7 @@
/*
-=item C<static void PDB_run_code(PARROT_INTERP, int argc, char *argv[])>
+=item C<static void PDB_run_code(PARROT_INTERP, int argc, const char *argv[])>
Run the code, catching exceptions if they are left unhandled.
@@ -280,7 +280,7 @@
*/
static void
-PDB_run_code(PARROT_INTERP, int argc, char *argv[])
+PDB_run_code(PARROT_INTERP, int argc, const char *argv[])
{
new_runloop_jump_point(interp);
if (setjmp(interp->current_runloop->resume)) {
Modified: branches/avl_string_cache/src/pbc_dump.c
==============================================================================
--- branches/avl_string_cache/src/pbc_dump.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pbc_dump.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -78,6 +78,7 @@
Parrot_io_printf(interp, "],\n");
}
+
/*
=item C<static void fixup_dump(PARROT_INTERP, const PackFile_Segment *segp)>
@@ -96,6 +97,7 @@
Parrot_io_printf(interp, "],\n");
}
+
/*
=item C<static void disas_dump(PARROT_INTERP, const PackFile_Segment *self)>
@@ -109,28 +111,110 @@
static void
disas_dump(PARROT_INTERP, const PackFile_Segment *self)
{
- opcode_t *pc;
- size_t i, n;
+ const opcode_t *pc = self->data;
+
Parrot_io_printf(interp, "%Ss => [ # %d ops at offs 0x%x\n",
self->name, (int)self->size, (int)self->file_offset + 4);
- pc = self->data;
+
while (pc < self->data + self->size) {
+ /* n can't be const; the ADD_OP_VAR_PART macro increments it */
+ size_t n = (size_t)interp->op_info_table[*pc].op_count;
+ size_t i;
+
/* trace_op_dump(interp, self->pf->src, pc); */
- Parrot_io_printf(interp, " %04x: ", (int) (pc - self->data));
- n = (size_t)interp->op_info_table[*pc].op_count;
+ Parrot_io_printf(interp, " %04x: ", (int)(pc - self->data));
+
for (i = 0; i < 6; i++)
if (i < n)
- Parrot_io_printf(interp, "%08lx ", (unsigned long) pc[i]);
+ Parrot_io_printf(interp, "%08lx ", (unsigned long)pc[i]);
else
Parrot_io_printf(interp, " ");
+
Parrot_io_printf(interp, "%s\n",
interp->op_info_table[*pc].full_name);
+
ADD_OP_VAR_PART(interp, interp->code, pc, n);
pc += n;
}
+
Parrot_io_printf(interp, "]\n");
}
+
+/*
+
+=item C<static void nums_dump(PARROT_INTERP, const PackFile_Segment *self)>
+
+Disassembles and dumps op names and line numbers only.
+
+=cut
+
+*/
+
+static void
+nums_dump(PARROT_INTERP, const PackFile_Segment *self)
+{
+ const STRING *debug_name = Parrot_str_concat(interp, self->name,
+ Parrot_str_new_constant(interp, "_DB"));
+ const PackFile_Segment *debug = PackFile_find_segment(interp,
+ self->dir, debug_name, 1);
+
+ const opcode_t * pc = self->data;
+ const opcode_t * debug_ops = debug->data;
+ const op_info_t * const op_info = interp->op_info_table;
+
+ while (pc < self->data + self->size) {
+ /* n can't be const; the ADD_OP_VAR_PART macro increments it */
+ size_t n = (size_t)op_info[*pc].op_count;
+
+ Parrot_io_printf(interp, " %04x: %s\n",
+ *(debug_ops++), op_info[*pc].full_name);
+
+ ADD_OP_VAR_PART(interp, interp->code, pc, n);
+ pc += n;
+ }
+}
+
+
+/*
+
+=item C<static void null_dump(PARROT_INTERP, const PackFile_Segment *self)>
+
+Produces no output for the given segment type.
+
+=cut
+
+*/
+
+static void
+null_dump(SHIM_INTERP, const PackFile_Segment *self)
+{
+ UNUSED(self);
+}
+
+
+/*
+
+=item C<static void null_dir_dump(PARROT_INTERP, const PackFile_Segment *self)>
+
+Dumps all of the segments of the given PackFile_Directory, but produces no
+output for the directory itself.
+
+=cut
+
+*/
+
+static void
+null_dir_dump(PARROT_INTERP, const PackFile_Segment *self)
+{
+ const PackFile_Directory * const dir = (const PackFile_Directory *)self;
+ size_t i;
+
+ for (i = 0; i < dir->num_segments; i++)
+ self->pf->PackFuncs[dir->segments[i]->type].dump(interp, dir->segments[i]);
+}
+
+
/*
=item C<static void PackFile_header_dump(PARROT_INTERP, PackFile *pf)>
@@ -152,24 +236,30 @@
Parrot_io_printf(interp, "\t(interpreter's byteorder = %d)\n",
PARROT_BIGENDIAN);
Parrot_io_printf(interp, "\tfloattype = %d", pf->header->floattype);
- Parrot_io_printf(interp, "\t(interpreter's NUMVAL_SIZE = %d)\n", NUMVAL_SIZE);
- Parrot_io_printf(interp, "\tparrot-version %d.%d.%d, bytecode-version %d.%d\n",
- pf->header->major, pf->header->minor, pf->header->patch,
- pf->header->bc_major, pf->header->bc_minor);
+ Parrot_io_printf(interp, "\t(interpreter's NUMVAL_SIZE = %d)\n",
+ NUMVAL_SIZE);
+ Parrot_io_printf(interp, "\tparrot-version %d.%d.%d, "
+ "bytecode-version %d.%d\n",
+ pf->header->major, pf->header->minor, pf->header->patch,
+ pf->header->bc_major, pf->header->bc_minor);
Parrot_io_printf(interp, "\tUUID: type = %d, size = %d",
- pf->header->uuid_type, pf->header->uuid_size);
+ pf->header->uuid_type, pf->header->uuid_size);
+
if (pf->header->uuid_size)
Parrot_io_printf(interp, ", '%s'\n", pf->header->uuid_data);
else
Parrot_io_printf(interp, "\n");
+
Parrot_io_printf(interp, "\t%s endianize, %s opcode, %s numval transform\n",
pf->need_endianize ? "**need**" : "no",
- pf->need_wordsize ? "**need**" : "no",
- pf->fetch_nv ? "**need**" : "no");
+ pf->need_wordsize ? "**need**" : "no",
+ pf->fetch_nv ? "**need**" : "no");
+
Parrot_io_printf(interp, "\tdirformat = %d\n", pf->header->dir_format);
Parrot_io_printf(interp, "]\n");
}
+
/*
=item C<static void help(void)>
@@ -184,17 +274,21 @@
{
printf("pbc_dump - dump or convert parrot bytecode (PBC) files\n");
printf("usage:\n");
- printf("pbc_dump [-tdh] [--terse|--disassemble|--header-only] file.pbc\n");
+ printf("pbc_dump [-tdh] [--terse|--disassemble|--header-only|--line-nums]"
+ " file.pbc\n");
printf("pbc_dump -o converted.pbc file.pbc\n\n");
printf("\t-d ... disassemble bytecode segments\n");
printf("\t-h ... dump header only\n");
printf("\t-t ... terse output\n");
+ printf("\t-n ... show ops and line numbers only\n");
+
#if TRACE_PACKFILE
printf("\t-D<1-7> --debug debug output\n");
printf("\t 1 general info\n");
printf("\t 2 alignment\n");
printf("\t 4 values\n");
#endif
+
printf("\t-o converted.pbc ... repacks a PBC file into "
"the platform's native\n");
printf("\t binary format for better efficiency on reading "
@@ -202,17 +296,21 @@
exit(EXIT_SUCCESS);
}
+
static struct longopt_opt_decl opt_options[] = {
{ 'h', 'h', OPTION_optional_FLAG, { "--header-only" } },
- { '?', '?', OPTION_optional_FLAG, { "--help" } },
- { 't', 't', OPTION_optional_FLAG, { "--terse" } },
+ { '?', '?', OPTION_optional_FLAG, { "--help" } },
+ { 't', 't', OPTION_optional_FLAG, { "--terse" } },
+ { 'n', 'n', OPTION_optional_FLAG, { "--line-nums" } },
{ 'd', 'd', OPTION_optional_FLAG, { "--disassemble" } },
+ { 'o', 'o', OPTION_required_FLAG, { "--output" } }
+
#if TRACE_PACKFILE
- { 'D', 'D', OPTION_required_FLAG, { "--debug" } },
+ { 'D', 'D', OPTION_required_FLAG, { "--debug" } },
#endif
- { 'o', 'o', OPTION_required_FLAG, { "--output" } }
};
+
/*
=item C<int main(int argc, const char **argv)>
@@ -226,25 +324,35 @@
int
main(int argc, const char **argv)
{
- PackFile *pf;
- Interp *interp;
- int terse = 0;
- int disas = 0;
- int convert = 0;
- int options = PFOPT_UTILS;
- const char *file = NULL;
+ PackFile *pf;
+ Interp *interp;
+
+ const char *file = NULL;
+ int terse = 0;
+ int disas = 0;
+ int convert = 0;
+ int nums_only = 0;
+ int options = PFOPT_UTILS;
+
struct longopt_opt_info opt = LONGOPT_OPT_INFO_INIT;
- int status;
- if (argc < 2) {
+ int status;
+
+ if (argc < 2)
help();
- }
+
interp = Parrot_new(NULL);
+
/* init and set top of stack */
Parrot_init_stacktop(interp, &status);
- while ((status = longopt_get(interp,
- argc, argv, opt_options, &opt)) > 0) {
+
+ while ((status = longopt_get(interp, argc, argv, opt_options, &opt)) > 0) {
switch (opt.opt_id) {
+#if TRACE_PACKFILE
+ case 'D':
+ options += atoi(opt.opt_arg) << 2;
+ break;
+#endif
case 'h':
options += PFOPT_HEADERONLY;
break;
@@ -254,48 +362,49 @@
case 'd':
disas = 1;
break;
-#if TRACE_PACKFILE
- case 'D':
- options += atoi(opt.opt_arg) << 2;
- break;
-#endif
case 'o':
- file = opt.opt_arg;
+ file = opt.opt_arg;
convert = 1;
break;
+ case 'n':
+ nums_only = 1;
+ break;
case '?':
default:
help();
break;
}
}
- if (status == -1) {
+
+ if (status == -1)
help();
- }
+
argc -= opt.opt_index;
argv += opt.opt_index;
-
pf = Parrot_pbc_read(interp, *argv, options);
if (!pf) {
printf("Can't read PBC\n");
return 1;
}
+
Parrot_pbc_load(interp, pf);
+
if (convert) {
- size_t size;
- opcode_t *pack;
+ size_t size = PackFile_pack_size(interp,
+ interp->code->base.pf) * sizeof (opcode_t);
+ opcode_t *pack = (opcode_t *)Parrot_gc_allocate_memory_chunk(interp,
+ size);
FILE *fp;
- size = PackFile_pack_size(interp,
- interp->code->base.pf) * sizeof (opcode_t);
- pack = (opcode_t*) Parrot_gc_allocate_memory_chunk(interp, size);
if (!pack) {
printf("out of mem\n");
exit(EXIT_FAILURE);
}
+
PackFile_pack(interp, interp->code->base.pf, pack);
+
if (STREQ(file, "-"))
fp = stdout;
else if ((fp = fopen(file, "wb")) == 0) {
@@ -307,28 +416,44 @@
printf("Couldn't write %s\n", file);
exit(EXIT_FAILURE);
}
+
fclose(fp);
Parrot_gc_free_memory_chunk(interp, pack);
Parrot_exit(interp, 0);
}
- PackFile_header_dump(interp, pf);
- if (options & PFOPT_HEADERONLY) {
+ if (!nums_only)
+ PackFile_header_dump(interp, pf);
+
+ if (options & PFOPT_HEADERONLY)
Parrot_exit(interp, 0);
- }
+
/* install a dumper function */
if (!terse) {
pf->PackFuncs[PF_CONST_SEG].dump = const_dump;
pf->PackFuncs[PF_FIXUP_SEG].dump = fixup_dump;
}
+
if (disas)
pf->PackFuncs[PF_BYTEC_SEG].dump = disas_dump;
+
+ if (nums_only) {
+ int i;
+
+ for (i = PF_DIR_SEG + 1; i < PF_MAX_SEG; i++)
+ pf->PackFuncs[i].dump = null_dump;
+
+ pf->PackFuncs[PF_DIR_SEG].dump = null_dir_dump;
+ pf->PackFuncs[PF_BYTEC_SEG].dump = nums_dump;
+ }
+
/* do a directory dump, which dumps segs then */
PackFile_Segment_dump(interp, &pf->directory.base);
Parrot_exit(interp, 0);
}
+
/*
=back
Modified: branches/avl_string_cache/src/pmc.c
==============================================================================
--- branches/avl_string_cache/src/pmc.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -48,8 +48,7 @@
PARROT_CANNOT_RETURN_NULL
static PMC* Parrot_pmc_reuse_noinit(PARROT_INTERP,
ARGIN(PMC *pmc),
- INTVAL new_type,
- SHIM(UINTVAL flags))
+ INTVAL new_type)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -82,10 +81,12 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
+PARROT_HOT
INTVAL
Parrot_pmc_is_null(SHIM_INTERP, ARGIN_NULLOK(const PMC *pmc))
{
ASSERT_ARGS(Parrot_pmc_is_null)
+ /* We can't use PMC_IS_NULL() because that calls us here in some cases */
#if PARROT_CATCH_NULL
return pmc == PMCNULL || pmc == NULL;
#else
@@ -190,10 +191,10 @@
PARROT_IGNORABLE_RESULT
PMC *
Parrot_pmc_reuse(PARROT_INTERP, ARGIN(PMC *pmc), INTVAL new_type,
- UINTVAL flags)
+ SHIM(UINTVAL flags))
{
ASSERT_ARGS(Parrot_pmc_reuse)
- pmc = Parrot_pmc_reuse_noinit(interp, pmc, new_type, flags);
+ pmc = Parrot_pmc_reuse_noinit(interp, pmc, new_type);
/* Call the base init for the redone pmc. Warning, this should not
be called on Object PMCs. */
@@ -224,10 +225,10 @@
PARROT_IGNORABLE_RESULT
PMC *
Parrot_pmc_reuse_init(PARROT_INTERP, ARGIN(PMC *pmc), INTVAL new_type, ARGIN(PMC *init),
- UINTVAL flags)
+ SHIM(UINTVAL flags))
{
ASSERT_ARGS(Parrot_pmc_reuse_init)
- pmc = Parrot_pmc_reuse_noinit(interp, pmc, new_type, flags);
+ pmc = Parrot_pmc_reuse_noinit(interp, pmc, new_type);
/* Call the base init for the redone pmc. Warning, this should not
be called on Object PMCs. */
@@ -239,43 +240,39 @@
/*
=item C<static PMC* Parrot_pmc_reuse_noinit(PARROT_INTERP, PMC *pmc, INTVAL
-new_type, UINTVAL flags)>
+new_type)>
Prepare pmc for reuse. Do all scuffolding except initing.
=cut
*/
+
PARROT_CANNOT_RETURN_NULL
static PMC*
-Parrot_pmc_reuse_noinit(PARROT_INTERP, ARGIN(PMC *pmc), INTVAL new_type,
- SHIM(UINTVAL flags)) {
-
+Parrot_pmc_reuse_noinit(PARROT_INTERP, ARGIN(PMC *pmc), INTVAL new_type)
+{
ASSERT_ARGS(Parrot_pmc_reuse_noinit)
- VTABLE *new_vtable;
- INTVAL new_flags = 0;
- if (pmc->vtable->base_type == new_type)
- return pmc;
-
- new_vtable = interp->vtables[new_type];
-
- /* Singleton/const PMCs/types are not eligible */
- check_pmc_reuse_flags(interp, pmc->vtable->flags, new_vtable->flags);
+ if (pmc->vtable->base_type != new_type) {
+ VTABLE * const new_vtable = interp->vtables[new_type];
- /* Free the old PMC resources. */
- Parrot_pmc_destroy(interp, pmc);
+ /* Singleton/const PMCs/types are not eligible */
+ check_pmc_reuse_flags(interp, pmc->vtable->flags, new_vtable->flags);
- PObj_flags_SETTO(pmc, PObj_is_PMC_FLAG | new_flags);
+ /* Free the old PMC resources. */
+ Parrot_pmc_destroy(interp, pmc);
- /* Set the right vtable */
- pmc->vtable = new_vtable;
+ PObj_flags_SETTO(pmc, PObj_is_PMC_FLAG);
- if (new_vtable->attr_size)
- Parrot_gc_allocate_pmc_attributes(interp, pmc);
+ /* Set the right vtable */
+ pmc->vtable = new_vtable;
- else
- PMC_data(pmc) = NULL;
+ if (new_vtable->attr_size)
+ Parrot_gc_allocate_pmc_attributes(interp, pmc);
+ else
+ PMC_data(pmc) = NULL;
+ }
return pmc;
}
@@ -303,26 +300,25 @@
{
ASSERT_ARGS(Parrot_pmc_reuse_by_class)
const INTVAL new_type = PARROT_CLASS(class_)->id;
- VTABLE * const new_vtable = interp->vtables[new_type];
- const INTVAL new_flags = flags;
- if (pmc->vtable->base_type == new_type)
- return pmc;
+ if (pmc->vtable->base_type != new_type) {
+ VTABLE * const new_vtable = interp->vtables[new_type];
- /* Singleton/const PMCs/types are not eligible */
- check_pmc_reuse_flags(interp, pmc->vtable->flags, new_vtable->flags);
+ /* Singleton/const PMCs/types are not eligible */
+ check_pmc_reuse_flags(interp, pmc->vtable->flags, new_vtable->flags);
- Parrot_pmc_destroy(interp, pmc);
+ Parrot_pmc_destroy(interp, pmc);
- PObj_flags_SETTO(pmc, PObj_is_PMC_FLAG | new_flags);
+ PObj_flags_SETTO(pmc, PObj_is_PMC_FLAG | flags);
- /* Set the right vtable */
- pmc->vtable = new_vtable;
+ /* Set the right vtable */
+ pmc->vtable = new_vtable;
- if (new_vtable->attr_size)
- Parrot_gc_allocate_pmc_attributes(interp, pmc);
- else
- PMC_data(pmc) = NULL;
+ if (new_vtable->attr_size)
+ Parrot_gc_allocate_pmc_attributes(interp, pmc);
+ else
+ PMC_data(pmc) = NULL;
+ }
return pmc;
}
@@ -393,7 +389,7 @@
get_new_pmc_header(PARROT_INTERP, INTVAL base_type, UINTVAL flags)
{
ASSERT_ARGS(get_new_pmc_header)
- PMC *pmc;
+ PMC *newpmc;
VTABLE *vtable = interp->vtables[base_type];
UINTVAL vtable_flags;
@@ -455,13 +451,13 @@
if (vtable_flags & VTABLE_IS_SHARED_FLAG)
flags |= PObj_is_PMC_shared_FLAG;
- pmc = Parrot_gc_new_pmc_header(interp, flags);
- pmc->vtable = vtable;
+ newpmc = Parrot_gc_new_pmc_header(interp, flags);
+ newpmc->vtable = vtable;
if (vtable->attr_size)
- Parrot_gc_allocate_pmc_attributes(interp, pmc);
+ Parrot_gc_allocate_pmc_attributes(interp, newpmc);
- return pmc;
+ return newpmc;
}
@@ -623,6 +619,30 @@
/*
+=item C<PMC * Parrot_pmc_new_constant_init_int(PARROT_INTERP, INTVAL base_type,
+INTVAL init)>
+
+As C<Parrot_pmc_new_constant>, but passes C<init> to the PMC's C<init_int> vtable
+entry.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+PMC *
+Parrot_pmc_new_constant_init_int(PARROT_INTERP, INTVAL base_type, INTVAL init)
+{
+ ASSERT_ARGS(Parrot_pmc_new_constant_init_int)
+ PMC * const pmc = get_new_pmc_header(interp, base_type, PObj_constant_FLAG);
+ VTABLE_init_int(interp, pmc, init);
+ return pmc;
+}
+
+
+/*
+
=item C<PMC * Parrot_pmc_new_temporary(PARROT_INTERP, INTVAL base_type)>
Creates a new temporary PMC of type C<base_type>, then call C<init>. Cannot
@@ -986,24 +1006,21 @@
INTVAL len;
const INTVAL idx = Parrot_str_find_index(interp, what, role, (INTVAL)pos);
- if (idx < 0)
+ if ((idx < 0) || (idx >= length))
return 0;
pos = idx;
-
- if (pos >= length)
- return 0;
-
len = Parrot_str_byte_length(interp, role);
- if (pos && Parrot_str_indexed(interp, what, pos - 1) != 32) {
+ if (pos && (Parrot_str_indexed(interp, what, pos - 1) != 32)) {
pos += len;
continue;
}
- if (pos + len < length && Parrot_str_indexed(interp, what, pos + len) != 32) {
+ if (pos + len < length) {
pos += len;
- continue;
+ if (Parrot_str_indexed(interp, what, pos) != 32)
+ continue;
}
return 1;
Modified: branches/avl_string_cache/src/pmc/bigint.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/bigint.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/bigint.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -387,6 +387,8 @@
static void
bigint_init(PARROT_INTERP, ARGIN(PMC *self))
{
+ ASSERT_ARGS(bigint_init)
+
BIGINT * const bi = mem_gc_allocate_zeroed_typed(interp, BIGINT);
SETATTR_BigInt_bi(interp, self, bi);
mpz_init(bi->b);
@@ -486,6 +488,8 @@
static int
bigint_get_bool(PARROT_INTERP, ARGIN(PMC *self))
{
+ ASSERT_ARGS(bigint_get_bool)
+
BIGINT *bi;
GETATTR_BigInt_bi(interp, self, bi);
if (mpz_sgn(bi->b) != 0)
@@ -619,6 +623,8 @@
static void
bigint_check_divide_zero(PARROT_INTERP, ARGIN(PMC *value))
{
+ ASSERT_ARGS(bigint_check_divide_zero)
+
/* Throw an exception if we are dividing by zero. */
BIGINT *bi;
GETATTR_BigInt_bi(interp, value, bi);
@@ -1137,7 +1143,7 @@
VTABLE STRING *get_repr() {
STRING * const s = SELF.get_string();
- return Parrot_str_append(INTERP, s, CONST_STRING(INTERP, "L"));
+ return Parrot_str_concat(INTERP, s, CONST_STRING(INTERP, "L"));
}
/*
Modified: branches/avl_string_cache/src/pmc/bignum.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/bignum.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/bignum.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -723,7 +723,6 @@
ASSERT_ARGS(bignum_get_string_size)
BIGNUM *bn;
- size_t n;
char *s;
mp_exp_t exponent;
@@ -1509,7 +1508,7 @@
VTABLE STRING *get_repr() {
STRING *s = SELF.get_string();
- return Parrot_str_append(INTERP, s, Parrot_str_new(interp, "N", 1));
+ return Parrot_str_concat(INTERP, s, Parrot_str_new(interp, "N", 1));
}
/*
@@ -1760,7 +1759,6 @@
*/
MULTI PMC *divide(BigNum value, PMC *dest) {
- BIGNUM *bn;
dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bignum_div_bignum(INTERP, SELF, value, dest);
Modified: branches/avl_string_cache/src/pmc/callcontext.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/callcontext.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/callcontext.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -56,11 +56,11 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-static FLOATVAL autobox_floatval(PARROT_INTERP, ARGIN(Pcc_cell *cell))
+static FLOATVAL autobox_floatval(PARROT_INTERP, ARGIN(const Pcc_cell *cell))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static INTVAL autobox_intval(PARROT_INTERP, ARGIN(Pcc_cell *cell))
+static INTVAL autobox_intval(PARROT_INTERP, ARGIN(const Pcc_cell *cell))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -70,7 +70,7 @@
__attribute__nonnull__(2);
PARROT_CANNOT_RETURN_NULL
-static STRING * autobox_string(PARROT_INTERP, ARGIN(Pcc_cell *cell))
+static STRING * autobox_string(PARROT_INTERP, ARGIN(const Pcc_cell *cell))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -194,7 +194,7 @@
}
static INTVAL
-autobox_intval(PARROT_INTERP, ARGIN(Pcc_cell *cell))
+autobox_intval(PARROT_INTERP, ARGIN(const Pcc_cell *cell))
{
ASSERT_ARGS(autobox_intval)
switch (CELL_TYPE_MASK(cell)) {
@@ -217,7 +217,7 @@
}
static FLOATVAL
-autobox_floatval(PARROT_INTERP, ARGIN(Pcc_cell *cell))
+autobox_floatval(PARROT_INTERP, ARGIN(const Pcc_cell *cell))
{
ASSERT_ARGS(autobox_floatval)
switch (CELL_TYPE_MASK(cell)) {
@@ -241,7 +241,7 @@
PARROT_CANNOT_RETURN_NULL
static STRING *
-autobox_string(PARROT_INTERP, ARGIN(Pcc_cell *cell))
+autobox_string(PARROT_INTERP, ARGIN(const Pcc_cell *cell))
{
ASSERT_ARGS(autobox_string)
switch (CELL_TYPE_MASK(cell)) {
@@ -284,7 +284,7 @@
VTABLE_set_string_native(interp, result, CELL_STRING(cell));
break;
case PMCCELL:
- return CELL_PMC(cell);
+ result = CELL_PMC(cell);
default:
/* exception */
break;
@@ -355,7 +355,6 @@
mark_hash(PARROT_INTERP, ARGIN(Hash *h))
{
ASSERT_ARGS(mark_hash)
- UINTVAL entries = h->entries;
INTVAL i;
for (i = h->mask; i >= 0; --i) {
@@ -382,8 +381,7 @@
/* yes, this *looks* risky, but it's a Parrot STRING hash internally */
if (hash && hash->entries) {
UINTVAL i, j = 0;
- result = Parrot_pmc_new(interp, enum_class_FixedStringArray);
- VTABLE_set_integer_native(interp, result, hash->entries);
+ result = Parrot_pmc_new_init_int(interp, enum_class_FixedStringArray, hash->entries);
for (i = 0; i <= hash->mask; i++) {
HashBucket *b = hash->bi[i];
@@ -543,18 +541,17 @@
GET_ATTR_bp_ps(INTERP, SELF, bp_ps);
for (i = 0; i < n_regs_used[REGNO_PMC]; ++i) {
- PMC *p = bp_ps.regs_p[-1L-(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 *s = bp_ps.regs_s[i];
+ STRING * const s = bp_ps.regs_s[i];
if (s)
Parrot_gc_mark_STRING_alive(interp, s);
}
-
}
/*
@@ -682,16 +679,16 @@
for (i = 0; i < num_positionals; ++i) {
switch (c[i].type) {
case INTCELL:
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, "I"));
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, "I"));
break;
case FLOATCELL:
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, "N"));
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, "N"));
break;
case STRINGCELL:
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, "S"));
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, "S"));
break;
case PMCCELL:
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, "P"));
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, "P"));
break;
default:
PARROT_FAILURE("Impossible flag");
@@ -1098,7 +1095,7 @@
}
VTABLE void set_integer_keyed_int(INTVAL key, INTVAL value) {
- Pcc_cell *cell = get_cell_at(INTERP, SELF, key);
+ Pcc_cell * const cell = get_cell_at(INTERP, SELF, key);
INTVAL pos;
cell->u.i = value;
@@ -1110,7 +1107,7 @@
}
VTABLE void set_number_keyed_int(INTVAL key, FLOATVAL value) {
- Pcc_cell *cell = get_cell_at(INTERP, SELF, key);
+ Pcc_cell * const cell = get_cell_at(INTERP, SELF, key);
INTVAL pos;
cell->u.n = value;
@@ -1122,7 +1119,7 @@
}
VTABLE void set_string_keyed_int(INTVAL key, STRING *value) {
- Pcc_cell *cell = get_cell_at(INTERP, SELF, key);
+ Pcc_cell * const cell = get_cell_at(INTERP, SELF, key);
INTVAL pos;
cell->u.s = value;
@@ -1135,7 +1132,7 @@
VTABLE void set_pmc_keyed_int(INTVAL key, PMC *value) {
INTVAL pos;
- Pcc_cell *cell = get_cell_at(INTERP, SELF, key);
+ Pcc_cell * const cell = get_cell_at(INTERP, SELF, key);
cell->u.p = value;
cell->type = PMCCELL;
@@ -1146,7 +1143,7 @@
}
VTABLE void set_integer_keyed_str(STRING *key, INTVAL value) {
- Hash *hash = get_hash(INTERP, SELF);
+ Hash * const hash = get_hash(INTERP, SELF);
Pcc_cell *cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, (void *)key);
if (!cell) {
@@ -1159,7 +1156,7 @@
}
VTABLE void set_number_keyed_str(STRING *key, FLOATVAL value) {
- Hash *hash = get_hash(INTERP, SELF);
+ Hash * const hash = get_hash(INTERP, SELF);
Pcc_cell *cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, (void *)key);
if (!cell) {
@@ -1172,7 +1169,7 @@
}
VTABLE void set_string_keyed_str(STRING *key, STRING *value) {
- Hash *hash = get_hash(INTERP, SELF);
+ Hash * const hash = get_hash(INTERP, SELF);
Pcc_cell *cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, (void *)key);
if (!cell) {
@@ -1185,7 +1182,7 @@
}
VTABLE void set_pmc_keyed_str(STRING *key, PMC *value) {
- Hash *hash = get_hash(INTERP, SELF);
+ Hash * const hash = get_hash(INTERP, SELF);
Pcc_cell *cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, (void *)key);
if (!cell) {
@@ -1198,8 +1195,8 @@
}
VTABLE void set_integer_keyed(PMC *key, INTVAL value) {
- Hash *hash = get_hash(INTERP, SELF);
- void *k = hash_key_from_pmc(INTERP, hash, key);
+ Hash * const hash = get_hash(INTERP, SELF);
+ void * const k = hash_key_from_pmc(INTERP, hash, key);
Pcc_cell *cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
if (!cell) {
@@ -1212,8 +1209,8 @@
}
VTABLE void set_number_keyed(PMC *key, FLOATVAL value) {
- Hash *hash = get_hash(INTERP, SELF);
- void *k = hash_key_from_pmc(INTERP, hash, key);
+ Hash * const hash = get_hash(INTERP, SELF);
+ void * const k = hash_key_from_pmc(INTERP, hash, key);
Pcc_cell *cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
if (!cell) {
@@ -1226,8 +1223,8 @@
}
VTABLE void set_string_keyed(PMC *key, STRING *value) {
- Hash *hash = get_hash(INTERP, SELF);
- void *k = hash_key_from_pmc(INTERP, hash, key);
+ Hash * const hash = get_hash(INTERP, SELF);
+ void * const k = hash_key_from_pmc(INTERP, hash, key);
Pcc_cell *cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
if (!cell) {
@@ -1240,8 +1237,8 @@
}
VTABLE void set_pmc_keyed(PMC *key, PMC *value) {
- Hash *hash = get_hash(INTERP, SELF);
- void *k = hash_key_from_pmc(INTERP, hash, key);
+ Hash * const hash = get_hash(INTERP, SELF);
+ void * const k = hash_key_from_pmc(INTERP, hash, key);
Pcc_cell *cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
if (!cell) {
@@ -1254,11 +1251,11 @@
}
VTABLE INTVAL get_integer_keyed_str(STRING *key) {
- Hash *hash = get_hash(INTERP, SELF);
+ Hash * const hash = get_hash(INTERP, SELF);
if (hash) {
- void *k = hash_key_from_string(INTERP, hash, key);
- Pcc_cell *cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
+ void * const k = hash_key_from_string(INTERP, hash, key);
+ Pcc_cell * const cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
if (cell)
return autobox_intval(INTERP, cell);
@@ -1268,11 +1265,11 @@
}
VTABLE FLOATVAL get_number_keyed_str(STRING *key) {
- Hash *hash = get_hash(INTERP, SELF);
+ Hash * const hash = get_hash(INTERP, SELF);
if (hash) {
- void *k = hash_key_from_string(INTERP, hash, key);
- Pcc_cell *cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
+ void * const k = hash_key_from_string(INTERP, hash, key);
+ Pcc_cell * const cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
if (cell)
return autobox_floatval(INTERP, cell);
@@ -1283,11 +1280,11 @@
VTABLE STRING * get_string_keyed_str(STRING *key) {
- Hash *hash = get_hash(INTERP, SELF);
+ Hash * const hash = get_hash(INTERP, SELF);
if (hash) {
- void *k = hash_key_from_string(INTERP, hash, key);
- Pcc_cell *cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
+ void * const k = hash_key_from_string(INTERP, hash, key);
+ Pcc_cell * const cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
if (cell)
return autobox_string(INTERP, cell);
@@ -1297,11 +1294,11 @@
}
VTABLE PMC * get_pmc_keyed_str(STRING *key) {
- Hash *hash = get_hash(INTERP, SELF);
+ Hash * const hash = get_hash(INTERP, SELF);
if (hash) {
- void *k = hash_key_from_string(INTERP, hash, key);
- Pcc_cell *cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
+ void * const k = hash_key_from_string(INTERP, hash, key);
+ Pcc_cell * const cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
if (cell)
return autobox_pmc(INTERP, cell);
@@ -1311,11 +1308,11 @@
}
VTABLE INTVAL get_integer_keyed(PMC *key) {
- Hash *hash = get_hash(INTERP, SELF);
+ Hash * const hash = get_hash(INTERP, SELF);
if (hash) {
- void *k = hash_key_from_pmc(INTERP, hash, key);
- Pcc_cell *cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
+ void * const k = hash_key_from_pmc(INTERP, hash, key);
+ Pcc_cell * const cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
if (cell)
return autobox_intval(INTERP, cell);
@@ -1325,11 +1322,11 @@
}
VTABLE FLOATVAL get_number_keyed(PMC *key) {
- Hash *hash = get_hash(INTERP, SELF);
+ Hash * const hash = get_hash(INTERP, SELF);
if (hash) {
- void *k = hash_key_from_pmc(INTERP, hash, key);
- Pcc_cell *cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
+ void * const k = hash_key_from_pmc(INTERP, hash, key);
+ Pcc_cell * const cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
if (cell)
return autobox_floatval(INTERP, cell);
@@ -1339,11 +1336,11 @@
}
VTABLE STRING * get_string_keyed(PMC *key) {
- Hash *hash = get_hash(INTERP, SELF);
+ Hash * const hash = get_hash(INTERP, SELF);
if (hash) {
- void *k = hash_key_from_pmc(INTERP, hash, key);
- Pcc_cell *cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
+ void * const k = hash_key_from_pmc(INTERP, hash, key);
+ Pcc_cell * const cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
if (cell)
return autobox_string(INTERP, cell);
@@ -1353,11 +1350,11 @@
}
VTABLE PMC * get_pmc_keyed(PMC *key) {
- Hash *hash = get_hash(INTERP, SELF);
+ Hash * const hash = get_hash(INTERP, SELF);
if (hash) {
- void *k = hash_key_from_pmc(INTERP, hash, key);
- Pcc_cell *cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
+ void * const k = hash_key_from_pmc(INTERP, hash, key);
+ Pcc_cell * const cell = (Pcc_cell *)parrot_hash_get(INTERP, hash, k);
if (cell)
return autobox_pmc(INTERP, cell);
@@ -1367,10 +1364,10 @@
}
VTABLE INTVAL exists_keyed(PMC *key) {
- Hash *hash = get_hash(INTERP, SELF);
+ Hash * const hash = get_hash(INTERP, SELF);
if (hash) {
- void *k = hash_key_from_pmc(INTERP, hash, key);
+ void * const k = hash_key_from_pmc(INTERP, hash, key);
return parrot_hash_exists(INTERP, hash, k);
}
@@ -1378,10 +1375,10 @@
}
VTABLE INTVAL exists_keyed_str(STRING *key) {
- Hash *hash = get_hash(INTERP, SELF);
+ Hash * const hash = get_hash(INTERP, SELF);
if (hash) {
- void *k = hash_key_from_string(INTERP, hash, key);
+ void * const k = hash_key_from_string(INTERP, hash, key);
return parrot_hash_exists(INTERP, hash, k);
}
@@ -1432,7 +1429,7 @@
SET_ATTR_type_tuple(INTERP, dest, VTABLE_clone(INTERP, type_tuple));
if (short_sig)
- SET_ATTR_short_sig(INTERP, dest, Parrot_str_copy(INTERP, short_sig));
+ SET_ATTR_short_sig(INTERP, dest, short_sig);
if (!PMC_IS_NULL(arg_flags))
SET_ATTR_arg_flags(INTERP, dest, VTABLE_clone(INTERP, arg_flags));
@@ -1464,11 +1461,11 @@
METHOD backtrace(PMC *resume :optional, INTVAL has_resume :opt_flag) {
PMC *result = Parrot_pmc_new(interp, enum_class_ResizablePMCArray);
PMC *cur_ctx = SELF;
- Parrot_Continuation_attributes *cont = has_resume ? PMC_cont(resume) : NULL;
+ Parrot_Continuation_attributes * const cont = has_resume ? PMC_cont(resume) : NULL;
/* Get starting context, then loop over them. */
while (cur_ctx) {
- PMC *frame = Parrot_pmc_new(interp, enum_class_Hash);
+ PMC * const frame = Parrot_pmc_new(interp, enum_class_Hash);
PMC *annotations = NULL;
Parrot_Sub_attributes *sub;
Modified: branches/avl_string_cache/src/pmc/class.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/class.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/class.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -203,7 +203,7 @@
STRING * const attrib_name = VTABLE_get_string_keyed_str(
interp, cur_attrib, name_str);
- STRING * const full_key = Parrot_str_append(interp, fq_class, attrib_name);
+ STRING * const full_key = Parrot_str_concat(interp, fq_class, attrib_name);
/* Insert into hash, along with index. */
VTABLE_set_integer_keyed_str(interp, attrib_index, full_key, cur_index);
@@ -668,7 +668,7 @@
*/
VTABLE STRING *get_string() {
- return Parrot_str_copy(interp, make_class_name(interp, SELF));
+ return make_class_name(interp, SELF);
}
/*
Modified: branches/avl_string_cache/src/pmc/codestring.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/codestring.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/codestring.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -112,15 +112,13 @@
INTVAL pos = 0;
INTVAL replen = 0;
- fmt = Parrot_str_new_COW(INTERP, fmt);
-
while (pos >= 0) {
pos += replen;
pos = Parrot_str_find_index(INTERP, fmt, percent, pos);
if (pos < 0)
break;
- key = Parrot_str_substr(INTERP, fmt, pos+1, 1, &key, 0);
+ key = Parrot_str_substr(INTERP, fmt, pos+1, 1);
if (VTABLE_exists_keyed_str(INTERP, hash, key)) {
repl = VTABLE_get_string_keyed_str(INTERP, hash, key);
@@ -134,14 +132,13 @@
INTVAL I1;
repl = VTABLE_get_string_keyed_int(INTERP, args, 0);
- repl = Parrot_str_new_COW(INTERP, repl);
I1 = VTABLE_elements(INTERP, args);
I0 = 1;
while (I0 < I1) {
STRING * const S0 = VTABLE_get_string_keyed_int(INTERP, args, I0);
- repl = Parrot_str_append(INTERP, repl, comma_space);
- repl = Parrot_str_append(INTERP, repl, S0);
+ repl = Parrot_str_concat(INTERP, repl, comma_space);
+ repl = Parrot_str_concat(INTERP, repl, S0);
I0++;
}
}
@@ -154,16 +151,16 @@
continue;
}
- (void) Parrot_str_replace(INTERP, fmt, pos, 2, repl, NULL);
+ fmt = Parrot_str_replace(INTERP, fmt, pos, 2, repl);
replen = Parrot_str_byte_length(INTERP, repl);
}
/* Add a newline if necessary */
if ('\n' != Parrot_str_indexed(INTERP, fmt, Parrot_str_byte_length(INTERP, fmt) - 1))
- fmt = Parrot_str_concat(INTERP, fmt, newline, 0);
+ fmt = Parrot_str_concat(INTERP, fmt, newline);
GET_ATTR_str_val(INTERP, SELF, S1);
- S1 = Parrot_str_concat(INTERP, S1, fmt, 0);
+ S1 = Parrot_str_concat(INTERP, S1, fmt);
VTABLE_set_string_native(INTERP, SELF, S1);
RETURN(PMC *SELF);
@@ -258,8 +255,7 @@
RETURN(STRING *counter_as_string);
}
else {
- STRING *result = Parrot_str_copy(INTERP, format);
- result = Parrot_str_concat(INTERP, result, counter_as_string, 1);
+ STRING *result = Parrot_str_concat(INTERP, format, counter_as_string);
RETURN(STRING *result);
}
}
@@ -284,8 +280,8 @@
INTVAL is_unicode = 0;
UNUSED(SELF);
- escaped_str = Parrot_str_concat(INTERP, quote, escaped_str, 1);
- escaped_str = Parrot_str_concat(INTERP, escaped_str, quote, 1);
+ escaped_str = Parrot_str_concat(INTERP, quote, escaped_str);
+ escaped_str = Parrot_str_concat(INTERP, escaped_str, quote);
x_pos = Parrot_str_find_index(INTERP, escaped_str, x, 0);
if (x_pos != -1) {
@@ -300,7 +296,7 @@
if (is_unicode) {
STRING * const unicode = CONST_STRING(INTERP, "unicode:");
- escaped_str = Parrot_str_concat(INTERP, unicode, escaped_str, 1);
+ escaped_str = Parrot_str_concat(INTERP, unicode, escaped_str);
}
RETURN(STRING *escaped_str);
@@ -367,8 +363,8 @@
STRING *S0 = VTABLE_get_string_keyed_int(INTERP, P0, index2);
(STRING *S0) = PCCINVOKE(INTERP, SELF, "escape", STRING *S0);
if (prefix)
- out = Parrot_str_append(INTERP, out, prefix);
- out = Parrot_str_append(INTERP, out, S0);
+ out = Parrot_str_concat(INTERP, out, prefix);
+ out = Parrot_str_concat(INTERP, out, S0);
prefix = semi;
}
}
@@ -376,14 +372,14 @@
STRING *S0 = VTABLE_get_string_keyed_int(INTERP, args, index);
(STRING *S0) = PCCINVOKE(INTERP, SELF, "escape", STRING *S0);
if (prefix)
- out = Parrot_str_append(INTERP, out, prefix);
- out = Parrot_str_append(INTERP, out, S0);
+ out = Parrot_str_concat(INTERP, out, prefix);
+ out = Parrot_str_concat(INTERP, out, S0);
prefix = semi;
}
}
}
- out = Parrot_str_append(INTERP, out, close_bracket);
+ out = Parrot_str_concat(INTERP, out, close_bracket);
RETURN(STRING *out);
}
Modified: branches/avl_string_cache/src/pmc/complex.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/complex.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/complex.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -80,8 +80,11 @@
*/
static void
-complex_parse_string(PARROT_INTERP, ARGOUT(FLOATVAL *re), ARGOUT(FLOATVAL *im), ARGIN(STRING *value))
+complex_parse_string(PARROT_INTERP,
+ ARGOUT(FLOATVAL *re), ARGOUT(FLOATVAL *im), ARGIN(STRING *value))
{
+ ASSERT_ARGS(complex_parse_string)
+
char * const str = Parrot_str_to_cstring(interp, value);
char *t = str;
char *first_num_offset = str;
@@ -238,6 +241,8 @@
static void
int_check_divide_zero(PARROT_INTERP, INTVAL value)
{
+ ASSERT_ARGS(int_check_divide_zero)
+
if (value == 0)
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_DIV_BY_ZERO,
"Divide by zero");
Modified: branches/avl_string_cache/src/pmc/continuation.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/continuation.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/continuation.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -78,15 +78,6 @@
SET_ATTR_address(INTERP, SELF, NULL);
PObj_custom_mark_SET(SELF);
-
- /* PANIC("don't do that"); */
- /*
- * Whenever we create a continuation, all return continuations
- * up the call chain may be reused due to invoking the
- * continuation. To avoid that all return continuations are
- * converted to true continuations.
- */
- invalidate_retc_context(INTERP, SELF);
}
/*if they pass in a PMC to initialize with*/
@@ -109,15 +100,6 @@
SET_ATTR_address(INTERP, SELF, address);
PObj_custom_mark_SET(SELF);
-
- /* PANIC("don't do that"); */
- /*
- * Whenever we create a continuation, all return continuations
- * up the call chain may be reused due to invoking the
- * continuation. To avoid that all return continuations are
- * converted to true continuations.
- */
- invalidate_retc_context(INTERP, SELF);
}
Modified: branches/avl_string_cache/src/pmc/coroutine.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/coroutine.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/coroutine.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -120,9 +120,6 @@
(Parrot_Coroutine_attributes *)PMC_data(SELF),
sizeof (Parrot_Coroutine_attributes));
- GET_ATTR_name(INTERP, ret, name);
- SET_ATTR_name(INTERP, ret, Parrot_str_copy(INTERP, name));
-
return ret;
}
@@ -172,8 +169,10 @@
PMC *ctx = Parrot_pcc_get_signature(INTERP, caller_ctx);
PMC *ccont = INTERP->current_cont;
- if (ccont == NEED_CONTINUATION)
- ccont = (PMC *)new_ret_continuation_pmc(INTERP, next_op);
+ if (ccont == NEED_CONTINUATION) {
+ ccont = pmc_new(interp, enum_class_Continuation);
+ VTABLE_set_pointer(interp, ccont, next_op);
+ }
if (PObj_get_FLAGS(ccont) & SUB_FLAG_TAILCALL)
Parrot_ex_throw_from_c_args(INTERP, NULL, CONTROL_ERROR,
Modified: branches/avl_string_cache/src/pmc/default.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/default.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/default.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -239,6 +239,8 @@
static void
propagate_std_props(PARROT_INTERP, ARGIN(PMC *self), ARGIN(PMC *prop_hash))
{
+ ASSERT_ARGS(propagate_std_props)
+
if (self->vtable->flags & (VTABLE_IS_CONST_FLAG | VTABLE_IS_READONLY_FLAG)){
PMC * const pmc_true = Parrot_pmc_new(interp, enum_class_Integer);
VTABLE_set_integer_native(interp, pmc_true, 1);
@@ -284,6 +286,8 @@
static PMC*
check_get_std_props(PARROT_INTERP, ARGIN(const PMC *self), ARGIN(const STRING *key))
{
+ ASSERT_ARGS(check_get_std_props)
+
if ((self->vtable->flags & (VTABLE_IS_CONST_FLAG | VTABLE_IS_READONLY_FLAG))
&& Parrot_str_equal(interp, key, CONST_STRING(interp, "_ro"))) {
PMC * const ret_val = Parrot_pmc_new(interp, enum_class_Integer);
@@ -299,8 +303,7 @@
=item C<static PMC* make_prop_hash(PARROT_INTERP, PMC *self)>
Create a property hash for C<self>. Returns the created hash. Inferred
-properties will be added to the hash and it will be set as
-C<PMC_metadata(self)>.
+properties will be added to the hash.
=cut
@@ -311,9 +314,9 @@
static PMC*
make_prop_hash(PARROT_INTERP, ARGMOD(PMC *self))
{
- PMC * const prop = Parrot_pmc_new(interp, enum_class_Hash);
+ ASSERT_ARGS(make_prop_hash)
- PMC_metadata(self) = prop;
+ PMC * const prop = Parrot_pmc_new(interp, enum_class_Hash);
propagate_std_props(interp, self, prop);
return prop;
}
@@ -444,7 +447,7 @@
return;
if (PMC_IS_NULL(PMC_metadata(SELF)))
- make_prop_hash(INTERP, SELF);
+ PMC_metadata(SELF) = make_prop_hash(INTERP, SELF);
VTABLE_set_pmc_keyed_str(INTERP, PMC_metadata(SELF), key, value);
}
@@ -477,7 +480,7 @@
VTABLE PMC *getprops() {
if (PMC_IS_NULL(PMC_metadata(SELF))) {
if (has_pending_std_props(SELF))
- return make_prop_hash(INTERP, SELF);
+ PMC_metadata(SELF) = make_prop_hash(INTERP, SELF);
else
return PMCNULL;
}
Modified: branches/avl_string_cache/src/pmc/env.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/env.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/env.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2008, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -154,7 +154,7 @@
VTABLE STRING *get_string_keyed_str(STRING *key) {
if (!STRING_IS_EMPTY(key)) {
- char * const val = Parrot_getenv(interp, key);
+ const char * const val = Parrot_getenv(interp, key);
if (val) {
STRING * const retval = Parrot_str_new(interp, val, 0);
@@ -203,14 +203,13 @@
*/
VTABLE PMC *get_pmc_keyed(PMC *key) {
- STRING *keyname = VTABLE_get_string(INTERP, key);
+ STRING * const keyname = VTABLE_get_string(INTERP, key);
- char *val = NULL;
STRING *retval = NULL;
PMC *return_pmc;
if (!STRING_IS_EMPTY(keyname)) {
- val = Parrot_getenv(INTERP, keyname);
+ const char * const val = Parrot_getenv(INTERP, keyname);
if (val) {
retval = Parrot_str_new(INTERP, val, 0);
@@ -237,7 +236,7 @@
*/
VTABLE void set_string_keyed(PMC *key, STRING *value) {
- STRING *keyname = VTABLE_get_string(INTERP, key);
+ STRING * const keyname = VTABLE_get_string(INTERP, key);
if (keyname && value)
Parrot_setenv(INTERP, keyname, value);
@@ -254,8 +253,8 @@
*/
VTABLE void set_pmc_keyed(PMC *key, PMC *value) {
- STRING * keyname = VTABLE_get_string(INTERP, key);
- STRING * str_value = VTABLE_get_string(INTERP, value);
+ STRING * const keyname = VTABLE_get_string(INTERP, key);
+ STRING * const str_value = VTABLE_get_string(INTERP, value);
if (keyname && str_value)
Parrot_setenv(INTERP, keyname, str_value);
@@ -272,12 +271,12 @@
*/
VTABLE INTVAL exists_keyed(PMC *pmckey) {
- STRING *keyname = VTABLE_get_string(INTERP, pmckey);
+ STRING * const keyname = VTABLE_get_string(INTERP, pmckey);
if (!STRING_IS_EMPTY(keyname)) {
- char * const val = Parrot_getenv(interp, keyname);
+ const char * const val = Parrot_getenv(interp, keyname);
- if (val) {
+ if (val != NULL) {
return 1;
}
}
@@ -296,12 +295,12 @@
*/
VTABLE void delete_keyed(PMC *key) {
- STRING *keyname = VTABLE_get_string(INTERP, key);
+ STRING * const keyname = VTABLE_get_string(INTERP, key);
if (!STRING_IS_EMPTY(keyname)) {
- char * const val = Parrot_getenv(INTERP, keyname);
+ const char * const val = Parrot_getenv(INTERP, keyname);
- if (val) {
+ if (val != NULL) {
Parrot_unsetenv(INTERP, keyname);
}
}
Modified: branches/avl_string_cache/src/pmc/eventhandler.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/eventhandler.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/eventhandler.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -167,9 +167,9 @@
Parrot_EventHandler_attributes * const e = PARROT_EVENTHANDLER(SELF);
if (e)
- return Parrot_str_copy(INTERP, e->type);
+ return e->type;
- return string_from_literal(INTERP, "");
+ return CONST_STRING(INTERP, "");
}
/*
Modified: branches/avl_string_cache/src/pmc/filehandle.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/filehandle.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/filehandle.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -253,10 +253,10 @@
"Cannot reopen already open filehandle");
if (got_mode && !STRING_IS_NULL(mode))
- SET_ATTR_mode(INTERP, SELF, Parrot_str_copy(INTERP, mode));
+ SET_ATTR_mode(INTERP, SELF, mode);
if (got_filename && !STRING_IS_NULL(filename))
- SET_ATTR_filename(INTERP, SELF, Parrot_str_copy(INTERP, filename));
+ SET_ATTR_filename(INTERP, SELF, filename);
/* Open the file. With no options, reopen the same file as before */
GET_ATTR_filename(INTERP, SELF, open_filename);
@@ -475,7 +475,7 @@
do {
STRING * const part = Parrot_io_reads(INTERP, SELF, 0);
- result = Parrot_str_append(INTERP, result, part);
+ result = Parrot_str_concat(INTERP, result, part);
if (Parrot_io_eof(INTERP, SELF))
break;
@@ -618,12 +618,9 @@
*/
METHOD mode() {
- STRING *mode, *mode_copy;
-
+ STRING *mode;
GET_ATTR_mode(INTERP, SELF, mode);
- mode_copy = Parrot_str_copy(INTERP, mode);
-
- RETURN(STRING *mode_copy);
+ RETURN(STRING *mode);
}
@@ -640,20 +637,14 @@
METHOD encoding(STRING *new_encoding :optional, INTVAL got_encoding :opt_flag) {
STRING *encoding;
- STRING *encoding_copy = NULL;
if (got_encoding) {
- if (!STRING_IS_NULL(new_encoding))
- encoding_copy = Parrot_str_copy(INTERP, new_encoding);
- SET_ATTR_encoding(INTERP, SELF, encoding_copy);
+ SET_ATTR_encoding(INTERP, SELF, new_encoding);
RETURN(STRING *new_encoding);
}
GET_ATTR_encoding(INTERP, SELF, encoding);
- if (!STRING_IS_NULL(encoding))
- encoding_copy = Parrot_str_copy(INTERP, encoding);
-
- RETURN(STRING *encoding_copy);
+ RETURN(STRING *encoding);
}
Modified: branches/avl_string_cache/src/pmc/fixedbooleanarray.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/fixedbooleanarray.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/fixedbooleanarray.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -283,9 +283,9 @@
for (i = 0; i < elems; i++) {
if (SELF.get_integer_keyed_int((INTVAL)i))
- str = Parrot_str_concat(INTERP, str, one, 0);
+ str = Parrot_str_concat(INTERP, str, one);
else
- str = Parrot_str_concat(INTERP, str, zero, 0);
+ str = Parrot_str_concat(INTERP, str, zero);
}
return str;
Modified: branches/avl_string_cache/src/pmc/fixedintegerarray.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/fixedintegerarray.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/fixedintegerarray.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -279,13 +279,13 @@
for (j = 0; j < n; ++j) {
PMC * const val = SELF.get_pmc_keyed_int(j);
- res = Parrot_str_append(INTERP, res, VTABLE_get_repr(INTERP, val));
+ res = Parrot_str_concat(INTERP, res, VTABLE_get_repr(INTERP, val));
if (j < n - 1)
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, ", "));
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, ", "));
}
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, " ]"));
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, " ]"));
return res;
}
Modified: branches/avl_string_cache/src/pmc/fixedpmcarray.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/fixedpmcarray.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/fixedpmcarray.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -91,20 +91,13 @@
*/
VTABLE void init_int(INTVAL size) {
- PMC **data;
- int i;
-
if (size < 0)
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
_("FixedPMCArray: Cannot set array size to a negative number (%d)"), size);
- SET_ATTR_size(INTERP, SELF, size);
- data = mem_gc_allocate_n_typed(INTERP, size, PMC *);
+ SELF.set_integer_native(size);
- for (i = 0; i < size; i++)
- data[i] = PMCNULL;
-
- PObj_custom_destroy_SET(SELF);
+ PObj_custom_mark_destroy_SETALL(SELF);
}
/*
@@ -138,7 +131,7 @@
if (size) {
PMC_size(dest) = size;
- PMC_array(dest) = mem_gc_allocate_n_zeroed_typed(INTERP, size, PMC *);
+ PMC_array(dest) = mem_gc_allocate_n_typed(INTERP, size, PMC *);
mem_copy_n_typed(PMC_array(dest), PMC_array(SELF), size, PMC *);
PObj_custom_mark_destroy_SETALL(dest);
}
@@ -229,12 +222,12 @@
for (i = 0; i < n; ++i) {
PMC * const val = SELF.get_pmc_keyed_int(i);
if (i > 0)
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, ", "));
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, ", "));
- res = Parrot_str_append(INTERP, res, VTABLE_get_repr(INTERP, val));
+ res = Parrot_str_concat(INTERP, res, VTABLE_get_repr(INTERP, val));
}
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, ")"));
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, ")"));
return res;
}
@@ -408,7 +401,7 @@
_("FixedPMCArray: Cannot set array size to a negative number"));
PMC_size(SELF) = size;
- data = mem_gc_allocate_n_zeroed_typed(INTERP, size, PMC *);
+ data = mem_gc_allocate_n_typed(INTERP, size, PMC *);
for (i = 0; i < size; i++)
data[i] = PMCNULL;
@@ -431,7 +424,7 @@
mem_gc_free(INTERP, PMC_array(SELF));
size = PMC_size(SELF) = VTABLE_elements(INTERP, value);
- PMC_array(SELF) = mem_gc_allocate_n_zeroed_typed(INTERP, size, PMC *);
+ PMC_array(SELF) = mem_gc_allocate_n_typed(INTERP, size, PMC *);
for (i = 0; i < size; i++)
(PMC_array(SELF))[i] = VTABLE_get_pmc_keyed_int(INTERP, value, i);
Modified: branches/avl_string_cache/src/pmc/fixedstringarray.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/fixedstringarray.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/fixedstringarray.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -538,15 +538,15 @@
for (j = 0; j < n; ++j) {
STRING * const val = SELF.get_string_keyed_int(j);
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, "\""));
- res = Parrot_str_append(INTERP, res, val);
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, "\""));
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, "\""));
+ res = Parrot_str_concat(INTERP, res, val);
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, "\""));
if (j < n - 1)
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, ", "));
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, ", "));
}
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, " ]"));
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, " ]"));
return res;
}
Modified: branches/avl_string_cache/src/pmc/hash.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/hash.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/hash.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -61,6 +61,10 @@
Initializes the instance.
+=item C<void init_int(INTVAL value_type)>
+
+Initializes the instance with the value_type provided.
+
=item C<void destroy()>
Free hash structure.
@@ -78,6 +82,19 @@
PObj_custom_mark_destroy_SETALL(SELF);
}
+ VTABLE void init_int(INTVAL value_type) {
+ Parrot_Hash_attributes * const attr =
+ (Parrot_Hash_attributes *) PMC_data(SELF);
+
+ attr->hash = parrot_create_hash(INTERP,
+ (PARROT_DATA_TYPE)value_type,
+ Hash_key_type_STRING,
+ STRING_compare,
+ (hash_hash_key_fn)key_hash_STRING);
+ attr->hash->container = SELF;
+ PObj_custom_mark_destroy_SETALL(SELF);
+ }
+
VTABLE void destroy() {
Hash * const hash = (Hash *)SELF.get_pointer();
if (hash)
@@ -236,18 +253,15 @@
if (old_hash && old_hash->entry_type == type)
return;
- if (!old_hash)
- old_hash = parrot_new_hash(INTERP);
-
switch (type) {
case enum_type_INTVAL:
case enum_type_STRING:
case enum_type_PMC:
new_hash = parrot_create_hash(interp,
(PARROT_DATA_TYPE)type,
- old_hash->key_type,
- old_hash->compare,
- old_hash->hash_val);
+ old_hash ? old_hash->key_type : Hash_key_type_STRING,
+ old_hash ? old_hash->compare : STRING_compare,
+ old_hash ? old_hash->hash_val : (hash_hash_key_fn)key_hash_STRING);
break;
default:
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
@@ -257,7 +271,8 @@
PARROT_HASH(SELF)->hash = new_hash;
new_hash->container = SELF;
- parrot_hash_destroy(INTERP, old_hash);
+ if (old_hash)
+ parrot_hash_destroy(INTERP, old_hash);
}
METHOD get_value_type() {
@@ -342,23 +357,23 @@
Parrot_str_free_cstring(key_str);
if (all_digit) {
- res = Parrot_str_append(INTERP, res, key);
+ res = Parrot_str_concat(INTERP, res, key);
}
else {
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, "'"));
- res = Parrot_str_append(INTERP, res, key);
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, "'"));
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, "'"));
+ res = Parrot_str_concat(INTERP, res, key);
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, "'"));
}
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, ": "));
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, ": "));
val = SELF.get_pmc_keyed_str(key);
- res = Parrot_str_append(INTERP, res, VTABLE_get_string(INTERP, val));
+ res = Parrot_str_concat(INTERP, res, VTABLE_get_string(INTERP, val));
if (j < n - 1)
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, ", "));
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, ", "));
}
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, "}"));
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, "}"));
return res;
}
@@ -1136,8 +1151,31 @@
const INTVAL v_type = VTABLE_shift_integer(INTERP, info);
Hash *hash;
- if (k_type == Hash_key_type_int && v_type == enum_hash_int) {
- SELF.set_pointer(parrot_new_intval_hash(INTERP));
+ if (k_type != Hash_key_type_STRING || v_type != enum_hash_pmc) {
+ hash_comp_fn cmp_fn;
+ hash_hash_key_fn key_fn;
+
+ switch (k_type) {
+ case Hash_key_type_int:
+ key_fn = (hash_hash_key_fn)key_hash_int;
+ cmp_fn = (hash_comp_fn)int_compare;
+ break;
+ case Hash_key_type_STRING:
+ key_fn = (hash_hash_key_fn)key_hash_STRING;
+ cmp_fn = (hash_comp_fn)STRING_compare;
+ break;
+ case Hash_key_type_PMC:
+ key_fn = (hash_hash_key_fn)key_hash_PMC;
+ cmp_fn = (hash_comp_fn)PMC_compare;
+ break;
+ default:
+ Parrot_ex_throw_from_c_args(interp, NULL, 1,
+ "unimplemented key type");
+ break;
+ }
+
+ SELF.set_pointer(parrot_create_hash(INTERP, (PARROT_DATA_TYPE)v_type,
+ (Hash_key_type)k_type, cmp_fn, key_fn));
}
hash = (Hash *)SELF.get_pointer();
Modified: branches/avl_string_cache/src/pmc/hashiterator.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/hashiterator.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/hashiterator.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -73,6 +73,8 @@
static void
advance_to_next(PARROT_INTERP, ARGMOD(PMC *self))
{
+ ASSERT_ARGS(advance_to_next)
+
Parrot_HashIterator_attributes * const attrs = PARROT_HASHITERATOR(self);
HashBucket *bucket = attrs->bucket;
Modified: branches/avl_string_cache/src/pmc/imageio.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/imageio.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/imageio.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -316,7 +316,7 @@
PARROT_ASSERT(pmc);
VTABLE_push_integer(interp, info,
- PObj_is_object_TEST(pmc) ? 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);
VTABLE_freeze(interp, pmc, info);
@@ -531,8 +531,9 @@
VTABLE INTVAL shift_integer()
{
- opcode_t *pos = GET_VISIT_CURSOR(SELF);
- const INTVAL i = PF_fetch_integer(PARROT_IMAGEIO(SELF)->pf, (const opcode_t **)&pos);
+ const opcode_t *pos = GET_VISIT_CURSOR(SELF);
+ const INTVAL i = PF_fetch_integer(PARROT_IMAGEIO(SELF)->pf,
+ (const opcode_t **)&pos);
SET_VISIT_CURSOR(SELF, (char *)pos);
BYTECODE_SHIFT_OK(SELF);
return i;
@@ -550,8 +551,9 @@
*/
VTABLE FLOATVAL shift_float() {
- opcode_t *pos = GET_VISIT_CURSOR(SELF);
- const FLOATVAL f = PF_fetch_number(PARROT_IMAGEIO(SELF)->pf, (const opcode_t **)&pos);
+ const opcode_t *pos = GET_VISIT_CURSOR(SELF);
+ const FLOATVAL f = PF_fetch_number(PARROT_IMAGEIO(SELF)->pf,
+ (const opcode_t **)&pos);
SET_VISIT_CURSOR(SELF, (char *)pos);
BYTECODE_SHIFT_OK(SELF);
return f;
@@ -570,8 +572,8 @@
VTABLE STRING *shift_string()
{
- opcode_t *pos = GET_VISIT_CURSOR(SELF);
- STRING * const s = PF_fetch_string(interp, PARROT_IMAGEIO(SELF)->pf,
+ const opcode_t *pos = GET_VISIT_CURSOR(SELF);
+ STRING * const s = PF_fetch_string(interp, PARROT_IMAGEIO(SELF)->pf,
(const opcode_t **)&pos);
SET_VISIT_CURSOR(SELF, (char *)pos);
BYTECODE_SHIFT_OK(SELF);
@@ -612,11 +614,12 @@
}
VTABLE void set_string_native(STRING *image) {
+ PMC *unused;
const UINTVAL header_length = GROW_TO_16_BYTE_BOUNDARY(PACKFILE_HEADER_BYTES);
int unpacked_length;
- PARROT_IMAGEIO(SELF)->what = VISIT_THAW_NORMAL;
- PARROT_IMAGEIO(SELF)->buffer = (Buffer *)image;
+ PARROT_IMAGEIO(SELF)->what = VISIT_THAW_NORMAL;
+ PARROT_IMAGEIO(SELF)->buffer = (Buffer *)image;
PARROT_ASSERT(image->_bufstart == image->strstart);
@@ -627,16 +630,14 @@
unpacked_length = PackFile_unpack(interp, PARROT_IMAGEIO(SELF)->pf,
GET_VISIT_CURSOR(SELF), PARROT_IMAGEIO(SELF)->input_length);
- if (!unpacked_length) {
+ if (unpacked_length)
+ INC_VISIT_CURSOR(SELF, header_length);
+ else
Parrot_ex_throw_from_c_args(interp, NULL,
EXCEPTION_INVALID_STRING_REPRESENTATION,
"PackFile header failed during unpack");
- }
- else {
- INC_VISIT_CURSOR(SELF, header_length);
- }
- visit_todo_list_thaw(INTERP, SELF);
+ unused = visit_todo_list_thaw(INTERP, SELF);
Parrot_visit_loop_visit(INTERP, SELF);
/* we're done reading the image */
Modified: branches/avl_string_cache/src/pmc/integer.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/integer.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/integer.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -28,7 +28,7 @@
static void maybe_throw_overflow_error(PARROT_INTERP)
__attribute__nonnull__(1);
-PARROT_WARN_UNUSED_RESULT
+PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
static PMC* upgrade_self_to_bignum(PARROT_INTERP, ARGMOD(PMC *self))
__attribute__nonnull__(1)
@@ -56,7 +56,7 @@
"Integer overflow");
}
-PARROT_WARN_UNUSED_RESULT
+PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
static PMC*
upgrade_self_to_bignum(PARROT_INTERP, ARGMOD(PMC *self))
@@ -381,6 +381,7 @@
MULTI void i_add(Complex value) {
const INTVAL a = SELF.get_integer();
+ UNUSED(a);
Parrot_pmc_reuse(INTERP, SELF, enum_class_Complex, 0);
VTABLE_set_number_native(INTERP, SELF,
@@ -401,7 +402,6 @@
if ((c^a) >= 0 || (c^b) >= 0)
VTABLE_set_integer_native(INTERP, SELF, c);
else {
- PMC *temp;
maybe_throw_overflow_error(interp);
SELF = upgrade_self_to_bignum(interp, SELF);
VTABLE_i_add_int(interp, SELF, b);
@@ -882,7 +882,6 @@
VTABLE void i_floor_divide_float(FLOATVAL value) {
FLOATVAL f;
- INTVAL self_val;
if (FLOAT_IS_ZERO(value))
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO,
Modified: branches/avl_string_cache/src/pmc/key.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/key.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/key.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -74,8 +74,7 @@
break;
case KEY_string_FLAG:
case KEY_string_FLAG | KEY_register_FLAG:
- key_set_string(INTERP, dkey,
- Parrot_str_copy(INTERP, VTABLE_get_string(INTERP, key)));
+ key_set_string(INTERP, dkey, VTABLE_get_string(INTERP, key));
break;
case KEY_pmc_FLAG:
case KEY_pmc_FLAG | KEY_register_FLAG:
Modified: branches/avl_string_cache/src/pmc/lexinfo.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/lexinfo.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/lexinfo.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -61,13 +61,10 @@
}
VTABLE void init_pmc(PMC *sub) {
- Parrot_LexInfo_attributes *attrs =
- (Parrot_LexInfo_attributes *) PMC_data(SELF);
-
PARROT_ASSERT(PObj_constant_TEST(SELF));
/* Set value type to INTVAL */
- Parrot_pcc_invoke_method_from_c_args(interp, SELF, CONST_STRING(INTERP, "set_value_type"), "I->", (INTVAL)enum_type_INTVAL);
+ SELF.init_int((INTVAL)enum_type_INTVAL);
PObj_custom_mark_destroy_SETALL(SELF);
}
@@ -100,9 +97,10 @@
VTABLE PMC *inspect_str(STRING *what) {
if (Parrot_str_equal(interp, what, CONST_STRING(interp, "symbols"))) {
- PMC *result = Parrot_pmc_new(interp, enum_class_ResizableStringArray);
- Hash *hash = (Hash *)SELF.get_pointer();
- UINTVAL entries = hash->entries;
+ PMC * const result = Parrot_pmc_new(interp, enum_class_ResizableStringArray);
+ const Hash *hash = (Hash *)SELF.get_pointer();
+ const UINTVAL entries = hash->entries;
+
UINTVAL found = 0;
INTVAL i;
Modified: branches/avl_string_cache/src/pmc/namespace.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/namespace.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/namespace.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -52,6 +52,7 @@
FUNC_MODIFIES(*nsinfo)
FUNC_MODIFIES(*classobj);
+PARROT_WARN_UNUSED_RESULT
static int maybe_add_sub_to_namespace(PARROT_INTERP,
ARGIN(PMC *SELF),
ARGIN(STRING *key),
@@ -61,13 +62,15 @@
__attribute__nonnull__(3)
__attribute__nonnull__(4);
+PARROT_WARN_UNUSED_RESULT
static int ns_insert_sub_keyed_str(PARROT_INTERP,
ARGIN(PMC *self),
ARGIN(STRING *key),
- ARGIN_NULLOK(PMC *value))
+ ARGIN(PMC *value))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
- __attribute__nonnull__(3);
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4);
#define ASSERT_ARGS_add_multi_to_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -90,7 +93,8 @@
#define ASSERT_ARGS_ns_insert_sub_keyed_str __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self) \
- , PARROT_ASSERT_ARG(key))
+ , PARROT_ASSERT_ARG(key) \
+ , PARROT_ASSERT_ARG(value))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -116,17 +120,19 @@
}
}
+PARROT_WARN_UNUSED_RESULT
static int
ns_insert_sub_keyed_str(PARROT_INTERP, ARGIN(PMC *self), ARGIN(STRING *key),
- ARGIN_NULLOK(PMC *value))
+ ARGIN(PMC *value))
{
ASSERT_ARGS(ns_insert_sub_keyed_str)
Parrot_NameSpace_attributes * const nsinfo = PARROT_NAMESPACE(self);
PMC * vtable = nsinfo->vtable;
PMC * const classobj = VTABLE_get_class(interp, self);
- STRING * vtable_key = NULL;
+ STRING * vtable_key = STRINGNULL;
Parrot_Sub_attributes *sub;
+ INTVAL stored = 0;
PMC_get_sub(interp, value, sub);
@@ -151,25 +157,31 @@
/* Insert it. */
VTABLE_set_pmc_keyed_int(interp, vtable, sub->vtable_index, value);
}
+ if (!(sub->comp_flags & SUB_COMP_FLAG_NSENTRY))
+ stored = 1;
}
if (sub->comp_flags & SUB_COMP_FLAG_METHOD) {
STRING *method_name = key;
if (Parrot_str_equal(interp, sub->method_name, CONST_STRING(interp, ""))) {
- if (sub->vtable_index != -1 && vtable_key != NULL) {
- method_name = Parrot_str_copy(interp, vtable_key);
+ if (sub->vtable_index != -1 && !STRING_IS_NULL(vtable_key)) {
+ method_name = vtable_key;
}
}
else {
method_name = sub->method_name;
}
add_to_class(interp, nsinfo, classobj, method_name, value);
+
+ if (!(sub->comp_flags & SUB_COMP_FLAG_NSENTRY))
+ stored = 1;
}
- return 0;
+ return stored;
}
+PARROT_WARN_UNUSED_RESULT
static int
maybe_add_sub_to_namespace(PARROT_INTERP, ARGIN(PMC *SELF), ARGIN(STRING *key),
ARGIN(PMC *value))
@@ -397,13 +409,12 @@
}
else {
/* create new tuple */
- new_tuple = Parrot_pmc_new(INTERP, enum_class_FixedPMCArray);
+ /* for a fully typed namespace, we'd need 3 or 4 */
+ new_tuple = Parrot_pmc_new_init_int(INTERP,
+ enum_class_FixedPMCArray, NS_max_slots);
/* flag it as special */
PObj_get_FLAGS(new_tuple) |= FPA_is_ns_ext;
-
- /* for a fully typed namespace, we'd need 3 or 4 */
- VTABLE_set_integer_native(INTERP, new_tuple, NS_max_slots);
}
}
@@ -514,7 +525,7 @@
INTVAL i = 0;
while (!PMC_IS_NULL(ns) && VTABLE_elements(INTERP, key)) {
STRING * const name = VTABLE_get_string_keyed_int(INTERP, key, i);
- if (name == NULL || name == STRINGNULL) {
+ if (STRING_IS_NULL(name)) {
ns = PMCNULL;
/* What to do here? Throw an exception or something? */
break;
Modified: branches/avl_string_cache/src/pmc/object.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/object.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/object.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -119,7 +119,7 @@
/* Build a string representing the fully qualified attribute name. */
STRING *fq_name = VTABLE_get_string(interp, cur_class);
- fq_name = Parrot_str_append(interp, fq_name, name);
+ fq_name = Parrot_str_concat(interp, fq_name, name);
/* Look up. */
if (VTABLE_exists_keyed_str(interp, _class->attrib_index, fq_name)) {
@@ -160,7 +160,7 @@
/* Build a string representing the fully qualified attribute name. */
parent_class = Parrot_oo_get_class(interp, key);
fq_name = VTABLE_get_string(interp, parent_class);
- fq_name = Parrot_str_append(interp, fq_name, name);
+ fq_name = Parrot_str_concat(interp, fq_name, name);
/* Look up. */
if (VTABLE_exists_keyed_str(interp, _class->attrib_index, fq_name)) {
@@ -782,14 +782,16 @@
STRING * const meth_name = CONST_STRING(interp, "clone");
PMC * const meth =
Parrot_oo_find_vtable_override(interp, obj->_class, meth_name);
+ PMC *result;
+
if (!PMC_IS_NULL(meth)) {
- PMC *result;
- Parrot_pcc_invoke_sub_from_c_args(interp, meth, "Pi->P",
- pmc, &result);
- return result;
+ Parrot_pcc_invoke_sub_from_c_args(interp, meth, "Pi->P", pmc, &result);
}
- else
- return Parrot_oo_clone_object(interp, SELF, obj->_class, NULL);
+ else {
+ result = Parrot_oo_clone_object(interp, SELF, NULL);
+ }
+
+ return result;
}
/*
Modified: branches/avl_string_cache/src/pmc/opcode.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/opcode.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/opcode.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -114,14 +114,16 @@
METHOD dirs() {
const op_info_t * const info = PARROT_OPCODE(SELF)->info;
- PMC *result = Parrot_pmc_new(INTERP, enum_class_FixedIntegerArray);
+ PMC *result;
INTVAL arg_count = info->op_count - 1;
if (arg_count > 0) {
INTVAL i;
- VTABLE_set_integer_native(INTERP, result, arg_count);
+ result = Parrot_pmc_new_init_int(INTERP, enum_class_FixedIntegerArray, arg_count);
for (i = 0; i < arg_count; ++i)
VTABLE_set_integer_keyed_int(INTERP, result, i, (INTVAL) info->dirs[i]);
}
+ else
+ result = Parrot_pmc_new(INTERP, enum_class_FixedIntegerArray);
RETURN(PMC *result);
}
Modified: branches/avl_string_cache/src/pmc/orderedhash.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/orderedhash.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/orderedhash.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -338,8 +338,8 @@
}
/* Create new entry */
- list_entry = Parrot_pmc_new(INTERP, enum_class_FixedPMCArray);
- VTABLE_set_integer_native(INTERP, list_entry, ORDERED_HASH_ITEM_MAX);
+ list_entry = Parrot_pmc_new_init_int(INTERP,
+ enum_class_FixedPMCArray, ORDERED_HASH_ITEM_MAX);
VTABLE_set_pmc_keyed_int(INTERP, list_entry, ORDERED_HASH_ITEM_VALUE, value);
VTABLE_set_pmc_keyed_int(INTERP, list_entry, ORDERED_HASH_ITEM_KEY, key);
Modified: branches/avl_string_cache/src/pmc/packfile.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/packfile.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/packfile.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -168,17 +168,21 @@
=cut
Implementation note: taken from the bottom end of Parrot_pbc_read().
+
*/
+
VTABLE void set_string_native(STRING *str) {
- PackFile * const pf = PackFile_new(interp, 0);
- opcode_t * const ptr = (opcode_t *)Parrot_string_cstring(interp, str);
- const int length = Parrot_str_byte_length(interp, str);
Parrot_Packfile_attributes * const attrs = PARROT_PACKFILE(SELF);
+ PackFile * const pf = PackFile_new(interp, 0);
+ const opcode_t * const ptr =
+ (const opcode_t *)Parrot_string_cstring(interp, str);
+
+ const int length = Parrot_str_byte_length(interp, str);
if (!PackFile_unpack(interp, pf, ptr, length)) {
PackFile_destroy(interp, pf);
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_MALFORMED_PACKFILE,
- "Can't unpack packfile.");
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_MALFORMED_PACKFILE, "Can't unpack packfile.");
}
/* Disable GC during copy data into internal structures. */
Modified: branches/avl_string_cache/src/pmc/packfileannotations.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/packfileannotations.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/packfileannotations.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -311,8 +311,7 @@
PMC * key_array = VTABLE_get_pmc_keyed_str(interp, keys, entity_attrs->name);
if (PMC_IS_NULL(key_array)) {
/* Never see this name before. Create new FIA and add to keys. */
- key_array = Parrot_pmc_new(interp, enum_class_FixedIntegerArray);
- VTABLE_set_integer_native(interp, key_array, 3);
+ key_array = Parrot_pmc_new_init_int(interp, enum_class_FixedIntegerArray, 3);
VTABLE_set_integer_keyed_int(interp, key_array, 0, -1);
VTABLE_set_integer_keyed_int(interp, key_array, 1, -1);
VTABLE_set_integer_keyed_int(interp, key_array, 2, -1);
Modified: branches/avl_string_cache/src/pmc/packfiledirectory.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/packfiledirectory.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/packfiledirectory.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -148,7 +148,7 @@
PackFile_Segment * const pfseg = (PackFile_Segment *)VTABLE_get_pointer(interp, seg);
pfseg->pf = pf;
- pfseg->name = Parrot_str_copy(interp, name);
+ pfseg->name = name;
PackFile_add_segment(interp, pfdir, pfseg);
}
Modified: branches/avl_string_cache/src/pmc/parrotinterpreter.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/parrotinterpreter.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/parrotinterpreter.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -145,7 +145,7 @@
Parrot_Class_attributes * const source_class = PARROT_CLASS(source);
Parrot_Class_attributes * const dest_class = PARROT_CLASS(dest);
- dest_class->name = Parrot_str_copy(d, source_class->name);
+ dest_class->name = source_class->name;
dest_class->_namespace = VTABLE_clone(d, source_class->_namespace);
}
}
Modified: branches/avl_string_cache/src/pmc/pmcproxy.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/pmcproxy.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/pmcproxy.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -486,9 +486,7 @@
VTABLE STRING *get_string() {
Parrot_Class_attributes * const proxy_info = PARROT_CLASS(SELF);
-
- /* Copy the stored string name of the proxy. */
- return Parrot_str_copy(interp, proxy_info->name);
+ return proxy_info->name;
}
Modified: branches/avl_string_cache/src/pmc/resizablepmcarray.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/resizablepmcarray.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/resizablepmcarray.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -86,7 +86,7 @@
INTVAL i, cur, needed;
i = cur = PMC_threshold(SELF);
if (cur < 8192)
- cur = size < 2 * cur ? 2 * cur : size;
+ cur = (size < 2 * cur) ? (2 * cur) : size;
else {
needed = size - cur;
cur += needed + 4096;
@@ -285,8 +285,8 @@
}
VTABLE void delete_keyed_int(INTVAL idx) {
- PMC **data = PMC_array(SELF);
- INTVAL n = PMC_size(SELF);
+ PMC ** const data = PMC_array(SELF);
+ const INTVAL n = PMC_size(SELF);
INTVAL i;
for (i = idx; i < n - 1; ++i)
@@ -320,7 +320,7 @@
}
VTABLE INTVAL exists_keyed(PMC *key) {
- INTVAL ix = VTABLE_get_integer(INTERP, key);
+ const INTVAL ix = VTABLE_get_integer(INTERP, key);
return SELF.exists_keyed_int(ix);
}
@@ -370,8 +370,8 @@
VTABLE void push_float(FLOATVAL value) {
- INTVAL size = PMC_size(SELF);
- PMC *val = Parrot_pmc_new(INTERP, enum_class_Float);
+ const INTVAL size = PMC_size(SELF);
+ PMC * const val = Parrot_pmc_new(INTERP, enum_class_Float);
VTABLE_set_number_native(INTERP, val, value);
SELF.set_pmc_keyed_int(size, val);
@@ -381,8 +381,8 @@
VTABLE void push_integer(INTVAL value) {
- INTVAL size = PMC_size(SELF);
- PMC *val = Parrot_pmc_new(INTERP, enum_class_Integer);
+ const INTVAL size = PMC_size(SELF);
+ PMC * const val = Parrot_pmc_new(INTERP, enum_class_Integer);
VTABLE_set_integer_native(INTERP, val, value);
SELF.set_pmc_keyed_int(size, val);
@@ -391,9 +391,14 @@
}
VTABLE void push_pmc(PMC *value) {
+ const INTVAL size = PMC_size(SELF);
+ const INTVAL thresh = PMC_threshold(SELF);
- INTVAL size = PMC_size(SELF);
- SELF.set_integer_native(size + 1);
+ if (PMC_array(SELF) && size < thresh)
+ PMC_size(SELF) = size + 1;
+ else {
+ SELF.set_integer_native(size + 1);
+ }
((PMC **)PMC_array(SELF))[size] = value;
return;
@@ -401,8 +406,8 @@
VTABLE void push_string(STRING *value) {
- INTVAL size = PMC_size(SELF);
- PMC *val = Parrot_pmc_new(INTERP, enum_class_String);
+ const INTVAL size = PMC_size(SELF);
+ PMC * const val = Parrot_pmc_new(INTERP, enum_class_String);
VTABLE_assign_string_native(INTERP, val, value);
SELF.set_pmc_keyed_int(size, val);
@@ -505,8 +510,8 @@
VTABLE void unshift_float(FLOATVAL value) {
- INTVAL size = PMC_size(SELF);
- PMC *val = Parrot_pmc_new(INTERP, enum_class_Float);
+ const INTVAL size = PMC_size(SELF);
+ PMC * const val = Parrot_pmc_new(INTERP, enum_class_Float);
PMC **data;
INTVAL i;
@@ -525,8 +530,8 @@
VTABLE void unshift_integer(INTVAL value) {
- INTVAL size = PMC_size(SELF);
- PMC *val = Parrot_pmc_new(INTERP, enum_class_Integer);
+ const INTVAL size = PMC_size(SELF);
+ PMC * const val = Parrot_pmc_new(INTERP, enum_class_Integer);
PMC **data;
INTVAL i;
@@ -545,7 +550,7 @@
VTABLE void unshift_pmc(PMC *value) {
- INTVAL size = PMC_size(SELF);
+ const INTVAL size = PMC_size(SELF);
PMC **data;
INTVAL i;
@@ -563,8 +568,8 @@
VTABLE void unshift_string(STRING *value) {
- INTVAL size = PMC_size(SELF);
- PMC *val = Parrot_pmc_new(INTERP, enum_class_String);
+ const INTVAL size = PMC_size(SELF);
+ PMC * const val = Parrot_pmc_new(INTERP, enum_class_String);
PMC **data;
INTVAL i;
@@ -592,7 +597,7 @@
*/
VTABLE PMC *clone() {
- PMC *copy = SUPER();
+ PMC * const copy = SUPER();
/* copy trimmed extra space */
PMC_threshold(copy) = PMC_size(SELF);
@@ -612,9 +617,8 @@
METHOD append(PMC *other) {
- INTVAL i;
- INTVAL n = VTABLE_elements(INTERP, SELF);
- INTVAL m = VTABLE_elements(INTERP, other);
+ const INTVAL n = VTABLE_elements(INTERP, SELF);
+ const INTVAL m = VTABLE_elements(INTERP, other);
if (!m)
RETURN(void);
@@ -624,14 +628,15 @@
if (other->vtable->base_type == SELF->vtable->base_type
|| other->vtable->base_type == enum_class_FixedPMCArray) {
- PMC **other_data = PMC_array(other);
- PMC **this_data = PMC_array(SELF);
+ PMC ** const other_data = PMC_array(other);
+ PMC ** const this_data = PMC_array(SELF);
/* libc is faster at copying data than a manual loop here */
memmove(this_data + n, other_data, m * sizeof (PMC *));
}
else {
- PMC **this_data = PMC_array(SELF);
+ PMC ** const this_data = PMC_array(SELF);
+ INTVAL i;
for (i = 0; i < m; ++i)
this_data[n + i] = VTABLE_get_pmc_keyed_int(INTERP, other, i);
@@ -650,18 +655,18 @@
VTABLE STRING *get_repr() {
INTVAL j;
- INTVAL n = VTABLE_elements(INTERP, SELF);
+ const INTVAL n = VTABLE_elements(INTERP, SELF);
STRING *res = CONST_STRING(INTERP, "[ ");
for (j = 0; j < n; ++j) {
- PMC *val = SELF.get_pmc_keyed_int(j);
- res = Parrot_str_append(INTERP, res, VTABLE_get_repr(INTERP, val));
+ PMC * const val = SELF.get_pmc_keyed_int(j);
+ res = Parrot_str_concat(INTERP, res, VTABLE_get_repr(INTERP, val));
if (j < n - 1)
- res = Parrot_str_append(INTERP, res, CONST_STRING(INTERP, ", "));
+ res = Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, ", "));
}
- return Parrot_str_append(INTERP, res, CONST_STRING(INTERP, " ]"));
+ return Parrot_str_concat(INTERP, res, CONST_STRING(INTERP, " ]"));
}
/*
@@ -684,7 +689,7 @@
const INTVAL length = VTABLE_elements(INTERP, SELF);
const INTVAL elems = VTABLE_elements(INTERP, value);
- INTVAL shift = elems - count;
+ const INTVAL shift = elems - count;
INTVAL i;
/* start from end? */
@@ -735,12 +740,12 @@
*/
METHOD shift() {
- PMC *value = VTABLE_shift_pmc(INTERP, SELF);
+ PMC * const value = VTABLE_shift_pmc(INTERP, SELF);
RETURN(PMC *value);
}
METHOD pop() {
- PMC *value = VTABLE_pop_pmc(INTERP, SELF);
+ PMC * const value = VTABLE_pop_pmc(INTERP, SELF);
RETURN(PMC *value);
}
Modified: branches/avl_string_cache/src/pmc/resizablestringarray.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/resizablestringarray.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/resizablestringarray.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -166,7 +166,7 @@
*/
VTABLE INTVAL pop_integer() {
- PMC *pmcval = SELF.pop_pmc();
+ PMC * const pmcval = SELF.pop_pmc();
return VTABLE_get_integer(INTERP, pmcval);
}
@@ -181,7 +181,7 @@
*/
VTABLE FLOATVAL pop_float() {
- PMC *pmcval = SELF.pop_pmc();
+ PMC * const pmcval = SELF.pop_pmc();
return VTABLE_get_number(INTERP, pmcval);
}
@@ -238,7 +238,7 @@
INTVAL cur = i;
if (cur < 8192)
- cur = new_size < 2 * cur ? 2 * cur : new_size;
+ cur = (new_size < 2 * cur) ? (2 * cur) : new_size;
else {
cur = new_size + 4096;
cur &= ~0xfff;
@@ -268,7 +268,7 @@
*/
VTABLE PMC *clone() {
- PMC *copy = SUPER();
+ PMC * const copy = SUPER();
INTVAL size;
GET_ATTR_size(interp, SELF, size);
/* copy trimmed extra space */
@@ -311,8 +311,8 @@
*/
VTABLE PMC *shift_pmc() {
- STRING *strval = SELF.shift_string();
- PMC *value = Parrot_pmc_new(INTERP, enum_class_String);
+ STRING * const strval = SELF.shift_string();
+ PMC * const value = Parrot_pmc_new(INTERP, enum_class_String);
VTABLE_set_string_native(INTERP, value, strval);
@@ -330,7 +330,7 @@
*/
VTABLE INTVAL shift_integer() {
- PMC *pmcval = SELF.shift_pmc();
+ PMC * const pmcval = SELF.shift_pmc();
return VTABLE_get_integer(INTERP, pmcval);
}
@@ -345,7 +345,7 @@
*/
VTABLE FLOATVAL shift_float() {
- PMC *pmcval = SELF.shift_pmc();
+ PMC * const pmcval = SELF.shift_pmc();
return VTABLE_get_number(INTERP, pmcval);
}
@@ -362,7 +362,7 @@
*/
VTABLE void push_pmc(PMC *value) {
- STRING *strvalue = VTABLE_get_string(INTERP, value);
+ STRING * const strvalue = VTABLE_get_string(INTERP, value);
SELF.push_string(strvalue);
}
@@ -378,7 +378,7 @@
*/
VTABLE void push_integer(INTVAL value) {
- PMC *ret = Parrot_pmc_new(INTERP, enum_class_String);
+ PMC * const ret = Parrot_pmc_new(INTERP, enum_class_String);
STRING *val;
VTABLE_set_integer_native(INTERP, ret, value);
@@ -398,7 +398,7 @@
*/
VTABLE void push_float(FLOATVAL value) {
- PMC *ret = Parrot_pmc_new(INTERP, enum_class_String);
+ PMC * const ret = Parrot_pmc_new(INTERP, enum_class_String);
STRING *val;
VTABLE_set_number_native(INTERP, ret, value);
@@ -474,7 +474,7 @@
*/
VTABLE void unshift_pmc(PMC *value) {
- STRING *strvalue = VTABLE_get_string(INTERP, value);
+ STRING * const strvalue = VTABLE_get_string(INTERP, value);
SELF.unshift_string(strvalue);
}
@@ -490,7 +490,7 @@
*/
VTABLE void unshift_integer(INTVAL value) {
- PMC *ret = Parrot_pmc_new(INTERP, enum_class_String);
+ PMC * const ret = Parrot_pmc_new(INTERP, enum_class_String);
STRING *val;
VTABLE_set_integer_native(INTERP, ret, value);
@@ -510,7 +510,7 @@
*/
VTABLE void unshift_float(FLOATVAL value) {
- PMC *ret = Parrot_pmc_new(INTERP, enum_class_String);
+ PMC * const ret = Parrot_pmc_new(INTERP, enum_class_String);
STRING *val;
VTABLE_set_number_native(INTERP, ret, value);
@@ -552,7 +552,7 @@
*/
VTABLE void delete_keyed(PMC *key) {
- INTVAL idx = VTABLE_get_integer(INTERP, key);
+ const INTVAL idx = VTABLE_get_integer(INTERP, key);
STRING **str_array;
UINTVAL size, i;
@@ -642,12 +642,12 @@
*/
METHOD shift() {
- PMC *value = SELF.shift_pmc();
+ PMC * const value = SELF.shift_pmc();
RETURN(PMC *value);
}
METHOD pop() {
- PMC *value = SELF.pop_pmc();
+ PMC * const value = SELF.pop_pmc();
RETURN(PMC *value);
}
@@ -681,13 +681,6 @@
F<docs/pdds/pdd17_basic_types.pod>.
-=head1 HISTORY
-
-Initial version - Matt Fowles 2004-06-11
-Changed allocator to double size - Matt Fowles 2004-06-15
-Added push_string - Bernhard Schmalhofer 2004-10-17
-moved available size to int_val2 - Matt Fowles 2005-07-22
-
=cut
*/
Deleted: branches/avl_string_cache/src/pmc/retcontinuation.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/retcontinuation.pmc Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,118 +0,0 @@
-/*
-Copyright (C) 2001-2008, Parrot Foundation.
-$Id$
-
-=head1 NAME
-
-src/pmc/retcontinuation.pmc - Return Continuation
-
-=head1 DESCRIPTION
-
-C<RetContinuation> extends C<Continuation>.
-
-A return continuation is a one shot Continuation. It gets recycled immediately
-after invocation.
-
-=head2 Methods
-
-=over 4
-
-=cut
-
-*/
-
-#include "parrot/oplib/ops.h"
-
-/* HEADERIZER HFILE: none */
-/* HEADERIZER BEGIN: static */
-/* HEADERIZER END: static */
-
-pmclass RetContinuation extends Continuation auto_attrs {
-
-/*
-
-=item C<void init()>
-
-Initializes the continuation.
-
-=cut
-
-*/
-
- VTABLE void init() {
- Parrot_RetContinuation_attributes * const attrs = PARROT_RETCONTINUATION(SELF);
-
- attrs->to_ctx = CURRENT_CONTEXT(interp);
- attrs->from_ctx = PMCNULL; /* filled in during a call */
- attrs->runloop_id = 0;
- attrs->seg = interp->code;
- attrs->address = NULL;
- }
-
-
-/*
-
-=item C<PMC *clone>
-
-Return a new Continuation PMC with the context of SELF. Note: the returned
-object is not a RetContinuation and creating a real Continuation invalidates
-all RetContinuation all the way up the call chain. That is, these can't be
-recycled; they persist until the GC gets at them.
-
-=cut
-
-*/
- VTABLE PMC *clone() {
- invalidate_retc_context(INTERP, SELF);
- return SUPER();
- }
-/*
-
-=item C<opcode_t *invoke(void *next)>
-
-Transfers control to the calling context and frees the current context.
-
-=cut
-
-*/
-
- VTABLE opcode_t *invoke(void *in_next) {
- Parrot_Continuation_attributes *data = PARROT_CONTINUATION(SELF);
- PMC *from_ctx = data->from_ctx;
- PackFile_ByteCode * const seg = data->seg;
- opcode_t *next = data->address;
- UNUSED(in_next)
-
- Parrot_continuation_check(interp, SELF);
- Parrot_continuation_rewind_environment(interp, SELF);
-
- /* recycle this PMC and make sure it doesn't get marked */
- if (!PMC_IS_NULL(from_ctx))
- Parrot_pcc_set_continuation(interp, from_ctx, NULL);
-
- if (INTERP->code != seg)
- Parrot_switch_to_cs(INTERP, seg, 1);
-
- return next;
- }
-}
-
-
-/*
-
-=back
-
-=head1 HISTORY
-
-Initial revision by sean 2002/08/04.
-
-=cut
-
-*/
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Modified: branches/avl_string_cache/src/pmc/role.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/role.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/role.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -515,7 +515,7 @@
}
/* Otherwise, copy the stored string name of the class. */
- return Parrot_str_copy(interp, role->name);
+ return role->name;
}
/*
Modified: branches/avl_string_cache/src/pmc/scalar.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/scalar.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/scalar.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -632,7 +632,7 @@
VTABLE PMC *concatenate(PMC *value, PMC *dest) {
STRING * const s = Parrot_str_concat(INTERP, SELF.get_string(),
- VTABLE_get_string(INTERP, value), 0);
+ VTABLE_get_string(INTERP, value));
dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
@@ -642,7 +642,7 @@
VTABLE PMC *concatenate_str(STRING *value, PMC *dest) {
STRING * const s = Parrot_str_concat(INTERP,
- SELF.get_string(), value, 0);
+ SELF.get_string(), value);
dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF));
@@ -653,12 +653,12 @@
VTABLE void i_concatenate(PMC *value) {
STRING * const s = SELF.get_string();
STRING * const v = VTABLE_get_string(INTERP, value);
- SELF.set_string_native(Parrot_str_append(INTERP, s, v));
+ SELF.set_string_native(Parrot_str_concat(INTERP, s, v));
}
VTABLE void i_concatenate_str(STRING *value) {
STRING * const s = SELF.get_string();
- SELF.set_string_native(Parrot_str_append(INTERP, s, value));
+ SELF.set_string_native(Parrot_str_concat(INTERP, s, value));
}
/*
@@ -924,7 +924,7 @@
VTABLE STRING *substr_str(INTVAL offset, INTVAL length) {
return Parrot_str_substr(INTERP, VTABLE_get_string(INTERP, SELF),
- offset, length, NULL, 0);
+ offset, length);
}
/*
Modified: branches/avl_string_cache/src/pmc/schedulermessage.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/schedulermessage.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/schedulermessage.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -114,7 +114,10 @@
*/
VTABLE INTVAL get_integer() {
- Parrot_SchedulerMessage_attributes * core_struct = PARROT_SCHEDULERMESSAGE(SELF);
+ const Parrot_SchedulerMessage_attributes * const
+ core_struct = PARROT_SCHEDULERMESSAGE(SELF);
+ UNUSED(interp);
+
return core_struct->id;
}
@@ -129,7 +132,8 @@
*/
VTABLE void set_integer_native(INTVAL value) {
- Parrot_SchedulerMessage_attributes * core_struct = PARROT_SCHEDULERMESSAGE(SELF);
+ Parrot_SchedulerMessage_attributes * const core_struct = PARROT_SCHEDULERMESSAGE(SELF);
+ UNUSED(interp);
core_struct->id = value;
}
@@ -145,7 +149,9 @@
*/
STRING * get_string() {
- Parrot_SchedulerMessage_attributes * core_struct = PARROT_SCHEDULERMESSAGE(SELF);
+ const Parrot_SchedulerMessage_attributes * const core_struct =
+ PARROT_SCHEDULERMESSAGE(SELF);
+ UNUSED(interp);
return core_struct->type;
}
@@ -160,7 +166,8 @@
*/
VTABLE void set_string_native(STRING *value) {
- Parrot_SchedulerMessage_attributes * core_struct = PARROT_SCHEDULERMESSAGE(SELF);
+ Parrot_SchedulerMessage_attributes * const core_struct = PARROT_SCHEDULERMESSAGE(SELF);
+ UNUSED(interp);
core_struct->type = value;
}
Modified: branches/avl_string_cache/src/pmc/string.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/string.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/string.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -38,7 +38,7 @@
*/
VTABLE void init() {
- STRING *str_val = STRINGNULL;
+ STRING * const str_val = STRINGNULL;
SET_ATTR_str_val(INTERP, SELF, str_val);
PObj_custom_mark_SET(SELF);
@@ -125,8 +125,7 @@
VTABLE STRING *get_string() {
STRING *str_val;
GET_ATTR_str_val(INTERP, SELF, str_val);
-
- return str_val ? Parrot_str_copy(INTERP, str_val) : NULL;
+ return str_val;
}
/*
@@ -191,7 +190,7 @@
*/
VTABLE void set_string_native(STRING *value) {
- if (!value)
+ if (value == NULL)
value = STRINGNULL;
/* Only allow constant PMCs to embed constant strings */
@@ -217,12 +216,7 @@
*/
VTABLE void assign_string_native(STRING *value) {
- if (!STRING_IS_NULL(value)) {
- SET_ATTR_str_val(INTERP, SELF,
- Parrot_str_set(INTERP, SELF.get_string(), value));
- }
- else
- SET_ATTR_str_val(INTERP, SELF, NULL);
+ SET_ATTR_str_val(INTERP, SELF, value);
}
/*
@@ -375,7 +369,7 @@
VTABLE void substr(INTVAL offset, INTVAL length, PMC *dest) {
STRING *str_val, *s2;
GET_ATTR_str_val(INTERP, SELF, str_val);
- s2 = Parrot_str_substr(INTERP, str_val, offset, length, NULL, 0);
+ s2 = Parrot_str_substr(INTERP, str_val, offset, length);
VTABLE_set_string_native(INTERP, dest, s2);
}
@@ -392,7 +386,7 @@
VTABLE STRING *substr_str(INTVAL offset, INTVAL length) {
STRING *str_val;
GET_ATTR_str_val(INTERP, SELF, str_val);
- return Parrot_str_substr(INTERP, str_val, offset, length, NULL, 0);
+ return Parrot_str_substr(INTERP, str_val, offset, length);
}
/*
@@ -447,7 +441,7 @@
VTABLE STRING *get_string_keyed_int(INTVAL pos) {
STRING *str_val;
GET_ATTR_str_val(INTERP, SELF, str_val);
- return Parrot_str_substr(INTERP, str_val, pos, 1, NULL, 0);
+ return Parrot_str_substr(INTERP, str_val, pos, 1);
}
VTABLE INTVAL get_integer_keyed(PMC *key) {
@@ -478,7 +472,8 @@
STRING *str_val;
const INTVAL len = Parrot_str_byte_length(INTERP, value);
GET_ATTR_str_val(INTERP, SELF, str_val);
- Parrot_str_replace(INTERP, str_val, pos, len, value, &str_val);
+ str_val = Parrot_str_replace(INTERP, str_val, pos, len, value);
+ SET_ATTR_str_val(INTERP, SELF, str_val);
}
VTABLE void set_integer_keyed(PMC *key, INTVAL value) {
@@ -489,7 +484,8 @@
STRING *str_val;
STRING * const c = string_chr(INTERP, (UINTVAL) value);
GET_ATTR_str_val(INTERP, SELF, str_val);
- Parrot_str_replace(INTERP, str_val, pos, 1, c, &str_val);
+ str_val = Parrot_str_replace(INTERP, str_val, pos, 1, c);
+ SET_ATTR_str_val(INTERP, SELF, str_val);
}
VTABLE void set_pmc_keyed(PMC *key, PMC *value) {
@@ -512,11 +508,11 @@
METHOD replace(STRING *orig, STRING *_new) {
const INTVAL old_len = Parrot_str_byte_length(INTERP, orig);
const INTVAL new_len = Parrot_str_byte_length(INTERP, _new);
- STRING * const s = VTABLE_get_string(INTERP, SELF);
+ STRING * s = VTABLE_get_string(INTERP, SELF);
INTVAL i = 0;
while (-1 != (i = Parrot_str_find_index(INTERP, s, orig, i))) {
- (void)Parrot_str_replace(INTERP, s, i, old_len, _new, NULL);
+ s = Parrot_str_replace(INTERP, s, i, old_len, _new);
i += new_len;
}
@@ -540,7 +536,7 @@
*/
METHOD to_int(INTVAL base) {
- PMC *result = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(interp,
+ PMC * const result = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(interp,
enum_class_Integer));
/* TODO verify encoding */
@@ -575,7 +571,7 @@
}
if (j < len) {
- char ch = str[j];
+ const char ch = str[j];
Parrot_str_free_cstring(str);
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
"invalid conversion to int - bad char %c", ch);
@@ -703,7 +699,7 @@
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_ENCODING,
"Can't translate non-ascii");
- p = (unsigned char *)Buffer_bufstart(src);
+ p = (unsigned char *)(src->strstart);
/* TODO verify trans table */
GETATTR_FixedIntegerArray_int_array(INTERP, table, tr_data);
Modified: branches/avl_string_cache/src/pmc/stringhandle.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/stringhandle.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/stringhandle.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -110,11 +110,11 @@
Parrot_StringHandle_attributes * const data_struct = PARROT_STRINGHANDLE(copy);
if (old_struct->stringhandle != NULL)
- data_struct->stringhandle = Parrot_str_copy(INTERP, old_struct->stringhandle);
+ data_struct->stringhandle = old_struct->stringhandle;
if (old_struct->mode != NULL)
- data_struct->mode = Parrot_str_copy(INTERP, old_struct->mode);
+ data_struct->mode = old_struct->mode;
if (old_struct->encoding != NULL)
- data_struct->encoding = Parrot_str_copy(INTERP, old_struct->encoding);
+ data_struct->encoding = old_struct->encoding;
data_struct->flags = old_struct->flags;
return copy;
@@ -182,10 +182,10 @@
INTVAL flags;
if (got_mode && !STRING_IS_NULL(mode))
- SET_ATTR_mode(INTERP, SELF, Parrot_str_copy(INTERP, mode));
+ SET_ATTR_mode(INTERP, SELF, mode);
if (got_filename && !STRING_IS_NULL(filename))
- SET_ATTR_filename(INTERP, SELF, Parrot_str_copy(INTERP, filename));
+ SET_ATTR_filename(INTERP, SELF, filename);
/* If StringHandle hasn't already been initialized, create a new string. */
@@ -317,8 +317,6 @@
else
string_result = Parrot_str_new_constant(INTERP, "");
}
- else
- string_result = Parrot_str_copy(INTERP, string_result);
RETURN(STRING *string_result);
}
@@ -378,7 +376,7 @@
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_PIO_ERROR,
"Cannot write to a filehandle not opened for write");
- new_string = Parrot_str_append(interp, old_string, to_print);
+ new_string = Parrot_str_concat(interp, old_string, to_print);
SET_ATTR_stringhandle(INTERP, SELF, new_string);
@@ -464,13 +462,9 @@
*/
METHOD mode() {
- STRING *mode, *mode_copy;
-
+ STRING *mode;
GET_ATTR_mode(INTERP, SELF, mode);
- mode_copy = Parrot_str_copy(INTERP, mode);
-
- RETURN(STRING *mode_copy);
-
+ RETURN(STRING *mode);
}
/*
@@ -486,21 +480,14 @@
METHOD encoding(STRING *new_encoding :optional, INTVAL got_encoding :opt_flag) {
STRING *encoding;
- STRING *encoding_copy = NULL;
if (got_encoding) {
- if (!STRING_IS_NULL(new_encoding))
- encoding_copy = Parrot_str_copy(INTERP, new_encoding);
- SET_ATTR_encoding(INTERP, SELF, encoding_copy);
+ SET_ATTR_encoding(INTERP, SELF, new_encoding);
RETURN(STRING *new_encoding);
}
GET_ATTR_encoding(INTERP, SELF, encoding);
- if (!STRING_IS_NULL(encoding))
- encoding_copy = Parrot_str_copy(INTERP, encoding);
-
- RETURN(STRING *encoding_copy);
-
+ RETURN(STRING *encoding);
}
/*
Modified: branches/avl_string_cache/src/pmc/sub.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/sub.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/sub.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -252,20 +252,14 @@
*/
VTABLE STRING *get_string() {
- Parrot_Sub_attributes *sub;
- PMC_get_sub(INTERP, SELF, sub);
-
- if (sub->name)
- return Parrot_str_copy(INTERP, sub->name);
-
- return NULL;
+ STRING *name;
+ GET_ATTR_name(INTERP, SELF, name);
+ return name;
}
VTABLE void set_string_native(STRING *subname) {
- Parrot_Sub_attributes *sub;
- PMC_get_sub(INTERP, SELF, sub);
- sub->name = Parrot_str_copy(INTERP, subname);
+ SET_ATTR_name(INTERP, SELF, subname);
}
@@ -398,8 +392,10 @@
pc = sub->seg->base.data + sub->start_offs;
INTERP->current_cont = NULL;
- if (ccont == NEED_CONTINUATION)
- ccont = new_ret_continuation_pmc(interp, (opcode_t *)next);
+ if (ccont == NEED_CONTINUATION) {
+ ccont = pmc_new(interp, enum_class_Continuation);
+ VTABLE_set_pointer(interp, ccont, next);
+ }
PARROT_ASSERT(!PMC_IS_NULL(ccont));
@@ -427,12 +423,9 @@
PARROT_CONTINUATION(ccont)->from_ctx = context;
/* if this is an outer sub, then we need to set sub->ctx
- * to the new context (refcounted) and convert the
- * retcontinuation to a normal continuation. */
+ * to the new context (refcounted) */
if (PObj_get_FLAGS(SELF) & SUB_FLAG_IS_OUTER) {
sub->ctx = context;
- /* convert retcontinuation to a continuation */
- ccont->vtable = interp->vtables[enum_class_Continuation];
}
/* create pad if needed
@@ -528,9 +521,6 @@
/* first set the sub struct, Parrot_str_copy may cause GC */
*sub = *dest_sub;
- if (sub->name)
- sub->name = Parrot_str_copy(INTERP, sub->name);
-
/* Be sure not to share arg_info. */
dest_sub->arg_info = NULL;
@@ -563,10 +553,6 @@
/* copy the sub struct */
memmove(my_sub, other_sub, sizeof (Parrot_Sub_attributes));
-
- /* copy the name so it's a different string in memory */
- if (my_sub->name)
- my_sub->name = Parrot_str_copy(INTERP, my_sub->name);
}
else
Parrot_ex_throw_from_c_args(INTERP, NULL,
Modified: branches/avl_string_cache/src/pmc/unmanagedstruct.pmc
==============================================================================
--- branches/avl_string_cache/src/pmc/unmanagedstruct.pmc Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc/unmanagedstruct.pmc Thu Apr 22 09:55:26 2010 (r45889)
@@ -36,8 +36,7 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-PARROT_WARN_UNUSED_RESULT
-static size_t calc_offsets(PARROT_INTERP,
+static void calc_offsets(PARROT_INTERP,
ARGIN(PMC *pmc),
ARGIN(PMC *value),
size_t toff)
@@ -50,7 +49,7 @@
static char * char_offset_int(PARROT_INTERP,
ARGIN(PMC *pmc),
INTVAL ix,
- ARGMOD(int *type))
+ ARGOUT(int *type))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(4)
@@ -61,7 +60,7 @@
static char * char_offset_key(PARROT_INTERP,
ARGIN(PMC *pmc),
ARGIN(PMC *key),
- ARGMOD(int *type))
+ ARGOUT(int *type))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
@@ -181,7 +180,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static char *
-char_offset_int(PARROT_INTERP, ARGIN(PMC *pmc), INTVAL ix, ARGMOD(int *type))
+char_offset_int(PARROT_INTERP, ARGIN(PMC *pmc), INTVAL ix, ARGOUT(int *type))
{
ASSERT_ARGS(char_offset_int)
size_t offs, n;
@@ -271,7 +270,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static char *
-char_offset_key(PARROT_INTERP, ARGIN(PMC *pmc), ARGIN(PMC *key), ARGMOD(int *type))
+char_offset_key(PARROT_INTERP, ARGIN(PMC *pmc), ARGIN(PMC *key), ARGOUT(int *type))
{
ASSERT_ARGS(char_offset_key)
size_t offs, count, size, max;
@@ -723,7 +722,7 @@
/*
-=item C<static size_t calc_offsets(PARROT_INTERP, PMC *pmc, PMC *value, size_t
+=item C<static void calc_offsets(PARROT_INTERP, PMC *pmc, PMC *value, size_t
toff)>
Calculates the offsets for the C<struct>. See C<init_pmc()> for a description
@@ -733,8 +732,7 @@
*/
-PARROT_WARN_UNUSED_RESULT
-static size_t
+static void
calc_offsets(PARROT_INTERP, ARGIN(PMC *pmc), ARGIN(PMC *value), size_t toff)
{
ASSERT_ARGS(calc_offsets)
@@ -794,8 +792,6 @@
if (i == n - 3)
VTABLE_set_integer_native(interp, pmc, (INTVAL)toff);
}
-
- return toff;
}
pmclass UnManagedStruct auto_attrs no_ro {
@@ -852,7 +848,8 @@
*/
VTABLE PMC *clone() {
- PMC *clone = Parrot_pmc_new(INTERP, enum_class_UnManagedStruct);
+ PMC * const clone = Parrot_pmc_new(INTERP, enum_class_UnManagedStruct);
+
mem_sys_memmove(PMC_data(clone), PMC_data(SELF),
sizeof (Parrot_UnManagedStruct_attributes));
PARROT_UNMANAGEDSTRUCT(clone)->init =
@@ -887,7 +884,7 @@
*/
VTABLE void mark() {
- PMC *init = PARROT_UNMANAGEDSTRUCT(SELF)->init;
+ PMC * const init = PARROT_UNMANAGEDSTRUCT(SELF)->init;
Parrot_gc_mark_PMC_alive(INTERP, init);
}
@@ -976,7 +973,7 @@
VTABLE INTVAL get_integer_keyed(PMC *key) {
int type;
- char *p = char_offset_key(INTERP, pmc, key, &type);
+ char * const p = char_offset_key(INTERP, pmc, key, &type);
return ret_int(INTERP, p, type);
}
@@ -992,7 +989,7 @@
VTABLE FLOATVAL get_number_keyed_int(INTVAL key) {
int type;
- char *p = char_offset_int(INTERP, pmc, key, &type);
+ char * const p = char_offset_int(INTERP, pmc, key, &type);
return ret_float(INTERP, p, type);
}
@@ -1008,7 +1005,7 @@
VTABLE FLOATVAL get_number_keyed(PMC *key) {
int type;
- char *p = char_offset_key(INTERP, pmc, key, &type);
+ char * const p = char_offset_key(INTERP, pmc, key, &type);
return ret_float(INTERP, p, type);
}
@@ -1056,7 +1053,7 @@
VTABLE PMC *get_pmc_keyed_int(INTVAL key) {
int type;
- char *p = char_offset_int(INTERP, pmc, key, &type);
+ char * const p = char_offset_int(INTERP, pmc, key, &type);
return ret_pmc(INTERP, pmc, p, type, key);
}
@@ -1072,7 +1069,7 @@
VTABLE PMC *get_pmc_keyed(PMC *key) {
int type;
- char *p = char_offset_key(INTERP, pmc, key, &type);
+ char * const p = char_offset_key(INTERP, pmc, key, &type);
return ret_pmc(INTERP, pmc, p, type, key_2_idx(INTERP, pmc, key));
}
@@ -1116,7 +1113,7 @@
VTABLE void set_integer_keyed_int(INTVAL ix, INTVAL value) {
int type;
- char *p = char_offset_int(INTERP, pmc, ix, &type);
+ char * const p = char_offset_int(INTERP, pmc, ix, &type);
set_int(INTERP, p, type, value);
}
@@ -1134,7 +1131,7 @@
VTABLE void set_integer_keyed(PMC *key, INTVAL value) {
int type;
- char *p = char_offset_key(INTERP, pmc, key, &type);
+ char * const p = char_offset_key(INTERP, pmc, key, &type);
set_int(INTERP, p, type, value);
}
@@ -1150,7 +1147,7 @@
VTABLE void set_number_keyed_int(INTVAL key, FLOATVAL value) {
int type;
- char *p = char_offset_int(INTERP, pmc, key, &type);
+ char * const p = char_offset_int(INTERP, pmc, key, &type);
set_float(INTERP, p, type, value);
}
@@ -1166,7 +1163,7 @@
VTABLE void set_number_keyed(PMC *key, FLOATVAL value) {
int type;
- char *p = char_offset_key(INTERP, pmc, key, &type);
+ char * const p = char_offset_key(INTERP, pmc, key, &type);
set_float(INTERP, p, type, value);
}
@@ -1182,7 +1179,7 @@
VTABLE void set_string_keyed_int(INTVAL key, STRING *value) {
int type;
- char *p = char_offset_int(INTERP, pmc, key, &type);
+ char * const p = char_offset_int(INTERP, pmc, key, &type);
set_string(INTERP, p, type, value);
}
@@ -1198,7 +1195,7 @@
VTABLE void set_string_keyed(PMC *key, STRING *value) {
int type;
- char *p = char_offset_key(INTERP, pmc, key, &type);
+ char * const p = char_offset_key(INTERP, pmc, key, &type);
set_string(INTERP, p, type, value);
}
@@ -1208,10 +1205,6 @@
=back
-=head1 HISTORY
-
-Initial revision by sean 2002/08/04
-
=head1 SEE ALSO
F<docs/pmc/struct.pod>
Modified: branches/avl_string_cache/src/pmc_freeze.c
==============================================================================
--- branches/avl_string_cache/src/pmc_freeze.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/pmc_freeze.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -54,7 +54,7 @@
Parrot_freeze(PARROT_INTERP, ARGIN(PMC *pmc))
{
ASSERT_ARGS(Parrot_freeze)
- PMC *image = Parrot_pmc_new(interp, enum_class_ImageIO);
+ PMC * const image = Parrot_pmc_new(interp, enum_class_ImageIO);
VTABLE_set_pmc(interp, image, pmc);
return VTABLE_get_string(interp, image);
}
@@ -80,7 +80,7 @@
ASSERT_ARGS(Parrot_freeze_size)
UINTVAL int_result;
PMC *pmc_result;
- PMC *visitor = Parrot_pmc_new(interp, enum_class_ImageIOSize);
+ 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);
@@ -112,7 +112,7 @@
{
ASSERT_ARGS(Parrot_thaw)
- PMC *info = Parrot_pmc_new(interp, enum_class_ImageIO);
+ PMC * const info = Parrot_pmc_new(interp, enum_class_ImageIO);
int gc_block = 0;
PMC *result;
@@ -199,7 +199,8 @@
*/
void
-Parrot_visit_loop_visit(PARROT_INTERP, ARGIN(PMC *info)) {
+Parrot_visit_loop_visit(PARROT_INTERP, ARGIN(PMC *info))
+{
ASSERT_ARGS(Parrot_visit_loop_visit)
INTVAL i;
@@ -207,7 +208,7 @@
/* can't cache upper limit, visit may append items */
for (i = 0; i < VTABLE_elements(interp, todo); i++) {
- PMC *current = VTABLE_get_pmc_keyed_int(interp, todo, i);
+ PMC * const current = VTABLE_get_pmc_keyed_int(interp, todo, i);
if (!current)
Parrot_ex_throw_from_c_args(interp, NULL, 1,
"NULL current PMC in visit_loop_todo_list");
@@ -231,7 +232,8 @@
*/
void
-Parrot_visit_loop_thawfinish(PARROT_INTERP, ARGIN(PMC *info)) {
+Parrot_visit_loop_thawfinish(PARROT_INTERP, ARGIN(PMC *info))
+{
ASSERT_ARGS(Parrot_visit_loop_thawfinish)
/* call thawfinish for each processed PMC */
@@ -267,10 +269,6 @@
Lot of discussion on p6i and F<docs/dev/pmc_freeze.pod>.
-=head1 HISTORY
-
-Initial version by leo 2003.11.03 - 2003.11.07.
-
=cut
*/
Modified: branches/avl_string_cache/src/runcore/cores.c
==============================================================================
--- branches/avl_string_cache/src/runcore/cores.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/runcore/cores.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -272,10 +272,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static opcode_t * runops_cgoto_core(PARROT_INTERP,
- ARGIN(Parrot_runcore_t *runcore),
+ SHIM(Parrot_runcore_t *runcore),
ARGIN(opcode_t *pc))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
__attribute__nonnull__(3);
PARROT_WARN_UNUSED_RESULT
@@ -290,10 +289,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static opcode_t * runops_debugger_core(PARROT_INTERP,
- ARGIN(Parrot_runcore_t *runcore),
+ SHIM(Parrot_runcore_t *runcore),
ARGIN(opcode_t *pc))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
__attribute__nonnull__(3);
PARROT_WARN_UNUSED_RESULT
@@ -308,28 +306,25 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static opcode_t * runops_fast_core(PARROT_INTERP,
- ARGIN(Parrot_runcore_t *runcore),
+ SHIM(Parrot_runcore_t *runcore),
ARGIN(opcode_t *pc))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
__attribute__nonnull__(3);
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static opcode_t * runops_gc_debug_core(PARROT_INTERP,
- ARGIN(Parrot_runcore_t *runcore),
+ SHIM(Parrot_runcore_t *runcore),
ARGIN(opcode_t *pc))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
__attribute__nonnull__(3);
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static opcode_t * runops_slow_core(PARROT_INTERP,
- ARGIN(Parrot_runcore_t *runcore),
+ SHIM(Parrot_runcore_t *runcore),
ARGIN(opcode_t *pc))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
__attribute__nonnull__(3);
PARROT_WARN_UNUSED_RESULT
@@ -343,16 +338,12 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
-static opcode_t * runops_trace_core(PARROT_INTERP,
- ARGIN(Parrot_runcore_t *runcore),
- ARGIN(opcode_t *pc))
+static opcode_t * runops_trace_core(PARROT_INTERP, ARGIN(opcode_t *pc))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
+ __attribute__nonnull__(2);
#define ASSERT_ARGS_runops_cgoto_core __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(runcore) \
, PARROT_ASSERT_ARG(pc))
#define ASSERT_ARGS_runops_cgp_core __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -360,7 +351,6 @@
, PARROT_ASSERT_ARG(pc))
#define ASSERT_ARGS_runops_debugger_core __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(runcore) \
, PARROT_ASSERT_ARG(pc))
#define ASSERT_ARGS_runops_exec_core __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -368,15 +358,12 @@
, PARROT_ASSERT_ARG(pc))
#define ASSERT_ARGS_runops_fast_core __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(runcore) \
, PARROT_ASSERT_ARG(pc))
#define ASSERT_ARGS_runops_gc_debug_core __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(runcore) \
, PARROT_ASSERT_ARG(pc))
#define ASSERT_ARGS_runops_slow_core __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(runcore) \
, PARROT_ASSERT_ARG(pc))
#define ASSERT_ARGS_runops_switch_core __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -384,7 +371,6 @@
, PARROT_ASSERT_ARG(pc))
#define ASSERT_ARGS_runops_trace_core __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(runcore) \
, PARROT_ASSERT_ARG(pc))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -405,7 +391,7 @@
{
ASSERT_ARGS(Parrot_runcore_slow_init)
- Parrot_runcore_t *coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
+ Parrot_runcore_t * const coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
coredata->name = CONST_STRING(interp, "slow");
coredata->id = PARROT_SLOW_CORE;
coredata->opinit = PARROT_CORE_OPLIB_INIT;
@@ -435,7 +421,7 @@
{
ASSERT_ARGS(Parrot_runcore_fast_init)
- Parrot_runcore_t *coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
+ Parrot_runcore_t * const coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
coredata->name = CONST_STRING(interp, "fast");
coredata->id = PARROT_FAST_CORE;
coredata->opinit = PARROT_CORE_OPLIB_INIT;
@@ -465,7 +451,7 @@
{
ASSERT_ARGS(Parrot_runcore_switch_init)
- Parrot_runcore_t *coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
+ Parrot_runcore_t * const coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
coredata->name = CONST_STRING(interp, "switch");
coredata->id = PARROT_SWITCH_CORE;
coredata->opinit = PARROT_CORE_SWITCH_OPLIB_INIT;
@@ -495,7 +481,7 @@
{
ASSERT_ARGS(Parrot_runcore_exec_init)
- Parrot_runcore_t *coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
+ Parrot_runcore_t * const coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
coredata->name = CONST_STRING(interp, "exec");
coredata->id = PARROT_EXEC_CORE;
coredata->opinit = PARROT_CORE_OPLIB_INIT;
@@ -523,7 +509,7 @@
{
ASSERT_ARGS(Parrot_runcore_gc_debug_init)
- Parrot_runcore_t *coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
+ Parrot_runcore_t * const coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
coredata->name = CONST_STRING(interp, "gc_debug");
coredata->id = PARROT_GC_DEBUG_CORE;
coredata->opinit = PARROT_CORE_OPLIB_INIT;
@@ -553,7 +539,7 @@
{
ASSERT_ARGS(Parrot_runcore_debugger_init)
- Parrot_runcore_t *coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
+ Parrot_runcore_t * const coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
coredata->name = CONST_STRING(interp, "debugger");
coredata->id = PARROT_DEBUGGER_CORE;
coredata->opinit = PARROT_CORE_OPLIB_INIT;
@@ -585,7 +571,7 @@
{
ASSERT_ARGS(Parrot_runcore_cgp_init)
- Parrot_runcore_t *coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
+ Parrot_runcore_t * const coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
coredata->name = CONST_STRING(interp, "cgp");
coredata->id = PARROT_CGP_CORE;
coredata->opinit = PARROT_CORE_CGP_OPLIB_INIT;
@@ -618,7 +604,7 @@
{
ASSERT_ARGS(Parrot_runcore_cgoto_init)
- Parrot_runcore_t *coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
+ Parrot_runcore_t * const coredata = mem_gc_allocate_zeroed_typed(interp, Parrot_runcore_t);
coredata->name = CONST_STRING(interp, "cgoto");
coredata->id = PARROT_CGOTO_CORE;
coredata->opinit = PARROT_CORE_CG_OPLIB_INIT;
@@ -652,7 +638,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static opcode_t *
-runops_fast_core(PARROT_INTERP, ARGIN(Parrot_runcore_t *runcore), ARGIN(opcode_t *pc))
+runops_fast_core(PARROT_INTERP, SHIM(Parrot_runcore_t *runcore), ARGIN(opcode_t *pc))
{
ASSERT_ARGS(runops_fast_core)
@@ -692,7 +678,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static opcode_t *
-runops_cgoto_core(PARROT_INTERP, ARGIN(Parrot_runcore_t *runcore), ARGIN(opcode_t *pc))
+runops_cgoto_core(PARROT_INTERP, SHIM(Parrot_runcore_t *runcore), ARGIN(opcode_t *pc))
{
ASSERT_ARGS(runops_cgoto_core)
@@ -724,8 +710,7 @@
/*
-=item C<static opcode_t * runops_trace_core(PARROT_INTERP, Parrot_runcore_t
-*runcore, opcode_t *pc)>
+=item C<static opcode_t * runops_trace_core(PARROT_INTERP, opcode_t *pc)>
Runs the Parrot operations starting at C<pc> until there are no more
operations, using the tracing interpreter.
@@ -737,7 +722,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static opcode_t *
-runops_trace_core(PARROT_INTERP, ARGIN(Parrot_runcore_t *runcore), ARGIN(opcode_t *pc))
+runops_trace_core(PARROT_INTERP, ARGIN(opcode_t *pc))
{
ASSERT_ARGS(runops_trace_core)
@@ -827,12 +812,12 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static opcode_t *
-runops_slow_core(PARROT_INTERP, ARGIN(Parrot_runcore_t *runcore), ARGIN(opcode_t *pc))
+runops_slow_core(PARROT_INTERP, SHIM(Parrot_runcore_t *runcore), ARGIN(opcode_t *pc))
{
ASSERT_ARGS(runops_slow_core)
if (Interp_trace_TEST(interp, PARROT_TRACE_OPS_FLAG))
- return runops_trace_core(interp, runcore, pc);
+ return runops_trace_core(interp, pc);
#if 0
if (interp->debugger && interp->debugger->pdb)
return Parrot_debug(interp, interp->debugger, pc);
@@ -868,7 +853,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static opcode_t *
-runops_gc_debug_core(PARROT_INTERP, ARGIN(Parrot_runcore_t *runcore), ARGIN(opcode_t *pc))
+runops_gc_debug_core(PARROT_INTERP, SHIM(Parrot_runcore_t *runcore), ARGIN(opcode_t *pc))
{
ASSERT_ARGS(runops_gc_debug_core)
while (pc) {
@@ -903,7 +888,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static opcode_t *
-runops_debugger_core(PARROT_INTERP, ARGIN(Parrot_runcore_t *runcore), ARGIN(opcode_t *pc))
+runops_debugger_core(PARROT_INTERP, SHIM(Parrot_runcore_t *runcore), ARGIN(opcode_t *pc))
{
ASSERT_ARGS(runops_debugger_core)
@@ -1016,8 +1001,8 @@
}
for (i = 0; i < N;) {
- op_info_t * const opinfo = &interp->op_info_table[*pc];
- size_t n = opinfo->op_count;
+ const op_info_t * const opinfo = &interp->op_info_table[*pc];
+ size_t n = opinfo->op_count;
temp[i] = pred_func;
@@ -1079,7 +1064,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
oplib_init_f
-get_core_op_lib_init(PARROT_INTERP, ARGIN(Parrot_runcore_t *runcore))
+get_core_op_lib_init(SHIM_INTERP, ARGIN(Parrot_runcore_t *runcore))
{
ASSERT_ARGS(get_core_op_lib_init)
return runcore->opinit;
@@ -1105,6 +1090,7 @@
ASSERT_ARGS(runops_exec_core)
UNUSED(interp);
+ UNUSED(runcore);
UNUSED(pc);
return NULL;
Modified: branches/avl_string_cache/src/runcore/main.c
==============================================================================
--- branches/avl_string_cache/src/runcore/main.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/runcore/main.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -397,13 +397,15 @@
Parrot_runcore_destroy(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_runcore_destroy)
+#ifdef HAVE_COMPUTED_GOTO
op_lib_t *cg_lib;
+#endif
size_t num_cores = interp->num_cores;
size_t i;
for (i = 0; i < num_cores; ++i) {
- Parrot_runcore_t *core = interp->cores[i];
- runcore_destroy_fn_type destroy = core->destroy;
+ Parrot_runcore_t * const core = interp->cores[i];
+ const runcore_destroy_fn_type destroy = core->destroy;
if (destroy)
(*destroy)(interp, core);
@@ -457,6 +459,7 @@
*/
+PARROT_EXPORT
void
dynop_register(PARROT_INTERP, ARGIN(PMC *lib_pmc))
{
@@ -577,6 +580,8 @@
*/
+#ifdef HAVE_COMPUTED_GOTO
+
static void
dynop_register_xx(PARROT_INTERP,
size_t n_old, size_t n_new, oplib_init_f init_func)
@@ -586,13 +591,13 @@
op_func_t *ops_addr = NULL;
op_lib_t *cg_lib = init_func(interp, 1);
-#if 0
+# if 0
/* related to CG and CGP ops issue below */
op_lib_t *new_lib;
STRING *op_variant;
oplib_init_f new_init_func;
PMC *lib_variant;
-#endif
+# endif
if (cg_lib->flags & OP_FUNC_IS_ALLOCATED) {
ops_addr = mem_gc_realloc_n_typed_zeroed(interp,
@@ -627,7 +632,7 @@
* compiled big switch statement with the new cases. We have
* always to use the wrapper__ opcode called from the default case.
*/
-#if 0
+# if 0
/* check if the lib_pmc exists with a _xx flavor */
new_init_func = get_op_lib_init(0, 0, lib_pmc);
new_lib = new_init_func(1);
@@ -651,7 +656,7 @@
new_init_func((long) ops_addr);
}
else
-#endif
+# endif
{
size_t i;
@@ -677,6 +682,8 @@
init_func(interp, (long) ops_addr);
}
+#endif
+
/*
Modified: branches/avl_string_cache/src/runcore/profiling.c
==============================================================================
--- branches/avl_string_cache/src/runcore/profiling.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/runcore/profiling.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -387,12 +387,12 @@
i++;
i++; /* the root namespace has an empty name, so ignore it */
for (;i < MAX_NS_DEPTH; i++) {
- full_ns = Parrot_str_concat(interp, full_ns, ns_names[i], 0);
- full_ns = Parrot_str_concat(interp, full_ns, ns_separator, 0);
+ full_ns = Parrot_str_concat(interp, full_ns, ns_names[i]);
+ full_ns = Parrot_str_concat(interp, full_ns, ns_separator);
}
GETATTR_Sub_name(interp, preop_ctx->current_sub, sub_name);
- full_ns = Parrot_str_concat(interp, full_ns, sub_name, 0);
+ full_ns = Parrot_str_concat(interp, full_ns, sub_name);
full_ns_cstr = Parrot_str_to_cstring(interp, full_ns);
pprof_data[PPROF_DATA_NAMESPACE] = (PPROF_DATA) full_ns_cstr;
Modified: branches/avl_string_cache/src/runcore/trace.c
==============================================================================
--- branches/avl_string_cache/src/runcore/trace.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/runcore/trace.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -80,18 +80,18 @@
trace_class_name(PARROT_INTERP, ARGIN(const PMC* pmc))
{
ASSERT_ARGS(trace_class_name)
- STRING *class_name;
+
if (PObj_is_class_TEST(pmc)) {
- SLOTTYPE * const class_array = (SLOTTYPE *)PMC_data(pmc);
- PMC * const class_name_pmc = get_attrib_num(class_array,
+ SLOTTYPE * const class_array = PMC_data_typed(pmc, SLOTTYPE *);
+ PMC * const class_name_pmc = get_attrib_num(class_array,
PCD_CLASS_NAME);
- class_name = VTABLE_get_string(interp, class_name_pmc);
+ return VTABLE_get_string(interp, class_name_pmc);
}
else
- class_name = pmc->vtable->whoami;
- return class_name;
+ return pmc->vtable->whoami;
}
+
/*
=item C<void trace_pmc_dump(PARROT_INTERP, PMC *pmc)>
@@ -113,17 +113,21 @@
Parrot_io_eprintf(debugger, "(null)");
return;
}
+
if (PMC_IS_NULL(pmc)) {
Parrot_io_eprintf(debugger, "PMCNULL");
return;
}
+
if (!pmc->vtable || (UINTVAL)pmc->vtable == 0xdeadbeef) {
Parrot_io_eprintf(debugger, "<!!no vtable!!>");
return;
}
- if (PObj_on_free_list_TEST(pmc)) {
- Parrot_io_eprintf(debugger, "**************** PMC is on free list *****\n");
- }
+
+ if (PObj_on_free_list_TEST(pmc))
+ Parrot_io_eprintf(debugger,
+ "**************** PMC is on free list *****\n");
+
if (pmc->vtable->pmc_class == pmc) {
STRING * const name = trace_class_name(interp, pmc);
Parrot_io_eprintf(debugger, "Class=%Ss:PMC(%#p)", name, pmc);
@@ -134,25 +138,23 @@
Parrot_io_eprintf(debugger, "%S=PMC(%#p Str:(NULL))",
VTABLE_name(interp, pmc), pmc);
else {
- STRING* const escaped = Parrot_str_escape_truncate(
- interp, s, 20);
+ STRING * const escaped = Parrot_str_escape_truncate(interp, s, 20);
if (escaped)
Parrot_io_eprintf(debugger, "%S=PMC(%#p Str:\"%Ss\")",
- VTABLE_name(interp, pmc), pmc,
- escaped);
+ VTABLE_name(interp, pmc), pmc, escaped);
else
Parrot_io_eprintf(debugger, "%S=PMC(%#p Str:\"(null)\")",
VTABLE_name(interp, pmc), pmc);
}
}
- else if (pmc->vtable->base_type == enum_class_Boolean) {
+ else if (pmc->vtable->base_type == enum_class_Boolean)
Parrot_io_eprintf(debugger, "Boolean=PMC(%#p: %d)",
pmc, VTABLE_get_integer(interp, pmc));
- }
- else if (pmc->vtable->base_type == enum_class_Integer) {
+
+ else if (pmc->vtable->base_type == enum_class_Integer)
Parrot_io_eprintf(debugger, "Integer=PMC(%#p: %d)",
pmc, VTABLE_get_integer(interp, pmc));
- }
+
else if (pmc->vtable->base_type == enum_class_BigInt) {
STRING * const s = VTABLE_get_string(interp, pmc);
Parrot_io_eprintf(debugger, "BigInt=PMC(%#p: %Ss)",
@@ -160,8 +162,7 @@
}
else if (pmc->vtable->base_type == enum_class_Complex) {
STRING * const s = VTABLE_get_string(interp, pmc);
- Parrot_io_eprintf(debugger, "Complex=PMC(%#p: %Ss)",
- pmc, s);
+ Parrot_io_eprintf(debugger, "Complex=PMC(%#p: %Ss)", pmc, s);
}
else if (pmc->vtable->base_type == enum_class_Sub) {
PMC_get_sub(interp, pmc, sub);
@@ -178,6 +179,7 @@
}
}
+
/*
=item C<int trace_key_dump(PARROT_INTERP, PMC *key)>
@@ -199,16 +201,18 @@
while (key) {
switch (PObj_get_FLAGS(key) & KEY_type_FLAGS) {
case KEY_integer_FLAG:
- len += Parrot_io_eprintf(debugger, "%vi", VTABLE_get_integer(interp, key));
+ len += Parrot_io_eprintf(debugger, "%vi",
+ VTABLE_get_integer(interp, key));
break;
case KEY_number_FLAG:
- len += Parrot_io_eprintf(debugger, "%vg", VTABLE_get_number(interp, key));
+ len += Parrot_io_eprintf(debugger, "%vg",
+ VTABLE_get_number(interp, key));
break;
case KEY_string_FLAG:
{
const STRING * const s = key_string(interp, key);
- STRING* const escaped = Parrot_str_escape_truncate(
- interp, s, 20);
+ STRING * const escaped = Parrot_str_escape_truncate(interp, s, 20);
+
if (escaped)
len += Parrot_io_eprintf(debugger, "\"%Ss\"", escaped);
else
@@ -216,33 +220,37 @@
}
break;
case KEY_integer_FLAG|KEY_register_FLAG:
- len += Parrot_io_eprintf(debugger, "I%vd=%vd", VTABLE_get_integer(interp, key),
+ len += Parrot_io_eprintf(debugger, "I%vd=%vd",
+ VTABLE_get_integer(interp, key),
REG_INT(interp, VTABLE_get_integer(interp, key)));
break;
case KEY_number_FLAG|KEY_register_FLAG:
- len += Parrot_io_eprintf(debugger, "I%vd=%vd", VTABLE_get_integer(interp, key),
+ len += Parrot_io_eprintf(debugger, "I%vd=%vd",
+ VTABLE_get_integer(interp, key),
REG_NUM(interp, VTABLE_get_integer(interp, key)));
break;
case KEY_string_FLAG|KEY_register_FLAG:
{
- const STRING * const s = REG_STR(interp, VTABLE_get_integer(interp, key));
- STRING* const escaped = Parrot_str_escape_truncate(
- interp, s, 20);
+ const STRING * const s = REG_STR(interp,
+ VTABLE_get_integer(interp, key));
+ STRING * const escaped = Parrot_str_escape_truncate(interp, s, 20);
if (escaped)
- len += Parrot_io_eprintf(debugger, "S%vd=\"%Ss\"", VTABLE_get_integer(interp, key),
- escaped);
+ len += Parrot_io_eprintf(debugger, "S%vd=\"%Ss\"",
+ VTABLE_get_integer(interp, key), escaped);
else
len += Parrot_io_eprintf(debugger, "S%vd=\"(null)\"",
VTABLE_get_integer(interp, key));
}
break;
case KEY_pmc_FLAG|KEY_register_FLAG:
- len += Parrot_io_eprintf(debugger, "P%vd=", VTABLE_get_integer(interp, key));
- trace_pmc_dump(debugger, REG_PMC(interp, VTABLE_get_integer(interp, key)));
+ len += Parrot_io_eprintf(debugger, "P%vd=",
+ VTABLE_get_integer(interp, key));
+ trace_pmc_dump(debugger, REG_PMC(interp,
+ VTABLE_get_integer(interp, key)));
break;
default:
len += Parrot_io_eprintf(debugger, "??");
- key = NULL;
+ key = NULL;
break;
}
@@ -251,12 +259,13 @@
if (key)
len += Parrot_io_eprintf(debugger, ";");
}
- } /* while */
+ }
len += Parrot_io_eprintf(debugger, "]");
return len;
}
+
/*
=item C<void trace_op_dump(PARROT_INTERP, const opcode_t *code_start, const
@@ -276,29 +285,23 @@
ARGIN(const opcode_t *pc))
{
ASSERT_ARGS(trace_op_dump)
- INTVAL s, n;
- int more = 0, var_args;
- Interp * const debugger = debugger_or_interp(interp);
- op_info_t * const info = &interp->op_info_table[*pc];
- PMC *sig;
- int type;
- int len;
-#define ARGS_COLUMN 40
+ Interp * const debugger = debugger_or_interp(interp);
+ op_info_t * const info = &interp->op_info_table[*pc];
+ PMC *sig = PMCNULL;
+ INTVAL n = info->op_count;
+ INTVAL s = 1;
+ int more = 0, type;
+ int var_args = 0;
- PARROT_ASSERT(debugger);
- sig = NULL; /* silence compiler uninit warning */
+ int len = Parrot_io_eprintf(debugger, "%04vx ", (UINTVAL)(pc - code_start))
+ + Parrot_io_eprintf(debugger, "%s", info->name);
+
+#define ARGS_COLUMN 40
- s = 1;
- len = Parrot_io_eprintf(debugger, "%04vx ", (UINTVAL)(pc - code_start));
- len += Parrot_io_eprintf(debugger, "%s", info->name);
-
- n = info->op_count;
- var_args = 0;
-
- if (*pc == PARROT_OP_set_args_pc ||
- *pc == PARROT_OP_get_results_pc ||
- *pc == PARROT_OP_get_params_pc ||
- *pc == PARROT_OP_set_returns_pc) {
+ if (*pc == PARROT_OP_set_args_pc
+ || *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;
if (!sig)
@@ -306,7 +309,7 @@
"NULL sig PMC detected in trace_op_dump");
var_args = VTABLE_elements(interp, sig);
- n += var_args;
+ n += var_args;
}
if (n > 1) {
@@ -315,9 +318,9 @@
/* pass 1 print arguments */
for (i = s; i < n; i++) {
const opcode_t o = pc[i];
- if (i < info->op_count) {
+
+ if (i < info->op_count)
type = info->types[i - 1];
- }
else {
if (!sig)
Parrot_ex_throw_from_c_args(interp, NULL, 1,
@@ -326,21 +329,22 @@
type = VTABLE_get_integer_keyed_int(interp, sig, i - 2) &
(PARROT_ARG_TYPE_MASK|PARROT_ARG_CONSTANT);
}
- if (i > s &&
- type != PARROT_ARG_KC &&
- type != PARROT_ARG_KIC &&
- type != PARROT_ARG_KI &&
- type != PARROT_ARG_K) {
+
+ if (i > s
+ && type != PARROT_ARG_KC
+ && type != PARROT_ARG_KIC
+ && type != PARROT_ARG_KI
+ && type != PARROT_ARG_K)
len += Parrot_io_eprintf(debugger, ", ");
- }
+
switch (type) {
case PARROT_ARG_IC:
len += Parrot_io_eprintf(debugger, "%vd", o);
break;
case PARROT_ARG_NC:
len += Parrot_io_eprintf(debugger, "%vg",
- Parrot_pcc_get_num_constant(interp,
- CURRENT_CONTEXT(interp), o));
+ Parrot_pcc_get_num_constant(interp,
+ CURRENT_CONTEXT(interp), o));
break;
case PARROT_ARG_PC:
if (var_args)
@@ -351,10 +355,9 @@
break;
case PARROT_ARG_SC:
{
- STRING* const escaped = Parrot_str_escape_truncate(
- interp,
- Parrot_pcc_get_string_constant(interp,
- CURRENT_CONTEXT(interp), o), 20);
+ STRING * const escaped = Parrot_str_escape_truncate(
+ interp, Parrot_pcc_get_string_constant(interp,
+ CURRENT_CONTEXT(interp), o), 20);
if (escaped)
len += Parrot_io_eprintf(debugger, "\"%Ss\"", escaped);
else
@@ -363,8 +366,8 @@
break;
case PARROT_ARG_KC:
len += trace_key_dump(interp,
- Parrot_pcc_get_pmc_constant(interp,
- CURRENT_CONTEXT(interp), o));
+ Parrot_pcc_get_pmc_constant(interp,
+ CURRENT_CONTEXT(interp), o));
break;
case PARROT_ARG_KIC:
len += Parrot_io_eprintf(debugger, "[%vd]", o);
@@ -399,17 +402,17 @@
break;
}
}
+
if (!more)
goto done;
+
if (len < ARGS_COLUMN) {
STRING * const fill = Parrot_str_repeat(debugger,
- Parrot_str_new_constant(debugger, " "),
- ARGS_COLUMN);
+ Parrot_str_new_constant(debugger, " "), ARGS_COLUMN);
Parrot_io_putps(debugger, Parrot_io_STDERR(debugger), fill);
}
- else {
+ else
Parrot_io_eprintf(debugger, "\t");
- }
/* pass 2 print argument details if needed */
for (i = 1; i < n; i++) {
@@ -419,9 +422,10 @@
else
type = VTABLE_get_integer_keyed_int(interp, sig, i - 2) &
(PARROT_ARG_TYPE_MASK|PARROT_ARG_CONSTANT);
- if (i > s) {
+
+ if (i > s)
Parrot_io_eprintf(debugger, " ");
- }
+
switch (type) {
case PARROT_ARG_I:
Parrot_io_eprintf(debugger, "I%vd=%vd", o, REG_INT(interp, o));
@@ -432,7 +436,7 @@
case PARROT_ARG_PC:
Parrot_io_eprintf(debugger, "PC%vd=", o);
trace_pmc_dump(interp, Parrot_pcc_get_pmc_constant(interp,
- CURRENT_CONTEXT(interp), o));
+ CURRENT_CONTEXT(interp), o));
break;
case PARROT_ARG_P:
Parrot_io_eprintf(debugger, "P%vd=", o);
@@ -440,10 +444,9 @@
break;
case PARROT_ARG_S:
if (REG_STR(interp, o)) {
- STRING* const escaped = Parrot_str_escape_truncate(
+ STRING * const escaped = Parrot_str_escape_truncate(
interp, REG_STR(interp, o), 20);
- Parrot_io_eprintf(debugger, "S%vd=\"%Ss\"", o,
- escaped);
+ Parrot_io_eprintf(debugger, "S%vd=\"%Ss\"", o, escaped);
}
else
Parrot_io_eprintf(debugger, "S%vd=\"(null)\"", o);
@@ -463,20 +466,21 @@
done:
if (interp->code->annotations) {
- PMC * const annot = PackFile_Annotations_lookup(interp, interp->code->annotations,
- pc - code_start + 1, NULL);
+ PMC * const annot = PackFile_Annotations_lookup(interp,
+ interp->code->annotations, pc - code_start + 1, NULL);
+
if (!PMC_IS_NULL(annot)) {
PMC * const pfile = VTABLE_get_pmc_keyed_str(interp, annot,
Parrot_str_new_constant(interp, "file"));
PMC * const pline = VTABLE_get_pmc_keyed_str(interp, annot,
Parrot_str_new_constant(interp, "line"));
+
if ((!PMC_IS_NULL(pfile)) && (!PMC_IS_NULL(pline))) {
/* The debugger interpreter may not be the same as
* the main interpreter, extract values from the
- * PMC instad of passing them directly
- */
+ * PMC instad of passing them directly */
STRING * const file = VTABLE_get_string(interp, pfile);
- const INTVAL line = VTABLE_get_integer(interp, pline);
+ const INTVAL line = VTABLE_get_integer(interp, pline);
Parrot_io_eprintf(debugger, " (%Ss:%li)", file, (long)line);
}
}
@@ -485,13 +489,13 @@
Parrot_io_eprintf(debugger, "\n");
}
+
/*
=item C<void trace_op(PARROT_INTERP, const opcode_t *code_start, const opcode_t
*code_end, const opcode_t *pc)>
-Prints the PC, OP and ARGS. Used by C<runops_trace()>. With bounds
-checking.
+Prints the PC, OP and ARGS. Used by C<runops_trace()>. With bounds checking.
I<Not really part of the API.>
@@ -506,16 +510,18 @@
ARGIN_NULLOK(const opcode_t *pc))
{
ASSERT_ARGS(trace_op)
- if (!pc) {
+
+ if (!pc)
return;
- }
if (pc >= code_start && pc < code_end)
trace_op_dump(interp, code_start, pc);
else
- Parrot_io_eprintf(interp, "PC=%ld; OP=<err>\n", (long)(pc - code_start));
+ Parrot_io_eprintf(interp, "PC=%ld; OP=<err>\n",
+ (long)(pc - code_start));
}
+
/*
=back
Modified: branches/avl_string_cache/src/scheduler.c
==============================================================================
--- branches/avl_string_cache/src/scheduler.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/scheduler.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2007-2009, Parrot Foundation.
+Copyright (C) 2007-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -18,6 +18,7 @@
#include "parrot/parrot.h"
#include "parrot/scheduler_private.h"
+#include "parrot/runcore_api.h"
#include "pmc/pmc_scheduler.h"
#include "pmc/pmc_task.h"
@@ -328,7 +329,7 @@
FLOATVAL duration = VTABLE_get_number_keyed_int(interp, task,
PARROT_TIMER_INTERVAL);
if (repeat != 0) {
- PMC *repeat_task = VTABLE_clone(interp, task);
+ PMC * const repeat_task = VTABLE_clone(interp, task);
VTABLE_set_number_keyed_int(interp, repeat_task, PARROT_TIMER_NSEC, duration);
if (repeat > 0)
@@ -356,7 +357,7 @@
ARGIN(PMC *user_data), ARGIN(char *ext_data))
{
ASSERT_ARGS(Parrot_cx_schedule_callback)
- PMC *callback = Parrot_pmc_new(interp, enum_class_Task);
+ PMC * const callback = Parrot_pmc_new(interp, enum_class_Task);
Parrot_Task_attributes * const task_struct = PARROT_TASK(callback);
task_struct->type = CONST_STRING(interp, "callback");
@@ -530,11 +531,10 @@
Parrot_str_equal(interp, handler_type, event_str) ?
Hevent :
Hunknown;
- STRING * const handler_name = (htype == Hexception) ?
- handler_str : (STRING *) NULL;
+ STRING * const handler_name = (htype == Hexception) ? handler_str : (STRING *)NULL;
for (index = 0; index < elements; ++index) {
- PMC *handler = VTABLE_get_pmc_keyed_int(interp, handlers, index);
+ PMC * const handler = VTABLE_get_pmc_keyed_int(interp, handlers, index);
if (!PMC_IS_NULL(handler)) {
switch (htype) {
case Hexception:
@@ -578,7 +578,7 @@
Parrot_cx_count_handlers_local(PARROT_INTERP, ARGIN(STRING *handler_type))
{
ASSERT_ARGS(Parrot_cx_count_handlers_local)
- PMC *handlers = Parrot_pcc_get_handlers(interp, interp->ctx);
+ PMC * const handlers = Parrot_pcc_get_handlers(interp, interp->ctx);
INTVAL elements;
if (PMC_IS_NULL(handlers))
@@ -604,11 +604,10 @@
(Parrot_str_equal(interp, handler_type, event_str)) ?
Hevent :
Hunknown;
- STRING * const handler_name = (htype == Hexception) ?
- handler_str : (STRING *) NULL;
+ STRING * const handler_name = (htype == Hexception) ? handler_str : (STRING *)NULL;
for (index = 0; index < elements; ++index) {
- PMC *handler = VTABLE_get_pmc_keyed_int(interp, handlers, index);
+ PMC * const handler = VTABLE_get_pmc_keyed_int(interp, handlers, index);
if (!PMC_IS_NULL(handler)) {
switch (htype) {
case Hexception:
@@ -644,7 +643,7 @@
Parrot_cx_add_handler(PARROT_INTERP, ARGIN(PMC *handler))
{
ASSERT_ARGS(Parrot_cx_add_handler)
- STRING *add_handler = CONST_STRING(interp, "add_handler");
+ STRING * const add_handler = CONST_STRING(interp, "add_handler");
if (!interp->scheduler)
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
"Scheduler was not initialized for this interpreter.\n");
@@ -894,7 +893,7 @@
keep_context = context;
/* Loop from newest handler to oldest handler. */
while (!PMC_IS_NULL(iter) && VTABLE_get_bool(interp, iter)) {
- PMC *handler = VTABLE_shift_pmc(interp, iter);
+ PMC * const handler = VTABLE_shift_pmc(interp, iter);
if (!PMC_IS_NULL(handler)) {
INTVAL valid_handler = 0;
Modified: branches/avl_string_cache/src/spf_render.c
==============================================================================
--- branches/avl_string_cache/src/spf_render.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/spf_render.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -65,19 +65,19 @@
FUNC_MODIFIES(*out)
FUNC_MODIFIES(*info);
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static STRING * handle_flags(PARROT_INTERP,
ARGIN(const SpfInfo *info),
- ARGMOD(STRING *str),
+ ARGIN(STRING *str),
INTVAL is_int_type,
ARGIN_NULLOK(STRING* prefix))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*str);
+ __attribute__nonnull__(3);
PARROT_CANNOT_RETURN_NULL
-static STRING* str_append_w_flags(PARROT_INTERP,
+static STRING* str_concat_w_flags(PARROT_INTERP,
ARGOUT(STRING *dest),
ARGIN(const SpfInfo *info),
ARGMOD(STRING *src),
@@ -96,7 +96,7 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(info) \
, PARROT_ASSERT_ARG(str))
-#define ASSERT_ARGS_str_append_w_flags __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_str_concat_w_flags __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(dest) \
, PARROT_ASSERT_ARG(info) \
@@ -123,9 +123,10 @@
*/
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static STRING *
-handle_flags(PARROT_INTERP, ARGIN(const SpfInfo *info), ARGMOD(STRING *str),
+handle_flags(PARROT_INTERP, ARGIN(const SpfInfo *info), ARGIN(STRING *str),
INTVAL is_int_type, ARGIN_NULLOK(STRING* prefix))
{
ASSERT_ARGS(handle_flags)
@@ -135,26 +136,26 @@
if (info->flags & FLAG_PREC && info->prec == 0 &&
len == 1 &&
string_ord(interp, str, 0) == '0') {
- Parrot_str_chopn_inplace(interp, str, len);
+ str = Parrot_str_chopn(interp, str, len);
len = 0;
}
/* +, space */
if (!len || string_ord(interp, str, 0) != '-') {
if (info->flags & FLAG_PLUS) {
STRING * const cs = CONST_STRING(interp, "+");
- str = Parrot_str_concat(interp, cs, str, 0);
+ str = Parrot_str_concat(interp, cs, str);
len++;
}
else if (info->flags & FLAG_SPACE) {
STRING * const cs = CONST_STRING(interp, " ");
- str = Parrot_str_concat(interp, cs, str, 0);
+ str = Parrot_str_concat(interp, cs, str);
len++;
}
}
/* # 0x ... */
if ((info->flags & FLAG_SHARP) && prefix) {
- str = Parrot_str_concat(interp, prefix, str, 0);
+ str = Parrot_str_concat(interp, prefix, str);
len += Parrot_str_byte_length(interp, prefix);
}
/* XXX sharp + fill ??? */
@@ -176,11 +177,11 @@
else {
/* string precision */
if (info->flags & FLAG_PREC && info->prec == 0) {
- Parrot_str_chopn_inplace(interp, str, len);
+ str = Parrot_str_chopn(interp, str, len);
len = 0;
}
else if (info->flags & FLAG_PREC && info->prec < len) {
- Parrot_str_chopn_inplace(interp, str, -(INTVAL)(info->prec));
+ str = Parrot_str_chopn(interp, str, -(INTVAL)(info->prec));
len = info->prec;
}
}
@@ -193,7 +194,7 @@
STRING * const fill = Parrot_str_repeat(interp, filler, info->width - len);
if (info->flags & FLAG_MINUS) { /* left-align */
- str = Parrot_str_concat(interp, str, fill, 0);
+ str = Parrot_str_concat(interp, str, fill);
}
else { /* right-align */
/* signed and zero padded */
@@ -202,14 +203,13 @@
string_ord(interp, str, 0) == '+')) {
STRING *temp = NULL;
STRING *ignored;
- ignored = Parrot_str_substr(interp, str, 1, len-1, &temp, 0);
- UNUSED(ignored);
- Parrot_str_chopn_inplace(interp, str, -1);
- str = Parrot_str_append(interp, str, fill);
- str = Parrot_str_append(interp, str, temp);
+ temp = Parrot_str_substr(interp, str, 1, len-1);
+ str = Parrot_str_chopn(interp, str, -1);
+ str = Parrot_str_concat(interp, str, fill);
+ str = Parrot_str_concat(interp, str, temp);
}
else {
- str = Parrot_str_concat(interp, fill, str, 0);
+ str = Parrot_str_concat(interp, fill, str);
}
}
}
@@ -218,7 +218,7 @@
/*
-=item C<static STRING* str_append_w_flags(PARROT_INTERP, STRING *dest, const
+=item C<static STRING* str_concat_w_flags(PARROT_INTERP, STRING *dest, const
SpfInfo *info, STRING *src, STRING *prefix)>
Used by Parrot_sprintf_format. Prepends supplied prefix for numeric
@@ -232,12 +232,12 @@
PARROT_CANNOT_RETURN_NULL
static STRING*
-str_append_w_flags(PARROT_INTERP, ARGOUT(STRING *dest), ARGIN(const SpfInfo *info),
+str_concat_w_flags(PARROT_INTERP, ARGOUT(STRING *dest), ARGIN(const SpfInfo *info),
ARGMOD(STRING *src), ARGIN_NULLOK(STRING *prefix))
{
- ASSERT_ARGS(str_append_w_flags)
+ ASSERT_ARGS(str_concat_w_flags)
src = handle_flags(interp, info, src, 1, prefix);
- dest = Parrot_str_append(interp, dest, src);
+ dest = Parrot_str_concat(interp, dest, src);
return dest;
}
@@ -328,7 +328,7 @@
INTVAL i;
INTVAL len = 0;
INTVAL old = 0;
- INTVAL pat_len = (INTVAL)Parrot_str_byte_length(interp, pat);
+ const INTVAL pat_len = (INTVAL)Parrot_str_byte_length(interp, pat);
HUGEINTVAL num;
/* start with a buffer; double the pattern length to avoid realloc #1 */
@@ -344,11 +344,9 @@
for (i = 0; i < pat_len; i++) {
if (string_ord(interp, pat, i) == '%') { /* % */
if (len) {
- STRING *ignored
- = Parrot_str_substr(interp, pat, old, len, &substr, 1);
- UNUSED(ignored);
+ substr = Parrot_str_substr(interp, pat, old, len);
/* XXX This shouldn't modify targ the pointer */
- targ = Parrot_str_append(interp, targ, substr);
+ targ = Parrot_str_concat(interp, targ, substr);
}
len = 0;
old = i;
@@ -602,7 +600,7 @@
{
STRING * const ts = string_chr(interp,
(UINTVAL)obj->getint(interp, info.type, obj));
- targ = str_append_w_flags(interp, targ, &info, ts, NULL);
+ targ = str_concat_w_flags(interp, targ, &info, ts, NULL);
}
break;
@@ -616,7 +614,7 @@
/* unsigned conversion - no plus */
info.flags &= ~FLAG_PLUS;
- targ = str_append_w_flags(interp, targ,
+ targ = str_concat_w_flags(interp, targ,
&info, ts, prefix);
}
break;
@@ -631,7 +629,7 @@
/* unsigned conversion - no plus */
info.flags &= ~FLAG_PLUS;
- targ = str_append_w_flags(interp, targ,
+ targ = str_concat_w_flags(interp, targ,
&info, ts, prefix);
}
break;
@@ -641,13 +639,13 @@
STRING * const prefix = CONST_STRING(interp, "0X");
const UHUGEINTVAL theuint =
obj->getuint(interp, info.type, obj);
- STRING * const ts =
+ STRING * ts =
Parrot_str_from_uint(interp, tc, theuint, 16, 0);
- Parrot_str_upcase_inplace(interp, ts);
+ ts = Parrot_str_upcase(interp, ts);
/* unsigned conversion - no plus */
info.flags &= ~FLAG_PLUS;
- targ = str_append_w_flags(interp, targ,
+ targ = str_concat_w_flags(interp, targ,
&info, ts, prefix);
}
break;
@@ -662,7 +660,7 @@
/* unsigned conversion - no plus */
info.flags &= ~FLAG_PLUS;
- targ = str_append_w_flags(interp, targ,
+ targ = str_concat_w_flags(interp, targ,
&info, ts, prefix);
}
break;
@@ -677,7 +675,7 @@
/* unsigned conversion - no plus */
info.flags &= ~FLAG_PLUS;
- targ = str_append_w_flags(interp, targ,
+ targ = str_concat_w_flags(interp, targ,
&info, ts, prefix);
}
break;
@@ -716,7 +714,7 @@
#endif
Parrot_str_free_cstring(tempstr);
}
- targ = Parrot_str_append(interp, targ, cstr2pstr(tc));
+ targ = Parrot_str_concat(interp, targ, cstr2pstr(tc));
}
break;
@@ -728,7 +726,7 @@
STRING * const ts = Parrot_str_from_uint(interp, tc,
(UHUGEINTVAL) (size_t) ptr, 16, 0);
- targ = str_append_w_flags(interp, targ, &info,
+ targ = str_concat_w_flags(interp, targ, &info,
ts, prefix);
}
break;
@@ -816,7 +814,7 @@
}
#endif /* WIN32 */
- targ = Parrot_str_append(interp, targ, cstr2pstr(tc));
+ targ = Parrot_str_concat(interp, targ, cstr2pstr(tc));
}
break;
@@ -836,7 +834,7 @@
string, 0, NULL);
obj->index++;
- targ = Parrot_str_append(interp, targ, ts);
+ targ = Parrot_str_concat(interp, targ, ts);
break;
}
@@ -849,7 +847,7 @@
if (!STRING_IS_NULL(string)) {
STRING * const ts = handle_flags(interp,
&info, string, 0, NULL);
- targ = Parrot_str_append(interp, targ, ts);
+ targ = Parrot_str_concat(interp, targ, ts);
}
}
break;
@@ -892,9 +890,8 @@
}
}
if (len) {
- STRING *ignored = Parrot_str_substr(interp, pat, old, len, &substr, 1);
- UNUSED(ignored);
- targ = Parrot_str_append(interp, targ, substr);
+ substr = Parrot_str_substr(interp, pat, old, len);
+ targ = Parrot_str_concat(interp, targ, substr);
}
return targ;
Modified: branches/avl_string_cache/src/spf_vtable.c
==============================================================================
--- branches/avl_string_cache/src/spf_vtable.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/spf_vtable.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -453,7 +453,7 @@
obj->index++;
s = VTABLE_get_string(interp, tmp);
/* XXX Parrot_str_copy like below? + adjusting bufused */
- return Parrot_str_substr(interp, s, 0, 1, NULL, 0);
+ return Parrot_str_substr(interp, s, 0, 1);
}
/*
Modified: branches/avl_string_cache/src/string/api.c
==============================================================================
--- branches/avl_string_cache/src/string/api.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/api.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -28,10 +28,12 @@
#include "api.str"
/* for parrot/interpreter.h */
+#if PARROT_CATCH_NULL
STRING *STRINGNULL;
+#endif
#define nonnull_encoding_name(s) (s) ? (s)->encoding->name : "null string"
-#define saneify_string(s) \
+#define ASSERT_STRING_SANITY(s) \
PARROT_ASSERT((s)->encoding); \
PARROT_ASSERT((s)->charset); \
PARROT_ASSERT(!PObj_on_free_list_TEST(s))
@@ -41,16 +43,8 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-static void make_writable(PARROT_INTERP,
- ARGMOD(STRING **s),
- const size_t len,
- parrot_string_representation_t representation)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*s);
-
PARROT_INLINE
-PARROT_WARN_UNUSED_RESULT
+PARROT_IGNORABLE_RESULT
PARROT_CAN_RETURN_NULL
static const CHARSET * string_rep_compatible(SHIM_INTERP,
ARGIN(const STRING *a),
@@ -61,9 +55,6 @@
__attribute__nonnull__(4)
FUNC_MODIFIES(*e);
-#define ASSERT_ARGS_make_writable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_string_rep_compatible __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(a) \
, PARROT_ASSERT_ARG(b) \
@@ -82,11 +73,13 @@
*/
PARROT_EXPORT
+PARROT_HOT
+PARROT_PURE_FUNCTION
INTVAL
Parrot_str_is_null(SHIM_INTERP, ARGIN_NULLOK(const STRING *s))
{
ASSERT_ARGS(Parrot_str_is_null)
- return !s || s == STRINGNULL;
+ return STRING_IS_NULL(s);
}
@@ -101,171 +94,17 @@
*/
PARROT_EXPORT
+PARROT_HOT
+PARROT_PURE_FUNCTION
INTVAL
STRING_is_null(SHIM_INTERP, ARGIN_NULLOK(const STRING *s))
{
ASSERT_ARGS(STRING_is_null)
- return !s || s == STRINGNULL;
-}
-
-
-/*
-
-=item C<void Parrot_str_write_COW(PARROT_INTERP, STRING *s)>
-
-If the specified Parrot string is copy-on-write then the memory is
-copied over and the copy-on-write flag is cleared.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_str_write_COW(PARROT_INTERP, ARGMOD(STRING *s))
-{
- ASSERT_ARGS(Parrot_str_write_COW)
-
- /* COW_FLAG | constant_FLAG | external_FLAG) */
- if (PObj_is_cowed_TESTALL(s)) {
- STRING for_alloc;
- size_t alloc_size;
-
- /* Create new pool data for this header to use,
- * independent of the original COW data */
- PObj_constant_CLEAR(s);
-
- /* constant may have been marked */
- PObj_live_CLEAR(s);
-
- if (Buffer_buflen(s)) {
- PObj_flags_CLEARALL(&for_alloc);
- alloc_size = s->bufused;
- Parrot_gc_allocate_string_storage(interp, &for_alloc, alloc_size);
-
- /* now copy memory over */
- mem_sys_memcopy(for_alloc.strstart, s->strstart, alloc_size);
-
- /* and finally use that string memory */
-
- Buffer_bufstart(s) = Buffer_bufstart(&for_alloc);
- s->strstart = for_alloc.strstart;
- Buffer_buflen(s) = Buffer_buflen(&for_alloc);
- PARROT_ASSERT(Buffer_buflen(s) >= alloc_size);
- }
-
- /* COW_FLAG | external_FLAG */
- PObj_is_external_CLEARALL(s);
- }
-
- s->hashval = 0;
+ return STRING_IS_NULL(s);
}
/*
-=item C<STRING * Parrot_str_new_COW(PARROT_INTERP, STRING *s)>
-
-Creates a copy-on-write string, cloning a string header without
-allocating a new buffer.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-STRING *
-Parrot_str_new_COW(PARROT_INTERP, ARGMOD(STRING *s))
-{
- ASSERT_ARGS(Parrot_str_new_COW)
- STRING *d;
-
- if (PObj_constant_TEST(s)) {
- d = Parrot_gc_new_string_header(interp,
- PObj_get_FLAGS(s) & ~PObj_constant_FLAG);
- PObj_COW_SET(s);
- STRUCT_COPY(d, s);
- /* we can't move the memory, because constants aren't
- * scanned in compact_pool, therefore the other end
- * would point to garbage.
- */
- PObj_constant_CLEAR(d);
- PObj_external_SET(d);
- }
- else {
- d = Parrot_gc_new_string_header(interp, PObj_get_FLAGS(s));
- PObj_COW_SET(s);
- STRUCT_COPY(d, s);
- PObj_sysmem_CLEAR(d);
- }
- return d;
-}
-
-/*
-
-=item C<STRING * Parrot_str_reuse_COW(PARROT_INTERP, STRING *s, STRING *d)>
-
-Creates a copy-on-write string by cloning a string header without
-allocating a new buffer. Doesn't allocate a new string header, instead
-using the one passed in and returns it.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-STRING *
-Parrot_str_reuse_COW(SHIM_INTERP, ARGMOD(STRING *s), ARGOUT(STRING *d))
-{
- ASSERT_ARGS(Parrot_str_reuse_COW)
-
- if (PObj_constant_TEST(s)) {
- PObj_COW_SET(s);
- STRUCT_COPY(d, s);
- PObj_constant_CLEAR(d);
- PObj_external_SET(d);
- }
- else {
- PObj_COW_SET(s);
- STRUCT_COPY(d, s);
- PObj_sysmem_CLEAR(d);
- }
- return d;
-}
-
-/*
-
-=item C<STRING * Parrot_str_set(PARROT_INTERP, STRING *dest, STRING *src)>
-
-Makes the contents of first Parrot string a copy of the contents of
-second.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-STRING *
-Parrot_str_set(PARROT_INTERP, ARGIN_NULLOK(STRING *dest), ARGMOD(STRING *src))
-{
- ASSERT_ARGS(Parrot_str_set)
- if (dest == src)
- return dest;
- if (dest) { /* && dest != src */
- /* they are different, dest is not an external string */
- dest = Parrot_str_reuse_COW(interp, src, dest);
- }
- else
- dest = Parrot_str_new_COW(interp, src);
- return dest;
-}
-
-
-/*
-
=back
=head2 Basic String Functions
@@ -292,15 +131,16 @@
const size_t n_parrot_cstrings =
sizeof (parrot_cstrings) / sizeof (parrot_cstrings[0]);
- if (interp->parent_interpreter) {
+ if (interp->parent_interpreter)
interp->hash_seed = interp->parent_interpreter->hash_seed;
- }
+
/* interp is initialized from zeroed memory, so this is fine */
else if (interp->hash_seed == 0) {
/* TT #64 - use an entropy source once available */
Parrot_srand(Parrot_intval_time());
interp->hash_seed = Parrot_uint_rand(0);
}
+
/* initialize the constant string table */
if (interp->parent_interpreter) {
interp->const_cstring_table =
@@ -319,10 +159,12 @@
Parrot_charsets_encodings_init(interp);
+#if PARROT_CATCH_NULL
/* initialize STRINGNULL, but not in the constant table */
STRINGNULL = Parrot_str_new_init(interp, NULL, 0,
PARROT_DEFAULT_ENCODING, PARROT_DEFAULT_CHARSET,
PObj_constant_FLAG);
+#endif
interp->const_cstring_table =
mem_gc_allocate_n_zeroed_typed(interp, n_parrot_cstrings, STRING *);
@@ -339,6 +181,7 @@
}
}
+
/*
=item C<void Parrot_str_finish(PARROT_INTERP)>
@@ -354,6 +197,7 @@
Parrot_str_finish(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_str_finish)
+
/* all are shared between interpreters */
if (!interp->parent_interpreter) {
mem_internal_free(interp->const_cstring_table);
@@ -365,28 +209,6 @@
}
}
-/*
-
-=item C<UINTVAL string_capacity(PARROT_INTERP, const STRING *s)>
-
-Returns the capacity of the specified Parrot string in bytes, that
-is how many bytes can be appended onto strstart.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_PURE_FUNCTION
-UINTVAL
-string_capacity(SHIM_INTERP, ARGIN(const STRING *s))
-{
- ASSERT_ARGS(string_capacity)
-
- return ((ptrcast_t)Buffer_bufstart(s) + Buffer_buflen(s) -
- (ptrcast_t)s->strstart);
-}
/*
@@ -422,6 +244,7 @@
return s;
}
+
/*
=item C<static const CHARSET * string_rep_compatible(PARROT_INTERP, const STRING
@@ -439,13 +262,14 @@
*/
PARROT_INLINE
-PARROT_WARN_UNUSED_RESULT
+PARROT_IGNORABLE_RESULT
PARROT_CAN_RETURN_NULL
static const CHARSET *
string_rep_compatible(SHIM_INTERP,
ARGIN(const STRING *a), ARGIN(const STRING *b), ARGOUT(const ENCODING **e))
{
ASSERT_ARGS(string_rep_compatible)
+
if (a->encoding == b->encoding && a->charset == b->charset) {
*e = a->encoding;
return a->charset;
@@ -453,7 +277,7 @@
/* a table could possibly simplify the logic */
if (a->encoding == Parrot_utf8_encoding_ptr
- && b->charset == Parrot_ascii_charset_ptr) {
+ && b->charset == Parrot_ascii_charset_ptr) {
if (a->strlen == a->bufused) {
*e = Parrot_fixed_8_encoding_ptr;
return b->charset;
@@ -463,7 +287,7 @@
}
if (b->encoding == Parrot_utf8_encoding_ptr
- && a->charset == Parrot_ascii_charset_ptr) {
+ && a->charset == Parrot_ascii_charset_ptr) {
if (b->strlen == b->bufused) {
*e = Parrot_fixed_8_encoding_ptr;
return a->charset;
@@ -497,14 +321,47 @@
/*
-=item C<STRING * Parrot_str_concat(PARROT_INTERP, STRING *a, STRING *b, UINTVAL
-Uflags)>
+=item C<STRING* Parrot_str_clone(PARROT_INTERP, const STRING *s)>
-Concatenates two Parrot strings. If necessary, converts the second
-string's encoding and/or type to match those of the first string. If
-either string is C<NULL>, then a copy of the non-C<NULL> string is
-returned. If both strings are C<NULL>, then a new zero-length string is
-created and returned.
+Helper function to clone string.
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+STRING*
+Parrot_str_clone(PARROT_INTERP, ARGIN(const STRING *s))
+{
+ ASSERT_ARGS(Parrot_str_clone)
+
+ const size_t alloc_size = s->bufused;
+ STRING * const result = Parrot_gc_new_string_header(interp, 0);
+
+ /* Copy encoding/charset/etc */
+ STRUCT_COPY(result, s);
+
+ /* Clear COW flag. We own buffer */
+ PObj_get_FLAGS(result) = PObj_is_string_FLAG
+ | PObj_is_COWable_FLAG
+ | PObj_live_FLAG;
+
+ /* Allocate new chunk of memory */
+ Parrot_gc_allocate_string_storage(interp, result, alloc_size);
+
+ /* and copy it over */
+ mem_sys_memcopy(result->strstart, s->strstart, alloc_size);
+
+ return result;
+}
+
+
+/*
+
+=item C<STRING * Parrot_str_copy(PARROT_INTERP, STRING *s)>
+
+Creates and returns a shallow copy of the specified Parrot string.
=cut
@@ -512,50 +369,63 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
STRING *
-Parrot_str_concat(PARROT_INTERP, ARGIN_NULLOK(STRING *a),
- ARGIN_NULLOK(STRING *b), UINTVAL Uflags)
+Parrot_str_copy(PARROT_INTERP, ARGMOD(STRING *s))
{
- ASSERT_ARGS(Parrot_str_concat)
- if (a && a->strlen) {
- if (b && b->strlen) {
- STRING *result = Parrot_str_copy(interp, a);
- Parrot_str_write_COW(interp, result);
- return Parrot_str_append(interp, result, b);
- }
+ ASSERT_ARGS(Parrot_str_copy)
+ STRING *d;
- return Parrot_str_copy(interp, a);
+ /* We set COW flag to avoid cloning buffer in compact_pool */
+
+ if (PObj_constant_TEST(s)) {
+ d = Parrot_gc_new_string_header(interp,
+ PObj_get_FLAGS(s) & ~PObj_constant_FLAG);
+ PObj_COW_SET(s);
+ STRUCT_COPY(d, s);
+ /* we can't move the memory, because constants aren't
+ * scanned in compact_pool, therefore the other end
+ * would point to garbage.
+ */
+ PObj_constant_CLEAR(d);
+ PObj_external_SET(d);
+ }
+ else {
+ d = Parrot_gc_new_string_header(interp, PObj_get_FLAGS(s));
+ PObj_COW_SET(s);
+ STRUCT_COPY(d, s);
+ PObj_sysmem_CLEAR(d);
}
- return b
- ? Parrot_str_copy(interp, b)
- : string_make(interp, NULL, 0, NULL, Uflags);
+ return d;
}
/*
-=item C<STRING * Parrot_str_append(PARROT_INTERP, STRING *a, STRING *b)>
+=item C<STRING * Parrot_str_concat(PARROT_INTERP, STRING *a, STRING *b)>
-Take in two Parrot strings and append the second to the first. NOTE THAT
-RETURN VALUE MAY NOT BE THE FIRST STRING, if the first string is COW'd or
-read-only. So make sure to _use_ the return value.
+Concatenates two Parrot strings. If necessary, converts the second
+string's encoding and/or type to match those of the first string. If
+either string is C<NULL>, then a copy of the non-C<NULL> string is
+returned. If both strings are C<NULL>, then a new zero-length string is
+created and returned.
=cut
*/
PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
+PARROT_CANNOT_RETURN_NULL
STRING *
-Parrot_str_append(PARROT_INTERP, ARGMOD_NULLOK(STRING *a), ARGIN_NULLOK(STRING *b))
+Parrot_str_concat(PARROT_INTERP, ARGIN_NULLOK(STRING *a),
+ ARGIN_NULLOK(STRING *b))
{
- ASSERT_ARGS(Parrot_str_append)
- UINTVAL a_capacity;
- UINTVAL total_length;
- const CHARSET *cs;
- const ENCODING *enc;
+ ASSERT_ARGS(Parrot_str_concat)
+ const CHARSET *cs;
+ const ENCODING *enc;
+ STRING *dest;
+ UINTVAL total_length;
/* XXX should this be a CHARSET method? */
@@ -565,16 +435,11 @@
return a;
/* Is A real? */
- if (a == NULL || Buffer_bufstart(a) == NULL)
- return Parrot_str_copy(interp, b);
+ if (STRING_IS_NULL(a) || Buffer_bufstart(a) == NULL)
+ return b;
- saneify_string(a);
- saneify_string(b);
-
- /* If the destination's constant, or external then just fall back to
- Parrot_str_concat */
- if (PObj_is_cowed_TESTALL(a))
- return Parrot_str_concat(interp, a, b, 0);
+ ASSERT_STRING_SANITY(a);
+ ASSERT_STRING_SANITY(b);
cs = string_rep_compatible(interp, a, b, &enc);
@@ -588,46 +453,45 @@
|| b->encoding == Parrot_utf16_encoding_ptr
|| a->encoding == Parrot_ucs2_encoding_ptr
|| b->encoding == Parrot_ucs2_encoding_ptr)
- ? Parrot_utf16_encoding_ptr
- : Parrot_utf8_encoding_ptr;
+ ? Parrot_utf16_encoding_ptr
+ : Parrot_utf8_encoding_ptr;
- Parrot_unicode_charset_ptr->to_charset(interp, a, NULL);
- b = Parrot_unicode_charset_ptr->to_charset(interp, b,
- Parrot_gc_new_string_header(interp, 0));
+ a = Parrot_unicode_charset_ptr->to_charset(interp, a);
+ b = Parrot_unicode_charset_ptr->to_charset(interp, b);
if (a->encoding != enc)
- enc->to_encoding(interp, a, NULL);
+ a = enc->to_encoding(interp, a);
if (b->encoding != enc)
- enc->to_encoding(interp, b, NULL);
+ b = enc->to_encoding(interp, b);
}
/* calc usable and total bytes */
- a_capacity = string_capacity(interp, a);
total_length = a->bufused + b->bufused;
- /* make sure A's big enough for both */
- if (total_length > a_capacity)
- Parrot_gc_reallocate_string_storage(interp, a, total_length << 1);
+ dest = Parrot_str_new_noinit(interp, enum_stringrep_one, total_length);
+ dest->encoding = a->encoding;
+ dest->charset = a->charset;
- /* A is now ready to receive the contents of B */
+ /* Copy A first */
+ mem_sys_memcopy(dest->strstart, a->strstart, a->bufused);
/* Tack B on the end of A */
- mem_sys_memcopy((void *)((ptrcast_t)a->strstart + a->bufused),
+ mem_sys_memcopy((void *)((ptrcast_t)dest->strstart + a->bufused),
b->strstart, b->bufused);
- a->bufused += b->bufused;
- a->strlen += b_len;
- a->hashval = 0;
+ dest->bufused = a->bufused + b->bufused;
+ dest->strlen = a->strlen + b_len;
- return a;
+ return dest;
}
+
/*
=item C<STRING * Parrot_str_new(PARROT_INTERP, const char * const buffer, const
UINTVAL len)>
-Make a Parrot string from a specified C string.
+Makes a Parrot string from a specified C string.
=cut
@@ -641,11 +505,14 @@
Parrot_str_new(PARROT_INTERP, ARGIN_NULLOK(const char * const buffer), const UINTVAL len)
{
ASSERT_ARGS(Parrot_str_new)
- return Parrot_str_new_init(interp, buffer, len ? len :
- buffer ? strlen(buffer) : 0,
- PARROT_DEFAULT_ENCODING, PARROT_DEFAULT_CHARSET,
- 0); /* Force an 8-bit encoding at some
- point? */
+ return Parrot_str_new_init(interp, buffer,
+ len
+ ? len
+ : buffer
+ ? strlen(buffer)
+ : 0,
+ /* Force an 8-bit encoding at some point? */
+ PARROT_DEFAULT_ENCODING, PARROT_DEFAULT_CHARSET, 0);
}
@@ -654,9 +521,10 @@
=item C<STRING * Parrot_str_new_from_buffer(PARROT_INTERP, Buffer *buffer, const
UINTVAL len)>
-Make a Parrot string from a Buffer.
+Makes a Parrot string from a Buffer.
-The Buffer is nulled afterwards - only one PObj can point at a given string pool object.
+The Buffer is nulled afterwards, as only one PObj can point at a given string
+pool object.
=cut
@@ -670,23 +538,23 @@
Parrot_str_new_from_buffer(PARROT_INTERP, ARGMOD(Buffer *buffer), const UINTVAL len)
{
ASSERT_ARGS(Parrot_str_new_from_buffer)
- STRING *result;
- result = Parrot_gc_new_string_header(interp, 0);
+ STRING *result = Parrot_gc_new_string_header(interp, 0);
Buffer_bufstart(result) = Buffer_bufstart(buffer);
Buffer_buflen(result) = Buffer_buflen(buffer);
- result->strstart = (char *) Buffer_bufstart(result);
+ result->strstart = (char *)Buffer_bufstart(result);
result->bufused = len;
result->strlen = len;
result->encoding = Parrot_fixed_8_encoding_ptr;
result->charset = Parrot_binary_charset_ptr;
- Buffer_bufstart(buffer) = NULL;
Buffer_buflen(buffer) = 0;
+ Buffer_bufstart(buffer) = NULL;
return result;
}
+
/*
=item C<const char* string_primary_encoding_for_representation(PARROT_INTERP,
@@ -717,6 +585,7 @@
"invalid string representation");
}
+
/*
=item C<int Parrot_str_string_node_compare(AVLStringNode *lhs, AVLStringNode
*rhs)>
@@ -978,7 +847,7 @@
if (encoding == Parrot_fixed_8_encoding_ptr)
s->strlen = len;
else
- Parrot_str_length(interp, s);
+ s->strlen = CHARSET_CODEPOINTS(interp, s);
return s;
}
@@ -991,7 +860,7 @@
if (encoding == Parrot_fixed_8_encoding_ptr)
s->strlen = len;
else
- Parrot_str_length(interp, s);
+ s->strlen = CHARSET_CODEPOINTS(interp, s);
}
else {
s->strlen = s->bufused = 0;
@@ -1003,31 +872,6 @@
/*
-=item C<STRING * Parrot_str_resize(PARROT_INTERP, STRING *s, UINTVAL addlen)>
-
-Grows the Parrot string's buffer by the specified number of characters.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-STRING *
-Parrot_str_resize(PARROT_INTERP, ARGMOD(STRING *s), UINTVAL addlen)
-{
- ASSERT_ARGS(Parrot_str_resize)
- Parrot_str_write_COW(interp, s);
-
- /* Don't check buflen, if we are here, we already checked. */
- Parrot_gc_reallocate_string_storage(interp,
- s, Buffer_buflen(s) + string_max_bytes(interp, s, addlen));
- return s;
-}
-
-
-/*
-
=back
=head2 Ordinary user-visible string operations
@@ -1049,7 +893,7 @@
{
ASSERT_ARGS(Parrot_str_byte_length)
- return s ? s->strlen : 0;
+ return !STRING_IS_NULL(s) ? s->strlen : 0;
}
@@ -1074,7 +918,7 @@
Parrot_str_indexed(PARROT_INTERP, ARGIN(const STRING *s), UINTVAL idx)
{
ASSERT_ARGS(Parrot_str_indexed)
- saneify_string(s);
+ ASSERT_STRING_SANITY(s);
return (INTVAL)CHARSET_GET_CODEPOINT(interp, s, idx);
}
@@ -1099,9 +943,7 @@
ARGIN(const STRING *s2), INTVAL start)
{
ASSERT_ARGS(Parrot_str_find_index)
- STRING *src, *search;
UINTVAL len;
- DECL_CONST_CAST;
if (start < 0)
return -1;
@@ -1116,11 +958,13 @@
if (!Parrot_str_byte_length(interp, s2))
return -1;
+ else {
+ DECL_CONST_CAST;
+ STRING *src = PARROT_const_cast(STRING *, s);
+ STRING *search = PARROT_const_cast(STRING *, s2);
- src = PARROT_const_cast(STRING *, s);
- search = PARROT_const_cast(STRING *, s2);
-
- return CHARSET_INDEX(interp, src, search, (UINTVAL)start);
+ return CHARSET_INDEX(interp, src, search, (UINTVAL)start);
+ }
}
@@ -1200,34 +1044,13 @@
/*
-=item C<STRING * Parrot_str_copy(PARROT_INTERP, STRING *s)>
-
-Creates and returns a copy of the specified Parrot string.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-STRING *
-Parrot_str_copy(PARROT_INTERP, ARGMOD(STRING *s))
-{
- ASSERT_ARGS(Parrot_str_copy)
- return Parrot_str_new_COW(interp, s);
-}
-
-
-/*
-
=back
=head2 Vtable Dispatch Functions
=over 4
-=item C<INTVAL Parrot_str_length(PARROT_INTERP, STRING *s)>
+=item C<INTVAL Parrot_str_length(PARROT_INTERP, const STRING *s)>
Calculates and returns the number of characters in the specified Parrot string.
@@ -1236,13 +1059,12 @@
*/
PARROT_EXPORT
-PARROT_IGNORABLE_RESULT
+PARROT_WARN_UNUSED_RESULT
INTVAL
-Parrot_str_length(PARROT_INTERP, ARGMOD(STRING *s))
+Parrot_str_length(SHIM_INTERP, ARGIN(const STRING *s))
{
ASSERT_ARGS(Parrot_str_length)
- s->strlen = CHARSET_CODEPOINTS(interp, s);
return s->strlen;
}
@@ -1260,6 +1082,7 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
+PARROT_PURE_FUNCTION
INTVAL
string_max_bytes(SHIM_INTERP, ARGIN(const STRING *s), UINTVAL nchars)
{
@@ -1268,6 +1091,7 @@
return ENCODING_MAX_BYTES_PER_CODEPOINT(interp, s) * nchars;
}
+
/*
=item C<STRING * Parrot_str_repeat(PARROT_INTERP, const STRING *s, UINTVAL num)>
@@ -1298,21 +1122,21 @@
destpos += length;
}
+ dest->strlen = s->strlen * num;
dest->bufused = s->bufused * num;
- dest->strlen = s->strlen * num;
}
return dest;
}
+
/*
=item C<STRING * Parrot_str_substr(PARROT_INTERP, STRING *src, INTVAL offset,
-INTVAL length, STRING **d, int replace_dest)>
+INTVAL length)>
-Copies the substring of length C<length> from C<offset> from the specified
-Parrot string and stores it in C<**d>, allocating memory if necessary. The
-substring is also returned.
+Returns substring of length C<length> from C<offset> from the specified
+Parrot string.
=cut
@@ -1323,66 +1147,45 @@
PARROT_WARN_UNUSED_RESULT
STRING *
Parrot_str_substr(PARROT_INTERP,
- ARGIN_NULLOK(STRING *src), INTVAL offset, INTVAL length,
- ARGOUT_NULLOK(STRING **d), int replace_dest)
+ ARGIN_NULLOK(STRING *src), INTVAL offset, INTVAL length)
{
ASSERT_ARGS(Parrot_str_substr)
- if (src == NULL)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_SUBSTR_OUT_OF_STRING,
- "Cannot substr on a null string");
- else {
- STRING *dest;
- UINTVAL true_length;
- UINTVAL true_offset = (UINTVAL)offset;
-
- saneify_string(src);
-
- /* Allow regexes to return $' easily for "aaa" =~ /aaa/ */
- if (offset == (INTVAL)Parrot_str_byte_length(interp, src) || length < 1)
- return Parrot_str_new_noinit(interp, enum_stringrep_one, 0);
- if (offset < 0)
- true_offset = (UINTVAL)(src->strlen + offset);
+ UINTVAL true_length;
+ UINTVAL true_offset = (UINTVAL)offset;
- /* 0 based... */
- if (src->strlen == 0 || true_offset > src->strlen - 1)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_SUBSTR_OUT_OF_STRING,
- "Cannot take substr outside string");
+ if (STRING_IS_NULL(src))
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_SUBSTR_OUT_OF_STRING, "Cannot substr on a null string");
- true_length = (UINTVAL)length;
- if (true_length > (src->strlen - true_offset))
- true_length = (UINTVAL)(src->strlen - true_offset);
+ ASSERT_STRING_SANITY(src);
- /* do in-place i.e. reuse existing header if one */
- if (replace_dest && d && *d) {
- PARROT_ASSERT(src->encoding == Parrot_fixed_8_encoding_ptr);
- dest = *d;
+ /* Allow regexes to return $' easily for "aaa" =~ /aaa/ */
+ if (offset == (INTVAL)Parrot_str_byte_length(interp, src) || length < 1)
+ return Parrot_str_new_noinit(interp, enum_stringrep_one, 0);
- dest->encoding = src->encoding;
- dest->charset = src->charset;
+ if (offset < 0)
+ true_offset = (UINTVAL)(src->strlen + offset);
- dest->strstart = (char *)src->strstart + true_offset;
- dest->bufused = true_length;
+ /* 0 based... */
+ if (src->strlen == 0 || true_offset > src->strlen - 1)
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_SUBSTR_OUT_OF_STRING,
+ "Cannot take substr outside string");
- dest->strlen = true_length;
- dest->hashval = 0;
- }
- else
- dest = CHARSET_GET_CODEPOINTS(interp, src, true_offset,
- true_length);
+ true_length = (UINTVAL)length;
- if (d)
- *d = dest;
+ if (true_length > (src->strlen - true_offset))
+ true_length = (UINTVAL)(src->strlen - true_offset);
- return dest;
- }
+ return CHARSET_GET_CODEPOINTS(interp, src, true_offset, true_length);
}
/*
-=item C<STRING * Parrot_str_replace(PARROT_INTERP, STRING *src, INTVAL offset,
-INTVAL length, STRING *rep, STRING **d)>
+=item C<STRING * Parrot_str_replace(PARROT_INTERP, const STRING *src, INTVAL
+offset, INTVAL length, const STRING *rep)>
Replaces a sequence of C<length> characters from C<offset> in the first
Parrot string with the second Parrot string, returning what was
@@ -1406,35 +1209,25 @@
PARROT_EXPORT
PARROT_CAN_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
STRING *
-Parrot_str_replace(PARROT_INTERP, ARGIN(STRING *src),
- INTVAL offset, INTVAL length, ARGIN(STRING *rep), ARGOUT_NULLOK(STRING **d))
+Parrot_str_replace(PARROT_INTERP, ARGIN(const STRING *src),
+ INTVAL offset, INTVAL length, ARGIN(const STRING *rep))
{
ASSERT_ARGS(Parrot_str_replace)
- UINTVAL start_byte, end_byte;
- INTVAL diff;
String_iter iter;
-
const CHARSET *cs;
const ENCODING *enc;
STRING *dest = NULL;
UINTVAL true_offset = (UINTVAL)offset;
UINTVAL true_length = (UINTVAL)length;
- /* special case */
- if (d == NULL
- && src->encoding == Parrot_fixed_8_encoding_ptr
- && rep->encoding == Parrot_fixed_8_encoding_ptr
- && offset >= 0
- && true_offset < src->strlen
- && length == 1
- && rep->strlen == 1) {
- if (PObj_is_cowed_TESTALL(src))
- Parrot_str_write_COW(interp, src);
-
- ((char *)src->strstart)[offset] = ((char *)rep->strstart)[0];
+ UINTVAL start_byte, end_byte;
+ INTVAL buf_size;
- return NULL;
+ if (STRING_IS_NULL(src)) {
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNEXPECTED_NULL,
+ "Can't replace in NULL string");
}
/* abs(-offset) may not be > strlen-1 */
@@ -1446,29 +1239,22 @@
* Only give exception if caller trys to replace end of string + 2
*/
if (true_offset > src->strlen)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_SUBSTR_OUT_OF_STRING,
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_SUBSTR_OUT_OF_STRING,
"Can only replace inside string or index after end of string");
if (true_length > (src->strlen - true_offset))
true_length = (UINTVAL)(src->strlen - true_offset);
- /* Save the substring that is replaced for the return value */
- if (d) {
- dest = CHARSET_GET_CODEPOINTS(interp, src, true_offset, true_length);
- *d = dest;
- }
-
/* may have different reps..... */
cs = string_rep_compatible(interp, src, rep, &enc);
if (!cs) {
- Parrot_utf16_encoding_ptr->to_encoding(interp, src, NULL);
- rep = Parrot_utf16_encoding_ptr->to_encoding(interp, rep,
- Parrot_gc_new_string_header(interp, 0));
- }
- else {
- src->charset = cs;
- src->encoding = enc;
+ src = Parrot_utf16_encoding_ptr->to_encoding(interp, src);
+ rep = Parrot_utf16_encoding_ptr->to_encoding(interp, rep);
+ /* Remember selected charset and encoding */
+ enc = src->encoding;
+ cs = src->charset;
}
/* get byte position of the part that will be replaced */
@@ -1482,54 +1268,44 @@
/* not possible.... */
if (end_byte < start_byte)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_SUBSTR_OUT_OF_STRING,
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_SUBSTR_OUT_OF_STRING,
"replace: subend somehow is less than substart");
/* Now do the replacement */
- Parrot_str_write_COW(interp, src);
-
- /*
- * If the replacement string fits inside the original substring
- * don't create a new string, just pack it.
- */
- diff = (end_byte - start_byte) - rep->bufused;
-
- if (diff >= 0
- || ((INTVAL)src->bufused - (INTVAL)Buffer_buflen(src)) <= diff) {
-
- if (diff != 0) {
- mem_sys_memmove((char *)src->strstart + start_byte + rep->bufused,
- (char *)src->strstart + end_byte,
- src->bufused - end_byte);
- src->bufused -= diff;
- }
-
- mem_sys_memcopy((char *)src->strstart + start_byte,
- rep->strstart, rep->bufused);
+ dest = Parrot_gc_new_string_header(interp, 0);
- if (diff)
- (void)Parrot_str_length(interp, src);
- }
+ /* Set encoding and charset to compatible */
+ dest->encoding = enc;
+ dest->charset = cs;
+
+ /* Clear COW flag. We own buffer */
+ PObj_get_FLAGS(dest) = PObj_is_string_FLAG
+ | PObj_is_COWable_FLAG
+ | PObj_live_FLAG;
+
+ /* size removed bytes added bytes */
+ buf_size = src->bufused - (end_byte - start_byte) + rep->bufused;
+
+ /* Alloctate new string size. */
+ Parrot_gc_allocate_string_storage(interp, dest, buf_size);
+ dest->bufused = buf_size;
+
+ /* Copy begin of string */
+ mem_sys_memcopy(dest->strstart, src->strstart, start_byte);
+
+ /* Copy the replacement in */
+ mem_sys_memcopy((char *)dest->strstart + start_byte, rep->strstart,
+ rep->bufused);
+
+ /* Copy the end of old string */
+ mem_sys_memcopy((char *)dest->strstart + start_byte + rep->bufused,
+ (char *)src->strstart + end_byte,
+ src->bufused - end_byte);
- /* Replacement is larger than avail buffer, grow the string */
- else {
- /* diff is negative here, make it positive */
- diff = -(diff);
- Parrot_str_resize(interp, src, (UINTVAL)diff);
-
- /* Move the end of old string that isn't replaced to new offset first */
- mem_sys_memmove((char *)src->strstart + end_byte + diff,
- (char *)src->strstart + end_byte,
- src->bufused - end_byte);
-
- /* Copy the replacement in */
- mem_sys_memcopy((char *)src->strstart + start_byte, rep->strstart,
- rep->bufused);
- src->bufused += diff;
- (void)Parrot_str_length(interp, src);
- }
+ dest->strlen = CHARSET_CODEPOINTS(interp, dest);
+ dest->hashval = 0;
- /* src is modified, now return the original substring */
return dest;
}
@@ -1538,9 +1314,8 @@
=item C<STRING * Parrot_str_chopn(PARROT_INTERP, STRING *s, INTVAL n)>
-Removes the last C<n> characters of the specified Parrot string. If C<n> is
-negative, cuts the string after C<+n> characters. The returned string is a copy
-of the one passed in.
+Removes the last C<n> characters of the specified Parrot string and returns the
+modified string. If C<n> is negative, cuts the string after C<+n> characters.
=cut
@@ -1552,68 +1327,47 @@
Parrot_str_chopn(PARROT_INTERP, ARGMOD(STRING *s), INTVAL n)
{
ASSERT_ARGS(Parrot_str_chopn)
- STRING * const chopped = Parrot_str_copy(interp, s);
- Parrot_str_chopn_inplace(interp, chopped, n);
- return chopped;
-}
-
-
-/*
-
-=item C<void Parrot_str_chopn_inplace(PARROT_INTERP, STRING *s, INTVAL n)>
-
-Removes the last C<n> characters of the specified Parrot string. If C<n> is
-negative, cuts the string after C<+n> characters. The string passed in is
-modified and returned.
-
-=cut
-
-*/
-PARROT_EXPORT
-void
-Parrot_str_chopn_inplace(PARROT_INTERP, ARGMOD(STRING *s), INTVAL n)
-{
- ASSERT_ARGS(Parrot_str_chopn_inplace)
+ STRING * const chopped = Parrot_str_copy(interp, s);
UINTVAL new_length, uchar_size;
if (n < 0) {
new_length = -n;
- if (new_length > s->strlen)
- return;
+ if (new_length > chopped->strlen)
+ return chopped;
}
else {
- if (s->strlen > (UINTVAL)n)
- new_length = s->strlen - n;
+ if (chopped->strlen > (UINTVAL)n)
+ new_length = chopped->strlen - n;
else
new_length = 0;
}
- s->hashval = 0;
+ chopped->hashval = 0;
- if (!new_length || !s->strlen) {
- s->bufused = s->strlen = 0;
- return;
+ if (!new_length || !chopped->strlen) {
+ chopped->bufused = chopped->strlen = 0;
+ return chopped;
}
- uchar_size = s->bufused / s->strlen;
- s->strlen = new_length;
+ uchar_size = chopped->bufused / chopped->strlen;
+ chopped->strlen = new_length;
- if (s->encoding == Parrot_fixed_8_encoding_ptr) {
- s->bufused = new_length;
+ if (chopped->encoding == Parrot_fixed_8_encoding_ptr) {
+ chopped->bufused = new_length;
}
- else if (s->encoding == Parrot_ucs2_encoding_ptr) {
- s->bufused = new_length * uchar_size;
+ else if (chopped->encoding == Parrot_ucs2_encoding_ptr) {
+ chopped->bufused = new_length * uchar_size;
}
else {
String_iter iter;
ENCODING_ITER_INIT(interp, s, &iter);
iter.set_position(interp, &iter, new_length);
- s->bufused = iter.bytepos;
+ chopped->bufused = iter.bytepos;
}
- return;
+ return chopped;
}
@@ -1637,14 +1391,14 @@
Parrot_str_compare(PARROT_INTERP, ARGIN_NULLOK(const STRING *s1), ARGIN_NULLOK(const STRING *s2))
{
ASSERT_ARGS(Parrot_str_compare)
- if (!s2)
+ if (STRING_IS_NULL(s2))
return s1 && (s1->strlen != 0);
- if (!s1)
+ if (STRING_IS_NULL(s1))
return -(s2->strlen != 0);
- saneify_string(s1);
- saneify_string(s2);
+ ASSERT_STRING_SANITY(s1);
+ ASSERT_STRING_SANITY(s2);
return CHARSET_COMPARE(interp, s1, s2);
}
@@ -1671,6 +1425,7 @@
return !Parrot_str_equal(interp, s1, s2);
}
+
/*
=item C<INTVAL Parrot_str_equal(PARROT_INTERP, const STRING *s1, const STRING
@@ -1691,28 +1446,30 @@
Parrot_str_equal(PARROT_INTERP, ARGIN_NULLOK(const STRING *s1), ARGIN_NULLOK(const STRING *s2))
{
ASSERT_ARGS(Parrot_str_equal)
- if ((s1 == s2) || (!s1 && !s2)) {
+
+ if ((s1 == s2) || (STRING_IS_NULL(s1) && STRING_IS_NULL(s2))) {
return 1;
}
- else if (!s2) {
+ else if (STRING_IS_NULL(s2)) {
return s1->strlen == 0;
}
- else if (!s1) {
+ else if (STRING_IS_NULL(s1)) {
return s2->strlen == 0;
}
- else if (s1->strlen != s2->strlen) {
- return 0; /* we don't care which is bigger */
- }
- else if (s1->hashval != s2->hashval && s1->hashval && s2->hashval) {
+
+ /* we don't care which is bigger */
+ else if (s1->strlen != s2->strlen)
return 0;
- }
- else if (!s1->strlen) { /* s2->strlen is the same here */
+ else if (s1->hashval != s2->hashval && s1->hashval && s2->hashval)
+ return 0;
+
+ /* s2->strlen is the same here */
+ else if (!s1->strlen)
return 1;
- }
+
/* COWed strings */
- else if (s1->strstart == s2->strstart && s1->bufused == s2->bufused) {
+ else if (s1->strstart == s2->strstart && s1->bufused == s2->bufused)
return 1;
- }
/*
* now,
@@ -1725,39 +1482,11 @@
/*
-=item C<static void make_writable(PARROT_INTERP, STRING **s, const size_t len,
-parrot_string_representation_t representation)>
-
-Makes the specified Parrot string writable with minimum length C<len>. The
-C<representation> argument is required in case a new Parrot string has to be
-created.
-
-=cut
-
-*/
-
-static void
-make_writable(PARROT_INTERP, ARGMOD(STRING **s),
- const size_t len, parrot_string_representation_t representation)
-{
- ASSERT_ARGS(make_writable)
- if (!*s)
- *s = Parrot_str_new_noinit(interp, representation, len);
- else if ((*s)->strlen < len)
- Parrot_str_resize(interp, *s, (UINTVAL)(len - (*s)->strlen));
- else if (PObj_is_cowed_TESTALL(*s))
- Parrot_str_write_COW(interp, *s);
-}
-
-
-/*
-
=item C<STRING * Parrot_str_bitwise_and(PARROT_INTERP, const STRING *s1, const
-STRING *s2, STRING **dest)>
+STRING *s2)>
Performs a bitwise C<AND> on two Parrot strings, performing type and encoding
-conversions if necessary. If the third string is not C<NULL> then it is
-reused. Otherwise a new Parrot string is created.
+conversions if necessary. Returns the result as a new string.
=cut
@@ -1767,7 +1496,7 @@
PARROT_CANNOT_RETURN_NULL
STRING *
Parrot_str_bitwise_and(PARROT_INTERP, ARGIN_NULLOK(const STRING *s1),
- ARGIN_NULLOK(const STRING *s2), ARGOUT_NULLOK(STRING **dest))
+ ARGIN_NULLOK(const STRING *s2))
{
ASSERT_ARGS(Parrot_str_bitwise_and)
STRING *res;
@@ -1785,21 +1514,15 @@
nonnull_encoding_name(s1), s2->encoding->name);
/* think about case of dest string is one of the operands */
- if (s1 && s2)
+ if (!STRING_IS_NULL(s1) && !STRING_IS_NULL(s2))
minlen = s1->strlen > s2->strlen ? s2->strlen : s1->strlen;
else
minlen = 0;
- if (dest && *dest) {
- res = *dest;
- res->encoding = Parrot_fixed_8_encoding_ptr;
- res->charset = Parrot_binary_charset_ptr;
- }
- else
- res = Parrot_str_new_init(interp, NULL, minlen,
- Parrot_fixed_8_encoding_ptr, Parrot_binary_charset_ptr, 0);
+ res = Parrot_str_new_init(interp, NULL, minlen,
+ Parrot_fixed_8_encoding_ptr, Parrot_binary_charset_ptr, 0);
- if (!s1 || !s2) {
+ if (STRING_IS_NULL(s1) || STRING_IS_NULL(s2)) {
res->bufused = 0;
res->strlen = 0;
@@ -1812,8 +1535,6 @@
Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG);
#endif
- make_writable(interp, &res, minlen, enum_stringrep_one);
-
{ /* bitwise AND the strings */
const Parrot_UInt1 *curr1 = (Parrot_UInt1 *)s1->strstart;
const Parrot_UInt1 *curr2 = (Parrot_UInt1 *)s2->strstart;
@@ -1826,12 +1547,10 @@
res->bufused = res->strlen = minlen;
- if (dest)
- *dest = res;
-
return res;
}
+
#define BITWISE_XOR_STRINGS(type1, type2, restype, s1, s2, res, maxlen) \
do { \
const type1 *curr1 = NULL; \
@@ -1841,11 +1560,11 @@
restype *dp; \
size_t _index; \
\
- if (s1) { \
+ if (!STRING_IS_NULL(s1)) { \
curr1 = (type1 *)(s1)->strstart; \
length1 = (s1)->strlen; \
} \
- if (s2) { \
+ if (!STRING_IS_NULL(s2)) { \
curr2 = (type2 *)(s2)->strstart; \
length2 = (s2)->strlen; \
} \
@@ -1876,11 +1595,11 @@
restype *dp; \
size_t _index; \
\
- if (s1) { \
+ if (!STRING_IS_NULL(s1)) { \
curr1 = (type1 *)(s1)->strstart; \
length1 = (s1)->strlen; \
} \
- if (s2) { \
+ if (!STRING_IS_NULL(s2)) { \
curr2 = (type2 *)(s2)->strstart; \
length2 = (s2)->strlen; \
} \
@@ -1905,11 +1624,10 @@
/*
=item C<STRING * Parrot_str_bitwise_or(PARROT_INTERP, const STRING *s1, const
-STRING *s2, STRING **dest)>
+STRING *s2)>
Performs a bitwise C<OR> on two Parrot strings, performing type and encoding
-conversions if necessary. If the third string is not C<NULL>, then it is
-reused. Otherwise a new Parrot string is created.
+conversions if necessary. Returns the result as a new string.
=cut
@@ -1919,24 +1637,26 @@
PARROT_CANNOT_RETURN_NULL
STRING *
Parrot_str_bitwise_or(PARROT_INTERP, ARGIN_NULLOK(const STRING *s1),
- ARGIN_NULLOK(const STRING *s2), ARGOUT_NULLOK(STRING **dest))
+ ARGIN_NULLOK(const STRING *s2))
{
ASSERT_ARGS(Parrot_str_bitwise_or)
STRING *res;
size_t maxlen = 0;
- if (s1) {
+ if (!STRING_IS_NULL(s1)) {
if (s1->encoding != Parrot_fixed_8_encoding_ptr)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_ENCODING,
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_ENCODING,
"string bitwise_or (%s/%s) unsupported",
s1->encoding->name, nonnull_encoding_name(s2));
maxlen = s1->bufused;
}
- if (s2) {
+ if (!STRING_IS_NULL(s2)) {
if (s2->encoding != Parrot_fixed_8_encoding_ptr)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_ENCODING,
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_ENCODING,
"string bitwise_or (%s/%s) unsupported",
nonnull_encoding_name(s1), s2->encoding->name);
@@ -1944,14 +1664,8 @@
maxlen = s2->bufused;
}
- if (dest && *dest) {
- res = *dest;
- res->encoding = Parrot_fixed_8_encoding_ptr;
- res->charset = Parrot_binary_charset_ptr;
- }
- else
- res = Parrot_str_new_init(interp, NULL, maxlen,
- Parrot_fixed_8_encoding_ptr, Parrot_binary_charset_ptr, 0);
+ res = Parrot_str_new_init(interp, NULL, maxlen,
+ Parrot_fixed_8_encoding_ptr, Parrot_binary_charset_ptr, 0);
if (!maxlen) {
res->bufused = 0;
@@ -1965,15 +1679,10 @@
Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG);
#endif
- make_writable(interp, &res, maxlen, enum_stringrep_one);
-
BITWISE_OR_STRINGS(Parrot_UInt1, Parrot_UInt1, Parrot_UInt1,
s1, s2, res, maxlen);
res->bufused = res->strlen = maxlen;
- if (dest)
- *dest = res;
-
return res;
}
@@ -1981,11 +1690,10 @@
/*
=item C<STRING * Parrot_str_bitwise_xor(PARROT_INTERP, const STRING *s1, const
-STRING *s2, STRING **dest)>
+STRING *s2)>
Performs a bitwise C<XOR> on two Parrot strings, performing type and encoding
-conversions if necessary. If the third string is not C<NULL>, then it is
-reused. Otherwise a new Parrot string is created.
+conversions if necessary. Returns the result as a new string.
=cut
@@ -1995,24 +1703,26 @@
PARROT_CANNOT_RETURN_NULL
STRING *
Parrot_str_bitwise_xor(PARROT_INTERP, ARGIN_NULLOK(const STRING *s1),
- ARGIN_NULLOK(const STRING *s2), ARGOUT_NULLOK(STRING **dest))
+ ARGIN_NULLOK(const STRING *s2))
{
ASSERT_ARGS(Parrot_str_bitwise_xor)
STRING *res;
size_t maxlen = 0;
- if (s1) {
+ if (!STRING_IS_NULL(s1)) {
if (s1->encoding != Parrot_fixed_8_encoding_ptr)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_ENCODING,
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_ENCODING,
"string bitwise_xor (%s/%s) unsupported",
s1->encoding->name, nonnull_encoding_name(s2));
maxlen = s1->bufused;
}
- if (s2) {
+ if (!STRING_IS_NULL(s2)) {
if (s2->encoding != Parrot_fixed_8_encoding_ptr)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_ENCODING,
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_ENCODING,
"string bitwise_xor (%s/%s) unsupported",
nonnull_encoding_name(s1), s2->encoding->name);
@@ -2020,14 +1730,8 @@
maxlen = s2->bufused;
}
- if (dest && *dest) {
- res = *dest;
- res->encoding = Parrot_fixed_8_encoding_ptr;
- res->charset = Parrot_binary_charset_ptr;
- }
- else
- res = Parrot_str_new_init(interp, NULL, maxlen,
- Parrot_fixed_8_encoding_ptr, Parrot_binary_charset_ptr, 0);
+ res = Parrot_str_new_init(interp, NULL, maxlen,
+ Parrot_fixed_8_encoding_ptr, Parrot_binary_charset_ptr, 0);
if (!maxlen) {
res->bufused = 0;
@@ -2041,22 +1745,17 @@
Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG);
#endif
- make_writable(interp, &res, maxlen, enum_stringrep_one);
-
BITWISE_XOR_STRINGS(Parrot_UInt1, Parrot_UInt1, Parrot_UInt1,
s1, s2, res, maxlen);
res->bufused = res->strlen = maxlen;
- if (dest)
- *dest = res;
-
return res;
}
#define BITWISE_NOT_STRING(type, s, res) \
do { \
- if ((s) && (res)) { \
+ if (!STRING_IS_NULL(s) && !STRING_IS_NULL(res)) { \
const type *curr = (type *)(s)->strstart; \
size_t length = (s)->strlen; \
Parrot_UInt1 *dp = (Parrot_UInt1 *)(res)->strstart; \
@@ -2066,13 +1765,13 @@
} \
} while (0)
+
/*
-=item C<STRING * Parrot_str_bitwise_not(PARROT_INTERP, const STRING *s, STRING
-**dest)>
+=item C<STRING * Parrot_str_bitwise_not(PARROT_INTERP, const STRING *s)>
-Performs a bitwise C<NOT> on a Parrot string. If the second string is
-not C<NULL> then it is reused, otherwise a new Parrot string is created.
+Performs a bitwise C<NOT> on a Parrot string. Returns the result as a new
+string.
=cut
@@ -2081,16 +1780,16 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
STRING *
-Parrot_str_bitwise_not(PARROT_INTERP, ARGIN_NULLOK(const STRING *s),
- ARGOUT_NULLOK(STRING **dest))
+Parrot_str_bitwise_not(PARROT_INTERP, ARGIN_NULLOK(const STRING *s))
{
ASSERT_ARGS(Parrot_str_bitwise_not)
STRING *res;
size_t len;
- if (s) {
+ if (!STRING_IS_NULL(s)) {
if (s->encoding != Parrot_fixed_8_encoding_ptr)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_ENCODING,
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_ENCODING,
"string bitwise_not (%s/%s) unsupported",
s->encoding->name, s->encoding->name);
@@ -2099,14 +1798,8 @@
else
len = 0;
- if (dest && *dest) {
- res = *dest;
- res->encoding = Parrot_fixed_8_encoding_ptr;
- res->charset = Parrot_binary_charset_ptr;
- }
- else
- res = Parrot_str_new_init(interp, NULL, len,
- Parrot_fixed_8_encoding_ptr, Parrot_binary_charset_ptr, 0);
+ res = Parrot_str_new_init(interp, NULL, len,
+ Parrot_fixed_8_encoding_ptr, Parrot_binary_charset_ptr, 0);
if (!len) {
res->bufused = 0;
@@ -2120,13 +1813,9 @@
Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG);
#endif
- make_writable(interp, &res, len, enum_stringrep_one);
-
res->strlen = res->bufused = len;
BITWISE_NOT_STRING(Parrot_UInt1, s, res);
- if (dest)
- *dest = res;
return res;
}
@@ -2149,7 +1838,7 @@
Parrot_str_boolean(PARROT_INTERP, ARGIN_NULLOK(const STRING *s))
{
ASSERT_ARGS(Parrot_str_boolean)
- const INTVAL len = s ? Parrot_str_byte_length(interp, s) : 0;
+ const INTVAL len = !STRING_IS_NULL(s) ? Parrot_str_byte_length(interp, s) : 0;
if (len == 0)
return 0;
@@ -2195,7 +1884,9 @@
return output;
}
+
/*
+
State of FSM during number value parsing.
Integer uses only parse_start, parse_before_dot and parse_end.
@@ -2240,7 +1931,7 @@
Parrot_str_to_int(PARROT_INTERP, ARGIN_NULLOK(const STRING *s))
{
ASSERT_ARGS(Parrot_str_to_int)
- if (s == NULL)
+ if (STRING_IS_NULL(s))
return 0;
{
const INTVAL max_safe = PARROT_INTVAL_MAX / 10;
@@ -2266,8 +1957,9 @@
if (i < max_safe || (i == max_safe && nextval <= last_dig))
i = i * 10 + nextval;
else
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_ERR_OVERFLOW,
- "Integer value of String '%S' too big", s);
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_ERR_OVERFLOW,
+ "Integer value of String '%S' too big", s);
state = parse_before_dot;
}
else if (c == '-') {
@@ -2289,8 +1981,9 @@
if (i < max_safe || (i == max_safe && nextval <= last_dig))
i = i * 10 + nextval;
else
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_ERR_OVERFLOW,
- "Integer value of String '%S' too big", s);
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_ERR_OVERFLOW,
+ "Integer value of String '%S' too big", s);
}
else
state = parse_end;
@@ -2308,6 +2001,7 @@
}
}
+
/*
=item C<FLOATVAL Parrot_str_to_num(PARROT_INTERP, const STRING *s)>
@@ -2342,7 +2036,7 @@
UINTVAL offs;
number_parse_state state = parse_start;
- if (!s)
+ if (STRING_IS_NULL(s))
return 0.0;
ENCODING_ITER_INIT(interp, s, &iter);
@@ -2453,16 +2147,16 @@
}
/* Support for non-canonical NaN and Inf */
- /* charpos <=2 because for "-i" iter will be advanced to next char already */
+ /* charpos <= 2 because for "-i" iter already advanced to next char */
if (check_nan && (iter.charpos <= 2)) {
STRING *t = Parrot_str_upcase(interp, s);
if (Parrot_str_equal(interp, t, CONST_STRING(interp, "NAN")))
return PARROT_FLOATVAL_NAN_QUIET;
else if (Parrot_str_equal(interp, t, CONST_STRING(interp, "INF"))
- || Parrot_str_equal(interp, t, CONST_STRING(interp, "INFINITY")))
+ || Parrot_str_equal(interp, t, CONST_STRING(interp, "INFINITY")))
return PARROT_FLOATVAL_INF_POSITIVE;
else if (Parrot_str_equal(interp, t, CONST_STRING(interp, "-INF"))
- || Parrot_str_equal(interp, t, CONST_STRING(interp, "-INFINITY")))
+ || Parrot_str_equal(interp, t, CONST_STRING(interp, "-INFINITY")))
return PARROT_FLOATVAL_INF_NEGATIVE;
else
return 0.0;
@@ -2546,8 +2240,8 @@
=item C<char * Parrot_str_to_cstring(PARROT_INTERP, const STRING *s)>
Returns a C string for the specified Parrot string. Use
-C<Parrot_str_free_cstring()> to free the string. Failure to do this will result in
-a memory leak.
+C<Parrot_str_free_cstring()> to free the string. Failure to do this will result
+in a memory leak.
=cut
@@ -2560,12 +2254,13 @@
Parrot_str_to_cstring(PARROT_INTERP, ARGIN_NULLOK(const STRING *s))
{
ASSERT_ARGS(Parrot_str_to_cstring)
- if (! s) {
+
+ if (STRING_IS_NULL(s)) {
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNEXPECTED_NULL,
"Can't convert NULL string");
}
- else
- return string_to_cstring_nullable(interp, s);
+
+ return string_to_cstring_nullable(interp, s);
}
@@ -2574,8 +2269,9 @@
=item C<char * string_to_cstring_nullable(PARROT_INTERP, const STRING *s)>
Returns a C string for the specified Parrot string. Use
-C<Parrot_str_free_cstring()> to free the string. Failure to do this will result in
-a memory leak.
+C<Parrot_str_free_cstring()> to free the string, if it's not NULL. Failure to
+do this will result in a memory leak. Failure to check if the return value is
+NULL will result in embarrassment for you.
=cut
@@ -2588,7 +2284,7 @@
string_to_cstring_nullable(SHIM_INTERP, ARGIN_NULLOK(const STRING *s))
{
ASSERT_ARGS(string_to_cstring_nullable)
- if (!s)
+ if (STRING_IS_NULL(s))
return NULL;
else {
char * const p = (char*)mem_internal_allocate(s->bufused + 1);
@@ -2614,7 +2310,7 @@
PARROT_EXPORT
void
-Parrot_str_free_cstring(ARGIN_NULLOK(char *p))
+Parrot_str_free_cstring(ARGFREE(char *p))
{
ASSERT_ARGS(Parrot_str_free_cstring)
mem_internal_free((void *)p);
@@ -2633,24 +2329,15 @@
PARROT_EXPORT
void
-Parrot_str_pin(PARROT_INTERP, ARGMOD(STRING *s))
+Parrot_str_pin(SHIM_INTERP, ARGMOD(STRING *s))
{
ASSERT_ARGS(Parrot_str_pin)
- char *memory;
- size_t size;
-
- /* XXX -lt: COW strings have the external_FLAG set, so this will
- * not work for these
- * so probably only sysmem should be tested
- */
- Parrot_str_write_COW(interp, s);
-
- size = Buffer_buflen(s);
- memory = (char *)mem_internal_allocate(size);
+ size_t size = Buffer_buflen(s);
+ char *memory = (char *)mem_internal_allocate(size);
mem_sys_memcopy(memory, Buffer_bufstart(s), size);
Buffer_bufstart(s) = memory;
- s->strstart = memory;
+ s->strstart = memory;
/* Mark the memory as both from the system and immobile */
PObj_sysmem_SET(s);
@@ -2676,12 +2363,10 @@
size_t size;
/* If this string is not marked using system memory,
- * we just don't do this
- */
+ * we just don't do this */
if (!PObj_sysmem_TEST(s))
return;
- Parrot_str_write_COW(interp, s);
size = Buffer_buflen(s);
/* We need a handle on the fixed memory so we can get rid of it later */
@@ -2727,18 +2412,22 @@
UINTVAL offs;
size_t hashval = interp->hash_seed;
- if (!s || !s->strlen)
+ if (STRING_IS_NULL(s) || !s->strlen)
return hashval;
- /* ZZZZZ workaround for something not setting up encodings right */
- saneify_string(s);
+ if (s->encoding->hash)
+ hashval = ENCODING_HASH(interp, s, hashval);
+ else {
+ /* ZZZZZ workaround for something not setting up encodings right */
+ ASSERT_STRING_SANITY(s);
- ENCODING_ITER_INIT(interp, s, &iter);
+ 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;
+ for (offs = 0; offs < s->strlen; ++offs) {
+ const UINTVAL c = iter.get_and_advance(interp, &iter);
+ hashval += hashval << 5;
+ hashval += c;
+ }
}
s->hashval = hashval;
@@ -2795,8 +2484,8 @@
String_iter iter;
unsigned char *dp;
- if (!src)
- return NULL;
+ if (STRING_IS_NULL(src))
+ return STRINGNULL;
len = src->strlen;
@@ -2882,7 +2571,7 @@
else
hex = Parrot_sprintf_c(interp, "\\u%04x", c);
- result = Parrot_str_append(interp, result, hex);
+ result = Parrot_str_concat(interp, result, hex);
/* adjust our insert idx */
i += hex->strlen;
@@ -3002,9 +2691,9 @@
result->strlen = d;
result->bufused = iter.bytepos;
- /* this also validates the string */
+ /* Force validating the string */
if (encoding != result->encoding)
- Parrot_str_length(interp, result);
+ result->strlen = CHARSET_CODEPOINTS(interp, result);
if (!CHARSET_VALIDATE(interp, result))
Parrot_ex_throw_from_c_args(interp, NULL,
@@ -3032,41 +2721,13 @@
Parrot_str_upcase(PARROT_INTERP, ARGIN_NULLOK(const STRING *s))
{
ASSERT_ARGS(Parrot_str_upcase)
- if (STRING_IS_NULL(s)) {
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNEXPECTED_NULL,
- "Can't upcase NULL string");
- }
- else {
- DECL_CONST_CAST;
- STRING * const dest = Parrot_str_copy(interp, PARROT_const_cast(STRING *, s));
- Parrot_str_upcase_inplace(interp, dest);
- return dest;
- }
-}
-
-
-/*
-
-=item C<void Parrot_str_upcase_inplace(PARROT_INTERP, STRING *s)>
-
-Converts the specified Parrot string to upper case.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_str_upcase_inplace(PARROT_INTERP, ARGMOD_NULLOK(STRING *s))
-{
- ASSERT_ARGS(Parrot_str_upcase_inplace)
- if (STRING_IS_NULL(s)) {
+ if (STRING_IS_NULL(s))
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNEXPECTED_NULL,
"Can't upcase NULL string");
- }
else {
- Parrot_str_write_COW(interp, s);
- CHARSET_UPCASE(interp, s);
+ STRING * res = CHARSET_UPCASE(interp, s);
+ res->hashval = 0;
+ return res;
}
}
@@ -3089,47 +2750,14 @@
Parrot_str_downcase(PARROT_INTERP, ARGIN_NULLOK(const STRING *s))
{
ASSERT_ARGS(Parrot_str_downcase)
- if (STRING_IS_NULL(s)) {
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNEXPECTED_NULL,
- "Can't downcase NULL string");
- }
- else {
- DECL_CONST_CAST;
- STRING * const dest = Parrot_str_copy(interp, PARROT_const_cast(STRING *, s));
- Parrot_str_downcase_inplace(interp, dest);
- return dest;
- }
-}
-
-
-/*
-
-=item C<void Parrot_str_downcase_inplace(PARROT_INTERP, STRING *s)>
-
-Converts the specified Parrot string to lower case.
-
-=cut
-
-*/
-PARROT_EXPORT
-void
-Parrot_str_downcase_inplace(PARROT_INTERP, ARGMOD_NULLOK(STRING *s))
-{
- ASSERT_ARGS(Parrot_str_downcase_inplace)
- if (STRING_IS_NULL(s)) {
+ if (STRING_IS_NULL(s))
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNEXPECTED_NULL,
"Can't downcase NULL string");
- }
else {
- /*
- * TODO get rid of all the inplace variants. We have for utf8:
- * * 1 Parrot_str_copy from the non-incase variant
- * * conversion to utf16, with doubling the buffer
- * * possibly one more reallocation in downcase
- */
- Parrot_str_write_COW(interp, s);
- CHARSET_DOWNCASE(interp, s);
+ STRING * res = CHARSET_DOWNCASE(interp, s);
+ res->hashval = 0;
+ return res;
}
}
@@ -3152,41 +2780,14 @@
Parrot_str_titlecase(PARROT_INTERP, ARGIN_NULLOK(const STRING *s))
{
ASSERT_ARGS(Parrot_str_titlecase)
- if (STRING_IS_NULL(s)) {
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNEXPECTED_NULL,
- "Can't titlecase NULL string");
- }
- else {
- DECL_CONST_CAST;
- STRING * const dest = Parrot_str_copy(interp, PARROT_const_cast(STRING *, s));
- Parrot_str_titlecase_inplace(interp, dest);
- return dest;
- }
-}
-
-
-/*
-
-=item C<void Parrot_str_titlecase_inplace(PARROT_INTERP, STRING *s)>
-
-Converts the specified Parrot string to title case.
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_str_titlecase_inplace(PARROT_INTERP, ARGMOD_NULLOK(STRING *s))
-{
- ASSERT_ARGS(Parrot_str_titlecase_inplace)
- if (STRING_IS_NULL(s)) {
+ if (STRING_IS_NULL(s))
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNEXPECTED_NULL,
"Can't titlecase NULL string");
- }
else {
- Parrot_str_write_COW(interp, s);
- CHARSET_TITLECASE(interp, s);
+ STRING * res = CHARSET_TITLECASE(interp, s);
+ res->hashval = 0;
+ return res;
}
}
@@ -3246,7 +2847,7 @@
Parrot_string_cstring(SHIM_INTERP, ARGIN(const STRING *str))
{
ASSERT_ARGS(Parrot_string_cstring)
- /* TODO handle NUL and friends */
+ /* TODO handle NULL and friends */
return str->strstart;
}
@@ -3271,6 +2872,7 @@
ARGIN(const STRING *s), UINTVAL offset)
{
ASSERT_ARGS(Parrot_str_is_cclass)
+
if (!Parrot_str_byte_length(interp, s))
return 0;
@@ -3297,12 +2899,14 @@
UINTVAL offset, UINTVAL count)
{
ASSERT_ARGS(Parrot_str_find_cclass)
- if (!s)
+
+ if (STRING_IS_NULL(s))
return -1;
return CHARSET_FIND_CCLASS(interp, flags, s, offset, count);
}
+
/*
=item C<INTVAL Parrot_str_find_not_cclass(PARROT_INTERP, INTVAL flags, STRING
@@ -3324,7 +2928,8 @@
ARGIN_NULLOK(STRING *s), UINTVAL offset, UINTVAL count)
{
ASSERT_ARGS(Parrot_str_find_not_cclass)
- if (!s)
+
+ if (STRING_IS_NULL(s))
return -1;
return CHARSET_FIND_NOT_CCLASS(interp, flags, s, offset, count);
@@ -3334,10 +2939,10 @@
/*
=item C<STRING* Parrot_str_change_charset(PARROT_INTERP, STRING *src, INTVAL
-charset_nr, STRING *dest)>
+charset_nr)>
-If C<dest> == NULL, converts C<src> to the given charset or encoding inplace.
-Otherwise returns a copy of C<src> with the charset/encoding in C<dest>.
+Converts C<src> to the given charset or encoding and returns the result as a
+new string.
=cut
@@ -3348,13 +2953,13 @@
PARROT_CAN_RETURN_NULL
STRING*
Parrot_str_change_charset(PARROT_INTERP, ARGMOD_NULLOK(STRING *src),
- INTVAL charset_nr, ARGOUT_NULLOK(STRING *dest))
+ INTVAL charset_nr)
{
ASSERT_ARGS(Parrot_str_change_charset)
const CHARSET *new_charset;
- if (!src)
- return NULL;
+ if (STRING_IS_NULL(src))
+ return STRINGNULL;
new_charset = Parrot_get_charset(interp, charset_nr);
@@ -3362,41 +2967,20 @@
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_CHARTYPE,
"charset #%d not found", (int) charset_nr);
- /*
- * dest is an empty string header or NULL, if an inplace
- * operation is desired
- */
- if (dest) {
- if (new_charset == src->charset) {
- dest = Parrot_str_reuse_COW(interp, src, dest);
- dest->charset = new_charset;
- /* keep encoding */
- return dest;
- }
-
- dest->charset = new_charset;
-
- /* get prefered encoding for charset */
- dest->encoding = CHARSET_GET_PREFERRED_ENCODING(interp, dest);
- }
- else {
- if (new_charset == src->charset)
- return src;
-
- Parrot_str_write_COW(interp, src);
- }
+ if (new_charset == src->charset)
+ return src;
- return new_charset->to_charset(interp, src, dest);
+ return new_charset->to_charset(interp, src);
}
/*
=item C<STRING* Parrot_str_change_encoding(PARROT_INTERP, STRING *src, INTVAL
-encoding_nr, STRING *dest)>
+encoding_nr)>
-If C<dest> == NULL, converts C<src> to the given charset or encoding in place.
-Otherwise returns a copy of C<src> with the charset/encoding in C<dest>
+Converts C<src> to the given charset or encoding and returns the result as a
+new string.
=cut
@@ -3407,13 +2991,13 @@
PARROT_CAN_RETURN_NULL
STRING*
Parrot_str_change_encoding(PARROT_INTERP, ARGIN_NULLOK(STRING *src),
- INTVAL encoding_nr, ARGOUT_NULLOK(STRING *dest))
+ INTVAL encoding_nr)
{
ASSERT_ARGS(Parrot_str_change_encoding)
const ENCODING *new_encoding;
- if (!src)
- return NULL;
+ if (STRING_IS_NULL(src))
+ return STRINGNULL;
new_encoding = Parrot_get_encoding(interp, encoding_nr);
@@ -3421,25 +3005,10 @@
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_CHARTYPE,
"encoding #%d not found", (int) encoding_nr);
- /*
- * dest is an empty string header or NULL, if an inplace
- * operation is desired
- */
- if (dest) {
- dest->encoding = new_encoding;
- if (new_encoding == src->encoding) {
- dest = Parrot_str_reuse_COW(interp, src, dest);
- return dest;
- }
- }
- else {
- if (new_encoding == src->encoding)
- return src;
-
- Parrot_str_write_COW(interp, src);
- }
+ if (new_encoding == src->encoding)
+ return src;
- return new_encoding->to_encoding(interp, src, dest);
+ return new_encoding->to_encoding(interp, src);
}
@@ -3460,7 +3029,8 @@
Parrot_str_compose(PARROT_INTERP, ARGIN_NULLOK(STRING *src))
{
ASSERT_ARGS(Parrot_str_compose)
- if (!src)
+
+ if (STRING_IS_NULL(src))
return NULL;
if (!src->strlen)
@@ -3488,24 +3058,105 @@
Parrot_str_join(PARROT_INTERP, ARGIN_NULLOK(STRING *j), ARGIN(PMC *ar))
{
ASSERT_ARGS(Parrot_str_join)
- STRING *res;
- STRING *s;
- const int ar_len = VTABLE_elements(interp, ar);
- int i;
+ STRING **chunks;
+ STRING *res;
+ STRING *s;
+ char *pos;
+ const int ar_len = VTABLE_elements(interp, ar);
+ int total_length = 0;
+ int transcoded = 0;
+ int i;
if (ar_len == 0)
return Parrot_str_new_noinit(interp, enum_stringrep_one, 0);
- s = VTABLE_get_string_keyed_int(interp, ar, 0);
- res = s ? Parrot_str_copy(interp, s) : NULL;
+ if (STRING_IS_NULL(j))
+ j = Parrot_str_new_noinit(interp, enum_stringrep_one, 0);
+
+ chunks = (STRING **)Parrot_gc_allocate_fixed_size_storage(interp,
+ ar_len * sizeof (STRING *));
+
+ for (i = 0; i < ar_len; ++i) {
+ STRING *next = VTABLE_get_string_keyed_int(interp, ar, i);
+
+ if (STRING_IS_NULL(next)) {
+ chunks[i] = STRINGNULL;
+ continue;
+ }
+
+ if (next->encoding != j->encoding) {
+ const ENCODING *e = j->encoding;
+
+ string_rep_compatible(interp, next, j, &e);
+ if (e == Parrot_fixed_8_encoding_ptr)
+ e = Parrot_utf8_encoding_ptr;
+ j = e->to_encoding(interp, j);
+ transcoded = 1;
+ }
+
+ chunks[i] = next;
+ total_length += next->bufused;
+ }
+
+ /* with the right charset, transcode any strings if necessary*/
+ if (transcoded) {
+ const CHARSET *c = j->charset;
+ const ENCODING *e = j->encoding;
+
+ for (i = 0; i < ar_len; ++i) {
+ STRING *s = chunks[i];
+
+ if (STRING_IS_NULL(s))
+ continue;
+
+ if (s->encoding != e || s->charset != c) {
+ STRING *new_s = e->to_encoding(interp, s);
+ chunks[i] = new_s;
+ total_length += s->bufused - new_s->bufused;
+ }
+ }
+ }
+
+ /* add the length of the separator, now that it's transcoded */
+ total_length += j->bufused * ar_len;
+
+ res = Parrot_gc_new_string_header(interp, 0);
+ Parrot_gc_allocate_string_storage(interp, res, total_length);
+
+ res->charset = j->charset;
+ res->encoding = j->encoding;
+
+ /* Iterate over chunks and append it to res */
+ pos = res->strstart;
+
+ /* Copy first chunk */
+ s = chunks[0];
+ if (!STRING_IS_NULL(s)) {
+ mem_sys_memcopy(pos, s->strstart, s->bufused);
+ pos += s->bufused;
+ }
for (i = 1; i < ar_len; ++i) {
- STRING * const next = VTABLE_get_string_keyed_int(interp, ar, i);
+ STRING *next = chunks[i];
+
+ if (STRING_IS_NULL(next))
+ continue;
+
+ mem_sys_memcopy(pos, j->strstart, j->bufused);
+ pos += j->bufused;
- res = Parrot_str_append(interp, res, j);
- res = Parrot_str_append(interp, res, next);
+ mem_sys_memcopy(pos, next->strstart, next->bufused);
+ pos += next->bufused;
+
+ PARROT_ASSERT(pos <= res->strstart + Buffer_buflen(res));
}
+ res->bufused = pos - res->strstart;
+ res->strlen = CHARSET_CODEPOINTS(interp, res);
+
+ Parrot_gc_free_fixed_size_storage(interp, ar_len * sizeof (STRING *),
+ chunks);
+
return res;
}
@@ -3515,8 +3166,8 @@
=item C<PMC* Parrot_str_split(PARROT_INTERP, STRING *delim, STRING *str)>
Splits the string C<str> at the delimiter C<delim>, returning a
-C<ResizableStringArray>, or his mapped type in the current HLL,
-of results. Returns PMCNULL if the string or the delimiter is NULL.
+C<ResizableStringArray>, or his mapped type in the current HLL, of results.
+Returns PMCNULL if the string or the delimiter is NULL.
=cut
@@ -3524,7 +3175,7 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
+PARROT_CAN_RETURN_NULL
PMC*
Parrot_str_split(PARROT_INTERP,
ARGIN_NULLOK(STRING *delim), ARGIN_NULLOK(STRING *str))
@@ -3536,7 +3187,8 @@
if (STRING_IS_NULL(delim) || STRING_IS_NULL(str))
return PMCNULL;
- res = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_ResizableStringArray));
+ res = Parrot_pmc_new(interp,
+ Parrot_get_ctx_HLL_type(interp, enum_class_ResizableStringArray));
slen = Parrot_str_byte_length(interp, str);
if (!slen)
@@ -3549,7 +3201,7 @@
VTABLE_set_integer_native(interp, res, slen);
for (i = 0; i < slen; ++i) {
- STRING * const p = Parrot_str_substr(interp, str, i, 1, NULL, 0);
+ STRING * const p = Parrot_str_substr(interp, str, i, 1);
VTABLE_set_string_keyed_int(interp, res, i, p);
}
@@ -3567,7 +3219,7 @@
while (ps <= slen) {
const int pl = pe - ps;
- STRING * const tstr = Parrot_str_substr(interp, str, ps, pl, NULL, 0);
+ STRING * const tstr = Parrot_str_substr(interp, str, ps, pl);
VTABLE_push_string(interp, res, tstr);
ps = pe + Parrot_str_byte_length(interp, delim);
@@ -3609,6 +3261,7 @@
unsigned int base, int minus)
{
ASSERT_ARGS(Parrot_str_from_uint)
+
/* the buffer must be at least as long as this */
char *p = tc + sizeof (UHUGEINTVAL)*8 + 1;
const char * const tail = p;
@@ -3617,12 +3270,12 @@
do {
const char cur = (char)(num % base);
- if (cur < 10) {
+
+ if (cur < 10)
*--p = (char)('0' + cur);
- }
- else {
+ else
*--p = (char)('a' + cur - 10);
- }
+
} while (num /= base);
if (minus)
@@ -3661,6 +3314,7 @@
return Parrot_str_from_uint(interp, tc, (UHUGEINTVAL)num, base, is_neg);
}
+
/*
=back
Modified: branches/avl_string_cache/src/string/charset.c
==============================================================================
--- branches/avl_string_cache/src/string/charset.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/charset.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -29,16 +29,16 @@
#include "charset/iso-8859-1.h"
#include "charset/unicode.h"
-CHARSET *Parrot_iso_8859_1_charset_ptr;
-CHARSET *Parrot_binary_charset_ptr;
-CHARSET *Parrot_default_charset_ptr;
-CHARSET *Parrot_unicode_charset_ptr;
-CHARSET *Parrot_ascii_charset_ptr;
+const CHARSET *Parrot_iso_8859_1_charset_ptr;
+const CHARSET *Parrot_binary_charset_ptr;
+const CHARSET *Parrot_default_charset_ptr;
+const CHARSET *Parrot_unicode_charset_ptr;
+const CHARSET *Parrot_ascii_charset_ptr;
/* all registered charsets are collected in one global structure */
typedef struct To_converter {
- NOTNULL(CHARSET *to);
+ NOTNULL(const CHARSET *to);
NOTNULL(charset_converter_t func);
} To_converter;
@@ -97,7 +97,7 @@
*/
PARROT_EXPORT
-PARROT_CAN_RETURN_NULL
+PARROT_CANNOT_RETURN_NULL
PARROT_MALLOC
CHARSET *
Parrot_new_charset(PARROT_INTERP)
@@ -168,7 +168,8 @@
/*
-=item C<CHARSET * Parrot_load_charset(PARROT_INTERP, const char *charsetname)>
+=item C<const CHARSET * Parrot_load_charset(PARROT_INTERP, const char
+*charsetname)>
Throws an exception (Can't load charsets dynamically yet. https://trac.parrot.org/parrot/wiki/StringsTasklist).
@@ -179,7 +180,7 @@
PARROT_EXPORT
PARROT_CAN_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
-CHARSET *
+const CHARSET *
Parrot_load_charset(PARROT_INTERP, ARGIN(const char *charsetname))
{
ASSERT_ARGS(Parrot_load_charset)
@@ -243,7 +244,7 @@
/*
-=item C<STRING* Parrot_charset_name(PARROT_INTERP, INTVAL number_of_charset)>
+=item C<STRING * Parrot_charset_name(PARROT_INTERP, INTVAL number_of_charset)>
Returns the name of the charset given by the INTVAL index
C<number_of_charset>.
@@ -255,12 +256,12 @@
PARROT_EXPORT
PARROT_CAN_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
-STRING*
+STRING *
Parrot_charset_name(SHIM_INTERP, INTVAL number_of_charset)
{
ASSERT_ARGS(Parrot_charset_name)
if (number_of_charset < 0 || number_of_charset >= all_charsets->n_charsets)
- return NULL;
+ return STRINGNULL;
return all_charsets->set[number_of_charset].name;
}
@@ -509,7 +510,7 @@
/*
=item C<INTVAL Parrot_make_default_charset(PARROT_INTERP, const char
-*charsetname, CHARSET *charset)>
+*charsetname, const CHARSET *charset)>
Sets the current default charset to C<charset> with name C<charsetname>.
@@ -520,7 +521,7 @@
PARROT_EXPORT
INTVAL
Parrot_make_default_charset(SHIM_INTERP, SHIM(const char *charsetname),
- ARGIN(CHARSET *charset))
+ ARGIN(const CHARSET *charset))
{
ASSERT_ARGS(Parrot_make_default_charset)
Parrot_default_charset_ptr = charset;
@@ -587,7 +588,7 @@
/*
=item C<void Parrot_register_charset_converter(PARROT_INTERP, const CHARSET
-*lhs, CHARSET *rhs, charset_converter_t func)>
+*lhs, const CHARSET *rhs, charset_converter_t func)>
Registers a converter C<func> from charset C<lhs> to C<rhs>.
@@ -598,7 +599,7 @@
PARROT_EXPORT
void
Parrot_register_charset_converter(PARROT_INTERP,
- ARGIN(const CHARSET *lhs), ARGIN(CHARSET *rhs),
+ ARGIN(const CHARSET *lhs), ARGIN(const CHARSET *rhs),
ARGIN(charset_converter_t func))
{
ASSERT_ARGS(Parrot_register_charset_converter)
Modified: branches/avl_string_cache/src/string/charset/ascii.c
==============================================================================
--- branches/avl_string_cache/src/string/charset/ascii.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/charset/ascii.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2004-2009, Parrot Foundation.
+Copyright (C) 2004-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -42,10 +42,15 @@
__attribute__nonnull__(2)
FUNC_MODIFIES(*src);
-static void downcase(SHIM_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* downcase(PARROT_INTERP, ARGIN(const STRING *source_string))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void downcase_first(SHIM_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* downcase_first(PARROT_INTERP,
+ ARGIN(const STRING *source_string))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_WARN_UNUSED_RESULT
@@ -73,56 +78,41 @@
__attribute__nonnull__(1)
__attribute__nonnull__(3);
-static void set_graphemes(PARROT_INTERP,
- ARGIN(STRING *source_string),
- UINTVAL offset,
- UINTVAL replace_count,
- ARGMOD(STRING *insert_string))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(5)
- FUNC_MODIFIES(*insert_string);
-
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
static STRING * string_from_codepoint(PARROT_INTERP, UINTVAL codepoint)
__attribute__nonnull__(1);
-static void titlecase(SHIM_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* titlecase(PARROT_INTERP, ARGIN(const STRING *source_string))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void titlecase_first(SHIM_INTERP, ARGMOD(STRING *source_string))
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*source_string);
-
PARROT_CANNOT_RETURN_NULL
-static STRING * to_ascii(PARROT_INTERP,
- ARGIN(STRING *src),
- ARGMOD_NULLOK(STRING *dest))
+static STRING* titlecase_first(PARROT_INTERP,
+ ARGIN(const STRING *source_string))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*dest);
+ __attribute__nonnull__(2);
PARROT_CANNOT_RETURN_NULL
-static STRING * to_charset(PARROT_INTERP,
- ARGIN(STRING *src),
- ARGIN_NULLOK(STRING *dest))
+static STRING * to_ascii(PARROT_INTERP, ARGIN(STRING *src))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_CANNOT_RETURN_NULL
-static STRING * to_unicode(PARROT_INTERP,
- ARGMOD(STRING *src),
- ARGMOD_NULLOK(STRING *dest))
+static STRING * to_charset(PARROT_INTERP, ARGIN(STRING *src))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*src)
- FUNC_MODIFIES(*dest);
+ __attribute__nonnull__(2);
-static void upcase(SHIM_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* upcase(PARROT_INTERP, ARGIN(const STRING *source_string))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void upcase_first(SHIM_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* upcase_first(PARROT_INTERP,
+ ARGIN(const STRING *source_string))
+ __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_WARN_UNUSED_RESULT
@@ -137,9 +127,11 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
#define ASSERT_ARGS_downcase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(source_string))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(source_string))
#define ASSERT_ARGS_downcase_first __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(source_string))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(source_string))
#define ASSERT_ARGS_find_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(source_string))
@@ -149,29 +141,26 @@
#define ASSERT_ARGS_is_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(source_string))
-#define ASSERT_ARGS_set_graphemes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(source_string) \
- , PARROT_ASSERT_ARG(insert_string))
#define ASSERT_ARGS_string_from_codepoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_titlecase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(source_string))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(source_string))
#define ASSERT_ARGS_titlecase_first __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(source_string))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(source_string))
#define ASSERT_ARGS_to_ascii __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
#define ASSERT_ARGS_to_charset __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_to_unicode __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(src))
#define ASSERT_ARGS_upcase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(source_string))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(source_string))
#define ASSERT_ARGS_upcase_first __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(source_string))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(source_string))
#define ASSERT_ARGS_validate __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
@@ -202,53 +191,7 @@
/*
-=item C<static void set_graphemes(PARROT_INTERP, STRING *source_string, UINTVAL
-offset, UINTVAL replace_count, STRING *insert_string)>
-
-Sets the graphemes for C<source_string>, starting at C<offset>. Replace
-C<replace_count> graphemes with those from STRING C<insert_string>.
-
-=cut
-
-*/
-
-static void
-set_graphemes(PARROT_INTERP, ARGIN(STRING *source_string),
- UINTVAL offset, UINTVAL replace_count, ARGMOD(STRING *insert_string))
-{
- ASSERT_ARGS(set_graphemes)
- ENCODING_SET_BYTES(interp, source_string, offset,
- replace_count, insert_string);
-
-}
-
-/*
-
-=item C<STRING * ascii_get_graphemes_inplace(PARROT_INTERP, STRING
-*source_string, UINTVAL offset, UINTVAL count, STRING *dest_string)>
-
-Retrieves the graphemes in place for ascii STRING C<source_string>,
-starting at C<offset>. Retrieves C<count> graphemes and puts them
-into C<dest_string>.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-STRING *
-ascii_get_graphemes_inplace(PARROT_INTERP, ARGIN(STRING *source_string),
- UINTVAL offset, UINTVAL count, ARGMOD(STRING *dest_string))
-{
- ASSERT_ARGS(ascii_get_graphemes_inplace)
- return ENCODING_GET_BYTES_INPLACE(interp, source_string,
- offset, count, dest_string);
-}
-
-/*
-
-=item C<static STRING * to_ascii(PARROT_INTERP, STRING *src, STRING *dest)>
+=item C<static STRING * to_ascii(PARROT_INTERP, STRING *src)>
Attempts to convert STRING C<src> to ASCII in STRING C<dest>. Throws
an exception if unconvertable UNICODE characters are involved.
@@ -259,7 +202,7 @@
PARROT_CANNOT_RETURN_NULL
static STRING *
-to_ascii(PARROT_INTERP, ARGIN(STRING *src), ARGMOD_NULLOK(STRING *dest))
+to_ascii(PARROT_INTERP, ARGIN(STRING *src))
{
ASSERT_ARGS(to_ascii)
String_iter iter;
@@ -267,13 +210,9 @@
unsigned char *p;
const UINTVAL len = src->strlen;
- if (dest) {
- Parrot_gc_reallocate_string_storage(interp, dest, len);
- }
- else {
- /* the string can't grow - replace inplace */
- dest = src;
- }
+ /* the string can't grow. Just clone it */
+ STRING * dest = Parrot_str_clone(interp, src);
+
p = (unsigned char *)dest->strstart;
ENCODING_ITER_INIT(interp, src, &iter);
for (offs = 0; offs < len; ++offs) {
@@ -292,35 +231,7 @@
/*
-=item C<static STRING * to_unicode(PARROT_INTERP, STRING *src, STRING *dest)>
-
-Converts the ASCII STRING C<src> to UNICODE STRING C<dest>.
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-static STRING *
-to_unicode(PARROT_INTERP, ARGMOD(STRING *src), ARGMOD_NULLOK(STRING *dest))
-{
- ASSERT_ARGS(to_unicode)
- if (dest) {
- dest->charset = Parrot_unicode_charset_ptr;
- dest->encoding = CHARSET_GET_PREFERRED_ENCODING(interp, dest);
- Parrot_gc_reallocate_string_storage(interp, dest, src->strlen);
- return dest;
- }
- else {
- src->charset = Parrot_unicode_charset_ptr;
- src->encoding = CHARSET_GET_PREFERRED_ENCODING(interp, src);
- return src;
- }
-}
-
-/*
-
-=item C<static STRING * to_charset(PARROT_INTERP, STRING *src, STRING *dest)>
+=item C<static STRING * to_charset(PARROT_INTERP, STRING *src)>
Converts STRING C<src> to ASCII charset STRING C<dest>.
@@ -330,17 +241,17 @@
PARROT_CANNOT_RETURN_NULL
static STRING *
-to_charset(PARROT_INTERP, ARGIN(STRING *src), ARGIN_NULLOK(STRING *dest))
+to_charset(PARROT_INTERP, ARGIN(STRING *src))
{
ASSERT_ARGS(to_charset)
const charset_converter_t conversion_func =
Parrot_find_charset_converter(interp, src->charset, Parrot_ascii_charset_ptr);
if (conversion_func) {
- return conversion_func(interp, src, dest);
+ return conversion_func(interp, src);
}
else {
- return to_ascii(interp, src, dest);
+ return to_ascii(interp, src);
}
}
@@ -361,7 +272,7 @@
compose(PARROT_INTERP, ARGIN(STRING *src))
{
ASSERT_ARGS(compose)
- return Parrot_str_copy(interp, src);
+ return src;
}
/* A noop. can't decompose ascii */
@@ -381,12 +292,12 @@
decompose(PARROT_INTERP, ARGMOD(STRING *src))
{
ASSERT_ARGS(decompose)
- return Parrot_str_copy(interp, src);
+ return src;
}
/*
-=item C<static void upcase(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* upcase(PARROT_INTERP, const STRING *source_string)>
Converts the STRING C<source_string> to all uppercase.
@@ -394,25 +305,29 @@
*/
-static void
-upcase(SHIM_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+upcase(PARROT_INTERP, ARGIN(const STRING *source_string))
{
ASSERT_ARGS(upcase)
+ STRING * const result = Parrot_str_clone(interp, source_string);
const UINTVAL n = source_string->strlen;
if (n) {
- char * const buffer = source_string->strstart;
+ char * const buffer = result->strstart;
UINTVAL offset;
for (offset = 0; offset < n; offset++) {
buffer[offset] = (char)toupper((unsigned char)buffer[offset]);
}
}
+
+ return result;
}
/*
-=item C<static void downcase(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* downcase(PARROT_INTERP, const STRING *source_string)>
Converts the STRING C<source_string> to all lower-case.
@@ -420,25 +335,29 @@
*/
-static void
-downcase(SHIM_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+downcase(PARROT_INTERP, ARGIN(const STRING *source_string))
{
ASSERT_ARGS(downcase)
- const UINTVAL n = source_string->strlen;
+ STRING *result = Parrot_str_clone(interp, source_string);
+ const UINTVAL n = source_string->strlen;
if (n) {
- char * const buffer = source_string->strstart;
+ char * const buffer = result->strstart;
UINTVAL offset;
for (offset = 0; offset < n; offset++) {
buffer[offset] = (char)tolower((unsigned char)buffer[offset]);
}
}
+
+ return result;
}
/*
-=item C<static void titlecase(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* titlecase(PARROT_INTERP, const STRING *source_string)>
Converts the STRING given by C<source_string> to title case, where
the first character is upper case and all the rest of the characters
@@ -448,14 +367,16 @@
*/
-static void
-titlecase(SHIM_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+titlecase(PARROT_INTERP, ARGIN(const STRING *source_string))
{
ASSERT_ARGS(titlecase)
- const UINTVAL n = source_string->strlen;
+ STRING *result = Parrot_str_clone(interp, source_string);
+ const UINTVAL n = source_string->strlen;
if (n) {
- char * const buffer = source_string->strstart;
+ char * const buffer = result->strstart;
UINTVAL offset;
buffer[0] = (char)toupper((unsigned char)buffer[0]);
@@ -463,11 +384,13 @@
buffer[offset] = (char)tolower((unsigned char)buffer[offset]);
}
}
+
+ return result;
}
/*
-=item C<static void upcase_first(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* upcase_first(PARROT_INTERP, const STRING *source_string)>
Sets the first character in the STRING C<source_string> to upper case,
but doesn't modify the rest of the string.
@@ -476,19 +399,25 @@
*/
-static void
-upcase_first(SHIM_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+upcase_first(PARROT_INTERP, ARGIN(const STRING *source_string))
{
ASSERT_ARGS(upcase_first)
- if (source_string->strlen) {
- char * const buffer = source_string->strstart;
+ STRING *result = Parrot_str_clone(interp, source_string);
+
+ if (result->strlen) {
+ char * const buffer = result->strstart;
buffer[0] = (char)toupper((unsigned char)buffer[0]);
}
+
+ return result;
}
/*
-=item C<static void downcase_first(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* downcase_first(PARROT_INTERP, const STRING
+*source_string)>
Sets the first character of the STRING C<source_string> to lowercase,
but doesn't modify the rest of the characters.
@@ -497,19 +426,25 @@
*/
-static void
-downcase_first(SHIM_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+downcase_first(PARROT_INTERP, ARGIN(const STRING *source_string))
{
ASSERT_ARGS(downcase_first)
- if (source_string->strlen) {
- char * const buffer = source_string->strstart;
+ STRING *result = Parrot_str_clone(interp, source_string);
+
+ if (result->strlen) {
+ char * const buffer = result->strstart;
buffer[0] = (char)tolower((unsigned char)buffer[0]);
}
+
+ return result;
}
/*
-=item C<static void titlecase_first(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* titlecase_first(PARROT_INTERP, const STRING
+*source_string)>
Converts the first letter of STRING C<source_string> to upper case,
but doesn't modify the rest of the string.
@@ -518,14 +453,19 @@
*/
-static void
-titlecase_first(SHIM_INTERP, ARGMOD(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+titlecase_first(PARROT_INTERP, ARGIN(const STRING *source_string))
{
ASSERT_ARGS(titlecase_first)
- if (source_string->strlen) {
- char * const buffer = source_string->strstart;
+ STRING *result = Parrot_str_clone(interp, source_string);
+
+ if (result->strlen) {
+ char * const buffer = result->strstart;
buffer[0] = (char)toupper((unsigned char)buffer[0]);
}
+
+ return result;
}
/*
@@ -550,8 +490,7 @@
const UINTVAL min_len = l_len > r_len ? r_len : l_len;
String_iter iter;
- if (lhs->encoding == Parrot_fixed_8_encoding_ptr &&
- rhs->encoding == Parrot_fixed_8_encoding_ptr) {
+ if (lhs->encoding == rhs->encoding) {
const int ret_val = memcmp(lhs->strstart, rhs->strstart, min_len);
if (ret_val)
return ret_val < 0 ? -1 : 1;
@@ -856,7 +795,7 @@
/*
-=item C<const CHARSET * Parrot_charset_ascii_init(PARROT_INTERP)>
+=item C<void Parrot_charset_ascii_init(PARROT_INTERP)>
Initialize the ASCII charset but registering all the necessary
function pointers and settings.
@@ -865,8 +804,7 @@
*/
-PARROT_CANNOT_RETURN_NULL
-const CHARSET *
+void
Parrot_charset_ascii_init(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_charset_ascii_init)
@@ -874,8 +812,6 @@
static const CHARSET base_set = {
"ascii",
ascii_get_graphemes,
- ascii_get_graphemes_inplace,
- set_graphemes,
to_charset,
compose,
decompose,
@@ -900,13 +836,13 @@
STRUCT_COPY_FROM_STRUCT(return_set, base_set);
return_set->preferred_encoding = Parrot_fixed_8_encoding_ptr;
Parrot_register_charset(interp, "ascii", return_set);
- return return_set;
+
+ return;
}
/*
-=item C<STRING * charset_cvt_ascii_to_binary(PARROT_INTERP, STRING *src, STRING
-*dest)>
+=item C<STRING * charset_cvt_ascii_to_binary(PARROT_INTERP, STRING *src)>
Converts an ASCII STRING C<src> to a binary STRING C<dest>.
@@ -916,29 +852,24 @@
PARROT_CANNOT_RETURN_NULL
STRING *
-charset_cvt_ascii_to_binary(PARROT_INTERP, ARGIN(STRING *src), ARGIN_NULLOK(STRING *dest))
+charset_cvt_ascii_to_binary(PARROT_INTERP, ARGIN(STRING *src))
{
ASSERT_ARGS(charset_cvt_ascii_to_binary)
- if (dest) {
- UINTVAL offs;
+ STRING *dest = Parrot_str_clone(interp, src);
+ UINTVAL offs;
- Parrot_gc_reallocate_string_storage(interp, dest, src->strlen);
- dest->bufused = src->bufused;
- dest->strlen = src->strlen;
- for (offs = 0; offs < src->strlen; ++offs) {
- const UINTVAL c = ENCODING_GET_BYTE(interp, src, offs);
- ENCODING_SET_BYTE(interp, dest, offs, c);
- }
- return dest;
+ for (offs = 0; offs < src->strlen; ++offs) {
+ const UINTVAL c = ENCODING_GET_BYTE(interp, src, offs);
+ ENCODING_SET_BYTE(interp, dest, offs, c);
}
- src->charset = Parrot_binary_charset_ptr;
- return src;
+
+ dest->charset = Parrot_binary_charset_ptr;
+ return dest;
}
/*
-=item C<STRING * charset_cvt_ascii_to_iso_8859_1(PARROT_INTERP, STRING *src,
-STRING *dest)>
+=item C<STRING * charset_cvt_ascii_to_iso_8859_1(PARROT_INTERP, STRING *src)>
Converts ASCII STRING C<src> to ISO8859-1 STRING C<dest>.
@@ -948,24 +879,19 @@
PARROT_CANNOT_RETURN_NULL
STRING *
-charset_cvt_ascii_to_iso_8859_1(PARROT_INTERP, ARGIN(STRING *src),
- ARGIN_NULLOK(STRING *dest))
+charset_cvt_ascii_to_iso_8859_1(PARROT_INTERP, ARGIN(STRING *src))
{
ASSERT_ARGS(charset_cvt_ascii_to_iso_8859_1)
- if (dest) {
- UINTVAL offs;
+ STRING * dest = Parrot_str_clone(interp, src);
+ UINTVAL offs;
- Parrot_gc_reallocate_string_storage(interp, dest, src->strlen);
- dest->bufused = src->bufused;
- dest->strlen = src->strlen;
- for (offs = 0; offs < src->strlen; ++offs) {
- const UINTVAL c = ENCODING_GET_BYTE(interp, src, offs);
- ENCODING_SET_BYTE(interp, dest, offs, c);
- }
- return dest;
+ for (offs = 0; offs < src->strlen; ++offs) {
+ const UINTVAL c = ENCODING_GET_BYTE(interp, src, offs);
+ ENCODING_SET_BYTE(interp, dest, offs, c);
}
- src->charset = Parrot_iso_8859_1_charset_ptr;
- return src;
+
+ dest->charset = Parrot_iso_8859_1_charset_ptr;
+ return dest;
}
/*
Modified: branches/avl_string_cache/src/string/charset/ascii.h
==============================================================================
--- branches/avl_string_cache/src/string/charset/ascii.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/charset/ascii.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -61,29 +61,13 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-STRING * ascii_get_graphemes_inplace(PARROT_INTERP,
- ARGIN(STRING *source_string),
- UINTVAL offset,
- UINTVAL count,
- ARGMOD(STRING *dest_string))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(5)
- FUNC_MODIFIES(*dest_string);
-
PARROT_CANNOT_RETURN_NULL
-STRING * charset_cvt_ascii_to_binary(PARROT_INTERP,
- ARGIN(STRING *src),
- ARGIN_NULLOK(STRING *dest))
+STRING * charset_cvt_ascii_to_binary(PARROT_INTERP, ARGIN(STRING *src))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_CANNOT_RETURN_NULL
-STRING * charset_cvt_ascii_to_iso_8859_1(PARROT_INTERP,
- ARGIN(STRING *src),
- ARGIN_NULLOK(STRING *dest))
+STRING * charset_cvt_ascii_to_iso_8859_1(PARROT_INTERP, ARGIN(STRING *src))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -96,8 +80,7 @@
__attribute__nonnull__(2)
__attribute__nonnull__(3);
-PARROT_CANNOT_RETURN_NULL
-const CHARSET * Parrot_charset_ascii_init(PARROT_INTERP)
+void Parrot_charset_ascii_init(PARROT_INTERP)
__attribute__nonnull__(1);
#define ASSERT_ARGS_ascii_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -117,10 +100,6 @@
#define ASSERT_ARGS_ascii_get_graphemes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(source_string))
-#define ASSERT_ARGS_ascii_get_graphemes_inplace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(source_string) \
- , PARROT_ASSERT_ARG(dest_string))
#define ASSERT_ARGS_charset_cvt_ascii_to_binary __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
Modified: branches/avl_string_cache/src/string/charset/binary.c
==============================================================================
--- branches/avl_string_cache/src/string/charset/binary.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/charset/binary.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -51,10 +51,13 @@
static STRING* decompose(PARROT_INTERP, SHIM(STRING *source_string))
__attribute__nonnull__(1);
-static void downcase(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* downcase(PARROT_INTERP, SHIM(const STRING *source_string))
__attribute__nonnull__(1);
-static void downcase_first(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* downcase_first(PARROT_INTERP,
+ SHIM(const STRING *source_string))
__attribute__nonnull__(1);
static INTVAL find_cclass(SHIM_INTERP,
@@ -74,37 +77,31 @@
SHIM(const STRING *source_string),
SHIM(UINTVAL offset));
-static void set_graphemes(PARROT_INTERP,
- ARGIN(STRING *source_string),
- UINTVAL offset,
- UINTVAL replace_count,
- ARGMOD(STRING *insert_string))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(5)
- FUNC_MODIFIES(*insert_string);
-
PARROT_CANNOT_RETURN_NULL
static STRING * string_from_codepoint(PARROT_INTERP, UINTVAL codepoint)
__attribute__nonnull__(1);
-static void titlecase(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* titlecase(PARROT_INTERP, SHIM(const STRING *source_string))
__attribute__nonnull__(1);
-static void titlecase_first(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* titlecase_first(PARROT_INTERP,
+ SHIM(const STRING *source_string))
__attribute__nonnull__(1);
PARROT_CANNOT_RETURN_NULL
-static STRING* to_charset(PARROT_INTERP,
- ARGIN(STRING *src),
- ARGIN_NULLOK(STRING *dest))
+static STRING* to_charset(PARROT_INTERP, ARGIN(STRING *src))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void upcase(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* upcase(PARROT_INTERP, SHIM(const STRING *source_string))
__attribute__nonnull__(1);
-static void upcase_first(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* upcase_first(PARROT_INTERP,
+ SHIM(const STRING *source_string))
__attribute__nonnull__(1);
static UINTVAL validate(SHIM_INTERP, SHIM(STRING *source_string));
@@ -124,10 +121,6 @@
#define ASSERT_ARGS_find_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_find_not_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_is_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_set_graphemes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(source_string) \
- , PARROT_ASSERT_ARG(insert_string))
#define ASSERT_ARGS_string_from_codepoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_titlecase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -152,31 +145,10 @@
#define EXCEPTION(err, str) \
Parrot_ex_throw_from_c_args(interp, NULL, (err), (str))
-/*
-
-=item C<static void set_graphemes(PARROT_INTERP, STRING *source_string, UINTVAL
-offset, UINTVAL replace_count, STRING *insert_string)>
-
-Sets the graphemes for STRING C<source_string>, starting at offset
-C<offset>. Replaces C<replace_count> graphemes from STRING
-C<insert_string>.
-
-=cut
-
-*/
-
-static void
-set_graphemes(PARROT_INTERP, ARGIN(STRING *source_string),
- UINTVAL offset, UINTVAL replace_count, ARGMOD(STRING *insert_string))
-{
- ASSERT_ARGS(set_graphemes)
- ENCODING_SET_BYTES(interp, source_string, offset,
- replace_count, insert_string);
-}
/*
-=item C<static STRING* to_charset(PARROT_INTERP, STRING *src, STRING *dest)>
+=item C<static STRING* to_charset(PARROT_INTERP, STRING *src)>
Converts the STRING C<src> to STRING C<dest> in binary mode. Throws
an exception if a suitable conversion function is not found.
@@ -187,14 +159,14 @@
PARROT_CANNOT_RETURN_NULL
static STRING*
-to_charset(PARROT_INTERP, ARGIN(STRING *src), ARGIN_NULLOK(STRING *dest))
+to_charset(PARROT_INTERP, ARGIN(STRING *src))
{
ASSERT_ARGS(to_charset)
charset_converter_t conversion_func =
Parrot_find_charset_converter(interp, src->charset, Parrot_binary_charset_ptr);
if (conversion_func)
- return conversion_func(interp, src, dest);
+ return conversion_func(interp, src);
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
"to_charset for binary not implemented");
@@ -240,7 +212,7 @@
/*
-=item C<static void upcase(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* upcase(PARROT_INTERP, const STRING *source_string)>
Throws an exception because we cannot convert a binary string to
upper case.
@@ -249,8 +221,9 @@
*/
-static void
-upcase(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+upcase(PARROT_INTERP, SHIM(const STRING *source_string))
{
ASSERT_ARGS(upcase)
EXCEPTION(EXCEPTION_INVALID_CHARTYPE, "Can't upcase binary data");
@@ -258,7 +231,7 @@
/*
-=item C<static void downcase(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* downcase(PARROT_INTERP, const STRING *source_string)>
Throws an exception because we cannot convert a binary string to
lower-case.
@@ -267,8 +240,9 @@
*/
-static void
-downcase(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+downcase(PARROT_INTERP, SHIM(const STRING *source_string))
{
ASSERT_ARGS(downcase)
EXCEPTION(EXCEPTION_INVALID_CHARTYPE, "Can't downcase binary data");
@@ -276,7 +250,7 @@
/*
-=item C<static void titlecase(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* titlecase(PARROT_INTERP, const STRING *source_string)>
Throws an exception because we cannot convert a binary string to
title case.
@@ -285,8 +259,9 @@
*/
-static void
-titlecase(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+titlecase(PARROT_INTERP, SHIM(const STRING *source_string))
{
ASSERT_ARGS(titlecase)
EXCEPTION(EXCEPTION_INVALID_CHARTYPE, "Can't titlecase binary data");
@@ -294,7 +269,7 @@
/*
-=item C<static void upcase_first(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* upcase_first(PARROT_INTERP, const STRING *source_string)>
Throws an exception because we cannot set the first "character" of the
binary string to uppercase.
@@ -303,8 +278,9 @@
*/
-static void
-upcase_first(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+upcase_first(PARROT_INTERP, SHIM(const STRING *source_string))
{
ASSERT_ARGS(upcase_first)
EXCEPTION(EXCEPTION_INVALID_CHARTYPE, "Can't upcase binary data");
@@ -312,7 +288,8 @@
/*
-=item C<static void downcase_first(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* downcase_first(PARROT_INTERP, const STRING
+*source_string)>
Throws an exception because we cannot set the first "character"
of the binary string to lowercase.
@@ -321,8 +298,9 @@
*/
-static void
-downcase_first(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+downcase_first(PARROT_INTERP, SHIM(const STRING *source_string))
{
ASSERT_ARGS(downcase_first)
EXCEPTION(EXCEPTION_INVALID_CHARTYPE, "Can't downcase binary data");
@@ -330,7 +308,8 @@
/*
-=item C<static void titlecase_first(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* titlecase_first(PARROT_INTERP, const STRING
+*source_string)>
Throws an exception because we can't convert the first "character"
of binary data to title case.
@@ -339,8 +318,9 @@
*/
-static void
-titlecase_first(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+titlecase_first(PARROT_INTERP, SHIM(const STRING *source_string))
{
ASSERT_ARGS(titlecase_first)
EXCEPTION(EXCEPTION_INVALID_CHARTYPE, "Can't titlecase binary data");
@@ -500,7 +480,7 @@
/*
-=item C<const CHARSET * Parrot_charset_binary_init(PARROT_INTERP)>
+=item C<void Parrot_charset_binary_init(PARROT_INTERP)>
Initialize the binary charset, including function pointers and
settings.
@@ -509,8 +489,7 @@
*/
-PARROT_CANNOT_RETURN_NULL
-const CHARSET *
+void
Parrot_charset_binary_init(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_charset_binary_init)
@@ -518,8 +497,6 @@
static const CHARSET base_set = {
"binary",
ascii_get_graphemes,
- ascii_get_graphemes_inplace,
- set_graphemes,
to_charset,
compose,
decompose,
@@ -544,7 +521,8 @@
STRUCT_COPY_FROM_STRUCT(return_set, base_set);
return_set->preferred_encoding = Parrot_fixed_8_encoding_ptr;
Parrot_register_charset(interp, "binary", return_set);
- return return_set;
+
+ return;
}
Modified: branches/avl_string_cache/src/string/charset/binary.h
==============================================================================
--- branches/avl_string_cache/src/string/charset/binary.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/charset/binary.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -16,8 +16,7 @@
/* HEADERIZER BEGIN: src/string/charset/binary.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-PARROT_CANNOT_RETURN_NULL
-const CHARSET * Parrot_charset_binary_init(PARROT_INTERP)
+void Parrot_charset_binary_init(PARROT_INTERP)
__attribute__nonnull__(1);
#define ASSERT_ARGS_Parrot_charset_binary_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/avl_string_cache/src/string/charset/iso-8859-1.c
==============================================================================
--- branches/avl_string_cache/src/string/charset/iso-8859-1.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/charset/iso-8859-1.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -35,11 +35,14 @@
static STRING* decompose(PARROT_INTERP, SHIM(STRING *src))
__attribute__nonnull__(1);
-static void downcase(PARROT_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* downcase(PARROT_INTERP, ARGIN(const STRING *source_string))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void downcase_first(PARROT_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* downcase_first(PARROT_INTERP,
+ ARGIN(const STRING *source_string))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -66,57 +69,45 @@
__attribute__nonnull__(1)
__attribute__nonnull__(3);
-static void set_graphemes(PARROT_INTERP,
- ARGIN(STRING *source_string),
- UINTVAL offset,
- UINTVAL replace_count,
- ARGMOD(STRING *insert_string))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(5)
- FUNC_MODIFIES(*insert_string);
-
PARROT_CANNOT_RETURN_NULL
static STRING * string_from_codepoint(PARROT_INTERP, UINTVAL codepoint)
__attribute__nonnull__(1);
-static void titlecase(PARROT_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* titlecase(PARROT_INTERP, ARGIN(const STRING *source_string))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void titlecase_first(PARROT_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* titlecase_first(PARROT_INTERP,
+ ARGIN(const STRING *source_string))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
-static STRING * to_charset(PARROT_INTERP,
- ARGIN(STRING *src),
- ARGIN_NULLOK(STRING *dest))
+static STRING * to_charset(PARROT_INTERP, ARGIN(STRING *src))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_CANNOT_RETURN_NULL
-static STRING * to_iso_8859_1(PARROT_INTERP,
- ARGIN(STRING *src),
- ARGMOD_NULLOK(STRING *dest))
+static STRING * to_iso_8859_1(PARROT_INTERP, ARGIN(STRING *src))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*dest);
+ __attribute__nonnull__(2);
PARROT_CANNOT_RETURN_NULL
-static STRING * to_unicode(PARROT_INTERP,
- ARGIN(STRING *src),
- ARGMOD_NULLOK(STRING *dest))
+static STRING * to_unicode(PARROT_INTERP, ARGIN(STRING *src))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*dest);
+ __attribute__nonnull__(2);
-static void upcase(PARROT_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* upcase(PARROT_INTERP, ARGIN(const STRING *source_string))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void upcase_first(PARROT_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* upcase_first(PARROT_INTERP,
+ ARGIN(const STRING *source_string))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -144,10 +135,6 @@
#define ASSERT_ARGS_is_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(source_string))
-#define ASSERT_ARGS_set_graphemes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(source_string) \
- , PARROT_ASSERT_ARG(insert_string))
#define ASSERT_ARGS_string_from_codepoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_titlecase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -181,28 +168,7 @@
/*
-=item C<static void set_graphemes(PARROT_INTERP, STRING *source_string, UINTVAL
-offset, UINTVAL replace_count, STRING *insert_string)>
-
-Sets C<replace_count> graphemes in STRING C<source_string> starting at offset C<offset>.
-Gets the replacement graphemes from STRING C<insert_string>.
-
-=cut
-
-*/
-
-static void
-set_graphemes(PARROT_INTERP, ARGIN(STRING *source_string),
- UINTVAL offset, UINTVAL replace_count, ARGMOD(STRING *insert_string))
-{
- ASSERT_ARGS(set_graphemes)
- ENCODING_SET_BYTES(interp, source_string, offset,
- replace_count, insert_string);
-}
-
-/*
-
-=item C<static STRING * to_iso_8859_1(PARROT_INTERP, STRING *src, STRING *dest)>
+=item C<static STRING * to_iso_8859_1(PARROT_INTERP, STRING *src)>
Converts STRING C<src> to iso-8859-1 in STRING C<dest>.
@@ -212,22 +178,16 @@
PARROT_CANNOT_RETURN_NULL
static STRING *
-to_iso_8859_1(PARROT_INTERP, ARGIN(STRING *src), ARGMOD_NULLOK(STRING *dest))
+to_iso_8859_1(PARROT_INTERP, ARGIN(STRING *src))
{
ASSERT_ARGS(to_iso_8859_1)
UINTVAL offs, src_len;
String_iter iter;
+ /* iso-8859-1 is never bigger then source */
+ STRING * dest = Parrot_str_clone(interp, src);
ENCODING_ITER_INIT(interp, src, &iter);
src_len = src->strlen;
- if (dest) {
- Parrot_gc_reallocate_string_storage(interp, dest, src_len);
- dest->strlen = src_len;
- }
- else {
- /* iso-8859-1 is never bigger then source */
- dest = src;
- }
dest->bufused = src_len;
dest->charset = Parrot_iso_8859_1_charset_ptr;
dest->encoding = Parrot_fixed_8_encoding_ptr;
@@ -244,7 +204,7 @@
/*
-=item C<static STRING * to_unicode(PARROT_INTERP, STRING *src, STRING *dest)>
+=item C<static STRING * to_unicode(PARROT_INTERP, STRING *src)>
Converts STRING C<src> to unicode STRING C<dest>.
@@ -254,40 +214,37 @@
PARROT_CANNOT_RETURN_NULL
static STRING *
-to_unicode(PARROT_INTERP, ARGIN(STRING *src), ARGMOD_NULLOK(STRING *dest))
+to_unicode(PARROT_INTERP, ARGIN(STRING *src))
{
ASSERT_ARGS(to_unicode)
- if (dest) {
- UINTVAL offs;
- String_iter iter;
-
- dest->charset = Parrot_unicode_charset_ptr;
- dest->encoding = CHARSET_GET_PREFERRED_ENCODING(interp, dest);
- Parrot_gc_reallocate_string_storage(interp, dest, src->strlen);
- ENCODING_ITER_INIT(interp, dest, &iter);
- for (offs = 0; offs < src->strlen; ++offs) {
- const UINTVAL c = ENCODING_GET_BYTE(interp, src, offs);
-
- if (iter.bytepos >= Buffer_buflen(dest) - 4) {
- UINTVAL need = (UINTVAL)((src->strlen - offs) * 1.5);
- if (need < 16)
- need = 16;
- Parrot_gc_reallocate_string_storage(interp, dest,
- Buffer_buflen(dest) + need);
- }
- iter.set_and_advance(interp, &iter, c);
+ STRING * dest = Parrot_str_clone(interp, src);
+ UINTVAL offs;
+ String_iter iter;
+
+ dest->charset = Parrot_unicode_charset_ptr;
+ dest->encoding = CHARSET_GET_PREFERRED_ENCODING(interp, dest);
+ Parrot_gc_reallocate_string_storage(interp, dest, src->strlen);
+ ENCODING_ITER_INIT(interp, dest, &iter);
+ for (offs = 0; offs < src->strlen; ++offs) {
+ const UINTVAL c = ENCODING_GET_BYTE(interp, src, offs);
+
+ if (iter.bytepos >= Buffer_buflen(dest) - 4) {
+ UINTVAL need = (UINTVAL)((src->strlen - offs) * 1.5);
+ if (need < 16)
+ need = 16;
+ Parrot_gc_reallocate_string_storage(interp, dest,
+ Buffer_buflen(dest) + need);
}
- dest->bufused = iter.bytepos;
- dest->strlen = iter.charpos;
- return dest;
+ iter.set_and_advance(interp, &iter, c);
}
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
- "to_unicode inplace for iso-8859-1 not implemented");
+ dest->bufused = iter.bytepos;
+ dest->strlen = iter.charpos;
+ return dest;
}
/*
-=item C<static STRING * to_charset(PARROT_INTERP, STRING *src, STRING *dest)>
+=item C<static STRING * to_charset(PARROT_INTERP, STRING *src)>
Converts the STRING C<src> to an ISO-8859-1 STRING C<dest>.
@@ -298,16 +255,16 @@
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
static STRING *
-to_charset(PARROT_INTERP, ARGIN(STRING *src), ARGIN_NULLOK(STRING *dest))
+to_charset(PARROT_INTERP, ARGIN(STRING *src))
{
ASSERT_ARGS(to_charset)
const charset_converter_t conversion_func =
Parrot_find_charset_converter(interp, src->charset, Parrot_iso_8859_1_charset_ptr);
if (conversion_func)
- return conversion_func(interp, src, dest);
+ return conversion_func(interp, src);
else
- return to_iso_8859_1(interp, src, dest);
+ return to_iso_8859_1(interp, src);
}
@@ -329,7 +286,7 @@
compose(PARROT_INTERP, ARGIN(STRING *src))
{
ASSERT_ARGS(compose)
- return Parrot_str_copy(interp, src);
+ return src;
}
/*
@@ -353,7 +310,7 @@
/*
-=item C<static void upcase(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* upcase(PARROT_INTERP, const STRING *source_string)>
Convert all graphemes in the STRING C<source_string> to upper case, for those
graphemes that support cases.
@@ -362,19 +319,20 @@
*/
-static void
-upcase(PARROT_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+upcase(PARROT_INTERP, ARGIN(const STRING *source_string))
{
ASSERT_ARGS(upcase)
unsigned char *buffer;
- UINTVAL offset = 0;
+ UINTVAL offset = 0;
+ STRING *result = Parrot_str_clone(interp, source_string);
- if (!source_string->strlen)
- return;
+ if (!result->strlen)
+ return result;
- Parrot_str_write_COW(interp, source_string);
- buffer = (unsigned char *)source_string->strstart;
- for (offset = 0; offset < source_string->strlen; offset++) {
+ buffer = (unsigned char *)result->strstart;
+ for (offset = 0; offset < result->strlen; offset++) {
unsigned int c = buffer[offset]; /* XXX use encoding ? */
if (c >= 0xe0 && c != 0xf7)
c &= ~0x20;
@@ -382,11 +340,13 @@
c = toupper((unsigned char)c);
buffer[offset] = (unsigned char)c;
}
+
+ return result;
}
/*
-=item C<static void downcase(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* downcase(PARROT_INTERP, const STRING *source_string)>
Converts all graphemes in STRING C<source_string> to lower-case, for those graphemes
that support cases.
@@ -395,30 +355,34 @@
*/
-static void
-downcase(PARROT_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+downcase(PARROT_INTERP, ARGIN(const STRING *source_string))
{
ASSERT_ARGS(downcase)
- if (source_string->strlen) {
- UINTVAL offset;
- unsigned char *buffer;
-
- Parrot_str_write_COW(interp, source_string);
- buffer = (unsigned char *)source_string->strstart;
- for (offset = 0; offset < source_string->strlen; offset++) {
- unsigned int c = buffer[offset];
- if (c >= 0xc0 && c != 0xd7 && c <= 0xde)
- c |= 0x20;
- else
- c = tolower((unsigned char)c);
- buffer[offset] = (unsigned char)c;
- }
+ unsigned char *buffer;
+ UINTVAL offset = 0;
+ STRING *result = Parrot_str_clone(interp, source_string);
+
+ if (!result->strlen)
+ return result;
+
+ buffer = (unsigned char *)result->strstart;
+ for (offset = 0; offset < result->strlen; offset++) {
+ unsigned int c = buffer[offset];
+ if (c >= 0xc0 && c != 0xd7 && c <= 0xde)
+ c |= 0x20;
+ else
+ c = tolower((unsigned char)c);
+ buffer[offset] = (unsigned char)c;
}
+
+ return result;
}
/*
-=item C<static void titlecase(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* titlecase(PARROT_INTERP, const STRING *source_string)>
Converts the graphemes in STRING C<source_string> to title case, for those graphemes
that support cases.
@@ -427,19 +391,20 @@
*/
-static void
-titlecase(PARROT_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+titlecase(PARROT_INTERP, ARGIN(const STRING *source_string))
{
ASSERT_ARGS(titlecase)
unsigned char *buffer;
- unsigned int c;
- UINTVAL offset;
+ unsigned int c;
+ UINTVAL offset;
+ STRING *result = Parrot_str_clone(interp, source_string);
- if (!source_string->strlen)
- return;
+ if (!result->strlen)
+ return result;
- Parrot_str_write_COW(interp, source_string);
- buffer = (unsigned char *)source_string->strstart;
+ buffer = (unsigned char *)result->strstart;
c = buffer[0];
if (c >= 0xe0 && c != 0xf7)
c &= ~0x20;
@@ -447,7 +412,7 @@
c = toupper((unsigned char)c);
buffer[0] = (unsigned char)c;
- for (offset = 1; offset < source_string->strlen; offset++) {
+ for (offset = 1; offset < result->strlen; offset++) {
c = buffer[offset];
if (c >= 0xc0 && c != 0xd7 && c <= 0xde)
c |= 0x20;
@@ -455,11 +420,13 @@
c = tolower((unsigned char)c);
buffer[offset] = (unsigned char)c;
}
+
+ return result;
}
/*
-=item C<static void upcase_first(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* upcase_first(PARROT_INTERP, const STRING *source_string)>
Converts the first grapheme in STRING C<source_string> to upper case, if it
supports cases.
@@ -468,28 +435,33 @@
*/
-static void
-upcase_first(PARROT_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+upcase_first(PARROT_INTERP, ARGIN(const STRING *source_string))
{
ASSERT_ARGS(upcase_first)
- if (source_string->strlen) {
- unsigned char *buffer;
- unsigned int c;
-
- Parrot_str_write_COW(interp, source_string);
- buffer = (unsigned char *)source_string->strstart;
- c = buffer[0];
- if (c >= 0xe0 && c != 0xf7)
- c &= ~0x20;
- else
- c = toupper((unsigned char)c);
- buffer[0] = (unsigned char)c;
- }
+ unsigned char *buffer;
+ unsigned int c;
+ STRING *result = Parrot_str_clone(interp, source_string);
+
+ if (!result->strlen)
+ return result;
+
+ buffer = (unsigned char *)result->strstart;
+ c = buffer[0];
+ if (c >= 0xe0 && c != 0xf7)
+ c &= ~0x20;
+ else
+ c = toupper((unsigned char)c);
+ buffer[0] = (unsigned char)c;
+
+ return result;
}
/*
-=item C<static void downcase_first(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* downcase_first(PARROT_INTERP, const STRING
+*source_string)>
Converts the first character of the STRING C<source_string> to lower case, if the
grapheme supports lower case.
@@ -498,28 +470,33 @@
*/
-static void
-downcase_first(PARROT_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+downcase_first(PARROT_INTERP, ARGIN(const STRING *source_string))
{
ASSERT_ARGS(downcase_first)
- if (source_string->strlen) {
- unsigned char *buffer;
- unsigned int c;
-
- Parrot_str_write_COW(interp, source_string);
- buffer = (unsigned char *)source_string->strstart;
- c = buffer[0];
- if (c >= 0xc0 && c != 0xd7 && c <= 0xde)
- c &= ~0x20;
- else
- c = tolower((unsigned char)c);
- buffer[0] = (unsigned char)c;
- }
+ unsigned char *buffer;
+ unsigned int c;
+ STRING *result = Parrot_str_clone(interp, source_string);
+
+ if (!result->strlen)
+ return result;
+
+ buffer = (unsigned char *)result->strstart;
+ c = buffer[0];
+ if (c >= 0xc0 && c != 0xd7 && c <= 0xde)
+ c &= ~0x20;
+ else
+ c = tolower((unsigned char)c);
+ buffer[0] = (unsigned char)c;
+
+ return result;
}
/*
-=item C<static void titlecase_first(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* titlecase_first(PARROT_INTERP, const STRING
+*source_string)>
Converts the first grapheme in STRING C<source_string> to title case, if the grapheme
supports case.
@@ -528,11 +505,12 @@
*/
-static void
-titlecase_first(PARROT_INTERP, ARGIN(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+titlecase_first(PARROT_INTERP, ARGIN(const STRING *source_string))
{
ASSERT_ARGS(titlecase_first)
- upcase_first(interp, source_string);
+ return upcase_first(interp, source_string);
}
@@ -662,7 +640,7 @@
/*
-=item C<const CHARSET * Parrot_charset_iso_8859_1_init(PARROT_INTERP)>
+=item C<void Parrot_charset_iso_8859_1_init(PARROT_INTERP)>
Initializes the ISO-8859-1 charset by installing all the necessary function pointers.
@@ -670,8 +648,7 @@
*/
-PARROT_CANNOT_RETURN_NULL
-const CHARSET *
+void
Parrot_charset_iso_8859_1_init(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_charset_iso_8859_1_init)
@@ -679,8 +656,6 @@
static const CHARSET base_set = {
"iso-8859-1",
ascii_get_graphemes,
- ascii_get_graphemes_inplace,
- set_graphemes,
to_charset,
compose,
decompose,
@@ -705,13 +680,13 @@
STRUCT_COPY_FROM_STRUCT(return_set, base_set);
return_set->preferred_encoding = Parrot_fixed_8_encoding_ptr;
Parrot_register_charset(interp, "iso-8859-1", return_set);
- return return_set;
+
+ return;
}
/*
-=item C<STRING * charset_cvt_iso_8859_1_to_ascii(PARROT_INTERP, STRING *src,
-STRING *dest)>
+=item C<STRING * charset_cvt_iso_8859_1_to_ascii(PARROT_INTERP, STRING *src)>
Converts STRING C<src> in ISO-8859-1 to ASCII STRING C<dest>.
@@ -722,29 +697,21 @@
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
STRING *
-charset_cvt_iso_8859_1_to_ascii(PARROT_INTERP, ARGIN(STRING *src),
- ARGMOD_NULLOK(STRING *dest))
+charset_cvt_iso_8859_1_to_ascii(PARROT_INTERP, ARGIN(STRING *src))
{
ASSERT_ARGS(charset_cvt_iso_8859_1_to_ascii)
UINTVAL offs;
- if (dest) {
- Parrot_gc_reallocate_string_storage(interp, dest, src->strlen);
- dest->bufused = src->bufused;
- dest->strlen = src->strlen;
- }
+ STRING *dest = Parrot_str_clone(interp, src);
+
for (offs = 0; offs < src->strlen; ++offs) {
UINTVAL c = ENCODING_GET_BYTE(interp, src, offs);
if (c >= 0x80)
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LOSSY_CONVERSION,
"lossy conversion to ascii");
- if (dest)
- ENCODING_SET_BYTE(interp, dest, offs, c);
+ ENCODING_SET_BYTE(interp, dest, offs, c);
}
- if (dest)
- return dest;
- src->charset = Parrot_ascii_charset_ptr;
- return src;
+ return dest;
}
/*
Modified: branches/avl_string_cache/src/string/charset/iso-8859-1.h
==============================================================================
--- branches/avl_string_cache/src/string/charset/iso-8859-1.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/charset/iso-8859-1.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -18,15 +18,11 @@
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
-STRING * charset_cvt_iso_8859_1_to_ascii(PARROT_INTERP,
- ARGIN(STRING *src),
- ARGMOD_NULLOK(STRING *dest))
+STRING * charset_cvt_iso_8859_1_to_ascii(PARROT_INTERP, ARGIN(STRING *src))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*dest);
+ __attribute__nonnull__(2);
-PARROT_CANNOT_RETURN_NULL
-const CHARSET * Parrot_charset_iso_8859_1_init(PARROT_INTERP)
+void Parrot_charset_iso_8859_1_init(PARROT_INTERP)
__attribute__nonnull__(1);
#define ASSERT_ARGS_charset_cvt_iso_8859_1_to_ascii \
Modified: branches/avl_string_cache/src/string/charset/unicode.c
==============================================================================
--- branches/avl_string_cache/src/string/charset/unicode.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/charset/unicode.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -54,11 +54,14 @@
static STRING* decompose(PARROT_INTERP, SHIM(STRING *src))
__attribute__nonnull__(1);
-static void downcase(PARROT_INTERP, ARGIN(STRING *src))
+PARROT_CANNOT_RETURN_NULL
+static STRING* downcase(PARROT_INTERP, ARGIN(const STRING *src))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void downcase_first(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* downcase_first(PARROT_INTERP,
+ SHIM(const STRING *source_string))
__attribute__nonnull__(1);
static INTVAL find_cclass(PARROT_INTERP,
@@ -85,17 +88,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-PARROT_CANNOT_RETURN_NULL
-static STRING * get_graphemes_inplace(PARROT_INTERP,
- ARGIN(STRING *source_string),
- UINTVAL offset,
- UINTVAL count,
- ARGMOD(STRING *dest_string))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(5)
- FUNC_MODIFIES(*dest_string);
-
static INTVAL is_cclass(PARROT_INTERP,
INTVAL flags,
ARGIN(const STRING *source_string),
@@ -103,42 +95,36 @@
__attribute__nonnull__(1)
__attribute__nonnull__(3);
-static void set_graphemes(PARROT_INTERP,
- ARGIN(STRING *source_string),
- UINTVAL offset,
- UINTVAL replace_count,
- ARGMOD(STRING *insert_string))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(5)
- FUNC_MODIFIES(*insert_string);
-
PARROT_CANNOT_RETURN_NULL
static STRING * string_from_codepoint(PARROT_INTERP, UINTVAL codepoint)
__attribute__nonnull__(1);
-static void titlecase(PARROT_INTERP, ARGIN(STRING *src))
+PARROT_CANNOT_RETURN_NULL
+static STRING* titlecase(PARROT_INTERP, ARGIN(const STRING *src))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void titlecase_first(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* titlecase_first(PARROT_INTERP,
+ SHIM(const STRING *source_string))
__attribute__nonnull__(1);
PARROT_CANNOT_RETURN_NULL
-static STRING* to_charset(PARROT_INTERP,
- ARGIN(STRING *src),
- ARGIN_NULLOK(STRING *dest))
+static STRING* to_charset(PARROT_INTERP, ARGIN(STRING *src))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
static int u_iscclass(PARROT_INTERP, UINTVAL codepoint, INTVAL flags)
__attribute__nonnull__(1);
-static void upcase(PARROT_INTERP, ARGIN(STRING *src))
+PARROT_CANNOT_RETURN_NULL
+static STRING* upcase(PARROT_INTERP, ARGIN(const STRING *src))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void upcase_first(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING* upcase_first(PARROT_INTERP,
+ SHIM(const STRING *source_string))
__attribute__nonnull__(1);
static UINTVAL validate(PARROT_INTERP, ARGIN(STRING *src))
@@ -173,17 +159,9 @@
#define ASSERT_ARGS_get_graphemes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(source_string))
-#define ASSERT_ARGS_get_graphemes_inplace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(source_string) \
- , PARROT_ASSERT_ARG(dest_string))
#define ASSERT_ARGS_is_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(source_string))
-#define ASSERT_ARGS_set_graphemes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(source_string) \
- , PARROT_ASSERT_ARG(insert_string))
#define ASSERT_ARGS_string_from_codepoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_titlecase __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -223,27 +201,6 @@
#define UNIMPL EXCEPTION(EXCEPTION_UNIMPLEMENTED, "unimplemented unicode")
-/*
-
-=item C<static void set_graphemes(PARROT_INTERP, STRING *source_string, UINTVAL
-offset, UINTVAL replace_count, STRING *insert_string)>
-
-Sets C<replace_count> graphemes in STRING C<source_string> starting at offset
-C<offset>. Gets the graphemes to be replaced from STRING C<insert_string>.
-
-=cut
-
-*/
-
-static void
-set_graphemes(PARROT_INTERP, ARGIN(STRING *source_string),
- UINTVAL offset, UINTVAL replace_count, ARGMOD(STRING *insert_string))
-{
- ASSERT_ARGS(set_graphemes)
- ENCODING_SET_CODEPOINTS(interp, source_string, offset,
- replace_count, insert_string);
-}
-
/*
@@ -269,30 +226,7 @@
/*
-=item C<static STRING * get_graphemes_inplace(PARROT_INTERP, STRING
-*source_string, UINTVAL offset, UINTVAL count, STRING *dest_string)>
-
-Gets C<count> graphemes in place from STRING C<source_string> starting at
-offset C<offset>. Puts them into STRING C<dest_string>.
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-static STRING *
-get_graphemes_inplace(PARROT_INTERP, ARGIN(STRING *source_string),
- UINTVAL offset, UINTVAL count, ARGMOD(STRING *dest_string))
-{
- ASSERT_ARGS(get_graphemes_inplace)
- return ENCODING_GET_CODEPOINTS_INPLACE(interp, source_string,
- offset, count, dest_string);
-}
-
-
-/*
-
-=item C<static STRING* to_charset(PARROT_INTERP, STRING *src, STRING *dest)>
+=item C<static STRING* to_charset(PARROT_INTERP, STRING *src)>
Converts input STRING C<src> to unicode STRING C<dest>.
@@ -302,7 +236,7 @@
PARROT_CANNOT_RETURN_NULL
static STRING*
-to_charset(PARROT_INTERP, ARGIN(STRING *src), ARGIN_NULLOK(STRING *dest))
+to_charset(PARROT_INTERP, ARGIN(STRING *src))
{
ASSERT_ARGS(to_charset)
const charset_converter_t conversion_func =
@@ -310,9 +244,9 @@
Parrot_unicode_charset_ptr);
if (conversion_func)
- return conversion_func(interp, src, dest);
+ return conversion_func(interp, src);
- return Parrot_utf8_encoding_ptr->to_encoding(interp, src, dest);
+ return Parrot_utf8_encoding_ptr->to_encoding(interp, src);
}
@@ -401,7 +335,7 @@
/*
-=item C<static void upcase(PARROT_INTERP, STRING *src)>
+=item C<static STRING* upcase(PARROT_INTERP, const STRING *src)>
Converts the STRING C<src> to all upper-case graphemes, for those characters
which support upper-case versions.
@@ -412,23 +346,25 @@
*/
-static void
-upcase(PARROT_INTERP, ARGIN(STRING *src))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+upcase(PARROT_INTERP, ARGIN(const STRING *src))
{
ASSERT_ARGS(upcase)
#if PARROT_HAS_ICU
UErrorCode err;
int dest_len, src_len, needed;
+ STRING *res;
#endif
if (src->bufused == src->strlen
&& src->encoding == Parrot_utf8_encoding_ptr) {
- Parrot_ascii_charset_ptr->upcase(interp, src);
- return;
+ return Parrot_ascii_charset_ptr->upcase(interp, src);
}
#if PARROT_HAS_ICU
- src = Parrot_utf16_encoding_ptr->to_encoding(interp, src, NULL);
+ /* to_encoding will allocate new string */
+ res = Parrot_utf16_encoding_ptr->to_encoding(interp, src);
/*
U_CAPI int32_t U_EXPORT2
u_strToUpper(UChar *dest, int32_t destCapacity,
@@ -440,8 +376,8 @@
/* use all available space - see below XXX */
/* TODO downcase, titlecase too */
- dest_len = Buffer_buflen(src) / sizeof (UChar);
- src_len = src->bufused / sizeof (UChar);
+ dest_len = Buffer_buflen(res) / sizeof (UChar);
+ src_len = res->bufused / sizeof (UChar);
/*
* XXX troubles:
@@ -460,33 +396,35 @@
* TODO downcase, titlecase
*/
needed = u_strToUpper(NULL, 0,
- (UChar *)src->strstart, src_len,
+ (UChar *)res->strstart, src_len,
NULL, /* locale = default */
&err);
if (needed > dest_len) {
- Parrot_gc_reallocate_string_storage(interp, src, needed * sizeof (UChar));
+ Parrot_gc_reallocate_string_storage(interp, res, needed * sizeof (UChar));
dest_len = needed;
}
err = U_ZERO_ERROR;
- dest_len = u_strToUpper((UChar *)src->strstart, dest_len,
- (UChar *)src->strstart, src_len,
+ dest_len = u_strToUpper((UChar *)res->strstart, dest_len,
+ (UChar *)res->strstart, src_len,
NULL, /* locale = default */
&err);
PARROT_ASSERT(U_SUCCESS(err));
- src->bufused = dest_len * sizeof (UChar);
+ res->bufused = dest_len * sizeof (UChar);
/* downgrade if possible */
if (dest_len == (int)src->strlen)
- src->encoding = Parrot_ucs2_encoding_ptr;
+ res->encoding = Parrot_ucs2_encoding_ptr;
else {
/* string is likely still ucs2 if it was earlier
* but strlen changed due to combining char
*/
- src->strlen = dest_len;
+ res->strlen = dest_len;
}
+ return res;
+
#else
UNUSED(src);
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
@@ -497,7 +435,7 @@
/*
-=item C<static void downcase(PARROT_INTERP, STRING *src)>
+=item C<static STRING* downcase(PARROT_INTERP, const STRING *src)>
Converts all graphemes to lower-case, for those graphemes which have cases.
@@ -507,23 +445,25 @@
*/
-static void
-downcase(PARROT_INTERP, ARGIN(STRING *src))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+downcase(PARROT_INTERP, ARGIN(const STRING *src))
{
ASSERT_ARGS(downcase)
#if PARROT_HAS_ICU
UErrorCode err;
int dest_len, src_len;
+ STRING *res;
#endif
if (src->bufused == src->strlen
&& src->encoding == Parrot_utf8_encoding_ptr) {
- Parrot_ascii_charset_ptr->downcase(interp, src);
- return;
+ return Parrot_ascii_charset_ptr->downcase(interp, src);
}
#if PARROT_HAS_ICU
- src = Parrot_utf16_encoding_ptr->to_encoding(interp, src, NULL);
+ /* to_encoding will allocate new string */
+ res = Parrot_utf16_encoding_ptr->to_encoding(interp, src);
/*
U_CAPI int32_t U_EXPORT2
u_strToLower(UChar *dest, int32_t destCapacity,
@@ -532,26 +472,29 @@
UErrorCode *pErrorCode);
*/
err = U_ZERO_ERROR;
- src_len = src->bufused / sizeof (UChar);
- dest_len = u_strToLower((UChar *)src->strstart, src_len,
- (UChar *)src->strstart, src_len,
+ src_len = res->bufused / sizeof (UChar);
+ dest_len = u_strToLower((UChar *)res->strstart, src_len,
+ (UChar *)res->strstart, src_len,
NULL, /* locale = default */
&err);
- src->bufused = dest_len * sizeof (UChar);
+ res->bufused = dest_len * sizeof (UChar);
if (!U_SUCCESS(err)) {
err = U_ZERO_ERROR;
- Parrot_gc_reallocate_string_storage(interp, src, src->bufused);
- dest_len = u_strToLower((UChar *)src->strstart, dest_len,
- (UChar *)src->strstart, src_len,
+ Parrot_gc_reallocate_string_storage(interp, res, res->bufused);
+ dest_len = u_strToLower((UChar *)res->strstart, dest_len,
+ (UChar *)res->strstart, src_len,
NULL, /* locale = default */
&err);
PARROT_ASSERT(U_SUCCESS(err));
}
/* downgrade if possible */
- if (dest_len == (int)src->strlen)
- src->encoding = Parrot_ucs2_encoding_ptr;
+ if (dest_len == (int)res->strlen)
+ res->encoding = Parrot_ucs2_encoding_ptr;
+
+ return res;
+
#else
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
"no ICU lib loaded");
@@ -561,7 +504,7 @@
/*
-=item C<static void titlecase(PARROT_INTERP, STRING *src)>
+=item C<static STRING* titlecase(PARROT_INTERP, const STRING *src)>
Converts the string to title case, for those characters which support cases.
@@ -571,22 +514,24 @@
*/
-static void
-titlecase(PARROT_INTERP, ARGIN(STRING *src))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+titlecase(PARROT_INTERP, ARGIN(const STRING *src))
{
ASSERT_ARGS(titlecase)
#if PARROT_HAS_ICU
UErrorCode err;
int dest_len, src_len;
+ STRING *res;
if (src->bufused == src->strlen
&& src->encoding == Parrot_utf8_encoding_ptr) {
- Parrot_ascii_charset_ptr->titlecase(interp, src);
- return;
+ return Parrot_ascii_charset_ptr->titlecase(interp, src);
}
- src = Parrot_utf16_encoding_ptr->to_encoding(interp, src, NULL);
+ /* to_encoding will allocate new string */
+ res = Parrot_utf16_encoding_ptr->to_encoding(interp, src);
/*
U_CAPI int32_t U_EXPORT2
@@ -598,27 +543,30 @@
*/
err = U_ZERO_ERROR;
- src_len = src->bufused / sizeof (UChar);
- dest_len = u_strToTitle((UChar *)src->strstart, src_len,
- (UChar *)src->strstart, src_len,
+ src_len = res->bufused / sizeof (UChar);
+ dest_len = u_strToTitle((UChar *)res->strstart, src_len,
+ (UChar *)res->strstart, src_len,
NULL, /* default titleiter */
NULL, /* locale = default */
&err);
- src->bufused = dest_len * sizeof (UChar);
+ res->bufused = dest_len * sizeof (UChar);
if (!U_SUCCESS(err)) {
err = U_ZERO_ERROR;
- Parrot_gc_reallocate_string_storage(interp, src, src->bufused);
- dest_len = u_strToTitle((UChar *)src->strstart, dest_len,
- (UChar *)src->strstart, src_len,
+ Parrot_gc_reallocate_string_storage(interp, res, res->bufused);
+ dest_len = u_strToTitle((UChar *)res->strstart, dest_len,
+ (UChar *)res->strstart, src_len,
NULL, NULL,
&err);
PARROT_ASSERT(U_SUCCESS(err));
}
/* downgrade if possible */
- if (dest_len == (int)src->strlen)
- src->encoding = Parrot_ucs2_encoding_ptr;
+ if (dest_len == (int)res->strlen)
+ res->encoding = Parrot_ucs2_encoding_ptr;
+
+ return res;
+
#else
UNUSED(src);
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
@@ -629,7 +577,7 @@
/*
-=item C<static void upcase_first(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* upcase_first(PARROT_INTERP, const STRING *source_string)>
Converts the first grapheme in the STRING C<source_string> to uppercase, if the
grapheme supports it. Not implemented.
@@ -638,8 +586,9 @@
*/
-static void
-upcase_first(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+upcase_first(PARROT_INTERP, SHIM(const STRING *source_string))
{
ASSERT_ARGS(upcase_first)
/* TODO: https://trac.parrot.org/parrot/wiki/StringsTasklist Implement this. */
@@ -649,7 +598,8 @@
/*
-=item C<static void downcase_first(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* downcase_first(PARROT_INTERP, const STRING
+*source_string)>
Converts the first grapheme in the STRING C<source_string> to lower-case, if
the grapheme supports it. Not implemented
@@ -658,8 +608,9 @@
*/
-static void
-downcase_first(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+downcase_first(PARROT_INTERP, SHIM(const STRING *source_string))
{
ASSERT_ARGS(downcase_first)
/* TODO: https://trac.parrot.org/parrot/wiki/StringsTasklist Implement this. */
@@ -669,7 +620,8 @@
/*
-=item C<static void titlecase_first(PARROT_INTERP, STRING *source_string)>
+=item C<static STRING* titlecase_first(PARROT_INTERP, const STRING
+*source_string)>
Converts the first grapheme in STRING C<source_string> to title case, if the
string supports it. Not implemented.
@@ -678,8 +630,9 @@
*/
-static void
-titlecase_first(PARROT_INTERP, SHIM(STRING *source_string))
+PARROT_CANNOT_RETURN_NULL
+static STRING*
+titlecase_first(PARROT_INTERP, SHIM(const STRING *source_string))
{
ASSERT_ARGS(titlecase_first)
/* TODO: https://trac.parrot.org/parrot/wiki/StringsTasklist Implement this. */
@@ -1064,7 +1017,7 @@
/*
-=item C<const CHARSET * Parrot_charset_unicode_init(PARROT_INTERP)>
+=item C<void Parrot_charset_unicode_init(PARROT_INTERP)>
Initializes the Unicode charset by installing all the necessary function
pointers.
@@ -1073,8 +1026,7 @@
*/
-PARROT_CANNOT_RETURN_NULL
-const CHARSET *
+void
Parrot_charset_unicode_init(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_charset_unicode_init)
@@ -1082,8 +1034,6 @@
static const CHARSET base_set = {
"unicode",
get_graphemes,
- get_graphemes_inplace,
- set_graphemes,
to_charset,
compose,
decompose,
@@ -1115,7 +1065,8 @@
*/
return_set->preferred_encoding = Parrot_utf8_encoding_ptr;
Parrot_register_charset(interp, "unicode", return_set);
- return return_set;
+
+ return;
}
Modified: branches/avl_string_cache/src/string/charset/unicode.h
==============================================================================
--- branches/avl_string_cache/src/string/charset/unicode.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/charset/unicode.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -21,8 +21,7 @@
/* HEADERIZER BEGIN: src/string/charset/unicode.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-PARROT_CANNOT_RETURN_NULL
-const CHARSET * Parrot_charset_unicode_init(PARROT_INTERP)
+void Parrot_charset_unicode_init(PARROT_INTERP)
__attribute__nonnull__(1);
#define ASSERT_ARGS_Parrot_charset_unicode_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/avl_string_cache/src/string/encoding.c
==============================================================================
--- branches/avl_string_cache/src/string/encoding.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/encoding.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2004-2009, Parrot Foundation.
+Copyright (C) 2004-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -114,6 +114,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
const ENCODING *
@@ -173,6 +174,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
INTVAL
Parrot_encoding_number(PARROT_INTERP, ARGIN(const STRING *encodingname))
@@ -199,6 +201,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
INTVAL
Parrot_encoding_number_of_str(SHIM_INTERP, ARGIN(const STRING *src))
@@ -226,6 +229,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
STRING*
@@ -250,6 +254,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
const ENCODING*
@@ -275,6 +280,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
const char *
@@ -428,6 +434,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
const ENCODING *
Modified: branches/avl_string_cache/src/string/encoding/fixed_8.c
==============================================================================
--- branches/avl_string_cache/src/string/encoding/fixed_8.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/encoding/fixed_8.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2004-2009, Parrot Foundation.
+Copyright (C) 2004-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -24,24 +24,20 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-static void become_encoding(PARROT_INTERP, SHIM(STRING *source_string))
- __attribute__nonnull__(1);
-
-static UINTVAL bytes(SHIM_INTERP, ARGIN(STRING *source_string))
+static UINTVAL bytes(SHIM_INTERP, ARGIN(const STRING *source_string))
__attribute__nonnull__(2);
-static UINTVAL codepoints(PARROT_INTERP, ARGIN(STRING *source_string))
+static UINTVAL codepoints(PARROT_INTERP, ARGIN(const STRING *source_string))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_WARN_UNUSED_RESULT
-static UINTVAL find_cclass(PARROT_INTERP,
+static UINTVAL find_cclass(SHIM_INTERP,
ARGIN(STRING *s),
ARGIN(const INTVAL *typetable),
INTVAL flags,
UINTVAL pos,
UINTVAL end)
- __attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3);
@@ -63,11 +59,15 @@
__attribute__nonnull__(2)
FUNC_MODIFIES(*iter);
+static size_t fixed_8_hash(SHIM_INTERP,
+ ARGIN(const STRING *s),
+ size_t hashval)
+ __attribute__nonnull__(2);
+
PARROT_WARN_UNUSED_RESULT
-static UINTVAL get_byte(PARROT_INTERP,
+static UINTVAL get_byte(SHIM_INTERP,
ARGIN(const STRING *source_string),
UINTVAL offset)
- __attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_WARN_UNUSED_RESULT
@@ -80,18 +80,6 @@
__attribute__nonnull__(2);
PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static STRING * get_bytes_inplace(PARROT_INTERP,
- ARGIN(STRING *source_string),
- UINTVAL offset,
- UINTVAL count,
- ARGMOD(STRING *return_string))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(5)
- FUNC_MODIFIES(*return_string);
-
-PARROT_WARN_UNUSED_RESULT
static UINTVAL get_codepoint(PARROT_INTERP,
ARGIN(const STRING *source_string),
UINTVAL offset)
@@ -107,18 +95,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static STRING * get_codepoints_inplace(PARROT_INTERP,
- ARGIN(STRING *source_string),
- UINTVAL offset,
- UINTVAL count,
- ARGMOD(STRING *dest_string))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(5)
- FUNC_MODIFIES(*dest_string);
-
static void iter_init(SHIM_INTERP,
ARGIN(const STRING *src),
ARGOUT(String_iter *iter))
@@ -133,50 +109,18 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void set_bytes(PARROT_INTERP,
- ARGIN(STRING *source_string),
- UINTVAL offset,
- UINTVAL count,
- ARGMOD(STRING *new_bytes))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(5)
- FUNC_MODIFIES(*new_bytes);
-
-static void set_codepoint(PARROT_INTERP,
- ARGIN(STRING *source_string),
- UINTVAL offset,
- UINTVAL codepoint)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-static void set_codepoints(PARROT_INTERP,
- ARGIN(STRING *source_string),
- UINTVAL offset,
- UINTVAL count,
- ARGMOD(STRING *new_codepoints))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(5)
- FUNC_MODIFIES(*new_codepoints);
-
PARROT_DOES_NOT_RETURN
PARROT_CANNOT_RETURN_NULL
-static STRING * to_encoding(PARROT_INTERP,
- SHIM(STRING *src),
- SHIM(STRING *dest))
+static STRING * to_encoding(PARROT_INTERP, SHIM(const STRING *src))
__attribute__nonnull__(1);
-#define ASSERT_ARGS_become_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(source_string))
#define ASSERT_ARGS_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(source_string))
#define ASSERT_ARGS_find_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(s) \
+ PARROT_ASSERT_ARG(s) \
, PARROT_ASSERT_ARG(typetable))
#define ASSERT_ARGS_fixed8_get_next __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -186,43 +130,25 @@
, PARROT_ASSERT_ARG(iter))
#define ASSERT_ARGS_fixed8_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(iter))
+#define ASSERT_ARGS_fixed_8_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_get_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(source_string))
+ PARROT_ASSERT_ARG(source_string))
#define ASSERT_ARGS_get_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(source_string))
-#define ASSERT_ARGS_get_bytes_inplace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(source_string) \
- , PARROT_ASSERT_ARG(return_string))
#define ASSERT_ARGS_get_codepoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(source_string))
#define ASSERT_ARGS_get_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(source_string))
-#define ASSERT_ARGS_get_codepoints_inplace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(source_string) \
- , PARROT_ASSERT_ARG(dest_string))
#define ASSERT_ARGS_iter_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(src) \
, PARROT_ASSERT_ARG(iter))
#define ASSERT_ARGS_set_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(source_string))
-#define ASSERT_ARGS_set_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(source_string) \
- , PARROT_ASSERT_ARG(new_bytes))
-#define ASSERT_ARGS_set_codepoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(source_string))
-#define ASSERT_ARGS_set_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(source_string) \
- , PARROT_ASSERT_ARG(new_codepoints))
#define ASSERT_ARGS_to_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
@@ -233,7 +159,7 @@
/*
-=item C<static STRING * to_encoding(PARROT_INTERP, STRING *src, STRING *dest)>
+=item C<static STRING * to_encoding(PARROT_INTERP, const STRING *src)>
Converts the string C<src> to this particular encoding. If C<dest> is
provided, it will contain the result. Otherwise this function operates in
@@ -247,7 +173,7 @@
PARROT_DOES_NOT_RETURN
PARROT_CANNOT_RETURN_NULL
static STRING *
-to_encoding(PARROT_INTERP, SHIM(STRING *src), SHIM(STRING *dest))
+to_encoding(PARROT_INTERP, SHIM(const STRING *src))
{
ASSERT_ARGS(to_encoding)
UNIMPL;
@@ -274,25 +200,6 @@
return get_byte(interp, source_string, offset);
}
-/*
-
-=item C<static void set_codepoint(PARROT_INTERP, STRING *source_string, UINTVAL
-offset, UINTVAL codepoint)>
-
-This is the same as set byte
-
-=cut
-
-*/
-
-static void
-set_codepoint(PARROT_INTERP, ARGIN(STRING *source_string),
- UINTVAL offset, UINTVAL codepoint)
-{
- ASSERT_ARGS(set_codepoint)
- set_byte(interp, source_string, offset, codepoint);
-}
-
/*
@@ -307,11 +214,11 @@
PARROT_WARN_UNUSED_RESULT
static UINTVAL
-find_cclass(PARROT_INTERP, ARGIN(STRING *s), ARGIN(const INTVAL *typetable),
+find_cclass(SHIM_INTERP, ARGIN(STRING *s), ARGIN(const INTVAL *typetable),
INTVAL flags, UINTVAL pos, UINTVAL end)
{
ASSERT_ARGS(find_cclass)
- unsigned char *contents = (unsigned char *)s->strstart;
+ const unsigned char *contents = (const unsigned char *)s->strstart;
for (; pos < end; ++pos) {
if ((typetable[contents[pos]] & flags) != 0) {
return pos;
@@ -333,10 +240,10 @@
PARROT_WARN_UNUSED_RESULT
static UINTVAL
-get_byte(PARROT_INTERP, ARGIN(const STRING *source_string), UINTVAL offset)
+get_byte(SHIM_INTERP, ARGIN(const STRING *source_string), UINTVAL offset)
{
ASSERT_ARGS(get_byte)
- unsigned char *contents = (unsigned char *)source_string->strstart;
+ const unsigned char *contents = (const unsigned char *)source_string->strstart;
if (offset >= source_string->bufused) {
/* Parrot_ex_throw_from_c_args(interp, NULL, 0,
@@ -416,8 +323,8 @@
get_bytes(PARROT_INTERP, ARGIN(STRING *source_string), UINTVAL offset, UINTVAL count)
{
ASSERT_ARGS(get_bytes)
- STRING * const return_string = Parrot_str_new_COW(interp,
- source_string);
+ STRING * const return_string = Parrot_str_copy(interp, source_string);
+
return_string->encoding = source_string->encoding;
return_string->charset = source_string->charset;
@@ -433,117 +340,7 @@
/*
-=item C<static STRING * get_codepoints_inplace(PARROT_INTERP, STRING
-*source_string, UINTVAL offset, UINTVAL count, STRING *dest_string)>
-
-Gets from string C<src> at position C<offset> C<count> codepoints and returns
-them in C<return_string>. (Delegates to C<get_bytes>.)
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static STRING *
-get_codepoints_inplace(PARROT_INTERP, ARGIN(STRING *source_string),
- UINTVAL offset, UINTVAL count, ARGMOD(STRING *dest_string))
-{
- ASSERT_ARGS(get_codepoints_inplace)
- return get_bytes_inplace(interp, source_string, offset,
- count, dest_string);
-}
-
-/*
-
-=item C<static STRING * get_bytes_inplace(PARROT_INTERP, STRING *source_string,
-UINTVAL offset, UINTVAL count, STRING *return_string)>
-
-Gets from string C<src> at position C<offset> C<count> bytes and returns them
-in C<return_string>.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static STRING *
-get_bytes_inplace(PARROT_INTERP, ARGIN(STRING *source_string),
- UINTVAL offset, UINTVAL count, ARGMOD(STRING *return_string))
-{
- ASSERT_ARGS(get_bytes_inplace)
- Parrot_str_reuse_COW(interp, source_string, return_string);
-
- return_string->strstart = (char *)return_string->strstart + offset ;
- return_string->bufused = count;
-
- return_string->strlen = count;
- return_string->hashval = 0;
-
- return return_string;
-}
-
-/*
-
-=item C<static void set_codepoints(PARROT_INTERP, STRING *source_string, UINTVAL
-offset, UINTVAL count, STRING *new_codepoints)>
-
-Delegate to set_bytes
-
-=cut
-
-*/
-
-static void
-set_codepoints(PARROT_INTERP, ARGIN(STRING *source_string),
- UINTVAL offset, UINTVAL count, ARGMOD(STRING *new_codepoints))
-{
- ASSERT_ARGS(set_codepoints)
- set_bytes(interp, source_string, offset, count, new_codepoints);
-}
-
-/*
-
-=item C<static void set_bytes(PARROT_INTERP, STRING *source_string, UINTVAL
-offset, UINTVAL count, STRING *new_bytes)>
-
-Replaces in string C<src> at position C<offset> for C<count> bytes with the
-contents of string C<new_bytes>.
-
-=cut
-
-*/
-
-static void
-set_bytes(PARROT_INTERP, ARGIN(STRING *source_string),
- UINTVAL offset, UINTVAL count, ARGMOD(STRING *new_bytes))
-{
- ASSERT_ARGS(set_bytes)
- Parrot_str_replace(interp, source_string, offset, count, new_bytes, NULL);
-}
-
-/*
-
-=item C<static void become_encoding(PARROT_INTERP, STRING *source_string)>
-
-Unconditionally makes the string be in this encoding, if that's valid
-
-=cut
-
-*/
-
-static void
-become_encoding(PARROT_INTERP, SHIM(STRING *source_string))
-{
- ASSERT_ARGS(become_encoding)
- UNIMPL;
-}
-
-
-/*
-
-=item C<static UINTVAL codepoints(PARROT_INTERP, STRING *source_string)>
+=item C<static UINTVAL codepoints(PARROT_INTERP, const STRING *source_string)>
Returns the number of codepoints in string C<src>.
@@ -552,7 +349,7 @@
*/
static UINTVAL
-codepoints(PARROT_INTERP, ARGIN(STRING *source_string))
+codepoints(PARROT_INTERP, ARGIN(const STRING *source_string))
{
ASSERT_ARGS(codepoints)
return bytes(interp, source_string);
@@ -560,7 +357,7 @@
/*
-=item C<static UINTVAL bytes(PARROT_INTERP, STRING *source_string)>
+=item C<static UINTVAL bytes(PARROT_INTERP, const STRING *source_string)>
Returns the number of bytes in string C<src>.
@@ -569,7 +366,7 @@
*/
static UINTVAL
-bytes(SHIM_INTERP, ARGIN(STRING *source_string))
+bytes(SHIM_INTERP, ARGIN(const STRING *source_string))
{
ASSERT_ARGS(bytes)
return source_string->bufused;
@@ -660,9 +457,37 @@
iter->set_position = fixed8_set_position;
}
+
+/*
+
+=item C<static size_t fixed_8_hash(PARROT_INTERP, const STRING *s, size_t
+hashval)>
+
+Returns the hashed value of the string, given a seed in hashval.
+
+=cut
+
+*/
+
+static size_t
+fixed_8_hash(SHIM_INTERP, ARGIN(const STRING *s), size_t hashval)
+{
+ ASSERT_ARGS(fixed_8_hash)
+ const unsigned char *pos = (const unsigned char *)s->strstart;
+ UINTVAL len = s->strlen;
+
+ while (len--) {
+ hashval += hashval << 5;
+ hashval += *(pos++);
+ }
+
+ return hashval;
+}
+
+
/*
-=item C<ENCODING * Parrot_encoding_fixed_8_init(PARROT_INTERP)>
+=item C<void Parrot_encoding_fixed_8_init(PARROT_INTERP)>
Initializes the fixed-8 encoding.
@@ -670,8 +495,7 @@
*/
-PARROT_CANNOT_RETURN_NULL
-ENCODING *
+void
Parrot_encoding_fixed_8_init(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_encoding_fixed_8_init)
@@ -682,25 +506,21 @@
1, /* Max bytes per codepoint */
to_encoding,
get_codepoint,
- set_codepoint,
get_byte,
set_byte,
get_codepoints,
- get_codepoints_inplace,
get_bytes,
- get_bytes_inplace,
- set_codepoints,
- set_bytes,
- become_encoding,
codepoints,
bytes,
iter_init,
- find_cclass
-
+ find_cclass,
+ fixed_8_hash
};
+
STRUCT_COPY_FROM_STRUCT(return_encoding, base_encoding);
Parrot_register_encoding(interp, "fixed_8", return_encoding);
- return return_encoding;
+
+ return;
}
Modified: branches/avl_string_cache/src/string/encoding/fixed_8.h
==============================================================================
--- branches/avl_string_cache/src/string/encoding/fixed_8.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/encoding/fixed_8.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -16,8 +16,7 @@
/* HEADERIZER BEGIN: src/string/encoding/fixed_8.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-PARROT_CANNOT_RETURN_NULL
-ENCODING * Parrot_encoding_fixed_8_init(PARROT_INTERP)
+void Parrot_encoding_fixed_8_init(PARROT_INTERP)
__attribute__nonnull__(1);
#define ASSERT_ARGS_Parrot_encoding_fixed_8_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/avl_string_cache/src/string/encoding/ucs2.c
==============================================================================
--- branches/avl_string_cache/src/string/encoding/ucs2.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/encoding/ucs2.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -36,16 +36,12 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-static void become_encoding(PARROT_INTERP, SHIM(STRING *src))
- __attribute__nonnull__(1);
-
PARROT_WARN_UNUSED_RESULT
-static UINTVAL bytes(PARROT_INTERP, ARGIN(STRING *src))
- __attribute__nonnull__(1)
+static UINTVAL bytes(SHIM_INTERP, ARGIN(const STRING *src))
__attribute__nonnull__(2);
PARROT_WARN_UNUSED_RESULT
-static UINTVAL codepoints(PARROT_INTERP, ARGIN(STRING *src))
+static UINTVAL codepoints(PARROT_INTERP, ARGIN(const STRING *src))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -73,15 +69,6 @@
SHIM(UINTVAL count))
__attribute__nonnull__(1);
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static STRING * get_bytes_inplace(PARROT_INTERP,
- SHIM(STRING *src),
- SHIM(UINTVAL offset),
- SHIM(UINTVAL count),
- SHIM(STRING *return_string))
- __attribute__nonnull__(1);
-
static UINTVAL get_codepoint(PARROT_INTERP,
ARGIN(const STRING *src),
UINTVAL offset)
@@ -97,15 +84,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static STRING * get_codepoints_inplace(PARROT_INTERP,
- SHIM(STRING *src),
- SHIM(UINTVAL offset),
- SHIM(UINTVAL count),
- SHIM(STRING *dest_string))
- __attribute__nonnull__(1);
-
static void iter_init(PARROT_INTERP,
ARGIN(const STRING *src),
ARGOUT(String_iter *iter))
@@ -120,61 +98,36 @@
SHIM(UINTVAL byte))
__attribute__nonnull__(1);
-static void set_bytes(PARROT_INTERP,
- SHIM(STRING *src),
- SHIM(UINTVAL offset),
- SHIM(UINTVAL count),
- SHIM(STRING *new_bytes))
- __attribute__nonnull__(1);
-
-static void set_codepoint(PARROT_INTERP,
- ARGIN(STRING *src),
- UINTVAL offset,
- UINTVAL codepoint)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-static void set_codepoints(PARROT_INTERP,
- SHIM(STRING *src),
- SHIM(UINTVAL offset),
- SHIM(UINTVAL count),
- SHIM(STRING *new_codepoints))
- __attribute__nonnull__(1);
-
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-static STRING * to_encoding(PARROT_INTERP,
- ARGIN(STRING *src),
- ARGMOD(STRING *dest))
+static STRING * to_encoding(PARROT_INTERP, ARGIN(const STRING *src))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*dest);
+ __attribute__nonnull__(2);
-static UINTVAL ucs2_decode_and_advance(PARROT_INTERP,
- ARGMOD(String_iter *i))
- __attribute__nonnull__(1)
+static UINTVAL ucs2_decode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i))
__attribute__nonnull__(2)
FUNC_MODIFIES(*i);
-static void ucs2_encode_and_advance(PARROT_INTERP,
+static void ucs2_encode_and_advance(SHIM_INTERP,
ARGMOD(String_iter *i),
UINTVAL c)
- __attribute__nonnull__(1)
__attribute__nonnull__(2)
FUNC_MODIFIES(*i);
+static size_t ucs2_hash(PARROT_INTERP,
+ ARGIN(const STRING *s),
+ size_t hashval)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
static void ucs2_set_position(SHIM_INTERP,
ARGMOD(String_iter *i),
UINTVAL n)
__attribute__nonnull__(2)
FUNC_MODIFIES(*i);
-#define ASSERT_ARGS_become_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(src))
+ PARROT_ASSERT_ARG(src))
#define ASSERT_ARGS_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
@@ -186,39 +139,28 @@
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_get_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_get_bytes_inplace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_get_codepoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
#define ASSERT_ARGS_get_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_get_codepoints_inplace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_iter_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src) \
, PARROT_ASSERT_ARG(iter))
#define ASSERT_ARGS_set_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_set_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_set_codepoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_set_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_to_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(src) \
- , PARROT_ASSERT_ARG(dest))
+ , PARROT_ASSERT_ARG(src))
#define ASSERT_ARGS_ucs2_decode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(i))
+ PARROT_ASSERT_ARG(i))
#define ASSERT_ARGS_ucs2_encode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_ucs2_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(i))
+ , PARROT_ASSERT_ARG(s))
#define ASSERT_ARGS_ucs2_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(i))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
@@ -235,7 +177,7 @@
/*
-=item C<static STRING * to_encoding(PARROT_INTERP, STRING *src, STRING *dest)>
+=item C<static STRING * to_encoding(PARROT_INTERP, const STRING *src)>
Converts the string C<src> to this particular encoding. If C<dest> is
provided, it will contain the result. Otherwise this function operates in
@@ -248,11 +190,11 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static STRING *
-to_encoding(PARROT_INTERP, ARGIN(STRING *src), ARGMOD(STRING *dest))
+to_encoding(PARROT_INTERP, ARGIN(const STRING *src))
{
ASSERT_ARGS(to_encoding)
STRING * const result =
- Parrot_utf16_encoding_ptr->to_encoding(interp, src, dest);
+ Parrot_utf16_encoding_ptr->to_encoding(interp, src);
/* conversion to utf16 downgrads to ucs-2 if possible - check result */
if (result->encoding == Parrot_utf16_encoding_ptr)
@@ -278,39 +220,15 @@
{
ASSERT_ARGS(get_codepoint)
#if PARROT_HAS_ICU
- UChar * const s = (UChar*) src->strstart;
+ const UChar * const s = (const UChar*) src->strstart;
return s[offset];
#else
- UNUSED(offset)
+ UNUSED(offset);
+ UNUSED(src);
no_ICU_lib(interp);
#endif
}
-/*
-
-=item C<static void set_codepoint(PARROT_INTERP, STRING *src, UINTVAL offset,
-UINTVAL codepoint)>
-
-Sets, in string C<src> at position C<offset>, the codepoint C<codepoint>.
-
-=cut
-
-*/
-
-static void
-set_codepoint(PARROT_INTERP, ARGIN(STRING *src), UINTVAL offset, UINTVAL codepoint)
-{
- ASSERT_ARGS(set_codepoint)
-#if PARROT_HAS_ICU
- UChar * const s = (UChar*) src->strstart;
- s[offset] = codepoint;
-#else
- UNUSED(src)
- UNUSED(offset)
- UNUSED(codepoint)
- no_ICU_lib(interp);
-#endif
-}
/*
@@ -328,6 +246,12 @@
find_cclass(PARROT_INTERP, ARGIN(STRING *s), ARGIN(const INTVAL *typetable),
INTVAL flags, UINTVAL pos, UINTVAL end)
{
+ UNUSED(s);
+ UNUSED(typetable);
+ UNUSED(flags);
+ UNUSED(pos);
+ UNUSED(end);
+
Parrot_ex_throw_from_c_args(interp, NULL,
EXCEPTION_UNIMPLEMENTED,
"No find_cclass support in unicode encoding plugins");
@@ -388,7 +312,8 @@
get_codepoints(PARROT_INTERP, ARGIN(STRING *src), UINTVAL offset, UINTVAL count)
{
ASSERT_ARGS(get_codepoints)
- STRING * const return_string = Parrot_str_new_COW(interp, src);
+ STRING * const return_string = Parrot_str_copy(interp, src);
+
#if PARROT_HAS_ICU
return_string->strstart = (char*)src->strstart + offset * sizeof (UChar);
return_string->bufused = count * sizeof (UChar);
@@ -434,109 +359,7 @@
/*
-=item C<static STRING * get_codepoints_inplace(PARROT_INTERP, STRING *src,
-UINTVAL offset, UINTVAL count, STRING *dest_string)>
-
-Gets from string C<src> at position C<offset> C<count> codepoints and returns
-them in C<return_string>.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static STRING *
-get_codepoints_inplace(PARROT_INTERP, SHIM(STRING *src),
- SHIM(UINTVAL offset), SHIM(UINTVAL count), SHIM(STRING *dest_string))
-{
- ASSERT_ARGS(get_codepoints_inplace)
- UNIMPL;
-}
-
-/*
-
-=item C<static STRING * get_bytes_inplace(PARROT_INTERP, STRING *src, UINTVAL
-offset, UINTVAL count, STRING *return_string)>
-
-Gets from string C<src> at position C<offset> C<count> bytes and returns them
-in C<return_string>.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static STRING *
-get_bytes_inplace(PARROT_INTERP, SHIM(STRING *src),
- SHIM(UINTVAL offset), SHIM(UINTVAL count), SHIM(STRING *return_string))
-{
- ASSERT_ARGS(get_bytes_inplace)
- UNIMPL;
-}
-
-/*
-
-=item C<static void set_codepoints(PARROT_INTERP, STRING *src, UINTVAL offset,
-UINTVAL count, STRING *new_codepoints)>
-
-Replaces in string C<src> at position C<offset> for C<count> codepoints with
-the contents of string C<new_codepoints>.
-
-=cut
-
-*/
-
-static void
-set_codepoints(PARROT_INTERP, SHIM(STRING *src),
- SHIM(UINTVAL offset), SHIM(UINTVAL count), SHIM(STRING *new_codepoints))
-{
- ASSERT_ARGS(set_codepoints)
- UNIMPL;
-}
-
-/*
-
-=item C<static void set_bytes(PARROT_INTERP, STRING *src, UINTVAL offset,
-UINTVAL count, STRING *new_bytes)>
-
-Replaces in string C<src> at position C<offset> for C<count> bytes with the
-contents of string C<new_bytes>.
-
-=cut
-
-*/
-
-static void
-set_bytes(PARROT_INTERP, SHIM(STRING *src),
- SHIM(UINTVAL offset), SHIM(UINTVAL count), SHIM(STRING *new_bytes))
-{
- ASSERT_ARGS(set_bytes)
- UNIMPL;
-}
-
-/*
-
-=item C<static void become_encoding(PARROT_INTERP, STRING *src)>
-
-Unconditionally makes the string be in this encoding, if that's valid
-
-=cut
-
-*/
-
-static void
-become_encoding(PARROT_INTERP, SHIM(STRING *src))
-{
- ASSERT_ARGS(become_encoding)
- UNIMPL;
-}
-
-
-/*
-
-=item C<static UINTVAL codepoints(PARROT_INTERP, STRING *src)>
+=item C<static UINTVAL codepoints(PARROT_INTERP, const STRING *src)>
Returns the number of codepoints in string C<src>.
@@ -546,19 +369,21 @@
PARROT_WARN_UNUSED_RESULT
static UINTVAL
-codepoints(PARROT_INTERP, ARGIN(STRING *src))
+codepoints(PARROT_INTERP, ARGIN(const STRING *src))
{
ASSERT_ARGS(codepoints)
#if PARROT_HAS_ICU
+ UNUSED(interp);
return src->bufused / sizeof (UChar);
#else
+ UNUSED(src);
no_ICU_lib(interp);
#endif
}
/*
-=item C<static UINTVAL bytes(PARROT_INTERP, STRING *src)>
+=item C<static UINTVAL bytes(PARROT_INTERP, const STRING *src)>
Returns the number of bytes in string C<src>.
@@ -568,7 +393,7 @@
PARROT_WARN_UNUSED_RESULT
static UINTVAL
-bytes(PARROT_INTERP, ARGIN(STRING *src))
+bytes(SHIM_INTERP, ARGIN(const STRING *src))
{
ASSERT_ARGS(bytes)
return src->bufused;
@@ -585,12 +410,12 @@
*/
static UINTVAL
-ucs2_decode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i))
+ucs2_decode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i))
{
ASSERT_ARGS(ucs2_decode_and_advance)
#if PARROT_HAS_ICU
- UChar * const s = (UChar*) i->str->strstart;
+ const UChar * const s = (const UChar*) i->str->strstart;
size_t pos = i->bytepos / sizeof (UChar);
/* TODO either make sure that we don't go past end or use SAFE
@@ -605,6 +430,7 @@
* See TT #557
*/
PARROT_ASSERT(0);
+ UNUSED(i);
return (UINTVAL)0; /* Stop the static analyzers from panicing */
#endif
}
@@ -622,26 +448,62 @@
*/
static void
-ucs2_encode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i), UINTVAL c)
+ucs2_encode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i), UINTVAL c)
{
ASSERT_ARGS(ucs2_encode_and_advance)
#if PARROT_HAS_ICU
- UChar * const s = (UChar*) i->str->strstart;
+ UChar *s = (UChar*) i->str->strstart;
UINTVAL pos = i->bytepos / sizeof (UChar);
- s[pos++] = (UChar)c;
+ s[pos++] = (UChar)c;
i->charpos++;
i->bytepos = pos * sizeof (UChar);
#else
/* This function must never be called if compiled without ICU.
* See TT #557
*/
+ UNUSED(i);
+ UNUSED(c);
PARROT_ASSERT(0);
#endif
}
/*
+=item C<static size_t ucs2_hash(PARROT_INTERP, const STRING *s, size_t hashval)>
+
+Returns the hashed value of the string, given a seed in hashval.
+
+=cut
+
+*/
+
+static size_t
+ucs2_hash(PARROT_INTERP, ARGIN(const STRING *s), size_t hashval)
+{
+ ASSERT_ARGS(ucs2_hash)
+#if PARROT_HAS_ICU
+ UChar *pos = (UChar*) s->strstart;
+ UINTVAL len = s->strlen;
+
+ while (len--) {
+ hashval += hashval << 5;
+ hashval += *(pos++);
+ }
+
+ return hashval;
+
+#else
+ UNUSED(s);
+ UNUSED(hashval);
+
+ no_ICU_lib(interp);
+#endif
+}
+
+
+/*
+
=item C<static void ucs2_set_position(PARROT_INTERP, String_iter *i, UINTVAL n)>
Moves the string iterator C<i> to the position C<n> in the string.
@@ -662,6 +524,8 @@
/* This function must never be called if compiled without ICU.
* See TT #557
*/
+ UNUSED(i);
+ UNUSED(n);
PARROT_ASSERT(0);
#endif
}
@@ -683,6 +547,7 @@
{
ASSERT_ARGS(iter_init)
#if PARROT_HAS_ICU
+ UNUSED(interp);
iter->str = src;
iter->bytepos = 0;
iter->charpos = 0;
@@ -690,13 +555,15 @@
iter->set_and_advance = ucs2_encode_and_advance;
iter->set_position = ucs2_set_position;
#else
+ UNUSED(src);
+ UNUSED(iter);
no_ICU_lib(interp);
#endif
}
/*
-=item C<ENCODING * Parrot_encoding_ucs2_init(PARROT_INTERP)>
+=item C<void Parrot_encoding_ucs2_init(PARROT_INTERP)>
Initializes the UCS-2 encoding.
@@ -704,8 +571,7 @@
*/
-PARROT_CANNOT_RETURN_NULL
-ENCODING *
+void
Parrot_encoding_ucs2_init(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_encoding_ucs2_init)
@@ -716,24 +582,20 @@
2, /* Max bytes per codepoint 0 .. 0x10ffff */
to_encoding,
get_codepoint,
- set_codepoint,
get_byte,
set_byte,
get_codepoints,
- get_codepoints_inplace,
get_bytes,
- get_bytes_inplace,
- set_codepoints,
- set_bytes,
- become_encoding,
codepoints,
bytes,
iter_init,
- find_cclass
+ find_cclass,
+ ucs2_hash
};
STRUCT_COPY_FROM_STRUCT(return_encoding, base_encoding);
Parrot_register_encoding(interp, "ucs2", return_encoding);
- return return_encoding;
+
+ return;
}
/*
Modified: branches/avl_string_cache/src/string/encoding/ucs2.h
==============================================================================
--- branches/avl_string_cache/src/string/encoding/ucs2.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/encoding/ucs2.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -16,8 +16,7 @@
/* HEADERIZER BEGIN: src/string/encoding/ucs2.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-PARROT_CANNOT_RETURN_NULL
-ENCODING * Parrot_encoding_ucs2_init(PARROT_INTERP)
+void Parrot_encoding_ucs2_init(PARROT_INTERP)
__attribute__nonnull__(1);
#define ASSERT_ARGS_Parrot_encoding_ucs2_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/avl_string_cache/src/string/encoding/utf16.c
==============================================================================
--- branches/avl_string_cache/src/string/encoding/utf16.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/encoding/utf16.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -26,15 +26,12 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-static void become_encoding(PARROT_INTERP, SHIM(STRING *src))
- __attribute__nonnull__(1);
-
PARROT_WARN_UNUSED_RESULT
-static UINTVAL bytes(SHIM_INTERP, ARGIN(STRING *src))
+static UINTVAL bytes(SHIM_INTERP, ARGIN(const STRING *src))
__attribute__nonnull__(2);
PARROT_WARN_UNUSED_RESULT
-static UINTVAL codepoints(PARROT_INTERP, ARGIN(STRING *src))
+static UINTVAL codepoints(PARROT_INTERP, ARGIN(const STRING *src))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -63,17 +60,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static STRING * get_bytes_inplace(PARROT_INTERP,
- ARGIN(STRING *src),
- UINTVAL offset,
- UINTVAL count,
- ARGIN(STRING *return_string))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(5);
-
static UINTVAL get_codepoint(PARROT_INTERP,
ARGIN(const STRING *src),
UINTVAL offset)
@@ -89,18 +75,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static STRING * get_codepoints_inplace(PARROT_INTERP,
- ARGIN(STRING *src),
- UINTVAL offset,
- UINTVAL count,
- ARGMOD(STRING *return_string))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(5)
- FUNC_MODIFIES(*return_string);
-
static void iter_init(PARROT_INTERP,
ARGIN(const STRING *src),
ARGOUT(String_iter *iter))
@@ -116,34 +90,9 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void set_bytes(PARROT_INTERP,
- SHIM(STRING *src),
- UINTVAL offset,
- UINTVAL count,
- SHIM(STRING *new_bytes))
- __attribute__nonnull__(1);
-
-static void set_codepoint(PARROT_INTERP,
- ARGIN(STRING *src),
- UINTVAL offset,
- UINTVAL codepoint)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-static void set_codepoints(PARROT_INTERP,
- ARGIN(STRING *src),
- UINTVAL offset,
- UINTVAL count,
- ARGIN(STRING *new_codepoints))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(5);
-
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-static STRING * to_encoding(PARROT_INTERP,
- ARGIN(STRING *src),
- ARGIN_NULLOK(STRING *dest))
+static STRING * to_encoding(PARROT_INTERP, ARGIN(const STRING *src))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -168,8 +117,6 @@
__attribute__nonnull__(2)
FUNC_MODIFIES(*i);
-#define ASSERT_ARGS_become_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(src))
#define ASSERT_ARGS_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -184,20 +131,12 @@
#define ASSERT_ARGS_get_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_get_bytes_inplace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(src) \
- , PARROT_ASSERT_ARG(return_string))
#define ASSERT_ARGS_get_codepoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
#define ASSERT_ARGS_get_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_get_codepoints_inplace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(src) \
- , PARROT_ASSERT_ARG(return_string))
#define ASSERT_ARGS_iter_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src) \
@@ -205,15 +144,6 @@
#define ASSERT_ARGS_set_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_set_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_set_codepoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_set_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(src) \
- , PARROT_ASSERT_ARG(new_codepoints))
#define ASSERT_ARGS_to_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
@@ -242,7 +172,7 @@
/*
-=item C<static STRING * to_encoding(PARROT_INTERP, STRING *src, STRING *dest)>
+=item C<static STRING * to_encoding(PARROT_INTERP, const STRING *src)>
Converts the string C<src> to this particular encoding. If C<dest> is
provided, it will contain the result. Otherwise this function operates in
@@ -256,7 +186,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static STRING *
-to_encoding(PARROT_INTERP, ARGIN(STRING *src), ARGIN_NULLOK(STRING *dest))
+to_encoding(PARROT_INTERP, ARGIN(const STRING *src))
{
ASSERT_ARGS(to_encoding)
#if PARROT_HAS_ICU
@@ -265,22 +195,18 @@
UChar *p;
#endif
int src_len;
- int in_place = dest == NULL;
STRING *result;
if (src->encoding == Parrot_utf16_encoding_ptr ||
src->encoding == Parrot_ucs2_encoding_ptr)
- return in_place ? src : Parrot_str_copy(interp, src);
+ return Parrot_str_clone(interp, src);
+
+ result = Parrot_gc_new_string_header(interp, 0);
+
/*
* TODO adapt string creation functions
*/
src_len = src->strlen;
- if (in_place) {
- result = src;
- }
- else {
- result = dest;
- }
if (!src_len) {
result->charset = Parrot_unicode_charset_ptr;
result->encoding = Parrot_ucs2_encoding_ptr;
@@ -296,14 +222,9 @@
UErrorCode *pErrorCode);
*/
#if PARROT_HAS_ICU
- if (in_place) {
- /* need intermediate memory */
- p = mem_gc_allocate_n_typed(interp, src_len, UChar);
- }
- else {
- Parrot_gc_reallocate_string_storage(interp, dest, sizeof (UChar) * src_len);
- p = (UChar *)dest->strstart;
- }
+ Parrot_gc_allocate_string_storage(interp, result, sizeof (UChar) * src_len);
+ p = (UChar *)result->strstart;
+
if (src->charset == Parrot_iso_8859_1_charset_ptr ||
src->charset == Parrot_ascii_charset_ptr) {
for (dest_len = 0; dest_len < (int)src->strlen; ++dest_len) {
@@ -318,25 +239,16 @@
/*
* have to resize - required len in UChars is in dest_len
*/
- if (in_place)
- p = mem_gc_realloc_n_typed(interp, p, dest_len, UChar);
- else {
- result->bufused = dest_len * sizeof (UChar);
- Parrot_gc_reallocate_string_storage(interp, dest,
- sizeof (UChar) * dest_len);
- p = (UChar *)dest->strstart;
- }
+ result->bufused = dest_len * sizeof (UChar);
+ Parrot_gc_reallocate_string_storage(interp, result,
+ sizeof (UChar) * dest_len);
+ p = (UChar *)result->strstart;
u_strFromUTF8(p, dest_len,
&dest_len, src->strstart, src->bufused, &err);
PARROT_ASSERT(U_SUCCESS(err));
}
}
result->bufused = dest_len * sizeof (UChar);
- if (in_place) {
- Parrot_gc_reallocate_string_storage(interp, src, src->bufused);
- memcpy(src->strstart, p, src->bufused);
- mem_gc_free(interp, p);
- }
result->charset = Parrot_unicode_charset_ptr;
result->encoding = Parrot_utf16_encoding_ptr;
result->strlen = src_len;
@@ -383,27 +295,6 @@
#endif
}
-/*
-
-=item C<static void set_codepoint(PARROT_INTERP, STRING *src, UINTVAL offset,
-UINTVAL codepoint)>
-
-Sets, in string C<src> at position C<offset>, the codepoint C<codepoint>.
-
-=cut
-
-*/
-
-static void
-set_codepoint(PARROT_INTERP, ARGIN(STRING *src), UINTVAL offset, UINTVAL codepoint)
-{
- ASSERT_ARGS(set_codepoint)
- UNUSED(interp);
- UNUSED(src);
- UNUSED(offset);
- UNUSED(codepoint);
- UNIMPL;
-}
/*
@@ -421,6 +312,12 @@
find_cclass(PARROT_INTERP, ARGIN(STRING *s), ARGIN(const INTVAL *typetable),
INTVAL flags, UINTVAL pos, UINTVAL end)
{
+ UNUSED(s);
+ UNUSED(typetable);
+ UNUSED(flags);
+ UNUSED(pos);
+ UNUSED(end);
+
Parrot_ex_throw_from_c_args(interp, NULL,
EXCEPTION_UNIMPLEMENTED,
"No find_cclass support in unicode encoding plugins");
@@ -496,7 +393,7 @@
ASSERT_ARGS(get_codepoints)
String_iter iter;
UINTVAL start;
- STRING * const return_string = Parrot_str_new_COW(interp, src);
+ STRING * const return_string = Parrot_str_copy(interp, src);
iter_init(interp, src, &iter);
iter.set_position(interp, &iter, offset);
@@ -512,39 +409,6 @@
/*
-=item C<static STRING * get_codepoints_inplace(PARROT_INTERP, STRING *src,
-UINTVAL offset, UINTVAL count, STRING *return_string)>
-
-Gets from string C<src> at position C<offset> C<count> codepoints and returns
-them in C<return_string>.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static STRING *
-get_codepoints_inplace(PARROT_INTERP, ARGIN(STRING *src),
- UINTVAL offset, UINTVAL count, ARGMOD(STRING *return_string))
-{
- ASSERT_ARGS(get_codepoints_inplace)
- String_iter iter;
- UINTVAL start;
- Parrot_str_reuse_COW(interp, src, return_string);
- iter_init(interp, src, &iter);
- iter.set_position(interp, &iter, offset);
- start = iter.bytepos;
- return_string->strstart = (char *)return_string->strstart + start ;
- iter.set_position(interp, &iter, offset + count);
- return_string->bufused = iter.bytepos - start;
- return_string->strlen = count;
- return_string->hashval = 0;
- return return_string;
-}
-
-/*
-
=item C<static STRING * get_bytes(PARROT_INTERP, STRING *src, UINTVAL offset,
UINTVAL count)>
@@ -569,100 +433,7 @@
/*
-=item C<static STRING * get_bytes_inplace(PARROT_INTERP, STRING *src, UINTVAL
-offset, UINTVAL count, STRING *return_string)>
-
-Gets from string C<src> at position C<offset> C<count> bytes and returns them
-in C<return_string>.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-static STRING *
-get_bytes_inplace(PARROT_INTERP, ARGIN(STRING *src),
- UINTVAL offset, UINTVAL count, ARGIN(STRING *return_string))
-{
- ASSERT_ARGS(get_bytes_inplace)
- UNUSED(interp);
- UNUSED(src);
- UNUSED(offset)
- UNUSED(count);
- UNUSED(return_string);
- UNIMPL;
-}
-
-/*
-
-=item C<static void set_codepoints(PARROT_INTERP, STRING *src, UINTVAL offset,
-UINTVAL count, STRING *new_codepoints)>
-
-Replaces in string C<src> at position C<offset> for C<count> codepoints with
-the contents of string C<new_codepoints>.
-
-=cut
-
-*/
-
-static void
-set_codepoints(PARROT_INTERP, ARGIN(STRING *src),
- UINTVAL offset, UINTVAL count, ARGIN(STRING *new_codepoints))
-{
- ASSERT_ARGS(set_codepoints)
- UNUSED(interp);
- UNUSED(src);
- UNUSED(offset)
- UNUSED(count);
- UNUSED(new_codepoints);
- UNIMPL;
-}
-
-/*
-
-=item C<static void set_bytes(PARROT_INTERP, STRING *src, UINTVAL offset,
-UINTVAL count, STRING *new_bytes)>
-
-Replaces in string C<src> at position C<offset> for C<count> bytes with the
-contents of string C<new_bytes>.
-
-=cut
-
-*/
-
-static void
-set_bytes(PARROT_INTERP, SHIM(STRING *src),
- UINTVAL offset, UINTVAL count, SHIM(STRING *new_bytes))
-{
- ASSERT_ARGS(set_bytes)
- UNUSED(interp);
- UNUSED(offset)
- UNUSED(count);
- UNIMPL;
-}
-
-/*
-
-=item C<static void become_encoding(PARROT_INTERP, STRING *src)>
-
-Unconditionally makes the string be in this encoding, if that's valid
-
-=cut
-
-*/
-
-static void
-become_encoding(PARROT_INTERP, SHIM(STRING *src))
-{
- ASSERT_ARGS(become_encoding)
- UNIMPL;
-}
-
-
-/*
-
-=item C<static UINTVAL codepoints(PARROT_INTERP, STRING *src)>
+=item C<static UINTVAL codepoints(PARROT_INTERP, const STRING *src)>
Returns the number of codepoints in string C<src>.
@@ -672,7 +443,7 @@
PARROT_WARN_UNUSED_RESULT
static UINTVAL
-codepoints(PARROT_INTERP, ARGIN(STRING *src))
+codepoints(PARROT_INTERP, ARGIN(const STRING *src))
{
ASSERT_ARGS(codepoints)
String_iter iter;
@@ -688,7 +459,7 @@
/*
-=item C<static UINTVAL bytes(PARROT_INTERP, STRING *src)>
+=item C<static UINTVAL bytes(PARROT_INTERP, const STRING *src)>
Returns the number of bytes in string C<src>.
@@ -698,7 +469,7 @@
PARROT_WARN_UNUSED_RESULT
static UINTVAL
-bytes(SHIM_INTERP, ARGIN(STRING *src))
+bytes(SHIM_INTERP, ARGIN(const STRING *src))
{
ASSERT_ARGS(bytes)
return src->bufused;
@@ -810,7 +581,7 @@
/*
-=item C<ENCODING * Parrot_encoding_utf16_init(PARROT_INTERP)>
+=item C<void Parrot_encoding_utf16_init(PARROT_INTERP)>
Initializes the UTF-16 encoding.
@@ -818,8 +589,7 @@
*/
-PARROT_CANNOT_RETURN_NULL
-ENCODING *
+void
Parrot_encoding_utf16_init(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_encoding_utf16_init)
@@ -830,24 +600,20 @@
4, /* Max bytes per codepoint 0 .. 0x10ffff */
to_encoding,
get_codepoint,
- set_codepoint,
get_byte,
set_byte,
get_codepoints,
- get_codepoints_inplace,
get_bytes,
- get_bytes_inplace,
- set_codepoints,
- set_bytes,
- become_encoding,
codepoints,
bytes,
iter_init,
- find_cclass
+ find_cclass,
+ NULL
};
STRUCT_COPY_FROM_STRUCT(return_encoding, base_encoding);
Parrot_register_encoding(interp, "utf16", return_encoding);
- return return_encoding;
+
+ return;
}
/*
Modified: branches/avl_string_cache/src/string/encoding/utf16.h
==============================================================================
--- branches/avl_string_cache/src/string/encoding/utf16.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/encoding/utf16.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -16,8 +16,7 @@
/* HEADERIZER BEGIN: src/string/encoding/utf16.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-PARROT_CANNOT_RETURN_NULL
-ENCODING * Parrot_encoding_utf16_init(PARROT_INTERP)
+void Parrot_encoding_utf16_init(PARROT_INTERP)
__attribute__nonnull__(1);
#define ASSERT_ARGS_Parrot_encoding_utf16_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/avl_string_cache/src/string/encoding/utf8.c
==============================================================================
--- branches/avl_string_cache/src/string/encoding/utf8.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/encoding/utf8.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -27,17 +27,13 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-static void become_encoding(PARROT_INTERP, SHIM(STRING *src))
- __attribute__nonnull__(1);
-
PARROT_PURE_FUNCTION
-static UINTVAL bytes(SHIM_INTERP, ARGIN(STRING *src))
+static UINTVAL bytes(SHIM_INTERP, ARGIN(const STRING *src))
__attribute__nonnull__(2);
-static UINTVAL codepoints(PARROT_INTERP, ARGMOD(STRING *src))
+static UINTVAL codepoints(PARROT_INTERP, ARGIN(const STRING *src))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*src);
+ __attribute__nonnull__(2);
PARROT_WARN_UNUSED_RESULT
static UINTVAL find_cclass(PARROT_INTERP,
@@ -62,14 +58,6 @@
__attribute__nonnull__(2)
FUNC_MODIFIES(*src);
-PARROT_CANNOT_RETURN_NULL
-static STRING * get_bytes_inplace(PARROT_INTERP,
- SHIM(STRING *src),
- SHIM(UINTVAL offset),
- SHIM(UINTVAL count),
- SHIM(STRING *return_string))
- __attribute__nonnull__(1);
-
static UINTVAL get_codepoint(PARROT_INTERP,
ARGIN(const STRING *src),
UINTVAL offset)
@@ -84,18 +72,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-PARROT_CANNOT_RETURN_NULL
-static STRING * get_codepoints_inplace(PARROT_INTERP,
- ARGMOD(STRING *src),
- UINTVAL offset,
- UINTVAL count,
- ARGMOD(STRING *return_string))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(5)
- FUNC_MODIFIES(*src)
- FUNC_MODIFIES(*return_string);
-
static void iter_init(SHIM_INTERP,
ARGIN(const STRING *src),
ARGOUT(String_iter *iter))
@@ -110,35 +86,10 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-static void set_bytes(PARROT_INTERP,
- SHIM(STRING *src),
- SHIM(UINTVAL offset),
- SHIM(UINTVAL count),
- SHIM(STRING *new_bytes))
- __attribute__nonnull__(1);
-
-static void set_codepoint(PARROT_INTERP,
- ARGIN(STRING *src),
- UINTVAL offset,
- UINTVAL codepoint)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-static void set_codepoints(PARROT_INTERP,
- SHIM(STRING *src),
- SHIM(UINTVAL offset),
- SHIM(UINTVAL count),
- SHIM(STRING *new_codepoints))
- __attribute__nonnull__(1);
-
PARROT_CAN_RETURN_NULL
-static STRING * to_encoding(PARROT_INTERP,
- ARGMOD(STRING *src),
- ARGMOD_NULLOK(STRING *dest))
+static STRING * to_encoding(PARROT_INTERP, ARGIN(const STRING *src))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*src)
- FUNC_MODIFIES(*dest);
+ __attribute__nonnull__(2);
static UINTVAL utf8_characters(PARROT_INTERP,
ARGIN(const utf8_t *ptr),
@@ -183,8 +134,6 @@
static const void * utf8_skip_forward(ARGIN(const void *ptr), UINTVAL n)
__attribute__nonnull__(1);
-#define ASSERT_ARGS_become_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(src))
#define ASSERT_ARGS_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -197,31 +146,18 @@
#define ASSERT_ARGS_get_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_get_bytes_inplace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_get_codepoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
#define ASSERT_ARGS_get_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_get_codepoints_inplace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(src) \
- , PARROT_ASSERT_ARG(return_string))
#define ASSERT_ARGS_iter_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(src) \
, PARROT_ASSERT_ARG(iter))
#define ASSERT_ARGS_set_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_set_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_set_codepoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(src))
-#define ASSERT_ARGS_set_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_to_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(src))
@@ -271,10 +207,6 @@
4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6 /* cjk etc. */
};
-#if 0
-typedef unsigned char utf8_t;
-#endif
-
/*
=item C<static UINTVAL utf8_characters(PARROT_INTERP, const utf8_t *ptr, UINTVAL
@@ -566,7 +498,7 @@
/*
-=item C<static STRING * to_encoding(PARROT_INTERP, STRING *src, STRING *dest)>
+=item C<static STRING * to_encoding(PARROT_INTERP, const STRING *src)>
Converts the string C<src> to this particular encoding. If C<dest> is
provided, it will contain the result. Otherwise this function operates in
@@ -578,24 +510,19 @@
PARROT_CAN_RETURN_NULL
static STRING *
-to_encoding(PARROT_INTERP, ARGMOD(STRING *src), ARGMOD_NULLOK(STRING *dest))
+to_encoding(PARROT_INTERP, ARGIN(const STRING *src))
{
ASSERT_ARGS(to_encoding)
STRING *result;
String_iter src_iter;
UINTVAL offs, dest_len, dest_pos, src_len;
- const int in_place = (dest == NULL);
unsigned char *p;
if (src->encoding == Parrot_utf8_encoding_ptr)
- return in_place ? src : Parrot_str_copy(interp, src);
+ return Parrot_str_clone(interp, src);
+
+ result = Parrot_gc_new_string_header(interp, 0);
src_len = src->strlen;
- if (in_place) {
- result = src;
- }
- else {
- result = dest;
- }
/* init iter before possilby changing encoding */
ENCODING_ITER_INIT(interp, src, &src_iter);
@@ -604,16 +531,11 @@
result->strlen = src_len;
if (!src->strlen)
- return dest;
+ return result;
+
+ Parrot_gc_allocate_string_storage(interp, result, src_len);
+ p = (unsigned char *)result->strstart;
- if (in_place) {
- /* need intermediate memory */
- p = mem_gc_allocate_n_typed(interp, src_len, unsigned char);
- }
- else {
- Parrot_gc_reallocate_string_storage(interp, dest, src_len);
- p = (unsigned char *)dest->strstart;
- }
if (src->charset == Parrot_ascii_charset_ptr) {
for (dest_len = 0; dest_len < src_len; ++dest_len) {
p[dest_len] = ((unsigned char*)src->strstart)[dest_len];
@@ -633,13 +555,9 @@
if (need < 16)
need = 16;
dest_len += need;
- if (in_place)
- p = mem_gc_realloc_n_typed(interp, p, dest_len, unsigned char);
- else {
- result->bufused = dest_pos;
- Parrot_gc_reallocate_string_storage(interp, dest, dest_len);
- p = (unsigned char *)dest->strstart;
- }
+ result->bufused = dest_pos;
+ Parrot_gc_reallocate_string_storage(interp, result, dest_len);
+ p = (unsigned char *)result->strstart;
}
pos = p + dest_pos;
@@ -648,11 +566,7 @@
}
result->bufused = dest_pos;
}
- if (in_place) {
- Parrot_gc_reallocate_string_storage(interp, src, src->bufused);
- memcpy(src->strstart, p, src->bufused);
- mem_gc_free(interp, p);
- }
+
return result;
}
@@ -675,29 +589,6 @@
return utf8_decode(interp, start);
}
-/*
-
-=item C<static void set_codepoint(PARROT_INTERP, STRING *src, UINTVAL offset,
-UINTVAL codepoint)>
-
-Sets, in string C<src> at position C<offset>, the codepoint C<codepoint>.
-
-=cut
-
-*/
-
-static void
-set_codepoint(PARROT_INTERP, ARGIN(STRING *src), UINTVAL offset, UINTVAL codepoint)
-{
- ASSERT_ARGS(set_codepoint)
- const void *start;
- void *p;
- DECL_CONST_CAST;
-
- start = utf8_skip_forward(src->strstart, offset);
- p = PARROT_const_cast(void *, start);
- utf8_encode(interp, p, codepoint);
-}
/*
@@ -789,7 +680,7 @@
{
ASSERT_ARGS(get_codepoints)
- STRING * const return_string = Parrot_str_new_COW(interp, src);
+ STRING * const return_string = Parrot_str_copy(interp, src);
String_iter iter;
UINTVAL start;
@@ -827,10 +718,7 @@
get_bytes(PARROT_INTERP, ARGMOD(STRING *src), UINTVAL offset, UINTVAL count)
{
ASSERT_ARGS(get_bytes)
- STRING * const return_string = Parrot_str_new_COW(interp, src);
-
- return_string->encoding = src->encoding; /* XXX */
- return_string->charset = src->charset;
+ STRING * const return_string = Parrot_str_copy(interp, src);
return_string->strstart = (char *)return_string->strstart + offset ;
return_string->bufused = count;
@@ -841,125 +729,11 @@
return return_string;
}
-/*
-
-=item C<static STRING * get_codepoints_inplace(PARROT_INTERP, STRING *src,
-UINTVAL offset, UINTVAL count, STRING *return_string)>
-
-Gets from string C<src> at position C<offset> C<count> codepoints and returns
-them in C<return_string>.
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-static STRING *
-get_codepoints_inplace(PARROT_INTERP, ARGMOD(STRING *src),
- UINTVAL offset, UINTVAL count, ARGMOD(STRING *return_string))
-{
- ASSERT_ARGS(get_codepoints_inplace)
- String_iter iter;
- UINTVAL start;
-
- Parrot_str_reuse_COW(interp, src, return_string);
- iter_init(interp, src, &iter);
- iter.set_position(interp, &iter, offset);
-
- start = iter.bytepos;
-
- return_string->strstart = (char *)return_string->strstart + start;
- iter.set_position(interp, &iter, offset + count);
-
- return_string->bufused = iter.bytepos - start;
- return_string->strlen = count;
- return_string->hashval = 0;
-
- return return_string;
-}
-
-/*
-
-=item C<static STRING * get_bytes_inplace(PARROT_INTERP, STRING *src, UINTVAL
-offset, UINTVAL count, STRING *return_string)>
-
-Gets from string C<src> at position C<offset> C<count> bytes and returns them
-in C<return_string>.
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-static STRING *
-get_bytes_inplace(PARROT_INTERP, SHIM(STRING *src),
- SHIM(UINTVAL offset), SHIM(UINTVAL count), SHIM(STRING *return_string))
-{
- ASSERT_ARGS(get_bytes_inplace)
- UNIMPL;
-}
-
-/*
-
-=item C<static void set_codepoints(PARROT_INTERP, STRING *src, UINTVAL offset,
-UINTVAL count, STRING *new_codepoints)>
-
-Replaces in string C<src> at position C<offset> for C<count> codepoints with
-the contents of string C<new_codepoints>.
-
-=cut
-
-*/
-
-static void
-set_codepoints(PARROT_INTERP, SHIM(STRING *src),
- SHIM(UINTVAL offset), SHIM(UINTVAL count), SHIM(STRING *new_codepoints))
-{
- ASSERT_ARGS(set_codepoints)
- UNIMPL;
-}
-
-/*
-
-=item C<static void set_bytes(PARROT_INTERP, STRING *src, UINTVAL offset,
-UINTVAL count, STRING *new_bytes)>
-
-Replaces in string C<src> at position C<offset> for C<count> bytes with the
-contents of string C<new_bytes>.
-
-=cut
-
-*/
-
-static void
-set_bytes(PARROT_INTERP, SHIM(STRING *src),
- SHIM(UINTVAL offset), SHIM(UINTVAL count), SHIM(STRING *new_bytes))
-{
- ASSERT_ARGS(set_bytes)
- UNIMPL;
-}
-
-/*
-
-=item C<static void become_encoding(PARROT_INTERP, STRING *src)>
-
-Unconditionally makes the string be in this encoding, if that's valid
-
-=cut
-
-*/
-
-static void
-become_encoding(PARROT_INTERP, SHIM(STRING *src))
-{
- ASSERT_ARGS(become_encoding)
- UNIMPL;
-}
/*
-=item C<static UINTVAL codepoints(PARROT_INTERP, STRING *src)>
+=item C<static UINTVAL codepoints(PARROT_INTERP, const STRING *src)>
Returns the number of codepoints in string C<src>.
@@ -968,7 +742,7 @@
*/
static UINTVAL
-codepoints(PARROT_INTERP, ARGMOD(STRING *src))
+codepoints(PARROT_INTERP, ARGIN(const STRING *src))
{
ASSERT_ARGS(codepoints)
String_iter iter;
@@ -984,7 +758,7 @@
/*
-=item C<static UINTVAL bytes(PARROT_INTERP, STRING *src)>
+=item C<static UINTVAL bytes(PARROT_INTERP, const STRING *src)>
Returns the number of bytes in string C<src>.
@@ -994,7 +768,7 @@
PARROT_PURE_FUNCTION
static UINTVAL
-bytes(SHIM_INTERP, ARGIN(STRING *src))
+bytes(SHIM_INTERP, ARGIN(const STRING *src))
{
ASSERT_ARGS(bytes)
return src->bufused;
@@ -1025,7 +799,7 @@
/*
-=item C<ENCODING * Parrot_encoding_utf8_init(PARROT_INTERP)>
+=item C<void Parrot_encoding_utf8_init(PARROT_INTERP)>
Initializes the UTF-8 encoding.
@@ -1033,8 +807,7 @@
*/
-PARROT_CANNOT_RETURN_NULL
-ENCODING *
+void
Parrot_encoding_utf8_init(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_encoding_utf8_init)
@@ -1045,24 +818,20 @@
4, /* Max bytes per codepoint 0 .. 0x10ffff */
to_encoding,
get_codepoint,
- set_codepoint,
get_byte,
set_byte,
get_codepoints,
- get_codepoints_inplace,
get_bytes,
- get_bytes_inplace,
- set_codepoints,
- set_bytes,
- become_encoding,
codepoints,
bytes,
iter_init,
- find_cclass
+ find_cclass,
+ NULL
};
STRUCT_COPY_FROM_STRUCT(return_encoding, base_encoding);
Parrot_register_encoding(interp, "utf8", return_encoding);
- return return_encoding;
+
+ return;
}
/*
Modified: branches/avl_string_cache/src/string/encoding/utf8.h
==============================================================================
--- branches/avl_string_cache/src/string/encoding/utf8.h Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/encoding/utf8.h Thu Apr 22 09:55:26 2010 (r45889)
@@ -16,8 +16,7 @@
/* HEADERIZER BEGIN: src/string/encoding/utf8.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-PARROT_CANNOT_RETURN_NULL
-ENCODING * Parrot_encoding_utf8_init(PARROT_INTERP)
+void Parrot_encoding_utf8_init(PARROT_INTERP)
__attribute__nonnull__(1);
#define ASSERT_ARGS_Parrot_encoding_utf8_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/avl_string_cache/src/string/primitives.c
==============================================================================
--- branches/avl_string_cache/src/string/primitives.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/string/primitives.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -70,8 +70,8 @@
/*
-=item C<Parrot_UInt4 string_unescape_one(PARROT_INTERP, UINTVAL *offset, STRING
-*string)>
+=item C<Parrot_UInt4 string_unescape_one(PARROT_INTERP, UINTVAL *offset, const
+STRING *string)>
Unescape a single character. We assume that we're at the start of a
sequence, right after the \.
@@ -83,7 +83,7 @@
PARROT_EXPORT
Parrot_UInt4
string_unescape_one(PARROT_INTERP, ARGMOD(UINTVAL *offset),
- ARGMOD(STRING *string))
+ ARGIN(const STRING *string))
{
ASSERT_ARGS(string_unescape_one)
UINTVAL workchar = 0;
Modified: branches/avl_string_cache/src/sub.c
==============================================================================
--- branches/avl_string_cache/src/sub.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/sub.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -49,60 +49,6 @@
/*
-=item C<PMC * new_ret_continuation_pmc(PARROT_INTERP, opcode_t *address)>
-
-Returns a new C<RetContinuation> PMC, and sets address field to C<address>
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_MALLOC
-PARROT_CANNOT_RETURN_NULL
-PMC *
-new_ret_continuation_pmc(PARROT_INTERP, ARGIN_NULLOK(opcode_t *address))
-{
- ASSERT_ARGS(new_ret_continuation_pmc)
- PMC* const continuation = Parrot_pmc_new(interp, enum_class_RetContinuation);
- VTABLE_set_pointer(interp, continuation, address);
- return continuation;
-}
-
-/*
-
-=item C<void invalidate_retc_context(PARROT_INTERP, PMC *cont)>
-
-Make true Continuations from all RetContinuations up the call chain.
-
-=cut
-
-*/
-
-void
-invalidate_retc_context(PARROT_INTERP, ARGMOD(PMC *cont))
-{
- ASSERT_ARGS(invalidate_retc_context)
-
- PMC *ctx = PARROT_CONTINUATION(cont)->from_ctx;
- cont = Parrot_pcc_get_continuation(interp, ctx);
-
- while (1) {
- /*
- * We stop if we encounter a true continuation, because
- * if one were created, everything up the chain would have been
- * invalidated earlier.
- */
- if (!cont || cont->vtable != interp->vtables[enum_class_RetContinuation])
- break;
- cont->vtable = interp->vtables[enum_class_Continuation];
- ctx = Parrot_pcc_get_caller_ctx(interp, ctx);
- cont = Parrot_pcc_get_continuation(interp, ctx);
- }
-}
-
-/*
-
=item C<STRING* Parrot_full_sub_name(PARROT_INTERP, PMC* sub_pmc)>
Return namespace, name, and location of subroutine.
@@ -395,7 +341,7 @@
PMC * const lex_pad = Parrot_pcc_get_lex_pad(interp, ctx);
PMC * outer = Parrot_pcc_get_outer_ctx(interp, ctx);
- if (!outer)
+ if (PMC_IS_NULL(outer))
return lex_pad;
if (!PMC_IS_NULL(lex_pad))
@@ -428,7 +374,7 @@
PMC * const lex_pad = Parrot_pcc_get_lex_pad(interp, ctx);
PMC * caller = Parrot_pcc_get_caller_ctx(interp, ctx);
- if (!caller)
+ if (PMC_IS_NULL(caller))
return lex_pad;
if (!PMC_IS_NULL(lex_pad))
@@ -633,10 +579,6 @@
F<include/parrot/sub.h>.
-=head1 HISTORY
-
-Initial version by Melvin on 2002/06/6.
-
=cut
*/
Modified: branches/avl_string_cache/src/thread.c
==============================================================================
--- branches/avl_string_cache/src/thread.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/thread.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -20,6 +20,7 @@
#include "parrot/parrot.h"
#include "parrot/atomic.h"
+#include "parrot/runcore_api.h"
#include "pmc/pmc_sub.h"
#include "pmc/pmc_parrotinterpreter.h"
@@ -30,8 +31,7 @@
static Parrot_Interp detach(UINTVAL tid);
PARROT_CAN_RETURN_NULL
-static Shared_gc_info * get_pool(PARROT_INTERP)
- __attribute__nonnull__(1);
+static Shared_gc_info * get_pool(void);
PARROT_WARN_UNUSED_RESULT
static int is_suspended_for_gc(PARROT_INTERP)
@@ -59,17 +59,13 @@
static Parrot_Interp pt_check_tid(UINTVAL tid, ARGIN(const char *from))
__attribute__nonnull__(2);
-static int pt_gc_count_threads(PARROT_INTERP)
- __attribute__nonnull__(1);
-
+static int pt_gc_count_threads(void);
static void pt_gc_wait_for_stage(PARROT_INTERP,
thread_gc_stage_enum from_stage,
thread_gc_stage_enum to_stage)
__attribute__nonnull__(1);
-static void pt_gc_wakeup_check(PARROT_INTERP)
- __attribute__nonnull__(1);
-
+static void pt_gc_wakeup_check(void);
static void pt_ns_clone(PARROT_INTERP,
ARGOUT(Parrot_Interp d),
ARGOUT(PMC *dest_ns),
@@ -100,8 +96,7 @@
static void* thread_func(ARGIN_NULLOK(void *arg));
#define ASSERT_ARGS_detach __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_get_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_get_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_is_suspended_for_gc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_make_local_args_copy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -115,12 +110,10 @@
PARROT_ASSERT_ARG(arg))
#define ASSERT_ARGS_pt_check_tid __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(from))
-#define ASSERT_ARGS_pt_gc_count_threads __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_pt_gc_count_threads __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_pt_gc_wait_for_stage __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_pt_gc_wakeup_check __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_pt_gc_wakeup_check __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_pt_ns_clone __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(d) \
@@ -215,7 +208,7 @@
/*
-=item C<static Shared_gc_info * get_pool(PARROT_INTERP)>
+=item C<static Shared_gc_info * get_pool(void)>
Gets the shared gc information. For now this is global data; ideally it will
become something other than a static variable. If everything uses this
@@ -227,7 +220,7 @@
PARROT_CAN_RETURN_NULL
static Shared_gc_info *
-get_pool(PARROT_INTERP)
+get_pool(void)
{
ASSERT_ARGS(get_pool)
return shared_gc_info;
@@ -549,7 +542,7 @@
}
/* make sure we don't block a GC run */
- pt_gc_wakeup_check(interp);
+ pt_gc_wakeup_check();
PARROT_ASSERT(interp->thread_data->state & THREAD_STATE_FINISHED);
UNLOCK(interpreter_array_mutex);
@@ -953,7 +946,7 @@
/*
-=item C<static int pt_gc_count_threads(PARROT_INTERP)>
+=item C<static int pt_gc_count_threads(void)>
Returns the number of active threads in the system (running or suspended). Be
sure to hold C<interpreter_array_mutex>.
@@ -963,7 +956,7 @@
*/
static int
-pt_gc_count_threads(PARROT_INTERP)
+pt_gc_count_threads(void)
{
ASSERT_ARGS(pt_gc_count_threads)
UINTVAL i;
@@ -1010,7 +1003,7 @@
LOCK(interpreter_array_mutex);
DEBUG_ONLY(fprintf(stderr, "%p: got lock\n", interp));
- thread_count = pt_gc_count_threads(interp);
+ thread_count = pt_gc_count_threads();
PARROT_ASSERT(info->gc_stage == from_stage);
PARROT_ASSERT(!(interp->thread_data->state & THREAD_STATE_NOT_STARTED));
@@ -1041,7 +1034,7 @@
/*
-=item C<static void pt_gc_wakeup_check(PARROT_INTERP)>
+=item C<static void pt_gc_wakeup_check(void)>
Checks if it's necessary to wake threads to perform garbage collection. This
is called after thread death. Be sure to hold C<interpreter_array_mutex>.
@@ -1051,7 +1044,7 @@
*/
static void
-pt_gc_wakeup_check(PARROT_INTERP)
+pt_gc_wakeup_check(void)
{
ASSERT_ARGS(pt_gc_wakeup_check)
Shared_gc_info * const info = shared_gc_info;
@@ -1060,7 +1053,7 @@
if (!info)
return;
- thread_count = pt_gc_count_threads(interp);
+ thread_count = pt_gc_count_threads();
if (info->num_reached == thread_count) {
PARROT_ASSERT(info->gc_stage == THREAD_GC_STAGE_NONE);
@@ -1577,7 +1570,7 @@
if (!running_threads)
return;
- info = get_pool(interp);
+ info = get_pool();
PARROT_ATOMIC_INT_GET(block_level, info->gc_block_level);
DEBUG_ONLY(fprintf(stderr, "start threaded mark\n"));
@@ -1714,7 +1707,7 @@
Parrot_shared_gc_block(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_shared_gc_block)
- Shared_gc_info * const info = get_pool(interp);
+ Shared_gc_info * const info = get_pool();
if (info) {
int level;
@@ -1738,7 +1731,7 @@
Parrot_shared_gc_unblock(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_shared_gc_unblock)
- Shared_gc_info * const info = get_pool(interp);
+ Shared_gc_info * const info = get_pool();
if (info) {
int level;
PARROT_ATOMIC_INT_DEC(level, info->gc_block_level);
Modified: branches/avl_string_cache/src/utils.c
==============================================================================
--- branches/avl_string_cache/src/utils.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/utils.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -644,7 +644,7 @@
{
ASSERT_ARGS(Parrot_byte_rindex)
const INTVAL searchlen = search->strlen;
- const char * const search_start = (const char *)Buffer_bufstart(search);
+ const char * const search_start = (const char *)(search->strstart);
UINTVAL max_possible_offset = (base->strlen - search->strlen);
INTVAL current_offset;
@@ -653,7 +653,7 @@
for (current_offset = max_possible_offset; current_offset >= 0;
current_offset--) {
- const char * const base_start = (char *)Buffer_bufstart(base) + current_offset;
+ const char * const base_start = (char *)(base->strstart) + current_offset;
if (memcmp(base_start, search_start, searchlen) == 0) {
return current_offset;
}
Modified: branches/avl_string_cache/src/vtables.c
==============================================================================
--- branches/avl_string_cache/src/vtables.c Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/src/vtables.c Thu Apr 22 09:55:26 2010 (r45889)
@@ -91,14 +91,14 @@
PARROT_EXPORT
void
-Parrot_destroy_vtable(PARROT_INTERP, ARGMOD(VTABLE *vtable))
+Parrot_destroy_vtable(PARROT_INTERP, ARGFREE_NOTNULL(VTABLE *vtable))
{
ASSERT_ARGS(Parrot_destroy_vtable)
/* We sometimes get a type number allocated without any corresponding
* vtable. E.g. if you load perl_group, perlscalar is this way. */
if (vtable->ro_variant_vtable) {
- VTABLE *ro_vtable = vtable->ro_variant_vtable;
+ VTABLE * const ro_vtable = vtable->ro_variant_vtable;
if (ro_vtable->isa_hash) {
parrot_hash_destroy(interp, ro_vtable->isa_hash);
Modified: branches/avl_string_cache/t/codingstd/c_function_docs.t
==============================================================================
--- branches/avl_string_cache/t/codingstd/c_function_docs.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/codingstd/c_function_docs.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -91,8 +91,6 @@
}
__DATA__
-compilers/imcc/instructions.c
-compilers/imcc/optimizer.c
compilers/imcc/parser_util.c
compilers/imcc/pbc.c
compilers/imcc/pcc.c
Modified: branches/avl_string_cache/t/compilers/imcc/syn/file.t
==============================================================================
--- branches/avl_string_cache/t/compilers/imcc/syn/file.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/compilers/imcc/syn/file.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
use strict;
@@ -400,7 +400,7 @@
$err_msg =~ s/\r//g if $^O =~ /^(MSWin32|msys)$/i;
is( $err_msg, << "OUT", 'including a non-existent file' );
error:imcc:$enoent_err_msg
-\tin file '$temp_pir' line 2
+\tin file '$temp_pir' line 1
OUT
}
Modified: branches/avl_string_cache/t/compilers/imcc/syn/subflags.t
==============================================================================
--- branches/avl_string_cache/t/compilers/imcc/syn/subflags.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/compilers/imcc/syn/subflags.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -69,7 +69,7 @@
isa_ok($P30, 'Sub', ":method sub found w/.const")
$P0 = get_global 'method1'
$I0 = isnull $P0
- todo($I0, ":method sub not found in namespace")
+ ok($I0, ":method sub not found in namespace")
## :subid subs
.const 'Sub' $P40 = 'subid1'
Modified: branches/avl_string_cache/t/distro/file_metadata.t
==============================================================================
--- branches/avl_string_cache/t/distro/file_metadata.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/distro/file_metadata.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -40,7 +40,7 @@
}
-my $cmd = -d '.svn' ? 'svn' : 'svk';
+my $cmd = 'svn';
my @git_svn_metadata; # set in BEGIN block
# how many files to check at a time. May have to lower this when we run
@@ -245,7 +245,7 @@
plan skip_all => q{git svn file metadata not retained};
}
}
- elsif ( !( (-d '.svn' && `svn info .`) or `svk info .` ) ) {
+ elsif ( ! (-d '.svn' && `svn info .`) ) {
plan skip_all => 'not a working copy';
}
else { plan tests => 5 }
@@ -253,7 +253,7 @@
#
# Given a list, a count, and a sub, process that list count elements
-# at a time. (do this to speed up execution for the svn/svk commands)
+# at a time. (do this to speed up execution for the svn commands)
#
sub at_a_time {
Deleted: branches/avl_string_cache/t/dynpmc/gdbmhash.t
==============================================================================
--- branches/avl_string_cache/t/dynpmc/gdbmhash.t Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,441 +0,0 @@
-#! parrot
-# Copyright (C) 2005-2010, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-t/dynpmc/gdbmhash.t - test the GDBMHash PMC
-
-=head1 SYNOPSIS
-
- % parrot t/dynpmc/gdbmhash.t
-
-=head1 DESCRIPTION
-
-Tests the C<GDBMHash> PMC.
-
-=cut
-
-.sub main
- .include 'test_more.pir'
- .include 'iglobals.pasm'
- .local pmc config_hash, interp
-
- plan(48)
- interp = getinterp
- config_hash = interp[.IGLOBALS_CONFIG_HASH]
- $S0 = config_hash['has_gdbm']
- unless $S0 goto no_gdbm
-
- test_typeof()
- test_interface()
- test_get_integer()
- test_get_bool()
- test_modify_an_entry()
- test_exists_keyed()
- test_set_string_with_string_key()
- test_set_string_with_pmc_key()
- test_set_pmc_with_string_key()
- test_set_pmc_with_pmc_key()
- test_set_intval_with_string_key()
- test_set_floatval_with_pmc_key()
- test_delete_keyed()
- .return()
- no_gdbm:
- skip(48, 'No gdbm library available')
-.end
-
-.sub unlink
- .param string filename
- new $P0, 'OS'
- push_eh _handler
- $P0.'rm'(filename)
- .return ()
- _handler:
- .local pmc e
- .get_results (e)
- printerr "# Cannot unlink "
- printerr filename
- printerr " ("
- printerr e
- printerr ")\n"
-.end
-
-.sub test_typeof
- .local pmc gdbmhash_lib
- gdbmhash_lib = loadlib "gdbmhash"
- .local pmc hash_1
- hash_1 = new "GDBMHash"
- .local string type
- type = typeof hash_1
- is(type, 'GDBMHash', 'typeof')
-.end
-
-.sub test_interface
- .local pmc gdbmhash_lib
- gdbmhash_lib = loadlib "gdbmhash"
- .local pmc hash_1
- hash_1 = new "GDBMHash"
- .local int bool1
- does bool1, hash_1, "scalar"
- is(bool1, 0, 'check whether interface is done')
- does bool1, hash_1, "hash"
- is(bool1, 1, 'check whether interface is done')
- does bool1, hash_1, "no_interface"
- is(bool1, 0, 'check whether interface is done')
-.end
-
-.sub test_get_integer
- .local pmc gdbmhash_lib
- gdbmhash_lib = loadlib "gdbmhash"
- .local pmc hash_1
- hash_1 = new "GDBMHash"
- .local int hash_size
- hash_size = hash_1
- is(hash_size, 0, 'An unitialized GDBMHash has size 0')
-
- hash_1 = "gdbm_hash_1"
- hash_size = hash_1
- is(hash_size, 0, 'An GDBMHash for a new file has size 0')
-
- hash_1["key1"] = "val1"
- hash_size = hash_1
- is(hash_size, 1, 'After one assignment GDBMHash has size 1')
-
- hash_1["key2"] = "val2"
- hash_size = hash_1
- is(hash_size, 2, 'After two assignments GDBMHash has size 2')
-
- hash_1["key3"] = "val3"
- hash_1["key4"] = "val4"
- hash_1["key5"] = "val5"
- hash_1["key6"] = "val6"
- hash_1["key7"] = "val7"
- hash_1["key8"] = "val8"
- hash_1["key9"] = "val9"
- hash_1["key10"] = "val10"
- hash_1["key11"] = "val11"
- hash_1["key12"] = "val12"
- hash_1["key13"] = "val13"
- hash_1["key14"] = "val14"
- hash_1["key15"] = "val15"
- hash_size = hash_1
- is(hash_size, 15, 'After 15 assignments GDBMHash has size 15')
-
- delete hash_1["key7"]
- delete hash_1["key9"]
-
- hash_size = hash_1
- is(hash_size, 13, 'After 15 assignments and 2 deletes GDBMHash has size 13')
-
- hash_1."close"()
- unlink('gdbm_hash_1')
-.end
-
-.sub test_get_bool
- .local pmc gdbmhash_lib
- gdbmhash_lib = loadlib "gdbmhash"
- .local pmc hash_1
- hash_1 = new "GDBMHash"
- if hash_1 goto HASH1_IS_1
- ok(1, 'An uninitialized GDBMHash is not')
-HASH1_IS_1:
-
- hash_1 = "gdbm_hash_2"
- if hash_1 goto HASH1_IS_2
- ok(1, 'A GDBMHash for a new file is not')
-HASH1_IS_2:
-
- hash_1["key1"] = "val1"
- if hash_1 goto HASH1_IS_3
- ok(0, 'After one insert the GDBMHash is not')
-HASH1_IS_3:
- ok(1, 'After one insert the GDBMHash is')
-
- hash_1."close"()
- unlink('gdbm_hash_2')
-.end
-
-# The value is a STRING, with umlaut
-# The key used for insertion is a STRING.
-.sub test_modify_an_entry
- .local pmc gdbmhash_lib
- gdbmhash_lib = loadlib "gdbmhash"
- .local pmc hash_1
- hash_1 = new "GDBMHash"
- hash_1 = "gdbm_hash_3"
-
- .local pmc val_pmc
-
- hash_1["Schluessel"] = "Wert urspruenglich"
- val_pmc = hash_1["Schluessel"]
- is(val_pmc, 'Wert urspruenglich', 'modify an entry')
- hash_1["Schluessel"] = "Wert geaendert"
- val_pmc = hash_1["Schluessel"]
- is(val_pmc, 'Wert geaendert', 'modify an entry')
- hash_1["Schluessel"] = "Wert nocheinmal geaendert"
- val_pmc = hash_1["Schluessel"]
- is(val_pmc, 'Wert nocheinmal geaendert', 'modify an entry')
- hash_1["Schluessel"] = "Wert urspruenglich"
- val_pmc = hash_1["Schluessel"]
- is(val_pmc, 'Wert urspruenglich', 'modify an entry')
-
- hash_1."close"()
- unlink('gdbm_hash_3')
-.end
-
-# The value is a STRING.
-# The key used for insertion is a STRING.
-.sub test_exists_keyed
- .local pmc gdbmhash_lib
- gdbmhash_lib = loadlib "gdbmhash"
- .local pmc hash_1
- hash_1 = new "GDBMHash"
- hash_1 = "gdbm_hash_4"
-
- hash_1["Schluessel"] = "Wert"
-
- .local int exist_flag
- exist_flag = exists hash_1["a"]
- is(exist_flag, 0, 'exists keyed')
- exist_flag = exists hash_1["Schluessel"]
- is(exist_flag, 1, 'exists keyed')
-
- .local pmc key_out
- key_out = new 'String'
- key_out = "b"
- exist_flag = exists hash_1[key_out]
- is(exist_flag, 0, 'exists keyed')
- key_out = "Schluessel"
- exist_flag = exists hash_1[key_out]
- is(exist_flag, 1, 'exists keyed')
-
- hash_1."close"()
- unlink('gdbm_hash_4')
-.end
-
-# The value is a STRING.
-# The key used for insertion is a STRING.
-.sub test_set_string_with_string_key
- .local pmc gdbmhash_lib
- gdbmhash_lib = loadlib "gdbmhash"
- .local pmc hash_1
- hash_1 = new "GDBMHash"
- hash_1 = "gdbm_hash_5"
-
- hash_1["Schluessel"] = "Wert"
-
- .local pmc val_pmc
- .local string val_string
-
- val_string = hash_1["Schluessel"]
- is(val_string, 'Wert', 'set string with string key')
- val_pmc = hash_1["Schluessel"]
- is(val_pmc, 'Wert', 'set string with string key')
- .local pmc key_out
- key_out = new 'String'
- key_out = "Schluessel"
- val_string = hash_1[key_out]
- is(val_string, 'Wert', 'set string with string key')
- val_pmc = hash_1[key_out]
- is(val_pmc, 'Wert', 'set string with string key')
-
- hash_1."close"()
- unlink('gdbm_hash_5')
-.end
-
-# The value is a STRING.
-# The key used for insertion is a PMC.
-.sub test_set_string_with_pmc_key
- .local pmc gdbmhash_lib
- gdbmhash_lib = loadlib "gdbmhash"
- .local pmc hash_1
- hash_1 = new "GDBMHash"
- hash_1 = "gdbm_hash_6"
-
- .local pmc key_pmc
- key_pmc = new 'String'
- key_pmc = "Schluessel"
- hash_1[key_pmc] = "Wert"
-
- .local pmc val_pmc
- .local string val_string
-
- val_string = hash_1["Schluessel"]
- is(val_string, 'Wert', 'set string with pmc key')
- val_pmc = hash_1["Schluessel"]
- is(val_pmc, 'Wert', 'set string with pmc key')
- .local pmc key2
- key2 = new 'String'
- key2 = "Schluessel"
- val_string = hash_1[key2]
- is(val_string, 'Wert', 'set string with pmc key')
- val_pmc = hash_1[key2]
- is(val_pmc, 'Wert', 'set string with pmc key')
-
- hash_1."close"()
- unlink('gdbm_hash_6')
-.end
-
-# The value is a PMC.
-# The key used for insertion is a STRING.
-.sub test_set_pmc_with_string_key
- .local pmc gdbmhash_lib
- gdbmhash_lib = loadlib "gdbmhash"
- .local pmc hash_1
- hash_1 = new "GDBMHash"
- hash_1 = "gdbm_hash_7"
-
- .local pmc val
- val = new 'String'
- val = "Wert"
- hash_1["Schluessel"] = val
-
- .local pmc val_pmc
- .local string val_string
-
- val_string = hash_1["Schluessel"]
- is(val_string, 'Wert', 'set pmc with string key')
- val_pmc = hash_1["Schluessel"]
- is(val_pmc, 'Wert', 'set pmc with string key')
- .local pmc key_out
- key_out = new 'String'
- key_out = "Schluessel"
- val_string = hash_1[key_out]
- is(val_string, 'Wert', 'set pmc with string key')
- val_pmc = hash_1[key_out]
- is(val_pmc, 'Wert', 'set pmc with string key')
-
- hash_1."close"()
- unlink('gdbm_hash_7')
-.end
-
-# The value is a PMC.
-# The key used for insertion is a PMC.
-.sub test_set_pmc_with_pmc_key
- .local pmc gdbmhash_lib
- gdbmhash_lib = loadlib "gdbmhash"
- .local pmc hash_1
- hash_1 = new "GDBMHash"
- hash_1 = "gdbm_hash_8"
-
- .local pmc val
- val = new 'String'
- val = "Wert"
- .local pmc key_pmc
- key_pmc = new 'String'
- key_pmc = "Schluessel"
- hash_1[key_pmc] = val
-
- .local pmc val_pmc
- .local string val_string
-
- val_string = hash_1["Schluessel"]
- is(val_string, 'Wert', 'set pmc with pmc key')
- val_pmc = hash_1["Schluessel"]
- is(val_pmc, 'Wert', 'set pmc with pmc key')
- .local pmc key2
- key2 = new 'String'
- key2 = "Schluessel"
- val_string = hash_1[key2]
- is(val_string, 'Wert', 'set pmc with pmc key')
- val_pmc = hash_1[key2]
- is(val_pmc, 'Wert', 'set pmc with pmc key')
-
- hash_1."close"()
- unlink('gdbm_hash_8')
-.end
-
-# The value is an INTVAL
-# The key used for insertion is a STRING.
-.sub test_set_intval_with_string_key
- .local pmc gdbmhash_lib
- gdbmhash_lib = loadlib "gdbmhash"
- .local pmc hash_1
- hash_1 = new "GDBMHash"
- hash_1 = "gdbm_hash_9"
-
- hash_1["Schluessel"] = -11012005
-
- .local pmc val_pmc
- .local string val_string
-
- val_string = hash_1["Schluessel"]
- is(val_string, -11012005, 'set intval with a string key')
- val_pmc = hash_1["Schluessel"]
- is(val_pmc, -11012005, 'set intval with a string key')
- .local pmc key_out
- key_out = new 'String'
- key_out = "Schluessel"
- val_string = hash_1[key_out]
- is(val_string, -11012005, 'set intval with a string key')
- val_pmc = hash_1[key_out]
- is(val_pmc, -11012005, 'set intval with a string key')
-
- hash_1."close"()
- unlink('gdbm_hash_9')
-.end
-
-# The value is a FLOATVAL.
-# The key used for insertion is a PMC.
-.sub test_set_floatval_with_pmc_key
- .local pmc gdbmhash_lib
- gdbmhash_lib = loadlib "gdbmhash"
- .local pmc hash_1
- hash_1 = new "GDBMHash"
- hash_1 = "gdbm_hash_10"
-
- .local pmc key_pmc
- key_pmc = new 'String'
- key_pmc = "Schluessel"
- hash_1[key_pmc] = -1101.2005
-
- .local pmc val_pmc
- .local string val_string
-
- val_string = hash_1["Schluessel"]
- is(val_string, -1101.2005, 'set float with a pmc key')
- val_pmc = hash_1["Schluessel"]
- is(val_pmc, -1101.2005, 'set float with a pmc key')
- .local pmc key2
- key2 = new 'String'
- key2 = "Schluessel"
- val_string = hash_1[key2]
- is(val_string, -1101.2005, 'set float with a pmc key')
- val_pmc = hash_1[key2]
- is(val_pmc, -1101.2005, 'set float with a pmc key')
-
- hash_1."close"()
- unlink('gdbm_hash_10')
-.end
-
-.sub test_delete_keyed
- .local pmc gdbmhash_lib
- gdbmhash_lib = loadlib "gdbmhash"
- .local pmc hash_1
- hash_1 = new "GDBMHash"
- hash_1 = "gdbm_hash_11"
-
- .local int exist_flag
- .local int hash_size
-
- exist_flag = exists hash_1["a"]
- is(exist_flag, 0, 'delete keyed')
-
- hash_1["a"] = "A"
- exist_flag = exists hash_1["a"]
- is(exist_flag, 1, 'delete keyed')
-
- delete hash_1["a"]
- exist_flag = exists hash_1["a"]
- is(exist_flag, 0, 'delete keyed')
-
- hash_1."close"()
- unlink('gdbm_hash_11')
-.end
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/avl_string_cache/t/examples/tutorial.t
==============================================================================
--- branches/avl_string_cache/t/examples/tutorial.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/examples/tutorial.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -220,7 +220,7 @@
ok 1 - first test
ok 2 - second test
ok 3 #skip skipped test
-ok 4 # TODO 42
+ok 4 # TODO todo test
END_EXPECTED
);
Modified: branches/avl_string_cache/t/harness
==============================================================================
--- branches/avl_string_cache/t/harness Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/harness Thu Apr 22 09:55:26 2010 (r45889)
@@ -81,7 +81,7 @@
archive => 'parrot_test_run.tar.gz',
merge => 1,
extra_properties => \%env_data,
- extra_files => [ 'myconfig', 'config_lib.pasm' ],
+ extra_files => [ 'myconfig', 'config_lib.pir' ],
}
);
$harness->runtests(@tests);
Added: branches/avl_string_cache/t/harness.pir
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/avl_string_cache/t/harness.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -0,0 +1,390 @@
+#!parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+.sub 'main' :main
+ .param pmc argv
+ $S0 = shift argv
+ .local int argc
+ argc = elements argv
+ if argc > 0 goto L1
+ help()
+ end
+ L1:
+ .local pmc opts
+ opts = _parse_opts(argv)
+ $I0 = exists opts['help']
+ unless $I0 goto L2
+ help()
+ end
+ L2:
+ .tailcall do(opts, argv)
+.end
+
+.sub 'help' :anon
+ say <<"HELP"
+parrot t/harness.pir [options] [testfiles]
+ --core-tests
+ --runcore-tests
+ --code-tests
+ --archive ... create a TAP archive of the test run
+ --send-to-smolder ... send the TAP archive to the Parrot Smolder server
+HELP
+.end
+
+.sub '_parse_opts' :anon
+ .param pmc argv
+ load_bytecode 'Getopt/Obj.pbc'
+ $P0 = new ['Getopt';'Obj']
+ $P0.'notOptStop'(1)
+ push $P0, 'gc-debug'
+ push $P0, 'core-tests'
+ push $P0, 'runcore-tests'
+ push $P0, 'code-tests'
+ push $P0, 'run-exec'
+ push $P0, 'archive'
+ push $P0, 'send-to-smolder'
+ push $P0, 'help|h'
+ $P1 = $P0.'get_options'(argv)
+ .return ($P1)
+.end
+
+.sub 'do' :anon
+ .param pmc opts
+ .param pmc files
+ set_test_prog_args(opts)
+ load_bytecode 'TAP/Harness.pbc'
+ .local pmc options, env, harness, aggregate
+ options = new 'Hash'
+ env = new 'Env'
+ $I0 = exists env['HARNESS_VERBOSE']
+ unless $I0 goto L1
+ $S0 = env['HARNESS_VERBOSE']
+ options['verbosity'] = $S0
+ L1:
+ $I0 = exists opts['archive']
+ if $I0 goto L2
+ harness = new ['TAP';'Harness']
+ options['directives'] = 1
+ goto L3
+ L2:
+ harness = new ['TAP';'Harness';'Archive']
+ harness.'archive'('parrot_test_run.tar.gz')
+ options['merge'] = 1
+ .local pmc env_data
+ env_data = collect_test_environment_data()
+ harness.'extra_props'(env_data)
+ $P0 = split ' ', 'myconfig config_lib.pir'
+ harness.'extra_files'($P0)
+ L3:
+ harness.'process_args'(options)
+ $P0 = _get_tests(opts, files)
+ aggregate = harness.'runtests'($P0)
+ $I0 = exists opts['send-to-smolder']
+ unless $I0 goto L4
+ .tailcall send_archive_to_smolder(env_data)
+ L4:
+ $I0 = aggregate.'all_passed'()
+ $I0 = not $I0
+ exit $I0
+.end
+
+.sub 'set_test_prog_args' :anon
+ .param pmc opts
+ $S0 = ''
+ $I0 = exists opts['gc-debug']
+ unless $I0 goto L1
+ $S0 .= ' --gc-debug'
+ L1:
+ $I0 = exists opts['run-exec']
+ unless $I0 goto L2
+ $S0 .= ' --run-exec'
+ L2:
+ $S0 = substr $S0, 1
+ $P0 = new 'Env'
+ $P0['TEST_PROG_ARGS'] = $S0
+.end
+
+.sub '_get_tests' :anon
+ .param pmc opts
+ .param pmc files
+ .local int nb
+ $I0 = opts['code-tests']
+ unless $I0 goto L1
+ .const string developing_tests = 't/distro/file_metadata.t t/codingstd/*.t'
+ files = glob(developing_tests)
+ goto L2
+ L1:
+ nb = elements files
+ unless nb == 0 goto L2
+ files = _get_common_tests(opts)
+ L2:
+ nb = elements files
+ # currently, FixedStringArray hasn't the method sort.
+ # see TT #1356
+ $P0 = new 'FixedPMCArray'
+ set $P0, nb
+ $I0 = 0
+ $P1 = iter files
+ L3:
+ unless $P1 goto L4
+ $S0 = shift $P1
+ $P2 = split "\\", $S0
+ $S0 = join "/", $P2
+ $P2 = box $S0
+ $P0[$I0] = $P2
+ inc $I0
+ goto L3
+ L4:
+ $P0.'sort'()
+ .return ($P0)
+.end
+
+.sub '_get_common_tests' :anon
+ .param pmc opts
+ .const string runcore_tests = <<'TEST'
+t/compilers/imcc/*/*.t
+t/op/*.t
+t/pmc/*.t
+t/oo/*.t
+t/native_pbc/*.t
+t/dynpmc/*.t
+t/dynoplibs/*.t
+TEST
+ .const string core_tests = <<'TEST'
+t/src/*.t
+t/run/*.t
+t/perl/*.t
+TEST
+ .const string library_tests = <<'TEST'
+t/compilers/pct/*.t
+t/compilers/pge/*.t
+t/compilers/pge/p5regex/*.t
+t/compilers/pge/perl6regex/*.t
+t/compilers/tge/*.t
+t/library/*.t
+t/tools/*.t
+t/profiling/*.t
+TEST
+ .const string configure_tests = <<'TEST'
+t/configure/*.t
+t/steps/*.t
+t/postconfigure/*.t
+TEST
+ $S0 = runcore_tests
+ $I0 = exists opts['runcore-tests']
+ if $I0 goto L1
+ $S0 .= core_tests
+ $I0 = exists opts['core-tests']
+ if $I0 goto L1
+ $S0 .= library_tests
+ $S0 .= configure_tests
+ L1:
+ $P0 = split "\n", $S0
+ $S0 = join ' ', $P0
+ $P0 = glob($S0)
+ .return ($P0)
+.end
+
+.include 'iglobals.pasm'
+
+.sub 'collect_test_environment_data' :anon
+ .local pmc config, env
+ $P0 = getinterp
+ config = $P0[.IGLOBALS_CONFIG_HASH]
+ env = new 'Env'
+ $P0 = new 'Hash'
+ .local string arch
+ arch = config['cpuarch']
+ $P0['Architecture'] = arch
+ $S0 = _get_compiler_version(config)
+ $P0['Compiler'] = $S0
+ .local string devel
+ devel = config['DEVEL']
+ $P0['DEVEL'] = devel
+ .local string optimize
+ optimize = 'none'
+ $I0 = exists config['optimize']
+ unless $I0 goto L1
+ optimize = config['optimize']
+ L1:
+ $P0['Optimize'] = optimize
+ .local string osname
+ osname = config['osname']
+ $P0['Platform'] = osname
+ .local string version
+ version = config['VERSION']
+ $P0['Version'] = version
+ .local string submitter
+ submitter = _get_submitter(config, env)
+ $P0['Submitter'] = submitter
+ _add_subversion_info($P0)
+ .return ($P0)
+.end
+
+.sub '_get_compiler_version' :anon
+ .param pmc config
+ $S0 = config['cc']
+ $I0 = index $S0, 'gcc'
+ unless $I0 >= 0 goto L1
+ $I0 = exists config['gccversion']
+ unless $I0 goto L1
+ $S0 .= ' '
+ $S1 = config['gccversion']
+ $S0 .= $S1
+ .return ($S0)
+ L1:
+ $I0 = index $S0, 'cl'
+ unless $I0 >= 0 goto L2
+ $I0 = exists config['msvcversion']
+ unless $I0 goto L2
+ $S0 .= ' '
+ $S1 = config['msvcversion']
+ $S0 .= $S1
+ .return ($S0)
+ L2:
+ $I0 = exists config['gccversion']
+ unless $I0 goto L3
+ $S0 .= ' (gcc '
+ $S1 = config['gccversion']
+ $S0 .= $S1
+ $S0 .= ')'
+ .return ($S0)
+ L3:
+ $I0 = exists config['msvcversion']
+ unless $I0 goto L4
+ $S0 .= ' (msvc '
+ $S1 = config['msvcversion']
+ $S0 .= $S1
+ $S0 .= ')'
+ .return ($S0)
+ L4:
+ .return ($S0)
+.end
+
+.sub '_get_submitter' :anon
+ .param pmc config
+ .param pmc env
+ $I0 = exists env['SMOLDER_SUBMITTER']
+ unless $I0 goto L1
+ $S0 = env['SMOLDER_SUBMITTER']
+ .return ($S0)
+ L1:
+ .local string me
+ $I0 = exists config['win32']
+ unless $I0 goto L2
+ me = env['USERNAME']
+ goto L3
+ L2:
+ me = env['LOGNAME']
+ L3:
+ $S0 = me . '@unknown'
+ .return ($S0)
+.end
+
+.include 'cclass.pasm'
+
+.sub '_add_subversion_info' :anon
+ .param pmc hash
+ $I0 = file_exists('.svn')
+ unless $I0 goto L1
+ $P0 = new 'FileHandle'
+ $P0.'open'('svn info', 'pr')
+ $S0 = $P0.'readall'()
+ $P0.'close'()
+ $I0 = length $S0
+ $S1 = 'trunk'
+ $I1 = index $S0, '/branches/'
+ unless $I1 >= 0 goto L2
+ $I1 += 10
+ $I2 = find_not_cclass .CCLASS_WHITESPACE, $S0, $I1, $I0
+ $I3 = $I2 - $I1
+ $S1 = substr $S0, $I1, $I3
+ L2:
+ hash['Branch'] = $S1
+ $P0.'open'('svn status', 'pr')
+ $P1 = new 'ResizableStringArray'
+ L3:
+ $S0 = readline $P0
+ if $S0 == '' goto L4
+ $I0 = index $S0, 'M'
+ unless $I0 == 0 goto L3
+ $S0 = chomp($S0)
+ $I0 = length $S0
+ $I0 = find_not_cclass .CCLASS_WHITESPACE, $S0, 2, $I0
+ $S0 = substr $S0, $I0
+ push $P1, $S0
+ goto L3
+ L4:
+ $P0.'close'()
+ $I0 = elements $P1
+ unless $I0 != 0 goto L1
+ $S0 = hash['DEVEL']
+ $S0 .= ' '
+ $S1 = $I0
+ $S0 .= $S1
+ $S0 .= ' mods'
+ hash['DEVEL'] = $S0
+ $S0 = join ' ', $P1
+ hash['Modifications'] = $S0
+ L1:
+ .return (hash)
+.end
+
+.sub 'send_archive_to_smolder' :anon
+ .param pmc env_data
+ load_bytecode 'osutils.pbc'
+ .const string archive = 'parrot_test_run.tar.gz'
+ .const string smolder_url = 'http://smolder.plusthree.com/app/projects/process_add_report/8'
+ .const string username = 'parrot-autobot'
+ .const string password = 'squ at wk'
+ .local pmc config
+ $P0 = getinterp
+ config = $P0[.IGLOBALS_CONFIG_HASH]
+ .local string cmd
+ cmd = "curl -F architecture="
+ $S0 = config['cpuarch']
+ cmd .= $S0
+ cmd .= " -F platform="
+ $S0 = config['osname']
+ cmd .= $S0
+ cmd .= " -F revision="
+ $S0 = config['revision']
+ cmd .= $S0
+ cmd .= " -F tags=\""
+ $S0 = _get_tags(env_data)
+ cmd .= $S0
+ cmd .= "\""
+ cmd .= " -F username="
+ cmd .= username
+ cmd .= " -F password="
+ cmd .= password
+ cmd .= " -F comments=\"EXPERIMENTAL t/harness.pir\""
+ cmd .= " -F report_file=@"
+ cmd .= archive
+ cmd .= " "
+ cmd .= smolder_url
+ .tailcall system(cmd, 1 :named('verbose'))
+.end
+
+.sub '_get_tags' :anon
+ .param pmc env_data
+ $P0 = split ' ', 'Architecture Compiler Platform Version'
+ $P1 = new 'ResizableStringArray'
+ L1:
+ unless $P0 goto L2
+ $S0 = shift $P0
+ $S1 = env_data[$S0]
+ push $P1, $S1
+ goto L1
+ L2:
+ $S0 = join ', ', $P1
+ .return ($S0)
+.end
+
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Added: branches/avl_string_cache/t/library/osutils.t
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/avl_string_cache/t/library/osutils.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -0,0 +1,49 @@
+#!parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/library/osutils.t
+
+=head1 DESCRIPTION
+
+Test the osutils library
+
+=head1 SYNOPSIS
+
+ % prove t/library/osutils.t
+
+=cut
+
+.sub 'main' :main
+ .include 'test_more.pir'
+
+ load_bytecode 'osutils.pir'
+
+ plan(4)
+ test_basename()
+ test_dirname()
+.end
+
+.sub 'test_basename'
+ $S0 = 'foo/bar/baz.txt'
+ $S0 = basename($S0)
+ is( $S0, 'baz.txt', "basename" )
+.end
+
+.sub 'test_dirname'
+ $S0 = 'foo/bar/baz.txt'
+ $S0 = dirname($S0)
+ is( $S0, 'foo/bar', "dirname" )
+ $S0 = dirname($S0)
+ is( $S0, 'foo', "dirname" )
+ $S0 = dirname($S0)
+ is( $S0, '.', "dirname" )
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/avl_string_cache/t/library/p6object.t
==============================================================================
--- branches/avl_string_cache/t/library/p6object.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/library/p6object.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -437,7 +437,7 @@
.namespace ['ABC']
-.sub 'foo' :method
+.sub 'foo' :method :nsentry('foo')
.return ('ABC::foo')
.end
Added: branches/avl_string_cache/t/library/tap_parser.t
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/avl_string_cache/t/library/tap_parser.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -0,0 +1,674 @@
+#!parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/library/tap_parser.t
+
+=head1 DESCRIPTION
+
+Test the TAP/Parser library
+
+=head1 SYNOPSIS
+
+ % prove t/library/tap_parser.t
+
+=cut
+
+.sub 'main' :main
+ .include 'test_more.pir'
+
+ load_bytecode 'TAP/Parser.pir'
+
+ plan(203)
+ test_grammar_plan()
+ test_grammar_bailout()
+ test_grammar_comment()
+ test_grammar_tests()
+ test_grammar_version()
+ test_tap()
+ test_tap_with_blank_lines()
+ test_tap_has_problem()
+ test_tap_version_wrong_place()
+ test_tap_trailing_plan()
+ test_aggregator()
+.end
+
+.sub 'test_grammar_plan'
+ .local pmc grammar, token
+ grammar = new ['TAP';'Parser';'Grammar']
+ token = grammar.'tokenize'("1..42")
+ $P0 = get_class ['TAP';'Parser';'Result';'Plan']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'raw'
+ is($P0, "1..42")
+ $P0 = getattribute token, 'plan'
+ is($P0, "1..42")
+ $P0 = getattribute token, 'tests_planned'
+ is($P0, 42, "tests_planned")
+
+ token = grammar.'tokenize'("1..0 # SKIP why not?")
+ $P0 = get_class ['TAP';'Parser';'Result';'Plan']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'raw'
+ is($P0, "1..0 # SKIP why not?")
+ $P0 = getattribute token, 'plan'
+ is($P0, "1..0")
+ $P0 = getattribute token, 'tests_planned'
+ is($P0, 0, "tests_planned")
+ $P0 = getattribute token, 'directive'
+ is($P0, 'SKIP', "directive")
+ $P0 = getattribute token, 'explanation'
+ is($P0, 'why not?', "explanation")
+
+ token = grammar.'tokenize'("1..0")
+ $P0 = get_class ['TAP';'Parser';'Result';'Plan']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'raw'
+ is($P0, "1..0")
+ $P0 = getattribute token, 'plan'
+ is($P0, "1..0")
+ $P0 = getattribute token, 'tests_planned'
+ is($P0, 0, "tests_planned")
+ $P0 = getattribute token, 'directive'
+ is($P0, 'SKIP', "directive")
+.end
+
+.sub 'test_grammar_bailout'
+ .local pmc grammar, token
+ grammar = new ['TAP';'Parser';'Grammar']
+ token = grammar.'tokenize'("Bail out!")
+ $P0 = get_class ['TAP';'Parser';'Result';'Bailout']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'raw'
+ is($P0, "Bail out!")
+ $P0 = getattribute token, 'explanation'
+ is($P0, '', "no explanation")
+
+ token = grammar.'tokenize'("Bail out! some explanation")
+ $P0 = get_class ['TAP';'Parser';'Result';'Bailout']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'raw'
+ is($P0, "Bail out! some explanation")
+ $P0 = getattribute token, 'explanation'
+ is($P0, "some explanation", "explanation")
+.end
+
+.sub 'test_grammar_comment'
+ .local pmc grammar, token
+ grammar = new ['TAP';'Parser';'Grammar']
+ token = grammar.'tokenize'("# this is a comment")
+ $P0 = get_class ['TAP';'Parser';'Result';'Comment']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'raw'
+ is($P0, "# this is a comment")
+ $P0 = getattribute token, 'comment'
+ is($P0, 'this is a comment', "comment")
+.end
+
+.sub 'test_grammar_tests'
+ .local pmc grammar, token
+ grammar = new ['TAP';'Parser';'Grammar']
+ token = grammar.'tokenize'("ok 1 this is a test")
+ $P0 = get_class ['TAP';'Parser';'Result';'Test']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'raw'
+ is($P0, "ok 1 this is a test")
+ $P0 = getattribute token, 'ok'
+ is($P0, 'ok', "ok")
+ $P0 = getattribute token, 'test_num'
+ is($P0, 1, "test_num")
+ $P0 = getattribute token, 'description'
+ is($P0, 'this is a test', "description")
+
+ token = grammar.'tokenize'("not ok 2 this is a test # TODO whee!")
+ $P0 = get_class ['TAP';'Parser';'Result';'Test']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'raw'
+ is($P0, "not ok 2 this is a test # TODO whee!")
+ $P0 = getattribute token, 'ok'
+ is($P0, 'not ok', "ok")
+ $P0 = getattribute token, 'test_num'
+ is($P0, 2, "test_num")
+ $P0 = getattribute token, 'description'
+ is($P0, 'this is a test', "description")
+ $P0 = getattribute token, 'directive'
+ is($P0, 'TODO', "directive")
+ $P0 = getattribute token, 'explanation'
+ is($P0, 'whee!', "explanation")
+
+ token = grammar.'tokenize'("ok 22 this is a test \\# TODO whee!")
+ $P0 = get_class ['TAP';'Parser';'Result';'Test']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'raw'
+ is($P0, "ok 22 this is a test \\# TODO whee!")
+ $P0 = getattribute token, 'ok'
+ is($P0, 'ok', "ok")
+ $P0 = getattribute token, 'test_num'
+ is($P0, 22, "test_num")
+ $P0 = getattribute token, 'description'
+ is($P0, 'this is a test \# TODO whee!', "description")
+
+ token = grammar.'tokenize'("not ok")
+ $P0 = get_class ['TAP';'Parser';'Result';'Test']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'raw'
+ is($P0, "not ok")
+ $P0 = getattribute token, 'ok'
+ is($P0, 'not ok', "ok")
+ $P0 = getattribute token, 'test_num'
+ null $P1
+ is($P0, $P1, "test_num")
+ $P0 = getattribute token, 'description'
+ null $P1
+ is($P0, $P1, "description")
+
+ token = grammar.'tokenize'("ok 42")
+ $P0 = get_class ['TAP';'Parser';'Result';'Test']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'raw'
+ is($P0, "ok 42")
+ $P0 = getattribute token, 'ok'
+ is($P0, 'ok', "ok")
+ $P0 = getattribute token, 'test_num'
+ is($P0, 42, "test_num")
+ $P0 = getattribute token, 'description'
+ null $P1
+ is($P0, $P1, "description")
+.end
+
+.sub 'test_grammar_version'
+ .local pmc grammar, token
+ grammar = new ['TAP';'Parser';'Grammar']
+ token = grammar.'tokenize'("TAP version 12")
+ $P0 = get_class ['TAP';'Parser';'Result';'Version']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'raw'
+ is($P0, "TAP version 12")
+ $P0 = getattribute token, 'version'
+ is($P0, 12, "version")
+.end
+
+.sub '_get_results'
+ .param pmc parser
+ .local pmc result
+ result = new 'ResizablePMCArray'
+ $P0 = get_hll_global ['TAP';'Parser'], 'next'
+ .local pmc coro
+ coro = newclosure $P0
+ L1:
+ $P0 = coro(parser)
+ if null $P0 goto L2
+ push result, $P0
+ goto L1
+ L2:
+ .return (result)
+.end
+
+.sub 'test_tap'
+ .local pmc parser, result, token
+ parser = new ['TAP';'Parser']
+ parser.'tap'(<<'END_TAP')
+TAP version 13
+1..7
+ok 1 - input file opened
+... this is junk
+not ok first line of the input valid # todo some data
+# this is a comment
+ok 3 - read the rest of the file
+not ok 4 - this is a real failure
+ok 5 # skip we have no description
+ok 6 - you shall not pass! # TODO should have failed
+not ok 7 - Gandalf wins. Game over. # TODO 'bout time!
+END_TAP
+ result = _get_results(parser)
+ $I0 = elements result
+ is($I0, 11, "elements")
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Version']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'version'
+ is($P0, 13, "version")
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Plan']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'plan'
+ is($P0, "1..7", "plan")
+ $P0 = getattribute token, 'tests_planned'
+ is($P0, 7, "tests_planned")
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Test']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'ok'
+ is($P0, 'ok', "ok")
+ $P0 = getattribute token, 'test_num'
+ is($P0, 1, "test_num")
+ $P0 = getattribute token, 'description'
+ is($P0, '- input file opened', "description")
+ $I0 = token.'is_ok'()
+ ok($I0)
+ $I0 = token.'is_actual_ok'()
+ ok($I0)
+ $I0 = token.'has_todo'()
+ nok($I0)
+ $I0 = token.'has_skip'()
+ nok($I0)
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Unknown']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'raw'
+ is($P0, '... this is junk', "raw")
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Test']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'ok'
+ is($P0, 'not ok', "ok")
+ $P0 = getattribute token, 'test_num'
+ is($P0, 2, "test_num")
+ $P0 = getattribute token, 'description'
+ is($P0, 'first line of the input valid', "description")
+ $I0 = token.'is_ok'()
+ ok($I0)
+ $I0 = token.'is_actual_ok'()
+ nok($I0)
+ $I0 = token.'has_todo'()
+ ok($I0)
+ $I0 = token.'has_skip'()
+ nok($I0)
+ $P0 = getattribute token, 'explanation'
+ is($P0, 'some data', "explanation")
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Comment']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'comment'
+ is($P0, 'this is a comment', "comment")
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Test']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'ok'
+ is($P0, 'ok', "ok")
+ $P0 = getattribute token, 'test_num'
+ is($P0, 3, "test_num")
+ $P0 = getattribute token, 'description'
+ is($P0, '- read the rest of the file', "description")
+ $I0 = token.'is_ok'()
+ ok($I0)
+ $I0 = token.'is_actual_ok'()
+ ok($I0)
+ $I0 = token.'has_todo'()
+ nok($I0)
+ $I0 = token.'has_skip'()
+ nok($I0)
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Test']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'ok'
+ is($P0, 'not ok', "ok")
+ $P0 = getattribute token, 'test_num'
+ is($P0, 4, "test_num")
+ $P0 = getattribute token, 'description'
+ is($P0, '- this is a real failure', "description")
+ $I0 = token.'is_ok'()
+ nok($I0)
+ $I0 = token.'is_actual_ok'()
+ nok($I0)
+ $I0 = token.'has_todo'()
+ nok($I0)
+ $I0 = token.'has_skip'()
+ nok($I0)
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Test']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'ok'
+ is($P0, 'ok', "ok")
+ $P0 = getattribute token, 'test_num'
+ is($P0, 5, "test_num")
+ $I0 = token.'is_ok'()
+ ok($I0)
+ $I0 = token.'is_actual_ok'()
+ ok($I0)
+ $I0 = token.'has_todo'()
+ nok($I0)
+ $I0 = token.'has_skip'()
+ ok($I0)
+ $P0 = getattribute token, 'explanation'
+ is($P0, 'we have no description', "explanation")
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Test']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'ok'
+ is($P0, 'ok', "ok")
+ $P0 = getattribute token, 'test_num'
+ is($P0, 6, "test_num")
+ $P0 = getattribute token, 'description'
+ is($P0, '- you shall not pass!', "description")
+ $I0 = token.'is_ok'()
+ ok($I0)
+ $I0 = token.'is_actual_ok'()
+ ok($I0)
+ $I0 = token.'has_todo'()
+ ok($I0)
+ $I0 = token.'has_skip'()
+ nok($I0)
+ $P0 = getattribute token, 'explanation'
+ is($P0, 'should have failed', "explanation")
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Test']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'ok'
+ is($P0, 'not ok', "ok")
+ $P0 = getattribute token, 'test_num'
+ is($P0, 7, "test_num")
+ $P0 = getattribute token, 'description'
+ is($P0, '- Gandalf wins. Game over.', "description")
+ $I0 = token.'is_ok'()
+ ok($I0)
+ $I0 = token.'is_actual_ok'()
+ nok($I0)
+ $I0 = token.'has_todo'()
+ ok($I0)
+ $I0 = token.'has_skip'()
+ nok($I0)
+ $P0 = getattribute token, 'explanation'
+ is($P0, "'bout time!", "explanation")
+
+ $P0 = getattribute parser, 'passed'
+ $S0 = join ', ', $P0
+ is($S0, "1, 2, 3, 5, 6, 7", "passed")
+ $P0 = getattribute parser, 'failed'
+ $S0 = join ', ', $P0
+ is($S0, "4", "failed")
+ $P0 = getattribute parser, 'actual_passed'
+ $S0 = join ', ', $P0
+ is($S0, "1, 3, 5, 6", "actual_passed")
+ $P0 = getattribute parser, 'actual_failed'
+ $S0 = join ', ', $P0
+ is($S0, "2, 4, 7", "actual_failed")
+ $P0 = getattribute parser, 'todo'
+ $S0 = join ', ', $P0
+ is($S0, "2, 6, 7", "todo")
+ $P0 = getattribute parser, 'skipped'
+ $S0 = join ', ', $P0
+ is($S0, "5", "skipped")
+ $P0 = getattribute parser, 'todo_passed'
+ $S0 = join ', ', $P0
+ is($S0, "6", "todo_passed")
+
+ $P0 = getattribute parser, 'plan'
+ is($P0, "1..7", "plan")
+ $P0 = getattribute parser, 'tests_planned'
+ is($P0, 7, "tests_planned")
+.end
+
+.sub 'test_tap_with_blank_lines'
+ .local pmc parser, result, token
+ parser = new ['TAP';'Parser']
+ parser.'tap'(<<'END_TAP')
+1..2
+ok 1 - input file opened
+
+
+ok 2 - read the rest of the file
+END_TAP
+ result = _get_results(parser)
+ $I0 = elements result
+ is($I0, 5, "elements")
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Plan']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'plan'
+ is($P0, "1..2", "plan")
+ $P0 = getattribute token, 'tests_planned'
+ is($P0, 2, "tests_planned")
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Test']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'ok'
+ is($P0, 'ok', "ok")
+ $P0 = getattribute token, 'test_num'
+ is($P0, 1, "test_num")
+ $P0 = getattribute token, 'description'
+ is($P0, '- input file opened', "description")
+ $I0 = token.'is_ok'()
+ ok($I0)
+ $I0 = token.'is_actual_ok'()
+ ok($I0)
+ $I0 = token.'has_todo'()
+ nok($I0)
+ $I0 = token.'has_skip'()
+ nok($I0)
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Unknown']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'raw'
+ is($P0, '', "raw")
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Unknown']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'raw'
+ is($P0, '', "raw")
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Test']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'ok'
+ is($P0, 'ok', "ok")
+ $P0 = getattribute token, 'test_num'
+ is($P0, 2, "test_num")
+ $P0 = getattribute token, 'description'
+ is($P0, '- read the rest of the file', "description")
+ $I0 = token.'is_ok'()
+ ok($I0)
+ $I0 = token.'is_actual_ok'()
+ ok($I0)
+ $I0 = token.'has_todo'()
+ nok($I0)
+ $I0 = token.'has_skip'()
+ nok($I0)
+.end
+
+.sub 'test_tap_has_problem'
+ .local pmc parser
+ parser = new ['TAP';'Parser']
+ parser.'tap'(<<'END_TAP')
+TAP version 13
+1..2
+ok 1 - input file opened
+ok 2 - Gandalf wins. Game over. # TODO 'bout time!
+END_TAP
+ parser.'run'()
+ $I0 = parser.'failed'()
+ is($I0, 0, "not failed")
+ $I0 = parser.'todo_passed'()
+ is($I0, 1, "todo_passed")
+ $I0 = parser.'has_problems'()
+ nok($I0, "has not problem")
+
+ parser = new ['TAP';'Parser']
+ parser.'tap'(<<'END_TAP')
+TAP version 13
+1..2
+SMACK
+END_TAP
+ parser.'run'()
+ $I0 = parser.'failed'()
+ is($I0, 0, "not failed")
+ $I0 = parser.'todo_passed'()
+ is($I0, 0, "todo_passed")
+ $I0 = parser.'parse_errors'()
+ is($I0, 2, "parse_errors")
+ $I0 = parser.'has_problems'()
+ ok($I0, "has_problems")
+.end
+
+.sub 'test_tap_version_wrong_place'
+ .local pmc parser
+ parser = new ['TAP';'Parser']
+ parser.'tap'(<<'END_TAP')
+1..2
+ok 1 - input file opened
+TAP version 12
+ok 2 - Gandalf wins
+END_TAP
+ parser.'run'()
+ $I0 = parser.'failed'()
+ is($I0, 0, "not failed")
+ $I0 = parser.'parse_errors'()
+ is($I0, 1, "parse_errors")
+ $P0 = getattribute parser, 'parse_errors'
+ $S0 = shift $P0
+ is($S0, "If TAP version is present it must be the first line of output")
+.end
+
+.sub 'test_tap_trailing_plan'
+ .local pmc parser, result, token
+ parser = new ['TAP';'Parser']
+ parser.'tap'(<<'END_TAP')
+ok 1 - input file opened
+ok 2 - Gandalf wins
+1..2
+END_TAP
+ result = _get_results(parser)
+ $I0 = elements result
+ is($I0, 3, "elements")
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Test']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'ok'
+ is($P0, 'ok', "ok")
+ $P0 = getattribute token, 'test_num'
+ is($P0, 1, "test_num")
+ $P0 = getattribute token, 'description'
+ is($P0, '- input file opened', "description")
+ $I0 = token.'is_ok'()
+ ok($I0)
+ $I0 = token.'is_actual_ok'()
+ ok($I0)
+ $I0 = token.'is_unplanned'()
+ nok($I0, "unplanned")
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Test']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'ok'
+ is($P0, 'ok', "ok")
+ $P0 = getattribute token, 'test_num'
+ is($P0, 2, "test_num")
+ $P0 = getattribute token, 'description'
+ is($P0, '- Gandalf wins', "description")
+ $I0 = token.'is_ok'()
+ ok($I0)
+ $I0 = token.'is_actual_ok'()
+ ok($I0)
+ $I0 = token.'is_unplanned'()
+ nok($I0, "unplanned")
+
+ token = shift result
+ $P0 = get_class ['TAP';'Parser';'Result';'Plan']
+ isa_ok(token, $P0)
+ $P0 = getattribute token, 'plan'
+ is($P0, "1..2", "plan")
+ $P0 = getattribute token, 'tests_planned'
+ is($P0, 2, "tests_planned")
+
+ $I0 = parser.'passed'()
+ is($I0, 2, "passed")
+ $I0 = parser.'failed'()
+ is($I0, 0, "failed")
+ $I0 = parser.'parse_errors'()
+ is($I0, 0, "parse_errors")
+ $I0 = parser.'has_problems'()
+ is($I0, 0, "has_problems")
+
+ $P0 = getattribute parser, 'plan'
+ is($P0, "1..2", "plan")
+ $P0 = getattribute parser, 'tests_planned'
+ is($P0, 2, "tests_planned")
+.end
+
+.sub 'test_aggregator'
+ .local pmc parser1, parser2, agg
+ parser1 = new ['TAP';'Parser']
+ parser1.'tap'(<<'END_TAP')
+1..5
+ok 1 - input file opened
+... this is junk
+not ok first line of the input valid # todo some data
+# this is a comment
+ok 3 - read the rest of the file
+not ok 4 - this is a real failure
+ok 5 # skip we have no description
+END_TAP
+ parser1.'run'()
+
+ parser2 = new ['TAP';'Parser']
+ parser2.'tap'(<<'END_TAP')
+1..7
+ok 1 - gentlemen, start your engines
+not ok first line of the input valid # todo some data
+# this is a comment
+ok 3 - read the rest of the file
+not ok 4 - this is a real failure
+ok 5
+ok 6 - you shall not pass! # TODO should have failed
+not ok 7 - Gandalf wins. Game over. # TODO 'bout time!
+END_TAP
+ parser2.'run'()
+
+ agg = new ['TAP';'Parser';'Aggregator']
+ agg.'add'('tap1', parser1)
+ agg.'add'('tap2', parser2)
+
+ $P0 = agg.'descriptions'()
+ $I0 = elements $P0
+ is($I0, 2, "descriptions")
+
+ $P0 = getattribute agg, 'passed'
+ is($P0, 10, "passed")
+ $P0 = getattribute agg, 'failed'
+ is($P0, 2, "failed")
+ $P0 = getattribute agg, 'todo'
+ is($P0, 4, "todo")
+ $P0 = getattribute agg, 'skipped'
+ is($P0, 1, "skipped")
+ $P0 = getattribute agg, 'parse_errors'
+ is($P0, 1, "parse_errors")
+ $P0 = getattribute agg, 'todo_passed'
+ is($P0, 1, "todo_passed")
+ $P0 = getattribute agg, 'total'
+ is($P0, 12, "total")
+ $P0 = getattribute agg, 'planned'
+ is($P0, 12, "planned")
+
+ $I0 = agg.'has_problems'()
+ ok($I0, "has_problems")
+ $I0 = agg.'has_errors'()
+ ok($I0, "has_errors")
+ $S0 = agg.'get_status'()
+ is($S0, 'FAIL', "status")
+ $I0 = agg.'all_passed'()
+ nok($I0, "all_passed")
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/avl_string_cache/t/library/test_builder_tester.t
==============================================================================
--- branches/avl_string_cache/t/library/test_builder_tester.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/library/test_builder_tester.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -59,12 +59,12 @@
test.'skip'( 3, 'three skips' )
test_test( 'multiple skips' )
- test_out( 'not ok 9 # TODO some todo test' )
+ test_out( "not ok 9 # TODO \n\tFailed (TODO) test 'some todo test'" )
test.'todo'( 0, 'some todo test' )
test_test( 'failing todo test' )
- test_out( 'ok 10 # TODO another todo test' )
- test.'todo'( 1, 'another todo test' )
+ test_out( "ok 10 # TODO another todo test" )
+ test.'todo'( 1, 'reason', 'another todo test' )
test_test( 'passing todo test' )
test_pass()
Modified: branches/avl_string_cache/t/library/test_more.t
==============================================================================
--- branches/avl_string_cache/t/library/test_more.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/library/test_more.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -797,23 +797,23 @@
.local pmc test
test = new [ 'Test'; 'Builder' ]
- test_out( 'ok 8 # TODO passing test' )
+ test_out( 'ok 8 # TODO todo reason' )
test.'todo'( 1, 'passing test', 'todo reason' )
test_test( 'todo test should pass, marked as TODO' )
- test_out( 'not ok 9 # TODO failing test' )
+ test_out( "not ok 9 # TODO todo reason\n\tFailed (TODO) test 'failing test'" )
test.'todo'( 0, 'failing test', 'todo reason' )
test_test( 'todo test should fail, marked as TODO' )
- test_out( 'ok 10 # TODO passing test' )
+ test_out( 'ok 10 # TODO todo reason' )
todo( 1, 'passing test', 'todo reason' )
test_test( 'todo test should pass, marked as TODO' )
- test_out( 'not ok 11 # TODO failing test' )
+ test_out( "not ok 11 # TODO todo reason\n\tFailed (TODO) test 'failing test'" )
todo( 0, 'failing test', 'todo reason' )
test_test( 'todo test should fail, marked as TODO' )
- test_out( 'not ok 12 # TODO' )
+ test_out( "not ok 12 # TODO \n\tFailed (TODO) test ''" )
todo( 0 )
test_test( 'todo test with no description or reason' )
Modified: branches/avl_string_cache/t/native_pbc/annotations.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/avl_string_cache/t/native_pbc/integer_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/avl_string_cache/t/native_pbc/number_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/avl_string_cache/t/native_pbc/string_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/avl_string_cache/t/oo/composition.t
==============================================================================
--- branches/avl_string_cache/t/oo/composition.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/oo/composition.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -34,16 +34,16 @@
multi_composition()
.end
-.sub badger :method
+.sub badger :method :nsentry('badger')
.return('Badger!')
.end
-.sub badger2 :method
+.sub badger2 :method :nsentry('badger2')
.return('Second Badger!')
.end
-.sub mushroom :method
+.sub mushroom :method :nsentry('mushroom')
.return('Mushroom!')
.end
-.sub snake :method
+.sub snake :method :nsentry('snake')
.return('Snake!')
.end
.sub fire
Modified: branches/avl_string_cache/t/oo/mro-c3.t
==============================================================================
--- branches/avl_string_cache/t/oo/mro-c3.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/oo/mro-c3.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -28,19 +28,19 @@
merge_two_pairs()
.end
-.sub method_A :method
+.sub method_A :method :nsentry('method_A')
.return('Method from A')
.end
-.sub method_B :method
+.sub method_B :method :nsentry('method_B')
.return('Method from B')
.end
-.sub method_C :method
+.sub method_C :method :nsentry('method_C')
.return('Method from C')
.end
-.sub method_D :method
+.sub method_D :method :nsentry('method_D')
.return('Method from D')
.end
Modified: branches/avl_string_cache/t/oo/proxy.t
==============================================================================
--- branches/avl_string_cache/t/oo/proxy.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/oo/proxy.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -93,7 +93,7 @@
.end
.namespace ['Complex']
-.sub 'Complex' :method
+.sub 'Complex' :method :nsentry('Complex')
.return (self)
.end
Modified: branches/avl_string_cache/t/op/calling.t
==============================================================================
--- branches/avl_string_cache/t/op/calling.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/op/calling.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -993,13 +993,13 @@
f(o, "ok 4\n")
.end
.namespace ["Foo"]
-.sub bar :method
+.sub bar :method :nsentry('bar')
.param string s
print self
print " "
print s
.end
-.sub baz :method
+.sub baz :method :nsentry('baz')
.param string s
print self
print " "
Modified: branches/avl_string_cache/t/op/fetch.t
==============================================================================
--- branches/avl_string_cache/t/op/fetch.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/op/fetch.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -28,7 +28,6 @@
.end
.sub 'test_fetch_keyed_int'
- diag( 'test_fetch_keyed_int' )
$P0 = new [ 'Hash' ]
$P1 = box 111
$P0[1] = $P1
@@ -48,7 +47,6 @@
.end
.sub 'test_fetch_keyed_str'
- diag( 'test_fetch_keyed_str' )
$P0 = new [ 'Hash' ]
$P1 = box 111
$P0['one'] = $P1
@@ -68,7 +66,6 @@
.end
.sub 'test_fetch_keyed_pmc'
- diag( 'test_fetch_keyed_pmc' )
$P0 = new [ 'Hash' ]
$P1 = box 111
Modified: branches/avl_string_cache/t/op/gc.t
==============================================================================
--- branches/avl_string_cache/t/op/gc.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/op/gc.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -508,7 +508,6 @@
# coro context and invalid return continuations
# this is a stripped down version of imcc/t/syn/pcc_16
-# s. also src/pmc/retcontinuation.pmc
.sub coro_context_ret_continuation
.const 'Sub' $P0 = "co1"
Modified: branches/avl_string_cache/t/op/string.t
==============================================================================
--- branches/avl_string_cache/t/op/string.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/op/string.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -19,7 +19,7 @@
.sub main :main
.include 'test_more.pir'
- plan(412)
+ plan(399)
set_s_s_sc()
test_clone()
@@ -27,7 +27,6 @@
test_length_i_s()
zero_length_substr()
chopn_with_clone()
- chopn_with_set()
chopn_oob_values()
three_argument_chopn()
three_argument_chopn__oob_values()
@@ -40,6 +39,7 @@
five_arg_substr_w_rep_eq_length()
five_arg_substr_w_replacement_gt_length()
five_arg_substr_w_replacement_lt_length()
+ five_arg_substr_vs_hash()
five_arg_substr__offset_at_end_of_string()
exception_five_arg_substr__offset_past_end_of_string()
five_arg_substr_neg_offset_repl_eq_length()
@@ -122,10 +122,8 @@
correct_precision_for_sprintf_x()
test_exchange()
test_find_encoding()
- test_string_encoding()
test_assign()
assign_and_globber()
- assign_and_globber_2()
bands_null_string()
bands_2()
bands_3()
@@ -141,8 +139,6 @@
bnots_null_string()
bnots_2()
bnots_cow()
- transcode_to_utf8()
- string_chartype()
split_on_empty_string()
split_on_non_empty_string()
test_join()
@@ -237,20 +233,6 @@
is( $S3, "JAPHxyzw", '' )
.end
-.sub chopn_with_set
- set $S4, "JAPHxyzw"
- set $S5, "japhXYZW"
- set $S3, $S4
- set $I1, 4
- chopn $S4, 3
- chopn $S4, 1
- chopn $S5, $I1
-
- is( $S4, "JAPH", '' )
- is( $S5, "japh", '' )
- is( $S3, "JAPH", '' )
-.end
-
.sub chopn_oob_values
set $S1, "A string of length 21"
chopn $S1, 0
@@ -292,10 +274,6 @@
set $S3, $S1
chopn $S2, $S1, 3
is( $S3, "Parrot", '' )
-
- set $S3, $S1
- chopn $S1, 3
- is( $S3, "Par", '' )
.end
#
.sub three_argument_chopn__oob_values
@@ -427,6 +405,18 @@
is( $S2, "", '' )
.end
+.sub five_arg_substr_vs_hash
+ # Check that string hashval properly updated.
+ .local pmc hash
+ hash = new ['Hash']
+ $S0 = "fooo"
+ hash[$S0] = 1
+ hash["foo"] = 42
+ $S0 = replace $S0, 1, 1, ''
+ $S1 = hash[$S0]
+ is( $S1, '42', 'substr behave it self')
+.end
+
.sub exception_five_arg_substr__offset_past_end_of_string
set $S0, "abcdefghijk"
set $S1, "xyz"
@@ -434,7 +424,7 @@
substr $S2, $S0, 12, 3, $S1
ok(0,"no exception")
handler:
- .exception_is( "Can only replace inside string or index after end of string" )
+ .exception_is( "Cannot take substr outside string" )
.end
.sub five_arg_substr_neg_offset_repl_eq_length
@@ -471,7 +461,7 @@
substr $S2, $S0, -12, 4, $S1
ok(0,"no exception")
handler:
- .exception_is( "Can only replace inside string or index after end of string" )
+ .exception_is( "Cannot take substr outside string" )
.end
.sub five_arg_substr_length_gt_strlen
@@ -495,9 +485,10 @@
.sub four_arg_replacement_only_substr
set $S0, "abcdefghijk"
set $S1, "xyz"
- substr $S0, 3, 3, $S1
- is( $S0, "abcxyzghijk", '' )
+ $S2 = replace $S0, 3, 3, $S1
+ is( $S0, "abcdefghijk", '' )
is( $S1, "xyz", '' )
+ is( $S2, "abcxyzghijk", '' )
.end
.sub three_arg_substr
@@ -1477,34 +1468,6 @@
# is( $I0, "3", 'find_encoding' )
.end
-.sub test_string_encoding
- skip(4, "no more visible encoding" )
- # set $I0, 0
- # new $S0, 0, $I0
- # string_encoding $I1, $S0
- # eq $I0, $I1, OK1
- # print "not "
- # OK1: print "ok 1\n"
- # set $I0, 1
- # new $S0, 0, $I0
- # string_encoding $I1, $S0
- # eq $I0, $I1, OK2
- # print "not "
- # OK2: print "ok 2\n"
- # set $I0, 2
- # new $S0, 0, $I0
- # string_encoding $I1, $S0
- # eq $I0, $I1, OK3
- # print "not "
- # OK3: print "ok 3\n"
- # set $I0, 3
- # new $S0, 0, $I0
- # string_encoding $I1, $S0
- # eq $I0, $I1, OK4
- # print "not "
- # OK4: print "ok 4\n"
-.end
-
.sub test_assign
set $S4, "JAPH"
assign $S5, $S4
@@ -1520,14 +1483,6 @@
is( $S5, "JAPH", 'assign & globber' )
.end
-.sub assign_and_globber_2
- set $S4, "JAPH"
- set $S5, $S4
- assign $S4, "Parrot"
- is( $S4, "Parrot", 'assign & globber 2' )
- is( $S5, "Parrot", 'assign & globber 2' )
-.end
-
.sub bands_null_string
null $S1
set $S2, "abc"
@@ -1768,25 +1723,6 @@
is( $S2, "foo", 'bnots COW' )
.end
-.sub transcode_to_utf8
- skip( 2, "no more transcode" )
- # set $S1, "ASCII is the same as UTF8\n"
- # find_encoding $I1, "utf8"
- # transcode $S2, $S1, $I1
- # is( $S1, "ASCII is the same as UTF8", 'transcode to utf8' )
- # is( $S2, "ASCII is the same as UTF8", 'transcode to utf8' )
-.end
-
-.sub string_chartype
- skip( 1, "no more chartype" )
-
- # set $S0, "Test String"
- # find_chartype $I0, "usascii"
- # set_chartype $S0, $I0
- # string_chartype $I1, $S0
- # is( $I0, $I1, 'string_chartype' )
-.end
-
.sub split_on_empty_string
split $P1, "", ""
set $I1, $P1
@@ -1865,19 +1801,6 @@
OK1:
ok($I99, 'eq_addr/ne_addr')
- set $S1, "Test"
- set $I99, 0
- eq_addr $S1, $S0, BAD2
- set $I99, 1
- BAD2:
- ok($I99, 'eq_addr/ne_addr')
-
- set $I99, 1
- ne_addr $S1, $S0, OK3
- set $I99, 0
- OK3:
- ok($I99, 'eq_addr/ne_addr')
-
set $S0, $S1
set $I99, 0
ne_addr $S1, $S0, BAD4
Modified: branches/avl_string_cache/t/op/vivify.t
==============================================================================
--- branches/avl_string_cache/t/op/vivify.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/op/vivify.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -28,7 +28,6 @@
.end
.sub 'test_vivify_keyed_int'
- diag( 'test_vivify_keyed_int' )
$P0 = new [ 'Hash' ]
$P1 = box 111
$P0[1] = $P1
@@ -56,7 +55,6 @@
.end
.sub 'test_vivify_keyed_str'
- diag( 'test_vivify_keyed_str' )
$P0 = new [ 'Hash' ]
$P1 = box 111
$P0['one'] = $P1
@@ -84,7 +82,6 @@
.end
.sub 'test_vivify_keyed_pmc'
- diag( 'test_vivify_keyed_pmc' )
$P0 = new [ 'Hash' ]
$P1 = box 111
Modified: branches/avl_string_cache/t/pmc/class.t
==============================================================================
--- branches/avl_string_cache/t/pmc/class.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/pmc/class.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -459,7 +459,7 @@
is(result, 42, 'new() added method returns expected value')
.end
-.sub add :method
+.sub add :method :nsentry('add')
$P0 = getattribute self, "x"
$P1 = getattribute self, "y"
$P2 = new ['Integer']
Modified: branches/avl_string_cache/t/pmc/context.t
==============================================================================
--- branches/avl_string_cache/t/pmc/context.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/pmc/context.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -48,7 +48,7 @@
$P0 = newclass 'Foo'
.end
-.sub 'test_inspect' :method :outer('load')
+.sub 'test_inspect' :method :nsentry('test_inspect') :outer('load')
.include 'test_more.pir'
.local pmc ctx
Modified: branches/avl_string_cache/t/pmc/fixedpmcarray.t
==============================================================================
--- branches/avl_string_cache/t/pmc/fixedpmcarray.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/pmc/fixedpmcarray.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -19,7 +19,7 @@
.sub main :main
.include 'test_more.pir'
- plan(82)
+ plan(83)
test_setting_array_size()
test_assign_from_another()
test_assign_self()
@@ -678,6 +678,11 @@
$I0 = $P0
is($I0, 10, "New style init creates the correct # of elements for a key constant")
+
+ $P1 = new 'Integer'
+ $P0[9] = $P1
+ $P2 = $P0[9]
+ is($P2, $P1, 'New style init creates the array')
.end
.sub test_invalid_init_tt1509
Modified: branches/avl_string_cache/t/pmc/freeze.t
==============================================================================
--- branches/avl_string_cache/t/pmc/freeze.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/pmc/freeze.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -52,9 +52,19 @@
print " "
print P10
print "\n"
+
+ null S1
+ new P1, ['String']
+ set P1, S1
+ freeze S0, P1
+ thaw P10, S0
+ set S10, P10
+ isnull I0, S10
+ say I0
end
CODE
String foo
+1
OUTPUT
pasm_output_is( <<'CODE', <<'OUTPUT', "freeze/thaw a Float" );
Modified: branches/avl_string_cache/t/pmc/namespace-old.t
==============================================================================
--- branches/avl_string_cache/t/pmc/namespace-old.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/pmc/namespace-old.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -284,7 +284,7 @@
CODE
/^a_foo
b_foo
-Could not find non-existent sub b_foo/
+Could not find sub b_foo/
OUTPUT
@@ -1248,7 +1248,7 @@
CODE
/
ok 1
-Could not find non-existent sub nok/
+Could not find sub nok/
OUT
Added: branches/avl_string_cache/t/pmc/namespace-subs.t
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/avl_string_cache/t/pmc/namespace-subs.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -0,0 +1,166 @@
+#! parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/pmc/namepspace-subs.t - test NameSpace PMC
+
+=head1 SYNOPSIS
+
+ % prove t/pmc/namespace-subs.t
+
+=head1 DESCRIPTION
+
+Tests subroutines stored in the NameSpace PMC, specifically focusing on the
+specified behavior for :method, :vtable, :nsentry, and :anon.
+
+=cut
+
+.namespace []
+
+.sub 'main' :main
+ .include 'test_more.pir'
+ plan(17)
+ anon_sub_and_method()
+ anon_vtable()
+ store_method()
+ store_nsentry()
+ store_multisub()
+.end
+
+
+# Subs marked with :anon should not be stored in the namespace. Methods marked
+# with :anon should not be stored in the class.
+
+.sub 'anon_sub_and_method'
+ $P2 = get_hll_global ['AnonTest'], 'anonsub'
+ is_null($P2, "Anon sub not stored in namespace")
+
+ $P0 = newclass 'AnonTest'
+ $P1 = new 'AnonTest'
+
+ push_eh method_not_in_namespace
+ $I1 = $P1.'anonmethod'()
+ ok(0, "Anon method not stored in class")
+ pop_eh
+ goto failed
+ method_not_in_namespace:
+ ok(1, "Anon method not stored in class")
+ failed:
+
+ $P2 = get_hll_global ['AnonTest'], 'anonmethod'
+ is_null($P2, "Anon method not stored in namespace")
+
+.end
+
+# Vtable overrides marked with :anon should be stored in the class anyway. See
+# RT #44471
+.sub 'anon_vtable'
+ $P1 = new 'AnonTest'
+
+ $I0 = $P1
+ is($I0, 414, "Anon vtable override stored in class")
+.end
+
+
+# Methods should not be stored in the namespace. See TT #389.
+.sub 'store_method'
+ $P0 = newclass 'MethodTest'
+ $P1 = new 'MethodTest'
+
+ $I1 = $P1.'methodtest'()
+ is($I1, 75, "Invoked stored method")
+
+ $P2 = get_hll_global ['MethodTest'], 'methodtest'
+ is_null($P2, "Method not stored in namespace")
+.end
+
+.sub 'store_nsentry'
+ $P0 = newclass 'NsentryTest'
+ $P1 = new 'NsentryTest'
+
+ $I1 = $P1.'nsentrymethodtest'()
+ is($I1, 63, "Invoked nsentry method")
+
+ $P2 = get_hll_global ['NsentryTest'], 'renamedmethod'
+ isa_ok($P2, "Sub", "Nsentry method stored in namespace")
+
+ $I2 = $P1.$P2()
+ is($I2, 63, "Invoked nsentry method from namespace")
+
+ $P3 = get_hll_global ['NsentryTest'], 'renamedsub'
+ isa_ok($P3, "Sub", "Nsentry sub stored in namespace")
+
+ $I3 = $P3()
+ is($I3, 36, "Invoked nsentry sub from namespace")
+
+ $P4 = get_hll_global ['NsentryTest'], 'renamedvtable'
+ isa_ok($P4, "Sub", "Nsentry vtable stored in namespace")
+
+ $I4 = $P4()
+ is($I4, 363, "Invoked nsentry vtable from namespace")
+.end
+
+.sub 'store_multisub'
+ $P1 = get_hll_global ['MultiSubTest'], 'multisubtest'
+ isa_ok($P1, "MultiSub", "Multi sub stored in namespace")
+
+ $S1 = $P1(7)
+ is($S1, "called int variant", "Multi sub int stored in namespace")
+
+ $S2 = $P1('foo')
+ is($S2, "called string variant", "Multi sub string stored in namespace")
+
+ $S3 = $P1(5.5)
+ is($S3, "called num variant", "Anon multi sub num stored in namespace")
+
+.end
+
+.namespace ['AnonTest']
+.sub 'anonsub' :anon
+ .return(14)
+.end
+
+.sub 'anonmethod' :anon :method
+ .return(41)
+.end
+
+.sub 'get_integer' :anon :vtable
+ .return(414)
+.end
+
+
+.namespace ['MethodTest']
+.sub 'methodtest' :method
+ .return(75)
+.end
+
+.namespace ['NsentryTest']
+.sub 'nsentrymethodtest' :method :nsentry('renamedmethod')
+ .return(63)
+.end
+.sub 'nsentrysubtest' :nsentry('renamedsub')
+ .return(36)
+.end
+.sub 'nsentryvtabletest' :nsentry('renamedvtable')
+ .return(363)
+.end
+
+.namespace ['MultiSubTest']
+.sub 'multisubtest' :multi(int)
+ .return("called int variant")
+.end
+.sub 'multisubtest' :multi(string)
+ .return("called string variant")
+.end
+.sub 'multisubtest' :anon :multi(num)
+ .return("called num variant")
+.end
+
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/avl_string_cache/t/pmc/pmcproxy.t
==============================================================================
--- branches/avl_string_cache/t/pmc/pmcproxy.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/pmc/pmcproxy.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -190,7 +190,7 @@
is($P3, 42, "the magic overriding sub was called")
ok(1, 'Called non-overridden method, which called overridden vtable')
.end
-.sub always42 :method
+.sub always42 :method :nsentry('always42')
.param string what
$P0 = new ['Integer']
$P0 = 42
Deleted: branches/avl_string_cache/t/pmc/retcontinuation.t
==============================================================================
--- branches/avl_string_cache/t/pmc/retcontinuation.t Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,32 +0,0 @@
-#! parrot
-# Copyright (C) 2006-2008, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-t/pmc/retcontinuation.t - test the RetContinuation PMC
-
-=head1 SYNOPSIS
-
- % prove t/pmc/retcontinuation.t
-
-=head1 DESCRIPTION
-
-Tests the RetContinuation PMC.
-
-=cut
-
-.sub main :main
- .include 'test_more.pir'
-
- plan(1)
-
- new $P0, ['RetContinuation']
- ok(1, 'Instantiated a RetContinuation PMC')
-.end
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/avl_string_cache/t/pmc/ro.t
==============================================================================
--- branches/avl_string_cache/t/pmc/ro.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/pmc/ro.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -39,7 +39,7 @@
.sub main :main
.include 'test_more.pir'
- plan(12)
+ plan(13)
integer_set_read_only_is_not_writable() # 1 test
integer_set_read_only_can_be_read() # 6 tests
@@ -48,7 +48,7 @@
complex_i_add() # 1 test
resizablepmcarray_non_recursive_part() # 1 test
objects() # 1 test
-# resizablepmcarray_recursive() #
+ resizablepmcarray_recursive() # 1 test
.end
.sub integer_set_read_only_is_not_writable
@@ -66,13 +66,14 @@
foo = 43
pop_eh
ok( 0, "integer_set_read_only_is_not_writable" )
- end
+ goto end
-eh_label:
+ eh_label:
.local string message
.get_results($P0)
message = $P0['message']
is( message, "set_integer_native() in read-only instance of 'Integer'", "integer_set_read_only_is_not_writable" )
+ end:
.end
.sub integer_set_read_only_can_be_read
@@ -127,12 +128,14 @@
pop_eh
ok(0, 'integer_add')
+ goto end
-eh_label:
+ eh_label:
.local string message
.get_results($P0)
message = $P0['message']
is( message, "i_add_int() in read-only instance of 'Integer'", 'integer_add' )
+ end:
.end
.sub complex_i_add
@@ -151,13 +154,14 @@
add foo, 4
pop_eh
ok( 0, 'complex_i_add')
+ goto end
-eh_label:
+ eh_label:
.local string message
.get_results($P0)
message = $P0['message']
is( message, "i_add_int() in read-only instance of 'Complex'", 'complex_i_add' )
-
+ end:
.end
.sub resizablepmcarray_non_recursive_part
@@ -184,12 +188,14 @@
pop_eh
ok(0, 'resizablepmcarray_non_recursive_part')
+ goto end
-eh_label:
+ eh_label:
.local string message
.get_results($P0)
message = $P0['message']
is( message, "set_pmc_keyed_int() in read-only instance of 'ResizablePMCArray'", 'resizablepmcarray_non_recursive_part' )
+ end:
.end
.sub objects
@@ -202,7 +208,6 @@
eh.'handle_types'(.EXCEPTION_WRITE_TO_CONSTCLASS)
set_addr eh, eh_label
-
fooclass = newclass 'Foo'
addattribute fooclass, 'bar'
foo = new ['Foo']
@@ -215,22 +220,20 @@
pop_eh
ok( 0, 'objects')
+ goto end
-eh_label:
+ eh_label:
.local string message
.get_results($P0)
message = $P0['message']
is( message, "set_attr_str() in read-only instance of 'Foo'", 'objects' )
+ end:
.end
-=pod
-
-TT #1036: should this work?
-
.sub resizablepmcarray_recursive
.local pmc foo
.local pmc three
- .local pmc tmp
+ .local pmc four
foo = new ['ResizablePMCArray']
three = new ['Integer']
@@ -239,19 +242,14 @@
foo = 1
foo[0] = three
- print "before make_readonly\n"
make_readonly(foo)
- print "after\n"
- # three = 4 # should fail -- is that what we want
- tmp = foo[0]
- tmp = 4
- print "NOT OKAY\n"
- tmp = foo[0]
- print tmp
+ four = foo[0]
+ four = 4
+ four = foo[0]
+ is(four, 4, 'TT #1036 - readonly should be shallow')
.end
-=cut
# Local Variables:
Modified: branches/avl_string_cache/t/pmc/string.t
==============================================================================
--- branches/avl_string_cache/t/pmc/string.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/pmc/string.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -27,7 +27,6 @@
setting_numbers()
ensure_that_concat_ppp_copies_strings()
ensure_that_concat_pps_copies_strings()
- setting_string_references()
assigning_string_copies()
test_repeat()
test_repeat_without_creating_dest_pmc()
@@ -102,6 +101,12 @@
set $P0, "0xFFFFFF"
set $S0, $P0
is( $S0, "0xFFFFFF", 'String obj set with literal hex string' )
+
+ null $S0
+ set $P0, $S0
+ set $S1, $P0
+ isnull $I0, $S1
+ ok( $I0, 'String obj is null-in null-out' )
.end
.sub setting_integers
@@ -197,16 +202,6 @@
is( $P0, 'fnarghGrunties', 'concat success' )
.end
-.sub setting_string_references
- new $P0, ['String']
- set $S0, "C2H5OH + 10H20"
- set $P0, $S0
- chopn $S0, 8
-
- is( $S0, 'C2H5OH', 'removed last 8 from string' )
- is( $P0, 'C2H5OH', '...and the PMC still reference $S0' )
-.end
-
.sub assigning_string_copies
new $P0, ['String']
set $S0, "C2H5OH + 10H20"
@@ -1036,6 +1031,7 @@
# Set
s = new ['String']
+ s = ''
$S0 = 'f'
s[0] = $S0
@@ -1049,6 +1045,16 @@
$P0 = 'o'
s[2] = $P0
is(s, 'foo', 'Set PMC keyed')
+
+ push_eh null_replace
+ s = new ['String']
+ s[0] = 'f'
+ nok('Replace on null string throws')
+ goto done_null_replace
+
+ null_replace:
+ ok(1, 'Replace on null string throws')
+ done_null_replace:
.end
# Local Variables:
Modified: branches/avl_string_cache/t/src/basic.t
==============================================================================
--- branches/avl_string_cache/t/src/basic.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/src/basic.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -27,7 +27,7 @@
#include <stdlib.h>
int
- main(int argc, char* argv[])
+ main(int argc, const char* argv[])
{
printf("Hello, World!\n");
exit(0);
@@ -41,7 +41,7 @@
#include <parrot/exceptions.h>
int
- main(int argc, char* argv[])
+ main(int argc, const char* argv[])
{
exit_fatal(0, "Blow'd Up(tm)"); /* ' */
}
@@ -59,7 +59,7 @@
static opcode_t *the_test(Parrot_Interp, opcode_t *, opcode_t *);
int
-main(int argc, char* argv[])
+main(int argc, const char* argv[])
{
Interp *interp;
Modified: branches/avl_string_cache/t/src/embed.t
==============================================================================
--- branches/avl_string_cache/t/src/embed.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/src/embed.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -39,7 +39,7 @@
exit(EXIT_FAILURE);
}
-int main(int argc, char **argv)
+int main(int argc, const char **argv)
{
Parrot_Interp interp;
interp = Parrot_new(NULL);
@@ -308,20 +308,20 @@
#include "parrot/embed.h"
static opcode_t *
-run(PARROT_INTERP, int argc, char *argv[])
+run(PARROT_INTERP, int argc, cosnt char *argv[])
{
const char *c_src = ".sub main :main\n" " print \"ok\\n\"\n" ".end\n";
- STRING *src, *smain;
+ Parrot_String *src, *smain;
PMC *prog, *entry;
opcode_t *dest;
- STRING *error;
+ Parrot_String *error;
/* get PIR compiler - TODO API */
PMC *compreg = Parrot_PMC_get_pmc_keyed_int(interp,
interp->iglobals,
IGLOBALS_COMPREG_HASH);
- STRING *pir = Parrot_str_new_constant(interp, "PIR");
+ Parrot_String *pir = Parrot_str_new_constant(interp, "PIR");
PMC *comp = Parrot_PMC_get_pmc_keyed_str(interp, compreg, pir);
if (PMC_IS_NULL(comp) || !Parrot_PMC_defined(interp, comp)) {
@@ -357,7 +357,7 @@
}
int
-main(int margc, char *margv[])
+main(int margc, const char *margv[])
{
Parrot_Interp interp;
PackFile *pf;
@@ -388,12 +388,12 @@
#include "parrot/embed.h"
static void
-compile_run(PARROT_INTERP, const char *src, STRING *type, int argc,
- char *argv[])
+compile_run(PARROT_INTERP, const char *src, Parrot_String *type, int argc,
+ const char *argv[])
{
- STRING *smain;
+ Parrot_String *smain;
PMC *entry;
- STRING *error;
+ Parrot_String *error;
opcode_t *dest;
PMC *prog = Parrot_compile_string(interp, type, src, &error);
@@ -421,20 +421,20 @@
}
static opcode_t *
-run(PARROT_INTERP, int argc, char *argv[])
+run(PARROT_INTERP, int argc, const char *argv[])
{
const char *c_src = ".sub main :main\n" " print \"ok\\n\"\n" ".end\n";
const char *c2_src =
".sub main :main\n" " print \"hola\\n\"\n" ".end\n";
- STRING *src, *smain;
+ Parrot_String *src, *smain;
/* get PIR compiler - TODO API */
PMC *compreg = Parrot_PMC_get_pmc_keyed_int(interp,
interp->iglobals,
IGLOBALS_COMPREG_HASH);
- STRING *pir = Parrot_str_new_constant(interp, "PIR");
+ Parrot_String *pir = Parrot_str_new_constant(interp, "PIR");
PMC *comp = Parrot_PMC_get_pmc_keyed_str(interp, compreg, pir);
if (PMC_IS_NULL(comp) || !Parrot_PMC_defined(interp, comp)) {
@@ -447,7 +447,7 @@
}
int
-main(int margc, char *margv[])
+main(int margc, const char *margv[])
{
Parrot_Interp interp;
PackFile *pf;
@@ -479,12 +479,12 @@
#include "parrot/embed.h"
static void
-compile_run(PARROT_INTERP, const char *src, STRING *type, int argc,
- char *argv[])
+compile_run(PARROT_INTERP, const char *src, Parrot_String *type, int argc,
+ const char *argv[])
{
- STRING *smain;
+ Parrot_String *smain;
PMC *entry;
- STRING *error;
+ Parrot_String *error;
opcode_t *dest;
PMC *prog = Parrot_compile_string(interp, type, src, &error);
@@ -512,20 +512,20 @@
}
static opcode_t *
-run(PARROT_INTERP, int argc, char *argv[])
+run(PARROT_INTERP, int argc, const char *argv[])
{
const char *c_src = ".sub main :main\n" " print ok\\n\"\n" ".end\n";
const char *c2_src =
".sub main :main\n" " print \"hola\\n\"\n" ".end\n";
- STRING *src, *smain;
+ Parrot_String *src, *smain;
/* get PIR compiler - TODO API */
PMC *compreg = Parrot_PMC_get_pmc_keyed_int(interp,
interp->iglobals,
IGLOBALS_COMPREG_HASH);
- STRING *pir = Parrot_str_new_constant(interp, "PIR");
+ Parrot_String *pir = Parrot_str_new_constant(interp, "PIR");
PMC *comp = Parrot_PMC_get_pmc_keyed_str(interp, compreg, pir);
if (PMC_IS_NULL(comp) || !Parrot_PMC_defined(interp, comp)) {
@@ -538,12 +538,12 @@
}
int
-main(int margc, char *margv[])
+main(int margc, const char *margv[])
{
Parrot_Interp interp;
PackFile *pf;
int argc = 1;
- char *argv[] = { "test", NULL };
+ const char *argv[] = { "test", NULL };
PackFile_Segment *seg;
@@ -570,12 +570,12 @@
#include "parrot/embed.h"
static void
-compile_run(PARROT_INTERP, const char *src, STRING *type, int argc,
- char *argv[])
+compile_run(PARROT_INTERP, const char *src, Parrot_String *type, int argc,
+ const char *argv[])
{
- STRING *smain;
+ Parrot_String *smain;
PMC *entry;
- STRING *error;
+ Parrot_String *error;
opcode_t *dest;
PMC *prog = Parrot_compile_string(interp, type, src, &error);
@@ -603,19 +603,19 @@
}
static opcode_t *
-run(PARROT_INTERP, int argc, char *argv[])
+run(PARROT_INTERP, int argc, const char *argv[])
{
const char *c_src = ".sub main :main\n" " print ok\\n\"\n" ".end\n";
const char *c2_src =
".sub main :main\n" " print \"hola\\n\"\n" ".end\n";
- STRING *src, *smain;
+ Parrot_String *src, *smain;
/* get PIR compiler - TODO API */
PMC *compreg = Parrot_PMC_get_pmc_keyed_int(interp,
interp->iglobals,
IGLOBALS_COMPREG_HASH);
- STRING *pir = Parrot_str_new_constant(interp, "PIR");
+ Parrot_String *pir = Parrot_str_new_constant(interp, "PIR");
PMC *comp = Parrot_PMC_get_pmc_keyed_str(interp, compreg, pir);
if (PMC_IS_NULL(comp) || !Parrot_PMC_defined(interp, comp)) {
@@ -628,7 +628,7 @@
}
int
-main(int margc, char *margv[])
+main(int margc, const char *margv[])
{
Parrot_Interp interp;
PackFile *pf;
@@ -660,12 +660,12 @@
#include "parrot/embed.h"
static void
-compile_run(PARROT_INTERP, const char *src, STRING *type, int argc,
- char *argv[])
+compile_run(PARROT_INTERP, const char *src, Parrot_String *type, int argc,
+ const char *argv[])
{
- STRING *smain;
+ Parrot_String *smain;
PMC *entry;
- STRING *error;
+ Parrot_String *error;
opcode_t *dest;
PMC *prog = Parrot_compile_string(interp, type, src, &error);
@@ -693,18 +693,18 @@
}
static opcode_t *
-run(PARROT_INTERP, int argc, char *argv[])
+run(PARROT_INTERP, int argc, const char *argv[])
{
const char *c_src = ".sub main :main\n" " print ok\\n\"\n" ".end\n";
const char *c2_src = ".sub main :main\n" " print hola\\n\"\n" ".end\n";
- STRING *src, *smain;
+ Parrot_String *src, *smain;
/* get PIR compiler - TODO API */
PMC *compreg = Parrot_PMC_get_pmc_keyed_int(interp,
interp->iglobals,
IGLOBALS_COMPREG_HASH);
- STRING *pir = Parrot_str_new_constant(interp, "PIR");
+ Parrot_String *pir = Parrot_str_new_constant(interp, "PIR");
PMC *comp = Parrot_PMC_get_pmc_keyed_str(interp, compreg, pir);
if (PMC_IS_NULL(comp) || !Parrot_PMC_defined(interp, comp)) {
@@ -717,7 +717,7 @@
}
int
-main(int margc, char *margv[])
+main(int margc, const char *margv[])
{
Parrot_Interp interp;
PackFile *pf;
Modified: branches/avl_string_cache/t/src/extend.t
==============================================================================
--- branches/avl_string_cache/t/src/extend.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/src/extend.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
use strict;
@@ -35,7 +35,8 @@
#include "parrot/extend.h"
int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
Parrot_Interp interp = Parrot_new(NULL);
Parrot_Int parrot_reg = 0;
Parrot_Int value = 42;
@@ -65,7 +66,8 @@
#include "parrot/extend.h"
int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
Parrot_Interp interp = Parrot_new(NULL);
Parrot_Int parrot_reg = 1;
Parrot_Float value = 2.5;
@@ -95,7 +97,8 @@
#include "parrot/extend.h"
int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
Parrot_Interp interp = Parrot_new(NULL);
Parrot_String output;
@@ -121,7 +124,8 @@
#include "parrot/extend.h"
int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
Parrot_Interp interp = Parrot_new(NULL);
Parrot_Int parrot_reg = 2;
Parrot_String value, new_value;
@@ -151,7 +155,8 @@
#include "parrot/extend.h"
int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
Parrot_Interp interp = Parrot_new(NULL);
Parrot_Int value = 101010;
Parrot_PMC testpmc;
@@ -201,7 +206,8 @@
}
int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
Parrot_Interp interp = Parrot_new(NULL);
/* Interpreter set-up */
@@ -223,7 +229,8 @@
#include "parrot/extend.h"
int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
Parrot_Interp interp = Parrot_new(NULL);
Parrot_Int value = -123;
Parrot_Int parrot_reg = 31;
@@ -261,7 +268,8 @@
#include "parrot/extend.h"
int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
Parrot_Interp interp = Parrot_new(NULL);
Parrot_Float value = 3.1415927;
Parrot_Int type;
@@ -294,7 +302,8 @@
#include "parrot/extend.h"
int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
Parrot_Interp interp = Parrot_new(NULL);
Parrot_Int type;
Parrot_String value, new_value;
@@ -327,7 +336,8 @@
#include "parrot/extend.h"
int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
Parrot_Interp interp = Parrot_new(NULL);
Parrot_Int type;
Parrot_PMC testpmc;
@@ -361,7 +371,8 @@
#include "parrot/extend.h"
int
-main(int argc, char* argv[]) {
+main(int argc, const char *argv[])
+{
Parrot_Interp interp = Parrot_new(NULL);
Parrot_Int length = 6;
Parrot_Int type;
@@ -422,7 +433,7 @@
static opcode_t *the_test(Parrot_Interp, opcode_t *, opcode_t *);
int
-main(int argc, char *argv[])
+main(int argc, const char *argv[])
{
Parrot_Interp interp = Parrot_new(NULL);
if (!interp)
@@ -440,9 +451,9 @@
static opcode_t*
the_test(PARROT_INTERP, opcode_t *cur_op, opcode_t *start)
{
- PackFile *pf = Parrot_pbc_read(interp, "$temp_pbc", 0);
- STRING *name = Parrot_str_new_constant(interp, "_sub1");
- PMC *sub, *arg;
+ PackFile *pf = Parrot_pbc_read(interp, "$temp_pbc", 0);
+ Parrot_String name = Parrot_str_new_constant(interp, "_sub1");
+ PMC *sub, *arg;
Parrot_pbc_load(interp, pf);
sub = Parrot_find_global_cur(interp, name);
@@ -480,7 +491,7 @@
static opcode_t *the_test(Parrot_Interp, opcode_t *, opcode_t *);
int
-main(int argc, char *argv[])
+main(int argc, const char *argv[])
{
Parrot_Interp interp = Parrot_new(NULL);
if (!interp)
@@ -498,9 +509,9 @@
static opcode_t*
the_test(PARROT_INTERP, opcode_t *cur_op, opcode_t *start)
{
- PackFile *pf = Parrot_pbc_read(interp, "$temp_pbc", 0);
- STRING *name = Parrot_str_new_constant(interp, "_sub1");
- PMC *sub, *arg;
+ PackFile *pf = Parrot_pbc_read(interp, "$temp_pbc", 0);
+ Parrot_String name = Parrot_str_new_constant(interp, "_sub1");
+ PMC *sub, *arg;
Parrot_pbc_load(interp, pf);
sub = Parrot_find_global_cur(interp, name);
@@ -556,7 +567,7 @@
static opcode_t *the_test(Parrot_Interp, opcode_t *, opcode_t *);
int
-main(int argc, char *argv[])
+main(int argc, const char *argv[])
{
Parrot_Interp interp = Parrot_new(NULL);
if (!interp)
@@ -574,10 +585,10 @@
static opcode_t*
the_test(PARROT_INTERP, opcode_t *cur_op, opcode_t *start)
{
- PackFile *pf = Parrot_pbc_read(interp, "$temp_pbc", 0);
- STRING *name = Parrot_str_new_constant(interp, "foo");
- PMC *sub, *arg;
- Parrot_Int result;
+ PackFile *pf = Parrot_pbc_read(interp, "$temp_pbc", 0);
+ Parrot_String name = Parrot_str_new_constant(interp, "foo");
+ PMC *sub, *arg;
+ Parrot_Int result;
Parrot_pbc_load(interp, pf);
sub = Parrot_find_global_cur(interp, name);
@@ -623,7 +634,7 @@
the_test(Parrot_Interp, opcode_t *, opcode_t *);
int
-main(int argc, char *argv[])
+main(int argc, const char *argv[])
{
Parrot_Interp interp = Parrot_new(NULL);
if (!interp)
@@ -641,9 +652,9 @@
static opcode_t*
the_test(PARROT_INTERP, opcode_t *cur_op, opcode_t *start)
{
- PackFile *pf = Parrot_pbc_read(interp, "$temp_pbc", 0);
- STRING *name = Parrot_str_new_constant(interp, "_sub1");
- PMC *sub;
+ PackFile *pf = Parrot_pbc_read(interp, "$temp_pbc", 0);
+ Parrot_String name = Parrot_str_new_constant(interp, "_sub1");
+ PMC *sub;
Parrot_runloop jump_point;
Parrot_pbc_load(interp, pf);
@@ -718,10 +729,10 @@
#include <parrot/embed.h>
int
-main(int argc, char* argv[])
+main(int argc, const char *argv[])
{
Parrot_PackFile packfile;
- char * code[] = { ".sub foo\\nsay \\"Hello from foo!\\"\\n.end\\n" };
+ const char * code[] = { ".sub foo\\nsay \\"Hello from foo!\\"\\n.end\\n" };
Parrot_Interp interp = Parrot_new(NULL);
if (!interp) {
@@ -755,15 +766,13 @@
#include <parrot/extend.h>
int
-main(int argc, char* argv[])
+main(int argc, const char *argv[])
{
Parrot_Interp interp = Parrot_new(NULL);
const char *code = ".sub foo\nprint\"Hello from foo!\\n\"\n.end\n";
Parrot_PMC retval;
Parrot_PMC sub;
- STRING *code_type;
- STRING *error;
- STRING *foo_name;
+ Parrot_String code_type, error, foo_name;
if (!interp) {
printf( "Hiss\n" );
@@ -796,7 +805,7 @@
#include <parrot/extend.h>
int
-main(int argc, char* argv[])
+main(int argc, const char *argv[])
{
Parrot_Int result;
Parrot_PMC sub;
@@ -828,7 +837,7 @@
#include <parrot/extend.h>
int
-main(int argc, char* argv[])
+main(int argc, const char *argv[])
{
Parrot_Int result;
Parrot_PMC sub;
@@ -881,7 +890,8 @@
}
int
-main(int argc, char *argv[]) {
+main(int argc, const char *argv[])
+{
Parrot_Interp interp;
int i, niter = 2;
Modified: branches/avl_string_cache/t/src/warnings.t
==============================================================================
--- branches/avl_string_cache/t/src/warnings.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/src/warnings.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2001-2006, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
use strict;
@@ -34,7 +34,7 @@
#include <parrot/embed.h>
int
-main(int argc, char* argv[])
+main(int argc, const char* argv[])
{
Parrot_Interp interp = Parrot_new(NULL);
int error_val;
@@ -57,7 +57,7 @@
#include <parrot/embed.h>
int
-main(int argc, char* argv[])
+main(int argc, const char* argv[])
{
Parrot_Interp interp = Parrot_new(NULL);
int error_val;
Modified: branches/avl_string_cache/t/steps/auto/arch-01.t
==============================================================================
--- branches/avl_string_cache/t/steps/auto/arch-01.t Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/t/steps/auto/arch-01.t Thu Apr 22 09:55:26 2010 (r45889)
@@ -5,7 +5,7 @@
use strict;
use warnings;
-use Test::More tests => 81;
+use Test::More tests => 83;
use Carp;
use lib qw( lib t/configure/testlib );
use_ok('config::auto::arch');
@@ -16,8 +16,6 @@
);
use IO::CaptureOutput qw| capture |;
-########## Darwin special case ##########
-
my ($args, $step_list_ref) = process_options( {
argv => [ ],
mode => q{configure},
@@ -33,6 +31,9 @@
$conf->add_steps($pkg);
$conf->options->set( %{$args} );
my $step = test_step_constructor_and_description($conf);
+my $ret = $step->runstep($conf);
+ok( $ret, "runstep() returned true value" );
+is($step->result(), q{}, "Result was empty string as expected");
$conf->replenish($serialized);
@@ -74,7 +75,7 @@
$step = test_step_constructor_and_description($conf);
my $pseudoarch = q{foobar};
$conf->data->set('archname' => $pseudoarch);
-my $ret = $step->runstep($conf);
+$ret = $step->runstep($conf);
ok( $ret, "runstep() returned true value: $pseudoarch" );
is($step->result(), q{}, "Result was empty string as expected");
is($conf->data->get('cpuarch'), q{},
@@ -94,21 +95,20 @@
$conf->add_steps($pkg);
$conf->options->set( %{$args} );
$step = test_step_constructor_and_description($conf);
+$step->{unamep} = 'powerpc';
$pseudoarch = q{darwin-thread-multi-2level};
$conf->data->set('archname' => $pseudoarch);
-my $pseudobyteorder = 1234;
-$conf->data->set('byteorder' => $pseudobyteorder);
$ret = $step->runstep($conf);
ok( $ret, "runstep() returned true value: $pseudoarch" );
is($step->result(), q{}, "Result was empty string as expected");
-is($conf->data->get('cpuarch'), q{i386},
+is($conf->data->get('cpuarch'), q{ppc},
"'cpuarch' was set as expected");
is($conf->data->get('osname'), q{darwin},
"'osname' was set as expected");
$conf->replenish($serialized);
-########## mock darwin ##########
+######### mock darwin ##########
($args, $step_list_ref) = process_options( {
argv => [ ],
@@ -118,14 +118,13 @@
$conf->add_steps($pkg);
$conf->options->set( %{$args} );
$step = test_step_constructor_and_description($conf);
+$step->{unamep} = 'i386';
$pseudoarch = q{darwin-thread-multi-2level};
$conf->data->set('archname' => $pseudoarch);
-$pseudobyteorder = 4321;
-$conf->data->set('byteorder' => $pseudobyteorder);
$ret = $step->runstep($conf);
ok( $ret, "runstep() returned true value: $pseudoarch" );
is($step->result(), q{}, "Result was empty string as expected");
-is($conf->data->get('cpuarch'), q{ppc},
+is($conf->data->get('cpuarch'), q{i386},
"'cpuarch' was set as expected");
is($conf->data->get('osname'), q{darwin},
"'osname' was set as expected");
Deleted: branches/avl_string_cache/t/steps/auto/crypto-01.t
==============================================================================
--- branches/avl_string_cache/t/steps/auto/crypto-01.t Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,176 +0,0 @@
-#! perl
-# Copyright (C) 2008, Parrot Foundation.
-# $Id$
-
-use strict;
-use warnings;
-use Test::More tests => 24;
-use Carp;
-use lib qw( lib t/configure/testlib );
-use_ok('config::auto::crypto');
-use Parrot::Configure::Options qw( process_options );
-use Parrot::Configure::Step::Test;
-use Parrot::Configure::Test qw(
- test_step_constructor_and_description
-);
-use IO::CaptureOutput qw( capture );
-
-########## --without-crypto ##########
-
-my ($args, $step_list_ref) = process_options(
- {
- argv => [ q{--without-crypto} ],
- mode => q{configure},
- }
-);
-
-my $conf = Parrot::Configure::Step::Test->new;
-$conf->include_config_results( $args );
-
-my $pkg = q{auto::crypto};
-
-$conf->add_steps($pkg);
-
-my $serialized = $conf->pcfreeze();
-
-$conf->options->set( %{$args} );
-my $step = test_step_constructor_and_description($conf);
-my $ret = $step->runstep($conf);
-ok( $ret, "runstep() returned true value" );
-is($conf->data->get('has_crypto'), 0,
- "Got expected value for 'has_crypto'");
-is($step->result(), q{no}, "Expected result was set");
-
-$conf->replenish($serialized);
-
-########## _select_lib() ##########
-
-($args, $step_list_ref) = process_options( {
- argv => [ ],
- mode => q{configure},
-} );
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-# Mock different OS/compiler combinations.
-my ($osname, $cc, $initial_libs);
-$initial_libs = $conf->data->get('libs');
-$osname = 'mswin32';
-$cc = 'gcc';
-is($step->_select_lib( {
- conf => $conf,
- osname => $osname,
- cc => $cc,
- win32_nongcc => 'libcrypto.lib',
- default => '-lcrypto',
-} ),
- '-lcrypto',
- "_select_lib() returned expected value");
-
-$osname = 'mswin32';
-$cc = 'cc';
-is($step->_select_lib( {
- conf => $conf,
- osname => $osname,
- cc => $cc,
- win32_nongcc => 'libcrypto.lib',
- default => '-lcrypto',
-} ),
- 'libcrypto.lib',
- "_select_lib() returned expected value");
-
-$osname = 'foobar';
-$cc = 'cc';
-is($step->_select_lib( {
- conf => $conf,
- osname => $osname,
- cc => $cc,
- win32_nongcc => 'libcrypto.lib',
- default => '-lcrypto',
-} ),
- '-lcrypto',
- "_select_lib() returned expected value");
-
-my $verbose = undef;
-
-$conf->replenish($serialized);
-
-########## --without-crypto; _evaluate_cc_run() ##########
-
-($args, $step_list_ref) = process_options( {
- argv => [ q{--without-crypto} ],
- mode => q{configure},
-} );
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-my ($test, $has_crypto);
-$test = qq{OpenSSL 0.9.9z\n};
-$has_crypto = 0;
-$verbose = undef;
-$has_crypto = $step->_evaluate_cc_run($conf, $test, $has_crypto, $verbose);
-is($has_crypto, 1, "'has_crypto' set as expected");
-is($step->result(), 'yes, 0.9.9z', "Expected result was set");
-# Prepare for next test
-$step->set_result(undef);
-
-$test = qq{foobar};
-$has_crypto = 0;
-$verbose = undef;
-$has_crypto = $step->_evaluate_cc_run($conf, $test, $has_crypto, $verbose);
-is($has_crypto, 0, "'has_crypto' set as expected");
-ok(! defined $step->result(), "Result is undefined, as expected");
-
-{
- my $stdout;
- $test = qq{OpenSSL 0.9.9z\n};
- $has_crypto = 0;
- $verbose = 1;
- capture(
- sub { $has_crypto =
- $step->_evaluate_cc_run($conf, $test, $has_crypto, $verbose); },
- \$stdout,
- );
- is($has_crypto, 1, "'has_crypto' set as expected");
- is($step->result(), 'yes, 0.9.9z', "Expected result was set");
- like($stdout, qr/\(yes\)/, "Got expected verbose output");
- # Prepare for next test
- $step->set_result(undef);
-}
-
-pass("Completed all tests in $0");
-
-################### DOCUMENTATION ###################
-
-=head1 NAME
-
-auto/crypto-01.t - test auto::crypto
-
-=head1 SYNOPSIS
-
- % prove t/steps/auto/crypto-01.t
-
-=head1 DESCRIPTION
-
-The files in this directory test functionality used by F<Configure.pl>.
-
-The tests in this file test auto::crypto.
-
-=head1 HISTORY
-
-Mostly taken from F<t/steps/auto/gdbm-01.t>.
-
-=head1 AUTHOR
-
-Francois Perrad
-
-=head1 SEE ALSO
-
-config::auto::crypto, F<Configure.pl>.
-
-=cut
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Deleted: branches/avl_string_cache/t/steps/auto/gdbm-01.t
==============================================================================
--- branches/avl_string_cache/t/steps/auto/gdbm-01.t Thu Apr 22 09:55:26 2010 (r45888)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,175 +0,0 @@
-#! perl
-# Copyright (C) 2007, Parrot Foundation.
-# $Id$
-# auto/gdbm-01.t
-
-use strict;
-use warnings;
-use Test::More tests => 29;
-use Carp;
-use Cwd;
-use File::Spec;
-use File::Temp qw( tempdir );
-use lib qw( lib t/configure/testlib );
-use_ok('config::auto::gdbm');
-use Parrot::Configure::Options qw( process_options );
-use Parrot::Configure::Step::Test;
-use Parrot::Configure::Test qw(
- test_step_constructor_and_description
-);
-use IO::CaptureOutput qw| capture |;
-
-=for hints_for_testing The documentation for this package is skimpy;
-please try to improve it, e.g., by providing a short description of what
-the 'gdbm' is. Some branches are compiler- or OS-specific. As noted in
-a comment in the module, please consider the issues raised in
-http://rt.perl.org/rt3/Ticket/Display.html?id=43134.
-
-=cut
-
-########## --without-gdbm ##########
-
-my ($args, $step_list_ref) = process_options( {
- argv => [ q{--without-gdbm} ],
- mode => q{configure},
-} );
-
-my $conf = Parrot::Configure::Step::Test->new;
-$conf->include_config_results( $args );
-
-my $serialized = $conf->pcfreeze();
-
-my $pkg = q{auto::gdbm};
-
-$conf->add_steps($pkg);
-$conf->options->set( %{$args} );
-my $step = test_step_constructor_and_description($conf);
-my $ret = $step->runstep($conf);
-ok( $ret, "runstep() returned true value" );
-is($conf->data->get('has_gdbm'), 0,
- "Got expected value for 'has_gdbm'");
-is($step->result(), q{no}, "Expected result was set");
-
-$conf->replenish($serialized);
-
-########## --without-gdbm ##########
-
-($args, $step_list_ref) = process_options( {
- argv => [ q{--without-gdbm} ],
- mode => q{configure},
-} );
-$conf->add_steps($pkg);
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-my $osname;
-my ($flagsbefore, $flagsafter);
-$osname = 'foobar';
-my $cwd = cwd();
-{
- my $tdir = tempdir( CLEANUP => 1 );
- ok(chdir $tdir, "Able to change to temporary directory");
- ok( (mkdir 'lib'), "Able to make lib directory");
- ok( (mkdir 'include'), "Able to make include directory");
- my $libdir = File::Spec->catdir( $tdir, 'lib' );
- my $includedir = File::Spec->catdir( $tdir, 'include' );
- $conf->data->set('fink_lib_dir' => $libdir);
- $conf->data->set('fink_include_dir' => $includedir);
-
- ok(chdir $cwd, "Able to change back to original directory after testing");
-}
-{
- my $tdir2 = tempdir( CLEANUP => 1 );
- ok(chdir $tdir2, "Able to change to temporary directory");
- ok( (mkdir 'lib'), "Able to make lib directory");
- ok( (mkdir 'include'), "Able to make include directory");
- my $libdir = File::Spec->catdir( $tdir2, 'lib' );
- my $includedir = File::Spec->catdir( $tdir2, 'include' );
- $conf->data->set('fink_lib_dir' => $libdir);
- $conf->data->set('fink_include_dir' => $includedir);
- my $foo = File::Spec->catfile( $includedir, 'gdbm.h' );
- open my $FH, ">", $foo or croak "Could not open for writing";
- print $FH "Hello world\n";
- close $FH or croak "Could not close after writing";
-
- ok(chdir $cwd, "Able to change back to original directory after testing");
-}
-
-$conf->replenish($serialized);
-
-########## --without-gdbm; _evaluate_cc_run() ##########
-
-($args, $step_list_ref) = process_options( {
- argv => [ q{--without-gdbm} ],
- mode => q{configure},
-} );
-$conf->add_steps($pkg);
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-my ($test, $has_gdbm, $verbose);
-$test = qq{gdbm is working.\n};
-$has_gdbm = 0;
-$verbose = undef;
-$has_gdbm = $step->_evaluate_cc_run($test, $has_gdbm, $verbose);
-is($has_gdbm, 1, "'has_gdbm' set as expected");
-is($step->result(), 'yes', "Expected result was set");
-# Prepare for next test
-$step->set_result(undef);
-$test = qq{foobar};
-$has_gdbm = 0;
-$verbose = undef;
-$has_gdbm = $step->_evaluate_cc_run($test, $has_gdbm, $verbose);
-is($has_gdbm, 0, "'has_gdbm' set as expected");
-ok(! defined $step->result(), "Result is undefined, as expected");
-{
- my $stdout;
- $test = qq{gdbm is working.\n};
- $has_gdbm = 0;
- $verbose = 1;
- capture(
- sub { $has_gdbm =
- $step->_evaluate_cc_run($test, $has_gdbm, $verbose); },
- \$stdout,
- );
- is($has_gdbm, 1, "'has_gdbm' set as expected");
- is($step->result(), 'yes', "Expected result was set");
- like($stdout, qr/\(yes\)/, "Got expected verbose output");
- # Prepare for next test
- $step->set_result(undef);
-}
-
-$conf->replenish($serialized);
-
-pass("Completed all tests in $0");
-
-################### DOCUMENTATION ###################
-
-=head1 NAME
-
-auto/gdbm-01.t - test auto::gdbm
-
-=head1 SYNOPSIS
-
- % prove t/steps/auto/gdbm-01.t
-
-=head1 DESCRIPTION
-
-The files in this directory test functionality used by F<Configure.pl>.
-
-The tests in this file test auto::gdbm.
-
-=head1 AUTHOR
-
-James E Keenan
-
-=head1 SEE ALSO
-
-config::auto::gdbm, F<Configure.pl>.
-
-=cut
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Modified: branches/avl_string_cache/tools/build/headerizer.pl
==============================================================================
--- branches/avl_string_cache/tools/build/headerizer.pl Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/tools/build/headerizer.pl Thu Apr 22 09:55:26 2010 (r45889)
@@ -2,11 +2,6 @@
# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
-use strict;
-use warnings;
-use Carp qw( confess );
-
-
=head1 NAME
tools/build/headerizer.pl - Generates the function header parts of .h
@@ -59,6 +54,9 @@
=cut
+use strict;
+use warnings;
+
use Getopt::Long;
use lib qw( lib );
use Parrot::Config;
@@ -66,96 +64,10 @@
my $headerizer = Parrot::Headerizer->new;
-my %warnings;
-my %opt;
-
-my %valid_macros = map { ( $_, 1 ) } qw(
- PARROT_EXPORT
- PARROT_INLINE
- PARROT_CAN_RETURN_NULL
- PARROT_CANNOT_RETURN_NULL
- PARROT_IGNORABLE_RESULT
- PARROT_WARN_UNUSED_RESULT
- PARROT_PURE_FUNCTION
- PARROT_CONST_FUNCTION
- PARROT_DOES_NOT_RETURN
- PARROT_DOES_NOT_RETURN_WHEN_FALSE
- PARROT_MALLOC
- PARROT_OBSERVER
-);
-
main();
=head1 FUNCTIONS
-=head2 extract_function_declarations( $sourcefile_text )
-
-Rips apart a C file to get the function declarations.
-
-=cut
-
-sub extract_function_declarations {
- my $text = shift;
-
- # Only check the YACC C code if we find what looks like YACC file
- $text =~ s[%\{(.*)%\}.*][$1]sm;
-
- # Drop all text after HEADERIZER STOP
- $text =~ s[/\*\s*HEADERIZER STOP.+][]s;
-
- # Strip blocks of comments
- $text =~ s[^/\*.*?\*/][]mxsg;
-
- # Strip # compiler directives (Thanks, Audrey!)
- $text =~ s[^#(\\\n|.)*][]mg;
-
- # Strip code blocks
- $text =~ s[^{.+?^}][]msg;
-
- # Split on paragraphs
- my @funcs = split /\n{2,}/, $text;
-
- # If it doesn't start in the left column, it's not a func
- @funcs = grep /^\S/, @funcs;
-
- # Typedefs, enums and externs are no good
- @funcs = grep { !/^(typedef|enum|extern)\b/ } @funcs;
-
- # Structs are OK if they're not alone on the line
- @funcs = grep { !/^struct.+;\n/ } @funcs;
-
- # Structs are OK if they're not being defined
- @funcs = grep { !/^(static\s+)?struct.+{\n/ } @funcs;
-
- # Ignore magic function name YY_DECL
- @funcs = grep { !/YY_DECL/ } @funcs;
-
- # Ignore anything with magic words HEADERIZER SKIP
- @funcs = grep { !m{/\*\s*HEADERIZER SKIP\s*\*/} } @funcs;
-
- # pmclass declarations in PMC files are no good
- @funcs = grep { !m{^pmclass } } @funcs;
-
- # Variables are of no use to us
- @funcs = grep !/=/, @funcs;
-
- # Get rid of any blocks at the end
- s/\s*{.*//s for @funcs;
-
- # Toast anything non-whitespace
- @funcs = grep /\S/, @funcs;
-
- # If it's got a semicolon, it's not a function header
- @funcs = grep !/;/, @funcs;
-
- # remove any remaining }'s
- @funcs = grep {! /^}/} @funcs;
-
- chomp @funcs;
-
- return @funcs;
-}
-
=head2 extract_function_declaration_and_update_source( $cfile_name )
Extract all the function declarations from the C file specified by
@@ -170,9 +82,9 @@
my $text = join( '', <$fhin> );
close $fhin;
- my @func_declarations = extract_function_declarations( $text );
+ my @func_declarations = $headerizer->extract_function_declarations( $text );
for my $decl ( @func_declarations ) {
- my $specs = function_components_from_declaration( $cfile_name, $decl );
+ my $specs = $headerizer->function_components_from_declaration( $cfile_name, $decl );
my $name = $specs->{name};
my $heading = $headerizer->generate_documentation_signature($decl);
@@ -187,96 +99,6 @@
return @func_declarations;
}
-=head2 function_components_from_declaration( $file, $proto )
-
-Takes a declaration of a function and returns an ad-hoc hashref of
-properties for use elsewhere.
-
-=cut
-
-sub function_components_from_declaration {
- my $file = shift;
- my $proto = shift;
-
- my @lines = split( /\n/, $proto );
- chomp @lines;
-
- my @macros;
- my $parrot_api;
- my $parrot_inline;
-
- while ( @lines && ( $lines[0] =~ /^PARROT_/ ) ) {
- my $macro = shift @lines;
- if ( $macro eq 'PARROT_EXPORT' ) {
- $parrot_api = 1;
- }
- elsif ( $macro eq 'PARROT_INLINE' ) {
- $parrot_inline = 1;
- }
- push( @macros, $macro );
- }
-
- my $return_type = shift @lines;
- my $args = join( ' ', @lines );
-
- $args =~ s/\s+/ /g;
-
- $args =~ s{([^(]+)\s*\((.+)\);?}{$2}
- or die qq{Couldn't handle "$proto" in $file\n};
-
- my $name = $1;
- $args = $2;
-
- die "Can't have both PARROT_EXPORT and PARROT_INLINE on $name\n" if $parrot_inline && $parrot_api;
-
- my @args = split( /\s*,\s*/, $args );
- for (@args) {
- /\S+\s+\S+/
- || ( $_ eq '...' )
- || ( $_ eq 'void' )
- || ( $_ =~ /(PARROT|NULLOK|SHIM)_INTERP/ )
- or die "Bad args in $proto";
- }
-
- my $is_ignorable = 0;
- my $is_static = 0;
- $is_static = $2 if $return_type =~ s/^((static)\s+)?//i;
-
- die "$file $name: Impossible to have both static and PARROT_EXPORT" if $parrot_api && $is_static;
-
- my %macros;
- for my $macro (@macros) {
- $macros{$macro} = 1;
- if ( not $valid_macros{$macro} ) {
- squawk( $file, $name, "Invalid macro $macro" );
- }
- if ( $macro eq 'PARROT_IGNORABLE_RESULT' ) {
- $is_ignorable = 1;
- }
- }
- if ( $return_type =~ /\*/ ) {
- if ( !$macros{PARROT_CAN_RETURN_NULL} && !$macros{PARROT_CANNOT_RETURN_NULL} ) {
- squawk( $file, $name,
- "Returns a pointer, but no PARROT_CAN(NOT)_RETURN_NULL macro found." );
- }
- elsif ( $macros{PARROT_CAN_RETURN_NULL} && $macros{PARROT_CANNOT_RETURN_NULL} ) {
- squawk( $file, $name,
- "Can't have both PARROT_CAN_RETURN_NULL and PARROT_CANNOT_RETURN_NULL together." );
- }
- }
-
- return {
- file => $file,
- name => $name,
- args => \@args,
- macros => \@macros,
- is_static => $is_static,
- is_inline => $parrot_inline,
- is_api => $parrot_api,
- is_ignorable => $is_ignorable,
- return_type => $return_type,
- };
-}
sub attrs_from_args {
my $func = shift;
@@ -300,14 +122,14 @@
}
push( @mods, "FUNC_MODIFIES($modified)" );
}
- if ( $arg =~ m{(ARGIN|ARGOUT|ARGMOD|NOTNULL)\(} || $arg eq 'PARROT_INTERP' ) {
+ if ( $arg =~ m{(ARGIN|ARGOUT|ARGMOD|ARGFREE_NOTNULL|NOTNULL)\(} || $arg eq 'PARROT_INTERP' ) {
push( @attrs, "__attribute__nonnull__($n)" );
}
- if ( ( $arg =~ m{\*} ) && ( $arg !~ /\b(SHIM|((ARGIN|ARGOUT|ARGMOD)(_NULLOK)?)|ARGFREE)\b/ ) ) {
- squawk( $file, $name, qq{"$arg" isn't protected with an ARGIN, ARGOUT or ARGMOD (or a _NULLOK variant), or ARGFREE} );
+ if ( ( $arg =~ m{\*} ) && ( $arg !~ /\b(SHIM|((ARGIN|ARGOUT|ARGMOD)(_NULLOK)?)|ARGFREE(_NOTNULL)?)\b/ ) ) {
+ $headerizer->squawk( $file, $name, qq{"$arg" isn't protected with an ARGIN, ARGOUT or ARGMOD (or a _NULLOK variant), or ARGFREE} );
}
if ( ($arg =~ /\bconst\b/) && ($arg =~ /\*/) && ($arg !~ /\*\*/) && ($arg =~ /\b(ARG(MOD|OUT))\b/) ) {
- squawk( $file, $name, qq{"$arg" is const, but that $1 conflicts with const} );
+ $headerizer->squawk( $file, $name, qq{"$arg" is const, but that $1 conflicts with const} );
}
}
@@ -319,7 +141,7 @@
my @asserts;
for my $arg (@args) {
- if ( $arg =~ m{(ARGIN|ARGOUT|ARGMOD|NOTNULL)\((.+)\)} ) {
+ if ( $arg =~ m{(ARGIN|ARGOUT|ARGMOD|ARGFREE_NOTNULL|NOTNULL)\((.+)\)} ) {
my $var = $2;
if($var =~ /\(*\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*\)\s*\(/) {
# argument is a function pointer
@@ -351,7 +173,11 @@
my $return = $func->{return_type};
my $alt_void = ' ';
- if ( $func->{is_ignorable} && ($return ne 'void') && ($return !~ /\*/) ) {
+
+ # Splint can't handle /*@alt void@*/ on pointers, although this page
+ # http://www.mail-archive.com/lclint-interest@virginia.edu/msg00139.html
+ # seems to say that we can.
+ if ( $func->{is_ignorable} && ($return !~ /\*/) ) {
$alt_void = " /*\@alt void@*/\n";
}
@@ -424,14 +250,6 @@
return @decls;
}
-sub squawk {
- my $file = shift;
- my $func = shift;
- my $error = shift;
-
- push( @{ $warnings{$file}->{$func} }, $error );
-}
-
sub read_file {
my $filename = shift;
@@ -537,14 +355,14 @@
my @decls;
if ( $macro_match ) {
- @decls = extract_function_declarations( $source_code );
+ @decls = $headerizer->extract_function_declarations( $source_code );
}
else {
@decls = extract_function_declarations_and_update_source( $sourcefile );
}
for my $decl (@decls) {
- my $components = function_components_from_declaration( $sourcefile, $decl );
+ my $components = $headerizer->function_components_from_declaration( $sourcefile, $decl );
push( @{ $sourcefiles{$hfile}->{$sourcefile} }, $components ) unless $hfile eq 'none';
push( @{ $sourcefiles_with_statics{$sourcefile} }, $components ) if $components->{is_static};
if ( $macro_match ) {
@@ -598,6 +416,7 @@
print "Headerization complete.\n";
}
+ my %warnings = %{$headerizer->{warnings}};
if ( keys %warnings ) {
my $nwarnings = 0;
my $nwarningfuncs = 0;
Modified: branches/avl_string_cache/tools/dev/mk_inno.pl
==============================================================================
--- branches/avl_string_cache/tools/dev/mk_inno.pl Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/tools/dev/mk_inno.pl Thu Apr 22 09:55:26 2010 (r45889)
@@ -34,7 +34,6 @@
} if ($PConfig{has_icu});
my %dll = (
- has_gdbm => [ 'gdbm3.dll' ],
HAS_GETTEXT => [ 'libintl3.dll', 'libiconv2.dll' ],
HAS_PCRE => [ 'pcre3.dll' ],
HAS_READLINE => [ 'readline5.dll' ],
Modified: branches/avl_string_cache/tools/dev/mk_manifest_and_skip.pl
==============================================================================
--- branches/avl_string_cache/tools/dev/mk_manifest_and_skip.pl Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/tools/dev/mk_manifest_and_skip.pl Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,6 +1,6 @@
-##! perl
+#! perl
# $Id$
-# Copyright (C) 2006-2009, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
use strict;
use warnings;
@@ -40,8 +40,7 @@
Recreates MANIFEST and MANIFEST.SKIP from the subversion properties
and the output of C<svn status>. .
-So far tested with svn 1.2.0 and svn 1.4.2. This also worked with svk 1.08,
-but to keep our tasks manageable, we only guarantee support for Subversion.
+So far tested with svn 1.2.0 and svn 1.4.2.
This won't work for git-svn.
Modified: branches/avl_string_cache/tools/dev/nci_thunk_gen.pir
==============================================================================
--- branches/avl_string_cache/tools/dev/nci_thunk_gen.pir Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/tools/dev/nci_thunk_gen.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -381,8 +381,7 @@
$S0 = 'get_loader_decl'(sigs)
$S1 = 'get_loader_body'(sigs)
- $S2 = 'sprintf'(<<'LOADER', $S0, $S0, $S1)
-%s;
+ $S2 = 'sprintf'(<<'LOADER', $S0, $S1)
%s {
%s
}
@@ -406,8 +405,7 @@
$S0 = 'get_dynext_loader_decl'(sigs)
$S1 = 'get_loader_body'(sigs)
- $S2 = 'sprintf'(<<'LOADER', $S0, $S0, $S1)
-%s;
+ $S2 = 'sprintf'(<<'LOADER', $S0, $S1)
%s {
%s
}
@@ -431,15 +429,13 @@
.param pmc sigs
.local string code
code = 'sprintf'(<<'HEADER', $S0, $S1)
- PMC *iglobals;
+ PMC * const iglobals = interp->iglobals;
PMC *nci_funcs;
PMC *temp_pmc;
- iglobals = interp->iglobals;
PARROT_ASSERT(!(PMC_IS_NULL(iglobals)));
- nci_funcs = VTABLE_get_pmc_keyed_int(interp, iglobals,
- IGLOBALS_NCI_FUNCS);
+ nci_funcs = VTABLE_get_pmc_keyed_int(interp, iglobals, IGLOBALS_NCI_FUNCS);
PARROT_ASSERT(!(PMC_IS_NULL(nci_funcs)));
HEADER
@@ -640,10 +636,12 @@
typedef %s(* func_t)(%s);
func_t fn_pointer;
void *orig_func;
- PMC *ctx = CURRENT_CONTEXT(interp);
- PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
+ PMC * ret_object = PMCNULL;
%s
%s;
+ UNUSED(return_data); /* Potentially unused, at least */
TEMPLATE
.return (var_decls)
@@ -835,7 +833,7 @@
final_destination = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, final_destination, return_data);
}
- Parrot_pcc_build_call_from_c_args(interp, call_object, \"P\", final_destination);" },
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, \"P\", final_destination);" },
"i": { "as_proto": "int", "sig_char": "I",
"return_type": "INTVAL" },
"l": { "as_proto": "long", "sig_char": "I", "return_type": "INTVAL" },
@@ -846,7 +844,7 @@
"t": { "as_proto": "char *",
"final_dest": "STRING *final_destination;",
"ret_assign": "final_destination = Parrot_str_new(interp, return_data, 0);
- Parrot_pcc_build_call_from_c_args(interp, call_object, \"S\", final_destination);",
+ ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, \"S\", final_destination);",
"sig_char": "S",
"temp_tmpl": "char *t_%i; STRING *ts_%i",
"fill_params_tmpl": ", &ts_%i",
@@ -884,7 +882,7 @@
"2": { "as_proto": "short *",
"sig_char": "P",
"return_type": "short",
- "ret_assign": "Parrot_pcc_build_call_from_c_args(interp, call_object, \"I\", return_data);",
+ "ret_assign": "ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, \"I\", return_data);",
"temp_tmpl": "PMC *t_%i; short i_%i",
"preamble_tmpl": "i_%i = VTABLE_get_integer(interp, t_%i);",
"call_param_tmpl": "&i_%i",
@@ -892,7 +890,7 @@
"3": { "as_proto": "int *",
"sig_char": "P",
"return_type": "int",
- "ret_assign": "Parrot_pcc_build_call_from_c_args(interp, call_object, \"I\", return_data);",
+ "ret_assign": "ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, \"I\", return_data);",
"temp_tmpl": "PMC *t_%i; int i_%i",
"preamble_tmpl": "i_%i = VTABLE_get_integer(interp, t_%i);",
"call_param_tmpl": "&i_%i",
@@ -900,7 +898,7 @@
"4": { "as_proto": "long *",
"sig_char": "P",
"return_type": "long",
- "ret_assign": "Parrot_pcc_build_call_from_c_args(interp, call_object, \"I\", return_data);",
+ "ret_assign": "ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, \"I\", return_data);",
"temp_tmpl": "PMC *t_%i; long i_%i",
"preamble_tmpl": "i_%i = VTABLE_get_integer(interp, t_%i);",
"call_param_tmpl": "&i_%i",
@@ -960,7 +958,7 @@
$I1 = !$I1
$I0 = $I0 || $I1 # not (not exists v[ret_assign] and exists v[sig_char])
if $I0 goto has_ret_assign
- $S0 = 'Parrot_pcc_build_call_from_c_args(interp, call_object, "'
+ $S0 = 'ret_object = Parrot_pcc_build_call_from_c_args(interp, call_object, "'
$S1 = v['sig_char']
$S0 = concat $S0, $S1
$S0 = concat $S0, '", return_data);'
Modified: branches/avl_string_cache/tools/dev/pbc_to_exe.pir
==============================================================================
--- branches/avl_string_cache/tools/dev/pbc_to_exe.pir Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/tools/dev/pbc_to_exe.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -66,7 +66,7 @@
print outfh, codestring
print outfh, <<'MAIN'
- int main(int argc, char *argv[])
+ int main(int argc, const char *argv[])
{
PackFile *pf;
Parrot_Interp interp;
@@ -217,9 +217,12 @@
.local pmc ifh
ifh = open infile, 'r'
unless ifh goto err_infile
- .local string codestring
+
+ .local pmc codestring
.local int size
- codestring = "const Parrot_UInt1 program_code[] = {"
+
+ codestring = new [ 'ResizableStringArray' ]
+ push codestring, "const Parrot_UInt1 program_code[] = {"
size = 0
read_loop:
@@ -236,13 +239,13 @@
unless pos < pbclength goto code_done
$I0 = ord pbcstring, pos
$S0 = $I0
- codestring .= $S0
- codestring .= ','
+ push codestring, $S0
+ push codestring, ','
inc pos
inc size
$I0 = size % 32
unless $I0 == 0 goto code_loop
- codestring .= "\n"
+ push codestring, "\n"
goto code_loop
code_done:
goto read_loop
@@ -250,19 +253,19 @@
read_done:
close ifh
- codestring .= "\n};\n\n"
- codestring .= "const int bytecode_size = "
+ push codestring, "\n};\n\nconst int bytecode_size = "
$S0 = size
- codestring .= $S0
- codestring .= ";\n"
- codestring .= <<'END_OF_FUNCTION'
+ push codestring, $S0
+ push codestring, ";\n"
+ push codestring, <<'END_OF_FUNCTION'
const void * get_program_code(void)
{
return program_code;
}
END_OF_FUNCTION
- .return (codestring)
+ $S0 = join '', codestring
+ .return ($S0)
err_infile:
die "cannot open infile"
@@ -307,10 +310,13 @@
.local pmc encoding_table
encoding_table = 'generate_encoding_table'()
- .local string codestring
+ .local pmc codestring
.local int size
- codestring = "const char * program_code =\n"
- codestring .= '"'
+
+ codestring = new ['ResizableStringArray']
+
+ push codestring, "const char * program_code =\n"
+ push codestring, '"'
size = 0
read_loop:
@@ -327,14 +333,14 @@
unless pos < pbclength goto code_done
$I0 = ord pbcstring, pos
$S0 = encoding_table[$I0]
- codestring .= $S0
+ push codestring, $S0
inc pos
inc size
$I0 = size % 32
unless $I0 == 0 goto code_loop
- codestring .= '"'
- codestring .= "\n"
- codestring .= '"'
+ push codestring, '"'
+ push codestring, "\n"
+ push codestring, '"'
goto code_loop
code_done:
goto read_loop
@@ -342,21 +348,22 @@
read_done:
close ifh
- codestring .= '"'
- codestring .= "\n;\n\n"
- codestring .= "const int bytecode_size = "
+ push codestring, '"'
+ push codestring, "\n;\n\n"
+ push codestring, "const int bytecode_size = "
$S0 = size
- codestring .= $S0
- codestring .= ";\n"
+ push codestring, $S0
+ push codestring, ";\n"
- codestring .= <<'END_OF_FUNCTION'
+ push codestring, <<'END_OF_FUNCTION'
const void * get_program_code(void)
{
return program_code;
}
END_OF_FUNCTION
- .return (codestring)
+ $S0 = join '', codestring
+ .return ($S0)
err_infile:
die "cannot open infile"
@@ -437,17 +444,16 @@
pbc_size = $P2[7]
- .local string codestring
- codestring = ''
- codestring .= '#include <windows.h>'
- codestring .= "\n"
- codestring .= rc_constant_defines
- codestring .= "const unsigned int bytecode_size = "
+ .local pmc codestring
+ codestring = new [ 'ResizableStringArray' ]
+ push codestring, "#include <windows.h>\n"
+ push codestring, rc_constant_defines
+ push codestring, "const unsigned int bytecode_size = "
$S0 = pbc_size
- codestring .= $S0
- codestring .= ";\n"
+ push codestring, $S0
+ push codestring, ";\n"
- codestring .= <<'END_OF_FUNCTION'
+ push codestring, <<'END_OF_FUNCTION'
const void * get_program_code(void)
{
HRSRC hResource;
@@ -489,9 +495,10 @@
unless status goto rc_ok
die "RC command failed"
- rc_ok:
- .return (codestring)
+ rc_ok:
+ $S0 = join '', codestring
+ .return ($S0)
err_h_open:
die "cannot open .h file"
@@ -687,19 +694,14 @@
.sub 'prepend_installable'
.param string file
- $P0 = '_config'()
-
- .local string slash
- slash = $P0['slash']
-
.local pmc path
- path = split slash, file
+ path = split '/', file
file = path[-1]
file = concat 'installable_', file
path[-1] = file
- file = join slash, path
+ file = join '/', path
.return( file )
.end
Added: branches/avl_string_cache/tools/dev/tapir.pir
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/avl_string_cache/tools/dev/tapir.pir Thu Apr 22 09:55:26 2010 (r45889)
@@ -0,0 +1,236 @@
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+Tapir
+
+=head1 DESCRIPTION
+
+Tapir is a PIR-based TAP (Test Anything Protocol) Harness
+
+It eats test output (i.e. is a TAP consumer) and tells humans if the
+test suite passed, and if not, which kind of pretty colors of smoke
+came out. It is mostly equivalent to 'prove' from Perl 5.
+
+=head1 SYNOPSIS
+
+ ./tapir t/*.t
+
+=head2 OPTIONS
+
+Usage:
+
+ tapir [OPTIONS] <files>
+
+=head3 Boolean options
+
+ -v, --verbose Print all test lines.
+ -s, --shuffle Run the tests in random order.
+ -f, --failures Show failed tests.
+ -o, --comments Show comments.
+ --ignore-exit Ignore exit status from test scripts.
+ -m, --merge Merge test scripts' STDERR with their STDOUT.
+ --reverse Run the tests in reverse order.
+ -q, --quiet Suppress some test output while running tests.
+ -Q, --QUIET Only print summary results.
+ --directives Only show results with TODO or SKIP directives.
+ --normalize Normalize TAP output in verbose output
+ -h, --help Display this help
+ -V, --version Display the version
+
+=head3 Options that take arguments
+
+ -e, --exec Interpreter to run the tests ('' for compiled
+ tests.)
+ -a, --archive Store the resulting TAP in an archive file.
+
+=cut
+
+
+.sub 'main' :main
+ .param pmc argv
+ $S0 = shift argv
+ .local int argc
+ argc = elements argv
+ if argc > 0 goto L1
+ help()
+ end
+ L1:
+ .local pmc opts
+ opts = _parse_opts(argv)
+ $S0 = opts['help']
+ unless $S0 goto L2
+ help()
+ end
+ L2:
+ $S0 = opts['version']
+ unless $S0 goto L3
+ version()
+ end
+ L3:
+ .tailcall do(opts, argv)
+.end
+
+.sub 'version' :anon
+ say "Tapir 0.1.0"
+.end
+
+.sub 'help' :anon
+ say <<"HELP"
+
+ tapir [options] [files]
+
+Boolean options:
+
+ -v, --verbose Print all test lines.
+ -s, --shuffle Run the tests in random order.
+ -f, --failures Show failed tests.
+ -o, --comments Show comments.
+ --ignore-exit Ignore exit status from test scripts.
+ -m, --merge Merge test scripts' STDERR with their STDOUT.
+ --reverse Run the tests in reverse order.
+ -q, --quiet Suppress some test output while running tests.
+ -Q, --QUIET Only print summary results.
+ --directives Only show results with TODO or SKIP directives.
+ --normalize Normalize TAP output in verbose output
+ -h, --help Display this help
+ -V, --version Display the version
+
+Options that take arguments:
+
+ -e, --exec Interpreter to run the tests ('' for compiled
+ tests.)
+ -a, --archive Store the resulting TAP in an archive file.
+HELP
+.end
+
+.sub '_parse_opts' :anon
+ .param pmc argv
+ load_bytecode 'Getopt/Obj.pbc'
+ $P0 = new ['Getopt';'Obj']
+ $P0.'notOptStop'(1)
+ push $P0, 'exec|e:s'
+ push $P0, 'archive|a:s'
+ push $P0, 'verbose|v'
+ push $P0, 'quiet|q'
+ push $P0, 'QUIET|Q'
+ push $P0, 'normalize'
+ push $P0, 'failures|f'
+ push $P0, 'comments|o'
+ push $P0, 'directives'
+ push $P0, 'ignore-exit'
+ push $P0, 'reverse'
+ push $P0, 'merge|m'
+ push $P0, 'shuffle|s'
+ push $P0, 'version|V'
+ push $P0, 'help|h'
+ $P1 = $P0.'get_options'(argv)
+ .return ($P1)
+.end
+
+.sub 'do' :anon
+ .param pmc opts
+ .param pmc files
+ load_bytecode 'TAP/Harness.pbc'
+ .local pmc harness, aggregate
+ $I0 = exists opts['archive']
+ if $I0 goto L1
+ harness = new ['TAP';'Harness']
+ goto L2
+ L1:
+ harness = new ['TAP';'Harness';'Archive']
+ $S0 = opts['archive']
+ harness.'archive'($S0)
+ L2:
+ harness.'process_args'(opts)
+ $P0 = _get_tests(opts, files)
+ aggregate = harness.'runtests'($P0)
+ $I0 = aggregate.'has_errors'()
+ exit $I0
+.end
+
+.sub '_get_tests' :anon
+ .param pmc opts
+ .param pmc files
+ .local int nb
+ nb = elements files
+ # currently, FixedStringArray hasn't the method sort.
+ # see TT #1356
+ $P0 = new 'FixedPMCArray'
+ set $P0, nb
+ $I0 = 0
+ $P1 = iter files
+ L1:
+ unless $P1 goto L2
+ $S0 = shift $P1
+ $P2 = split "\\", $S0
+ $S0 = join "/", $P2
+ $P2 = box $S0
+ $P0[$I0] = $P2
+ inc $I0
+ goto L1
+ L2:
+ $I0 = exists opts['shuffle']
+ unless $I0 goto L3
+ $P0 = _shuffle($P0)
+ goto L4
+ L3:
+ $P0.'sort'()
+ $I0 = exists opts['reverse']
+ unless $I0 goto L4
+ $P0 = _reverse($P0)
+ L4:
+ .return ($P0)
+.end
+
+.sub '_reverse' :anon
+ .param pmc array
+ .local int nb
+ nb = elements array
+ $P0 = new 'FixedPMCArray'
+ set $P0, nb
+ $I0 = 0
+ $I1 = nb - 1
+ L1:
+ unless $I0 < nb goto L2
+ $P1 = array[$I0]
+ $P0[$I1] = $P1
+ inc $I0
+ dec $I1
+ goto L1
+ L2:
+ .return ($P0)
+.end
+
+.sub '_shuffle' :anon
+ .param pmc array
+ load_bytecode 'Math/Rand.pbc'
+ .local pmc rand
+ rand = get_global [ 'Math'; 'Rand' ], 'rand'
+ .local pmc srand
+ srand = get_global [ 'Math'; 'Rand' ], 'srand'
+ $I0 = time
+ srand($I0)
+ .local int i, j
+ i = elements array
+ L1:
+ unless i > 0 goto L2
+ $I0 = rand()
+ j = $I0 % i
+ dec i
+ $P1 = array[i]
+ $P2 = array[j]
+ array[i] = $P2
+ array[j] = $P1
+ goto L1
+ L2:
+ .return (array)
+.end
+
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Added: branches/avl_string_cache/tools/docs/book-to-latex.pl
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/avl_string_cache/tools/docs/book-to-latex.pl Thu Apr 22 09:55:26 2010 (r45889)
@@ -0,0 +1,34 @@
+#! perl
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
+
+use Pod::PseudoPod::LaTeX;
+
+print <<'HEADER';
+\documentclass[11pt,a4paper,oneside]{report}
+\usepackage{graphics,graphicx}
+\usepackage{colortbl}
+
+\begin{document}
+\tableofcontents
+HEADER
+
+for (@ARGV) {
+ my $parser = Pod::PseudoPod::LaTeX->new();
+ $parser->output_fh( *STDOUT );
+ $parser->parse_file( $_ );
+}
+
+print <<'FOOTER';
+\end{document}
+FOOTER
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Added: branches/avl_string_cache/tools/docs/filename_and_chapter.pl
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/avl_string_cache/tools/docs/filename_and_chapter.pl Thu Apr 22 09:55:26 2010 (r45889)
@@ -0,0 +1,49 @@
+#! perl
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+#
+# perl script that deliver all filenames and the associated chapters
+#
+
+use strict;
+use warnings;
+
+use Getopt::Long ();
+
+my $item_list_ref = [ ['intro.pod', 'Introduction to Parrot'],
+ ['overview.pod', 'Overview'],
+ ['submissions.pod', 'Submitting bug reports and patches'],
+ ];
+
+my $lang = @$item_list_ref;
+
+my ( $result, $give_out, $b_out);
+
+$result = Getopt::Long::GetOptions (
+ "print" => \$give_out,
+ "b_out" => \$b_out,
+);
+
+if ($give_out) {
+ for ( my $i=0; $i<$lang; $i++ )
+ { print $$item_list_ref[$i][0], ' ' }
+ exit;
+};
+
+if ($b_out) {
+ for ( my $i=0; $i<$lang; $i++ )
+ { print 'build/modified_pod/', $$item_list_ref[$i][0], ' ' }
+ exit;
+};
+
+
+for (my $i=0; $i<$lang; $i++)
+ { `sed -e '4,6c\=head0 $$item_list_ref[$i][1]' $$item_list_ref[$i][0] > build/modified_pod/$$item_list_ref[$i][0]` }
+
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Modified: branches/avl_string_cache/tools/util/release.json
==============================================================================
--- branches/avl_string_cache/tools/util/release.json Thu Apr 22 09:44:56 2010 (r45888)
+++ branches/avl_string_cache/tools/util/release.json Thu Apr 22 09:55:26 2010 (r45889)
@@ -1,9 +1,9 @@
{
- "release.version" : "2.2.0",
- "release.name" : "Like Clockwork",
+ "release.version" : "2.3.0",
+ "release.name" : "Samoan Lory",
"release.day" : "Tuesday",
- "release.date" : "16 March 2010",
- "release.nextdate" : "20 April 2010",
+ "release.date" : "20 April 2010",
+ "release.nextdate" : "18 May 2010",
"web.root" : "http://parrot.org/",
"web.source" : "download",
@@ -11,13 +11,13 @@
"web.repository" : "https://svn.parrot.org/parrot/trunk/",
"bugday.day" : "Saturday",
- "bugday.date" : "13 March 2010",
+ "bugday.date" : "17 April 2010",
"wiki.root" : "https://trac.parrot.org/parrot/wiki/",
- "wiki.bugday" : "bug_day_2010_03_13",
+ "wiki.bugday" : "bug_day_2010_04_17",
"cpan.search" : "http://search.cpan.org/dist/parrot",
- "ftp.path" : "ftp://ftp.parrot.org/pub/parrot/releases/devel/2.2.0/",
- "subversion.root" : "http://subversion.tigris.org/",
+ "ftp.path" : "ftp://ftp.parrot.org/pub/parrot/releases/stable/2.3.0/",
+ "subversion.root" : "http://subversion.apache.org/",
"svk.root" : "http://svk.bestpractical.com/"
}
More information about the parrot-commits
mailing list