[svn:parrot] r44046 - in branches/rm_cflags: . compilers/data_json compilers/imcc compilers/json compilers/nqp compilers/pct compilers/pge compilers/pirc/src compilers/tge config/auto/sizes config/gen/makefiles docs docs/book/draft docs/book/pct docs/dev docs/pdds examples/c examples/embed examples/languages/abc examples/languages/squaak examples/pge ext/nqp-rx ext/nqp-rx/src/stage0 include/parrot lib/Parrot lib/Parrot/Configure lib/Parrot/Configure/Step ports/cpan ports/cygwin ports/debian ports/fedora ports/mandriva ports/suse runtime/parrot/languages runtime/parrot/library runtime/parrot/library/Math runtime/parrot/library/Math/Random src src/call src/gc src/interp src/ops src/pmc src/runcore src/string t/codingstd t/compilers/tge t/library t/oo t/op t/pmc t/run t/src t/steps/init/hints tools/build tools/dev tools/util
coke at svn.parrot.org
coke at svn.parrot.org
Tue Feb 16 21:05:58 UTC 2010
Author: coke
Date: Tue Feb 16 21:05:51 2010
New Revision: 44046
URL: https://trac.parrot.org/parrot/changeset/44046
Log:
Merge latest changes from trunk
Deleted:
branches/rm_cflags/t/op/bitwise.t
Modified:
branches/rm_cflags/ (props changed)
branches/rm_cflags/CREDITS
branches/rm_cflags/ChangeLog
branches/rm_cflags/DEPRECATED.pod
branches/rm_cflags/MANIFEST
branches/rm_cflags/MANIFEST.generated
branches/rm_cflags/META.yml
branches/rm_cflags/NEWS
branches/rm_cflags/PLATFORMS
branches/rm_cflags/README
branches/rm_cflags/VERSION
branches/rm_cflags/compilers/data_json/Defines.mak
branches/rm_cflags/compilers/data_json/Rules.mak (props changed)
branches/rm_cflags/compilers/imcc/Rules.mak (props changed)
branches/rm_cflags/compilers/imcc/main.c
branches/rm_cflags/compilers/imcc/parser_util.c
branches/rm_cflags/compilers/json/Rules.mak (props changed)
branches/rm_cflags/compilers/nqp/Rules.mak (props changed)
branches/rm_cflags/compilers/pct/Rules.mak (props changed)
branches/rm_cflags/compilers/pge/Rules.mak (props changed)
branches/rm_cflags/compilers/pirc/src/main.c
branches/rm_cflags/compilers/pirc/src/pir.y
branches/rm_cflags/compilers/pirc/src/pircompiler.c
branches/rm_cflags/compilers/pirc/src/pircompiler.h
branches/rm_cflags/compilers/pirc/src/pircompunit.c
branches/rm_cflags/compilers/pirc/src/pircompunit.h
branches/rm_cflags/compilers/pirc/src/piremit.c
branches/rm_cflags/compilers/pirc/src/piremit.h
branches/rm_cflags/compilers/pirc/src/pirmacro.c
branches/rm_cflags/compilers/pirc/src/pirmacro.h
branches/rm_cflags/compilers/pirc/src/pirparser.c
branches/rm_cflags/compilers/pirc/src/pirpcc.c
branches/rm_cflags/compilers/pirc/src/pirpcc.h
branches/rm_cflags/compilers/pirc/src/pirregalloc.c
branches/rm_cflags/compilers/pirc/src/pirregalloc.h
branches/rm_cflags/compilers/pirc/src/pirsymbol.c
branches/rm_cflags/compilers/pirc/src/pirsymbol.h
branches/rm_cflags/compilers/tge/Rules.mak (props changed)
branches/rm_cflags/config/auto/sizes/intval_maxmin_c.in (props changed)
branches/rm_cflags/config/gen/makefiles/root.in
branches/rm_cflags/docs/book/draft/README (props changed)
branches/rm_cflags/docs/book/draft/appa_glossary.pod (props changed)
branches/rm_cflags/docs/book/draft/appb_patch_submission.pod (props changed)
branches/rm_cflags/docs/book/draft/appc_command_line_options.pod (props changed)
branches/rm_cflags/docs/book/draft/appd_build_options.pod (props changed)
branches/rm_cflags/docs/book/draft/appe_source_code.pod (props changed)
branches/rm_cflags/docs/book/draft/ch01_introduction.pod (props changed)
branches/rm_cflags/docs/book/draft/ch02_getting_started.pod (props changed)
branches/rm_cflags/docs/book/draft/ch07_dynpmcs.pod (props changed)
branches/rm_cflags/docs/book/draft/ch08_dynops.pod (props changed)
branches/rm_cflags/docs/book/draft/ch10_opcode_reference.pod (props changed)
branches/rm_cflags/docs/book/draft/ch11_directive_reference.pod (props changed)
branches/rm_cflags/docs/book/draft/ch12_operator_reference.pod (props changed)
branches/rm_cflags/docs/book/draft/chXX_hlls.pod (props changed)
branches/rm_cflags/docs/book/draft/chXX_library.pod (props changed)
branches/rm_cflags/docs/book/draft/chXX_testing_and_debugging.pod (props changed)
branches/rm_cflags/docs/book/pct/ch01_introduction.pod (props changed)
branches/rm_cflags/docs/book/pct/ch02_getting_started.pod (props changed)
branches/rm_cflags/docs/book/pct/ch03_compiler_tools.pod (props changed)
branches/rm_cflags/docs/book/pct/ch04_pge.pod (props changed)
branches/rm_cflags/docs/book/pct/ch05_nqp.pod (props changed)
branches/rm_cflags/docs/dev/c_functions.pod (props changed)
branches/rm_cflags/docs/embed.pod
branches/rm_cflags/docs/parrothist.pod
branches/rm_cflags/docs/pdds/pdd17_pmc.pod
branches/rm_cflags/docs/pdds/pdd28_strings.pod
branches/rm_cflags/docs/pdds/pdd30_install.pod (props changed)
branches/rm_cflags/examples/c/nanoparrot.c
branches/rm_cflags/examples/embed/cotorra.c (props changed)
branches/rm_cflags/examples/languages/abc/ (props changed)
branches/rm_cflags/examples/languages/squaak/ (props changed)
branches/rm_cflags/examples/pge/demo.pir (props changed)
branches/rm_cflags/ext/nqp-rx/Rules.mak (props changed)
branches/rm_cflags/ext/nqp-rx/src/stage0/HLL-s0.pir
branches/rm_cflags/ext/nqp-rx/src/stage0/NQP-s0.pir
branches/rm_cflags/ext/nqp-rx/src/stage0/P6Regex-s0.pir
branches/rm_cflags/include/parrot/call.h (props changed)
branches/rm_cflags/include/parrot/context.h
branches/rm_cflags/include/parrot/gc_api.h (contents, props changed)
branches/rm_cflags/include/parrot/imcc.h
branches/rm_cflags/include/parrot/runcore_api.h (props changed)
branches/rm_cflags/include/parrot/runcore_profiling.h (props changed)
branches/rm_cflags/include/parrot/runcore_trace.h (props changed)
branches/rm_cflags/lib/Parrot/Configure/Messages.pm
branches/rm_cflags/lib/Parrot/Configure/Step/Test.pm (props changed)
branches/rm_cflags/lib/Parrot/H2inc.pm (props changed)
branches/rm_cflags/ports/cpan/pause_guide.pod (props changed)
branches/rm_cflags/ports/cygwin/parrot-1.0.0-1.cygport (props changed)
branches/rm_cflags/ports/debian/libparrot-dev.install.in (props changed)
branches/rm_cflags/ports/debian/libparrot.install.in (props changed)
branches/rm_cflags/ports/debian/parrot-doc.install.in (props changed)
branches/rm_cflags/ports/debian/parrot.install.in (props changed)
branches/rm_cflags/ports/fedora/parrot.spec.fedora (props changed)
branches/rm_cflags/ports/mandriva/parrot.spec.mandriva (props changed)
branches/rm_cflags/ports/suse/parrot.spec.suse (props changed)
branches/rm_cflags/runtime/parrot/languages/ (props changed)
branches/rm_cflags/runtime/parrot/library/Math/Rand.pir (props changed)
branches/rm_cflags/runtime/parrot/library/Math/Random/mt19937ar.pir (props changed)
branches/rm_cflags/runtime/parrot/library/P6object.pir
branches/rm_cflags/runtime/parrot/library/Rules.mak (props changed)
branches/rm_cflags/src/call/args.c
branches/rm_cflags/src/call/context.c
branches/rm_cflags/src/call/context_accessors.c
branches/rm_cflags/src/call/ops.c (props changed)
branches/rm_cflags/src/call/pcc.c (props changed)
branches/rm_cflags/src/debug.c
branches/rm_cflags/src/embed.c
branches/rm_cflags/src/gc/alloc_memory.c (props changed)
branches/rm_cflags/src/gc/alloc_resources.c (contents, props changed)
branches/rm_cflags/src/gc/api.c (contents, props changed)
branches/rm_cflags/src/gc/gc_inf.c
branches/rm_cflags/src/gc/gc_ms.c
branches/rm_cflags/src/gc/gc_private.h
branches/rm_cflags/src/gc/malloc.c (props changed)
branches/rm_cflags/src/gc/malloc_trace.c (props changed)
branches/rm_cflags/src/gc/mark_sweep.c (contents, props changed)
branches/rm_cflags/src/gc/system.c (props changed)
branches/rm_cflags/src/hash.c
branches/rm_cflags/src/interp/inter_cb.c (props changed)
branches/rm_cflags/src/interp/inter_create.c (contents, props changed)
branches/rm_cflags/src/interp/inter_misc.c (props changed)
branches/rm_cflags/src/main.c
branches/rm_cflags/src/ops/bit.ops
branches/rm_cflags/src/ops/math.ops
branches/rm_cflags/src/pmc/bigint.pmc
branches/rm_cflags/src/pmc/bignum.pmc
branches/rm_cflags/src/pmc/callcontext.pmc
branches/rm_cflags/src/pmc/complex.pmc
branches/rm_cflags/src/pmc/default.pmc
branches/rm_cflags/src/pmc/imageio.pmc
branches/rm_cflags/src/pmc/integer.pmc
branches/rm_cflags/src/pmc/scalar.pmc
branches/rm_cflags/src/pmc/string.pmc
branches/rm_cflags/src/pmc_freeze.c
branches/rm_cflags/src/runcore/cores.c (props changed)
branches/rm_cflags/src/runcore/main.c (props changed)
branches/rm_cflags/src/runcore/profiling.c (props changed)
branches/rm_cflags/src/runcore/trace.c (props changed)
branches/rm_cflags/src/string/api.c
branches/rm_cflags/src/vtable.tbl
branches/rm_cflags/t/codingstd/c_function_docs.t
branches/rm_cflags/t/compilers/tge/NoneGrammar.tg (props changed)
branches/rm_cflags/t/library/mt19937ar.t (props changed)
branches/rm_cflags/t/library/mt19937ar.txt (props changed)
branches/rm_cflags/t/oo/root_new.t (props changed)
branches/rm_cflags/t/op/arithmetics.t
branches/rm_cflags/t/op/arithmetics_pmc.t
branches/rm_cflags/t/op/trans.t
branches/rm_cflags/t/pmc/bigint.t
branches/rm_cflags/t/pmc/complex.t
branches/rm_cflags/t/pmc/multidispatch.t
branches/rm_cflags/t/pmc/namespace-old.t (props changed)
branches/rm_cflags/t/pmc/string.t
branches/rm_cflags/t/run/options.t
branches/rm_cflags/t/src/embed.t (props changed)
branches/rm_cflags/t/steps/init/hints/linux-01.t (props changed)
branches/rm_cflags/tools/build/h2inc.pl (props changed)
branches/rm_cflags/tools/dev/fetch_languages.pl (props changed)
branches/rm_cflags/tools/dev/mk_gitignore.pl (props changed)
branches/rm_cflags/tools/dev/vtablize.pl
branches/rm_cflags/tools/util/perlcritic-cage.conf (props changed)
branches/rm_cflags/tools/util/release.json
Modified: branches/rm_cflags/CREDITS
==============================================================================
--- branches/rm_cflags/CREDITS Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/CREDITS Tue Feb 16 21:05:51 2010 (r44046)
@@ -692,7 +692,10 @@
N: Michael H. Hind
U: mikehh
-D: codingstd patches
+D: testing parrot and some HLL's
+D: fixing codetest failures
+D: adding function documentation
+D: tracwiki additions
E: mike.hind at gmail.com
N: Michael G. Schwern
Modified: branches/rm_cflags/ChangeLog
==============================================================================
--- branches/rm_cflags/ChangeLog Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/ChangeLog Tue Feb 16 21:05:51 2010 (r44046)
@@ -1,5 +1,9 @@
#1 $Id$
+2010.02.16 darbelo
+ * Released 2.1.0
+ See NEWS for more.
+
2010.01.19 chromatic
* Released 2.0.0
See NEWS for more.
Modified: branches/rm_cflags/DEPRECATED.pod
==============================================================================
--- branches/rm_cflags/DEPRECATED.pod Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/DEPRECATED.pod Tue Feb 16 21:05:51 2010 (r44046)
@@ -52,13 +52,6 @@
L<https://trac.parrot.org/parrot/ticket/264>
-=item various VTABLE functions [eligible in 1.5]
-
-The get_bigint, set_bigint_*, pow, i_pow and nextkey_keyed VTABLE functions are
-deprecated and will be removed.
-
-L<https://trac.parrot.org/parrot/ticket/866>
-
=item Use of undocumented variables in class_init [eligible in 2.1]
The current implementation allows the class_init vtable function body to
@@ -77,14 +70,6 @@
L<https://trac.parrot.org/parrot/ticket/103>
-=item All bitwise VTABLE functions [eligible in 2.1]
-
-All bitwise VTABLE functions (all VTABLE functions containing C<bitwise> in
-their names) will be removed. Equivalent functionality will by supplied by
-bitwise dynops.
-
-L<https://trac.parrot.org/parrot/ticket/1260>
-
=item CPointer PMC [eligible in 2.1]
And all uses in the Parrot calling conventions.
@@ -132,6 +117,11 @@
L<https://trac.parrot.org/parrot/ticket/1406>
+=item GC_SYS_NAME option to interpinfo_s_i [experimental]
+
+Ability to get the string name of the current GC core from the interpinfo_s_i.
+See r43900 and r43904 for details.
+
=back
=head1 Bytecode
Modified: branches/rm_cflags/MANIFEST
==============================================================================
--- branches/rm_cflags/MANIFEST Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/MANIFEST Tue Feb 16 21:05:51 2010 (r44046)
@@ -1801,7 +1801,6 @@
t/op/arithmetics.t [test]
t/op/arithmetics_pmc.t [test]
t/op/basic.t [test]
-t/op/bitwise.t [test]
t/op/box.t [test]
t/op/calling.t [test]
t/op/cc_params.t [test]
Modified: branches/rm_cflags/MANIFEST.generated
==============================================================================
--- branches/rm_cflags/MANIFEST.generated Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/MANIFEST.generated Tue Feb 16 21:05:51 2010 (r44046)
@@ -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.0.0.dylib [main]lib
+blib/lib/libparrot.2.1.0.dylib [main]lib
blib/lib/libparrot.a [main]lib
blib/lib/libparrot.dylib [main]lib
-blib/lib/libparrot.so.2.0.0 [main]lib
+blib/lib/libparrot.so.2.1.0 [main]lib
blib/lib/libparrot.so [main]lib
compilers/data_json/data_json.pbc [data_json]
compilers/json/JSON.pbc [json]
Modified: branches/rm_cflags/META.yml
==============================================================================
--- branches/rm_cflags/META.yml Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/META.yml Tue Feb 16 21:05:51 2010 (r44046)
@@ -4,7 +4,7 @@
# See http://module-build.sourceforge.net/META-spec-current.html for details.
---
name: parrot
-version: 2.0.0
+version: 2.1.0
author: parrot-dev at lists.parrot.org
abstract: a virtual machine designed for dynamic languages
license: artistic2
Modified: branches/rm_cflags/NEWS
==============================================================================
--- branches/rm_cflags/NEWS Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/NEWS Tue Feb 16 21:05:51 2010 (r44046)
@@ -1,5 +1,21 @@
# $Id$
+New in 2.1.0
+- Core changes
+ + GC performance and encapsulation were greatly improved.
+ + PMC freeze refactored.
+ + More Makefile and build improvements.
+- API Changes
+ + The Array PMC was removed.
+ + Several deprecated vtables were removed.
+ + The OrderedHash PMC was substantialy improved.
+- Platforms
+ + Packaging improvements on some operating systems.
+- Tools
+ + Some cases in pbc_merge are now handled.
+ + Improvements were made to the dependency checker.
+ + New tool nativecall.pir added.
+
New in 2.0.0
- Features
+ Context PMCs now support attribute-based introspection
Modified: branches/rm_cflags/PLATFORMS
==============================================================================
--- branches/rm_cflags/PLATFORMS Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/PLATFORMS Tue Feb 16 21:05:51 2010 (r44046)
@@ -33,6 +33,7 @@
CGoto EXEC Thr Sig
--------------------------------------------------------------------------------
cygwin1.7.0-x86-gcc4.3.2 4 Y - - - Y Y Y 20090315
+darwin9.8.0-x86-gcc4.0.1 Y ? Y ? Y Y Y 20100215
dragonfly2.2.0-i386-gcc-4.1.2 4 Y - Y Y Y Y ? 20090427
freebsd-x86-gcc-4.2.1 4 Y Y ? ? Y Y Y 20090415
freebsd-amd64-gcc-4.2.1 8 Y - ? ? Y Y Y 20090720
@@ -40,7 +41,7 @@
linux-amd64-clang-r75433 8 Y ? ? ? Y Y*2 ? 20090913
linux-amd64-gcc4.3.2 8 Y - Y Y Y Y/1 Y 20091020
linux-amd64-gcc4.3.3 8 Y ? Y Y Y Y ? 20090712
-linux-amd64-gcc4.4.1 8 Y ? Y Y Y Y Y 20091020
+linux-amd64-gcc4.4.1 8 Y ? Y ? Y Y Y 20100215
linux-amd64-g++4.4.1 8 Y ? Y Y Y Y Y 20091116
linux-ppc-gcc_4.4.2 Y Y Y Y Y Y Y 20100118
linux-ppc64-gcc_4.4.2 Y Y Y Y Y Y Y 20100118
Modified: branches/rm_cflags/README
==============================================================================
--- branches/rm_cflags/README Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/README Tue Feb 16 21:05:51 2010 (r44046)
@@ -1,4 +1,4 @@
-This is Parrot, version 2.0.0
+This is Parrot, version 2.1.0
------------------------------
Parrot is Copyright (C) 2001-2010, Parrot Foundation.
Modified: branches/rm_cflags/VERSION
==============================================================================
--- branches/rm_cflags/VERSION Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/VERSION Tue Feb 16 21:05:51 2010 (r44046)
@@ -1 +1 @@
-2.0.0
+2.1.0
Modified: branches/rm_cflags/compilers/data_json/Defines.mak
==============================================================================
--- branches/rm_cflags/compilers/data_json/Defines.mak Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/data_json/Defines.mak Tue Feb 16 21:05:51 2010 (r44046)
@@ -1 +1,4 @@
DATA_JSON_LIB_PBCS = compilers/data_json/data_json.pbc
+DATA_JSON_CLEANUPS = compilers/data_json/data_json.pbc \
+ compilers/data_json/data_json/grammar.pir \
+ compilers/data_json/data_json/pge2pir.pir
Modified: branches/rm_cflags/compilers/imcc/main.c
==============================================================================
--- branches/rm_cflags/compilers/imcc/main.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/imcc/main.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -178,7 +178,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
int
-imcc_handle_flag(PARROT_INTERP, struct longopt_opt_info *opt, INTVAL *core)
+imcc_handle_flag(PARROT_INTERP, struct longopt_opt_info *opt,
+ Parrot_Run_core_t *core)
{
PARROT_ASSERT(opt);
PARROT_ASSERT(core);
Modified: branches/rm_cflags/compilers/imcc/parser_util.c
==============================================================================
--- branches/rm_cflags/compilers/imcc/parser_util.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/imcc/parser_util.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -868,16 +868,7 @@
STRING *error_message;
PMC *sub;
- /* We need to clear the current_results from the current context. This is
- * in order to prevent any RetContinuations that get promoted to full
- * Continuations (this happens when something is the target of a :outer)
- * trying to return values using them when invoked. (See TT #500 for the
- * report of the bug this fixes). */
- opcode_t *save_results = Parrot_pcc_get_results(interp, CURRENT_CONTEXT(interp));
- Parrot_pcc_set_results(interp, CURRENT_CONTEXT(interp), NULL);
sub = imcc_compile(interp, s, 0, &error_message);
- Parrot_pcc_set_results(interp, CURRENT_CONTEXT(interp), save_results);
-
if (sub)
return sub;
Modified: branches/rm_cflags/compilers/pirc/src/main.c
==============================================================================
--- branches/rm_cflags/compilers/pirc/src/main.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/pirc/src/main.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -27,7 +27,7 @@
#endif
-
+/* HEADERIZER HFILE: none */
/* XXX use pthreads library to test thread safety.
does not work currently on windows.
@@ -49,6 +49,24 @@
/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static void print_help(ARGIN(char const * const program_name))
+ __attribute__nonnull__(1);
+
+static void runcode(PARROT_INTERP, int argc, ARGIN(char *argv[]))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+
+#define ASSERT_ARGS_print_help __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(program_name))
+#define ASSERT_ARGS_runcode __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(argv))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
/*
=head1 FUNCTIONS
@@ -64,7 +82,7 @@
*/
static void
-print_help(char const * const program_name)
+print_help(ARGIN(char const * const program_name))
{
fprintf(stderr, "Usage: %s [options] <file>\n", program_name);
fprintf(stderr, "Options:\n\n"
@@ -117,8 +135,10 @@
Unpack the arguments and invoke parse_file().
*/
+PARROT_CAN_RETURN_NULL
void *
-process_file(void *a) {
+process_file(ARGIN(void *a))
+{
/* unpack the arguments from the structure parser_args */
@@ -147,7 +167,8 @@
*/
static void
-runcode(PARROT_INTERP, int argc, char *argv[]) {
+runcode(PARROT_INTERP, int argc, ARGIN(char *argv[]))
+{
/* runs :init functions */
PackFile_fixup_subs(interp, PBC_MAIN, NULL);
@@ -159,8 +180,7 @@
/*
-=item C<int
-main(int argc, char *argv[])>
+=item C<int main(int argc, char *argv[])>
Main compiler driver.
Modified: branches/rm_cflags/compilers/pirc/src/pir.y
==============================================================================
--- branches/rm_cflags/compilers/pirc/src/pir.y Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/pirc/src/pir.y Tue Feb 16 21:05:51 2010 (r44046)
@@ -88,6 +88,14 @@
#endif
+/* HEADERIZER HFILE: none */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
char *expand_macro(yyscan_t yyscanner, macro_def * const macro, macro_param * args);
/* Enumeration of mathematical operator types; these are used to index the opnames array. */
Modified: branches/rm_cflags/compilers/pirc/src/pircompiler.c
==============================================================================
--- branches/rm_cflags/compilers/pirc/src/pircompiler.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/pirc/src/pircompiler.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -15,6 +15,47 @@
#include "pirregalloc.h"
#include "pirerr.h"
+/* HEADERIZER HFILE: compilers/pirc/src/pircompiler.h */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+static char const * find_string(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const str))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_MALLOC
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+static allocated_mem_ptrs * new_mem_ptrs_block(void);
+
+static void register_ptr(ARGIN(lexer_state *lexer), ARGIN(void *ptr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void store_string(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const str))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_find_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(str))
+#define ASSERT_ARGS_new_mem_ptrs_block __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_register_ptr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(ptr))
+#define ASSERT_ARGS_store_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(str))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
/* XXX count memory, so we can check out mem. savings of string reuse
* Only temporarily used, so no need to "fix" this.
*/
@@ -26,8 +67,7 @@
=over 4
-=item C<static allocated_mem_ptrs *
-new_mem_ptrs_block(void)>
+=item C<static allocated_mem_ptrs * new_mem_ptrs_block(void)>
Create a new C<allocated_mem_ptrs> block; all pointers to allocated memory
within pirc are stored in such blocks. One block has space for a number of
@@ -41,14 +81,15 @@
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
static allocated_mem_ptrs *
-new_mem_ptrs_block(void) {
+new_mem_ptrs_block(void)
+{
+ ASSERT_ARGS(new_mem_ptrs_block)
return mem_allocate_zeroed_typed(allocated_mem_ptrs);
}
/*
-=item C<static void
-register_ptr(lexer_state *lexer, void *ptr)>
+=item C<static void register_ptr(lexer_state *lexer, void *ptr)>
Store the pointer C<ptr> in a datastructure; whenever C<release_resources()>
is invoked, C<ptr> will be freed through C<mem_sys_free()>.
@@ -57,7 +98,9 @@
*/
static void
-register_ptr(NOTNULL(lexer_state *lexer), ARGIN(void *ptr)) {
+register_ptr(ARGIN(lexer_state *lexer), ARGIN(void *ptr))
+{
+ ASSERT_ARGS(register_ptr)
allocated_mem_ptrs *ptrs = lexer->mem_allocations;
PARROT_ASSERT(ptrs);
@@ -75,8 +118,8 @@
/*
-=item C<void *
-pir_mem_allocate_zeroed(lexer_state * const lexer, size_t numbytes)>
+=item C<void * pir_mem_allocate_zeroed(lexer_state * const lexer, size_t
+numbytes)>
Memory allocation function for all PIR internal functions. Memory is allocated
through Parrot's allocation functions, but the pointer to the allocated memory
@@ -92,7 +135,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
void *
-pir_mem_allocate_zeroed(NOTNULL(lexer_state * const lexer), size_t numbytes) {
+pir_mem_allocate_zeroed(ARGIN(lexer_state * const lexer), size_t numbytes)
+{
void *ptr = mem_sys_allocate_zeroed(numbytes);
totalmem += numbytes;
@@ -103,8 +147,7 @@
/*
-=item C<void *
-pir_mem_allocate(NOTNULL(lexer_state * const lexer), size_t numbytes)>
+=item C<void * pir_mem_allocate(lexer_state * const lexer, size_t numbytes)>
See C<pir_mem_allocate_zeroed()>. Memory is C<not> guaranteed to be zeroed.
(It might, it might not, depending on what your system finds appropriate.
@@ -117,7 +160,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
void *
-pir_mem_allocate(NOTNULL(lexer_state * const lexer), size_t numbytes) {
+pir_mem_allocate(ARGIN(lexer_state * const lexer), size_t numbytes)
+{
void *ptr = mem_sys_allocate(numbytes);
totalmem += numbytes;
@@ -129,8 +173,8 @@
/*
-=item C<void
-init_hashtable(lexer_state * const lexer, hashtable * const table, unsigned size)>
+=item C<void init_hashtable(lexer_state * const lexer, hashtable * const table,
+unsigned size)>
Initialize the hashtable C<table> with space for C<size> buckets.
@@ -138,7 +182,7 @@
*/
void
-init_hashtable(NOTNULL(lexer_state * const lexer), NOTNULL(hashtable * const table),
+init_hashtable(ARGIN(lexer_state * const lexer), ARGIN(hashtable * const table),
unsigned size)
{
table->contents = (bucket **)pir_mem_allocate_zeroed(lexer, size * sizeof (bucket *));
@@ -148,8 +192,8 @@
/*
-=item C<lexer_state *
-new_lexer(char * const filename, int flags)>
+=item C<lexer_state * new_lexer(PARROT_INTERP, char * const filename, int
+flags)>
Constructor for a lexer structure. Initializes all fields, creates
a Parrot interpreter structure.
@@ -161,7 +205,8 @@
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
lexer_state *
-new_lexer(PARROT_INTERP, NULLOK(char * const filename), int flags) {
+new_lexer(PARROT_INTERP, ARGIN_NULLOK(char * const filename), int flags)
+{
lexer_state *lexer = mem_allocate_zeroed_typed(lexer_state);
lexer->filename = filename;
lexer->interp = interp;
@@ -207,8 +252,7 @@
/*
-=item C<bucket *
-new_bucket(lexer_state * const lexer)>
+=item C<bucket * new_bucket(lexer_state * const lexer)>
Constructor for a bucket object.
@@ -218,14 +262,15 @@
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
bucket *
-new_bucket(NOTNULL(lexer_state * const lexer)) {
+new_bucket(ARGIN(lexer_state * const lexer))
+{
return pir_mem_allocate_zeroed_typed(lexer, bucket);
}
/*
-=item C<static void
-store_string(lexer_state * const lexer, char const * const str)>
+=item C<static void store_string(lexer_state * const lexer, char const * const
+str)>
Store the string C<str> in a hashtable; whenever this string is needed, a pointer
to the same physical string is returned, preventing allocating different buffers
@@ -236,7 +281,9 @@
*/
static void
-store_string(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const str)) {
+store_string(ARGIN(lexer_state * const lexer), ARGIN(char const * const str))
+{
+ ASSERT_ARGS(store_string)
hashtable *table = &lexer->strings;
unsigned long hash = get_hashcode(str, table->size);
bucket *b = new_bucket(lexer);
@@ -246,8 +293,8 @@
/*
-=item C<static char const *
-find_string(lexer_state * const lexer, char const * const str)>
+=item C<static char const * find_string(lexer_state * const lexer, char const *
+const str)>
Find the string C<str> in the lexer's string hashtable. If the string was found,
then a pointer to that buffer is returned. So, whenever for instance the string
@@ -260,7 +307,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
static char const *
-find_string(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const str)) {
+find_string(ARGIN(lexer_state * const lexer), ARGIN(char const * const str))
+{
+ ASSERT_ARGS(find_string)
hashtable *table = &lexer->strings;
unsigned long hash = get_hashcode(str, table->size);
bucket *b = get_bucket(table, hash);
@@ -278,8 +327,8 @@
/*
-=item C<char *
-dupstrn(lexer_state * const lexer, char const * const source, size_t slen)>
+=item C<char const * dupstrn(lexer_state * const lexer, char * const source,
+size_t slen)>
See dupstr, except that this version takes the number of characters to be
copied. Easy for copying a string except the quotes, for instance.
@@ -293,7 +342,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
char const *
-dupstrn(NOTNULL(lexer_state * const lexer), NOTNULL(char * const source), size_t slen) {
+dupstrn(ARGIN(lexer_state * const lexer), ARGIN(char * const source), size_t slen)
+{
char const * result = find_string(lexer, source);
/* make sure the string is terminated in time */
source[slen] = '\0';
@@ -313,8 +363,7 @@
/*
-=item C<char *
-dupstr(lexer_state * const lexer, char const * const source)>
+=item C<char const * dupstr(lexer_state * const lexer, char * const source)>
The C89 standard does not define a strdup() in the C library,
so define our own strdup. Function names beginning with "str"
@@ -327,14 +376,14 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
char const *
-dupstr(NOTNULL(lexer_state * const lexer), NOTNULL(char * const source)) {
+dupstr(ARGIN(lexer_state * const lexer), ARGIN(char * const source))
+{
return dupstrn(lexer, source, strlen(source));
}
/*
-=item C<void
-release_resources(lexer_state *lexer)>
+=item C<void release_resources(lexer_state *lexer)>
Release all resources pointed to by C<lexer>.
Free all memory that was allocated through C<pir_mem_allocate_zeroed()>.
@@ -344,7 +393,8 @@
*/
void
-release_resources(NOTNULL(lexer_state *lexer)) {
+release_resources(ARGIN(lexer_state *lexer))
+{
allocated_mem_ptrs *iter;
if (TEST_FLAG(lexer->flags, LEXER_FLAG_VERBOSE))
@@ -375,8 +425,8 @@
/*
-=item C<void
-pirwarning(lexer_state * const lexer, int lineno, char const * const message, ...)>
+=item C<void pirwarning(lexer_state * const lexer, int lineno, char const *
+const message, ...)>
Emit a warning message to C<stderr>. The line number (passed in C<lineno>) is reported,
together with the message. The message can be formatted, meaning it can contain
@@ -387,7 +437,11 @@
*/
void
-pirwarning(lexer_state * const lexer, int lineno, char const * const message, ...) {
+pirwarning(ARGIN(lexer_state * const lexer),
+ int lineno,
+ ARGIN(char const * const message),
+ ...)
+{
va_list arg_ptr;
fprintf(stderr, "warning (line %d): ", lineno);
va_start(arg_ptr, message);
Modified: branches/rm_cflags/compilers/pirc/src/pircompiler.h
==============================================================================
--- branches/rm_cflags/compilers/pirc/src/pircompiler.h Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/pirc/src/pircompiler.h Tue Feb 16 21:05:51 2010 (r44046)
@@ -158,20 +158,6 @@
/* accessor for current macro; always first on the list. */
#define CURRENT_MACRO(X) (X)->macros->definitions
-
-/* constructor for a lexer_state object */
-lexer_state *new_lexer(PARROT_INTERP, char * const filename, int flags);
-
-void release_resources(lexer_state *lexer);
-
-char const *dupstr(lexer_state * const lexer, char * const str);
-
-char const *dupstrn(lexer_state * const lexer, char * const str, size_t numchars);
-
-bucket *new_bucket(lexer_state * const lexer);
-
-void init_hashtable(lexer_state * const lexer, hashtable * const table, unsigned size);
-
/* same trick as in parrot's memory system, for "automagic" casting */
#define pir_mem_allocate_zeroed_typed(lxr, type) (type *)pir_mem_allocate_zeroed(lxr, sizeof (type))
@@ -179,11 +165,97 @@
* allocated will be freed after the compilation. If you only need some memory temporarily
* and freeing can be done soon after (manually), then use parrot's mem_sys_allocate().
*/
-void *pir_mem_allocate_zeroed(lexer_state * const lexer, size_t numbytes);
-void *pir_mem_allocate(lexer_state * const lexer, size_t numbytes);
+/* HEADERIZER BEGIN: compilers/pirc/src/pircompiler.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+char const * dupstr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char * const source))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+char const * dupstrn(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char * const source),
+ size_t slen)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void init_hashtable(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(hashtable * const table),
+ unsigned size)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+bucket * new_bucket(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+PARROT_MALLOC
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+lexer_state * new_lexer(PARROT_INTERP,
+ ARGIN_NULLOK(char * const filename),
+ int flags)
+ __attribute__nonnull__(1);
+
+PARROT_MALLOC
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+void * pir_mem_allocate(ARGIN(lexer_state * const lexer), size_t numbytes)
+ __attribute__nonnull__(1);
+
+PARROT_MALLOC
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+void * pir_mem_allocate_zeroed(
+ ARGIN(lexer_state * const lexer),
+ size_t numbytes)
+ __attribute__nonnull__(1);
+
+void pirwarning(
+ ARGIN(lexer_state * const lexer),
+ int lineno,
+ ARGIN(char const * const message),
+ ...)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+
+void release_resources(ARGIN(lexer_state *lexer))
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_dupstr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(source))
+#define ASSERT_ARGS_dupstrn __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(source))
+#define ASSERT_ARGS_init_hashtable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(table))
+#define ASSERT_ARGS_new_bucket __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_new_lexer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_pir_mem_allocate __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_pir_mem_allocate_zeroed __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_pirwarning __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(message))
+#define ASSERT_ARGS_release_resources __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: compilers/pirc/src/pircompiler.c */
-void pirwarning(lexer_state * const lexer, int lineno, char const * const message, ...);
#endif /* PARROT_PIR_PIRCOMPILER_H_GUARD */
Modified: branches/rm_cflags/compilers/pirc/src/pircompunit.c
==============================================================================
--- branches/rm_cflags/compilers/pirc/src/pircompunit.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/pirc/src/pircompunit.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -44,6 +44,93 @@
#include "parrot/dynext.h"
#include "pmc/pmc_callcontext.h"
+/* HEADERIZER HFILE: compilers/pirc/src/pircompunit.h */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static void add_self_parameter(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static constant * create_const(
+ ARGIN(lexer_state * const lexer),
+ value_type type,
+ va_list arg_ptr)
+ __attribute__nonnull__(1);
+
+static void fixup_local_labels(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static expression * new_expr(
+ ARGIN(lexer_state * const lexer),
+ expr_type type)
+ __attribute__nonnull__(1);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+static instruction * new_instruction(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const opname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static invocation * new_invocation(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+static key_entry * new_key_entry(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const expr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_MALLOC
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+static label * new_label(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const labelid),
+ int offset)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void new_statement(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const opname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_add_self_parameter __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_create_const __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_fixup_local_labels __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_new_expr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_new_instruction __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(opname))
+#define ASSERT_ARGS_new_invocation __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_new_key_entry __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(expr))
+#define ASSERT_ARGS_new_label __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(labelid))
+#define ASSERT_ARGS_new_statement __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(opname))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
static unsigned const prime_numbers[] = {113 /* XXX think of more primes */ };
@@ -53,8 +140,7 @@
=over 4
-=item C<void
-reset_register_allocator(lexer_state * const lexer)>
+=item C<void reset_register_allocator(lexer_state * const lexer)>
Reset the register numbers for all types. After this
function has been invoked, the next request for a new
@@ -65,7 +151,8 @@
*/
void
-reset_register_allocator(lexer_state * const lexer) {
+reset_register_allocator(ARGIN(lexer_state * const lexer))
+{
/* set register allocator to 0 for all register types. */
int i;
for (i = 0; i < NUM_PARROT_TYPES; ++i)
@@ -75,8 +162,7 @@
/*
-=item C<void
-set_namespace(lexer_state * const lexer, key * const ns)>
+=item C<void set_namespace(lexer_state * const lexer, key * const ns)>
Set the current namespace in the lexer state, so that it is
available when needed, i.e. when a new subroutine node is
@@ -86,14 +172,15 @@
*/
void
-set_namespace(lexer_state * const lexer, key * const ns) {
+set_namespace(ARGIN(lexer_state * const lexer), ARGIN(key * const ns))
+{
lexer->current_ns = ns;
}
/*
-=item C<void
-set_sub_outer(lexer_state * const lexer, char const * const outersub)>
+=item C<void set_sub_outer(lexer_state * const lexer, char const * const
+outersub)>
Set the lexically enclosing sub for the current sub.
Thus, set the :outer() argument to the current subroutine.
@@ -102,7 +189,9 @@
*/
void
-set_sub_outer(lexer_state * const lexer, char const * const outersub) {
+set_sub_outer(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const outersub))
+{
CURRENT_SUB(lexer)->info.outersub = outersub;
SET_FLAG(lexer->subs->flags, PIRC_SUB_FLAG_HAS_OUTER);
}
@@ -112,7 +201,7 @@
/*
=item C<void
-set_sub_multi_type(lexer_state * const lexer, expression * const multitype)>
+set_sub_multi_type(ARGIN(lexer_state * const lexer), expression * const multitype)>
Add the multi-method signature type in C<multitype> to the current subroutine.
@@ -120,7 +209,9 @@
*/
void
-set_sub_multi_types(lexer_state * const lexer, expression * const multitype) {
+set_sub_multi_types(ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const multitype))
+{
/* info.num_types is 1 higher than the actual number of types;
* n=1 means :multi() without any types; therefore, subtract 1 for actual number.
*/
@@ -159,8 +250,7 @@
/*
-=item C<static void
-add_self_parameter(lexer_state * const lexer)>
+=item C<static void add_self_parameter(lexer_state * const lexer)>
Add a parameter named C<"self"> to the current subroutine, but only
if both :vtable and :method flags have I<not> been set yet. If either
@@ -170,7 +260,8 @@
*/
static void
-add_self_parameter(lexer_state * const lexer) {
+add_self_parameter(ARGIN(lexer_state * const lexer))
+{
/* only add "self" parameter if :vtable and :method flags have not been set yet */
if (!TEST_FLAG(CURRENT_SUB(lexer)->flags, (PIRC_SUB_FLAG_VTABLE | PIRC_SUB_FLAG_METHOD))) {
@@ -180,8 +271,7 @@
/*
-=item C<void
-set_sub_vtable(lexer_state * const lexer, char const * vtablename)>
+=item C<void set_sub_vtable(lexer_state * const lexer, char const * vtablename)>
Set the :vtable() flag argument to the current subroutine. If C<vtablename>
is NULL, the name of the current sub is taken to be the vtable method name.
@@ -192,7 +282,9 @@
*/
void
-set_sub_vtable(lexer_state * const lexer, char const * vtablename) {
+set_sub_vtable(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * vtablename))
+{
int vtable_index;
if (vtablename == NULL) /* the sub's name I<is> the vtablename */
@@ -226,8 +318,7 @@
/*
-=item C<void
-set_sub_subid(lexer_state * const lexer, char const * const subid)>
+=item C<void set_sub_subid(lexer_state * const lexer, char const * const subid)>
Set the name specified in the :subid flag on the sub.
@@ -235,15 +326,17 @@
*/
void
-set_sub_subid(lexer_state * const lexer, char const * const subid) {
+set_sub_subid(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const subid))
+{
CURRENT_SUB(lexer)->info.subid = subid;
SET_FLAG(lexer->subs->flags, PIRC_SUB_FLAG_SUBID);
}
/*
-=item C<void
-set_sub_methodname(lexer_state * const lexer, char const * const methodname)>
+=item C<void set_sub_methodname(lexer_state * const lexer, char const * const
+methodname)>
Set the :method flag on a sub; if C<methodname> is not NULL, then it contains
the name by which the sub is stored as a method.
@@ -252,7 +345,9 @@
*/
void
-set_sub_methodname(lexer_state * const lexer, char const * const methodname) {
+set_sub_methodname(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const methodname))
+{
if (methodname) /* :method("foo") */
CURRENT_SUB(lexer)->methodname = methodname;
else /* :method without a value defaults to the subname. */
@@ -268,8 +363,8 @@
/*
-=item C<void
-set_sub_instanceof(lexer_state * const lexer, char const * const classname)>
+=item C<void set_sub_instanceof(lexer_state * const lexer, char const * const
+classname)>
Set the value of the C<:instanceof> flag on a sub. Note that this flag
is experimental, and not actually used at this point.
@@ -278,14 +373,16 @@
*/
void
-set_sub_instanceof(lexer_state * const lexer, char const * const classname) {
+set_sub_instanceof(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const classname))
+{
CURRENT_SUB(lexer)->info.instanceof = classname;
}
/*
-=item C<void
-set_sub_nsentry(lexer_state * const lexer, char const * const nsentry)>
+=item C<void set_sub_nsentry(lexer_state * const lexer, char const * const
+nsentry)>
Set the value of the C<:nsentry> flag on a sub. The value of C<nsentry> is the name
by which the sub is stored in the namespace.
@@ -294,14 +391,15 @@
*/
void
-set_sub_nsentry(lexer_state * const lexer, char const * const nsentry) {
+set_sub_nsentry(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const nsentry))
+{
CURRENT_SUB(lexer)->info.nsentry = nsentry;
}
/*
-=item C<void
-set_sub_flag(lexer_state * const lexer, sub_flag flag)>
+=item C<void set_sub_flag(lexer_state * const lexer, sub_flag flag)>
Set a subroutine flag on the current sub. The C<flag> parameter may encode
multiple flags.
@@ -310,7 +408,8 @@
*/
void
-set_sub_flag(lexer_state * const lexer, sub_flag flag) {
+set_sub_flag(ARGIN(lexer_state * const lexer), sub_flag flag)
+{
/* set the specified flag in the current subroutine */
SET_FLAG(CURRENT_SUB(lexer)->flags, flag);
@@ -318,8 +417,7 @@
/*
-=item C<void
-new_subr(lexer_state * const lexer, char const * const subname)>
+=item C<void new_subr(lexer_state * const lexer, STRING *subname)>
Create a new subroutine node, and set it as the "current"
subroutine, on which all other sub-related operations do
@@ -329,7 +427,8 @@
*/
void
-new_subr(lexer_state * const lexer, STRING *subname) {
+new_subr(ARGIN(lexer_state * const lexer), ARGIN(STRING *subname))
+{
subroutine *newsub = pir_mem_allocate_zeroed_typed(lexer, subroutine);
int index;
@@ -380,8 +479,8 @@
/*
-=item C<void
-set_sub_name(lexer_state * const lexer, char const * const subname)>
+=item C<void set_sub_name(lexer_state * const lexer, char const * const
+subname)>
Set the current subroutine's name to C<subname>.
@@ -389,23 +488,29 @@
*/
void
-set_sub_name(lexer_state * const lexer, char const * const subname) {
+set_sub_name(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const subname))
+{
CURRENT_SUB(lexer)->info.subname = subname;
}
/*
-=item C<static instruction *
-new_instruction(lexer_state * const lexer, char const * const opname)>
+=item C<static instruction * new_instruction(lexer_state * const lexer, char
+const * const opname)>
Create a new instruction node and set C<opname> as the instruction.
=cut
*/
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
static instruction *
-new_instruction(lexer_state * const lexer, char const * const opname) {
+new_instruction(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const opname))
+{
instruction *ins = pir_mem_allocate_zeroed_typed(lexer, instruction);
ins->opname = opname;
ins->opcode = -1; /* make sure this field is properly initialized;
@@ -416,8 +521,8 @@
/*
-=item C<static void
-new_statement(lexer_state * const lexer, char const * const opname)>
+=item C<static void new_statement(lexer_state * const lexer, char const * const
+opname)>
Constructor for a statement. The newly allocated statement will be inserted
into the current subroutine's statements list.
@@ -426,7 +531,9 @@
*/
static void
-new_statement(lexer_state * const lexer, char const * const opname) {
+new_statement(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const opname))
+{
instruction *instr = new_instruction(lexer, opname);
/* Each instruction has a sequence number to be able to
@@ -458,8 +565,7 @@
/*
-=item C<void
-set_curtarget(lexer_state * const lexer, target * const t)>
+=item C<target * set_curtarget(lexer_state * const lexer, target * const t)>
Sets the target C<t> as the current target in C<lexer> to
make it accessible to other parse actions. C<t> is returned.
@@ -470,15 +576,15 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
target *
-set_curtarget(lexer_state * const lexer, target * const t) {
+set_curtarget(ARGIN(lexer_state * const lexer), ARGIN(target * const t))
+{
lexer->curtarget = t;
return t;
}
/*
-=item C<argument *
-set_curarg(lexer_state * const lexer, argument * const arg)>
+=item C<argument * set_curarg(lexer_state * const lexer, argument * const arg)>
Sets the argument C<arg> as the current argument in C<lexer>
to make it accessible to other parse actions. C<arg> is returned.
@@ -489,15 +595,17 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
argument *
-set_curarg(lexer_state * const lexer, argument * const arg) {
+set_curarg(ARGIN(lexer_state * const lexer),
+ ARGIN(argument * const arg))
+{
lexer->curarg = arg;
return arg;
}
/*
-=item C<int
-targets_equal(target const * const left, target const * const right)>
+=item C<int targets_equal(target const * const left, target const * const
+right)>
Returns true if C<left> equals C<right>, false otherwise. C<left> is
considered to be equal to C<right> if any of the following conditions
@@ -519,7 +627,9 @@
PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
int
-targets_equal(target const * const left, target const * const right) {
+targets_equal(ARGIN(target const * const left),
+ ARGIN(target const * const right))
+{
if (TEST_FLAG(left->flags, TARGET_FLAG_IS_REG)) { /* if left is a reg */
@@ -550,8 +660,7 @@
/*
-=item C<target *
-new_target(lexer_state * const lexer)>
+=item C<target * new_target(lexer_state * const lexer)>
Create a new target node. The node's next pointer is initialized to itself.
@@ -561,7 +670,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
target *
-new_target(lexer_state * const lexer) {
+new_target(ARGIN(lexer_state * const lexer))
+{
target *t = pir_mem_allocate_zeroed_typed(lexer, target);
t->key = NULL;
t->next = t; /* circly linked list */
@@ -569,8 +679,7 @@
}
/*
-=item C<void
-set_target_key(target * const t, key * const k)>
+=item C<void set_target_key(target * const t, key * const k)>
Set the key C<k> on target C<t>. For instance:
@@ -582,14 +691,15 @@
*/
void
-set_target_key(target * const t, key * const k) {
+set_target_key(ARGIN(target * const t), ARGIN(key * const k))
+{
t->key = k;
}
/*
-=item C<target *
-target_from_symbol(lexer_state * const lexer, symbol * const sym)>
+=item C<target * target_from_symbol(lexer_state * const lexer, symbol * const
+sym)>
Convert symbol C<sym> into a target node. The resulting target has
a pointer to C<sym>.
@@ -600,7 +710,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
target *
-target_from_symbol(lexer_state * const lexer, symbol * const sym) {
+target_from_symbol(ARGIN(lexer_state * const lexer),
+ ARGIN(symbol * const sym))
+{
target *t = new_target(lexer);
t->flags = sym->flags; /* copy the flags */
@@ -611,8 +723,8 @@
/*
-=item C<target *
-add_target(lexer_state * const lexer, target *last, target * const t)>
+=item C<target * add_target(lexer_state * const lexer, target *last, target *
+const t)>
Add a new target to the list pointed to by C<list>. C<list> points to
the last element, C<<last->next>> points to the first. The list is
@@ -626,7 +738,9 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
target *
-add_target(lexer_state * const lexer, target *last, target * const t) {
+add_target(ARGIN(lexer_state * const lexer),
+ ARGMOD(target *last), ARGIN(target * const t))
+{
PARROT_ASSERT(last);
PARROT_ASSERT(t);
@@ -640,8 +754,8 @@
/*
-=item C<target *
-add_param(lexer_state * const lexer, pir_type type, char const * const name)>
+=item C<target * add_param(lexer_state * const lexer, pir_type type, char const
+* const name)>
Add a parameter of type C<type> and named C<name> to the current
subroutine. The parameter will be declared as a local symbol in the
@@ -653,7 +767,9 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
target *
-add_param(lexer_state * const lexer, pir_type type, char const * const name) {
+add_param(ARGIN(lexer_state * const lexer), pir_type type,
+ ARGIN(char const * const name))
+{
target *targ = new_target(lexer);
symbol *sym = new_symbol(lexer, name, type);
@@ -688,8 +804,8 @@
/*
-=item C<void
-set_param_alias(lexer_state * const lexer, char const * const alias)>
+=item C<target * set_param_alias(lexer_state * const lexer, char const * const
+alias)>
Set the argument of the :named flag for the current target
(parameter). Returns the current target (parameter). This function assumes
@@ -702,7 +818,9 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
target *
-set_param_alias(lexer_state * const lexer, char const * const alias) {
+set_param_alias(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const alias))
+{
PARROT_ASSERT(lexer->curtarget != NULL);
/* if no alias was specified, default to the target's name, if it's not a register. */
@@ -722,8 +840,8 @@
/*
-=item C<void
-set_param_flag(lexer_state * const lexer, target * const param, target_flag flag)>
+=item C<target * set_param_flag(lexer_state * const lexer, target * const param,
+target_flag flag)>
Set the flag C<flag> on parameter C<param>. The actual value
of C<flag> may encode several flags at a time. Returns C<param>.
@@ -734,7 +852,9 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
target *
-set_param_flag(lexer_state * const lexer, target * const param, target_flag flag) {
+set_param_flag(ARGIN(lexer_state * const lexer),
+ ARGIN(target * const param), target_flag flag)
+{
SET_FLAG(param->flags, flag);
/* note that param is always an identifier; registers are not allowed as parameters.
@@ -757,8 +877,8 @@
/*
-=item C<argument *
-new_argument(lexer_state * const lexer, expression * const expr)>
+=item C<argument * new_argument(lexer_state * const lexer, expression * const
+expr)>
Create a new argument node which wraps C<expr>. The new argument node
is circular linked, meaning its C<next> pointer points to itself.
@@ -769,7 +889,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
argument *
-new_argument(lexer_state * const lexer, expression * const expr) {
+new_argument(ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const expr))
+{
argument *arg = pir_mem_allocate_zeroed_typed(lexer, argument);
arg->value = expr;
arg->next = arg;
@@ -780,8 +902,7 @@
/*
-=item C<argument *
-add_arg(argument *last, argument * const newarg)>
+=item C<argument * add_arg(argument *last, argument * const newarg)>
Add argument C<newarg> at the end of the list pointed to by C<last>.
The list is circular linked, and C<last> points to the last item.
@@ -796,7 +917,8 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
argument *
-add_arg(argument *last, argument * const newarg) {
+add_arg(ARGMOD(argument *last), ARGIN(argument * const newarg))
+{
PARROT_ASSERT(last);
PARROT_ASSERT(newarg);
@@ -809,8 +931,7 @@
/*
-=item C<void
-unshift_arg(invocation * const inv, argument * const newarg)>
+=item C<argument * unshift_arg(invocation * const inv, argument * const newarg)>
Unshift argument C<newarg> on an invocation object. The number
of arguments in the list of C<inv> is incremented to reflect
@@ -839,7 +960,8 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
argument *
-unshift_arg(invocation * const inv, argument * const newarg) {
+unshift_arg(ARGIN(invocation * const inv), ARGIN(argument * const newarg))
+{
++inv->num_arguments;
if (inv->arguments) {
@@ -854,8 +976,7 @@
/*
-=item C<void
-set_arg_flag(argument * const arg, arg_flag flag)>
+=item C<argument * set_arg_flag(argument * const arg, arg_flag flag)>
Set the flag C<flag> on argument C<arg>. Note the C<flag> may
encode multiple flags. C<arg> is returned.
@@ -866,15 +987,16 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
argument *
-set_arg_flag(argument * const arg, arg_flag flag) {
+set_arg_flag(ARGIN(argument * const arg), arg_flag flag)
+{
SET_FLAG(arg->flags, flag);
return arg;
}
/*
-=item C<void
-set_arg_alias(lexer_state * const lexer, char const * const alias)>
+=item C<argument * set_arg_alias(lexer_state * const lexer, char const * const
+alias)>
Set the alias specified in C<alias> on the current argument, accessible
through C<lexer>. The alias is the name under which the argument is passed
@@ -887,7 +1009,9 @@
PARROT_IGNORABLE_RESULT
PARROT_CANNOT_RETURN_NULL
argument *
-set_arg_alias(lexer_state * const lexer, char const * const alias) {
+set_arg_alias(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const alias))
+{
PARROT_ASSERT(lexer->curarg != NULL);
lexer->curarg->alias = alias;
SET_FLAG(lexer->curarg->flags, ARG_FLAG_NAMED);
@@ -896,8 +1020,8 @@
/*
-=item C<void
-load_library(lexer_state * const lexer, char const * const library)>
+=item C<void load_library(lexer_state * const lexer, char const * const
+library)>
Load the library indicated by C<library>.
@@ -905,7 +1029,9 @@
*/
void
-load_library(lexer_state * const lexer, char const * const library) {
+load_library(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const library))
+{
/* see imcc.y:600 */
STRING *libname = Parrot_str_new(lexer->interp, library, strlen(library));
PMC *ignored_value = Parrot_load_lib(lexer->interp, libname, NULL);
@@ -916,8 +1042,7 @@
/*
-=item C<void
-set_label(lexer_state * const lexer, char const * const label)>
+=item C<void set_label(lexer_state * const lexer, char const * const labelname)>
Set the label C<label> on the current instruction.
@@ -925,7 +1050,9 @@
*/
void
-set_label(lexer_state * const lexer, char const * const labelname) {
+set_label(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const labelname))
+{
instruction *instr = CURRENT_INSTRUCTION(lexer);
PARROT_ASSERT(instr);
@@ -954,8 +1081,7 @@
/*
-=item C<void
-set_instr(lexer_state * const lexer, char const * const opname)>
+=item C<void set_instr(lexer_state * const lexer, char const * const opname)>
Sets C<opname> to the current instruction, without operands. This is a
wrapper function for C<set_instrf> to prevent calls with an empty format
@@ -965,14 +1091,15 @@
*/
void
-set_instr(lexer_state * const lexer, char const * const opname) {
+set_instr(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const opname))
+{
set_instrf(lexer, opname, "");
}
/*
-=item C<void
-update_instr(lexer_state * const lexer, char * const newop)>
+=item C<void update_instr(lexer_state * const lexer, char const * const newop)>
Update the current instruction; the new opname is given by C<newop>.
@@ -980,7 +1107,9 @@
*/
void
-update_instr(lexer_state * const lexer, char const * const newop) {
+update_instr(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const newop))
+{
PARROT_ASSERT(CURRENT_INSTRUCTION(lexer));
CURRENT_INSTRUCTION(lexer)->opname = newop;
}
@@ -1023,8 +1152,8 @@
/*
-=item C<void
-set_instrf(lexer_state *lexer, char *opname, char const * const format, ...)>
+=item C<void set_instrf(lexer_state * const lexer, char const * const opname,
+char const * const format, ...)>
Set the specified instruction, using the operands from the vararg list. The
number and types of operands is specified by C<format>. The type of the
@@ -1061,7 +1190,11 @@
*/
void
-set_instrf(lexer_state * const lexer, char const * const opname, char const * const format, ...) {
+set_instrf(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const opname),
+ ARGIN(char const * const format),
+ ...)
+{
va_list arg_ptr; /* for the var. args */
unsigned i; /* loop iterator */
size_t format_length; /* length of the format string. */
@@ -1092,8 +1225,8 @@
/*
-=item C<void
-add_operands(lexer_state * const lexer, char const * const format, ...)>
+=item C<void add_operands(lexer_state * const lexer, char const * const format,
+...)>
Add operands to the current instruction. This is a variable argument function;
C<format> contains placeholders, see the macro C<get_instr_var_arg> above
@@ -1104,7 +1237,10 @@
*/
void
-add_operands(lexer_state * const lexer, char const * const format, ...) {
+add_operands(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const format),
+ ...)
+{
va_list arg_ptr; /* for the var. args */
unsigned i; /* loop iterator */
size_t format_length; /* length of the format string. */
@@ -1132,8 +1268,7 @@
/*
-=item C<void
-set_op_labelflag(lexer_state * const lexer, int flag)>
+=item C<void set_op_labelflag(lexer_state * const lexer, int flag)>
Set a flag on the current instruction that it contains labels as operands.
The bit indicates which operand, count starting from bit 1.
@@ -1142,15 +1277,15 @@
*/
void
-set_op_labelflag(lexer_state * const lexer, int flag) {
+set_op_labelflag(ARGIN(lexer_state * const lexer), int flag)
+{
PARROT_ASSERT(CURRENT_INSTRUCTION(lexer));
SET_FLAG(CURRENT_INSTRUCTION(lexer)->oplabelbits, flag);
}
/*
-=item C<char *
-get_inverse(char *instr)>
+=item C<char const * get_inverse(char const * const instr)>
Returns the instruction with inversed semantics; for instance
C<if> becomes C<unless>, C<greater-than> becomes C<less-or-equals>.
@@ -1159,8 +1294,10 @@
*/
PARROT_CONST_FUNCTION
+PARROT_CANNOT_RETURN_NULL
char const *
-get_inverse(char const * const instr) {
+get_inverse(ARGIN(char const * const instr))
+{
if (STREQ(instr, "if")) return "unless";
else if (STREQ(instr, "gt")) return "le";
else if (STREQ(instr, "ge")) return "lt";
@@ -1175,8 +1312,7 @@
/*
-=item C<void
-invert_instr(lexer_state *lexer)>
+=item C<void invert_instr(lexer_state * const lexer)>
Invert the current instruction. This function assumes there is an instruction
already in place.
@@ -1185,7 +1321,8 @@
*/
void
-invert_instr(lexer_state * const lexer) {
+invert_instr(ARGIN(lexer_state * const lexer))
+{
instruction * const ins = CURRENT_INSTRUCTION(lexer);
char const *instr;
PARROT_ASSERT(ins);
@@ -1199,8 +1336,7 @@
/*
-=item C<expression *
-get_operand(lexer_state * const lexer, short n)>
+=item C<expression * get_operand(lexer_state * const lexer, short n)>
Get the C<n>th operand from the current instruction. If there are no
operands, NULL is returned. Because the operands are stored in a
@@ -1216,7 +1352,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
expression *
-get_operand(lexer_state * const lexer, short n) {
+get_operand(ARGIN(lexer_state * const lexer), short n)
+{
expression *operand = CURRENT_INSTRUCTION(lexer)->operands;
if (operand == NULL)
@@ -1241,8 +1378,7 @@
/*
-=item C<void
-get_operands(lexer_state * const lexer, int bitmask, ...)>
+=item C<void get_operands(lexer_state * const lexer, int bitmask, ...)>
Get operands from the current instruction. C<bitmask> indicates which operands
are requested; if the C<i>th bit is set, the C<i>th operand is returned in a
@@ -1255,7 +1391,8 @@
*/
void
-get_operands(lexer_state * const lexer, int bitmask, ...) {
+get_operands(ARGIN(lexer_state * const lexer), int bitmask, ...)
+{
instruction *instr = CURRENT_INSTRUCTION(lexer);
expression *iter = instr->operands;
int numargs;
@@ -1292,8 +1429,7 @@
/*
-=item C<int
-get_operand_count(lexer_state * const lexer)>
+=item C<unsigned get_operand_count(lexer_state * const lexer)>
Returns the number of operands of the I<current> instruction.
This function assumes there is an instruction in place
@@ -1304,7 +1440,8 @@
*/
PARROT_WARN_UNUSED_RESULT
unsigned
-get_operand_count(lexer_state * const lexer) {
+get_operand_count(ARGIN(lexer_state * const lexer))
+{
unsigned count = 0;
expression *first, *operand;
@@ -1329,8 +1466,8 @@
/*
-=item C<static constant *
-create_const(lexer_state * const lexer, value_type type, char * const name, va_list arg_ptr)>
+=item C<static constant * create_const(lexer_state * const lexer, value_type
+type, va_list arg_ptr)>
Constant constructor; based on C<type>, retrieve a value of the
appropriate type from C<arg_ptr>.
@@ -1341,7 +1478,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static constant *
-create_const(lexer_state * const lexer, value_type type, va_list arg_ptr) {
+create_const(ARGIN(lexer_state * const lexer), value_type type, va_list arg_ptr)
+{
constant *c = pir_mem_allocate_zeroed_typed(lexer, constant);
c->type = type;
c->next = NULL;
@@ -1371,8 +1509,7 @@
/*
-=item C<constant *
-new_const(lexer_state * const lexer, value_type type, ...)>
+=item C<constant * new_const(lexer_state * const lexer, value_type type, ...)>
Creates a new constant node of the given type.
Wrapper function for C<create_const>
@@ -1383,7 +1520,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
constant *
-new_const(lexer_state * const lexer, value_type type, ...) {
+new_const(ARGIN(lexer_state * const lexer), value_type type, ...)
+{
constant *c;
va_list arg_ptr;
va_start(arg_ptr, type);
@@ -1394,8 +1532,8 @@
/*
-=item C<constdecl *
-new_named_const(lexer_state * const lexer, value_type type, char * const name, ...)>
+=item C<constdecl * new_named_const(lexer_state * const lexer, value_type type,
+char const * const name, ...)>
Creates a new constdecl node of the given type, by the given name.
@@ -1405,7 +1543,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
constdecl *
-new_named_const(lexer_state * const lexer, value_type type, char const * const name, ...) {
+new_named_const(ARGIN(lexer_state * const lexer), value_type type,
+ ARGIN(char const * const name),
+ ...)
+{
constdecl *c = (constdecl *)pir_mem_allocate(lexer, sizeof (constdecl));
va_list arg_ptr;
va_start(arg_ptr, name);
@@ -1440,8 +1581,8 @@
/*
-=item C<constdecl *
-new_pmc_const(char const * const type, char const * const name, constant * const value)>
+=item C<constdecl * new_pmc_const(lexer_state * const lexer, char const * const
+type, char const * const name, constant * const value)>
Create a new PMC constant declaration of type C<type>, name C<name> and having a value C<value>.
The type must be a string indicating a valid type name (e.g. "Sub"). C<name> is the name
@@ -1450,9 +1591,13 @@
=cut
*/
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
constdecl *
-new_pmc_const(lexer_state * const lexer, char const * const type,
- char const * const name, constant * const value)
+new_pmc_const(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const type),
+ ARGIN(char const * const name),
+ ARGIN(constant * const value))
{
/* get a STRING representation of the c-string type */
STRING *classname = Parrot_str_new(lexer->interp, type, strlen(type));
@@ -1607,8 +1752,7 @@
/*
-=item C<static invocation *
-new_invocation(lexer_state * const lexer)>
+=item C<static invocation * new_invocation(lexer_state * const lexer)>
Returns a pointer to a new invocation object. In the current implementation,
there can only be one invocation object at any time. For that reason, the
@@ -1624,7 +1768,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static invocation *
-new_invocation(lexer_state * const lexer) {
+new_invocation(ARGIN(lexer_state * const lexer))
+{
/* optimization: return the address of the cached object */
invocation *inv = &lexer->obj_cache.inv_cache;
/* clear all fields */
@@ -1637,8 +1782,7 @@
/*
-=item C<static expression *
-new_expr(expr_type type)>
+=item C<static expression * new_expr(lexer_state * const lexer, expr_type type)>
Create a new C<expression> node of the specified C<type>. The new
expression node is returned.
@@ -1649,7 +1793,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static expression *
-new_expr(lexer_state * const lexer, expr_type type) {
+new_expr(ARGIN(lexer_state * const lexer), expr_type type)
+{
expression *expr = pir_mem_allocate_zeroed_typed(lexer, expression);
expr->type = type;
expr->next = expr;
@@ -1658,8 +1803,7 @@
/*
-=item C<target *
-new_reg(lexer_state * const lexer, int type, int regno)>
+=item C<target * new_reg(lexer_state * const lexer, pir_type type, int regno)>
Create a C<target> node from a register. A new C<pir_reg> object is
created of type C<type> and PIR register number C<regno>. The target
@@ -1671,7 +1815,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
target *
-new_reg(lexer_state * const lexer, pir_type type, int regno) {
+new_reg(ARGIN(lexer_state * const lexer), pir_type type, int regno)
+{
target *t = new_target(lexer);
pir_reg *reg;
@@ -1687,8 +1832,8 @@
/*
-=item C<expression *
-expr_from_target(target *t)>
+=item C<expression * expr_from_target(lexer_state * const lexer, target * const
+t)>
Wrap a target in an expression node; the expression node is
returned.
@@ -1699,7 +1844,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
expression *
-expr_from_target(lexer_state * const lexer, target * const t) {
+expr_from_target(ARGIN(lexer_state * const lexer),
+ ARGIN(target * const t))
+{
expression *e = new_expr(lexer, EXPR_TARGET);
e->expr.t = t;
return e;
@@ -1707,8 +1854,8 @@
/*
-=item C<expression *
-expr_from_const(constant * const c)>
+=item C<expression * expr_from_const(lexer_state * const lexer, constant * const
+c)>
Convert the constant C<c> to an expression node and returns the newly
created expression node.
@@ -1719,7 +1866,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
expression *
-expr_from_const(lexer_state * const lexer, constant * const c) {
+expr_from_const(ARGIN(lexer_state * const lexer),
+ ARGIN(constant * const c))
+{
expression *e = new_expr(lexer, EXPR_CONSTANT);
e->expr.c = c;
return e;
@@ -1727,8 +1876,7 @@
/*
-=item C<expression *
-expr_from_int(lexer_state * const lexer, int ival)>
+=item C<expression * expr_from_int(lexer_state * const lexer, int ival)>
Create an expression node from an integer constant. This is a wrapper
function, which uses C<expr_from_const()> and C<new_const()>.
@@ -1741,14 +1889,14 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
expression *
-expr_from_int(lexer_state * const lexer, int ival) {
+expr_from_int(ARGIN(lexer_state * const lexer), int ival)
+{
return expr_from_const(lexer, new_const(lexer, INT_VAL, ival));
}
/*
-=item C<expression *
-expr_from_num(lexer_state * const lexer, double nval)>
+=item C<expression * expr_from_num(lexer_state * const lexer, double nval)>
Same as C<expr_from_int()>, except it takes a C<double> parameter,
not an C<int>.
@@ -1759,14 +1907,15 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
expression *
-expr_from_num(lexer_state * const lexer, double nval) {
+expr_from_num(ARGIN(lexer_state * const lexer), double nval)
+{
return expr_from_const(lexer, new_const(lexer, NUM_VAL, nval));
}
/*
-=item C<expression *
-expr_from_string(lexer_state * const lexer, char const * const sval)>
+=item C<expression * expr_from_string(lexer_state * const lexer, char const *
+const sval)>
Same as C<expr_from_int()>, except it takes a C<string> parameter.
@@ -1776,15 +1925,17 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
expression *
-expr_from_string(lexer_state * const lexer, char const * const sval) {
+expr_from_string(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const sval))
+{
return expr_from_const(lexer, new_const(lexer, STRING_VAL, sval));
}
/*
-=item C<expression *
-expr_from_ident(char * const id)>
+=item C<expression * expr_from_ident(lexer_state * const lexer, char const *
+const id)>
Convert a ident to an expression node and returns it.
@@ -1794,7 +1945,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
expression *
-expr_from_ident(lexer_state * const lexer, char const * const id) {
+expr_from_ident(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const id))
+{
expression *e = new_expr(lexer, EXPR_IDENT);
e->expr.id = id;
return e;
@@ -1802,8 +1955,8 @@
/*
-=item C<void
-set_invocation_args(lexer_state * const lexer, invocation * const inv, argument * const args)>
+=item C<invocation * set_invocation_args(lexer_state * const lexer, invocation *
+const inv, argument * const args)>
Set the args of an invocation onto the current invocation object.
The number of arguments in the list is counted, and stored in the
@@ -1812,8 +1965,13 @@
=cut
*/
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
invocation *
-set_invocation_args(lexer_state * const lexer, invocation * const inv, argument * const args) {
+set_invocation_args(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv),
+ ARGIN(argument * const args))
+{
argument *arg_iter;
unsigned arg_count = 0;
@@ -1852,8 +2010,8 @@
/*
-=item C<void
-set_invocation_results(lexer_state * const lexer, invocation * const inv, target * const results)>
+=item C<invocation * set_invocation_results(lexer_state * const lexer,
+invocation * const inv, target * const results)>
Set the invocation results on the invocation object C<inv>.
The number of results is stored in the invocation object.
@@ -1862,8 +2020,13 @@
=cut
*/
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
invocation *
-set_invocation_results(lexer_state * const lexer, invocation * const inv, target * const results) {
+set_invocation_results(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv),
+ ARGIN(target * const results))
+{
target *result_iter;
unsigned result_count = 0;
@@ -1897,24 +2060,26 @@
/*
-=item C<void
-set_invocation_type(invocation * const inv, invoke_type type)>
+=item C<invocation * set_invocation_type(invocation * const inv, invoke_type
+type)>
Set the invocation type on the invocation object C<inv>.
=cut
*/
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
invocation *
-set_invocation_type(invocation * const inv, invoke_type type) {
+set_invocation_type(ARGIN(invocation * const inv), invoke_type type)
+{
inv->type = type;
return inv;
}
/*
-=item C<invocation *
-invoke(lexer_state * const lexer, invoke_type type, ...)>
+=item C<invocation * invoke(lexer_state * const lexer, invoke_type type, ...)>
Create a new C<invocation> object of type C<type>. This can be one
of the C<invoke_types> enumeration. Based on the type, this function
@@ -1929,7 +2094,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
invocation *
-invoke(lexer_state * const lexer, invoke_type type, ...) {
+invoke(ARGIN(lexer_state * const lexer), invoke_type type, ...)
+{
va_list arg_ptr;
invocation *inv = new_invocation(lexer);
@@ -1969,8 +2135,8 @@
/*
-=item C<void
-set_lex_flag(lexer_state * const lexer, target * const t, char const * const name)>
+=item C<void set_lex_flag(lexer_state * const lexer, target * const t, char
+const * const name)>
Store target C<t> as a lexical in the sub_info struct. The lexical node
stores a pointer to the target's syminfo structure, so it can access
@@ -1980,7 +2146,10 @@
*/
void
-set_lex_flag(lexer_state * const lexer, target * const t, char const * const name) {
+set_lex_flag(ARGIN(lexer_state * const lexer),
+ ARGIN(target * const t),
+ ARGIN(char const * const name))
+{
lexical *lex = CURRENT_SUB(lexer)->info.lexicals;
/* check whether there is already a target marked as .lex with the specified name */
@@ -2008,8 +2177,7 @@
/*
-=item C<void
-set_hll(lexer_state * const lexer, char * const hll)>
+=item C<void set_hll(lexer_state * const lexer, char const * const hll)>
Set the current HLL as specified in C<hll>.
@@ -2019,7 +2187,9 @@
*/
void
-set_hll(lexer_state * const lexer, char const * const hll) {
+set_hll(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const hll))
+{
STRING * const hll_name = Parrot_str_new(lexer->interp, hll, strlen(hll));
CONTEXT(lexer->interp)->current_HLL = Parrot_register_HLL(lexer->interp, hll_name);
}
@@ -2028,8 +2198,8 @@
/*
-=item C<void
-unshift_operand(lexer_state *lexer, expression *operand)>
+=item C<void unshift_operand(lexer_state * const lexer, expression * const
+operand)>
Add the specified expression as the first operand of the current
instruction.
@@ -2038,7 +2208,9 @@
*/
void
-unshift_operand(lexer_state * const lexer, expression * const operand) {
+unshift_operand(ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const operand))
+{
expression *last = CURRENT_INSTRUCTION(lexer)->operands;
if (last) {
/* get the head of the list */
@@ -2054,8 +2226,8 @@
/*
-=item C<void
-push_operand(lexer_state * const lexer, expression * const operand)>
+=item C<void push_operand(lexer_state * const lexer, expression * const
+operand)>
Add an operand at the end of the list of operands of the current instruction.
@@ -2063,7 +2235,9 @@
*/
void
-push_operand(lexer_state * const lexer, NOTNULL(expression * const operand)) {
+push_operand(ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const operand))
+{
PARROT_ASSERT(CURRENT_INSTRUCTION(lexer));
if (CURRENT_INSTRUCTION(lexer)->operands) {
@@ -2075,8 +2249,7 @@
/*
-=item C<void
-remove_all_operands(lexer_state * const lexer)>
+=item C<void remove_all_operands(lexer_state * const lexer)>
Remove all operands of the current instruction. This is done
by simply setting the pointer to the operands to NULL; all
@@ -2087,15 +2260,15 @@
*/
void
-remove_all_operands(NOTNULL(lexer_state * const lexer)) {
+remove_all_operands(ARGIN(lexer_state * const lexer))
+{
CURRENT_INSTRUCTION(lexer)->operands = NULL;
}
/*
-=item C<expression *
-expr_from_key(lexer_state * const lexer, key * const k)>
+=item C<expression * expr_from_key(lexer_state * const lexer, key * const k)>
Wraps the key C<k> in an C<expression> node and returns that.
The returned expression node has type EXPR_KEY.
@@ -2103,8 +2276,11 @@
=cut
*/
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
expression *
-expr_from_key(NOTNULL(lexer_state * const lexer), NOTNULL(key * const k)) {
+expr_from_key(ARGIN(lexer_state * const lexer), ARGIN(key * const k))
+{
expression *e = new_expr(lexer, EXPR_KEY);
e->expr.k = k;
return e;
@@ -2113,7 +2289,8 @@
/*
-=item C<static key_entry * new_key_entry>
+=item C<static key_entry * new_key_entry(lexer_state * const lexer, expression *
+const expr)>
Constructor for a key_entry node. Memory is allocated for the node,
and the C<expr> field is initialized to the passed in C<expr> value.
@@ -2122,8 +2299,11 @@
=cut
*/
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
static key_entry *
-new_key_entry(lexer_state * const lexer, expression * const expr) {
+new_key_entry(ARGIN(lexer_state * const lexer), ARGIN(expression * const expr))
+{
key_entry *entry = pir_mem_allocate_zeroed_typed(lexer, key_entry);
entry->expr = expr;
entry->next = NULL;
@@ -2131,8 +2311,7 @@
}
/*
-=item C<key *
-new_key(lexer_state * const lexer, expression * const expr)>
+=item C<key * new_key(lexer_state * const lexer, expression * const expr)>
Wraps the expression C<expr> in a key node and returns that.
@@ -2142,7 +2321,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
key *
-new_key(NOTNULL(lexer_state * const lexer), NOTNULL(expression * const expr)) {
+new_key(ARGIN(lexer_state * const lexer), ARGIN(expression * const expr))
+{
key *k = pir_mem_allocate_zeroed_typed(lexer, key);
k->head = new_key_entry(lexer, expr);
k->keylength = 1;
@@ -2152,8 +2332,8 @@
/*
-=item C<key *
-add_key(lexer_state * const lexer, key * const keylist, expression * const exprkey)>
+=item C<key * add_key(lexer_state * const lexer, key * const keylist, expression
+* const exprkey)>
Adds a new, nested key (in C<exprkey>) to the current key,
pointed to by C<keylist>. C<keylist> is returned.
@@ -2164,8 +2344,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
key *
-add_key(NOTNULL(lexer_state * const lexer), NOTNULL(key * const keylist),
- NOTNULL(expression * const exprkey))
+add_key(ARGIN(lexer_state * const lexer), ARGIN(key * const keylist),
+ ARGIN(expression * const exprkey))
{
key_entry *newkey = new_key_entry(lexer, exprkey);
key_entry *iter = keylist->head;
@@ -2186,8 +2366,7 @@
/*
-=item C<symbol *
-add_local(symbol * const list, symbol * const local)>
+=item C<symbol * add_local(symbol * const list, symbol * const local)>
Add local C<local> to the list pointed to by C<list>. The new object
is inserted at the front of the list. C<list> is returned
@@ -2198,7 +2377,8 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
symbol *
-add_local(symbol * const list, symbol * const local) {
+add_local(ARGIN(symbol * const list), ARGIN(symbol * const local))
+{
local->next = list->next;
list->next = local;
return list;
@@ -2207,8 +2387,8 @@
/*
-=item C<symbol *
-new_local(char * const name, int has_unique_reg)>
+=item C<symbol * new_local(lexer_state * const lexer, char const * const name,
+int has_unique_reg)>
Create a new symbol node to represent the local C<name>.
If C<has_unique_reg> is true, the C<:unique_reg> flag is set.
@@ -2220,7 +2400,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
symbol *
-new_local(lexer_state * const lexer, char const * const name, int has_unique_reg){
+new_local(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name), int has_unique_reg)
+{
symbol *s = new_symbol(lexer, name, UNKNOWN_TYPE);
if (has_unique_reg)
@@ -2232,8 +2414,7 @@
/*
-=item C<int
-is_parrot_op(lexer_state * const lexer, char * const name)>
+=item C<int is_parrot_op(lexer_state * const lexer, char const * const name)>
Check whether C<name> is a parrot opcode. C<name> can be either the short
or fullname of the opcode; for instance, C<print> is the short name, which
@@ -2244,7 +2425,9 @@
*/
int
-is_parrot_op(lexer_state * const lexer, char const * const name) {
+is_parrot_op(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+{
int opcode = lexer->interp->op_lib->op_code(name, 0); /* check short name, e.g. "set" */
/* do *NOT* check for the "long" name variant, such as "set_i_ic";
@@ -2258,9 +2441,8 @@
/*
-=item C<void
-new_sub_instr(lexer_state * const lexer, int opcode, char const * const opname,
- unsigned num_var_args)>
+=item C<void new_sub_instr(lexer_state * const lexer, int opcode, char const *
+const opname, unsigned num_var_args)>
Create a new instruction node, and initialize the opcode and opinfo on that
node. This function can be used to create an instruction of which the signature
@@ -2275,9 +2457,8 @@
*/
void
-new_sub_instr(lexer_state * const lexer, int opcode, char const * const opname,
- unsigned num_var_args)
-
+new_sub_instr(ARGIN(lexer_state * const lexer), int opcode,
+ ARGIN(char const * const opname), unsigned num_var_args)
{
new_statement(lexer, opname);
CURRENT_INSTRUCTION(lexer)->opinfo = &lexer->interp->op_info_table[opcode];
@@ -2298,8 +2479,8 @@
/*
-=item C<void
-update_op(lexer_state * const lexer, instruction * const instr, int newop)>
+=item C<void update_op(lexer_state * const lexer, instruction * const instr, int
+newop)>
Update the instruction C<instr>; it is replaced by the op with opcode C<newop>.
The C<opinfo>, C<opname> and C<opcode> fields of C<instr> are updated.
@@ -2308,7 +2489,9 @@
*/
void
-update_op(NOTNULL(lexer_state * const lexer), NOTNULL(instruction * const instr), int newop) {
+update_op(ARGIN(lexer_state * const lexer), ARGIN(instruction * const instr),
+ int newop)
+{
/* Deduct number of ints needed for the old instruction, if there is one.
* This is necessary during strength reduction and other optimizations, once
* the opinfo is retrieved, we also update the codesize field in the lexer.
@@ -2333,8 +2516,8 @@
/*
-=item C<static label *
-new_label(lexer_state * const lexer, char const * const labelid, int offset)>
+=item C<static label * new_label(lexer_state * const lexer, char const * const
+labelid, int offset)>
Constructor for a label struct node. A new C<label> object is created,
initialized with the label id specified in C<labelid>, and the bytecode
@@ -2344,8 +2527,12 @@
*/
PARROT_MALLOC
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
static label *
-new_label(lexer_state * const lexer, char const * const labelid, int offset) {
+new_label(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const labelid), int offset)
+{
label *l = pir_mem_allocate_zeroed_typed(lexer, label);
l->name = labelid;
l->offset = offset;
@@ -2354,8 +2541,7 @@
/*
-=item C<static void
-fixup_local_labels(subroutine * const sub)>
+=item C<static void fixup_local_labels(lexer_state * const lexer)>
Fix up all local labels in the subroutine C<sub>. Labels are stored as
identifiers in an expression node (the C<id> field in the C<expr> union);
@@ -2367,7 +2553,8 @@
*/
static void
-fixup_local_labels(lexer_state * const lexer) {
+fixup_local_labels(ARGIN(lexer_state * const lexer))
+{
instruction *iter = CURRENT_SUB(lexer)->statements;
/* if there's no instruction in the current sub, then do nothing. */
@@ -2425,8 +2612,7 @@
/*
-=item C<void
-fixup_global_labels(lexer_state * const lexer)>
+=item C<void fixup_global_labels(lexer_state * const lexer)>
Fix references to global labels. The lexer keeps a list of instructions that
can be patched. These instructions currently look up the global label during
@@ -2439,7 +2625,8 @@
*/
void
-fixup_global_labels(lexer_state * const lexer) {
+fixup_global_labels(ARGIN(lexer_state * const lexer))
+{
global_fixup *iter = lexer->global_refs;
while (iter) {
@@ -2479,8 +2666,7 @@
/*
-=item C<void
-close_sub(lexer_state * const lexer)>
+=item C<void close_sub(lexer_state * const lexer)>
Finalize the subroutine. Generate the final instructions in the current
subroutine, if needed. Then, all local labels are fixed up; i.e., all
@@ -2492,7 +2678,8 @@
*/
void
-close_sub(lexer_state * const lexer) {
+close_sub(ARGIN(lexer_state * const lexer))
+{
int need_epilogue = 1;
int sub_const_table_index;
global_label *glob;
@@ -2551,8 +2738,8 @@
/*
-=item C<void
-update_sub_register_usage(lexer_state * const lexer, unsigned reg_usage[NUM_PARROT_TYPES])>
+=item C<void update_sub_register_usage(lexer_state * const lexer, unsigned
+reg_usage[NUM_PARROT_TYPES])>
Update register usage for the current subroutine with the register usage
information in C<reg_usage>.
@@ -2561,7 +2748,9 @@
*/
void
-update_sub_register_usage(lexer_state * const lexer, unsigned reg_usage[NUM_PARROT_TYPES]) {
+update_sub_register_usage(ARGIN(lexer_state * const lexer),
+ unsigned reg_usage[NUM_PARROT_TYPES])
+{
int i;
for (i = 0; i < NUM_PARROT_TYPES; ++i)
CURRENT_SUB(lexer)->info.regs_used[i] = reg_usage[i];
@@ -2570,8 +2759,8 @@
/*
-=item C<void
-annotate(lexer_state * const lexer, char const * const key, constant * const value)>
+=item C<void annotate(lexer_state * const lexer, char const * const key,
+constant * const value)>
Add a new annotation with key C<key> and value C<value>.
@@ -2579,7 +2768,10 @@
*/
void
-annotate(lexer_state * const lexer, char const * const key, constant * const value) {
+annotate(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const key),
+ ARGIN(constant * const value))
+{
annotation *ann = (annotation *)pir_mem_allocate(lexer, sizeof (annotation));
ann->key = key;
ann->value = value;
Modified: branches/rm_cflags/compilers/pirc/src/pircompunit.h
==============================================================================
--- branches/rm_cflags/compilers/pirc/src/pircompunit.h Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/pirc/src/pircompunit.h Tue Feb 16 21:05:51 2010 (r44046)
@@ -394,135 +394,665 @@
/* forward declaration */
struct lexer_state;
-/* set the namespace that was just parsed */
-void set_namespace(struct lexer_state * const lexer, key * const ns);
+/* HEADERIZER BEGIN: compilers/pirc/src/pircompunit.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* various set functions to set the value of a subroutine flag */
-void set_sub_outer(struct lexer_state * const lexer, char const * const outersub);
-void set_sub_vtable(struct lexer_state * const lexer, char const * vtablename);
-void set_sub_subid(struct lexer_state * const lexer, char const * const subid);
-void set_sub_instanceof(struct lexer_state * const lexer, char const * const classname);
-void set_sub_nsentry(struct lexer_state * const lexer, char const * const nsentry);
-void set_sub_methodname(struct lexer_state * const lexer, char const * const methodname);
-
-void set_sub_multi_types(struct lexer_state * const lexer, expression * const multitype);
-
-/* install a new subroutine node */
-void new_subr(struct lexer_state * const lexer, STRING *subname);
-
-void set_sub_name(struct lexer_state * const lexer, char const * const subname);
-
-/* functions for setting argument flags or argument alias */
-argument *set_arg_flag(argument * const arg, arg_flag flag);
-argument *set_arg_alias(struct lexer_state * const lexer, char const * const alias);
-
-/* constructors for constant nodes */
-constdecl *new_named_const(struct lexer_state * const lexer, value_type type,
- char const * const name, ...);
-
-constant *new_const(struct lexer_state * const lexer, value_type type, ...);
-
-constdecl *new_pmc_const(struct lexer_state * const lexer, char const * const type,
- char const * const name, constant * const value);
-
-/* conversion functions, each wrapping its argument in an expression node */
-expression *expr_from_const(struct lexer_state * const lexer, constant * const c);
-expression *expr_from_target(struct lexer_state * const lexer, target * const t);
-expression *expr_from_ident(struct lexer_state * const lexer, char const * const name);
-expression *expr_from_key(struct lexer_state * const lexer, key * const k);
-expression *expr_from_string(struct lexer_state * const lexer, char const * const sval);
-expression *expr_from_int(struct lexer_state * const lexer, int ival);
-expression *expr_from_num(struct lexer_state * const lexer, double nval);
-
-/* functions for argument node creation and storing */
-argument *new_argument(struct lexer_state * const lexer, expression * const expr);
-argument *add_arg(argument *arg1, argument * const arg2);
-argument *unshift_arg(invocation * const inv, argument * const newarg);
-
-target *add_param(struct lexer_state * const lexer, pir_type type, char const * const name);
-target *set_param_alias(struct lexer_state * const lexer, char const * const alias);
-target *set_param_flag(struct lexer_state * const lexer, target * const t, target_flag flag);
-
-target *set_curtarget(struct lexer_state * const lexer, target * const t);
-argument *set_curarg(struct lexer_state * const lexer, argument * const arg);
-
-/* target constructors */
-target *add_target(struct lexer_state * const lexer, target *t1, target * const t);
-target *new_reg(struct lexer_state * const lexer, pir_type type, int regno);
-target *new_target(struct lexer_state * const lexer);
-
-/* set a key on a target node */
-void set_target_key(target * const t, key * const k);
-
-/* functions for creating an invocation node and setting various fields */
-invocation *invoke(struct lexer_state * const lexer, invoke_type, ...);
-invocation *set_invocation_type(invocation * const inv, invoke_type type);
-invocation *set_invocation_args(struct lexer_state * const lexer, invocation * const inv,
- argument * const args);
-
-invocation *set_invocation_results(struct lexer_state * const lexer, invocation * const inv,
- target * const results);
-
-/* conversion functions that wrap their arguments into a target node */
-target *target_from_symbol(struct lexer_state * const lexer, struct symbol * const sym);
-
-/* management functions for key nodes */
-key *new_key(struct lexer_state * const lexer, expression * const expr);
-key *add_key(struct lexer_state * const lexer, key * const keylist, expression * const newkey);
-
-void load_library(struct lexer_state * const lexer, char const * const library);
-void set_hll(struct lexer_state * const lexer, char const * const hll);
-
-void set_sub_flag(struct lexer_state * const lexer, sub_flag flag);
-
-/* constructor and functions for setting instruction fields */
-void set_label(struct lexer_state * const lexer, char const * const label);
-void set_instr(struct lexer_state * const lexer, char const * const opname);
-void set_instrf(struct lexer_state * const lxr, char const * const op, char const * const fmt, ...);
-void unshift_operand(struct lexer_state * const lexer, expression * const operand);
-void push_operand(struct lexer_state * const lexer, expression * const operand);
-void add_operands(struct lexer_state * const lexer, char const * const format, ...);
-
-void get_operands(struct lexer_state * const lexer, int bitmask, ...);
-expression *get_operand(struct lexer_state * const lexer, short n);
-unsigned get_operand_count(struct lexer_state * const lexer);
-
-void update_instr(struct lexer_state * const lexer, char const * const newop);
-void update_op(struct lexer_state * const lexer, instruction * const instr, int newop);
-
-void remove_operand(struct lexer_state * const lexer, unsigned index);
-void remove_all_operands(struct lexer_state * const lexer);
-
-
-void set_lex_flag(struct lexer_state * const lexer, target * const t, char const * const lexname);
-char const *get_inverse(char const * const instr);
-void invert_instr(struct lexer_state * const lexer);
-
-/* local declaration functions */
-struct symbol *add_local(struct symbol * const list, struct symbol * const local);
-struct symbol *new_local(struct lexer_state * const lexer, char const * const name, int unique);
-
-/* compare two target nodes */
-int targets_equal(target const * const t1, target const * const t2);
-
-/* funtion to reset the register allocator */
-void reset_register_allocator(struct lexer_state * const lexer);
-
-/* to check whether given name is a parrot opcode */
-int is_parrot_op(struct lexer_state * const lexer, char const * const name);
-
-void close_sub(struct lexer_state * const lexer);
-void fixup_global_labels(struct lexer_state * const lexer);
-void set_op_labelflag(struct lexer_state * const lexer, int flag);
-void convert_inv_to_instr(struct lexer_state * const lexer, invocation * const inv);
-
-void update_sub_register_usage(struct lexer_state * const lexer,
- unsigned reg_usage[NUM_PARROT_TYPES]);
-
-void new_sub_instr(struct lexer_state * const lexer, int opcode, char const * const opname,
- unsigned num_var_args);
-
-void annotate(struct lexer_state * const lexer, char const * const key, constant * const value);
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+argument * add_arg(ARGMOD(argument *last), ARGIN(argument * const newarg))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*last);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+key * add_key(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(key * const keylist),
+ ARGIN(expression * const exprkey))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+symbol * add_local(ARGIN(symbol * const list), ARGIN(symbol * const local))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void add_operands(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const format),
+ ...)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+target * add_param(
+ ARGIN(lexer_state * const lexer),
+ pir_type type,
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+target * add_target(
+ ARGIN(lexer_state * const lexer),
+ ARGMOD(target *last),
+ ARGIN(target * const t))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*last);
+
+void annotate(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const key),
+ ARGIN(constant * const value))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+void close_sub(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+expression * expr_from_const(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(constant * const c))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+expression * expr_from_ident(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const id))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+expression * expr_from_int(ARGIN(lexer_state * const lexer), int ival)
+ __attribute__nonnull__(1);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+expression * expr_from_key(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(key * const k))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+expression * expr_from_num(ARGIN(lexer_state * const lexer), double nval)
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+expression * expr_from_string(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const sval))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+expression * expr_from_target(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(target * const t))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void fixup_global_labels(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+PARROT_CONST_FUNCTION
+PARROT_CANNOT_RETURN_NULL
+char const * get_inverse(ARGIN(char const * const instr))
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+expression * get_operand(ARGIN(lexer_state * const lexer), short n)
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+unsigned get_operand_count(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+void get_operands(ARGIN(lexer_state * const lexer), int bitmask, ...)
+ __attribute__nonnull__(1);
+
+void invert_instr(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+invocation * invoke(ARGIN(lexer_state * const lexer), invoke_type type, ...)
+ __attribute__nonnull__(1);
+
+int is_parrot_op(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void load_library(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const library))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+argument * new_argument(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const expr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+constant * new_const(ARGIN(lexer_state * const lexer), value_type type, ...)
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+key * new_key(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const expr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+symbol * new_local(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name),
+ int has_unique_reg)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+constdecl * new_named_const(
+ ARGIN(lexer_state * const lexer),
+ value_type type,
+ ARGIN(char const * const name),
+ ...)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+constdecl * new_pmc_const(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const type),
+ ARGIN(char const * const name),
+ ARGIN(constant * const value))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+target * new_reg(ARGIN(lexer_state * const lexer), pir_type type, int regno)
+ __attribute__nonnull__(1);
+
+void new_sub_instr(
+ ARGIN(lexer_state * const lexer),
+ int opcode,
+ ARGIN(char const * const opname),
+ unsigned num_var_args)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+
+void new_subr(ARGIN(lexer_state * const lexer), ARGIN(STRING *subname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+target * new_target(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+void push_operand(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const operand))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void remove_all_operands(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+void reset_register_allocator(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+argument * set_arg_alias(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const alias))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+argument * set_arg_flag(ARGIN(argument * const arg), arg_flag flag)
+ __attribute__nonnull__(1);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+argument * set_curarg(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(argument * const arg))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+target * set_curtarget(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(target * const t))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_hll(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const hll))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_instr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const opname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_instrf(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const opname),
+ ARGIN(char const * const format),
+ ...)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+invocation * set_invocation_args(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv),
+ ARGIN(argument * const args))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+invocation * set_invocation_results(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv),
+ ARGIN(target * const results))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+invocation * set_invocation_type(
+ ARGIN(invocation * const inv),
+ invoke_type type)
+ __attribute__nonnull__(1);
+
+void set_label(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const labelname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_lex_flag(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(target * const t),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+void set_namespace(ARGIN(lexer_state * const lexer), ARGIN(key * const ns))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_op_labelflag(ARGIN(lexer_state * const lexer), int flag)
+ __attribute__nonnull__(1);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+target * set_param_alias(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const alias))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+target * set_param_flag(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(target * const param),
+ target_flag flag)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_sub_flag(ARGIN(lexer_state * const lexer), sub_flag flag)
+ __attribute__nonnull__(1);
+
+void set_sub_instanceof(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const classname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_sub_methodname(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const methodname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_sub_multi_types(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const multitype))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_sub_name(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const subname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_sub_nsentry(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const nsentry))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_sub_outer(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const outersub))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_sub_subid(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const subid))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_sub_vtable(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * vtablename))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void set_target_key(ARGIN(target * const t), ARGIN(key * const k))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+target * target_from_symbol(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(symbol * const sym))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_PURE_FUNCTION
+PARROT_WARN_UNUSED_RESULT
+int targets_equal(
+ ARGIN(target const * const left),
+ ARGIN(target const * const right))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_IGNORABLE_RESULT
+PARROT_CANNOT_RETURN_NULL
+argument * unshift_arg(
+ ARGIN(invocation * const inv),
+ ARGIN(argument * const newarg))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void unshift_operand(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const operand))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void update_instr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const newop))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void update_op(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr),
+ int newop)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void update_sub_register_usage(
+ ARGIN(lexer_state * const lexer),
+ unsigned reg_usage[NUM_PARROT_TYPES])
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_add_arg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(last) \
+ , PARROT_ASSERT_ARG(newarg))
+#define ASSERT_ARGS_add_key __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(keylist) \
+ , PARROT_ASSERT_ARG(exprkey))
+#define ASSERT_ARGS_add_local __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(list) \
+ , PARROT_ASSERT_ARG(local))
+#define ASSERT_ARGS_add_operands __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(format))
+#define ASSERT_ARGS_add_param __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_add_target __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(last) \
+ , PARROT_ASSERT_ARG(t))
+#define ASSERT_ARGS_annotate __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(key) \
+ , PARROT_ASSERT_ARG(value))
+#define ASSERT_ARGS_close_sub __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_expr_from_const __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(c))
+#define ASSERT_ARGS_expr_from_ident __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(id))
+#define ASSERT_ARGS_expr_from_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_expr_from_key __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(k))
+#define ASSERT_ARGS_expr_from_num __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_expr_from_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(sval))
+#define ASSERT_ARGS_expr_from_target __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(t))
+#define ASSERT_ARGS_fixup_global_labels __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_get_inverse __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(instr))
+#define ASSERT_ARGS_get_operand __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_get_operand_count __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_get_operands __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_invert_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_invoke __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_is_parrot_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_load_library __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(library))
+#define ASSERT_ARGS_new_argument __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(expr))
+#define ASSERT_ARGS_new_const __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_new_key __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(expr))
+#define ASSERT_ARGS_new_local __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_new_named_const __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_new_pmc_const __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(type) \
+ , PARROT_ASSERT_ARG(name) \
+ , PARROT_ASSERT_ARG(value))
+#define ASSERT_ARGS_new_reg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_new_sub_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(opname))
+#define ASSERT_ARGS_new_subr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(subname))
+#define ASSERT_ARGS_new_target __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_push_operand __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(operand))
+#define ASSERT_ARGS_remove_all_operands __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_reset_register_allocator __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_set_arg_alias __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(alias))
+#define ASSERT_ARGS_set_arg_flag __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(arg))
+#define ASSERT_ARGS_set_curarg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(arg))
+#define ASSERT_ARGS_set_curtarget __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(t))
+#define ASSERT_ARGS_set_hll __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(hll))
+#define ASSERT_ARGS_set_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(opname))
+#define ASSERT_ARGS_set_instrf __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(opname) \
+ , PARROT_ASSERT_ARG(format))
+#define ASSERT_ARGS_set_invocation_args __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv) \
+ , PARROT_ASSERT_ARG(args))
+#define ASSERT_ARGS_set_invocation_results __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv) \
+ , PARROT_ASSERT_ARG(results))
+#define ASSERT_ARGS_set_invocation_type __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_set_label __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(labelname))
+#define ASSERT_ARGS_set_lex_flag __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(t) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_set_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(ns))
+#define ASSERT_ARGS_set_op_labelflag __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_set_param_alias __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(alias))
+#define ASSERT_ARGS_set_param_flag __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(param))
+#define ASSERT_ARGS_set_sub_flag __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_set_sub_instanceof __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(classname))
+#define ASSERT_ARGS_set_sub_methodname __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(methodname))
+#define ASSERT_ARGS_set_sub_multi_types __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(multitype))
+#define ASSERT_ARGS_set_sub_name __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(subname))
+#define ASSERT_ARGS_set_sub_nsentry __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(nsentry))
+#define ASSERT_ARGS_set_sub_outer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(outersub))
+#define ASSERT_ARGS_set_sub_subid __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(subid))
+#define ASSERT_ARGS_set_sub_vtable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(vtablename))
+#define ASSERT_ARGS_set_target_key __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(t) \
+ , PARROT_ASSERT_ARG(k))
+#define ASSERT_ARGS_target_from_symbol __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(sym))
+#define ASSERT_ARGS_targets_equal __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(left) \
+ , PARROT_ASSERT_ARG(right))
+#define ASSERT_ARGS_unshift_arg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(inv) \
+ , PARROT_ASSERT_ARG(newarg))
+#define ASSERT_ARGS_unshift_operand __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(operand))
+#define ASSERT_ARGS_update_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(newop))
+#define ASSERT_ARGS_update_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(instr))
+#define ASSERT_ARGS_update_sub_register_usage __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: compilers/pirc/src/pircompunit.c */
#endif /* PARROT_PIR_PIRCOMPUNIT_H_GUARD */
Modified: branches/rm_cflags/compilers/pirc/src/piremit.c
==============================================================================
--- branches/rm_cflags/compilers/pirc/src/piremit.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/pirc/src/piremit.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -14,6 +14,109 @@
#include "parrot/oplib/ops.h"
+/* HEADERIZER HFILE: compilers/pirc/src/piremit.h */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static void emit_pbc_annotations(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+static void emit_pbc_const_arg(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(constant * const c))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void emit_pbc_expr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const operand))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void emit_pbc_instr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void emit_pbc_label_arg(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(label * const l))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void emit_pbc_sub(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(subroutine * const sub))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void emit_pbc_target_arg(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(target * const t))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void emit_pir_instruction(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void emit_pir_statement(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(subroutine * const sub))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void optimize_instr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void print_sub_flags(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(subroutine * const subiter))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_emit_pbc_annotations __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_emit_pbc_const_arg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(c))
+#define ASSERT_ARGS_emit_pbc_expr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(operand))
+#define ASSERT_ARGS_emit_pbc_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(instr))
+#define ASSERT_ARGS_emit_pbc_label_arg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(l))
+#define ASSERT_ARGS_emit_pbc_sub __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(sub))
+#define ASSERT_ARGS_emit_pbc_target_arg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(t))
+#define ASSERT_ARGS_emit_pir_instruction __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(instr))
+#define ASSERT_ARGS_emit_pir_statement __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(sub))
+#define ASSERT_ARGS_optimize_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(instr))
+#define ASSERT_ARGS_print_sub_flags __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(subiter))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
/*
=head1 DESCRIPTION
@@ -44,25 +147,24 @@
*/
char const pir_register_types[5] = {'I', 'S', 'P', 'N', '?'};
-static void emit_pir_statement(lexer_state * const lexer, subroutine * const sub);
-static void emit_pir_instruction(lexer_state * const lexer, instruction * const instr);
-static void emit_pbc_expr(lexer_state * const lexer, expression * const operand);
+static void emit_pir_statement(ARGIN(lexer_state * const lexer), subroutine * const sub);
+static void emit_pir_instruction(ARGIN(lexer_state * const lexer), instruction * const instr);
+static void emit_pbc_expr(ARGIN(lexer_state * const lexer), expression * const operand);
-static void print_sub_flags(lexer_state * const lexer, subroutine * const subiter);
+static void print_sub_flags(ARGIN(lexer_state * const lexer), subroutine * const subiter);
/* prototype declaration */
-void print_expr(lexer_state * const lexer, expression * const expr);
-void print_key(lexer_state * const lexer, key * const k);
-void print_target(lexer_state * const lexer, target * const t);
-void print_constant(lexer_state * const lexer, constant * const c);
-void print_expressions(lexer_state * const lexer, expression * const expr);
-void print_instruction(lexer_state * const lexer, instruction * const ins);
-void print_statement(lexer_state * const lexer, subroutine * const sub);
+void print_expr(ARGIN(lexer_state * const lexer), expression * const expr);
+void print_key(ARGIN(lexer_state * const lexer), key * const k);
+void print_target(ARGIN(lexer_state * const lexer), target * const t);
+void print_constant(ARGIN(lexer_state * const lexer), constant * const c);
+void print_expressions(ARGIN(lexer_state * const lexer), expression * const expr);
+void print_instruction(ARGIN(lexer_state * const lexer), instruction * const ins);
+void print_statement(ARGIN(lexer_state * const lexer), subroutine * const sub);
/*
-=item C<void
-print_key(lexer_state * const lexer, key * const k)>
+=item C<void print_key(lexer_state * const lexer, key * const k)>
Print the key C<k>. The total key is enclosed in square brackets,
and different key elements are separated by semicolons. Example:
@@ -75,7 +177,9 @@
*/
void
-print_key(lexer_state * const lexer, key * const k) {
+print_key(ARGIN(lexer_state * const lexer), ARGIN(key * const k))
+{
+ ASSERT_ARGS(print_key)
key_entry *iter;
fprintf(out, "[");
@@ -95,8 +199,7 @@
/*
-=item C<void
-print_target(lexer_state * const lexer, target * const t)>
+=item C<void print_target(lexer_state * const lexer, target * const t)>
Print the target C<t>; if C<t> has a key, that key is
printed as well. Examples:
@@ -107,7 +210,9 @@
*/
void
-print_target(lexer_state * const lexer, target * const t) {
+print_target(ARGIN(lexer_state * const lexer), ARGIN(target * const t))
+{
+ ASSERT_ARGS(print_target)
PARROT_ASSERT(t->info);
fprintf(out, "%c%d", pir_register_types[t->info->type], t->info->color);
@@ -118,8 +223,7 @@
/*
-=item C<void
-print_constant(lexer_state * const lexer, constant * const c)>
+=item C<void print_constant(lexer_state * const lexer, constant * const c)>
Print the value of constant C<c>. Based on C<c>'s type, the appropriate
value is printed.
@@ -128,7 +232,10 @@
*/
void
-print_constant(lexer_state * const lexer, constant * const c) {
+print_constant(ARGIN(lexer_state * const lexer),
+ ARGIN(constant * const c))
+{
+ ASSERT_ARGS(print_constant)
switch (c->type) {
case INT_VAL:
fprintf(out, "%d", c->val.ival);
@@ -153,8 +260,7 @@
/*
-=item C<void
-print_expr(lexer_state * const lexer, expression * const expr)>
+=item C<void print_expr(lexer_state * const lexer, expression * const expr)>
Print the expression C<expr>. This is a dispatch function, calling
a specialized function based on C<expr>'s type.
@@ -163,7 +269,10 @@
*/
void
-print_expr(lexer_state * const lexer, expression * const expr) {
+print_expr(ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const expr))
+{
+ ASSERT_ARGS(print_expr)
switch (expr->type) {
case EXPR_TARGET:
print_target(lexer, expr->expr.t);
@@ -187,8 +296,8 @@
/*
-=item C<void
-print_expressions(expression * const expr)>
+=item C<void print_expressions(lexer_state * const lexer, expression * const
+expr)>
Print the list of expressions pointed to by C<expr>,
if C<expr> is not NULL. If C<expr> is NULL, the
@@ -199,7 +308,10 @@
*/
void
-print_expressions(lexer_state * const lexer, expression * const expr) {
+print_expressions(ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const expr))
+{
+ ASSERT_ARGS(print_expressions)
expression *iter;
if (expr == NULL)
@@ -218,8 +330,8 @@
/*
-=item C<void
-print_instruction(lexer_state * const lexer, instruction * const ins)>
+=item C<void print_instruction(lexer_state * const lexer, instruction * const
+ins)>
Print the instruction C<ins>.
@@ -227,8 +339,10 @@
*/
void
-print_instruction(lexer_state * const lexer, instruction * const ins) {
- PARROT_ASSERT(ins != NULL);
+print_instruction(ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const ins))
+{
+ ASSERT_ARGS(print_instruction)
if (ins->label) {
if (TEST_FLAG(lexer->flags, LEXER_FLAG_EMIT_PASM))
@@ -254,8 +368,7 @@
/*
-=item C<void
-print_statement(lexer_state * const lexer, subroutine * const sub)>
+=item C<void print_statement(lexer_state * const lexer, subroutine * const sub)>
XXX
@@ -263,7 +376,10 @@
*/
void
-print_statement(lexer_state * const lexer, subroutine * const sub) {
+print_statement(ARGIN(lexer_state * const lexer),
+ ARGIN(subroutine * const sub))
+{
+ ASSERT_ARGS(print_statement)
instruction *statiter;
if (sub->statements == NULL)
@@ -280,8 +396,8 @@
/*
-=item C<static void
-print_sub_flags(lexer_state * const lexer, subroutine * const subiter)>
+=item C<static void print_sub_flags(lexer_state * const lexer, subroutine *
+const subiter)>
Print the appropriate subflags.
@@ -289,7 +405,11 @@
*/
static void
-print_sub_flags(lexer_state * const lexer, subroutine * const subiter) {
+print_sub_flags(ARGIN(lexer_state * const lexer),
+ ARGIN(subroutine * const subiter))
+{
+ ASSERT_ARGS(print_sub_flags)
+
if (TEST_FLAG(subiter->flags, PIRC_SUB_FLAG_INIT))
fprintf(out, ":init ");
if (TEST_FLAG(subiter->flags, PIRC_SUB_FLAG_LOAD))
@@ -320,8 +440,7 @@
/*
-=item C<void
-print_subs(struct lexer_state * const lexer)>
+=item C<void print_subs(struct lexer_state * const lexer)>
Top-level function to print all generated code. This function
iterates over all subs and prints their instructions.
@@ -330,7 +449,9 @@
*/
void
-print_subs(struct lexer_state * const lexer) {
+print_subs(struct ARGIN(lexer_state * const lexer))
+{
+ ASSERT_ARGS(print_subs)
subroutine *subiter;
if (lexer->subs == NULL)
@@ -371,8 +492,8 @@
/*
-=item C<static void
-emit_pir_instruction(lexer_state * const lexer, instruction * const instr)>
+=item C<static void emit_pir_instruction(lexer_state * const lexer, instruction
+* const instr)>
Print the PIR representation of C<instr>. If C<instr> has a label, that
is printed first.
@@ -381,7 +502,10 @@
*/
static void
-emit_pir_instruction(lexer_state * const lexer, instruction * const instr) {
+emit_pir_instruction(ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr))
+{
+ ASSERT_ARGS(emit_pir_instruction)
if (instr->label)
fprintf(out, " %s:\n", instr->label);
@@ -395,8 +519,8 @@
/*
-=item C<static void
-emit_pir_statement(lexer_state * const lexer, subroutine * const sub)>
+=item C<static void emit_pir_statement(lexer_state * const lexer, subroutine *
+const sub)>
Emit all statements of the subroutine C<sub>. The statements
are emitted in PIR format. If there are no statements in C<sub>,
@@ -406,7 +530,11 @@
*/
static void
-emit_pir_statement(lexer_state * const lexer, subroutine * const sub) {
+emit_pir_statement(ARGIN(lexer_state * const lexer),
+ ARGIN(subroutine * const sub))
+{
+ ASSERT_ARGS(emit_pir_statement)
+
instruction *statiter;
if (sub->statements == NULL)
@@ -424,8 +552,8 @@
/*
-=item C<void
-emit_pir_subs(lexer_state * const lexer)>
+=item C<void emit_pir_subs(lexer_state * const lexer, char const * const
+outfile)>
Print the PIR representation of all subroutines stored
in the C<lexer>. If there are no subroutines, thre function
@@ -435,7 +563,10 @@
*/
void
-emit_pir_subs(lexer_state * const lexer, char const * const outfile) {
+emit_pir_subs(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const outfile))
+{
+ ASSERT_ARGS(emit_pir_subs)
subroutine *subiter;
if (lexer->subs == NULL)
@@ -474,8 +605,8 @@
/*
-=item C<static void
-emit_pbc_const_arg(lexer_state * const lexer, constant * const c)>
+=item C<static void emit_pbc_const_arg(lexer_state * const lexer, constant *
+const c)>
Emit a constant argument into the bytecode. An integer is emitted
inline in the bytecode; other types are stored in the constant table,
@@ -485,7 +616,10 @@
*/
static void
-emit_pbc_const_arg(lexer_state * const lexer, constant * const c) {
+emit_pbc_const_arg(ARGIN(lexer_state * const lexer),
+ ARGIN(constant * const c))
+{
+ ASSERT_ARGS(emit_pbc_const_arg)
switch (c->type) {
case INT_VAL:
@@ -538,8 +672,8 @@
/*
-=item C<static void
-emit_pbc_label_arg(lexer_state * const lexer, label * const l)>
+=item C<static void emit_pbc_label_arg(lexer_state * const lexer, label * const
+l)>
Emit the value of the label offset of label C<l>.
@@ -547,7 +681,11 @@
*/
static void
-emit_pbc_label_arg(lexer_state * const lexer, label * const l) {
+emit_pbc_label_arg(ARGIN(lexer_state * const lexer),
+ ARGIN(label * const l))
+{
+ ASSERT_ARGS(emit_pbc_label_arg)
+
emit_int_arg(lexer->bc, l->offset);
}
@@ -558,8 +696,8 @@
/*
-=item C<static void
-emit_pbc_target_arg(lexer_state * const lexer, target * const t)>
+=item C<static void emit_pbc_target_arg(lexer_state * const lexer, target *
+const t)>
Emit the assigned register of target C<t>. The assigned register is
stored in the C<color> field, of either the C<pir_reg> or C<symbol>
@@ -570,7 +708,11 @@
*/
static void
-emit_pbc_target_arg(lexer_state * const lexer, target * const t) {
+emit_pbc_target_arg(ARGIN(lexer_state * const lexer),
+ ARGIN(target * const t))
+{
+ ASSERT_ARGS(emit_pbc_target_arg)
+
emit_int_arg(lexer->bc, t->info->color);
/* if t has a key, emit that as well */
@@ -581,8 +723,8 @@
/*
-=item C<static void
-emit_pbc_expr(lexer_state * const lexer, expression * const operand)>
+=item C<static void emit_pbc_expr(lexer_state * const lexer, expression * const
+operand)>
Emit bytecode for the expression C<operand>. This is a dispatch
function, invoking the appropriate function depending on C<operand>'s
@@ -592,7 +734,11 @@
*/
static void
-emit_pbc_expr(lexer_state * const lexer, expression * const operand) {
+emit_pbc_expr(ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const operand))
+{
+ ASSERT_ARGS(emit_pbc_expr)
+
switch (operand->type) {
case EXPR_CONSTANT:
emit_pbc_const_arg(lexer, operand->expr.c);
@@ -620,8 +766,8 @@
/*
-=item C<static void
-optimize_instr(lexer_state * const lexer, instruction * const instr)>
+=item C<static void optimize_instr(lexer_state * const lexer, instruction *
+const instr)>
Optimize the instruction C<instr>. Currently, these instructions are optimized:
@@ -633,7 +779,10 @@
*/
static void
-optimize_instr(lexer_state * const lexer, instruction * const instr) {
+optimize_instr(ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr))
+{
+ ASSERT_ARGS(optimize_instr)
switch (instr->opcode) {
case PARROT_OP_box_p_ic: {
@@ -700,8 +849,8 @@
/*
-=item C<static void
-emit_pbc_instr(lexer_state * const lexer, instruction * const instr)>
+=item C<static void emit_pbc_instr(lexer_state * const lexer, instruction *
+const instr)>
Emit PBC for one instruction. If the C<opinfo> attribute of C<instr>
is NULL, the function does nothing and returns.
@@ -710,7 +859,11 @@
*/
static void
-emit_pbc_instr(lexer_state * const lexer, instruction * const instr) {
+emit_pbc_instr(ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr))
+{
+ ASSERT_ARGS(emit_pbc_instr)
+
int i;
expression *operand;
opcode_t offset;
@@ -766,8 +919,8 @@
/*
-=item C<static void
-emit_pbc_sub(lexer_state * const lexer, subroutine * const sub)>
+=item C<static void emit_pbc_sub(lexer_state * const lexer, subroutine * const
+sub)>
Emit bytecode for the subroutine C<sub>.
@@ -775,7 +928,11 @@
*/
static void
-emit_pbc_sub(lexer_state * const lexer, subroutine * const sub) {
+emit_pbc_sub(ARGIN(lexer_state * const lexer),
+ ARGIN(subroutine * const sub))
+{
+ ASSERT_ARGS(emit_pbc_sub)
+
instruction *iter;
if (sub->statements == NULL)
@@ -803,8 +960,7 @@
/*
-=item C<static void
-emit_pbc_annotations(lexer_state * const lexer)>
+=item C<static void emit_pbc_annotations(lexer_state * const lexer)>
Emit all annotations into the PackFile. First a new annotations
segment is created. Then, for each annotation, its value is stored
@@ -814,7 +970,10 @@
*/
static void
-emit_pbc_annotations(lexer_state * const lexer) {
+emit_pbc_annotations(ARGIN(lexer_state * const lexer))
+{
+ ASSERT_ARGS(emit_pbc_annotations)
+
annotation *iter;
if (lexer->annotations == NULL)
@@ -866,8 +1025,7 @@
/*
-=item C<void
-emit_pbc(lexer_state * const lexer, const char *outfile)>
+=item C<void emit_pbc(lexer_state * const lexer, const char *outfile)>
Generate Parrot Byte Code from the abstract syntax tree.
This is the top-level function. After all instructions
@@ -878,7 +1036,10 @@
*/
void
-emit_pbc(lexer_state * const lexer, const char *outfile) {
+emit_pbc(ARGIN(lexer_state * const lexer),
+ ARGIN(const char *outfile))
+{
+ ASSERT_ARGS(emit_pbc)
subroutine *subiter;
if (!outfile)
Modified: branches/rm_cflags/compilers/pirc/src/piremit.h
==============================================================================
--- branches/rm_cflags/compilers/pirc/src/piremit.h Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/pirc/src/piremit.h Tue Feb 16 21:05:51 2010 (r44046)
@@ -10,12 +10,91 @@
struct lexer_state;
struct constant;
-void print_subs(struct lexer_state * const lexer);
-void emit_pir_subs(struct lexer_state * const lexer, char const * const outfile);
-void emit_pbc(struct lexer_state * const lexer, const char *outfile);
+/* HEADERIZER BEGIN: compilers/pirc/src/piremit.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+void emit_pbc(ARGIN(lexer_state * const lexer), ARGIN(const char *outfile))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
-int emit_pbc_const(struct lexer_state * const lexer, struct constant * const pirconst);
+void emit_pir_subs(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const outfile))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void print_constant(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(constant * const c))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void print_expr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const expr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void print_expressions(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(expression * const expr))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void print_instruction(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const ins))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void print_key(ARGIN(lexer_state * const lexer), ARGIN(key * const k))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void print_statement(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(subroutine * const sub))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void print_subs(struct ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+void print_target(ARGIN(lexer_state * const lexer), ARGIN(target * const t))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_emit_pbc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(outfile))
+#define ASSERT_ARGS_emit_pir_subs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(outfile))
+#define ASSERT_ARGS_print_constant __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(c))
+#define ASSERT_ARGS_print_expr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(expr))
+#define ASSERT_ARGS_print_expressions __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(expr))
+#define ASSERT_ARGS_print_instruction __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(ins))
+#define ASSERT_ARGS_print_key __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(k))
+#define ASSERT_ARGS_print_statement __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(sub))
+#define ASSERT_ARGS_print_subs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_print_target __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(t))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: compilers/pirc/src/piremit.c */
#endif /* PARROT_PIR_PIREMIT_H_GUARD */
Modified: branches/rm_cflags/compilers/pirc/src/pirmacro.c
==============================================================================
--- branches/rm_cflags/compilers/pirc/src/pirmacro.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/pirc/src/pirmacro.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -9,7 +9,18 @@
#include "pircompiler.h"
#include "parrot/parrot.h"
+/* HEADERIZER HFILE: compilers/pirc/src/pirmacro.h */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static void check_size(ARGIN(macro_def * const macro), unsigned length)
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_check_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(macro))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
/*
@@ -24,15 +35,11 @@
*/
-static void check_size(macro_def * const macro, unsigned length);
-
-
-
/*
-=item C<macro_def *
-new_macro(macro_table * const table, char * const name, int lineno)>
+=item C<macro_def * new_macro(macro_table * const table, char const * const
+name, int lineno, int takes_args, unsigned initsize)>
Create a new macro definition node and store it in the macro_table C<table>
@@ -41,10 +48,13 @@
*/
PARROT_MALLOC
PARROT_IGNORABLE_RESULT
+PARROT_CAN_RETURN_NULL
macro_def *
-new_macro(macro_table * const table, char const * const name, int lineno, int takes_args,
- unsigned initsize)
+new_macro(ARGIN(macro_table * const table),
+ ARGIN(char const * const name), int lineno, int takes_args,
+ unsigned initsize)
{
+ ASSERT_ARGS(new_macro)
macro_def *macro = (macro_def *)mem_sys_allocate(sizeof (macro_def));
macro->name = name;
@@ -65,8 +75,7 @@
/*
-=item C<macro_param *
-new_macro_param(char const * const value)>
+=item C<macro_param * new_macro_param(char const * const value)>
Constructor for a C<macro_param> struct object. Initializes
the C<name> attribute of the C<macro_param> object to C<value>.
@@ -79,7 +88,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
macro_param *
-new_macro_param(char const * const value) {
+new_macro_param(ARGIN(char const * const value))
+{
+ ASSERT_ARGS(new_macro_param)
macro_param *param = (macro_param *)mem_sys_allocate(sizeof (macro_param));
param->name = value;
param->next = NULL;
@@ -88,8 +99,8 @@
/*
-=item C<void
-add_macro_param(macro_def * const macro, char * const name)>
+=item C<void add_macro_param(ARGIN*macro_def * const macro), char const * const
+name)>
Add a macro parameter by name of C<name> to the macro definition C<macro>.
@@ -97,7 +108,10 @@
*/
void
-add_macro_param(macro_def * const macro, char const * const name) {
+add_macro_param(ARGIN*macro_def * const macro),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(add_macro_param)
macro_param *param = new_macro_param(name);
param->next = macro->parameters;
macro->parameters = param;
@@ -106,8 +120,8 @@
/*
-=item C<void
-new_macro_const(macro_table * const table, char const * const name, char const * const value)>
+=item C<void new_macro_const(macro_table * const table, char const * const name,
+char const * const value, int lineno)>
Define a new C<.macro_const>, by name of C<name> as an alias for C<value> The new macro
const is entered in the macro_table C<table>
@@ -116,9 +130,11 @@
*/
void
-new_macro_const(macro_table * const table, char const * const name, char const * const value,
- int lineno)
+new_macro_const(ARGIN(macro_table * const table),
+ ARGIN(char const * const name),
+ ARGIN(char const * const value), int lineno)
{
+ ASSERT_ARGS(new_macro_const)
/* macro constants are just macros, but they have no body; the value is already
* parsed and allocated in memory.
*/
@@ -130,8 +146,7 @@
/*
-=item C<void
-check_size(macro_def * const macro, unsigned length)>
+=item C<static void check_size(macro_def * const macro, unsigned length)>
Check C<macro>'s buffer size whether C<length> bytes can be added;
if not, then the buffer is doubled in size.
@@ -140,7 +155,9 @@
*/
static void
-check_size(macro_def * const macro, unsigned length) {
+check_size(ARGIN(macro_def * const macro), unsigned length)
+{
+ ASSERT_ARGS(check_size)
unsigned used = macro->cursor - macro->body;
if (used + length >= macro->buffersize) {
unsigned newsize = macro->buffersize << 1;
@@ -159,8 +176,7 @@
/*
-=item C<void
-store_macro_char(macro_def * const macro, char c)>
+=item C<void store_macro_char(macro_def * const macro, char c)>
Store the character C<c> in C<macro>'s body buffer.
@@ -168,7 +184,9 @@
*/
void
-store_macro_char(macro_def * const macro, char c) {
+store_macro_char(ARGIN(macro_def * const macro), char c)
+{
+ ASSERT_ARGS(store_macro_char)
/* if buffer is full, resize it. */
check_size(macro, 1);
*(macro->cursor)++ = c;
@@ -179,8 +197,8 @@
/*
-=item C<void
-store_macro_string(macro_def * const macro, char * const str, ...)>
+=item C<void store_macro_string(macro_def * const macro, char const * const str,
+...)>
Store the string C<str> in C<macro>'s body buffer. The total number
of characters to be written should not exceed MAX_NUM_CHARS. It's not known
@@ -190,7 +208,11 @@
*/
void
-store_macro_string(macro_def * const macro, char const * const str, ...) {
+store_macro_string(ARGIN(macro_def * const macro),
+ ARGIN(char const * const str),
+ ...)
+{
+ ASSERT_ARGS(store_macro_string)
va_list arg_ptr;
#define MAX_NUM_CHARS_IN_STRING 256
@@ -206,8 +228,8 @@
/*
-=item C<macro_def *
-find_macro(constant_table * const table, char * const name)>
+=item C<macro_def * find_macro(macro_table * const table, char const * const
+name)>
Find the specified macro. If the specified macro does not exist,
NULL is returned.
@@ -218,7 +240,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
macro_def *
-find_macro(macro_table * const table, char const * const name) {
+find_macro(ARGIN(macro_table * const table),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(find_macro)
macro_def *iter = table->definitions;
PARROT_ASSERT(name != NULL);
@@ -243,8 +268,7 @@
/*
-=item C<macro_table *
-new_macro_table(macro_table * const current)>
+=item C<macro_table * new_macro_table(macro_table * const current)>
Create a new macro_table structure; set C<current> as its previous.
The newly created table is returned.
@@ -256,7 +280,9 @@
PARROT_CANNOT_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
macro_table *
-new_macro_table(macro_table * const current) {
+new_macro_table(ARGIN(macro_table * const current))
+{
+ ASSERT_ARGS(new_macro_table)
macro_table *table = (macro_table *)mem_sys_allocate_zeroed(sizeof (macro_table));
table->definitions = NULL;
table->prev = NULL;
@@ -270,8 +296,7 @@
/*
-=item C<void
-delete_macro_table(macro_table * table)>
+=item C<void delete_macro_table(macro_table * table)>
Free resources allocated for the macro_table C<table>.
@@ -279,14 +304,16 @@
*/
void
-delete_macro_table(macro_table * table) {
+delete_macro_table(ARGMOD(macro_table * table))
+{
+ ASSERT_ARGS(delete_macro_table)
mem_sys_free(table);
}
/*
-=item C<void
-declare_macro_local(macro_def * const macro, char * const name)>
+=item C<void declare_macro_local(macro_def * const macro, char const * const
+name)>
Declare C<name> as a C<.macro_local> for the macro definition C<macro>.
@@ -294,7 +321,10 @@
*/
void
-declare_macro_local(macro_def * const macro, char const * const name) {
+declare_macro_local(ARGIN(macro_def * const macro),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(declare_macro_local)
macro_param * param = new_macro_param(name);
param->next = macro->macrolocals;
macro->macrolocals = param;
@@ -303,8 +333,7 @@
/*
-=item C<int
-is_macro_local(macro_def * const macro, char * const name)>
+=item C<int is_macro_local(macro_def * const macro, char const * const name)>
Check whether C<name> was declared as a C<.macro_local> in the macro
definition C<macro>.
@@ -314,7 +343,10 @@
*/
PARROT_WARN_UNUSED_RESULT
int
-is_macro_local(macro_def * const macro, char const * const name) {
+is_macro_local(ARGIN(macro_def * const macro),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(is_macro_local)
macro_param *iter = macro->macrolocals;
while (iter) {
Modified: branches/rm_cflags/compilers/pirc/src/pirmacro.h
==============================================================================
--- branches/rm_cflags/compilers/pirc/src/pirmacro.h Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/pirc/src/pirmacro.h Tue Feb 16 21:05:51 2010 (r44046)
@@ -80,33 +80,113 @@
} macro_table;
+/* HEADERIZER BEGIN: compilers/pirc/src/pirmacro.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-
-
-macro_def *new_macro(macro_table * const table, char const * const name, int lineno,
- int takes_args, unsigned initsize);
-
-void add_macro_param(macro_def * const macro, char const * const name);
-
-void new_macro_const(macro_table * const table, char const * const name,
- char const * const value, int lineno);
-
-
-macro_def *find_macro(macro_table * const table, char const * const name);
-
-macro_table * new_macro_table(macro_table * const current);
-
-void store_macro_char(macro_def * const macro, char c) ;
-
-void store_macro_string(macro_def * const macro, char const * const str, ...);
-
-macro_param * new_macro_param(char const * const value);
-
-void declare_macro_local(macro_def * const macro, char const * const name);
-
-int is_macro_local(macro_def * const macro, char const * const name);
-
-void delete_macro_table(macro_table * table);
+void add_macro_param(
+ ARGIN*macro_def * const macro),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(2);
+
+void declare_macro_local(
+ ARGIN(macro_def * const macro),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void delete_macro_table(ARGMOD(macro_table * table))
+ __attribute__nonnull__(1)
+ FUNC_MODIFIES(* table);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+macro_def * find_macro(
+ ARGIN(macro_table * const table),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+int is_macro_local(
+ ARGIN(macro_def * const macro),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_MALLOC
+PARROT_IGNORABLE_RESULT
+PARROT_CAN_RETURN_NULL
+macro_def * new_macro(
+ ARGIN(macro_table * const table),
+ ARGIN(char const * const name),
+ int lineno,
+ int takes_args,
+ unsigned initsize)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void new_macro_const(
+ ARGIN(macro_table * const table),
+ ARGIN(char const * const name),
+ ARGIN(char const * const value),
+ int lineno)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+PARROT_MALLOC
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+macro_param * new_macro_param(ARGIN(char const * const value))
+ __attribute__nonnull__(1);
+
+PARROT_MALLOC
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+macro_table * new_macro_table(ARGIN(macro_table * const current))
+ __attribute__nonnull__(1);
+
+void store_macro_char(ARGIN(macro_def * const macro), char c)
+ __attribute__nonnull__(1);
+
+void store_macro_string(
+ ARGIN(macro_def * const macro),
+ ARGIN(char const * const str),
+ ...)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_add_macro_param __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_declare_macro_local __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(macro) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_delete_macro_table __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(table))
+#define ASSERT_ARGS_find_macro __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(table) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_is_macro_local __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(macro) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_new_macro __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(table) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_new_macro_const __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(table) \
+ , PARROT_ASSERT_ARG(name) \
+ , PARROT_ASSERT_ARG(value))
+#define ASSERT_ARGS_new_macro_param __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(value))
+#define ASSERT_ARGS_new_macro_table __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(current))
+#define ASSERT_ARGS_store_macro_char __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(macro))
+#define ASSERT_ARGS_store_macro_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(macro) \
+ , PARROT_ASSERT_ARG(str))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: compilers/pirc/src/pirmacro.c */
#endif /* PARROT_PIR_PIRMACRO_H_GUARD */
Modified: branches/rm_cflags/compilers/pirc/src/pirparser.c
==============================================================================
--- branches/rm_cflags/compilers/pirc/src/pirparser.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/pirc/src/pirparser.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -405,6 +405,111 @@
#endif
+/* HEADERIZER HFILE: none */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static void check_first_arg_direction(
+ lexer_state * const lexer,
+ NOTNULL(char const * const opname))
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static char * concat_strings(
+ NOTNULL(lexer_state * const lexer),
+ NOTNULL(char const * a),
+ NOTNULL(char const * b))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+static void create_if_instr(
+ NOTNULL(lexer_state * const lexer),
+ int invert,
+ int hasnull,
+ NOTNULL(char const * const name),
+ NOTNULL(char const * const label))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(4)
+ __attribute__nonnull__(5);
+
+static void do_strength_reduction(lexer_state * const lexer);
+PARROT_WARN_UNUSED_RESULT
+static int evaluate_i_i(int a, pir_rel_operator op, int b);
+
+PARROT_WARN_UNUSED_RESULT
+static int evaluate_i_n(int a, pir_rel_operator op, double b);
+
+PARROT_WARN_UNUSED_RESULT
+static int evaluate_n_i(double a, pir_rel_operator op, int b);
+
+static void undeclared_symbol(
+ lexer_state * const lexer,
+ char const * const symbol);
+
+static void yy_reduce_print (
+ YYSTYPE *yyvsp,
+ int yyrule,
+ yyscan_t yyscanner,
+ struct lexer_state * const lexer);
+
+static void yy_stack_print (yytype_int16 *bottom, yytype_int16 *top);
+static void yy_symbol_print (
+ FILE *yyoutput,
+ int yytype,
+ YYSTYPE const * const yyvaluep,
+ yyscan_t yyscanner,
+ struct lexer_state * const lexer);
+
+static void yy_symbol_value_print (
+ FILE *yyoutput,
+ int yytype,
+ YYSTYPE const * const yyvaluep,
+ yyscan_t yyscanner,
+ struct lexer_state * const lexer);
+
+static void yydestruct (
+ const char *yymsg,
+ int yytype,
+ YYSTYPE *yyvaluep,
+ yyscan_t yyscanner,
+ struct lexer_state * const lexer);
+
+static int YYID (int i);
+static char * yystpcpy (char *yydest, const char *yysrc);
+static YYSIZE_T yystrlen (const char *yystr);
+static YYSIZE_T yysyntax_error (char *yyresult, int yystate, int yychar);
+static YYSIZE_T yytnamerr (char *yyres, const char *yystr);
+#define ASSERT_ARGS_check_first_arg_direction __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(opname))
+#define ASSERT_ARGS_concat_strings __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(a) \
+ , PARROT_ASSERT_ARG(b))
+#define ASSERT_ARGS_create_if_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name) \
+ , PARROT_ASSERT_ARG(label))
+#define ASSERT_ARGS_do_strength_reduction __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_evaluate_i_i __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_evaluate_i_n __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_evaluate_n_i __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_undeclared_symbol __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yy_reduce_print __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yy_stack_print __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yy_symbol_print __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yy_symbol_value_print __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yydestruct __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_YYID __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yystpcpy __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yystrlen __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yysyntax_error __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_yytnamerr __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
char *expand_macro(yyscan_t yyscanner, macro_def * const macro, macro_param * args);
/* Enumeration of mathematical operator types; these are used to index the opnames array. */
@@ -5450,8 +5555,7 @@
/*
-=item C<static int
-evaluate_i_i(int a, pir_rel_operator op, double b)>
+=item C<static int evaluate_i_i(int a, pir_rel_operator op, int b)>
Compare C<a> with C<b> according to the relational operator C<op>.
Wrapper for C<evaluate_n_n>, which takes arguments of type double.
@@ -5467,8 +5571,7 @@
/*
-=item C<static int
-evaluate_n_i(int a, pir_rel_operator op, double b)>
+=item C<static int evaluate_n_i(double a, pir_rel_operator op, int b)>
Compare C<a> with C<b> according to the relational operator C<op>.
Wrapper for C<evaluate_n_n>, which takes arguments of type double.
@@ -5484,8 +5587,7 @@
/*
-=item C<static int
-evaluate_i_n(int a, pir_rel_operator op, double b)>
+=item C<static int evaluate_i_n(int a, pir_rel_operator op, double b)>
Compare C<a> with C<b> according to the relational operator C<op>.
Wrapper for C<evaluate_n_n>, which takes arguments of type double.
@@ -5633,8 +5735,8 @@
/*
-=item C<static char *
-concat_strings(lexer_state * const lexer, char const *a, char const *b)>
+=item C<static char * concat_strings(lexer_state * const lexer, char const * a,
+char const * b)>
Concatenates two strings into a new buffer. The new string is returned.
@@ -5659,9 +5761,8 @@
/*
-=item C<static void
-create_if_instr(lexer_state *lexer, int invert, int hasnull,
- char * const name, char * const label)>
+=item C<static void create_if_instr(lexer_state * const lexer, int invert, int
+hasnull, char const * const name, char const * const label)>
Create an C<if> or C<unless> instruction; if C<invert> is non-zero (true), the
C<if> instruction is inverted, effectively becoming C<unless>.
@@ -5908,8 +6009,7 @@
/*
-=item C<static void
-do_strength_reduction(lexer_state * const lexer)>
+=item C<static void do_strength_reduction(lexer_state * const lexer)>
Implement strength reduction for the math operators C<add>, C<sub>, C<mul>, C<div> and C<fdiv>.
If the current instruction is any of these, then the first two operands are checked; if both
@@ -6043,8 +6143,8 @@
/*
-=item C<static void
-check_first_arg_direction(lexer_state * const lexer, char * const opname)>
+=item C<static void check_first_arg_direction(lexer_state * const lexer, char
+const * const opname)>
This function checks the first argument's direction of the op C<opname>.
If the direction is not C<OUT>, a syntax error is emitted. This function assumes
@@ -6217,8 +6317,8 @@
/*
-=item C<static void
-undeclared_symbol(lexer_state * const lexer, char * const symbol)>
+=item C<static void undeclared_symbol(lexer_state * const lexer, char const *
+const symbol)>
Report an error message saying that C<symbol> was not declared. Then test
whether the symbol is perhaps a PASM register identifier. The user may have
Modified: branches/rm_cflags/compilers/pirc/src/pirpcc.c
==============================================================================
--- branches/rm_cflags/compilers/pirc/src/pirpcc.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/pirc/src/pirpcc.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -25,14 +25,163 @@
#include "parrot/oplib/ops.h"
+/* HEADERIZER HFILE: compilers/pirc/src/pirpcc.h */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static void add_alias_operand(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(PMC *array),
+ int index,
+ ARGIN(char const * const alias))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(4);
+
+static void arguments_to_operands(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(argument * const args),
+ unsigned num_arguments)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static int calculate_pcc_argument_flags(ARGIN(argument * const arg))
+ __attribute__nonnull__(1);
+
+static int calculate_pcc_target_flags(ARGIN(target * const result))
+ __attribute__nonnull__(1);
+
+static void convert_nci_call(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void convert_pcc_call(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void convert_pcc_methodcall(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void convert_pcc_methodtailcall(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void convert_pcc_return(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void convert_pcc_tailcall(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void convert_pcc_yield(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static int generate_signature_pmc(
+ ARGIN(lexer_state * const lexer),
+ unsigned size)
+ __attribute__nonnull__(1);
+
+PARROT_CANNOT_RETURN_NULL
+static target * generate_unique_pir_reg(
+ ARGIN(lexer_state * const lexer),
+ pir_type type)
+ __attribute__nonnull__(1);
+
+PARROT_CANNOT_RETURN_NULL
+static target * get_invoked_sub(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(target * const sub))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void save_global_reference(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr),
+ ARGIN(char const * const label))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+static void targets_to_operands(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(target * const targets),
+ unsigned num_targets)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_add_alias_operand __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(array) \
+ , PARROT_ASSERT_ARG(alias))
+#define ASSERT_ARGS_arguments_to_operands __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(args))
+#define ASSERT_ARGS_calculate_pcc_argument_flags __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(arg))
+#define ASSERT_ARGS_calculate_pcc_target_flags __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(result))
+#define ASSERT_ARGS_convert_nci_call __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_convert_pcc_call __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_convert_pcc_methodcall __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_convert_pcc_methodtailcall __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_convert_pcc_return __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_convert_pcc_tailcall __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_convert_pcc_yield __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_generate_signature_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_generate_unique_pir_reg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_get_invoked_sub __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(sub))
+#define ASSERT_ARGS_save_global_reference __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(instr) \
+ , PARROT_ASSERT_ARG(label))
+#define ASSERT_ARGS_targets_to_operands __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(targets))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
/*
=over 4
-=item C<static int
-calculate_pcc_target_flags(target * const result)>
+=item C<static int calculate_pcc_target_flags(target * const result)>
Calculate Parrot Calling Conventions flags for the target node
C<result>.
@@ -41,7 +190,9 @@
*/
static int
-calculate_pcc_target_flags(target * const result) {
+calculate_pcc_target_flags(ARGIN(target * const result))
+{
+ ASSERT_ARGS(calculate_pcc_target_flags)
int flag = 0;
@@ -66,8 +217,7 @@
/*
-=item C<static int
-calculate_pcc_argument_flags(argument * const arg)>
+=item C<static int calculate_pcc_argument_flags(argument * const arg)>
Calculate the Parrot Calling Conventions flags for the
argument C<arg>. An int encoding the flags is returned.
@@ -76,7 +226,9 @@
*/
static int
-calculate_pcc_argument_flags(argument * const arg) {
+calculate_pcc_argument_flags(ARGIN(argument * const arg))
+{
+ ASSERT_ARGS(calculate_pcc_argument_flags)
int flag = 0;
switch (arg->value->type) {
@@ -110,8 +262,8 @@
/*
-=item C<static target *
-generate_unique_pir_reg(lexer_state * const lexer, pir_type type)>
+=item C<static target * generate_unique_pir_reg(lexer_state * const lexer,
+pir_type type)>
Generate a unique, temporary PIR register of type C<type>. It uses the C<reg>
constructor to create a target node, and using C<pir_reg_generator>
@@ -123,16 +275,20 @@
=cut
*/
+PARROT_CANNOT_RETURN_NULL
static target *
-generate_unique_pir_reg(lexer_state * const lexer, pir_type type) {
+generate_unique_pir_reg(ARGIN(lexer_state * const lexer), pir_type type)
+{
+ ASSERT_ARGS(generate_unique_pir_reg)
+
return new_reg(lexer, type, --lexer->pir_reg_generator);
}
/*
-=item C<static int
-generate_signature_pmc(lexer_state * const lexer, unsigned size)>
+=item C<static int generate_signature_pmc(lexer_state * const lexer, unsigned
+size)>
Create a FixedIntegerArray PMC object that encodes the types and flags
of parameters and add it to the PBC constant table. The index in that
@@ -142,7 +298,10 @@
*/
static int
-generate_signature_pmc(lexer_state * const lexer, unsigned size) {
+generate_signature_pmc(ARGIN(lexer_state * const lexer), unsigned size)
+{
+ ASSERT_ARGS(generate_signature_pmc)
+
PMC *fixed_int_array;
int array_index;
@@ -161,8 +320,7 @@
/*
-=item C<void
-emit_sub_epilogue(lexer_state * const lexer)>
+=item C<void emit_sub_epilogue(lexer_state * const lexer)>
Emit final instructions for the current subroutine. In case
this is a C<:main> sub, the "end" instruction is emitted,
@@ -172,7 +330,9 @@
*/
void
-emit_sub_epilogue(lexer_state * const lexer) {
+emit_sub_epilogue(ARGIN(lexer_state * const lexer))
+{
+ ASSERT_ARGS(emit_sub_epilogue)
if (TEST_FLAG(lexer->subs->flags, PIRC_SUB_FLAG_MAIN))
new_sub_instr(lexer, PARROT_OP_end, "end", 0);
@@ -188,8 +348,8 @@
/*
-=item C<static void
-add_alias_operand(lexer_state * const lexer, PMC *array, int index, char const * const alias)>
+=item C<static void add_alias_operand(lexer_state * const lexer, PMC *array, int
+index, char const * const alias)>
Add an alias operand to current instruction; C<array> is the signature
array, which must hold the right flags for this new operand (at position C<index>).
@@ -199,8 +359,11 @@
*/
static void
-add_alias_operand(lexer_state * const lexer, PMC *array, int index, char const * const alias) {
- PARROT_ASSERT(alias);
+add_alias_operand(ARGIN(lexer_state * const lexer),
+ ARGIN(PMC *array), int index,
+ ARGIN(char const * const alias))
+{
+ ASSERT_ARGS(add_alias_operand)
/* set flags for being a string constant, and being a :named operand. */
VTABLE_set_integer_keyed_int(lexer->interp, array, index, PARROT_ARG_NAME | PARROT_ARG_SC);
push_operand(lexer, expr_from_string(lexer, alias));
@@ -209,8 +372,8 @@
/*
-=item C<static void
-targets_to_operands(lexer_state * const lexer, target * const targets)>
+=item C<static void targets_to_operands(lexer_state * const lexer, target *
+const targets, unsigned num_targets)>
Convert a list of C<target> nodes into operands. Before the operands
are added to the I<current> instruction, a FixedIntegerArray is created,
@@ -231,7 +394,11 @@
*/
static void
-targets_to_operands(lexer_state * const lexer, target * const targets, unsigned num_targets) {
+targets_to_operands(ARGIN(lexer_state * const lexer),
+ ARGIN(target * const targets), unsigned num_targets)
+{
+ ASSERT_ARGS(targets_to_operands)
+
target *iter;
int array_index;
PMC *signature_array;
@@ -291,8 +458,8 @@
/*
-=item C<static void
-arguments_to_operands(lexer_state * const lexer, argument * const args)>
+=item C<static void arguments_to_operands(lexer_state * const lexer, argument *
+const args, unsigned num_arguments)>
Convert a list of C<argument> nodes into operands. Before the operands are
added to the I<current> instruction, a FixedIntegerArray PMC is created
@@ -303,7 +470,11 @@
*/
static void
-arguments_to_operands(lexer_state * const lexer, argument * const args, unsigned num_arguments) {
+arguments_to_operands(ARGIN(lexer_state * const lexer),
+ ARGIN(argument * const args), unsigned num_arguments)
+{
+ ASSERT_ARGS(arguments_to_operands)
+
argument *argiter;
int array_index;
unsigned i;
@@ -347,8 +518,8 @@
/*
-=item C<void
-generate_parameters_instr(lexer_state * const lexer, unsigned num_parameters)>
+=item C<void generate_parameters_instr(lexer_state * const lexer, unsigned
+num_parameters)>
Generate the "get_params" instruction, taking <num_parameters> variable arguments;
this is the number of parameters of this function.
@@ -357,7 +528,9 @@
*/
void
-generate_parameters_instr(lexer_state * const lexer, unsigned num_parameters) {
+generate_parameters_instr(ARGIN(lexer_state * const lexer), unsigned num_parameters)
+{
+ ASSERT_ARGS(generate_parameters_instr)
if (TEST_FLAG(CURRENT_SUB(lexer)->flags , (PIRC_SUB_FLAG_METHOD | PIRC_SUB_FLAG_VTABLE))) {
++num_parameters; /* didn't count implicit "self" parameter yet. */
}
@@ -372,8 +545,8 @@
/*
-=item C<void
-generate_getresults_instr(lexer_state * const lexer, target * const targetlist)>
+=item C<void generate_getresults_instr(lexer_state * const lexer, target * const
+targetlist)>
Generate instruction for the C<.get_results> statement.
@@ -381,7 +554,10 @@
*/
void
-generate_getresults_instr(lexer_state * const lexer, target * const targetlist) {
+generate_getresults_instr(ARGIN(lexer_state * const lexer),
+ ARGIN(target * const targetlist))
+{
+ ASSERT_ARGS(generate_getresults_instr)
/* add this point we know that there's only 1 target, as that's the convention for
* exception handlers:
*
@@ -397,9 +573,8 @@
/*
-=item C<static void
-save_global_reference(lexer_state * const lexer, instruction * const instr,
- char const * const label)>
+=item C<static void save_global_reference(lexer_state * const lexer, instruction
+* const instr, char const * const label)>
Store the instruction C<instr>, which references the global label C<label> in a list.
After the parse phase, this instruction can be patched, if C<label> can be resolved
@@ -409,10 +584,12 @@
*/
static void
-save_global_reference(lexer_state * const lexer, instruction * const instr,
- char const * const label)
-
+save_global_reference(ARGIN(lexer_state * const lexer),
+ ARGIN(instruction * const instr),
+ ARGIN(char const * const label))
{
+ ASSERT_ARGS(save_global_reference)
+
global_fixup *ref = pir_mem_allocate_zeroed_typed(lexer, global_fixup);
ref->instr = instr;
@@ -425,8 +602,8 @@
/*
-=item C<static target *
-get_invoked_sub(lexer_state * const lexer, target * const sub)>
+=item C<static target * get_invoked_sub(lexer_state * const lexer, target *
+const sub)>
Return a C<target> node that represents the sub to invoke.
If C<sub> is a register, that is returned. If it's a declared C<.local>,
@@ -439,8 +616,12 @@
=cut
*/
+PARROT_CANNOT_RETURN_NULL
static target *
-get_invoked_sub(lexer_state * const lexer, target * const sub) {
+get_invoked_sub(ARGIN(lexer_state * const lexer),
+ ARGIN(target * const sub))
+{
+ ASSERT_ARGS(get_invoked_sub)
target *subreg = NULL;
symbol *sym = NULL;
global_label *glob = NULL;
@@ -494,8 +675,8 @@
/*
-=item C<static void
-convert_pcc_call(lexer_state * const lexer, invocation * const inv)>
+=item C<static void convert_pcc_call(lexer_state * const lexer, invocation *
+const inv)>
Generate instructions for a normal invocation using the Parrot Calling
Conventions (PCC). This is the sequence of the following instructions:
@@ -517,7 +698,11 @@
*/
static void
-convert_pcc_call(lexer_state * const lexer, invocation * const inv) {
+convert_pcc_call(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+{
+ ASSERT_ARGS(convert_pcc_call)
+
target *sub;
new_sub_instr(lexer, PARROT_OP_set_args_pc, "set_args_pc", inv->num_arguments);
@@ -541,8 +726,8 @@
/*
-=item C<static void
-convert_pcc_tailcall(lexer_state * const lexer, invocation * const inv)>
+=item C<static void convert_pcc_tailcall(lexer_state * const lexer, invocation *
+const inv)>
Generate instructions for a tailcall using the Parrot Calling Conventions (PCC).
The sequence of instructions is:
@@ -554,7 +739,11 @@
*/
static void
-convert_pcc_tailcall(lexer_state * const lexer, invocation * const inv) {
+convert_pcc_tailcall(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+{
+ ASSERT_ARGS(convert_pcc_tailcall)
+
target *sub;
new_sub_instr(lexer, PARROT_OP_set_args_pc, "set_args_pc", inv->num_arguments);
@@ -568,8 +757,8 @@
/*
-=item C<static void
-convert_pcc_return(lexer_state * const lexer, invocation * const inv)>
+=item C<static void convert_pcc_return(lexer_state * const lexer, invocation *
+const inv)>
Generate instructions for a normal return statement using the Parrot Calling
Conventions (PCC). The sequence of instructions is:
@@ -581,7 +770,11 @@
*/
static void
-convert_pcc_return(lexer_state * const lexer, invocation * const inv) {
+convert_pcc_return(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+{
+ ASSERT_ARGS(convert_pcc_return)
+
new_sub_instr(lexer, PARROT_OP_set_returns_pc, "set_returns_pc", inv->num_arguments);
arguments_to_operands(lexer, inv->arguments, inv->num_arguments);
new_sub_instr(lexer, PARROT_OP_returncc, "returncc", 0);
@@ -589,8 +782,8 @@
/*
-=item C<static void
-convert_nci_call(lexer_state * const lexer, invocation * const inv)>
+=item C<static void convert_nci_call(lexer_state * const lexer, invocation *
+const inv)>
Generate instructions for a function invocation using the Native Call
Interface (NCI). The sequence of instructions is:
@@ -603,7 +796,11 @@
*/
static void
-convert_nci_call(lexer_state * const lexer, invocation * const inv) {
+convert_nci_call(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+{
+ ASSERT_ARGS(convert_nci_call)
+
target *sub;
new_sub_instr(lexer, PARROT_OP_set_args_pc, "set_args_pc", inv->num_arguments);
@@ -620,8 +817,8 @@
/*
-=item C<static void
-convert_pcc_yield(lexer_state * const lexer, invocation * const inv)>
+=item C<static void convert_pcc_yield(lexer_state * const lexer, invocation *
+const inv)>
Generate instructions for a yield statement using the Parrot Calling Conventions.
The sequence of instructions is:
@@ -633,7 +830,11 @@
*/
static void
-convert_pcc_yield(lexer_state * const lexer, invocation * const inv) {
+convert_pcc_yield(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+{
+ ASSERT_ARGS(convert_pcc_yield)
+
new_sub_instr(lexer, PARROT_OP_set_returns_pc, "set_returns_pc", inv->num_arguments);
arguments_to_operands(lexer, inv->arguments, inv->num_arguments);
new_sub_instr(lexer, PARROT_OP_yield, "yield", 0);
@@ -642,8 +843,8 @@
/*
-=item C<static void
-convert_pcc_methodcall(lexer_state * const lexer, invocation * const inv)>
+=item C<static void convert_pcc_methodcall(lexer_state * const lexer, invocation
+* const inv)>
Generate instructions for a method call using the Parrot Calling Conventions (PCC).
The sequence of instructions is:
@@ -656,7 +857,11 @@
*/
static void
-convert_pcc_methodcall(lexer_state * const lexer, invocation * const inv) {
+convert_pcc_methodcall(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+{
+ ASSERT_ARGS(convert_pcc_methodcall)
+
/* in a methodcall, the invocant object is passed as the first argument */
unshift_arg(inv, new_argument(lexer, expr_from_target(lexer, inv->sub)));
new_sub_instr(lexer, PARROT_OP_set_args_pc, "set_args_pc", inv->num_arguments);
@@ -673,8 +878,8 @@
/*
-=item C<static void
-convert_pcc_methodtailcall(lexer_state * const lexer, invocation * const inv)>
+=item C<static void convert_pcc_methodtailcall(lexer_state * const lexer,
+invocation * const inv)>
Generate instructions for a method tailcall, using the Parrot Calling Conventions (PCC).
The sequence of instructions is:
@@ -686,7 +891,11 @@
*/
static void
-convert_pcc_methodtailcall(lexer_state * const lexer, invocation * const inv) {
+convert_pcc_methodtailcall(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+{
+ ASSERT_ARGS(convert_pcc_methodtailcall)
+
unshift_arg(inv, new_argument(lexer, expr_from_target(lexer, inv->sub)));
new_sub_instr(lexer, PARROT_OP_set_args_pc, "set_args_pc", inv->num_arguments);
@@ -712,8 +921,8 @@
/*
-=item C<void
-convert_inv_to_instr(lexer_state * const lexer, invocation * const inv)>
+=item C<void convert_inv_to_instr(lexer_state * const lexer, invocation * const
+inv)>
Convert an C<invocation> structure into a series of instructions. This is the
dispatch function, which calls the appropriate conversion function, based
@@ -723,7 +932,10 @@
*/
void
-convert_inv_to_instr(lexer_state * const lexer, invocation * const inv) {
+convert_inv_to_instr(ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+{
+ ASSERT_ARGS(convert_inv_to_instr)
switch (inv->type) {
case CALL_PCC:
convert_pcc_call(lexer, inv);
Modified: branches/rm_cflags/compilers/pirc/src/pirpcc.h
==============================================================================
--- branches/rm_cflags/compilers/pirc/src/pirpcc.h Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/pirc/src/pirpcc.h Tue Feb 16 21:05:51 2010 (r44046)
@@ -9,10 +9,41 @@
#include "pircompunit.h"
#include "pircompiler.h"
-void convert_inv_to_instr(struct lexer_state * const lexer, invocation * const inv);
-void generate_parameters_instr(struct lexer_state * const lexer, unsigned num_parameters);
-void generate_getresults_instr(struct lexer_state * const lexer, target * const targetlist);
-void emit_sub_epilogue(struct lexer_state * const lexer);
+/* HEADERIZER BEGIN: compilers/pirc/src/pirpcc.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+void convert_inv_to_instr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(invocation * const inv))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void emit_sub_epilogue(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+void generate_getresults_instr(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(target * const targetlist))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void generate_parameters_instr(
+ ARGIN(lexer_state * const lexer),
+ unsigned num_parameters)
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_convert_inv_to_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(inv))
+#define ASSERT_ARGS_emit_sub_epilogue __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_generate_getresults_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(targetlist))
+#define ASSERT_ARGS_generate_parameters_instr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: compilers/pirc/src/pirpcc.c */
#endif /* PARROT_PIR_PIRPCC_H_GUARD */
Modified: branches/rm_cflags/compilers/pirc/src/pirregalloc.c
==============================================================================
--- branches/rm_cflags/compilers/pirc/src/pirregalloc.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/pirc/src/pirregalloc.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -47,8 +47,7 @@
/*
-=item C<static void
-reset_register_count(lsr_allocator * const lsr)>
+=item C<static void reset_register_count(lsr_allocator * const lsr)>
Reset the register counters; there's one counter for each register
type (string, num, int, pmc).
@@ -57,7 +56,9 @@
*/
static void
-reset_register_count(lsr_allocator * const lsr) {
+reset_register_count(ARGIN(lsr_allocator * const lsr))
+{
+ ASSERT_ARGS(reset_register_count)
int i;
/* the "r" field keeps track of the number of registers that must be allocated by
* parrot. In the original implementation, "r" is constant, and indicates the number
@@ -70,10 +71,85 @@
lsr->r[i] = 1;
}
+/* HEADERIZER HFILE: compilers/pirc/src/pirregalloc.h */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static void add_free_reg(
+ ARGIN(lsr_allocator * const lsr),
+ unsigned regno,
+ pir_type type)
+ __attribute__nonnull__(1);
+
+static void add_interval_to_active(
+ ARGIN(lsr_allocator *lsr),
+ ARGIN(live_interval * const i),
+ pir_type type)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void add_live_interval(
+ ARGIN(lsr_allocator * const lsr),
+ ARGIN(live_interval * const i),
+ pir_type type)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void cache_interval_object(
+ ARGIN(lsr_allocator * const lsr),
+ ARGIN(live_interval * interval))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void expire_old_intervals(
+ ARGIN(lsr_allocator * const lsr),
+ ARGIN(live_interval * const i),
+ pir_type type)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static unsigned get_free_reg(
+ ARGIN(lsr_allocator * const lsr),
+ pir_type type)
+ __attribute__nonnull__(1);
+
+static unsigned lengthi(ARGIN_NULLOK(live_interval *list));
+static void remove_from_active(ARGMOD(live_interval *i))
+ __attribute__nonnull__(1)
+ FUNC_MODIFIES(*i);
+
+static void reset_register_count(ARGIN(lsr_allocator * const lsr))
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_add_free_reg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr))
+#define ASSERT_ARGS_add_interval_to_active __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_add_live_interval __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_cache_interval_object __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr) \
+ , PARROT_ASSERT_ARG(interval))
+#define ASSERT_ARGS_expire_old_intervals __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_get_free_reg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr))
+#define ASSERT_ARGS_lengthi __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_remove_from_active __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_reset_register_count __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
/*
-=item C<lsr_allocator *
-new_linear_scan_register_allocator(struct lexer_state * lexer)>
+=item C<lsr_allocator * new_linear_scan_register_allocator(struct lexer_state
+*lexer)>
Constructor for a linear scan register allocator.
Initializes the allocator, and returns it.
@@ -81,8 +157,11 @@
=cut
*/
+PARROT_CAN_RETURN_NULL
lsr_allocator *
-new_linear_scan_register_allocator(struct lexer_state *lexer) {
+new_linear_scan_register_allocator(ARGIN_NULLOK(struct lexer_state *lexer))
+{
+ ASSERT_ARGS(new_linear_scan_register_allocator)
lsr_allocator *lsr = (lsr_allocator *)mem_sys_allocate_zeroed(sizeof (lsr_allocator));
lsr->lexer = lexer;
@@ -97,7 +176,8 @@
*/
void print_list(char *msg, live_interval *i);
void
-print_list(char *msg, live_interval *i) {
+print_list(ARGIN(char *msg), ARGIN(live_interval *i))
+{
fprintf(stderr, "%s: ", msg);
while (i) {
fprintf(stderr, "[%d] ", i->endpoint);
@@ -108,8 +188,7 @@
/*
-=item C<void
-destroy_linear_scan_register_allocator(lsr_allocator *lsr)>
+=item C<void destroy_linear_scan_register_allocator(lsr_allocator *lsr)>
Destructor for linear scan register allocator. All live_interval
objects are destroyed as well.
@@ -118,7 +197,9 @@
*/
void
-destroy_linear_scan_register_allocator(lsr_allocator *lsr) {
+destroy_linear_scan_register_allocator(ARGMOD(lsr_allocator *lsr))
+{
+ ASSERT_ARGS(destroy_linear_scan_register_allocator)
pir_type type;
live_interval *i;
@@ -143,12 +224,18 @@
/*
+=item C<static unsigned lengthi(live_interval *list)>
+
XXX debug function only.
Return length of list C<list>
+=cut
+
*/
static unsigned
-lengthi(live_interval *list) {
+lengthi(ARGIN_NULLOK(live_interval *list))
+{
+ ASSERT_ARGS(lengthi)
unsigned len = 0;
while (list) {
@@ -160,8 +247,8 @@
/*
-=item C<static void
-add_live_interval(lsr_allocator * const lsr, live_interval * const i, pir_type type)>
+=item C<static void add_live_interval(lsr_allocator * const lsr, live_interval *
+const i, pir_type type)>
Add live_interval C<i> to the list; this list is sorted on increasing
start point.
@@ -170,7 +257,10 @@
*/
static void
-add_live_interval(lsr_allocator * const lsr, live_interval * const i, pir_type type) {
+add_live_interval(ARGIN(lsr_allocator * const lsr),
+ ARGIN(live_interval * const i), pir_type type)
+{
+ ASSERT_ARGS(add_live_interval)
live_interval *iter = lsr->intervals[type];
/* if there's no interval for the specified type, insert i as the first one and return */
@@ -234,8 +324,8 @@
/*
-=item C<live_interval *
-new_live_interval(lsr_allocator * const lsr, unsigned firstuse_location, pir_type type)>
+=item C<live_interval * new_live_interval(lsr_allocator * const lsr, unsigned
+firstuse_location, pir_type type)>
Constructor for a live_interval struct object. After creating the new interval object,
its startpoint and endpoint are initialized to the value in C<firstuse_location>. Note
@@ -247,10 +337,14 @@
=cut
*/
+PARROT_CAN_RETURN_NULL
PARROT_MALLOC
PARROT_WARN_UNUSED_RESULT
live_interval *
-new_live_interval(lsr_allocator * const lsr, unsigned firstuse_location, pir_type type) {
+new_live_interval(ARGIN(lsr_allocator * const lsr),
+ unsigned firstuse_location, pir_type type)
+{
+ ASSERT_ARGS(new_live_interval)
live_interval *i;
/* check whether there's an interval object that we can re-use, to prevent
* memory malloc() and free()s.
@@ -283,8 +377,8 @@
/*
-=item C<static void
-add_interval_to_active(lsr_allocator *lsr, live_interval * i, pir_type type)>
+=item C<static void add_interval_to_active(lsr_allocator *lsr, live_interval *
+const i, pir_type type)>
Add interval C<i> to the list of active intervals; the list is sorted
on increasing endpoint.
@@ -293,7 +387,10 @@
*/
static void
-add_interval_to_active(lsr_allocator *lsr, live_interval * const i, pir_type type) {
+add_interval_to_active(ARGIN(lsr_allocator *lsr),
+ ARGIN(live_interval * const i), pir_type type)
+{
+ ASSERT_ARGS(add_interval_to_active)
live_interval *iter = lsr->active[type];
/* if there's no active intervals, set i as first */
@@ -351,8 +448,7 @@
/*
-=item C<static unsigned
-get_free_reg(lsr_allocator * const lsr, pir_type type)>
+=item C<static unsigned get_free_reg(lsr_allocator * const lsr, pir_type type)>
Allocate a new register; if there's any old registers to be reused, return
such a second-hand register; otherwise, allocate a brand new one.
@@ -361,7 +457,9 @@
*/
static unsigned
-get_free_reg(lsr_allocator * const lsr, pir_type type) {
+get_free_reg(ARGIN(lsr_allocator * const lsr), pir_type type)
+{
+ ASSERT_ARGS(get_free_reg)
/* if there's any second hand register for the requested type, return that. */
if (lsr->free_regs[type]) {
free_reg *available = lsr->free_regs[type];
@@ -388,8 +486,8 @@
/*
-=item C<static void
-add_free_reg(lsr_allocator * const lsr, unsigned regno, pir_type type)>
+=item C<static void add_free_reg(lsr_allocator * const lsr, unsigned regno,
+pir_type type)>
Add register C<regno> to the list of free regs that can be reuse.
@@ -397,7 +495,10 @@
*/
static void
-add_free_reg(lsr_allocator * const lsr, unsigned regno, pir_type type) {
+add_free_reg(ARGIN(lsr_allocator * const lsr), unsigned regno, pir_type type)
+{
+ ASSERT_ARGS(add_free_reg)
+
free_reg *reg;
/* fprintf(stderr, "add_free_reg(): %u\n", regno); */
@@ -422,8 +523,7 @@
/*
-=item C<static void
-remove_from_active(live_interval *i)>
+=item C<static void remove_from_active(live_interval *i)>
Remove interval C<i> from the list of active intervals.
@@ -431,7 +531,9 @@
*/
static void
-remove_from_active(live_interval *i) {
+remove_from_active(ARGMOD(live_interval *i))
+{
+ ASSERT_ARGS(remove_from_active)
/* if it has a previous node, that previous node's next is set
* to i's next.
*/
@@ -448,8 +550,8 @@
/*
-=item C<static void
-expire_old_intervals(lsr_allocator * const lsr, live_interval * i, pir_type type)>
+=item C<static void expire_old_intervals(lsr_allocator * const lsr,
+live_interval * const i, pir_type type)>
Go over all active intervals; if the endpoint of one of them is >= than
C<i>'s start point, the action is aborted. This is why the C<active> list must be
@@ -460,7 +562,11 @@
*/
static void
-expire_old_intervals(lsr_allocator * const lsr, live_interval * const i, pir_type type) {
+expire_old_intervals(ARGIN(lsr_allocator * const lsr),
+ ARGIN(live_interval * const i), pir_type type)
+{
+ ASSERT_ARGS(expire_old_intervals)
+
live_interval *j;
for (j = lsr->active[type]; j != NULL; j = j->nexta) {
@@ -479,8 +585,8 @@
/*
-=item C<static void
-cache_interval_objects(lsr_allocator * const lsr, live_interval * interval)>
+=item C<static void cache_interval_object(lsr_allocator * const lsr,
+live_interval * interval)>
Store the interval C<interval> on a caching list; whenever a new C<live_interval>
object is requested, these interval objects can be re-used, instead of malloc()ing
@@ -490,15 +596,17 @@
*/
static void
-cache_interval_object(lsr_allocator * const lsr, live_interval * interval) {
+cache_interval_object(ARGIN(lsr_allocator * const lsr),
+ ARGIN(live_interval * interval))
+{
+ ASSERT_ARGS(cache_interval_object)
interval->nextc = lsr->cached_intervals;
lsr->cached_intervals = interval;
}
/*
-=item C<void
-linear_scan_register_allocation(lsr_allocator * const lsr)>
+=item C<void linear_scan_register_allocation(lsr_allocator * const lsr)>
Go over all live intervals; before handling any interval, expire all old ones;
they might have expired (see expire_old_intervals()). Then, allocate a new
@@ -508,7 +616,9 @@
*/
void
-linear_scan_register_allocation(lsr_allocator * const lsr) {
+linear_scan_register_allocation(ARGIN(lsr_allocator * const lsr))
+{
+ ASSERT_ARGS(linear_scan_register_allocation)
live_interval * i;
pir_type type = 0; /* types run from 0 to 4; see pircompunit.h */
Modified: branches/rm_cflags/compilers/pirc/src/pirregalloc.h
==============================================================================
--- branches/rm_cflags/compilers/pirc/src/pirregalloc.h Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/pirc/src/pirregalloc.h Tue Feb 16 21:05:51 2010 (r44046)
@@ -84,13 +84,41 @@
} lsr_allocator;
-lsr_allocator *new_linear_scan_register_allocator(struct lexer_state *lexer);
+/* HEADERIZER BEGIN: compilers/pirc/src/pirregalloc.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-void destroy_linear_scan_register_allocator(lsr_allocator *lsr);
-
-live_interval * new_live_interval(lsr_allocator * const lsr, unsigned firstuse, pir_type type);
-
-void linear_scan_register_allocation(lsr_allocator * const lsr);
+void destroy_linear_scan_register_allocator(ARGMOD(lsr_allocator *lsr))
+ __attribute__nonnull__(1)
+ FUNC_MODIFIES(*lsr);
+
+void linear_scan_register_allocation(ARGIN(lsr_allocator * const lsr))
+ __attribute__nonnull__(1);
+
+PARROT_CAN_RETURN_NULL
+lsr_allocator * new_linear_scan_register_allocator(
+ ARGIN_NULLOK(struct lexer_state *lexer));
+
+PARROT_CAN_RETURN_NULL
+PARROT_MALLOC
+PARROT_WARN_UNUSED_RESULT
+live_interval * new_live_interval(
+ ARGIN(lsr_allocator * const lsr),
+ unsigned firstuse_location,
+ pir_type type)
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_destroy_linear_scan_register_allocator \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr))
+#define ASSERT_ARGS_linear_scan_register_allocation \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr))
+#define ASSERT_ARGS_new_linear_scan_register_allocator \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_new_live_interval __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lsr))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: compilers/pirc/src/pirregalloc.c */
#endif /* PARROT_PIR_PIRREGALLOC_H_GUARD */
Modified: branches/rm_cflags/compilers/pirc/src/pirsymbol.c
==============================================================================
--- branches/rm_cflags/compilers/pirc/src/pirsymbol.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/pirc/src/pirsymbol.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -11,7 +11,6 @@
#include <string.h>
#include <stdio.h>
-
/*
=head1 NAME
@@ -49,6 +48,61 @@
*/
+/* HEADERIZER HFILE: compilers/pirc/src/pirsymbol.h */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static global_label * new_global_label(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static local_label * new_local_label(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name),
+ unsigned offset)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static pir_reg * new_pir_reg(
+ ARGIN(lexer_state * const lexer),
+ pir_type type,
+ int regno)
+ __attribute__nonnull__(1);
+
+static int next_register(ARGIN(lexer_state * const lexer), pir_type type)
+ __attribute__nonnull__(1);
+
+static int use_register(
+ ARGIN(lexer_state * const lexer),
+ pir_type type,
+ int regno,
+ int pasmregno)
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_new_global_label __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_new_local_label __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_new_pir_reg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_next_register __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_use_register __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
/* Conversion Look-Up Table (CLUT) for pir_type and value_type enums.
@@ -83,8 +137,7 @@
/*
-=item C<static int
-next_register(lexer_state * const lexer, pir_type type)>
+=item C<static int next_register(lexer_state * const lexer, pir_type type)>
Returns a new register of the specified type.
This is the vanilla register allocator.
@@ -93,7 +146,10 @@
*/
static int
-next_register(NOTNULL(lexer_state * const lexer), pir_type type) {
+next_register(ARGIN(lexer_state * const lexer), pir_type type)
+{
+ ASSERT_ARGS(next_register)
+
CURRENT_SUB(lexer)->info.regs_used[type]++; /* count number of registers used */
/* fprintf(stderr, "vanilla reg: %d of type %d\n", lexer->curregister[type], type); */
return lexer->curregister[type]++;
@@ -102,8 +158,8 @@
/*
-=item C<void
-assign_vanilla_register(lexer_state * const lexer, symbol * const sym)>
+=item C<void assign_vanilla_register(lexer_state * const lexer, symbol * const
+sym)>
Assign a new register to symbol C<sym>, and create a new live interval for C<sym>.
@@ -111,7 +167,10 @@
*/
void
-assign_vanilla_register(NOTNULL(lexer_state * const lexer), symbol * const sym) {
+assign_vanilla_register(ARGIN(lexer_state * const lexer),
+ ARGIN(symbol * const sym))
+{
+ ASSERT_ARGS(assign_vanilla_register)
sym->info.color = next_register(lexer, sym->info.type);
/* fprintf(stderr, "assigning vanilla reg %d to symbol %s\n", sym->info.color,
sym->info.id.name);
@@ -135,8 +194,7 @@
/*
-=item C<static unsigned
-get_hashcode(char const * const str, unsigned num_buckets)>
+=item C<unsigned get_hashcode(char const * const str, unsigned num_buckets)>
Calculate the hash code for the string C<str>.
This code is taken from IMCC.
@@ -147,7 +205,9 @@
PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
unsigned
-get_hashcode(NOTNULL(char const * const str), unsigned num_buckets) {
+get_hashcode(ARGIN(char const * const str), unsigned num_buckets)
+{
+ ASSERT_ARGS(get_hashcode)
unsigned long key = 0;
char const *s;
@@ -159,8 +219,8 @@
/*
-=item C<void
-store_bucket(hashtable * const table, bucket * const buck, unsigned long hash)>
+=item C<void store_bucket(hashtable * const table, bucket * const buck, unsigned
+long hash)>
Store the bucket C<buck> in the hashtable C<table> at index C<hash>.
@@ -168,15 +228,17 @@
*/
void
-store_bucket(NOTNULL(hashtable * const table), NOTNULL(bucket * const buck), unsigned long hash) {
+store_bucket(ARGIN(hashtable * const table),
+ ARGIN(bucket * const buck), unsigned long hash)
+{
+ ASSERT_ARGS(store_bucket)
buck->next = table->contents[hash];
table->contents[hash] = buck;
}
/*
-=item C<bucket *
-get_bucket(hashtable * const table, unsigned long hash)>
+=item C<bucket * get_bucket(hashtable * const table, unsigned long hash)>
Return the bucket at hash index C<hash> from the hashtable C<table>.
@@ -186,14 +248,16 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
bucket *
-get_bucket(NOTNULL(hashtable * const table), unsigned long hash) {
+get_bucket(ARGIN(hashtable * const table), unsigned long hash)
+{
+ ASSERT_ARGS(get_bucket)
return table->contents[hash];
}
/*
-=item C<symbol *
-new_symbol(lexer_state * const lexer, char const * const name, pir_type type)>
+=item C<symbol * new_symbol(lexer_state * const lexer, char const * const name,
+pir_type type)>
Create a new symbol node, returns it after initialization.
@@ -203,7 +267,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
symbol *
-new_symbol(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const name), pir_type type) {
+new_symbol(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name), pir_type type)
+{
+ ASSERT_ARGS(new_symbol)
symbol *sym = pir_mem_allocate_zeroed_typed(lexer, symbol);
sym->info.id.name = name;
@@ -216,8 +283,8 @@
/*
-=item C<void
-declare_local(lexer_state * const lexer, pir_type type, symbol * const list)>
+=item C<void declare_local(lexer_state * const lexer, pir_type type, symbol *
+const list)>
Declare the local variables in the list pointed to by C<list>, all of which
are of the type C<type>. The variables are entered into the symbol table for
@@ -228,9 +295,10 @@
*/
void
-declare_local(NOTNULL(lexer_state * const lexer), pir_type type,
- NOTNULL(symbol * const list))
+declare_local(ARGIN(lexer_state * const lexer), pir_type type,
+ ARGIN(symbol * const list))
{
+ ASSERT_ARGS(declare_local)
symbol *iter = list;
hashtable *table = &CURRENT_SUB(lexer)->symbols;
@@ -272,8 +340,7 @@
/*
-=item C<void
-check_unused_symbols(lexer_state * const lexer)>
+=item C<void check_unused_symbols(lexer_state * const lexer)>
Check all subroutines for unused symbols. If a symbol is declared but
never used, a warning message is printed to C<stderr>. If there's
@@ -283,7 +350,9 @@
*/
void
-check_unused_symbols(NOTNULL(lexer_state * const lexer)) {
+check_unused_symbols(ARGIN(lexer_state * const lexer))
+{
+ ASSERT_ARGS(check_unused_symbols)
subroutine *subiter;
/* if there's no subs, just return. */
@@ -317,8 +386,8 @@
/*
-=item C<symbol *
-find_symbol(lexer_state * const lexer, char const * const name)>
+=item C<symbol * find_symbol(lexer_state * const lexer, char const * const
+name)>
Return the node for the symbol or NULL if the symbol
is not defined. If an attempt is made to find a symbol,
@@ -331,7 +400,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
symbol *
-find_symbol(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const name)) {
+find_symbol(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(find_symbol)
hashtable *table = &CURRENT_SUB(lexer)->symbols;
unsigned long hashcode = get_hashcode(name, table->size);
bucket *buck = get_bucket(table, hashcode);
@@ -369,8 +441,8 @@
/*
-=item C<static pir_reg *
-new_pir_reg(lexer_state * const lexer, pir_type type, int regno)>
+=item C<static pir_reg * new_pir_reg(lexer_state * const lexer, pir_type type,
+int regno)>
Create a new PIR register node representing PIR/symbolic register
identified by C<regno> and of type C<type>.
@@ -381,7 +453,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static pir_reg *
-new_pir_reg(NOTNULL(lexer_state * const lexer), pir_type type, int regno) {
+new_pir_reg(ARGIN(lexer_state * const lexer), pir_type type, int regno)
+{
+ ASSERT_ARGS(new_pir_reg)
pir_reg *r = pir_mem_allocate_zeroed_typed(lexer, pir_reg);
r->info.type = type;
@@ -395,8 +469,8 @@
/*
-=item C<pir_reg *
-find_register(lexer_state * const lexer, pir_type type, int regno)>
+=item C<pir_reg * find_register(lexer_state * const lexer, pir_type type, int
+regno)>
Find (symbolic) register no. C<regno> of type C<type>. If it's found,
a pointer to it is returned, if not, NULL is returned.
@@ -407,7 +481,9 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
pir_reg *
-find_register(NOTNULL(lexer_state * const lexer), pir_type type, int regno) {
+find_register(ARGIN(lexer_state * const lexer), pir_type type, int regno)
+{
+ ASSERT_ARGS(find_register)
/* should do a binary search. fix later.
*/
pir_reg *iter = CURRENT_SUB(lexer)->registers[type];
@@ -439,8 +515,8 @@
/*
-=item C<static int
-use_register(lexer_state * const lexer, pir_type type, int regno, int pasmregno)>
+=item C<static int use_register(lexer_state * const lexer, pir_type type, int
+regno, int pasmregno)>
This function registers (no pun intended) register C<regno> of type
C<type>; it uses register C<pasmregno>; each subsequent
@@ -454,7 +530,11 @@
*/
static int
-use_register(NOTNULL(lexer_state * const lexer), pir_type type, int regno, int pasmregno) {
+use_register(ARGIN(lexer_state * const lexer), pir_type type,
+ int regno, int pasmregno)
+{
+ ASSERT_ARGS(use_register)
+
pir_reg *reg;
/* create a new node representing this PIR register */
@@ -505,8 +585,7 @@
/*
-=item C<int
-color_reg(struct lexer_state * const lexer, pir_type type, int regno)>
+=item C<int color_reg(lexer_state * const lexer, pir_type type, int regno)>
Find register C<regno> of type C<type>; if it was used before in the
current subroutine, a (pasm) register was already assigned to it, which
@@ -519,7 +598,9 @@
*/
int
-color_reg(NOTNULL(lexer_state * const lexer), pir_type type, int regno) {
+color_reg(ARGIN(lexer_state * const lexer), pir_type type, int regno)
+{
+ ASSERT_ARGS(color_reg)
pir_reg *reg = find_register(lexer, type, regno);
/* was the register already used, then it was already colored by
@@ -555,8 +636,8 @@
/*
-=item C<static global_label *
-new_global_label(char * const name)>
+=item C<static global_label * new_global_label(lexer_state * const lexer, char
+const * const name)>
Constructor to create a new global_label object.
@@ -566,7 +647,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static global_label *
-new_global_label(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const name)) {
+new_global_label(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(new_global_label)
global_label *glob = pir_mem_allocate_zeroed_typed(lexer, global_label);
glob->name = name;
glob->const_table_index = 0;
@@ -575,8 +659,8 @@
/*
-=item C<void
-store_global_label(struct lexer_state * const lexer, char * const name)>
+=item C<void store_global_label(lexer_state * const lexer, char const * const
+name)>
Store the global identifier C<name> in C<lexer>'s global label table.
@@ -584,7 +668,10 @@
*/
void
-store_global_label(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const name)) {
+store_global_label(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(store_global_label)
hashtable *table = &lexer->globals;
unsigned long hash = get_hashcode(name, table->size);
bucket *b = new_bucket(lexer);
@@ -595,8 +682,8 @@
/*
-=item C<global_label *
-find_global_label(struct lexer_state * const lexer, char const * const name)>
+=item C<global_label * find_global_label(lexer_state * const lexer, char const *
+const name)>
Find the global identifier C<name>. If no such identifier was found,
then NULL is returned.
@@ -607,7 +694,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
global_label *
-find_global_label(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const name)) {
+find_global_label(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(find_global_label)
hashtable *table = &lexer->globals;
unsigned long hashcode = get_hashcode(name, table->size);
bucket *b = get_bucket(table, hashcode);
@@ -623,8 +713,8 @@
/*
-=item C<void
-store_global_constant(lexer_state *lexer, constant * const c)>
+=item C<void store_global_constant(lexer_state * const lexer, constdecl * const
+c)>
Store the globally defined constant C<c> in the constant table.
@@ -632,7 +722,10 @@
*/
void
-store_global_constant(NOTNULL(lexer_state * const lexer), NOTNULL(constdecl * const c)) {
+store_global_constant(ARGIN(lexer_state * const lexer),
+ ARGIN(constdecl * const c))
+{
+ ASSERT_ARGS(store_global_constant)
hashtable *table = &lexer->constants;
unsigned long hash = get_hashcode(c->name, table->size);
bucket *b = new_bucket(lexer);
@@ -642,8 +735,8 @@
/*
-=item C<constant *
-find_global_constant(lexer_state *lexer, char * const name)>
+=item C<constdecl * find_global_constant(lexer_state * const lexer, char const *
+const name)>
Find a constant defined as C<name>. If no constant was defined by
that name, then NULL is returned.
@@ -654,7 +747,10 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
constdecl *
-find_global_constant(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const name)) {
+find_global_constant(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+{
+ ASSERT_ARGS(find_global_constant)
hashtable *table = &lexer->constants;
unsigned long hashcode = get_hashcode(name, table->size);
bucket *b = get_bucket(table, hashcode);
@@ -675,9 +771,8 @@
/*
-=item C<static local_label *
-new_local_label(lexer_state * const lexer, char const * const name,
-unsigned offset)>
+=item C<static local_label * new_local_label(lexer_state * const lexer, char
+const * const name, unsigned offset)>
Constructor for a label. Create a new label structure, fill out the details
and return it. C<name> is the name of the label; C<offset> is its current
@@ -689,9 +784,12 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static local_label *
-new_local_label(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const name),
- unsigned offset)
+new_local_label(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name),
+ unsigned offset)
{
+ ASSERT_ARGS(new_local_label)
+
local_label *l = pir_mem_allocate_zeroed_typed(lexer, local_label);
l->name = name;
l->offset = offset;
@@ -700,8 +798,8 @@
/*
-=item C<void
-store_local_label(lexer_state * const lexer, char const * const labelname, unsigned offset)>
+=item C<void store_local_label(lexer_state * const lexer, char const * const
+labelname, unsigned offset)>
Store the (sub-)local label C<labelname>, having I<address> C<offset> in the current
subroutine structure.
@@ -710,9 +808,11 @@
*/
void
-store_local_label(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const labelname),
- unsigned offset)
+store_local_label(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const labelname),
+ unsigned offset)
{
+ ASSERT_ARGS(store_local_label)
local_label *l = new_local_label(lexer, labelname, offset);
hashtable *table = &CURRENT_SUB(lexer)->labels;
unsigned long hash = get_hashcode(labelname, table->size);
@@ -723,8 +823,8 @@
/*
-=item C<unsigned
-find_local_label(lexer_state * const lexer, char const * const labelname)>
+=item C<unsigned find_local_label(lexer_state * const lexer, char const * const
+labelname)>
Find the offset for label C<labelname>. If C<labelname> was not defined as
a label, an error is emitted, otherwise, the offset of that label is returned.
@@ -734,7 +834,10 @@
*/
PARROT_WARN_UNUSED_RESULT
unsigned
-find_local_label(NOTNULL(lexer_state * const lexer), NOTNULL(char const * const labelname)) {
+find_local_label(ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const labelname))
+{
+ ASSERT_ARGS(find_local_label)
hashtable *table = &CURRENT_SUB(lexer)->labels;
unsigned long hashcode = get_hashcode(labelname, table->size);
bucket *b = get_bucket(table, hashcode);
Modified: branches/rm_cflags/compilers/pirc/src/pirsymbol.h
==============================================================================
--- branches/rm_cflags/compilers/pirc/src/pirsymbol.h Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/compilers/pirc/src/pirsymbol.h Tue Feb 16 21:05:51 2010 (r44046)
@@ -75,49 +75,157 @@
/* lookup table to convert value_type and pir_type values into one another. */
extern const int valuetype_pirtype_clut[10];
+/* HEADERIZER BEGIN: compilers/pirc/src/pirsymbol.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* symbol constructor */
-symbol *new_symbol(struct lexer_state * const lexer, char const * const name, pir_type type);
-
-/* to enter a symbol in the symbol table */
-void declare_local(struct lexer_state * const lexer, pir_type type, symbol * const list);
-
-/* to find a symbol in the symbol table */
-symbol *find_symbol(struct lexer_state * const lexer, char const * const name);
-
-
-pir_reg *find_register(struct lexer_state * const lexer, pir_type type, int regno);
-
-
-/* to find declared symbols that are never referenced */
-void check_unused_symbols(struct lexer_state * const lexer);
-
-/* find specified register; if it was not used yet, assign a PASM register to it */
-int color_reg(struct lexer_state * const lexer, pir_type type, int regno);
-
-/* store a global identifier (label) */
-void store_global_label(struct lexer_state * const lexer, char const * const name);
-
-/* find a global identifier */
-global_label *find_global_label(struct lexer_state * const lexer, char const * const name);
-
-/* store a global .const symbol */
-void store_global_constant(struct lexer_state * const lexer, constdecl * const c);
-
-/* find a global .const symbol */
-constdecl *find_global_constant(struct lexer_state * const lexer, char const * const name);
-
-void assign_vanilla_register(struct lexer_state * const lexer, symbol * const sym);
-
-void store_local_label(struct lexer_state * const lexer, char const * const label, unsigned offset);
-
-unsigned find_local_label(struct lexer_state * const lexer, char const * const label);
-
-unsigned get_hashcode(char const * const str, unsigned num_buckets);
-
-bucket *get_bucket(hashtable * const table, unsigned long hash);
-
-void store_bucket(hashtable * const table, bucket * const buck, unsigned long hash);
+void assign_vanilla_register(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(symbol * const sym))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void check_unused_symbols(ARGIN(lexer_state * const lexer))
+ __attribute__nonnull__(1);
+
+int color_reg(ARGIN(lexer_state * const lexer), pir_type type, int regno)
+ __attribute__nonnull__(1);
+
+void declare_local(
+ ARGIN(lexer_state * const lexer),
+ pir_type type,
+ ARGIN(symbol * const list))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+constdecl * find_global_constant(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+global_label * find_global_label(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+unsigned find_local_label(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const labelname))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+pir_reg * find_register(
+ ARGIN(lexer_state * const lexer),
+ pir_type type,
+ int regno)
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+symbol * find_symbol(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+bucket * get_bucket(ARGIN(hashtable * const table), unsigned long hash)
+ __attribute__nonnull__(1);
+
+PARROT_PURE_FUNCTION
+PARROT_WARN_UNUSED_RESULT
+unsigned get_hashcode(ARGIN(char const * const str), unsigned num_buckets)
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+symbol * new_symbol(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name),
+ pir_type type)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void store_bucket(
+ ARGIN(hashtable * const table),
+ ARGIN(bucket * const buck),
+ unsigned long hash)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void store_global_constant(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(constdecl * const c))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void store_global_label(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void store_local_label(
+ ARGIN(lexer_state * const lexer),
+ ARGIN(char const * const labelname),
+ unsigned offset)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_assign_vanilla_register __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(sym))
+#define ASSERT_ARGS_check_unused_symbols __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_color_reg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_declare_local __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(list))
+#define ASSERT_ARGS_find_global_constant __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_find_global_label __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_find_local_label __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(labelname))
+#define ASSERT_ARGS_find_register __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer))
+#define ASSERT_ARGS_find_symbol __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_get_bucket __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(table))
+#define ASSERT_ARGS_get_hashcode __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(str))
+#define ASSERT_ARGS_new_symbol __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_store_bucket __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(table) \
+ , PARROT_ASSERT_ARG(buck))
+#define ASSERT_ARGS_store_global_constant __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(c))
+#define ASSERT_ARGS_store_global_label __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_store_local_label __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(lexer) \
+ , PARROT_ASSERT_ARG(labelname))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: compilers/pirc/src/pirsymbol.c */
#endif /* PARROT_PIR_PIRSYMBOL_H_GUARD */
Modified: branches/rm_cflags/config/gen/makefiles/root.in
==============================================================================
--- branches/rm_cflags/config/gen/makefiles/root.in Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/config/gen/makefiles/root.in Tue Feb 16 21:05:51 2010 (r44046)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
###############################################################################
@@ -292,6 +292,8 @@
#IF(has_opengl): $(LIBRARY_DIR)/OpenGL.pbc \
#IF(has_opengl): $(LIBRARY_DIR)/OpenGL_funcs.pbc \
#IF(has_opengl): $(LIBRARY_DIR)/OpenGL/Math.pbc \
+#IF(has_opengl): runtime/parrot/include/opengl_defines.pasm \
+#IF(has_opengl): runtime/parrot/library/OpenGL_funcs.pir \
$(LIBRARY_DIR)/P6object.pbc \
$(LIBRARY_DIR)/parrotlib.pbc \
$(LIBRARY_DIR)/pcore.pbc \
@@ -1133,11 +1135,16 @@
examples/pasm/hello.pbc: examples/pasm/hello.pasm
$(PARROT) -o examples/pasm/hello.pbc examples/pasm/hello.pasm
-examples/pasm/hello$(O): examples/pasm/hello.pbc
- $(PARROT) -o examples/pasm/hello$(O) examples/pasm/hello.pbc
-
-examples/pasm/hello$(EXE): examples/pasm/hello$(O)
- $(MAKE) . EXEC=examples/pasm/hello exec
+# The -o option of parrot did not work with the object file extension ".o"
+# so as work around pbc_to_exe is used and the original commands are only
+# commented out so it can easily switched back.
+#examples/pasm/hello$(O): examples/pasm/hello.pbc
+# $(PARROT) -o examples/pasm/hello$(O) examples/pasm/hello.pbc
+#
+#examples/pasm/hello$(EXE): examples/pasm/hello$(O)
+# $(MAKE) . EXEC=examples/pasm/hello exec
+examples/pasm/hello$(EXE): examples/pasm/hello.pbc $(PBC_TO_EXE)
+ $(PBC_TO_EXE) examples/pasm/hello.pbc
@@ -1797,7 +1804,7 @@
$(RM_F) $(FLUID_FILES_2)
$(RM_RF) lib/Parrot/OpLib
$(RM_F) $(NQP_CLEANUPS) $(PGE_CLEANUPS) $(TGE_CLEANUPS) $(JSON_CLEANUPS)
- $(RM_F) $(PIRC_CLEANUPS) $(PCT_CLEANUPS)
+ $(RM_F) $(PIRC_CLEANUPS) $(PCT_CLEANUPS) $(DATA_JSON_CLEANUPS)
$(RM_F) $(GEN_PASM_INCLUDES) $(GEN_PM_INCLUDES)
prog-clean :
Modified: branches/rm_cflags/docs/embed.pod
==============================================================================
--- branches/rm_cflags/docs/embed.pod Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/docs/embed.pod Tue Feb 16 21:05:51 2010 (r44046)
@@ -1053,46 +1053,6 @@
=item C<Parrot_PMC_assign_string_native>
-=item C<Parrot_PMC_bitwise_and>
-
-=item C<Parrot_PMC_bitwise_and_int>
-
-=item C<Parrot_PMC_bitwise_ands>
-
-=item C<Parrot_PMC_bitwise_ands_str>
-
-=item C<Parrot_PMC_bitwise_lsr>
-
-=item C<Parrot_PMC_bitwise_lsr_int>
-
-=item C<Parrot_PMC_bitwise_not>
-
-=item C<Parrot_PMC_bitwise_nots>
-
-=item C<Parrot_PMC_bitwise_or>
-
-=item C<Parrot_PMC_bitwise_or_int>
-
-=item C<Parrot_PMC_bitwise_ors>
-
-=item C<Parrot_PMC_bitwise_ors_str>
-
-=item C<Parrot_PMC_bitwise_shl>
-
-=item C<Parrot_PMC_bitwise_shl_int>
-
-=item C<Parrot_PMC_bitwise_shr>
-
-=item C<Parrot_PMC_bitwise_shr_int>
-
-=item C<Parrot_PMC_bitwise_xor>
-
-=item C<Parrot_PMC_bitwise_xor_int>
-
-=item C<Parrot_PMC_bitwise_xors>
-
-=item C<Parrot_PMC_bitwise_xors_str>
-
=item C<Parrot_PMC_can>
=item C<Parrot_PMC_clone>
@@ -1163,8 +1123,6 @@
=item C<Parrot_PMC_get_attr_str>
-=item C<Parrot_PMC_get_bignum>
-
=item C<Parrot_PMC_get_bool>
=item C<Parrot_PMC_get_class>
@@ -1253,46 +1211,6 @@
=item C<Parrot_PMC_i_add_int>
-=item C<Parrot_PMC_i_bitwise_and>
-
-=item C<Parrot_PMC_i_bitwise_and_int>
-
-=item C<Parrot_PMC_i_bitwise_ands>
-
-=item C<Parrot_PMC_i_bitwise_ands_str>
-
-=item C<Parrot_PMC_i_bitwise_lsr>
-
-=item C<Parrot_PMC_i_bitwise_lsr_int>
-
-=item C<Parrot_PMC_i_bitwise_not>
-
-=item C<Parrot_PMC_i_bitwise_nots>
-
-=item C<Parrot_PMC_i_bitwise_or>
-
-=item C<Parrot_PMC_i_bitwise_or_int>
-
-=item C<Parrot_PMC_i_bitwise_ors>
-
-=item C<Parrot_PMC_i_bitwise_ors_str>
-
-=item C<Parrot_PMC_i_bitwise_shl>
-
-=item C<Parrot_PMC_i_bitwise_shl_int>
-
-=item C<Parrot_PMC_i_bitwise_shr>
-
-=item C<Parrot_PMC_i_bitwise_shr_int>
-
-=item C<Parrot_PMC_i_bitwise_xor>
-
-=item C<Parrot_PMC_i_bitwise_xor_int>
-
-=item C<Parrot_PMC_i_bitwise_xors>
-
-=item C<Parrot_PMC_i_bitwise_xors_str>
-
=item C<Parrot_PMC_i_concatenate>
=item C<Parrot_PMC_i_concatenate_str>
@@ -1661,14 +1579,6 @@
=item C<Parrot_str_append>
-=item C<Parrot_str_bitwise_and>
-
-=item C<Parrot_str_bitwise_not>
-
-=item C<Parrot_str_bitwise_or>
-
-=item C<Parrot_str_bitwise_xor>
-
=item C<Parrot_str_boolean>
=item C<Parrot_str_byte_length>
Modified: branches/rm_cflags/docs/parrothist.pod
==============================================================================
--- branches/rm_cflags/docs/parrothist.pod Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/docs/parrothist.pod Tue Feb 16 21:05:51 2010 (r44046)
@@ -103,5 +103,5 @@
Gerd 1.9.0 2009-Dec-15 "Blue-fronted Amazon"
chromatic 2.0.0 * 2010-Jan-19 "Inevitable"
-
+ darbelo 2.1.0 2010-Feb-26 "As Scheduled"
=cut
Modified: branches/rm_cflags/docs/pdds/pdd17_pmc.pod
==============================================================================
--- branches/rm_cflags/docs/pdds/pdd17_pmc.pod Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/docs/pdds/pdd17_pmc.pod Tue Feb 16 21:05:51 2010 (r44046)
@@ -628,12 +628,6 @@
Return the native floating-point value of the PMC.
-=item get_bignum
-
- PMC* get_bignum(INTERP, PMC *self)
-
-Return the extended precision numeric value of the PMC as a new bignum PMC.
-
=item get_string
STRING* get_string(INTERP, PMC *self)
Modified: branches/rm_cflags/docs/pdds/pdd28_strings.pod
==============================================================================
--- branches/rm_cflags/docs/pdds/pdd28_strings.pod Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/docs/pdds/pdd28_strings.pod Tue Feb 16 21:05:51 2010 (r44046)
@@ -666,10 +666,6 @@
Return the floating-point representation of the string.
-=item get_bignum
-
-Return the big number representation of the string.
-
=item get_string
Return the string value of the String PMC.
Modified: branches/rm_cflags/examples/c/nanoparrot.c
==============================================================================
--- branches/rm_cflags/examples/c/nanoparrot.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/examples/c/nanoparrot.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -94,7 +94,7 @@
* or for the curious: look at the preprocessor output
*/
-#define OP(x) OP_ ## (x)
+#define OP(x) OP_##x
typedef enum { OPCODES } opcodes;
#undef OP
@@ -148,6 +148,8 @@
=item C<static void run(Interp *interp, opcode_t *pc)>
+Execute a single opcode.
+
=cut
*/
@@ -167,7 +169,7 @@
switch (*pc) {
# endif
-# define CASE(x) case OP_ ## (x):
+# define CASE(x) case OP_##x:
# define NEXT continue;
# define DONE return;
# define ENDDISPATCH default : printf("illegal instruction"); \
@@ -228,11 +230,11 @@
#ifdef FUNC_CORE
# define DEF_OP(op) \
- interp->op_func[OP_ ## op] = (op); \
- interp->op_info[OP_ ## op] = #op
+ interp->op_func[OP_##op] = (op); \
+ interp->op_info[OP_##op] = #op
#else
# define DEF_OP(op) \
- interp->op_info[OP_ ## op] = #op
+ interp->op_info[OP_##op] = #op
#endif
/*
@@ -287,6 +289,8 @@
=item C<int main(int argc, char *argv[])>
+Initialize a minimal Parrotesque interpreter and run some hard-coded bytecode.
+
=cut
*/
Modified: branches/rm_cflags/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- branches/rm_cflags/ext/nqp-rx/src/stage0/HLL-s0.pir Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/ext/nqp-rx/src/stage0/HLL-s0.pir Tue Feb 16 21:05:51 2010 (r44046)
@@ -854,7 +854,7 @@
### .include 'gen/hllgrammar-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1261064003.48945")
+.sub "_block11" :anon :subid("10_1266337337.07931")
.annotate "line", 0
get_hll_global $P14, ["HLL";"Grammar"], "_block13"
capture_lex $P14
@@ -868,9 +868,9 @@
.namespace []
-.sub "" :load :init :subid("post94") :outer("10_1261064003.48945")
+.sub "" :load :init :subid("post94") :outer("10_1266337337.07931")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1261064003.48945"
+ .const 'Sub' $P12 = "10_1266337337.07931"
.local pmc block
set block, $P12
$P297 = get_root_global ["parrot"], "P6metaclass"
@@ -879,78 +879,78 @@
.namespace ["HLL";"Grammar"]
-.sub "_block13" :subid("11_1261064003.48945") :outer("10_1261064003.48945")
+.sub "_block13" :subid("11_1266337337.07931") :outer("10_1266337337.07931")
.annotate "line", 5
- .const 'Sub' $P286 = "92_1261064003.48945"
+ .const 'Sub' $P286 = "92_1266337337.07931"
capture_lex $P286
- .const 'Sub' $P279 = "90_1261064003.48945"
+ .const 'Sub' $P279 = "90_1266337337.07931"
capture_lex $P279
- .const 'Sub' $P266 = "87_1261064003.48945"
+ .const 'Sub' $P266 = "87_1266337337.07931"
capture_lex $P266
- .const 'Sub' $P261 = "85_1261064003.48945"
+ .const 'Sub' $P261 = "85_1266337337.07931"
capture_lex $P261
- .const 'Sub' $P255 = "83_1261064003.48945"
+ .const 'Sub' $P255 = "83_1266337337.07931"
capture_lex $P255
- .const 'Sub' $P249 = "81_1261064003.48945"
+ .const 'Sub' $P249 = "81_1266337337.07931"
capture_lex $P249
- .const 'Sub' $P244 = "79_1261064003.48945"
+ .const 'Sub' $P244 = "79_1266337337.07931"
capture_lex $P244
- .const 'Sub' $P239 = "77_1261064003.48945"
+ .const 'Sub' $P239 = "77_1266337337.07931"
capture_lex $P239
- .const 'Sub' $P234 = "75_1261064003.48945"
+ .const 'Sub' $P234 = "75_1266337337.07931"
capture_lex $P234
- .const 'Sub' $P229 = "73_1261064003.48945"
+ .const 'Sub' $P229 = "73_1266337337.07931"
capture_lex $P229
- .const 'Sub' $P224 = "71_1261064003.48945"
+ .const 'Sub' $P224 = "71_1266337337.07931"
capture_lex $P224
- .const 'Sub' $P219 = "69_1261064003.48945"
+ .const 'Sub' $P219 = "69_1266337337.07931"
capture_lex $P219
- .const 'Sub' $P208 = "65_1261064003.48945"
+ .const 'Sub' $P208 = "65_1266337337.07931"
capture_lex $P208
- .const 'Sub' $P195 = "63_1261064003.48945"
+ .const 'Sub' $P195 = "63_1266337337.07931"
capture_lex $P195
- .const 'Sub' $P183 = "61_1261064003.48945"
+ .const 'Sub' $P183 = "61_1266337337.07931"
capture_lex $P183
- .const 'Sub' $P176 = "59_1261064003.48945"
+ .const 'Sub' $P176 = "59_1266337337.07931"
capture_lex $P176
- .const 'Sub' $P167 = "57_1261064003.48945"
+ .const 'Sub' $P167 = "57_1266337337.07931"
capture_lex $P167
- .const 'Sub' $P160 = "55_1261064003.48945"
+ .const 'Sub' $P160 = "55_1266337337.07931"
capture_lex $P160
- .const 'Sub' $P151 = "53_1261064003.48945"
+ .const 'Sub' $P151 = "53_1266337337.07931"
capture_lex $P151
- .const 'Sub' $P144 = "51_1261064003.48945"
+ .const 'Sub' $P144 = "51_1266337337.07931"
capture_lex $P144
- .const 'Sub' $P135 = "49_1261064003.48945"
+ .const 'Sub' $P135 = "49_1266337337.07931"
capture_lex $P135
- .const 'Sub' $P128 = "47_1261064003.48945"
+ .const 'Sub' $P128 = "47_1266337337.07931"
capture_lex $P128
- .const 'Sub' $P121 = "45_1261064003.48945"
+ .const 'Sub' $P121 = "45_1266337337.07931"
capture_lex $P121
- .const 'Sub' $P111 = "43_1261064003.48945"
+ .const 'Sub' $P111 = "43_1266337337.07931"
capture_lex $P111
- .const 'Sub' $P103 = "41_1261064003.48945"
+ .const 'Sub' $P103 = "41_1266337337.07931"
capture_lex $P103
- .const 'Sub' $P93 = "40_1261064003.48945"
+ .const 'Sub' $P93 = "40_1266337337.07931"
capture_lex $P93
- .const 'Sub' $P87 = "38_1261064003.48945"
+ .const 'Sub' $P87 = "38_1266337337.07931"
capture_lex $P87
- .const 'Sub' $P82 = "36_1261064003.48945"
+ .const 'Sub' $P82 = "36_1266337337.07931"
capture_lex $P82
- .const 'Sub' $P74 = "34_1261064003.48945"
+ .const 'Sub' $P74 = "34_1266337337.07931"
capture_lex $P74
- .const 'Sub' $P68 = "32_1261064003.48945"
+ .const 'Sub' $P68 = "32_1266337337.07931"
capture_lex $P68
- .const 'Sub' $P62 = "30_1261064003.48945"
+ .const 'Sub' $P62 = "30_1266337337.07931"
capture_lex $P62
- .const 'Sub' $P56 = "28_1261064003.48945"
+ .const 'Sub' $P56 = "28_1266337337.07931"
capture_lex $P56
- .const 'Sub' $P23 = "14_1261064003.48945"
+ .const 'Sub' $P23 = "14_1266337337.07931"
capture_lex $P23
- .const 'Sub' $P15 = "12_1261064003.48945"
+ .const 'Sub' $P15 = "12_1266337337.07931"
capture_lex $P15
.annotate "line", 33
- .const 'Sub' $P286 = "92_1261064003.48945"
+ .const 'Sub' $P286 = "92_1266337337.07931"
capture_lex $P286
.annotate "line", 5
.return ($P286)
@@ -958,7 +958,7 @@
.namespace ["HLL";"Grammar"]
-.sub "ws" :subid("12_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "ws" :subid("12_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 5
.local string rx16_tgt
.local int rx16_pos
@@ -1042,7 +1042,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws" :subid("13_1261064003.48945") :method
+.sub "!PREFIX__ws" :subid("13_1266337337.07931") :method
.annotate "line", 5
new $P18, "ResizablePMCArray"
push $P18, ""
@@ -1051,7 +1051,7 @@
.namespace ["HLL";"Grammar"]
-.sub "termish" :subid("14_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "termish" :subid("14_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 5
.local string rx24_tgt
.local int rx24_pos
@@ -1061,7 +1061,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 +1143,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish" :subid("15_1261064003.48945") :method
+.sub "!PREFIX__termish" :subid("15_1266337337.07931") :method
.annotate "line", 5
new $P26, "ResizablePMCArray"
push $P26, ""
@@ -1152,7 +1152,7 @@
.namespace ["HLL";"Grammar"]
-.sub "term" :subid("16_1261064003.48945") :method
+.sub "term" :subid("16_1266337337.07931") :method
.annotate "line", 13
$P33 = self."!protoregex"("term")
.return ($P33)
@@ -1160,7 +1160,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term" :subid("17_1261064003.48945") :method
+.sub "!PREFIX__term" :subid("17_1266337337.07931") :method
.annotate "line", 13
$P35 = self."!PREFIX__!protoregex"("term")
.return ($P35)
@@ -1168,7 +1168,7 @@
.namespace ["HLL";"Grammar"]
-.sub "infix" :subid("18_1261064003.48945") :method
+.sub "infix" :subid("18_1266337337.07931") :method
.annotate "line", 14
$P37 = self."!protoregex"("infix")
.return ($P37)
@@ -1176,7 +1176,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix" :subid("19_1261064003.48945") :method
+.sub "!PREFIX__infix" :subid("19_1266337337.07931") :method
.annotate "line", 14
$P39 = self."!PREFIX__!protoregex"("infix")
.return ($P39)
@@ -1184,7 +1184,7 @@
.namespace ["HLL";"Grammar"]
-.sub "prefix" :subid("20_1261064003.48945") :method
+.sub "prefix" :subid("20_1266337337.07931") :method
.annotate "line", 15
$P41 = self."!protoregex"("prefix")
.return ($P41)
@@ -1192,7 +1192,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix" :subid("21_1261064003.48945") :method
+.sub "!PREFIX__prefix" :subid("21_1266337337.07931") :method
.annotate "line", 15
$P43 = self."!PREFIX__!protoregex"("prefix")
.return ($P43)
@@ -1200,7 +1200,7 @@
.namespace ["HLL";"Grammar"]
-.sub "postfix" :subid("22_1261064003.48945") :method
+.sub "postfix" :subid("22_1266337337.07931") :method
.annotate "line", 16
$P45 = self."!protoregex"("postfix")
.return ($P45)
@@ -1208,7 +1208,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix" :subid("23_1261064003.48945") :method
+.sub "!PREFIX__postfix" :subid("23_1266337337.07931") :method
.annotate "line", 16
$P47 = self."!PREFIX__!protoregex"("postfix")
.return ($P47)
@@ -1216,7 +1216,7 @@
.namespace ["HLL";"Grammar"]
-.sub "circumfix" :subid("24_1261064003.48945") :method
+.sub "circumfix" :subid("24_1266337337.07931") :method
.annotate "line", 17
$P49 = self."!protoregex"("circumfix")
.return ($P49)
@@ -1224,7 +1224,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix" :subid("25_1261064003.48945") :method
+.sub "!PREFIX__circumfix" :subid("25_1266337337.07931") :method
.annotate "line", 17
$P51 = self."!PREFIX__!protoregex"("circumfix")
.return ($P51)
@@ -1232,7 +1232,7 @@
.namespace ["HLL";"Grammar"]
-.sub "postcircumfix" :subid("26_1261064003.48945") :method
+.sub "postcircumfix" :subid("26_1266337337.07931") :method
.annotate "line", 18
$P53 = self."!protoregex"("postcircumfix")
.return ($P53)
@@ -1240,7 +1240,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix" :subid("27_1261064003.48945") :method
+.sub "!PREFIX__postcircumfix" :subid("27_1266337337.07931") :method
.annotate "line", 18
$P55 = self."!PREFIX__!protoregex"("postcircumfix")
.return ($P55)
@@ -1248,7 +1248,7 @@
.namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>" :subid("28_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "term:sym<circumfix>" :subid("28_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 5
.local string rx57_tgt
.local int rx57_pos
@@ -1306,7 +1306,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>" :subid("29_1261064003.48945") :method
+.sub "!PREFIX__term:sym<circumfix>" :subid("29_1266337337.07931") :method
.annotate "line", 5
$P59 = self."!PREFIX__!subrule"("circumfix", "")
new $P60, "ResizablePMCArray"
@@ -1316,7 +1316,7 @@
.namespace ["HLL";"Grammar"]
-.sub "infixish" :subid("30_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "infixish" :subid("30_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 5
.local string rx63_tgt
.local int rx63_pos
@@ -1374,7 +1374,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish" :subid("31_1261064003.48945") :method
+.sub "!PREFIX__infixish" :subid("31_1266337337.07931") :method
.annotate "line", 5
$P65 = self."!PREFIX__!subrule"("OPER=infix", "")
new $P66, "ResizablePMCArray"
@@ -1384,7 +1384,7 @@
.namespace ["HLL";"Grammar"]
-.sub "prefixish" :subid("32_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "prefixish" :subid("32_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 5
.local string rx69_tgt
.local int rx69_pos
@@ -1447,7 +1447,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish" :subid("33_1261064003.48945") :method
+.sub "!PREFIX__prefixish" :subid("33_1266337337.07931") :method
.annotate "line", 5
$P71 = self."!PREFIX__!subrule"("OPER=prefix", "")
new $P72, "ResizablePMCArray"
@@ -1457,7 +1457,7 @@
.namespace ["HLL";"Grammar"]
-.sub "postfixish" :subid("34_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "postfixish" :subid("34_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 5
.local string rx75_tgt
.local int rx75_pos
@@ -1531,7 +1531,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish" :subid("35_1261064003.48945") :method
+.sub "!PREFIX__postfixish" :subid("35_1266337337.07931") :method
.annotate "line", 5
$P77 = self."!PREFIX__!subrule"("OPER=postcircumfix", "")
$P78 = self."!PREFIX__!subrule"("OPER=postfix", "")
@@ -1543,7 +1543,7 @@
.namespace ["HLL";"Grammar"]
-.sub "nullterm" :subid("36_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "nullterm" :subid("36_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 5
.local string rx83_tgt
.local int rx83_pos
@@ -1594,7 +1594,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm" :subid("37_1261064003.48945") :method
+.sub "!PREFIX__nullterm" :subid("37_1266337337.07931") :method
.annotate "line", 5
new $P85, "ResizablePMCArray"
push $P85, ""
@@ -1603,7 +1603,7 @@
.namespace ["HLL";"Grammar"]
-.sub "nullterm_alt" :subid("38_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "nullterm_alt" :subid("38_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 5
.local string rx88_tgt
.local int rx88_pos
@@ -1661,7 +1661,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt" :subid("39_1261064003.48945") :method
+.sub "!PREFIX__nullterm_alt" :subid("39_1266337337.07931") :method
.annotate "line", 5
$P90 = self."!PREFIX__!subrule"("term", "")
new $P91, "ResizablePMCArray"
@@ -1671,7 +1671,7 @@
.namespace ["HLL";"Grammar"]
-.sub "nulltermish" :subid("40_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "nulltermish" :subid("40_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
new $P95, 'ExceptionHandler'
set_addr $P95, control_94
@@ -1698,7 +1698,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_delimited" :subid("41_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_delimited" :subid("41_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx104_tgt
.local int rx104_pos
@@ -1780,7 +1780,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited" :subid("42_1261064003.48945") :method
+.sub "!PREFIX__quote_delimited" :subid("42_1266337337.07931") :method
.annotate "line", 33
$P106 = self."!PREFIX__!subrule"("starter", "")
new $P107, "ResizablePMCArray"
@@ -1790,7 +1790,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_atom" :subid("43_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_atom" :subid("43_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx112_tgt
.local int rx112_pos
@@ -1881,7 +1881,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom" :subid("44_1261064003.48945") :method
+.sub "!PREFIX__quote_atom" :subid("44_1266337337.07931") :method
.annotate "line", 33
new $P114, "ResizablePMCArray"
push $P114, ""
@@ -1890,7 +1890,7 @@
.namespace ["HLL";"Grammar"]
-.sub "decint" :subid("45_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "decint" :subid("45_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx122_tgt
.local int rx122_pos
@@ -1962,7 +1962,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint" :subid("46_1261064003.48945") :method
+.sub "!PREFIX__decint" :subid("46_1266337337.07931") :method
.annotate "line", 33
new $P124, "ResizablePMCArray"
push $P124, ""
@@ -1971,7 +1971,7 @@
.namespace ["HLL";"Grammar"]
-.sub "hexints" :subid("47_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "hexints" :subid("47_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx129_tgt
.local int rx129_pos
@@ -2055,7 +2055,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints" :subid("48_1261064003.48945") :method
+.sub "!PREFIX__hexints" :subid("48_1266337337.07931") :method
.annotate "line", 33
new $P131, "ResizablePMCArray"
push $P131, ""
@@ -2064,7 +2064,7 @@
.namespace ["HLL";"Grammar"]
-.sub "hexint" :subid("49_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "hexint" :subid("49_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx136_tgt
.local int rx136_pos
@@ -2145,7 +2145,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint" :subid("50_1261064003.48945") :method
+.sub "!PREFIX__hexint" :subid("50_1266337337.07931") :method
.annotate "line", 33
new $P138, "ResizablePMCArray"
push $P138, ""
@@ -2154,7 +2154,7 @@
.namespace ["HLL";"Grammar"]
-.sub "hexints" :subid("51_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "hexints" :subid("51_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx145_tgt
.local int rx145_pos
@@ -2238,7 +2238,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints" :subid("52_1261064003.48945") :method
+.sub "!PREFIX__hexints" :subid("52_1266337337.07931") :method
.annotate "line", 33
new $P147, "ResizablePMCArray"
push $P147, ""
@@ -2247,7 +2247,7 @@
.namespace ["HLL";"Grammar"]
-.sub "octint" :subid("53_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "octint" :subid("53_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx152_tgt
.local int rx152_pos
@@ -2328,7 +2328,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint" :subid("54_1261064003.48945") :method
+.sub "!PREFIX__octint" :subid("54_1266337337.07931") :method
.annotate "line", 33
new $P154, "ResizablePMCArray"
push $P154, ""
@@ -2337,7 +2337,7 @@
.namespace ["HLL";"Grammar"]
-.sub "octints" :subid("55_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "octints" :subid("55_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx161_tgt
.local int rx161_pos
@@ -2421,7 +2421,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints" :subid("56_1261064003.48945") :method
+.sub "!PREFIX__octints" :subid("56_1266337337.07931") :method
.annotate "line", 33
new $P163, "ResizablePMCArray"
push $P163, ""
@@ -2430,7 +2430,7 @@
.namespace ["HLL";"Grammar"]
-.sub "binint" :subid("57_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "binint" :subid("57_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx168_tgt
.local int rx168_pos
@@ -2511,7 +2511,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint" :subid("58_1261064003.48945") :method
+.sub "!PREFIX__binint" :subid("58_1266337337.07931") :method
.annotate "line", 33
new $P170, "ResizablePMCArray"
push $P170, ""
@@ -2520,7 +2520,7 @@
.namespace ["HLL";"Grammar"]
-.sub "binints" :subid("59_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "binints" :subid("59_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx177_tgt
.local int rx177_pos
@@ -2604,7 +2604,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints" :subid("60_1261064003.48945") :method
+.sub "!PREFIX__binints" :subid("60_1266337337.07931") :method
.annotate "line", 33
new $P179, "ResizablePMCArray"
push $P179, ""
@@ -2613,7 +2613,7 @@
.namespace ["HLL";"Grammar"]
-.sub "integer" :subid("61_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "integer" :subid("61_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx184_tgt
.local int rx184_pos
@@ -2761,7 +2761,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer" :subid("62_1261064003.48945") :method
+.sub "!PREFIX__integer" :subid("62_1266337337.07931") :method
.annotate "line", 33
$P186 = self."!PREFIX__!subrule"("VALUE=decint", "")
$P187 = self."!PREFIX__!subrule"("VALUE=decint", "0d")
@@ -2779,7 +2779,7 @@
.namespace ["HLL";"Grammar"]
-.sub "dec_number" :subid("63_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "dec_number" :subid("63_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx196_tgt
.local int rx196_pos
@@ -2958,7 +2958,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number" :subid("64_1261064003.48945") :method
+.sub "!PREFIX__dec_number" :subid("64_1266337337.07931") :method
.annotate "line", 33
new $P198, "ResizablePMCArray"
push $P198, ""
@@ -2969,7 +2969,7 @@
.namespace ["HLL";"Grammar"]
-.sub "escale" :subid("65_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "escale" :subid("65_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx209_tgt
.local int rx209_pos
@@ -3046,7 +3046,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale" :subid("66_1261064003.48945") :method
+.sub "!PREFIX__escale" :subid("66_1266337337.07931") :method
.annotate "line", 33
new $P211, "ResizablePMCArray"
push $P211, "e"
@@ -3056,7 +3056,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape" :subid("67_1261064003.48945") :method
+.sub "quote_escape" :subid("67_1266337337.07931") :method
.annotate "line", 79
$P216 = self."!protoregex"("quote_escape")
.return ($P216)
@@ -3064,7 +3064,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape" :subid("68_1261064003.48945") :method
+.sub "!PREFIX__quote_escape" :subid("68_1266337337.07931") :method
.annotate "line", 79
$P218 = self."!PREFIX__!protoregex"("quote_escape")
.return ($P218)
@@ -3072,7 +3072,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<backslash>" :subid("69_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<backslash>" :subid("69_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx220_tgt
.local int rx220_pos
@@ -3134,7 +3134,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>" :subid("70_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<backslash>" :subid("70_1266337337.07931") :method
.annotate "line", 33
new $P222, "ResizablePMCArray"
push $P222, "\\\\"
@@ -3143,7 +3143,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<stopper>" :subid("71_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<stopper>" :subid("71_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx225_tgt
.local int rx225_pos
@@ -3212,7 +3212,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>" :subid("72_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<stopper>" :subid("72_1266337337.07931") :method
.annotate "line", 33
new $P227, "ResizablePMCArray"
push $P227, "\\"
@@ -3221,7 +3221,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<bs>" :subid("73_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<bs>" :subid("73_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx230_tgt
.local int rx230_pos
@@ -3283,7 +3283,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>" :subid("74_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<bs>" :subid("74_1266337337.07931") :method
.annotate "line", 33
new $P232, "ResizablePMCArray"
push $P232, "\\b"
@@ -3292,7 +3292,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<nl>" :subid("75_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<nl>" :subid("75_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx235_tgt
.local int rx235_pos
@@ -3354,7 +3354,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>" :subid("76_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<nl>" :subid("76_1266337337.07931") :method
.annotate "line", 33
new $P237, "ResizablePMCArray"
push $P237, "\\n"
@@ -3363,7 +3363,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<cr>" :subid("77_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<cr>" :subid("77_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx240_tgt
.local int rx240_pos
@@ -3425,7 +3425,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>" :subid("78_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<cr>" :subid("78_1266337337.07931") :method
.annotate "line", 33
new $P242, "ResizablePMCArray"
push $P242, "\\r"
@@ -3434,7 +3434,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<tab>" :subid("79_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<tab>" :subid("79_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx245_tgt
.local int rx245_pos
@@ -3496,7 +3496,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>" :subid("80_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<tab>" :subid("80_1266337337.07931") :method
.annotate "line", 33
new $P247, "ResizablePMCArray"
push $P247, "\\t"
@@ -3505,7 +3505,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<hex>" :subid("81_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<hex>" :subid("81_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx250_tgt
.local int rx250_pos
@@ -3603,7 +3603,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>" :subid("82_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<hex>" :subid("82_1266337337.07931") :method
.annotate "line", 33
new $P252, "ResizablePMCArray"
push $P252, unicode:"\\x"
@@ -3612,7 +3612,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<oct>" :subid("83_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<oct>" :subid("83_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx256_tgt
.local int rx256_pos
@@ -3710,7 +3710,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>" :subid("84_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<oct>" :subid("84_1266337337.07931") :method
.annotate "line", 33
new $P258, "ResizablePMCArray"
push $P258, "\\o"
@@ -3719,7 +3719,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<chr>" :subid("85_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "quote_escape:sym<chr>" :subid("85_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx262_tgt
.local int rx262_pos
@@ -3788,7 +3788,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>" :subid("86_1261064003.48945") :method
+.sub "!PREFIX__quote_escape:sym<chr>" :subid("86_1266337337.07931") :method
.annotate "line", 33
new $P264, "ResizablePMCArray"
push $P264, "\\c"
@@ -3797,9 +3797,9 @@
.namespace ["HLL";"Grammar"]
-.sub "charname" :subid("87_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "charname" :subid("87_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
- .const 'Sub' $P276 = "89_1261064003.48945"
+ .const 'Sub' $P276 = "89_1266337337.07931"
capture_lex $P276
.local string rx267_tgt
.local int rx267_pos
@@ -3877,7 +3877,7 @@
.annotate "line", 100
# rx subrule "before" subtype=zerowidth negate=
rx267_cur."!cursor_pos"(rx267_pos)
- .const 'Sub' $P276 = "89_1261064003.48945"
+ .const 'Sub' $P276 = "89_1266337337.07931"
capture_lex $P276
$P10 = rx267_cur."before"($P276)
unless $P10, rx267_fail
@@ -3902,7 +3902,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname" :subid("88_1261064003.48945") :method
+.sub "!PREFIX__charname" :subid("88_1266337337.07931") :method
.annotate "line", 33
$P269 = self."!PREFIX__!subrule"("integer", "")
new $P270, "ResizablePMCArray"
@@ -3964,7 +3964,7 @@
.namespace ["HLL";"Grammar"]
-.sub "_block275" :anon :subid("89_1261064003.48945") :method :outer("87_1261064003.48945")
+.sub "_block275" :anon :subid("89_1266337337.07931") :method :outer("87_1266337337.07931")
.annotate "line", 100
.local string rx277_tgt
.local int rx277_pos
@@ -4024,7 +4024,7 @@
.namespace ["HLL";"Grammar"]
-.sub "charnames" :subid("90_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "charnames" :subid("90_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx280_tgt
.local int rx280_pos
@@ -4108,7 +4108,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames" :subid("91_1261064003.48945") :method
+.sub "!PREFIX__charnames" :subid("91_1266337337.07931") :method
.annotate "line", 33
new $P282, "ResizablePMCArray"
push $P282, ""
@@ -4117,7 +4117,7 @@
.namespace ["HLL";"Grammar"]
-.sub "charspec" :subid("92_1261064003.48945") :method :outer("11_1261064003.48945")
+.sub "charspec" :subid("92_1266337337.07931") :method :outer("11_1266337337.07931")
.annotate "line", 33
.local string rx287_tgt
.local int rx287_pos
@@ -4247,7 +4247,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec" :subid("93_1261064003.48945") :method
+.sub "!PREFIX__charspec" :subid("93_1266337337.07931") :method
.annotate "line", 33
$P289 = self."!PREFIX__!subrule"("", "")
$P290 = self."!PREFIX__!subrule"("charnames", "[")
@@ -4289,91 +4289,99 @@
### .include 'gen/hllgrammar-actions.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1261064005.70696")
+.sub "_block11" :anon :subid("10_1266337339.18354")
.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
- $P451 = $P14()
+ $P534 = $P14()
.annotate "line", 1
- .return ($P451)
+ .return ($P534)
.end
.namespace []
-.sub "" :load :init :subid("post41") :outer("10_1261064005.70696")
+.sub "" :load :init :subid("post46") :outer("10_1266337339.18354")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1261064005.70696"
+ .const 'Sub' $P12 = "10_1266337339.18354"
.local pmc block
set block, $P12
- $P452 = get_root_global ["parrot"], "P6metaclass"
- $P452."new_class"("HLL::Actions")
+ $P535 = get_root_global ["parrot"], "P6metaclass"
+ $P535."new_class"("HLL::Actions")
.end
.namespace ["HLL";"Actions"]
-.sub "_block13" :subid("11_1261064005.70696") :outer("10_1261064005.70696")
+.sub "_block13" :subid("11_1266337339.18354") :outer("10_1266337339.18354")
.annotate "line", 3
- .const 'Sub' $P434 = "40_1261064005.70696"
+ .const 'Sub' $P517 = "45_1266337339.18354"
+ capture_lex $P517
+ .const 'Sub' $P492 = "43_1266337339.18354"
+ capture_lex $P492
+ .const 'Sub' $P461 = "42_1266337339.18354"
+ capture_lex $P461
+ .const 'Sub' $P451 = "41_1266337339.18354"
+ capture_lex $P451
+ .const 'Sub' $P434 = "40_1266337339.18354"
capture_lex $P434
- .const 'Sub' $P417 = "39_1261064005.70696"
+ .const 'Sub' $P417 = "39_1266337339.18354"
capture_lex $P417
- .const 'Sub' $P410 = "38_1261064005.70696"
+ .const 'Sub' $P410 = "38_1266337339.18354"
capture_lex $P410
- .const 'Sub' $P403 = "37_1261064005.70696"
+ .const 'Sub' $P403 = "37_1266337339.18354"
capture_lex $P403
- .const 'Sub' $P396 = "36_1261064005.70696"
+ .const 'Sub' $P396 = "36_1266337339.18354"
capture_lex $P396
- .const 'Sub' $P389 = "35_1261064005.70696"
+ .const 'Sub' $P389 = "35_1266337339.18354"
capture_lex $P389
- .const 'Sub' $P379 = "34_1261064005.70696"
+ .const 'Sub' $P379 = "34_1266337339.18354"
capture_lex $P379
- .const 'Sub' $P372 = "33_1261064005.70696"
+ .const 'Sub' $P372 = "33_1266337339.18354"
capture_lex $P372
- .const 'Sub' $P356 = "32_1261064005.70696"
+ .const 'Sub' $P356 = "32_1266337339.18354"
capture_lex $P356
- .const 'Sub' $P281 = "30_1261064005.70696"
+ .const 'Sub' $P281 = "30_1266337339.18354"
capture_lex $P281
- .const 'Sub' $P222 = "27_1261064005.70696"
+ .const 'Sub' $P222 = "27_1266337339.18354"
capture_lex $P222
- .const 'Sub' $P213 = "26_1261064005.70696"
+ .const 'Sub' $P213 = "26_1266337339.18354"
capture_lex $P213
- .const 'Sub' $P204 = "25_1261064005.70696"
+ .const 'Sub' $P204 = "25_1266337339.18354"
capture_lex $P204
- .const 'Sub' $P195 = "24_1261064005.70696"
+ .const 'Sub' $P195 = "24_1266337339.18354"
capture_lex $P195
- .const 'Sub' $P186 = "23_1261064005.70696"
+ .const 'Sub' $P186 = "23_1266337339.18354"
capture_lex $P186
- .const 'Sub' $P177 = "22_1261064005.70696"
+ .const 'Sub' $P177 = "22_1266337339.18354"
capture_lex $P177
- .const 'Sub' $P167 = "21_1261064005.70696"
+ .const 'Sub' $P167 = "21_1266337339.18354"
capture_lex $P167
- .const 'Sub' $P157 = "20_1261064005.70696"
+ .const 'Sub' $P157 = "20_1266337339.18354"
capture_lex $P157
- .const 'Sub' $P149 = "19_1261064005.70696"
+ .const 'Sub' $P149 = "19_1266337339.18354"
capture_lex $P149
- .const 'Sub' $P139 = "18_1261064005.70696"
+ .const 'Sub' $P139 = "18_1266337339.18354"
capture_lex $P139
- .const 'Sub' $P129 = "17_1261064005.70696"
+ .const 'Sub' $P129 = "17_1266337339.18354"
capture_lex $P129
- .const 'Sub' $P28 = "14_1261064005.70696"
+ .const 'Sub' $P28 = "14_1266337339.18354"
capture_lex $P28
- .const 'Sub' $P22 = "13_1261064005.70696"
+ .const 'Sub' $P22 = "13_1266337339.18354"
capture_lex $P22
- .const 'Sub' $P15 = "12_1261064005.70696"
+ .const 'Sub' $P15 = "12_1266337339.18354"
capture_lex $P15
-.annotate "line", 163
- .const 'Sub' $P434 = "40_1261064005.70696"
- capture_lex $P434
+.annotate "line", 185
+ .const 'Sub' $P517 = "45_1266337339.18354"
+ capture_lex $P517
.annotate "line", 3
- .return ($P434)
+ .return ($P517)
.end
.namespace ["HLL";"Actions"]
-.sub "string_to_int" :subid("12_1261064005.70696") :outer("11_1261064005.70696")
+.sub "string_to_int" :subid("12_1266337339.18354") :outer("11_1266337339.18354")
.param pmc param_18
.param pmc param_19
.annotate "line", 3
@@ -4426,7 +4434,7 @@
.namespace ["HLL";"Actions"]
-.sub "ints_to_string" :subid("13_1261064005.70696") :outer("11_1261064005.70696")
+.sub "ints_to_string" :subid("13_1266337339.18354") :outer("11_1266337339.18354")
.param pmc param_25
.annotate "line", 37
new $P24, 'ExceptionHandler'
@@ -4467,14 +4475,14 @@
.namespace ["HLL";"Actions"]
-.sub "EXPR" :subid("14_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "EXPR" :subid("14_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_31
.param pmc param_32 :optional
.param int has_param_32 :opt_flag
.annotate "line", 62
- .const 'Sub' $P111 = "16_1261064005.70696"
+ .const 'Sub' $P111 = "16_1266337339.18354"
capture_lex $P111
- .const 'Sub' $P78 = "15_1261064005.70696"
+ .const 'Sub' $P78 = "15_1266337339.18354"
capture_lex $P78
new $P30, 'ExceptionHandler'
set_addr $P30, control_29
@@ -4482,10 +4490,10 @@
push_eh $P30
.lex "self", self
.lex "$/", param_31
- if has_param_32, optparam_42
+ if has_param_32, optparam_47
new $P33, "Undef"
set param_32, $P33
- optparam_42:
+ optparam_47:
.lex "$key", param_32
.annotate "line", 64
new $P34, "Undef"
@@ -4507,13 +4515,13 @@
defined $I43, $P39
if $I43, default_42
find_lex $P44, "$/"
- unless_null $P44, vivify_43
+ unless_null $P44, vivify_48
new $P44, "Hash"
- vivify_43:
+ vivify_48:
set $P45, $P44["OPER"]
- unless_null $P45, vivify_44
+ unless_null $P45, vivify_49
new $P45, "Undef"
- vivify_44:
+ vivify_49:
$P46 = $P45."ast"()
set $P39, $P46
default_42:
@@ -4528,57 +4536,57 @@
store_lex "$past", $P51
.annotate "line", 67
find_lex $P53, "$/"
- unless_null $P53, vivify_45
+ unless_null $P53, vivify_50
new $P53, "Hash"
- vivify_45:
+ vivify_50:
set $P54, $P53["OPER"]
- unless_null $P54, vivify_46
+ unless_null $P54, vivify_51
new $P54, "Hash"
- vivify_46:
+ vivify_51:
set $P55, $P54["O"]
- unless_null $P55, vivify_47
+ unless_null $P55, vivify_52
new $P55, "Hash"
- vivify_47:
+ vivify_52:
set $P56, $P55["pasttype"]
- unless_null $P56, vivify_48
+ unless_null $P56, vivify_53
new $P56, "Undef"
- vivify_48:
+ vivify_53:
if $P56, if_52
.annotate "line", 68
find_lex $P64, "$/"
- unless_null $P64, vivify_49
+ unless_null $P64, vivify_54
new $P64, "Hash"
- vivify_49:
+ vivify_54:
set $P65, $P64["OPER"]
- unless_null $P65, vivify_50
+ unless_null $P65, vivify_55
new $P65, "Hash"
- vivify_50:
+ vivify_55:
set $P66, $P65["O"]
- unless_null $P66, vivify_51
+ unless_null $P66, vivify_56
new $P66, "Hash"
- vivify_51:
+ vivify_56:
set $P67, $P66["pirop"]
- unless_null $P67, vivify_52
+ unless_null $P67, vivify_57
new $P67, "Undef"
- vivify_52:
+ vivify_57:
unless $P67, if_63_end
find_lex $P68, "$past"
find_lex $P69, "$/"
- unless_null $P69, vivify_53
+ unless_null $P69, vivify_58
new $P69, "Hash"
- vivify_53:
+ vivify_58:
set $P70, $P69["OPER"]
- unless_null $P70, vivify_54
+ unless_null $P70, vivify_59
new $P70, "Hash"
- vivify_54:
+ vivify_59:
set $P71, $P70["O"]
- unless_null $P71, vivify_55
+ unless_null $P71, vivify_60
new $P71, "Hash"
- vivify_55:
+ vivify_60:
set $P72, $P71["pirop"]
- unless_null $P72, vivify_56
+ unless_null $P72, vivify_61
new $P72, "Undef"
- vivify_56:
+ vivify_61:
set $S73, $P72
$P68."pirop"($S73)
if_63_end:
@@ -4587,21 +4595,21 @@
.annotate "line", 67
find_lex $P57, "$past"
find_lex $P58, "$/"
- unless_null $P58, vivify_57
+ unless_null $P58, vivify_62
new $P58, "Hash"
- vivify_57:
+ vivify_62:
set $P59, $P58["OPER"]
- unless_null $P59, vivify_58
+ unless_null $P59, vivify_63
new $P59, "Hash"
- vivify_58:
+ vivify_63:
set $P60, $P59["O"]
- unless_null $P60, vivify_59
+ unless_null $P60, vivify_64
new $P60, "Hash"
- vivify_59:
+ vivify_64:
set $P61, $P60["pasttype"]
- unless_null $P61, vivify_60
+ unless_null $P61, vivify_65
new $P61, "Undef"
- vivify_60:
+ vivify_65:
set $S62, $P61
$P57."pasttype"($S62)
if_52_end:
@@ -4609,7 +4617,7 @@
find_lex $P75, "$past"
$P76 = $P75."name"()
if $P76, unless_74_end
- .const 'Sub' $P78 = "15_1261064005.70696"
+ .const 'Sub' $P78 = "15_1266337339.18354"
capture_lex $P78
$P78()
unless_74_end:
@@ -4623,7 +4631,7 @@
find_lex $P106, "$/"
$P107 = $P106."list"()
defined $I108, $P107
- unless $I108, for_undef_64
+ unless $I108, for_undef_69
iter $P105, $P107
new $P123, 'ExceptionHandler'
set_addr $P123, loop122_handler
@@ -4633,7 +4641,7 @@
unless $P105, loop122_done
shift $P109, $P105
loop122_redo:
- .const 'Sub' $P111 = "16_1261064005.70696"
+ .const 'Sub' $P111 = "16_1266337339.18354"
capture_lex $P111
$P111($P109)
loop122_next:
@@ -4646,20 +4654,20 @@
eq $P124, 67, loop122_redo
loop122_done:
pop_eh
- for_undef_64:
+ for_undef_69:
.annotate "line", 81
goto if_97_end
if_97:
.annotate "line", 80
find_lex $P101, "$past"
find_lex $P102, "$/"
- unless_null $P102, vivify_65
+ unless_null $P102, vivify_70
new $P102, "ResizablePMCArray"
- vivify_65:
+ vivify_70:
set $P103, $P102[0]
- unless_null $P103, vivify_66
+ unless_null $P103, vivify_71
new $P103, "Undef"
- vivify_66:
+ vivify_71:
$P104 = $P103."ast"()
$P101."unshift"($P104)
if_97_end:
@@ -4678,7 +4686,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block77" :anon :subid("15_1261064005.70696") :outer("14_1261064005.70696")
+.sub "_block77" :anon :subid("15_1266337339.18354") :outer("14_1266337339.18354")
.annotate "line", 71
new $P79, "Undef"
.lex "$name", $P79
@@ -4701,17 +4709,17 @@
concat $P86, $P85, ":<"
.annotate "line", 76
find_lex $P87, "$/"
- unless_null $P87, vivify_61
+ unless_null $P87, vivify_66
new $P87, "Hash"
- vivify_61:
+ vivify_66:
set $P88, $P87["OPER"]
- unless_null $P88, vivify_62
+ unless_null $P88, vivify_67
new $P88, "Hash"
- vivify_62:
+ vivify_67:
set $P89, $P88["sym"]
- unless_null $P89, vivify_63
+ unless_null $P89, vivify_68
new $P89, "Undef"
- vivify_63:
+ vivify_68:
concat $P90, $P86, $P89
concat $P91, $P90, ">"
store_lex "$name", $P91
@@ -4728,7 +4736,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block110" :anon :subid("16_1261064005.70696") :outer("14_1261064005.70696")
+.sub "_block110" :anon :subid("16_1266337339.18354") :outer("14_1266337339.18354")
.param pmc param_112
.annotate "line", 82
.lex "$_", param_112
@@ -4751,7 +4759,7 @@
.namespace ["HLL";"Actions"]
-.sub "term:sym<circumfix>" :subid("17_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "term:sym<circumfix>" :subid("17_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_132
.annotate "line", 87
new $P131, 'ExceptionHandler'
@@ -4762,13 +4770,13 @@
.lex "$/", param_132
find_lex $P133, "$/"
find_lex $P134, "$/"
- unless_null $P134, vivify_67
+ unless_null $P134, vivify_72
new $P134, "Hash"
- vivify_67:
+ vivify_72:
set $P135, $P134["circumfix"]
- unless_null $P135, vivify_68
+ unless_null $P135, vivify_73
new $P135, "Undef"
- vivify_68:
+ vivify_73:
$P136 = $P135."ast"()
$P137 = $P133."!make"($P136)
.return ($P137)
@@ -4781,7 +4789,7 @@
.namespace ["HLL";"Actions"]
-.sub "termish" :subid("18_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "termish" :subid("18_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_142
.annotate "line", 89
new $P141, 'ExceptionHandler'
@@ -4792,13 +4800,13 @@
.lex "$/", param_142
find_lex $P143, "$/"
find_lex $P144, "$/"
- unless_null $P144, vivify_69
+ unless_null $P144, vivify_74
new $P144, "Hash"
- vivify_69:
+ vivify_74:
set $P145, $P144["term"]
- unless_null $P145, vivify_70
+ unless_null $P145, vivify_75
new $P145, "Undef"
- vivify_70:
+ vivify_75:
$P146 = $P145."ast"()
$P147 = $P143."!make"($P146)
.return ($P147)
@@ -4811,7 +4819,7 @@
.namespace ["HLL";"Actions"]
-.sub "nullterm" :subid("19_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "nullterm" :subid("19_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_152
.annotate "line", 90
new $P151, 'ExceptionHandler'
@@ -4833,7 +4841,7 @@
.namespace ["HLL";"Actions"]
-.sub "nullterm_alt" :subid("20_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "nullterm_alt" :subid("20_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_160
.annotate "line", 91
new $P159, 'ExceptionHandler'
@@ -4844,13 +4852,13 @@
.lex "$/", param_160
find_lex $P161, "$/"
find_lex $P162, "$/"
- unless_null $P162, vivify_71
+ unless_null $P162, vivify_76
new $P162, "Hash"
- vivify_71:
+ vivify_76:
set $P163, $P162["term"]
- unless_null $P163, vivify_72
+ unless_null $P163, vivify_77
new $P163, "Undef"
- vivify_72:
+ vivify_77:
$P164 = $P163."ast"()
$P165 = $P161."!make"($P164)
.return ($P165)
@@ -4863,7 +4871,7 @@
.namespace ["HLL";"Actions"]
-.sub "integer" :subid("21_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "integer" :subid("21_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_170
.annotate "line", 93
new $P169, 'ExceptionHandler'
@@ -4874,13 +4882,13 @@
.lex "$/", param_170
find_lex $P171, "$/"
find_lex $P172, "$/"
- unless_null $P172, vivify_73
+ unless_null $P172, vivify_78
new $P172, "Hash"
- vivify_73:
+ vivify_78:
set $P173, $P172["VALUE"]
- unless_null $P173, vivify_74
+ unless_null $P173, vivify_79
new $P173, "Undef"
- vivify_74:
+ vivify_79:
$P174 = $P173."ast"()
$P175 = $P171."!make"($P174)
.return ($P175)
@@ -4893,7 +4901,7 @@
.namespace ["HLL";"Actions"]
-.sub "dec_number" :subid("22_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "dec_number" :subid("22_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_180
.annotate "line", 95
new $P179, 'ExceptionHandler'
@@ -4916,7 +4924,7 @@
.namespace ["HLL";"Actions"]
-.sub "decint" :subid("23_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "decint" :subid("23_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_189
.annotate "line", 97
new $P188, 'ExceptionHandler'
@@ -4939,7 +4947,7 @@
.namespace ["HLL";"Actions"]
-.sub "hexint" :subid("24_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "hexint" :subid("24_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_198
.annotate "line", 98
new $P197, 'ExceptionHandler'
@@ -4962,7 +4970,7 @@
.namespace ["HLL";"Actions"]
-.sub "octint" :subid("25_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "octint" :subid("25_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_207
.annotate "line", 99
new $P206, 'ExceptionHandler'
@@ -4985,7 +4993,7 @@
.namespace ["HLL";"Actions"]
-.sub "binint" :subid("26_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "binint" :subid("26_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_216
.annotate "line", 100
new $P215, 'ExceptionHandler'
@@ -5008,10 +5016,10 @@
.namespace ["HLL";"Actions"]
-.sub "quote_EXPR" :subid("27_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "quote_EXPR" :subid("27_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_225
.annotate "line", 102
- .const 'Sub' $P241 = "28_1261064005.70696"
+ .const 'Sub' $P241 = "28_1266337339.18354"
capture_lex $P241
new $P224, 'ExceptionHandler'
set_addr $P224, control_223
@@ -5023,13 +5031,13 @@
new $P226, "Undef"
.lex "$past", $P226
find_lex $P227, "$/"
- unless_null $P227, vivify_75
+ unless_null $P227, vivify_80
new $P227, "Hash"
- vivify_75:
+ vivify_80:
set $P228, $P227["quote_delimited"]
- unless_null $P228, vivify_76
+ unless_null $P228, vivify_81
new $P228, "Undef"
- vivify_76:
+ vivify_81:
$P229 = $P228."ast"()
store_lex "$past", $P229
.annotate "line", 104
@@ -5043,7 +5051,7 @@
$P237 = $P235."ACCEPTS"($P236)
if $P237, if_234
.annotate "line", 108
- .const 'Sub' $P241 = "28_1261064005.70696"
+ .const 'Sub' $P241 = "28_1266337339.18354"
capture_lex $P241
$P241()
goto if_234_end
@@ -5082,9 +5090,9 @@
.namespace ["HLL";"Actions"]
-.sub "_block240" :anon :subid("28_1261064005.70696") :outer("27_1261064005.70696")
+.sub "_block240" :anon :subid("28_1266337339.18354") :outer("27_1266337339.18354")
.annotate "line", 108
- .const 'Sub' $P260 = "29_1261064005.70696"
+ .const 'Sub' $P260 = "29_1266337339.18354"
capture_lex $P260
.annotate "line", 109
new $P242, "ResizablePMCArray"
@@ -5111,7 +5119,7 @@
.annotate "line", 112
find_lex $P256, "@words"
defined $I257, $P256
- unless $I257, for_undef_77
+ unless $I257, for_undef_82
iter $P255, $P256
new $P266, 'ExceptionHandler'
set_addr $P266, loop265_handler
@@ -5121,7 +5129,7 @@
unless $P255, loop265_done
shift $P258, $P255
loop265_redo:
- .const 'Sub' $P260 = "29_1261064005.70696"
+ .const 'Sub' $P260 = "29_1266337339.18354"
capture_lex $P260
$P260($P258)
loop265_next:
@@ -5134,7 +5142,7 @@
eq $P267, 67, loop265_redo
loop265_done:
pop_eh
- for_undef_77:
+ for_undef_82:
.annotate "line", 110
set $P247, $P255
if_248_end:
@@ -5144,7 +5152,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block259" :anon :subid("29_1261064005.70696") :outer("28_1261064005.70696")
+.sub "_block259" :anon :subid("29_1266337339.18354") :outer("28_1266337339.18354")
.param pmc param_261
.annotate "line", 112
.lex "$_", param_261
@@ -5156,10 +5164,10 @@
.namespace ["HLL";"Actions"]
-.sub "quote_delimited" :subid("30_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "quote_delimited" :subid("30_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_284
.annotate "line", 122
- .const 'Sub' $P296 = "31_1261064005.70696"
+ .const 'Sub' $P296 = "31_1266337339.18354"
capture_lex $P296
new $P283, 'ExceptionHandler'
set_addr $P283, control_282
@@ -5184,15 +5192,15 @@
store_lex "$lastlit", $P289
.annotate "line", 125
find_lex $P291, "$/"
- unless_null $P291, vivify_78
+ unless_null $P291, vivify_83
new $P291, "Hash"
- vivify_78:
+ vivify_83:
set $P292, $P291["quote_atom"]
- unless_null $P292, vivify_79
+ unless_null $P292, vivify_84
new $P292, "Undef"
- vivify_79:
+ vivify_84:
defined $I293, $P292
- unless $I293, for_undef_80
+ unless $I293, for_undef_85
iter $P290, $P292
new $P329, 'ExceptionHandler'
set_addr $P329, loop328_handler
@@ -5202,7 +5210,7 @@
unless $P290, loop328_done
shift $P294, $P290
loop328_redo:
- .const 'Sub' $P296 = "31_1261064005.70696"
+ .const 'Sub' $P296 = "31_1266337339.18354"
capture_lex $P296
$P296($P294)
loop328_next:
@@ -5215,7 +5223,7 @@
eq $P330, 67, loop328_redo
loop328_done:
pop_eh
- for_undef_80:
+ for_undef_85:
.annotate "line", 139
find_lex $P332, "$lastlit"
set $S333, $P332
@@ -5280,7 +5288,7 @@
.namespace ["HLL";"Actions"]
-.sub "_block295" :anon :subid("31_1261064005.70696") :outer("30_1261064005.70696")
+.sub "_block295" :anon :subid("31_1266337339.18354") :outer("30_1266337339.18354")
.param pmc param_298
.annotate "line", 126
new $P297, "Undef"
@@ -5349,7 +5357,7 @@
.namespace ["HLL";"Actions"]
-.sub "quote_atom" :subid("32_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "quote_atom" :subid("32_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_359
.annotate "line", 147
new $P358, 'ExceptionHandler'
@@ -5361,13 +5369,13 @@
.annotate "line", 148
find_lex $P360, "$/"
find_lex $P363, "$/"
- unless_null $P363, vivify_81
+ unless_null $P363, vivify_86
new $P363, "Hash"
- vivify_81:
+ vivify_86:
set $P364, $P363["quote_escape"]
- unless_null $P364, vivify_82
+ unless_null $P364, vivify_87
new $P364, "Undef"
- vivify_82:
+ vivify_87:
if $P364, if_362
find_lex $P368, "$/"
set $S369, $P368
@@ -5376,13 +5384,13 @@
goto if_362_end
if_362:
find_lex $P365, "$/"
- unless_null $P365, vivify_83
+ unless_null $P365, vivify_88
new $P365, "Hash"
- vivify_83:
+ vivify_88:
set $P366, $P365["quote_escape"]
- unless_null $P366, vivify_84
+ unless_null $P366, vivify_89
new $P366, "Undef"
- vivify_84:
+ vivify_89:
$P367 = $P366."ast"()
set $P361, $P367
if_362_end:
@@ -5398,7 +5406,7 @@
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<backslash>" :subid("33_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "quote_escape:sym<backslash>" :subid("33_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_375
.annotate "line", 151
new $P374, 'ExceptionHandler'
@@ -5419,7 +5427,7 @@
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<stopper>" :subid("34_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "quote_escape:sym<stopper>" :subid("34_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_382
.annotate "line", 152
new $P381, 'ExceptionHandler'
@@ -5430,13 +5438,13 @@
.lex "$/", param_382
find_lex $P383, "$/"
find_lex $P384, "$/"
- unless_null $P384, vivify_85
+ unless_null $P384, vivify_90
new $P384, "Hash"
- vivify_85:
+ vivify_90:
set $P385, $P384["stopper"]
- unless_null $P385, vivify_86
+ unless_null $P385, vivify_91
new $P385, "Undef"
- vivify_86:
+ vivify_91:
set $S386, $P385
$P387 = $P383."!make"($S386)
.return ($P387)
@@ -5449,7 +5457,7 @@
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<bs>" :subid("35_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "quote_escape:sym<bs>" :subid("35_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_392
.annotate "line", 154
new $P391, 'ExceptionHandler'
@@ -5470,7 +5478,7 @@
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<nl>" :subid("36_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "quote_escape:sym<nl>" :subid("36_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_399
.annotate "line", 155
new $P398, 'ExceptionHandler'
@@ -5491,7 +5499,7 @@
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<cr>" :subid("37_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "quote_escape:sym<cr>" :subid("37_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_406
.annotate "line", 156
new $P405, 'ExceptionHandler'
@@ -5512,7 +5520,7 @@
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<tab>" :subid("38_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "quote_escape:sym<tab>" :subid("38_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_413
.annotate "line", 157
new $P412, 'ExceptionHandler'
@@ -5533,7 +5541,7 @@
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<hex>" :subid("39_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "quote_escape:sym<hex>" :subid("39_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_420
.annotate "line", 159
new $P419, 'ExceptionHandler'
@@ -5545,37 +5553,37 @@
.annotate "line", 160
find_lex $P421, "$/"
find_lex $P424, "$/"
- unless_null $P424, vivify_87
+ unless_null $P424, vivify_92
new $P424, "Hash"
- vivify_87:
+ vivify_92:
set $P425, $P424["hexint"]
- unless_null $P425, vivify_88
+ unless_null $P425, vivify_93
new $P425, "Undef"
- vivify_88:
+ vivify_93:
if $P425, if_423
find_lex $P428, "$/"
- unless_null $P428, vivify_89
+ unless_null $P428, vivify_94
new $P428, "Hash"
- vivify_89:
+ vivify_94:
set $P429, $P428["hexints"]
- unless_null $P429, vivify_90
+ unless_null $P429, vivify_95
new $P429, "Hash"
- vivify_90:
+ vivify_95:
set $P430, $P429["hexint"]
- unless_null $P430, vivify_91
+ unless_null $P430, vivify_96
new $P430, "Undef"
- vivify_91:
+ vivify_96:
set $P422, $P430
goto if_423_end
if_423:
find_lex $P426, "$/"
- unless_null $P426, vivify_92
+ unless_null $P426, vivify_97
new $P426, "Hash"
- vivify_92:
+ vivify_97:
set $P427, $P426["hexint"]
- unless_null $P427, vivify_93
+ unless_null $P427, vivify_98
new $P427, "Undef"
- vivify_93:
+ vivify_98:
set $P422, $P427
if_423_end:
$P431 = "ints_to_string"($P422)
@@ -5591,7 +5599,7 @@
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<oct>" :subid("40_1261064005.70696") :method :outer("11_1261064005.70696")
+.sub "quote_escape:sym<oct>" :subid("40_1266337339.18354") :method :outer("11_1266337339.18354")
.param pmc param_437
.annotate "line", 163
new $P436, 'ExceptionHandler'
@@ -5603,37 +5611,37 @@
.annotate "line", 164
find_lex $P438, "$/"
find_lex $P441, "$/"
- unless_null $P441, vivify_94
+ unless_null $P441, vivify_99
new $P441, "Hash"
- vivify_94:
+ vivify_99:
set $P442, $P441["octint"]
- unless_null $P442, vivify_95
+ unless_null $P442, vivify_100
new $P442, "Undef"
- vivify_95:
+ vivify_100:
if $P442, if_440
find_lex $P445, "$/"
- unless_null $P445, vivify_96
+ unless_null $P445, vivify_101
new $P445, "Hash"
- vivify_96:
+ vivify_101:
set $P446, $P445["octints"]
- unless_null $P446, vivify_97
+ unless_null $P446, vivify_102
new $P446, "Hash"
- vivify_97:
+ vivify_102:
set $P447, $P446["octint"]
- unless_null $P447, vivify_98
+ unless_null $P447, vivify_103
new $P447, "Undef"
- vivify_98:
+ vivify_103:
set $P439, $P447
goto if_440_end
if_440:
find_lex $P443, "$/"
- unless_null $P443, vivify_99
+ unless_null $P443, vivify_104
new $P443, "Hash"
- vivify_99:
+ vivify_104:
set $P444, $P443["octint"]
- unless_null $P444, vivify_100
+ unless_null $P444, vivify_105
new $P444, "Undef"
- vivify_100:
+ vivify_105:
set $P439, $P444
if_440_end:
$P448 = "ints_to_string"($P439)
@@ -5647,10 +5655,245 @@
.return ($P450)
.end
+
+.namespace ["HLL";"Actions"]
+.sub "quote_escape:sym<chr>" :subid("41_1266337339.18354") :method :outer("11_1266337339.18354")
+ .param pmc param_454
+.annotate "line", 167
+ new $P453, 'ExceptionHandler'
+ set_addr $P453, control_452
+ $P453."handle_types"(58)
+ push_eh $P453
+ .lex "self", self
+ .lex "$/", param_454
+.annotate "line", 168
+ find_lex $P455, "$/"
+ find_lex $P456, "$/"
+ unless_null $P456, vivify_106
+ new $P456, "Hash"
+ vivify_106:
+ set $P457, $P456["charspec"]
+ unless_null $P457, vivify_107
+ new $P457, "Undef"
+ vivify_107:
+ $P458 = $P457."ast"()
+ $P459 = $P455."!make"($P458)
+.annotate "line", 167
+ .return ($P459)
+ control_452:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P460, exception, "payload"
+ .return ($P460)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.sub "charname" :subid("42_1266337339.18354") :method :outer("11_1266337339.18354")
+ .param pmc param_464
+.annotate "line", 171
+ new $P463, 'ExceptionHandler'
+ set_addr $P463, control_462
+ $P463."handle_types"(58)
+ push_eh $P463
+ .lex "self", self
+ .lex "$/", param_464
+.annotate "line", 172
+ new $P465, "Undef"
+ .lex "$codepoint", $P465
+.annotate "line", 173
+ find_lex $P468, "$/"
+ unless_null $P468, vivify_108
+ new $P468, "Hash"
+ vivify_108:
+ set $P469, $P468["integer"]
+ unless_null $P469, vivify_109
+ new $P469, "Undef"
+ vivify_109:
+ if $P469, if_467
+.annotate "line", 174
+ $P473 = new ['CodeString']
+ find_lex $P474, "$/"
+ set $S475, $P474
+ $P476 = $P473."charname_to_ord"($S475)
+ set $P466, $P476
+.annotate "line", 173
+ goto if_467_end
+ if_467:
+ find_lex $P470, "$/"
+ unless_null $P470, vivify_110
+ new $P470, "Hash"
+ vivify_110:
+ set $P471, $P470["integer"]
+ unless_null $P471, vivify_111
+ new $P471, "Undef"
+ vivify_111:
+ $P472 = $P471."ast"()
+ set $P466, $P472
+ if_467_end:
+ store_lex "$codepoint", $P466
+.annotate "line", 175
+ find_lex $P478, "$codepoint"
+ set $N479, $P478
+ islt $I480, $N479, 0.0
+ unless $I480, if_477_end
+ find_lex $P481, "$/"
+ $P482 = $P481."CURSOR"()
+ new $P483, 'String'
+ set $P483, "Unrecognized character name "
+ find_lex $P484, "$/"
+ concat $P485, $P483, $P484
+ $P482."panic"($P485)
+ if_477_end:
+.annotate "line", 176
+ find_lex $P486, "$/"
+ find_lex $P487, "$codepoint"
+ set $I488, $P487
+ chr $S489, $I488
+ $P490 = $P486."!make"($S489)
+.annotate "line", 171
+ .return ($P490)
+ control_462:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P491, exception, "payload"
+ .return ($P491)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.sub "charnames" :subid("43_1266337339.18354") :method :outer("11_1266337339.18354")
+ .param pmc param_495
+.annotate "line", 179
+ .const 'Sub' $P504 = "44_1266337339.18354"
+ capture_lex $P504
+ new $P494, 'ExceptionHandler'
+ set_addr $P494, control_493
+ $P494."handle_types"(58)
+ push_eh $P494
+ .lex "self", self
+ .lex "$/", param_495
+.annotate "line", 180
+ new $P496, "Undef"
+ .lex "$str", $P496
+ new $P497, "String"
+ assign $P497, ""
+ store_lex "$str", $P497
+.annotate "line", 181
+ find_lex $P499, "$/"
+ unless_null $P499, vivify_112
+ new $P499, "Hash"
+ vivify_112:
+ set $P500, $P499["charname"]
+ unless_null $P500, vivify_113
+ new $P500, "Undef"
+ vivify_113:
+ defined $I501, $P500
+ unless $I501, for_undef_114
+ iter $P498, $P500
+ new $P511, 'ExceptionHandler'
+ set_addr $P511, loop510_handler
+ $P511."handle_types"(65, 67, 66)
+ push_eh $P511
+ loop510_test:
+ unless $P498, loop510_done
+ shift $P502, $P498
+ loop510_redo:
+ .const 'Sub' $P504 = "44_1266337339.18354"
+ capture_lex $P504
+ $P504($P502)
+ loop510_next:
+ goto loop510_test
+ loop510_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P512, exception, 'type'
+ eq $P512, 65, loop510_next
+ eq $P512, 67, loop510_redo
+ loop510_done:
+ pop_eh
+ for_undef_114:
+.annotate "line", 182
+ find_lex $P513, "$/"
+ find_lex $P514, "$str"
+ $P515 = $P513."!make"($P514)
+.annotate "line", 179
+ .return ($P515)
+ control_493:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P516, exception, "payload"
+ .return ($P516)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.sub "_block503" :anon :subid("44_1266337339.18354") :outer("43_1266337339.18354")
+ .param pmc param_505
+.annotate "line", 181
+ .lex "$_", param_505
+ find_lex $P506, "$str"
+ find_lex $P507, "$_"
+ $S508 = $P507."ast"()
+ concat $P509, $P506, $S508
+ store_lex "$str", $P509
+ .return ($P509)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.sub "charspec" :subid("45_1266337339.18354") :method :outer("11_1266337339.18354")
+ .param pmc param_520
+.annotate "line", 185
+ new $P519, 'ExceptionHandler'
+ set_addr $P519, control_518
+ $P519."handle_types"(58)
+ push_eh $P519
+ .lex "self", self
+ .lex "$/", param_520
+.annotate "line", 186
+ find_lex $P521, "$/"
+ find_lex $P524, "$/"
+ unless_null $P524, vivify_115
+ new $P524, "Hash"
+ vivify_115:
+ set $P525, $P524["charnames"]
+ unless_null $P525, vivify_116
+ new $P525, "Undef"
+ vivify_116:
+ if $P525, if_523
+ find_lex $P529, "$/"
+ $I530 = "string_to_int"($P529, 10)
+ chr $S531, $I530
+ new $P522, 'String'
+ set $P522, $S531
+ goto if_523_end
+ if_523:
+ find_lex $P526, "$/"
+ unless_null $P526, vivify_117
+ new $P526, "Hash"
+ vivify_117:
+ set $P527, $P526["charnames"]
+ unless_null $P527, vivify_118
+ new $P527, "Undef"
+ vivify_118:
+ $P528 = $P527."ast"()
+ set $P522, $P528
+ if_523_end:
+ $P532 = $P521."!make"($P522)
+.annotate "line", 185
+ .return ($P532)
+ control_518:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P533, exception, "payload"
+ .return ($P533)
+.end
+
### .include 'gen/hllcompiler.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1261064006.8204")
+.sub "_block11" :anon :subid("10_1266337340.21472")
.annotate "line", 0
get_hll_global $P14, ["HLL";"Compiler"], "_block13"
capture_lex $P14
@@ -5664,9 +5907,9 @@
.namespace []
-.sub "" :load :init :subid("post25") :outer("10_1261064006.8204")
+.sub "" :load :init :subid("post25") :outer("10_1266337340.21472")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1261064006.8204"
+ .const 'Sub' $P12 = "10_1266337340.21472"
.local pmc block
set block, $P12
.annotate "line", 2
@@ -5680,28 +5923,28 @@
.namespace ["HLL";"Compiler"]
-.sub "_block13" :subid("11_1261064006.8204") :outer("10_1261064006.8204")
+.sub "_block13" :subid("11_1266337340.21472") :outer("10_1266337340.21472")
.annotate "line", 6
- .const 'Sub' $P187 = "20_1261064006.8204"
+ .const 'Sub' $P187 = "20_1266337340.21472"
capture_lex $P187
- .const 'Sub' $P152 = "18_1261064006.8204"
+ .const 'Sub' $P152 = "18_1266337340.21472"
capture_lex $P152
- .const 'Sub' $P137 = "17_1261064006.8204"
+ .const 'Sub' $P137 = "17_1266337340.21472"
capture_lex $P137
- .const 'Sub' $P121 = "16_1261064006.8204"
+ .const 'Sub' $P121 = "16_1266337340.21472"
capture_lex $P121
- .const 'Sub' $P32 = "13_1261064006.8204"
+ .const 'Sub' $P32 = "13_1266337340.21472"
capture_lex $P32
- .const 'Sub' $P15 = "12_1261064006.8204"
+ .const 'Sub' $P15 = "12_1266337340.21472"
capture_lex $P15
.annotate "line", 14
- .const 'Sub' $P15 = "12_1261064006.8204"
+ .const 'Sub' $P15 = "12_1266337340.21472"
capture_lex $P15
.lex "value_type", $P15
.annotate "line", 10
find_lex $P31, "value_type"
.annotate "line", 69
- .const 'Sub' $P187 = "20_1261064006.8204"
+ .const 'Sub' $P187 = "20_1266337340.21472"
capture_lex $P187
.annotate "line", 6
.return ($P187)
@@ -5709,7 +5952,7 @@
.namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post26") :outer("11_1261064006.8204")
+.sub "" :load :init :subid("post26") :outer("11_1266337340.21472")
.annotate "line", 6
get_hll_global $P14, ["HLL";"Compiler"], "_block13"
.local pmc block
@@ -5721,7 +5964,7 @@
.namespace ["HLL";"Compiler"]
-.sub "value_type" :subid("12_1261064006.8204") :outer("11_1261064006.8204")
+.sub "value_type" :subid("12_1266337340.21472") :outer("11_1266337340.21472")
.param pmc param_18
.annotate "line", 14
new $P17, 'ExceptionHandler'
@@ -5765,15 +6008,15 @@
.namespace ["HLL";"Compiler"]
-.sub "get_exports" :subid("13_1261064006.8204") :method :outer("11_1261064006.8204")
+.sub "get_exports" :subid("13_1266337340.21472") :method :outer("11_1266337340.21472")
.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_1261064006.8204"
+ .const 'Sub' $P104 = "15_1266337340.21472"
capture_lex $P104
- .const 'Sub' $P83 = "14_1261064006.8204"
+ .const 'Sub' $P83 = "14_1266337340.21472"
capture_lex $P83
new $P34, 'ExceptionHandler'
set_addr $P34, control_33
@@ -5879,7 +6122,7 @@
unless $P99, loop116_done
shift $P102, $P99
loop116_redo:
- .const 'Sub' $P104 = "15_1261064006.8204"
+ .const 'Sub' $P104 = "15_1266337340.21472"
capture_lex $P104
$P104($P102)
loop116_next:
@@ -5909,7 +6152,7 @@
unless $P78, loop96_done
shift $P81, $P78
loop96_redo:
- .const 'Sub' $P83 = "14_1261064006.8204"
+ .const 'Sub' $P83 = "14_1266337340.21472"
capture_lex $P83
$P83($P81)
loop96_next:
@@ -5937,7 +6180,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block103" :anon :subid("15_1261064006.8204") :outer("13_1261064006.8204")
+.sub "_block103" :anon :subid("15_1266337340.21472") :outer("13_1266337340.21472")
.param pmc param_106
.annotate "line", 40
new $P105, "Undef"
@@ -5969,7 +6212,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block82" :anon :subid("14_1261064006.8204") :outer("13_1261064006.8204")
+.sub "_block82" :anon :subid("14_1266337340.21472") :outer("13_1266337340.21472")
.param pmc param_85
.annotate "line", 34
new $P84, "Undef"
@@ -6008,7 +6251,7 @@
.namespace ["HLL";"Compiler"]
-.sub "get_module" :subid("16_1261064006.8204") :method :outer("11_1261064006.8204")
+.sub "get_module" :subid("16_1266337340.21472") :method :outer("11_1266337340.21472")
.param pmc param_124
.annotate "line", 47
new $P123, 'ExceptionHandler'
@@ -6048,7 +6291,7 @@
.namespace ["HLL";"Compiler"]
-.sub "language" :subid("17_1261064006.8204") :method :outer("11_1261064006.8204")
+.sub "language" :subid("17_1266337340.21472") :method :outer("11_1266337340.21472")
.param pmc param_140 :optional
.param int has_param_140 :opt_flag
.annotate "line", 53
@@ -6092,10 +6335,10 @@
.namespace ["HLL";"Compiler"]
-.sub "load_module" :subid("18_1261064006.8204") :method :outer("11_1261064006.8204")
+.sub "load_module" :subid("18_1266337340.21472") :method :outer("11_1266337340.21472")
.param pmc param_155
.annotate "line", 61
- .const 'Sub' $P165 = "19_1261064006.8204"
+ .const 'Sub' $P165 = "19_1266337340.21472"
capture_lex $P165
new $P154, 'ExceptionHandler'
set_addr $P154, control_153
@@ -6122,7 +6365,7 @@
assign $P163, 0
store_lex "$loaded", $P163
.annotate "line", 64
- .const 'Sub' $P165 = "19_1261064006.8204"
+ .const 'Sub' $P165 = "19_1266337340.21472"
capture_lex $P165
$P165()
.annotate "line", 65
@@ -6151,7 +6394,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block164" :anon :subid("19_1261064006.8204") :outer("18_1261064006.8204")
+.sub "_block164" :anon :subid("19_1266337340.21472") :outer("18_1266337340.21472")
.annotate "line", 64
new $P172, 'ExceptionHandler'
set_addr $P172, control_171
@@ -6184,11 +6427,11 @@
.namespace ["HLL";"Compiler"]
-.sub "import" :subid("20_1261064006.8204") :method :outer("11_1261064006.8204")
+.sub "import" :subid("20_1266337340.21472") :method :outer("11_1266337340.21472")
.param pmc param_190
.param pmc param_191
.annotate "line", 69
- .const 'Sub' $P197 = "21_1261064006.8204"
+ .const 'Sub' $P197 = "21_1266337340.21472"
capture_lex $P197
new $P189, 'ExceptionHandler'
set_addr $P189, control_188
@@ -6210,7 +6453,7 @@
unless $P192, loop278_done
shift $P195, $P192
loop278_redo:
- .const 'Sub' $P197 = "21_1261064006.8204"
+ .const 'Sub' $P197 = "21_1266337340.21472"
capture_lex $P197
$P197($P195)
loop278_next:
@@ -6235,14 +6478,14 @@
.namespace ["HLL";"Compiler"]
-.sub "_block196" :anon :subid("21_1261064006.8204") :outer("20_1261064006.8204")
+.sub "_block196" :anon :subid("21_1266337340.21472") :outer("20_1266337340.21472")
.param pmc param_200
.annotate "line", 70
- .const 'Sub' $P267 = "24_1261064006.8204"
+ .const 'Sub' $P267 = "24_1266337340.21472"
capture_lex $P267
- .const 'Sub' $P247 = "23_1261064006.8204"
+ .const 'Sub' $P247 = "23_1266337340.21472"
capture_lex $P247
- .const 'Sub' $P218 = "22_1261064006.8204"
+ .const 'Sub' $P218 = "22_1266337340.21472"
capture_lex $P218
.annotate "line", 71
new $P198, "Undef"
@@ -6290,7 +6533,7 @@
unless $P262, loop275_done
shift $P265, $P262
loop275_redo:
- .const 'Sub' $P267 = "24_1261064006.8204"
+ .const 'Sub' $P267 = "24_1266337340.21472"
capture_lex $P267
$P267($P265)
loop275_next:
@@ -6322,7 +6565,7 @@
unless $P242, loop259_done
shift $P245, $P242
loop259_redo:
- .const 'Sub' $P247 = "23_1261064006.8204"
+ .const 'Sub' $P247 = "23_1266337340.21472"
capture_lex $P247
$P247($P245)
loop259_next:
@@ -6356,7 +6599,7 @@
unless $P213, loop231_done
shift $P216, $P213
loop231_redo:
- .const 'Sub' $P218 = "22_1261064006.8204"
+ .const 'Sub' $P218 = "22_1266337340.21472"
capture_lex $P218
$P218($P216)
loop231_next:
@@ -6379,7 +6622,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block266" :anon :subid("24_1261064006.8204") :outer("21_1261064006.8204")
+.sub "_block266" :anon :subid("24_1266337340.21472") :outer("21_1266337340.21472")
.param pmc param_268
.annotate "line", 80
.lex "$_", param_268
@@ -6399,7 +6642,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block246" :anon :subid("23_1261064006.8204") :outer("21_1261064006.8204")
+.sub "_block246" :anon :subid("23_1266337340.21472") :outer("21_1266337340.21472")
.param pmc param_248
.annotate "line", 77
.lex "$_", param_248
@@ -6419,7 +6662,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block217" :anon :subid("22_1261064006.8204") :outer("21_1261064006.8204")
+.sub "_block217" :anon :subid("22_1266337340.21472") :outer("21_1266337340.21472")
.param pmc param_219
.annotate "line", 74
.lex "$_", param_219
Modified: branches/rm_cflags/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- branches/rm_cflags/ext/nqp-rx/src/stage0/NQP-s0.pir Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/ext/nqp-rx/src/stage0/NQP-s0.pir Tue Feb 16 21:05:51 2010 (r44046)
@@ -15,7 +15,7 @@
### .include 'gen/nqp-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1261064023.05912")
+.sub "_block11" :anon :subid("10_1266337354.28388")
.annotate "line", 0
get_hll_global $P14, ["NQP";"Grammar"], "_block13"
capture_lex $P14
@@ -29,9 +29,9 @@
.namespace []
-.sub "" :load :init :subid("post331") :outer("10_1261064023.05912")
+.sub "" :load :init :subid("post331") :outer("10_1266337354.28388")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1261064023.05912"
+ .const 'Sub' $P12 = "10_1266337354.28388"
.local pmc block
set block, $P12
$P1292 = get_root_global ["parrot"], "P6metaclass"
@@ -40,293 +40,293 @@
.namespace ["NQP";"Grammar"]
-.sub "_block13" :subid("11_1261064023.05912") :outer("10_1261064023.05912")
+.sub "_block13" :subid("11_1266337354.28388") :outer("10_1266337354.28388")
.annotate "line", 4
get_hll_global $P1235, ["NQP";"Regex"], "_block1234"
capture_lex $P1235
- .const 'Sub' $P1221 = "317_1261064023.05912"
+ .const 'Sub' $P1221 = "317_1266337354.28388"
capture_lex $P1221
- .const 'Sub' $P1215 = "315_1261064023.05912"
+ .const 'Sub' $P1215 = "315_1266337354.28388"
capture_lex $P1215
- .const 'Sub' $P1209 = "313_1261064023.05912"
+ .const 'Sub' $P1209 = "313_1266337354.28388"
capture_lex $P1209
- .const 'Sub' $P1202 = "311_1261064023.05912"
+ .const 'Sub' $P1202 = "311_1266337354.28388"
capture_lex $P1202
- .const 'Sub' $P1195 = "309_1261064023.05912"
+ .const 'Sub' $P1195 = "309_1266337354.28388"
capture_lex $P1195
- .const 'Sub' $P1188 = "307_1261064023.05912"
+ .const 'Sub' $P1188 = "307_1266337354.28388"
capture_lex $P1188
- .const 'Sub' $P1181 = "305_1261064023.05912"
+ .const 'Sub' $P1181 = "305_1266337354.28388"
capture_lex $P1181
- .const 'Sub' $P1175 = "303_1261064023.05912"
+ .const 'Sub' $P1175 = "303_1266337354.28388"
capture_lex $P1175
- .const 'Sub' $P1168 = "301_1261064023.05912"
+ .const 'Sub' $P1168 = "301_1266337354.28388"
capture_lex $P1168
- .const 'Sub' $P1161 = "299_1261064023.05912"
+ .const 'Sub' $P1161 = "299_1266337354.28388"
capture_lex $P1161
- .const 'Sub' $P1154 = "297_1261064023.05912"
+ .const 'Sub' $P1154 = "297_1266337354.28388"
capture_lex $P1154
- .const 'Sub' $P1147 = "295_1261064023.05912"
+ .const 'Sub' $P1147 = "295_1266337354.28388"
capture_lex $P1147
- .const 'Sub' $P1140 = "293_1261064023.05912"
+ .const 'Sub' $P1140 = "293_1266337354.28388"
capture_lex $P1140
- .const 'Sub' $P1133 = "291_1261064023.05912"
+ .const 'Sub' $P1133 = "291_1266337354.28388"
capture_lex $P1133
- .const 'Sub' $P1126 = "289_1261064023.05912"
+ .const 'Sub' $P1126 = "289_1266337354.28388"
capture_lex $P1126
- .const 'Sub' $P1119 = "287_1261064023.05912"
+ .const 'Sub' $P1119 = "287_1266337354.28388"
capture_lex $P1119
- .const 'Sub' $P1112 = "285_1261064023.05912"
+ .const 'Sub' $P1112 = "285_1266337354.28388"
capture_lex $P1112
- .const 'Sub' $P1105 = "283_1261064023.05912"
+ .const 'Sub' $P1105 = "283_1266337354.28388"
capture_lex $P1105
- .const 'Sub' $P1098 = "281_1261064023.05912"
+ .const 'Sub' $P1098 = "281_1266337354.28388"
capture_lex $P1098
- .const 'Sub' $P1091 = "279_1261064023.05912"
+ .const 'Sub' $P1091 = "279_1266337354.28388"
capture_lex $P1091
- .const 'Sub' $P1084 = "277_1261064023.05912"
+ .const 'Sub' $P1084 = "277_1266337354.28388"
capture_lex $P1084
- .const 'Sub' $P1077 = "275_1261064023.05912"
+ .const 'Sub' $P1077 = "275_1266337354.28388"
capture_lex $P1077
- .const 'Sub' $P1070 = "273_1261064023.05912"
+ .const 'Sub' $P1070 = "273_1266337354.28388"
capture_lex $P1070
- .const 'Sub' $P1063 = "271_1261064023.05912"
+ .const 'Sub' $P1063 = "271_1266337354.28388"
capture_lex $P1063
- .const 'Sub' $P1056 = "269_1261064023.05912"
+ .const 'Sub' $P1056 = "269_1266337354.28388"
capture_lex $P1056
- .const 'Sub' $P1049 = "267_1261064023.05912"
+ .const 'Sub' $P1049 = "267_1266337354.28388"
capture_lex $P1049
- .const 'Sub' $P1042 = "265_1261064023.05912"
+ .const 'Sub' $P1042 = "265_1266337354.28388"
capture_lex $P1042
- .const 'Sub' $P1035 = "263_1261064023.05912"
+ .const 'Sub' $P1035 = "263_1266337354.28388"
capture_lex $P1035
- .const 'Sub' $P1028 = "261_1261064023.05912"
+ .const 'Sub' $P1028 = "261_1266337354.28388"
capture_lex $P1028
- .const 'Sub' $P1021 = "259_1261064023.05912"
+ .const 'Sub' $P1021 = "259_1266337354.28388"
capture_lex $P1021
- .const 'Sub' $P1014 = "257_1261064023.05912"
+ .const 'Sub' $P1014 = "257_1266337354.28388"
capture_lex $P1014
- .const 'Sub' $P1007 = "255_1261064023.05912"
+ .const 'Sub' $P1007 = "255_1266337354.28388"
capture_lex $P1007
- .const 'Sub' $P1000 = "253_1261064023.05912"
+ .const 'Sub' $P1000 = "253_1266337354.28388"
capture_lex $P1000
- .const 'Sub' $P993 = "251_1261064023.05912"
+ .const 'Sub' $P993 = "251_1266337354.28388"
capture_lex $P993
- .const 'Sub' $P987 = "249_1261064023.05912"
+ .const 'Sub' $P987 = "249_1266337354.28388"
capture_lex $P987
- .const 'Sub' $P980 = "247_1261064023.05912"
+ .const 'Sub' $P980 = "247_1266337354.28388"
capture_lex $P980
- .const 'Sub' $P973 = "245_1261064023.05912"
+ .const 'Sub' $P973 = "245_1266337354.28388"
capture_lex $P973
- .const 'Sub' $P966 = "243_1261064023.05912"
+ .const 'Sub' $P966 = "243_1266337354.28388"
capture_lex $P966
- .const 'Sub' $P959 = "241_1261064023.05912"
+ .const 'Sub' $P959 = "241_1266337354.28388"
capture_lex $P959
- .const 'Sub' $P952 = "239_1261064023.05912"
+ .const 'Sub' $P952 = "239_1266337354.28388"
capture_lex $P952
- .const 'Sub' $P945 = "237_1261064023.05912"
+ .const 'Sub' $P945 = "237_1266337354.28388"
capture_lex $P945
- .const 'Sub' $P938 = "235_1261064023.05912"
+ .const 'Sub' $P938 = "235_1266337354.28388"
capture_lex $P938
- .const 'Sub' $P932 = "233_1261064023.05912"
+ .const 'Sub' $P932 = "233_1266337354.28388"
capture_lex $P932
- .const 'Sub' $P926 = "231_1261064023.05912"
+ .const 'Sub' $P926 = "231_1266337354.28388"
capture_lex $P926
- .const 'Sub' $P921 = "229_1261064023.05912"
+ .const 'Sub' $P921 = "229_1266337354.28388"
capture_lex $P921
- .const 'Sub' $P915 = "227_1261064023.05912"
+ .const 'Sub' $P915 = "227_1266337354.28388"
capture_lex $P915
- .const 'Sub' $P909 = "225_1261064023.05912"
+ .const 'Sub' $P909 = "225_1266337354.28388"
capture_lex $P909
- .const 'Sub' $P904 = "223_1261064023.05912"
+ .const 'Sub' $P904 = "223_1266337354.28388"
capture_lex $P904
- .const 'Sub' $P899 = "221_1261064023.05912"
+ .const 'Sub' $P899 = "221_1266337354.28388"
capture_lex $P899
- .const 'Sub' $P892 = "219_1261064023.05912"
+ .const 'Sub' $P892 = "219_1266337354.28388"
capture_lex $P892
- .const 'Sub' $P884 = "217_1261064023.05912"
+ .const 'Sub' $P884 = "217_1266337354.28388"
capture_lex $P884
- .const 'Sub' $P879 = "215_1261064023.05912"
+ .const 'Sub' $P879 = "215_1266337354.28388"
capture_lex $P879
- .const 'Sub' $P874 = "213_1261064023.05912"
+ .const 'Sub' $P874 = "213_1266337354.28388"
capture_lex $P874
- .const 'Sub' $P869 = "211_1261064023.05912"
+ .const 'Sub' $P869 = "211_1266337354.28388"
capture_lex $P869
- .const 'Sub' $P861 = "209_1261064023.05912"
+ .const 'Sub' $P861 = "209_1266337354.28388"
capture_lex $P861
- .const 'Sub' $P853 = "207_1261064023.05912"
+ .const 'Sub' $P853 = "207_1266337354.28388"
capture_lex $P853
- .const 'Sub' $P848 = "205_1261064023.05912"
+ .const 'Sub' $P848 = "205_1266337354.28388"
capture_lex $P848
- .const 'Sub' $P843 = "203_1261064023.05912"
+ .const 'Sub' $P843 = "203_1266337354.28388"
capture_lex $P843
- .const 'Sub' $P837 = "201_1261064023.05912"
+ .const 'Sub' $P837 = "201_1266337354.28388"
capture_lex $P837
- .const 'Sub' $P831 = "199_1261064023.05912"
+ .const 'Sub' $P831 = "199_1266337354.28388"
capture_lex $P831
- .const 'Sub' $P825 = "197_1261064023.05912"
+ .const 'Sub' $P825 = "197_1266337354.28388"
capture_lex $P825
- .const 'Sub' $P819 = "195_1261064023.05912"
+ .const 'Sub' $P819 = "195_1266337354.28388"
capture_lex $P819
- .const 'Sub' $P813 = "193_1261064023.05912"
+ .const 'Sub' $P813 = "193_1266337354.28388"
capture_lex $P813
- .const 'Sub' $P808 = "191_1261064023.05912"
+ .const 'Sub' $P808 = "191_1266337354.28388"
capture_lex $P808
- .const 'Sub' $P803 = "189_1261064023.05912"
+ .const 'Sub' $P803 = "189_1266337354.28388"
capture_lex $P803
- .const 'Sub' $P790 = "185_1261064023.05912"
+ .const 'Sub' $P790 = "185_1266337354.28388"
capture_lex $P790
- .const 'Sub' $P782 = "183_1261064023.05912"
+ .const 'Sub' $P782 = "183_1266337354.28388"
capture_lex $P782
- .const 'Sub' $P776 = "181_1261064023.05912"
+ .const 'Sub' $P776 = "181_1266337354.28388"
capture_lex $P776
- .const 'Sub' $P769 = "179_1261064023.05912"
+ .const 'Sub' $P769 = "179_1266337354.28388"
capture_lex $P769
- .const 'Sub' $P763 = "177_1261064023.05912"
+ .const 'Sub' $P763 = "177_1266337354.28388"
capture_lex $P763
- .const 'Sub' $P755 = "175_1261064023.05912"
+ .const 'Sub' $P755 = "175_1266337354.28388"
capture_lex $P755
- .const 'Sub' $P747 = "173_1261064023.05912"
+ .const 'Sub' $P747 = "173_1266337354.28388"
capture_lex $P747
- .const 'Sub' $P741 = "171_1261064023.05912"
+ .const 'Sub' $P741 = "171_1266337354.28388"
capture_lex $P741
- .const 'Sub' $P735 = "169_1261064023.05912"
+ .const 'Sub' $P735 = "169_1266337354.28388"
capture_lex $P735
- .const 'Sub' $P720 = "165_1261064023.05912"
+ .const 'Sub' $P720 = "165_1266337354.28388"
capture_lex $P720
- .const 'Sub' $P688 = "163_1261064023.05912"
+ .const 'Sub' $P688 = "163_1266337354.28388"
capture_lex $P688
- .const 'Sub' $P680 = "161_1261064023.05912"
+ .const 'Sub' $P680 = "161_1266337354.28388"
capture_lex $P680
- .const 'Sub' $P674 = "159_1261064023.05912"
+ .const 'Sub' $P674 = "159_1266337354.28388"
capture_lex $P674
- .const 'Sub' $P664 = "157_1261064023.05912"
+ .const 'Sub' $P664 = "157_1266337354.28388"
capture_lex $P664
- .const 'Sub' $P649 = "155_1261064023.05912"
+ .const 'Sub' $P649 = "155_1266337354.28388"
capture_lex $P649
- .const 'Sub' $P640 = "153_1261064023.05912"
+ .const 'Sub' $P640 = "153_1266337354.28388"
capture_lex $P640
- .const 'Sub' $P621 = "151_1261064023.05912"
+ .const 'Sub' $P621 = "151_1266337354.28388"
capture_lex $P621
- .const 'Sub' $P597 = "149_1261064023.05912"
+ .const 'Sub' $P597 = "149_1266337354.28388"
capture_lex $P597
- .const 'Sub' $P590 = "147_1261064023.05912"
+ .const 'Sub' $P590 = "147_1266337354.28388"
capture_lex $P590
- .const 'Sub' $P583 = "145_1261064023.05912"
+ .const 'Sub' $P583 = "145_1266337354.28388"
capture_lex $P583
- .const 'Sub' $P573 = "141_1261064023.05912"
+ .const 'Sub' $P573 = "141_1266337354.28388"
capture_lex $P573
- .const 'Sub' $P562 = "139_1261064023.05912"
+ .const 'Sub' $P562 = "139_1266337354.28388"
capture_lex $P562
- .const 'Sub' $P555 = "137_1261064023.05912"
+ .const 'Sub' $P555 = "137_1266337354.28388"
capture_lex $P555
- .const 'Sub' $P548 = "135_1261064023.05912"
+ .const 'Sub' $P548 = "135_1266337354.28388"
capture_lex $P548
- .const 'Sub' $P541 = "133_1261064023.05912"
+ .const 'Sub' $P541 = "133_1266337354.28388"
capture_lex $P541
- .const 'Sub' $P514 = "129_1261064023.05912"
+ .const 'Sub' $P514 = "129_1266337354.28388"
capture_lex $P514
- .const 'Sub' $P505 = "127_1261064023.05912"
+ .const 'Sub' $P505 = "127_1266337354.28388"
capture_lex $P505
- .const 'Sub' $P498 = "125_1261064023.05912"
+ .const 'Sub' $P498 = "125_1266337354.28388"
capture_lex $P498
- .const 'Sub' $P489 = "121_1261064023.05912"
+ .const 'Sub' $P489 = "121_1266337354.28388"
capture_lex $P489
- .const 'Sub' $P484 = "119_1261064023.05912"
+ .const 'Sub' $P484 = "119_1266337354.28388"
capture_lex $P484
- .const 'Sub' $P472 = "117_1261064023.05912"
+ .const 'Sub' $P472 = "117_1266337354.28388"
capture_lex $P472
- .const 'Sub' $P460 = "115_1261064023.05912"
+ .const 'Sub' $P460 = "115_1266337354.28388"
capture_lex $P460
- .const 'Sub' $P452 = "113_1261064023.05912"
+ .const 'Sub' $P452 = "113_1266337354.28388"
capture_lex $P452
- .const 'Sub' $P447 = "111_1261064023.05912"
+ .const 'Sub' $P447 = "111_1266337354.28388"
capture_lex $P447
- .const 'Sub' $P441 = "109_1261064023.05912"
+ .const 'Sub' $P441 = "109_1266337354.28388"
capture_lex $P441
- .const 'Sub' $P435 = "107_1261064023.05912"
+ .const 'Sub' $P435 = "107_1266337354.28388"
capture_lex $P435
- .const 'Sub' $P429 = "105_1261064023.05912"
+ .const 'Sub' $P429 = "105_1266337354.28388"
capture_lex $P429
- .const 'Sub' $P423 = "103_1261064023.05912"
+ .const 'Sub' $P423 = "103_1266337354.28388"
capture_lex $P423
- .const 'Sub' $P417 = "101_1261064023.05912"
+ .const 'Sub' $P417 = "101_1266337354.28388"
capture_lex $P417
- .const 'Sub' $P411 = "99_1261064023.05912"
+ .const 'Sub' $P411 = "99_1266337354.28388"
capture_lex $P411
- .const 'Sub' $P405 = "97_1261064023.05912"
+ .const 'Sub' $P405 = "97_1266337354.28388"
capture_lex $P405
- .const 'Sub' $P399 = "95_1261064023.05912"
+ .const 'Sub' $P399 = "95_1266337354.28388"
capture_lex $P399
- .const 'Sub' $P391 = "93_1261064023.05912"
+ .const 'Sub' $P391 = "93_1266337354.28388"
capture_lex $P391
- .const 'Sub' $P383 = "91_1261064023.05912"
+ .const 'Sub' $P383 = "91_1266337354.28388"
capture_lex $P383
- .const 'Sub' $P371 = "87_1261064023.05912"
+ .const 'Sub' $P371 = "87_1266337354.28388"
capture_lex $P371
- .const 'Sub' $P363 = "85_1261064023.05912"
+ .const 'Sub' $P363 = "85_1266337354.28388"
capture_lex $P363
- .const 'Sub' $P353 = "81_1261064023.05912"
+ .const 'Sub' $P353 = "81_1266337354.28388"
capture_lex $P353
- .const 'Sub' $P346 = "79_1261064023.05912"
+ .const 'Sub' $P346 = "79_1266337354.28388"
capture_lex $P346
- .const 'Sub' $P339 = "77_1261064023.05912"
+ .const 'Sub' $P339 = "77_1266337354.28388"
capture_lex $P339
- .const 'Sub' $P327 = "73_1261064023.05912"
+ .const 'Sub' $P327 = "73_1266337354.28388"
capture_lex $P327
- .const 'Sub' $P319 = "71_1261064023.05912"
+ .const 'Sub' $P319 = "71_1266337354.28388"
capture_lex $P319
- .const 'Sub' $P311 = "69_1261064023.05912"
+ .const 'Sub' $P311 = "69_1266337354.28388"
capture_lex $P311
- .const 'Sub' $P291 = "67_1261064023.05912"
+ .const 'Sub' $P291 = "67_1266337354.28388"
capture_lex $P291
- .const 'Sub' $P282 = "65_1261064023.05912"
+ .const 'Sub' $P282 = "65_1266337354.28388"
capture_lex $P282
- .const 'Sub' $P264 = "62_1261064023.05912"
+ .const 'Sub' $P264 = "62_1266337354.28388"
capture_lex $P264
- .const 'Sub' $P244 = "60_1261064023.05912"
+ .const 'Sub' $P244 = "60_1266337354.28388"
capture_lex $P244
- .const 'Sub' $P235 = "56_1261064023.05912"
+ .const 'Sub' $P235 = "56_1266337354.28388"
capture_lex $P235
- .const 'Sub' $P230 = "54_1261064023.05912"
+ .const 'Sub' $P230 = "54_1266337354.28388"
capture_lex $P230
- .const 'Sub' $P221 = "50_1261064023.05912"
+ .const 'Sub' $P221 = "50_1266337354.28388"
capture_lex $P221
- .const 'Sub' $P216 = "48_1261064023.05912"
+ .const 'Sub' $P216 = "48_1266337354.28388"
capture_lex $P216
- .const 'Sub' $P208 = "46_1261064023.05912"
+ .const 'Sub' $P208 = "46_1266337354.28388"
capture_lex $P208
- .const 'Sub' $P201 = "44_1261064023.05912"
+ .const 'Sub' $P201 = "44_1266337354.28388"
capture_lex $P201
- .const 'Sub' $P195 = "42_1261064023.05912"
+ .const 'Sub' $P195 = "42_1266337354.28388"
capture_lex $P195
- .const 'Sub' $P187 = "40_1261064023.05912"
+ .const 'Sub' $P187 = "40_1266337354.28388"
capture_lex $P187
- .const 'Sub' $P181 = "38_1261064023.05912"
+ .const 'Sub' $P181 = "38_1266337354.28388"
capture_lex $P181
- .const 'Sub' $P175 = "36_1261064023.05912"
+ .const 'Sub' $P175 = "36_1266337354.28388"
capture_lex $P175
- .const 'Sub' $P159 = "33_1261064023.05912"
+ .const 'Sub' $P159 = "33_1266337354.28388"
capture_lex $P159
- .const 'Sub' $P146 = "31_1261064023.05912"
+ .const 'Sub' $P146 = "31_1266337354.28388"
capture_lex $P146
- .const 'Sub' $P139 = "29_1261064023.05912"
+ .const 'Sub' $P139 = "29_1266337354.28388"
capture_lex $P139
- .const 'Sub' $P96 = "26_1261064023.05912"
+ .const 'Sub' $P96 = "26_1266337354.28388"
capture_lex $P96
- .const 'Sub' $P78 = "23_1261064023.05912"
+ .const 'Sub' $P78 = "23_1266337354.28388"
capture_lex $P78
- .const 'Sub' $P68 = "21_1261064023.05912"
+ .const 'Sub' $P68 = "21_1266337354.28388"
capture_lex $P68
- .const 'Sub' $P54 = "19_1261064023.05912"
+ .const 'Sub' $P54 = "19_1266337354.28388"
capture_lex $P54
- .const 'Sub' $P46 = "17_1261064023.05912"
+ .const 'Sub' $P46 = "17_1266337354.28388"
capture_lex $P46
- .const 'Sub' $P39 = "15_1261064023.05912"
+ .const 'Sub' $P39 = "15_1266337354.28388"
capture_lex $P39
- .const 'Sub' $P33 = "13_1261064023.05912"
+ .const 'Sub' $P33 = "13_1266337354.28388"
capture_lex $P33
- .const 'Sub' $P15 = "12_1261064023.05912"
+ .const 'Sub' $P15 = "12_1266337354.28388"
capture_lex $P15
.annotate "line", 527
get_hll_global $P1235, ["NQP";"Regex"], "_block1234"
@@ -338,7 +338,7 @@
.namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post332") :outer("11_1261064023.05912")
+.sub "" :load :init :subid("post332") :outer("11_1266337354.28388")
.annotate "line", 4
get_hll_global $P14, ["NQP";"Grammar"], "_block13"
.local pmc block
@@ -395,7 +395,7 @@
.namespace ["NQP";"Grammar"]
-.sub "TOP" :subid("12_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "TOP" :subid("12_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
new $P17, 'ExceptionHandler'
set_addr $P17, control_16
@@ -478,7 +478,7 @@
.namespace ["NQP";"Grammar"]
-.sub "identifier" :subid("13_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "identifier" :subid("13_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx34_tgt
.local int rx34_pos
@@ -536,7 +536,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier" :subid("14_1261064023.05912") :method
+.sub "!PREFIX__identifier" :subid("14_1266337354.28388") :method
.annotate "line", 4
$P36 = self."!PREFIX__!subrule"("ident", "")
new $P37, "ResizablePMCArray"
@@ -546,7 +546,7 @@
.namespace ["NQP";"Grammar"]
-.sub "name" :subid("15_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "name" :subid("15_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx40_tgt
.local int rx40_pos
@@ -620,7 +620,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name" :subid("16_1261064023.05912") :method
+.sub "!PREFIX__name" :subid("16_1266337354.28388") :method
.annotate "line", 4
new $P42, "ResizablePMCArray"
push $P42, ""
@@ -629,7 +629,7 @@
.namespace ["NQP";"Grammar"]
-.sub "deflongname" :subid("17_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "deflongname" :subid("17_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx47_tgt
.local int rx47_pos
@@ -702,7 +702,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname" :subid("18_1261064023.05912") :method
+.sub "!PREFIX__deflongname" :subid("18_1266337354.28388") :method
.annotate "line", 4
$P49 = self."!PREFIX__!subrule"("identifier", "")
new $P50, "ResizablePMCArray"
@@ -712,7 +712,7 @@
.namespace ["NQP";"Grammar"]
-.sub "ENDSTMT" :subid("19_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "ENDSTMT" :subid("19_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx55_tgt
.local int rx55_pos
@@ -844,7 +844,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT" :subid("20_1261064023.05912") :method
+.sub "!PREFIX__ENDSTMT" :subid("20_1266337354.28388") :method
.annotate "line", 4
new $P57, "ResizablePMCArray"
push $P57, ""
@@ -853,7 +853,7 @@
.namespace ["NQP";"Grammar"]
-.sub "ws" :subid("21_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "ws" :subid("21_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx69_tgt
.local int rx69_pos
@@ -979,7 +979,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws" :subid("22_1261064023.05912") :method
+.sub "!PREFIX__ws" :subid("22_1266337354.28388") :method
.annotate "line", 4
new $P71, "ResizablePMCArray"
push $P71, ""
@@ -989,9 +989,9 @@
.namespace ["NQP";"Grammar"]
-.sub "unv" :subid("23_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "unv" :subid("23_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
- .const 'Sub' $P86 = "25_1261064023.05912"
+ .const 'Sub' $P86 = "25_1266337354.28388"
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_1261064023.05912"
+ .const 'Sub' $P86 = "25_1266337354.28388"
capture_lex $P86
$P10 = rx79_cur."before"($P86)
unless $P10, rx79_fail
@@ -1116,7 +1116,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv" :subid("24_1261064023.05912") :method
+.sub "!PREFIX__unv" :subid("24_1266337354.28388") :method
.annotate "line", 4
new $P81, "ResizablePMCArray"
push $P81, ""
@@ -1127,7 +1127,7 @@
.namespace ["NQP";"Grammar"]
-.sub "_block85" :anon :subid("25_1261064023.05912") :method :outer("23_1261064023.05912")
+.sub "_block85" :anon :subid("25_1266337354.28388") :method :outer("23_1266337354.28388")
.annotate "line", 44
.local string rx87_tgt
.local int rx87_pos
@@ -1217,9 +1217,9 @@
.namespace ["NQP";"Grammar"]
-.sub "pod_comment" :subid("26_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "pod_comment" :subid("26_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
- .const 'Sub' $P131 = "28_1261064023.05912"
+ .const 'Sub' $P131 = "28_1266337354.28388"
capture_lex $P131
.local string rx97_tgt
.local int rx97_pos
@@ -1651,7 +1651,7 @@
.annotate "line", 67
# rx subrule "before" subtype=zerowidth negate=
rx97_cur."!cursor_pos"(rx97_pos)
- .const 'Sub' $P131 = "28_1261064023.05912"
+ .const 'Sub' $P131 = "28_1266337354.28388"
capture_lex $P131
$P10 = rx97_cur."before"($P131)
unless $P10, rx97_fail
@@ -1718,7 +1718,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment" :subid("27_1261064023.05912") :method
+.sub "!PREFIX__pod_comment" :subid("27_1266337354.28388") :method
.annotate "line", 4
new $P99, "ResizablePMCArray"
push $P99, ""
@@ -1727,7 +1727,7 @@
.namespace ["NQP";"Grammar"]
-.sub "_block130" :anon :subid("28_1261064023.05912") :method :outer("26_1261064023.05912")
+.sub "_block130" :anon :subid("28_1266337354.28388") :method :outer("26_1266337354.28388")
.annotate "line", 67
.local string rx132_tgt
.local int rx132_pos
@@ -1810,7 +1810,7 @@
.namespace ["NQP";"Grammar"]
-.sub "comp_unit" :subid("29_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "comp_unit" :subid("29_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx140_tgt
.local int rx140_pos
@@ -1889,7 +1889,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit" :subid("30_1261064023.05912") :method
+.sub "!PREFIX__comp_unit" :subid("30_1266337354.28388") :method
.annotate "line", 4
$P142 = self."!PREFIX__!subrule"("", "")
new $P143, "ResizablePMCArray"
@@ -1899,7 +1899,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statementlist" :subid("31_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statementlist" :subid("31_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx147_tgt
.local int rx147_pos
@@ -2007,7 +2007,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist" :subid("32_1261064023.05912") :method
+.sub "!PREFIX__statementlist" :subid("32_1266337354.28388") :method
.annotate "line", 4
new $P149, "ResizablePMCArray"
push $P149, ""
@@ -2017,9 +2017,9 @@
.namespace ["NQP";"Grammar"]
-.sub "statement" :subid("33_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement" :subid("33_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
- .const 'Sub' $P165 = "35_1261064023.05912"
+ .const 'Sub' $P165 = "35_1266337354.28388"
capture_lex $P165
.local string rx160_tgt
.local int rx160_pos
@@ -2029,7 +2029,7 @@
.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_loop", "statement_mod_cond")
+ rx160_cur."!cursor_caparray"("statement_mod_cond", "statement_mod_loop")
.lex unicode:"$\x{a2}", rx160_cur
.local pmc match
.lex "$/", match
@@ -2054,7 +2054,7 @@
.annotate "line", 89
# rx subrule "before" subtype=zerowidth negate=1
rx160_cur."!cursor_pos"(rx160_pos)
- .const 'Sub' $P165 = "35_1261064023.05912"
+ .const 'Sub' $P165 = "35_1266337354.28388"
capture_lex $P165
$P10 = rx160_cur."before"($P165)
if $P10, rx160_fail
@@ -2150,7 +2150,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement" :subid("34_1261064023.05912") :method
+.sub "!PREFIX__statement" :subid("34_1266337354.28388") :method
.annotate "line", 4
new $P162, "ResizablePMCArray"
push $P162, ""
@@ -2159,7 +2159,7 @@
.namespace ["NQP";"Grammar"]
-.sub "_block164" :anon :subid("35_1261064023.05912") :method :outer("33_1261064023.05912")
+.sub "_block164" :anon :subid("35_1266337354.28388") :method :outer("33_1266337354.28388")
.annotate "line", 89
.local string rx166_tgt
.local int rx166_pos
@@ -2223,7 +2223,7 @@
.namespace ["NQP";"Grammar"]
-.sub "eat_terminator" :subid("36_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "eat_terminator" :subid("36_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx176_tgt
.local int rx176_pos
@@ -2310,7 +2310,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__eat_terminator" :subid("37_1261064023.05912") :method
+.sub "!PREFIX__eat_terminator" :subid("37_1266337354.28388") :method
.annotate "line", 4
new $P178, "ResizablePMCArray"
push $P178, ""
@@ -2322,7 +2322,7 @@
.namespace ["NQP";"Grammar"]
-.sub "xblock" :subid("38_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "xblock" :subid("38_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx182_tgt
.local int rx182_pos
@@ -2393,7 +2393,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__xblock" :subid("39_1261064023.05912") :method
+.sub "!PREFIX__xblock" :subid("39_1266337354.28388") :method
.annotate "line", 4
$P184 = self."!PREFIX__!subrule"("EXPR", "")
new $P185, "ResizablePMCArray"
@@ -2403,7 +2403,7 @@
.namespace ["NQP";"Grammar"]
-.sub "pblock" :subid("40_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "pblock" :subid("40_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx188_tgt
.local int rx188_pos
@@ -2522,7 +2522,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pblock" :subid("41_1261064023.05912") :method
+.sub "!PREFIX__pblock" :subid("41_1266337354.28388") :method
.annotate "line", 4
$P190 = self."!PREFIX__!subrule"("", "")
$P191 = self."!PREFIX__!subrule"("", "")
@@ -2535,7 +2535,7 @@
.namespace ["NQP";"Grammar"]
-.sub "lambda" :subid("42_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "lambda" :subid("42_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx196_tgt
.local int rx196_pos
@@ -2606,7 +2606,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__lambda" :subid("43_1261064023.05912") :method
+.sub "!PREFIX__lambda" :subid("43_1266337354.28388") :method
.annotate "line", 4
new $P198, "ResizablePMCArray"
push $P198, "<->"
@@ -2616,7 +2616,7 @@
.namespace ["NQP";"Grammar"]
-.sub "block" :subid("44_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "block" :subid("44_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx202_tgt
.local int rx202_pos
@@ -2699,7 +2699,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__block" :subid("45_1261064023.05912") :method
+.sub "!PREFIX__block" :subid("45_1266337354.28388") :method
.annotate "line", 4
$P204 = self."!PREFIX__!subrule"("", "")
new $P205, "ResizablePMCArray"
@@ -2710,7 +2710,7 @@
.namespace ["NQP";"Grammar"]
-.sub "blockoid" :subid("46_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "blockoid" :subid("46_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx209_tgt
.local int rx209_pos
@@ -2805,7 +2805,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blockoid" :subid("47_1261064023.05912") :method
+.sub "!PREFIX__blockoid" :subid("47_1266337354.28388") :method
.annotate "line", 4
$P211 = self."!PREFIX__!subrule"("", "")
new $P212, "ResizablePMCArray"
@@ -2815,7 +2815,7 @@
.namespace ["NQP";"Grammar"]
-.sub "newpad" :subid("48_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "newpad" :subid("48_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx217_tgt
.local int rx217_pos
@@ -2866,7 +2866,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__newpad" :subid("49_1261064023.05912") :method
+.sub "!PREFIX__newpad" :subid("49_1266337354.28388") :method
.annotate "line", 4
new $P219, "ResizablePMCArray"
push $P219, ""
@@ -2875,7 +2875,7 @@
.namespace ["NQP";"Grammar"]
-.sub "finishpad" :subid("50_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "finishpad" :subid("50_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx222_tgt
.local int rx222_pos
@@ -2926,7 +2926,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__finishpad" :subid("51_1261064023.05912") :method
+.sub "!PREFIX__finishpad" :subid("51_1266337354.28388") :method
.annotate "line", 4
new $P224, "ResizablePMCArray"
push $P224, ""
@@ -2935,7 +2935,7 @@
.namespace ["NQP";"Grammar"]
-.sub "terminator" :subid("52_1261064023.05912") :method
+.sub "terminator" :subid("52_1266337354.28388") :method
.annotate "line", 139
$P227 = self."!protoregex"("terminator")
.return ($P227)
@@ -2943,7 +2943,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator" :subid("53_1261064023.05912") :method
+.sub "!PREFIX__terminator" :subid("53_1266337354.28388") :method
.annotate "line", 139
$P229 = self."!PREFIX__!protoregex"("terminator")
.return ($P229)
@@ -2951,7 +2951,7 @@
.namespace ["NQP";"Grammar"]
-.sub "terminator:sym<;>" :subid("54_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "terminator:sym<;>" :subid("54_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx231_tgt
.local int rx231_pos
@@ -3008,7 +3008,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<;>" :subid("55_1261064023.05912") :method
+.sub "!PREFIX__terminator:sym<;>" :subid("55_1266337354.28388") :method
.annotate "line", 4
new $P233, "ResizablePMCArray"
push $P233, ";"
@@ -3017,7 +3017,7 @@
.namespace ["NQP";"Grammar"]
-.sub "terminator:sym<}>" :subid("56_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "terminator:sym<}>" :subid("56_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx236_tgt
.local int rx236_pos
@@ -3074,7 +3074,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<}>" :subid("57_1261064023.05912") :method
+.sub "!PREFIX__terminator:sym<}>" :subid("57_1266337354.28388") :method
.annotate "line", 4
new $P238, "ResizablePMCArray"
push $P238, "}"
@@ -3083,7 +3083,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control" :subid("58_1261064023.05912") :method
+.sub "statement_control" :subid("58_1266337354.28388") :method
.annotate "line", 146
$P241 = self."!protoregex"("statement_control")
.return ($P241)
@@ -3091,7 +3091,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control" :subid("59_1261064023.05912") :method
+.sub "!PREFIX__statement_control" :subid("59_1266337354.28388") :method
.annotate "line", 146
$P243 = self."!PREFIX__!protoregex"("statement_control")
.return ($P243)
@@ -3099,7 +3099,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<if>" :subid("60_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_control:sym<if>" :subid("60_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx245_tgt
.local int rx245_pos
@@ -3109,7 +3109,7 @@
.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"("xblock", "else")
+ rx245_cur."!cursor_caparray"("else", "xblock")
.lex unicode:"$\x{a2}", rx245_cur
.local pmc match
.lex "$/", match
@@ -3293,7 +3293,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<if>" :subid("61_1261064023.05912") :method
+.sub "!PREFIX__statement_control:sym<if>" :subid("61_1266337354.28388") :method
.annotate "line", 4
new $P247, "ResizablePMCArray"
push $P247, "if"
@@ -3302,9 +3302,9 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<unless>" :subid("62_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_control:sym<unless>" :subid("62_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
- .const 'Sub' $P275 = "64_1261064023.05912"
+ .const 'Sub' $P275 = "64_1266337354.28388"
capture_lex $P275
.local string rx265_tgt
.local int rx265_pos
@@ -3392,7 +3392,7 @@
rx265_pos = $P10."pos"()
# rx subrule "before" subtype=zerowidth negate=1
rx265_cur."!cursor_pos"(rx265_pos)
- .const 'Sub' $P275 = "64_1261064023.05912"
+ .const 'Sub' $P275 = "64_1266337354.28388"
capture_lex $P275
$P10 = rx265_cur."before"($P275)
if $P10, rx265_fail
@@ -3444,7 +3444,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<unless>" :subid("63_1261064023.05912") :method
+.sub "!PREFIX__statement_control:sym<unless>" :subid("63_1266337354.28388") :method
.annotate "line", 4
new $P267, "ResizablePMCArray"
push $P267, "unless"
@@ -3453,7 +3453,7 @@
.namespace ["NQP";"Grammar"]
-.sub "_block274" :anon :subid("64_1261064023.05912") :method :outer("62_1261064023.05912")
+.sub "_block274" :anon :subid("64_1266337354.28388") :method :outer("62_1266337354.28388")
.annotate "line", 158
.local string rx276_tgt
.local int rx276_pos
@@ -3509,7 +3509,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<while>" :subid("65_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_control:sym<while>" :subid("65_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx283_tgt
.local int rx283_pos
@@ -3619,7 +3619,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<while>" :subid("66_1261064023.05912") :method
+.sub "!PREFIX__statement_control:sym<while>" :subid("66_1266337354.28388") :method
.annotate "line", 4
new $P285, "ResizablePMCArray"
push $P285, "until"
@@ -3629,7 +3629,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<repeat>" :subid("67_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_control:sym<repeat>" :subid("67_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx292_tgt
.local int rx292_pos
@@ -3864,7 +3864,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<repeat>" :subid("68_1261064023.05912") :method
+.sub "!PREFIX__statement_control:sym<repeat>" :subid("68_1266337354.28388") :method
.annotate "line", 4
new $P294, "ResizablePMCArray"
push $P294, "repeat"
@@ -3873,7 +3873,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<for>" :subid("69_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_control:sym<for>" :subid("69_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx312_tgt
.local int rx312_pos
@@ -3970,7 +3970,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<for>" :subid("70_1261064023.05912") :method
+.sub "!PREFIX__statement_control:sym<for>" :subid("70_1266337354.28388") :method
.annotate "line", 4
new $P314, "ResizablePMCArray"
push $P314, "for"
@@ -3979,7 +3979,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CATCH>" :subid("71_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_control:sym<CATCH>" :subid("71_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx320_tgt
.local int rx320_pos
@@ -4076,7 +4076,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CATCH>" :subid("72_1261064023.05912") :method
+.sub "!PREFIX__statement_control:sym<CATCH>" :subid("72_1266337354.28388") :method
.annotate "line", 4
new $P322, "ResizablePMCArray"
push $P322, "CATCH"
@@ -4085,7 +4085,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CONTROL>" :subid("73_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_control:sym<CONTROL>" :subid("73_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx328_tgt
.local int rx328_pos
@@ -4182,7 +4182,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CONTROL>" :subid("74_1261064023.05912") :method
+.sub "!PREFIX__statement_control:sym<CONTROL>" :subid("74_1266337354.28388") :method
.annotate "line", 4
new $P330, "ResizablePMCArray"
push $P330, "CONTROL"
@@ -4191,7 +4191,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix" :subid("75_1261064023.05912") :method
+.sub "statement_prefix" :subid("75_1266337354.28388") :method
.annotate "line", 189
$P336 = self."!protoregex"("statement_prefix")
.return ($P336)
@@ -4199,7 +4199,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix" :subid("76_1261064023.05912") :method
+.sub "!PREFIX__statement_prefix" :subid("76_1266337354.28388") :method
.annotate "line", 189
$P338 = self."!PREFIX__!protoregex"("statement_prefix")
.return ($P338)
@@ -4207,7 +4207,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<INIT>" :subid("77_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_prefix:sym<INIT>" :subid("77_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx340_tgt
.local int rx340_pos
@@ -4286,7 +4286,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<INIT>" :subid("78_1261064023.05912") :method
+.sub "!PREFIX__statement_prefix:sym<INIT>" :subid("78_1266337354.28388") :method
.annotate "line", 4
$P342 = self."!PREFIX__!subrule"("blorst", "INIT")
new $P343, "ResizablePMCArray"
@@ -4296,7 +4296,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<try>" :subid("79_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_prefix:sym<try>" :subid("79_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx347_tgt
.local int rx347_pos
@@ -4377,7 +4377,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<try>" :subid("80_1261064023.05912") :method
+.sub "!PREFIX__statement_prefix:sym<try>" :subid("80_1266337354.28388") :method
.annotate "line", 4
$P349 = self."!PREFIX__!subrule"("blorst", "try")
new $P350, "ResizablePMCArray"
@@ -4387,7 +4387,7 @@
.namespace ["NQP";"Grammar"]
-.sub "blorst" :subid("81_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "blorst" :subid("81_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx354_tgt
.local int rx354_pos
@@ -4476,7 +4476,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blorst" :subid("82_1261064023.05912") :method
+.sub "!PREFIX__blorst" :subid("82_1266337354.28388") :method
.annotate "line", 4
new $P356, "ResizablePMCArray"
push $P356, ""
@@ -4485,7 +4485,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond" :subid("83_1261064023.05912") :method
+.sub "statement_mod_cond" :subid("83_1266337354.28388") :method
.annotate "line", 203
$P360 = self."!protoregex"("statement_mod_cond")
.return ($P360)
@@ -4493,7 +4493,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond" :subid("84_1261064023.05912") :method
+.sub "!PREFIX__statement_mod_cond" :subid("84_1266337354.28388") :method
.annotate "line", 203
$P362 = self."!PREFIX__!protoregex"("statement_mod_cond")
.return ($P362)
@@ -4501,7 +4501,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<if>" :subid("85_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_mod_cond:sym<if>" :subid("85_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx364_tgt
.local int rx364_pos
@@ -4590,7 +4590,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<if>" :subid("86_1261064023.05912") :method
+.sub "!PREFIX__statement_mod_cond:sym<if>" :subid("86_1266337354.28388") :method
.annotate "line", 4
new $P366, "ResizablePMCArray"
push $P366, "if"
@@ -4599,7 +4599,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<unless>" :subid("87_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_mod_cond:sym<unless>" :subid("87_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx372_tgt
.local int rx372_pos
@@ -4688,7 +4688,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<unless>" :subid("88_1261064023.05912") :method
+.sub "!PREFIX__statement_mod_cond:sym<unless>" :subid("88_1266337354.28388") :method
.annotate "line", 4
new $P374, "ResizablePMCArray"
push $P374, "unless"
@@ -4697,7 +4697,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop" :subid("89_1261064023.05912") :method
+.sub "statement_mod_loop" :subid("89_1266337354.28388") :method
.annotate "line", 208
$P380 = self."!protoregex"("statement_mod_loop")
.return ($P380)
@@ -4705,7 +4705,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop" :subid("90_1261064023.05912") :method
+.sub "!PREFIX__statement_mod_loop" :subid("90_1266337354.28388") :method
.annotate "line", 208
$P382 = self."!PREFIX__!protoregex"("statement_mod_loop")
.return ($P382)
@@ -4713,7 +4713,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<while>" :subid("91_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_mod_loop:sym<while>" :subid("91_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx384_tgt
.local int rx384_pos
@@ -4802,7 +4802,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<while>" :subid("92_1261064023.05912") :method
+.sub "!PREFIX__statement_mod_loop:sym<while>" :subid("92_1266337354.28388") :method
.annotate "line", 4
new $P386, "ResizablePMCArray"
push $P386, "while"
@@ -4811,7 +4811,7 @@
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<until>" :subid("93_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "statement_mod_loop:sym<until>" :subid("93_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx392_tgt
.local int rx392_pos
@@ -4900,7 +4900,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<until>" :subid("94_1261064023.05912") :method
+.sub "!PREFIX__statement_mod_loop:sym<until>" :subid("94_1266337354.28388") :method
.annotate "line", 4
new $P394, "ResizablePMCArray"
push $P394, "until"
@@ -4909,7 +4909,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<fatarrow>" :subid("95_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<fatarrow>" :subid("95_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx400_tgt
.local int rx400_pos
@@ -4967,7 +4967,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<fatarrow>" :subid("96_1261064023.05912") :method
+.sub "!PREFIX__term:sym<fatarrow>" :subid("96_1266337354.28388") :method
.annotate "line", 4
$P402 = self."!PREFIX__!subrule"("fatarrow", "")
new $P403, "ResizablePMCArray"
@@ -4977,7 +4977,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<colonpair>" :subid("97_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<colonpair>" :subid("97_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx406_tgt
.local int rx406_pos
@@ -5035,7 +5035,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<colonpair>" :subid("98_1261064023.05912") :method
+.sub "!PREFIX__term:sym<colonpair>" :subid("98_1266337354.28388") :method
.annotate "line", 4
$P408 = self."!PREFIX__!subrule"("colonpair", "")
new $P409, "ResizablePMCArray"
@@ -5045,7 +5045,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<variable>" :subid("99_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<variable>" :subid("99_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx412_tgt
.local int rx412_pos
@@ -5103,7 +5103,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<variable>" :subid("100_1261064023.05912") :method
+.sub "!PREFIX__term:sym<variable>" :subid("100_1266337354.28388") :method
.annotate "line", 4
$P414 = self."!PREFIX__!subrule"("variable", "")
new $P415, "ResizablePMCArray"
@@ -5113,7 +5113,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<package_declarator>" :subid("101_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<package_declarator>" :subid("101_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx418_tgt
.local int rx418_pos
@@ -5171,7 +5171,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<package_declarator>" :subid("102_1261064023.05912") :method
+.sub "!PREFIX__term:sym<package_declarator>" :subid("102_1266337354.28388") :method
.annotate "line", 4
$P420 = self."!PREFIX__!subrule"("package_declarator", "")
new $P421, "ResizablePMCArray"
@@ -5181,7 +5181,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<scope_declarator>" :subid("103_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<scope_declarator>" :subid("103_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx424_tgt
.local int rx424_pos
@@ -5239,7 +5239,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<scope_declarator>" :subid("104_1261064023.05912") :method
+.sub "!PREFIX__term:sym<scope_declarator>" :subid("104_1266337354.28388") :method
.annotate "line", 4
$P426 = self."!PREFIX__!subrule"("scope_declarator", "")
new $P427, "ResizablePMCArray"
@@ -5249,7 +5249,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<routine_declarator>" :subid("105_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<routine_declarator>" :subid("105_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx430_tgt
.local int rx430_pos
@@ -5307,7 +5307,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<routine_declarator>" :subid("106_1261064023.05912") :method
+.sub "!PREFIX__term:sym<routine_declarator>" :subid("106_1266337354.28388") :method
.annotate "line", 4
$P432 = self."!PREFIX__!subrule"("routine_declarator", "")
new $P433, "ResizablePMCArray"
@@ -5317,7 +5317,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<regex_declarator>" :subid("107_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<regex_declarator>" :subid("107_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx436_tgt
.local int rx436_pos
@@ -5375,7 +5375,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<regex_declarator>" :subid("108_1261064023.05912") :method
+.sub "!PREFIX__term:sym<regex_declarator>" :subid("108_1266337354.28388") :method
.annotate "line", 4
$P438 = self."!PREFIX__!subrule"("regex_declarator", "")
new $P439, "ResizablePMCArray"
@@ -5385,7 +5385,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<statement_prefix>" :subid("109_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<statement_prefix>" :subid("109_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx442_tgt
.local int rx442_pos
@@ -5443,7 +5443,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<statement_prefix>" :subid("110_1261064023.05912") :method
+.sub "!PREFIX__term:sym<statement_prefix>" :subid("110_1266337354.28388") :method
.annotate "line", 4
$P444 = self."!PREFIX__!subrule"("statement_prefix", "")
new $P445, "ResizablePMCArray"
@@ -5453,7 +5453,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<lambda>" :subid("111_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<lambda>" :subid("111_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx448_tgt
.local int rx448_pos
@@ -5515,7 +5515,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<lambda>" :subid("112_1261064023.05912") :method
+.sub "!PREFIX__term:sym<lambda>" :subid("112_1266337354.28388") :method
.annotate "line", 4
new $P450, "ResizablePMCArray"
push $P450, ""
@@ -5524,7 +5524,7 @@
.namespace ["NQP";"Grammar"]
-.sub "fatarrow" :subid("113_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "fatarrow" :subid("113_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx453_tgt
.local int rx453_pos
@@ -5617,7 +5617,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__fatarrow" :subid("114_1261064023.05912") :method
+.sub "!PREFIX__fatarrow" :subid("114_1266337354.28388") :method
.annotate "line", 4
$P455 = self."!PREFIX__!subrule"("key", "")
new $P456, "ResizablePMCArray"
@@ -5627,7 +5627,7 @@
.namespace ["NQP";"Grammar"]
-.sub "colonpair" :subid("115_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "colonpair" :subid("115_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx461_tgt
.local int rx461_pos
@@ -5756,7 +5756,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__colonpair" :subid("116_1261064023.05912") :method
+.sub "!PREFIX__colonpair" :subid("116_1266337354.28388") :method
.annotate "line", 4
$P463 = self."!PREFIX__!subrule"("circumfix", ":")
$P464 = self."!PREFIX__!subrule"("identifier", ":")
@@ -5770,7 +5770,7 @@
.namespace ["NQP";"Grammar"]
-.sub "variable" :subid("117_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "variable" :subid("117_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx473_tgt
.local int rx473_pos
@@ -5925,7 +5925,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable" :subid("118_1261064023.05912") :method
+.sub "!PREFIX__variable" :subid("118_1266337354.28388") :method
.annotate "line", 4
$P475 = self."!PREFIX__!subrule"("sigil", "")
$P476 = self."!PREFIX__!subrule"("sigil", "")
@@ -5940,7 +5940,7 @@
.namespace ["NQP";"Grammar"]
-.sub "sigil" :subid("119_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "sigil" :subid("119_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx485_tgt
.local int rx485_pos
@@ -5998,7 +5998,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__sigil" :subid("120_1261064023.05912") :method
+.sub "!PREFIX__sigil" :subid("120_1266337354.28388") :method
.annotate "line", 4
new $P487, "ResizablePMCArray"
push $P487, "&"
@@ -6010,7 +6010,7 @@
.namespace ["NQP";"Grammar"]
-.sub "twigil" :subid("121_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "twigil" :subid("121_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx490_tgt
.local int rx490_pos
@@ -6068,7 +6068,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__twigil" :subid("122_1261064023.05912") :method
+.sub "!PREFIX__twigil" :subid("122_1266337354.28388") :method
.annotate "line", 4
new $P492, "ResizablePMCArray"
push $P492, "?"
@@ -6079,7 +6079,7 @@
.namespace ["NQP";"Grammar"]
-.sub "package_declarator" :subid("123_1261064023.05912") :method
+.sub "package_declarator" :subid("123_1266337354.28388") :method
.annotate "line", 248
$P495 = self."!protoregex"("package_declarator")
.return ($P495)
@@ -6087,7 +6087,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator" :subid("124_1261064023.05912") :method
+.sub "!PREFIX__package_declarator" :subid("124_1266337354.28388") :method
.annotate "line", 248
$P497 = self."!PREFIX__!protoregex"("package_declarator")
.return ($P497)
@@ -6095,7 +6095,7 @@
.namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<module>" :subid("125_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "package_declarator:sym<module>" :subid("125_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx499_tgt
.local int rx499_pos
@@ -6174,7 +6174,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<module>" :subid("126_1261064023.05912") :method
+.sub "!PREFIX__package_declarator:sym<module>" :subid("126_1266337354.28388") :method
.annotate "line", 4
$P501 = self."!PREFIX__!subrule"("package_def", "module")
new $P502, "ResizablePMCArray"
@@ -6184,7 +6184,7 @@
.namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<class>" :subid("127_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "package_declarator:sym<class>" :subid("127_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx506_tgt
.local int rx506_pos
@@ -6276,7 +6276,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<class>" :subid("128_1261064023.05912") :method
+.sub "!PREFIX__package_declarator:sym<class>" :subid("128_1266337354.28388") :method
.annotate "line", 4
$P508 = self."!PREFIX__!subrule"("package_def", "grammar")
$P509 = self."!PREFIX__!subrule"("package_def", "class")
@@ -6288,7 +6288,7 @@
.namespace ["NQP";"Grammar"]
-.sub "package_def" :subid("129_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "package_def" :subid("129_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx515_tgt
.local int rx515_pos
@@ -6492,7 +6492,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_def" :subid("130_1261064023.05912") :method
+.sub "!PREFIX__package_def" :subid("130_1266337354.28388") :method
.annotate "line", 4
new $P517, "ResizablePMCArray"
push $P517, ""
@@ -6501,7 +6501,7 @@
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator" :subid("131_1261064023.05912") :method
+.sub "scope_declarator" :subid("131_1266337354.28388") :method
.annotate "line", 262
$P538 = self."!protoregex"("scope_declarator")
.return ($P538)
@@ -6509,7 +6509,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator" :subid("132_1261064023.05912") :method
+.sub "!PREFIX__scope_declarator" :subid("132_1266337354.28388") :method
.annotate "line", 262
$P540 = self."!PREFIX__!protoregex"("scope_declarator")
.return ($P540)
@@ -6517,7 +6517,7 @@
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<my>" :subid("133_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "scope_declarator:sym<my>" :subid("133_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx542_tgt
.local int rx542_pos
@@ -6596,7 +6596,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<my>" :subid("134_1261064023.05912") :method
+.sub "!PREFIX__scope_declarator:sym<my>" :subid("134_1266337354.28388") :method
.annotate "line", 4
$P544 = self."!PREFIX__!subrule"("scoped", "my")
new $P545, "ResizablePMCArray"
@@ -6606,7 +6606,7 @@
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<our>" :subid("135_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "scope_declarator:sym<our>" :subid("135_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx549_tgt
.local int rx549_pos
@@ -6685,7 +6685,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<our>" :subid("136_1261064023.05912") :method
+.sub "!PREFIX__scope_declarator:sym<our>" :subid("136_1266337354.28388") :method
.annotate "line", 4
$P551 = self."!PREFIX__!subrule"("scoped", "our")
new $P552, "ResizablePMCArray"
@@ -6695,7 +6695,7 @@
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<has>" :subid("137_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "scope_declarator:sym<has>" :subid("137_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx556_tgt
.local int rx556_pos
@@ -6774,7 +6774,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<has>" :subid("138_1261064023.05912") :method
+.sub "!PREFIX__scope_declarator:sym<has>" :subid("138_1266337354.28388") :method
.annotate "line", 4
$P558 = self."!PREFIX__!subrule"("scoped", "has")
new $P559, "ResizablePMCArray"
@@ -6784,7 +6784,7 @@
.namespace ["NQP";"Grammar"]
-.sub "scoped" :subid("139_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "scoped" :subid("139_1266337354.28388") :method :outer("11_1266337354.28388")
.param pmc param_563
.annotate "line", 267
.lex "$*SCOPE", param_563
@@ -6881,7 +6881,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scoped" :subid("140_1261064023.05912") :method
+.sub "!PREFIX__scoped" :subid("140_1266337354.28388") :method
.annotate "line", 4
new $P566, "ResizablePMCArray"
push $P566, ""
@@ -6891,7 +6891,7 @@
.namespace ["NQP";"Grammar"]
-.sub "variable_declarator" :subid("141_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "variable_declarator" :subid("141_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx574_tgt
.local int rx574_pos
@@ -6949,7 +6949,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable_declarator" :subid("142_1261064023.05912") :method
+.sub "!PREFIX__variable_declarator" :subid("142_1266337354.28388") :method
.annotate "line", 4
$P576 = self."!PREFIX__!subrule"("variable", "")
new $P577, "ResizablePMCArray"
@@ -6959,7 +6959,7 @@
.namespace ["NQP";"Grammar"]
-.sub "routine_declarator" :subid("143_1261064023.05912") :method
+.sub "routine_declarator" :subid("143_1266337354.28388") :method
.annotate "line", 274
$P580 = self."!protoregex"("routine_declarator")
.return ($P580)
@@ -6967,7 +6967,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator" :subid("144_1261064023.05912") :method
+.sub "!PREFIX__routine_declarator" :subid("144_1266337354.28388") :method
.annotate "line", 274
$P582 = self."!PREFIX__!protoregex"("routine_declarator")
.return ($P582)
@@ -6975,7 +6975,7 @@
.namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<sub>" :subid("145_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "routine_declarator:sym<sub>" :subid("145_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx584_tgt
.local int rx584_pos
@@ -7054,7 +7054,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<sub>" :subid("146_1261064023.05912") :method
+.sub "!PREFIX__routine_declarator:sym<sub>" :subid("146_1266337354.28388") :method
.annotate "line", 4
$P586 = self."!PREFIX__!subrule"("routine_def", "sub")
new $P587, "ResizablePMCArray"
@@ -7064,7 +7064,7 @@
.namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<method>" :subid("147_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "routine_declarator:sym<method>" :subid("147_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx591_tgt
.local int rx591_pos
@@ -7143,7 +7143,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<method>" :subid("148_1261064023.05912") :method
+.sub "!PREFIX__routine_declarator:sym<method>" :subid("148_1266337354.28388") :method
.annotate "line", 4
$P593 = self."!PREFIX__!subrule"("method_def", "method")
new $P594, "ResizablePMCArray"
@@ -7153,7 +7153,7 @@
.namespace ["NQP";"Grammar"]
-.sub "routine_def" :subid("149_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "routine_def" :subid("149_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx598_tgt
.local int rx598_pos
@@ -7163,7 +7163,7 @@
.local pmc rx598_cur
(rx598_cur, rx598_pos, rx598_tgt) = self."!cursor_start"()
rx598_cur."!cursor_debug"("START ", "routine_def")
- rx598_cur."!cursor_caparray"("sigil", "deflongname")
+ rx598_cur."!cursor_caparray"("deflongname", "sigil")
.lex unicode:"$\x{a2}", rx598_cur
.local pmc match
.lex "$/", match
@@ -7360,7 +7360,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_def" :subid("150_1261064023.05912") :method
+.sub "!PREFIX__routine_def" :subid("150_1266337354.28388") :method
.annotate "line", 4
new $P600, "ResizablePMCArray"
push $P600, ""
@@ -7369,7 +7369,7 @@
.namespace ["NQP";"Grammar"]
-.sub "method_def" :subid("151_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "method_def" :subid("151_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx622_tgt
.local int rx622_pos
@@ -7539,7 +7539,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__method_def" :subid("152_1261064023.05912") :method
+.sub "!PREFIX__method_def" :subid("152_1266337354.28388") :method
.annotate "line", 4
new $P624, "ResizablePMCArray"
push $P624, ""
@@ -7548,7 +7548,7 @@
.namespace ["NQP";"Grammar"]
-.sub "signature" :subid("153_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "signature" :subid("153_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx641_tgt
.local int rx641_pos
@@ -7638,7 +7638,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__signature" :subid("154_1261064023.05912") :method
+.sub "!PREFIX__signature" :subid("154_1266337354.28388") :method
.annotate "line", 4
new $P643, "ResizablePMCArray"
push $P643, ""
@@ -7647,7 +7647,7 @@
.namespace ["NQP";"Grammar"]
-.sub "parameter" :subid("155_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "parameter" :subid("155_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx650_tgt
.local int rx650_pos
@@ -7808,7 +7808,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__parameter" :subid("156_1261064023.05912") :method
+.sub "!PREFIX__parameter" :subid("156_1266337354.28388") :method
.annotate "line", 4
$P652 = self."!PREFIX__!subrule"("named_param", "")
$P653 = self."!PREFIX__!subrule"("param_var", "")
@@ -7822,7 +7822,7 @@
.namespace ["NQP";"Grammar"]
-.sub "param_var" :subid("157_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "param_var" :subid("157_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx665_tgt
.local int rx665_pos
@@ -7930,7 +7930,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__param_var" :subid("158_1261064023.05912") :method
+.sub "!PREFIX__param_var" :subid("158_1266337354.28388") :method
.annotate "line", 4
$P667 = self."!PREFIX__!subrule"("sigil", "")
new $P668, "ResizablePMCArray"
@@ -7940,7 +7940,7 @@
.namespace ["NQP";"Grammar"]
-.sub "named_param" :subid("159_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "named_param" :subid("159_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx675_tgt
.local int rx675_pos
@@ -8006,7 +8006,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__named_param" :subid("160_1261064023.05912") :method
+.sub "!PREFIX__named_param" :subid("160_1266337354.28388") :method
.annotate "line", 4
$P677 = self."!PREFIX__!subrule"("param_var", ":")
new $P678, "ResizablePMCArray"
@@ -8016,7 +8016,7 @@
.namespace ["NQP";"Grammar"]
-.sub "default_value" :subid("161_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "default_value" :subid("161_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx681_tgt
.local int rx681_pos
@@ -8096,7 +8096,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__default_value" :subid("162_1261064023.05912") :method
+.sub "!PREFIX__default_value" :subid("162_1266337354.28388") :method
.annotate "line", 4
new $P683, "ResizablePMCArray"
push $P683, ""
@@ -8105,7 +8105,7 @@
.namespace ["NQP";"Grammar"]
-.sub "regex_declarator" :subid("163_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "regex_declarator" :subid("163_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx689_tgt
.local int rx689_pos
@@ -8472,7 +8472,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__regex_declarator" :subid("164_1261064023.05912") :method
+.sub "!PREFIX__regex_declarator" :subid("164_1266337354.28388") :method
.annotate "line", 4
new $P691, "ResizablePMCArray"
push $P691, ""
@@ -8481,7 +8481,7 @@
.namespace ["NQP";"Grammar"]
-.sub "dotty" :subid("165_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "dotty" :subid("165_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx721_tgt
.local int rx721_pos
@@ -8637,7 +8637,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__dotty" :subid("166_1261064023.05912") :method
+.sub "!PREFIX__dotty" :subid("166_1266337354.28388") :method
.annotate "line", 4
$P723 = self."!PREFIX__!subrule"("longname=identifier", ".")
new $P724, "ResizablePMCArray"
@@ -8649,7 +8649,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term" :subid("167_1261064023.05912") :method
+.sub "term" :subid("167_1266337354.28388") :method
.annotate "line", 343
$P732 = self."!protoregex"("term")
.return ($P732)
@@ -8657,7 +8657,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term" :subid("168_1261064023.05912") :method
+.sub "!PREFIX__term" :subid("168_1266337354.28388") :method
.annotate "line", 343
$P734 = self."!PREFIX__!protoregex"("term")
.return ($P734)
@@ -8665,7 +8665,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<self>" :subid("169_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<self>" :subid("169_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx736_tgt
.local int rx736_pos
@@ -8745,7 +8745,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<self>" :subid("170_1261064023.05912") :method
+.sub "!PREFIX__term:sym<self>" :subid("170_1266337354.28388") :method
.annotate "line", 4
new $P738, "ResizablePMCArray"
push $P738, "self"
@@ -8754,7 +8754,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<identifier>" :subid("171_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<identifier>" :subid("171_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx742_tgt
.local int rx742_pos
@@ -8826,7 +8826,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<identifier>" :subid("172_1261064023.05912") :method
+.sub "!PREFIX__term:sym<identifier>" :subid("172_1266337354.28388") :method
.annotate "line", 4
$P744 = self."!PREFIX__!subrule"("identifier", "")
new $P745, "ResizablePMCArray"
@@ -8836,7 +8836,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<name>" :subid("173_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<name>" :subid("173_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx748_tgt
.local int rx748_pos
@@ -8909,7 +8909,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<name>" :subid("174_1261064023.05912") :method
+.sub "!PREFIX__term:sym<name>" :subid("174_1266337354.28388") :method
.annotate "line", 4
$P750 = self."!PREFIX__!subrule"("name", "")
new $P751, "ResizablePMCArray"
@@ -8919,7 +8919,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<pir::op>" :subid("175_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<pir::op>" :subid("175_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx756_tgt
.local int rx756_pos
@@ -9012,7 +9012,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<pir::op>" :subid("176_1261064023.05912") :method
+.sub "!PREFIX__term:sym<pir::op>" :subid("176_1266337354.28388") :method
.annotate "line", 4
new $P758, "ResizablePMCArray"
push $P758, "pir::"
@@ -9021,7 +9021,7 @@
.namespace ["NQP";"Grammar"]
-.sub "args" :subid("177_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "args" :subid("177_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx764_tgt
.local int rx764_pos
@@ -9093,7 +9093,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__args" :subid("178_1261064023.05912") :method
+.sub "!PREFIX__args" :subid("178_1266337354.28388") :method
.annotate "line", 4
$P766 = self."!PREFIX__!subrule"("arglist", "(")
new $P767, "ResizablePMCArray"
@@ -9103,7 +9103,7 @@
.namespace ["NQP";"Grammar"]
-.sub "arglist" :subid("179_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "arglist" :subid("179_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx770_tgt
.local int rx770_pos
@@ -9175,7 +9175,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__arglist" :subid("180_1261064023.05912") :method
+.sub "!PREFIX__arglist" :subid("180_1266337354.28388") :method
.annotate "line", 4
$P772 = self."!PREFIX__!subrule"("", "")
new $P773, "ResizablePMCArray"
@@ -9185,7 +9185,7 @@
.namespace ["NQP";"Grammar"]
-.sub "term:sym<value>" :subid("181_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "term:sym<value>" :subid("181_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx777_tgt
.local int rx777_pos
@@ -9243,7 +9243,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<value>" :subid("182_1261064023.05912") :method
+.sub "!PREFIX__term:sym<value>" :subid("182_1266337354.28388") :method
.annotate "line", 4
$P779 = self."!PREFIX__!subrule"("value", "")
new $P780, "ResizablePMCArray"
@@ -9253,7 +9253,7 @@
.namespace ["NQP";"Grammar"]
-.sub "value" :subid("183_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "value" :subid("183_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx783_tgt
.local int rx783_pos
@@ -9327,7 +9327,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__value" :subid("184_1261064023.05912") :method
+.sub "!PREFIX__value" :subid("184_1266337354.28388") :method
.annotate "line", 4
$P785 = self."!PREFIX__!subrule"("number", "")
$P786 = self."!PREFIX__!subrule"("quote", "")
@@ -9339,7 +9339,7 @@
.namespace ["NQP";"Grammar"]
-.sub "number" :subid("185_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "number" :subid("185_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx791_tgt
.local int rx791_pos
@@ -9439,7 +9439,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__number" :subid("186_1261064023.05912") :method
+.sub "!PREFIX__number" :subid("186_1266337354.28388") :method
.annotate "line", 4
new $P793, "ResizablePMCArray"
push $P793, ""
@@ -9448,7 +9448,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote" :subid("187_1261064023.05912") :method
+.sub "quote" :subid("187_1266337354.28388") :method
.annotate "line", 384
$P800 = self."!protoregex"("quote")
.return ($P800)
@@ -9456,7 +9456,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote" :subid("188_1261064023.05912") :method
+.sub "!PREFIX__quote" :subid("188_1266337354.28388") :method
.annotate "line", 384
$P802 = self."!PREFIX__!protoregex"("quote")
.return ($P802)
@@ -9464,7 +9464,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<apos>" :subid("189_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "quote:sym<apos>" :subid("189_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx804_tgt
.local int rx804_pos
@@ -9528,7 +9528,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<apos>" :subid("190_1261064023.05912") :method
+.sub "!PREFIX__quote:sym<apos>" :subid("190_1266337354.28388") :method
.annotate "line", 4
new $P806, "ResizablePMCArray"
push $P806, "'"
@@ -9537,7 +9537,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<dblq>" :subid("191_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "quote:sym<dblq>" :subid("191_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx809_tgt
.local int rx809_pos
@@ -9601,7 +9601,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<dblq>" :subid("192_1261064023.05912") :method
+.sub "!PREFIX__quote:sym<dblq>" :subid("192_1266337354.28388") :method
.annotate "line", 4
new $P811, "ResizablePMCArray"
push $P811, "\""
@@ -9610,7 +9610,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<q>" :subid("193_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "quote:sym<q>" :subid("193_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx814_tgt
.local int rx814_pos
@@ -9686,7 +9686,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<q>" :subid("194_1261064023.05912") :method
+.sub "!PREFIX__quote:sym<q>" :subid("194_1266337354.28388") :method
.annotate "line", 4
$P816 = self."!PREFIX__!subrule"("", "q")
new $P817, "ResizablePMCArray"
@@ -9696,7 +9696,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<qq>" :subid("195_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "quote:sym<qq>" :subid("195_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx820_tgt
.local int rx820_pos
@@ -9772,7 +9772,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<qq>" :subid("196_1261064023.05912") :method
+.sub "!PREFIX__quote:sym<qq>" :subid("196_1266337354.28388") :method
.annotate "line", 4
$P822 = self."!PREFIX__!subrule"("", "qq")
new $P823, "ResizablePMCArray"
@@ -9782,7 +9782,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q>" :subid("197_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "quote:sym<Q>" :subid("197_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx826_tgt
.local int rx826_pos
@@ -9858,7 +9858,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q>" :subid("198_1261064023.05912") :method
+.sub "!PREFIX__quote:sym<Q>" :subid("198_1266337354.28388") :method
.annotate "line", 4
$P828 = self."!PREFIX__!subrule"("", "Q")
new $P829, "ResizablePMCArray"
@@ -9868,7 +9868,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q:PIR>" :subid("199_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "quote:sym<Q:PIR>" :subid("199_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx832_tgt
.local int rx832_pos
@@ -9938,7 +9938,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q:PIR>" :subid("200_1261064023.05912") :method
+.sub "!PREFIX__quote:sym<Q:PIR>" :subid("200_1266337354.28388") :method
.annotate "line", 4
$P834 = self."!PREFIX__!subrule"("", "Q:PIR")
new $P835, "ResizablePMCArray"
@@ -9948,7 +9948,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote:sym</ />" :subid("201_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "quote:sym</ />" :subid("201_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx838_tgt
.local int rx838_pos
@@ -10033,7 +10033,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym</ />" :subid("202_1261064023.05912") :method
+.sub "!PREFIX__quote:sym</ />" :subid("202_1266337354.28388") :method
.annotate "line", 4
$P840 = self."!PREFIX__!subrule"("", "/")
new $P841, "ResizablePMCArray"
@@ -10043,7 +10043,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<$>" :subid("203_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "quote_escape:sym<$>" :subid("203_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx844_tgt
.local int rx844_pos
@@ -10111,7 +10111,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<$>" :subid("204_1261064023.05912") :method
+.sub "!PREFIX__quote_escape:sym<$>" :subid("204_1266337354.28388") :method
.annotate "line", 4
new $P846, "ResizablePMCArray"
push $P846, "$"
@@ -10120,7 +10120,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<{ }>" :subid("205_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "quote_escape:sym<{ }>" :subid("205_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx849_tgt
.local int rx849_pos
@@ -10188,7 +10188,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<{ }>" :subid("206_1261064023.05912") :method
+.sub "!PREFIX__quote_escape:sym<{ }>" :subid("206_1266337354.28388") :method
.annotate "line", 4
new $P851, "ResizablePMCArray"
push $P851, "{"
@@ -10197,7 +10197,7 @@
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<( )>" :subid("207_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "circumfix:sym<( )>" :subid("207_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx854_tgt
.local int rx854_pos
@@ -10281,7 +10281,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<( )>" :subid("208_1261064023.05912") :method
+.sub "!PREFIX__circumfix:sym<( )>" :subid("208_1266337354.28388") :method
.annotate "line", 4
$P856 = self."!PREFIX__!subrule"("", "(")
new $P857, "ResizablePMCArray"
@@ -10291,7 +10291,7 @@
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<[ ]>" :subid("209_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "circumfix:sym<[ ]>" :subid("209_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx862_tgt
.local int rx862_pos
@@ -10375,7 +10375,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<[ ]>" :subid("210_1261064023.05912") :method
+.sub "!PREFIX__circumfix:sym<[ ]>" :subid("210_1266337354.28388") :method
.annotate "line", 4
$P864 = self."!PREFIX__!subrule"("", "[")
new $P865, "ResizablePMCArray"
@@ -10385,7 +10385,7 @@
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<ang>" :subid("211_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "circumfix:sym<ang>" :subid("211_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx870_tgt
.local int rx870_pos
@@ -10449,7 +10449,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<ang>" :subid("212_1261064023.05912") :method
+.sub "!PREFIX__circumfix:sym<ang>" :subid("212_1266337354.28388") :method
.annotate "line", 4
new $P872, "ResizablePMCArray"
push $P872, "<"
@@ -10458,7 +10458,7 @@
.namespace ["NQP";"Grammar"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("213_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("213_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx875_tgt
.local int rx875_pos
@@ -10522,7 +10522,7 @@
.namespace ["NQP";"Grammar"]
-.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>" :subid("214_1261064023.05912") :method
+.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>" :subid("214_1266337354.28388") :method
.annotate "line", 4
new $P877, "ResizablePMCArray"
push $P877, unicode:"\x{ab}"
@@ -10531,7 +10531,7 @@
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<{ }>" :subid("215_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "circumfix:sym<{ }>" :subid("215_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx880_tgt
.local int rx880_pos
@@ -10595,7 +10595,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<{ }>" :subid("216_1261064023.05912") :method
+.sub "!PREFIX__circumfix:sym<{ }>" :subid("216_1266337354.28388") :method
.annotate "line", 4
new $P882, "ResizablePMCArray"
push $P882, "{"
@@ -10604,7 +10604,7 @@
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<sigil>" :subid("217_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "circumfix:sym<sigil>" :subid("217_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx885_tgt
.local int rx885_pos
@@ -10694,7 +10694,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<sigil>" :subid("218_1261064023.05912") :method
+.sub "!PREFIX__circumfix:sym<sigil>" :subid("218_1266337354.28388") :method
.annotate "line", 4
$P887 = self."!PREFIX__!subrule"("sigil", "")
new $P888, "ResizablePMCArray"
@@ -10704,7 +10704,7 @@
.namespace ["NQP";"Grammar"]
-.sub "semilist" :subid("219_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "semilist" :subid("219_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 4
.local string rx893_tgt
.local int rx893_pos
@@ -10772,7 +10772,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__semilist" :subid("220_1261064023.05912") :method
+.sub "!PREFIX__semilist" :subid("220_1266337354.28388") :method
.annotate "line", 4
new $P895, "ResizablePMCArray"
push $P895, ""
@@ -10781,7 +10781,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infixish" :subid("221_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infixish" :subid("221_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx900_tgt
.local int rx900_pos
@@ -10843,7 +10843,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixish" :subid("222_1261064023.05912") :method
+.sub "!PREFIX__infixish" :subid("222_1266337354.28388") :method
.annotate "line", 413
new $P902, "ResizablePMCArray"
push $P902, ""
@@ -10852,7 +10852,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infixstopper" :subid("223_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infixstopper" :subid("223_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx905_tgt
.local int rx905_pos
@@ -10907,7 +10907,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixstopper" :subid("224_1261064023.05912") :method
+.sub "!PREFIX__infixstopper" :subid("224_1266337354.28388") :method
.annotate "line", 413
new $P907, "ResizablePMCArray"
push $P907, ""
@@ -10916,7 +10916,7 @@
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<[ ]>" :subid("225_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "postcircumfix:sym<[ ]>" :subid("225_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx910_tgt
.local int rx910_pos
@@ -11002,7 +11002,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<[ ]>" :subid("226_1261064023.05912") :method
+.sub "!PREFIX__postcircumfix:sym<[ ]>" :subid("226_1266337354.28388") :method
.annotate "line", 413
$P912 = self."!PREFIX__!subrule"("", "[")
new $P913, "ResizablePMCArray"
@@ -11012,7 +11012,7 @@
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<{ }>" :subid("227_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "postcircumfix:sym<{ }>" :subid("227_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx916_tgt
.local int rx916_pos
@@ -11098,7 +11098,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<{ }>" :subid("228_1261064023.05912") :method
+.sub "!PREFIX__postcircumfix:sym<{ }>" :subid("228_1266337354.28388") :method
.annotate "line", 413
$P918 = self."!PREFIX__!subrule"("", "{")
new $P919, "ResizablePMCArray"
@@ -11108,7 +11108,7 @@
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<ang>" :subid("229_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "postcircumfix:sym<ang>" :subid("229_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx922_tgt
.local int rx922_pos
@@ -11181,7 +11181,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<ang>" :subid("230_1261064023.05912") :method
+.sub "!PREFIX__postcircumfix:sym<ang>" :subid("230_1266337354.28388") :method
.annotate "line", 413
new $P924, "ResizablePMCArray"
push $P924, "<"
@@ -11190,7 +11190,7 @@
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<( )>" :subid("231_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "postcircumfix:sym<( )>" :subid("231_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx927_tgt
.local int rx927_pos
@@ -11276,7 +11276,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<( )>" :subid("232_1261064023.05912") :method
+.sub "!PREFIX__postcircumfix:sym<( )>" :subid("232_1266337354.28388") :method
.annotate "line", 413
$P929 = self."!PREFIX__!subrule"("", "(")
new $P930, "ResizablePMCArray"
@@ -11286,7 +11286,7 @@
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<.>" :subid("233_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "postfix:sym<.>" :subid("233_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx933_tgt
.local int rx933_pos
@@ -11351,7 +11351,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<.>" :subid("234_1261064023.05912") :method
+.sub "!PREFIX__postfix:sym<.>" :subid("234_1266337354.28388") :method
.annotate "line", 413
$P935 = self."!PREFIX__!subrule"("dotty", "")
new $P936, "ResizablePMCArray"
@@ -11361,7 +11361,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<++>" :subid("235_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "prefix:sym<++>" :subid("235_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx939_tgt
.local int rx939_pos
@@ -11440,7 +11440,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<++>" :subid("236_1261064023.05912") :method
+.sub "!PREFIX__prefix:sym<++>" :subid("236_1266337354.28388") :method
.annotate "line", 413
$P941 = self."!PREFIX__!subrule"("O", "++")
new $P942, "ResizablePMCArray"
@@ -11450,7 +11450,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<-->" :subid("237_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "prefix:sym<-->" :subid("237_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx946_tgt
.local int rx946_pos
@@ -11529,7 +11529,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<-->" :subid("238_1261064023.05912") :method
+.sub "!PREFIX__prefix:sym<-->" :subid("238_1266337354.28388") :method
.annotate "line", 413
$P948 = self."!PREFIX__!subrule"("O", "--")
new $P949, "ResizablePMCArray"
@@ -11539,7 +11539,7 @@
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<++>" :subid("239_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "postfix:sym<++>" :subid("239_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx953_tgt
.local int rx953_pos
@@ -11618,7 +11618,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<++>" :subid("240_1261064023.05912") :method
+.sub "!PREFIX__postfix:sym<++>" :subid("240_1266337354.28388") :method
.annotate "line", 413
$P955 = self."!PREFIX__!subrule"("O", "++")
new $P956, "ResizablePMCArray"
@@ -11628,7 +11628,7 @@
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<-->" :subid("241_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "postfix:sym<-->" :subid("241_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx960_tgt
.local int rx960_pos
@@ -11707,7 +11707,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<-->" :subid("242_1261064023.05912") :method
+.sub "!PREFIX__postfix:sym<-->" :subid("242_1266337354.28388") :method
.annotate "line", 413
$P962 = self."!PREFIX__!subrule"("O", "--")
new $P963, "ResizablePMCArray"
@@ -11717,7 +11717,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<**>" :subid("243_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<**>" :subid("243_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx967_tgt
.local int rx967_pos
@@ -11796,7 +11796,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<**>" :subid("244_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<**>" :subid("244_1266337354.28388") :method
.annotate "line", 413
$P969 = self."!PREFIX__!subrule"("O", "**")
new $P970, "ResizablePMCArray"
@@ -11806,7 +11806,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<+>" :subid("245_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "prefix:sym<+>" :subid("245_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx974_tgt
.local int rx974_pos
@@ -11885,7 +11885,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<+>" :subid("246_1261064023.05912") :method
+.sub "!PREFIX__prefix:sym<+>" :subid("246_1266337354.28388") :method
.annotate "line", 413
$P976 = self."!PREFIX__!subrule"("O", "+")
new $P977, "ResizablePMCArray"
@@ -11895,7 +11895,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<~>" :subid("247_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "prefix:sym<~>" :subid("247_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx981_tgt
.local int rx981_pos
@@ -11974,7 +11974,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<~>" :subid("248_1261064023.05912") :method
+.sub "!PREFIX__prefix:sym<~>" :subid("248_1266337354.28388") :method
.annotate "line", 413
$P983 = self."!PREFIX__!subrule"("O", "~")
new $P984, "ResizablePMCArray"
@@ -11984,7 +11984,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<->" :subid("249_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "prefix:sym<->" :subid("249_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx988_tgt
.local int rx988_pos
@@ -12073,7 +12073,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<->" :subid("250_1261064023.05912") :method
+.sub "!PREFIX__prefix:sym<->" :subid("250_1266337354.28388") :method
.annotate "line", 413
new $P990, "ResizablePMCArray"
push $P990, "-"
@@ -12082,7 +12082,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<?>" :subid("251_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "prefix:sym<?>" :subid("251_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx994_tgt
.local int rx994_pos
@@ -12161,7 +12161,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<?>" :subid("252_1261064023.05912") :method
+.sub "!PREFIX__prefix:sym<?>" :subid("252_1266337354.28388") :method
.annotate "line", 413
$P996 = self."!PREFIX__!subrule"("O", "?")
new $P997, "ResizablePMCArray"
@@ -12171,7 +12171,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<!>" :subid("253_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "prefix:sym<!>" :subid("253_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1001_tgt
.local int rx1001_pos
@@ -12250,7 +12250,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<!>" :subid("254_1261064023.05912") :method
+.sub "!PREFIX__prefix:sym<!>" :subid("254_1266337354.28388") :method
.annotate "line", 413
$P1003 = self."!PREFIX__!subrule"("O", "!")
new $P1004, "ResizablePMCArray"
@@ -12260,7 +12260,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<|>" :subid("255_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "prefix:sym<|>" :subid("255_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1008_tgt
.local int rx1008_pos
@@ -12339,7 +12339,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<|>" :subid("256_1261064023.05912") :method
+.sub "!PREFIX__prefix:sym<|>" :subid("256_1266337354.28388") :method
.annotate "line", 413
$P1010 = self."!PREFIX__!subrule"("O", "|")
new $P1011, "ResizablePMCArray"
@@ -12349,7 +12349,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<*>" :subid("257_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<*>" :subid("257_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1015_tgt
.local int rx1015_pos
@@ -12428,7 +12428,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<*>" :subid("258_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<*>" :subid("258_1266337354.28388") :method
.annotate "line", 413
$P1017 = self."!PREFIX__!subrule"("O", "*")
new $P1018, "ResizablePMCArray"
@@ -12438,7 +12438,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym</>" :subid("259_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym</>" :subid("259_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1022_tgt
.local int rx1022_pos
@@ -12517,7 +12517,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym</>" :subid("260_1261064023.05912") :method
+.sub "!PREFIX__infix:sym</>" :subid("260_1266337354.28388") :method
.annotate "line", 413
$P1024 = self."!PREFIX__!subrule"("O", "/")
new $P1025, "ResizablePMCArray"
@@ -12527,7 +12527,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<%>" :subid("261_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<%>" :subid("261_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1029_tgt
.local int rx1029_pos
@@ -12606,7 +12606,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<%>" :subid("262_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<%>" :subid("262_1266337354.28388") :method
.annotate "line", 413
$P1031 = self."!PREFIX__!subrule"("O", "%")
new $P1032, "ResizablePMCArray"
@@ -12616,7 +12616,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<+>" :subid("263_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<+>" :subid("263_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1036_tgt
.local int rx1036_pos
@@ -12695,7 +12695,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+>" :subid("264_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<+>" :subid("264_1266337354.28388") :method
.annotate "line", 413
$P1038 = self."!PREFIX__!subrule"("O", "+")
new $P1039, "ResizablePMCArray"
@@ -12705,7 +12705,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<->" :subid("265_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<->" :subid("265_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1043_tgt
.local int rx1043_pos
@@ -12784,7 +12784,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<->" :subid("266_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<->" :subid("266_1266337354.28388") :method
.annotate "line", 413
$P1045 = self."!PREFIX__!subrule"("O", "-")
new $P1046, "ResizablePMCArray"
@@ -12794,7 +12794,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<~>" :subid("267_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<~>" :subid("267_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1050_tgt
.local int rx1050_pos
@@ -12873,7 +12873,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~>" :subid("268_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<~>" :subid("268_1266337354.28388") :method
.annotate "line", 413
$P1052 = self."!PREFIX__!subrule"("O", "~")
new $P1053, "ResizablePMCArray"
@@ -12883,7 +12883,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<==>" :subid("269_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<==>" :subid("269_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1057_tgt
.local int rx1057_pos
@@ -12962,7 +12962,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<==>" :subid("270_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<==>" :subid("270_1266337354.28388") :method
.annotate "line", 413
$P1059 = self."!PREFIX__!subrule"("O", "==")
new $P1060, "ResizablePMCArray"
@@ -12972,7 +12972,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<!=>" :subid("271_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<!=>" :subid("271_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1064_tgt
.local int rx1064_pos
@@ -13051,7 +13051,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<!=>" :subid("272_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<!=>" :subid("272_1266337354.28388") :method
.annotate "line", 413
$P1066 = self."!PREFIX__!subrule"("O", "!=")
new $P1067, "ResizablePMCArray"
@@ -13061,7 +13061,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<<=>" :subid("273_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<<=>" :subid("273_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1071_tgt
.local int rx1071_pos
@@ -13140,7 +13140,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<=>" :subid("274_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<<=>" :subid("274_1266337354.28388") :method
.annotate "line", 413
$P1073 = self."!PREFIX__!subrule"("O", "<=")
new $P1074, "ResizablePMCArray"
@@ -13150,7 +13150,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<>=>" :subid("275_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<>=>" :subid("275_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1078_tgt
.local int rx1078_pos
@@ -13229,7 +13229,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>=>" :subid("276_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<>=>" :subid("276_1266337354.28388") :method
.annotate "line", 413
$P1080 = self."!PREFIX__!subrule"("O", ">=")
new $P1081, "ResizablePMCArray"
@@ -13239,7 +13239,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<<>" :subid("277_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<<>" :subid("277_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1085_tgt
.local int rx1085_pos
@@ -13318,7 +13318,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<>" :subid("278_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<<>" :subid("278_1266337354.28388") :method
.annotate "line", 413
$P1087 = self."!PREFIX__!subrule"("O", "<")
new $P1088, "ResizablePMCArray"
@@ -13328,7 +13328,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<>>" :subid("279_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<>>" :subid("279_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1092_tgt
.local int rx1092_pos
@@ -13407,7 +13407,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>>" :subid("280_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<>>" :subid("280_1266337354.28388") :method
.annotate "line", 413
$P1094 = self."!PREFIX__!subrule"("O", ">")
new $P1095, "ResizablePMCArray"
@@ -13417,7 +13417,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<eq>" :subid("281_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<eq>" :subid("281_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1099_tgt
.local int rx1099_pos
@@ -13496,7 +13496,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<eq>" :subid("282_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<eq>" :subid("282_1266337354.28388") :method
.annotate "line", 413
$P1101 = self."!PREFIX__!subrule"("O", "eq")
new $P1102, "ResizablePMCArray"
@@ -13506,7 +13506,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<ne>" :subid("283_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<ne>" :subid("283_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1106_tgt
.local int rx1106_pos
@@ -13585,7 +13585,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ne>" :subid("284_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<ne>" :subid("284_1266337354.28388") :method
.annotate "line", 413
$P1108 = self."!PREFIX__!subrule"("O", "ne")
new $P1109, "ResizablePMCArray"
@@ -13595,7 +13595,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<le>" :subid("285_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<le>" :subid("285_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1113_tgt
.local int rx1113_pos
@@ -13674,7 +13674,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<le>" :subid("286_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<le>" :subid("286_1266337354.28388") :method
.annotate "line", 413
$P1115 = self."!PREFIX__!subrule"("O", "le")
new $P1116, "ResizablePMCArray"
@@ -13684,7 +13684,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<ge>" :subid("287_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<ge>" :subid("287_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1120_tgt
.local int rx1120_pos
@@ -13763,7 +13763,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ge>" :subid("288_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<ge>" :subid("288_1266337354.28388") :method
.annotate "line", 413
$P1122 = self."!PREFIX__!subrule"("O", "ge")
new $P1123, "ResizablePMCArray"
@@ -13773,7 +13773,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<lt>" :subid("289_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<lt>" :subid("289_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1127_tgt
.local int rx1127_pos
@@ -13852,7 +13852,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<lt>" :subid("290_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<lt>" :subid("290_1266337354.28388") :method
.annotate "line", 413
$P1129 = self."!PREFIX__!subrule"("O", "lt")
new $P1130, "ResizablePMCArray"
@@ -13862,7 +13862,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<gt>" :subid("291_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<gt>" :subid("291_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1134_tgt
.local int rx1134_pos
@@ -13941,7 +13941,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<gt>" :subid("292_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<gt>" :subid("292_1266337354.28388") :method
.annotate "line", 413
$P1136 = self."!PREFIX__!subrule"("O", "gt")
new $P1137, "ResizablePMCArray"
@@ -13951,7 +13951,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<=:=>" :subid("293_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<=:=>" :subid("293_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1141_tgt
.local int rx1141_pos
@@ -14030,7 +14030,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=:=>" :subid("294_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<=:=>" :subid("294_1266337354.28388") :method
.annotate "line", 413
$P1143 = self."!PREFIX__!subrule"("O", "=:=")
new $P1144, "ResizablePMCArray"
@@ -14040,7 +14040,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<~~>" :subid("295_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<~~>" :subid("295_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1148_tgt
.local int rx1148_pos
@@ -14119,7 +14119,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~~>" :subid("296_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<~~>" :subid("296_1266337354.28388") :method
.annotate "line", 413
$P1150 = self."!PREFIX__!subrule"("O", "~~")
new $P1151, "ResizablePMCArray"
@@ -14129,7 +14129,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<&&>" :subid("297_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<&&>" :subid("297_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1155_tgt
.local int rx1155_pos
@@ -14208,7 +14208,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<&&>" :subid("298_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<&&>" :subid("298_1266337354.28388") :method
.annotate "line", 413
$P1157 = self."!PREFIX__!subrule"("O", "&&")
new $P1158, "ResizablePMCArray"
@@ -14218,7 +14218,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<||>" :subid("299_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<||>" :subid("299_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1162_tgt
.local int rx1162_pos
@@ -14297,7 +14297,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<||>" :subid("300_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<||>" :subid("300_1266337354.28388") :method
.annotate "line", 413
$P1164 = self."!PREFIX__!subrule"("O", "||")
new $P1165, "ResizablePMCArray"
@@ -14307,7 +14307,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<//>" :subid("301_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<//>" :subid("301_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1169_tgt
.local int rx1169_pos
@@ -14386,7 +14386,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<//>" :subid("302_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<//>" :subid("302_1266337354.28388") :method
.annotate "line", 413
$P1171 = self."!PREFIX__!subrule"("O", "//")
new $P1172, "ResizablePMCArray"
@@ -14396,7 +14396,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<?? !!>" :subid("303_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<?? !!>" :subid("303_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1176_tgt
.local int rx1176_pos
@@ -14485,7 +14485,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<?? !!>" :subid("304_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<?? !!>" :subid("304_1266337354.28388") :method
.annotate "line", 413
$P1178 = self."!PREFIX__!subrule"("", "??")
new $P1179, "ResizablePMCArray"
@@ -14495,7 +14495,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<=>" :subid("305_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<=>" :subid("305_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1182_tgt
.local int rx1182_pos
@@ -14573,7 +14573,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=>" :subid("306_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<=>" :subid("306_1266337354.28388") :method
.annotate "line", 413
$P1184 = self."!PREFIX__!subrule"("", "=")
new $P1185, "ResizablePMCArray"
@@ -14583,7 +14583,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<:=>" :subid("307_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<:=>" :subid("307_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1189_tgt
.local int rx1189_pos
@@ -14662,7 +14662,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<:=>" :subid("308_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<:=>" :subid("308_1266337354.28388") :method
.annotate "line", 413
$P1191 = self."!PREFIX__!subrule"("O", ":=")
new $P1192, "ResizablePMCArray"
@@ -14672,7 +14672,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<::=>" :subid("309_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<::=>" :subid("309_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1196_tgt
.local int rx1196_pos
@@ -14751,7 +14751,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<::=>" :subid("310_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<::=>" :subid("310_1266337354.28388") :method
.annotate "line", 413
$P1198 = self."!PREFIX__!subrule"("O", "::=")
new $P1199, "ResizablePMCArray"
@@ -14761,7 +14761,7 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<,>" :subid("311_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "infix:sym<,>" :subid("311_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1203_tgt
.local int rx1203_pos
@@ -14840,7 +14840,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<,>" :subid("312_1261064023.05912") :method
+.sub "!PREFIX__infix:sym<,>" :subid("312_1266337354.28388") :method
.annotate "line", 413
$P1205 = self."!PREFIX__!subrule"("O", ",")
new $P1206, "ResizablePMCArray"
@@ -14850,7 +14850,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<return>" :subid("313_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "prefix:sym<return>" :subid("313_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1210_tgt
.local int rx1210_pos
@@ -14935,7 +14935,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<return>" :subid("314_1261064023.05912") :method
+.sub "!PREFIX__prefix:sym<return>" :subid("314_1266337354.28388") :method
.annotate "line", 413
new $P1212, "ResizablePMCArray"
push $P1212, "return"
@@ -14944,7 +14944,7 @@
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<make>" :subid("315_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "prefix:sym<make>" :subid("315_1266337354.28388") :method :outer("11_1266337354.28388")
.annotate "line", 413
.local string rx1216_tgt
.local int rx1216_pos
@@ -15029,7 +15029,7 @@
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<make>" :subid("316_1261064023.05912") :method
+.sub "!PREFIX__prefix:sym<make>" :subid("316_1266337354.28388") :method
.annotate "line", 413
new $P1218, "ResizablePMCArray"
push $P1218, "make"
@@ -15038,7 +15038,7 @@
.namespace ["NQP";"Grammar"]
-.sub "smartmatch" :subid("317_1261064023.05912") :method :outer("11_1261064023.05912")
+.sub "smartmatch" :subid("317_1266337354.28388") :method :outer("11_1266337354.28388")
.param pmc param_1224
.annotate "line", 521
new $P1223, 'ExceptionHandler'
@@ -15091,28 +15091,28 @@
.namespace ["NQP";"Regex"]
-.sub "_block1234" :subid("318_1261064023.05912") :outer("11_1261064023.05912")
+.sub "_block1234" :subid("318_1266337354.28388") :outer("11_1266337354.28388")
.annotate "line", 527
- .const 'Sub' $P1268 = "329_1261064023.05912"
+ .const 'Sub' $P1268 = "329_1266337354.28388"
capture_lex $P1268
- .const 'Sub' $P1255 = "326_1261064023.05912"
+ .const 'Sub' $P1255 = "326_1266337354.28388"
capture_lex $P1255
- .const 'Sub' $P1250 = "324_1261064023.05912"
+ .const 'Sub' $P1250 = "324_1266337354.28388"
capture_lex $P1250
- .const 'Sub' $P1245 = "322_1261064023.05912"
+ .const 'Sub' $P1245 = "322_1266337354.28388"
capture_lex $P1245
- .const 'Sub' $P1236 = "319_1261064023.05912"
+ .const 'Sub' $P1236 = "319_1266337354.28388"
capture_lex $P1236
- .const 'Sub' $P1268 = "329_1261064023.05912"
+ .const 'Sub' $P1268 = "329_1266337354.28388"
capture_lex $P1268
.return ($P1268)
.end
.namespace ["NQP";"Regex"]
-.sub "metachar:sym<:my>" :subid("319_1261064023.05912") :method :outer("318_1261064023.05912")
+.sub "metachar:sym<:my>" :subid("319_1266337354.28388") :method :outer("318_1266337354.28388")
.annotate "line", 527
- .const 'Sub' $P1242 = "321_1261064023.05912"
+ .const 'Sub' $P1242 = "321_1266337354.28388"
capture_lex $P1242
.local string rx1237_tgt
.local int rx1237_pos
@@ -15153,7 +15153,7 @@
add rx1237_pos, 1
# rx subrule "before" subtype=zerowidth negate=
rx1237_cur."!cursor_pos"(rx1237_pos)
- .const 'Sub' $P1242 = "321_1261064023.05912"
+ .const 'Sub' $P1242 = "321_1266337354.28388"
capture_lex $P1242
$P10 = rx1237_cur."before"($P1242)
unless $P10, rx1237_fail
@@ -15196,7 +15196,7 @@
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<:my>" :subid("320_1261064023.05912") :method
+.sub "!PREFIX__metachar:sym<:my>" :subid("320_1266337354.28388") :method
.annotate "line", 527
new $P1239, "ResizablePMCArray"
push $P1239, ":"
@@ -15205,7 +15205,7 @@
.namespace ["NQP";"Regex"]
-.sub "_block1241" :anon :subid("321_1261064023.05912") :method :outer("319_1261064023.05912")
+.sub "_block1241" :anon :subid("321_1266337354.28388") :method :outer("319_1266337354.28388")
.annotate "line", 529
.local string rx1243_tgt
.local int rx1243_pos
@@ -15261,7 +15261,7 @@
.namespace ["NQP";"Regex"]
-.sub "metachar:sym<{ }>" :subid("322_1261064023.05912") :method :outer("318_1261064023.05912")
+.sub "metachar:sym<{ }>" :subid("322_1266337354.28388") :method :outer("318_1266337354.28388")
.annotate "line", 527
.local string rx1246_tgt
.local int rx1246_pos
@@ -15326,7 +15326,7 @@
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<{ }>" :subid("323_1261064023.05912") :method
+.sub "!PREFIX__metachar:sym<{ }>" :subid("323_1266337354.28388") :method
.annotate "line", 527
new $P1248, "ResizablePMCArray"
push $P1248, "{"
@@ -15335,7 +15335,7 @@
.namespace ["NQP";"Regex"]
-.sub "assertion:sym<{ }>" :subid("324_1261064023.05912") :method :outer("318_1261064023.05912")
+.sub "assertion:sym<{ }>" :subid("324_1266337354.28388") :method :outer("318_1266337354.28388")
.annotate "line", 527
.local string rx1251_tgt
.local int rx1251_pos
@@ -15400,7 +15400,7 @@
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<{ }>" :subid("325_1261064023.05912") :method
+.sub "!PREFIX__assertion:sym<{ }>" :subid("325_1266337354.28388") :method
.annotate "line", 527
new $P1253, "ResizablePMCArray"
push $P1253, "{"
@@ -15409,9 +15409,9 @@
.namespace ["NQP";"Regex"]
-.sub "assertion:sym<name>" :subid("326_1261064023.05912") :method :outer("318_1261064023.05912")
+.sub "assertion:sym<name>" :subid("326_1266337354.28388") :method :outer("318_1266337354.28388")
.annotate "line", 527
- .const 'Sub' $P1264 = "328_1261064023.05912"
+ .const 'Sub' $P1264 = "328_1266337354.28388"
capture_lex $P1264
.local string rx1256_tgt
.local int rx1256_pos
@@ -15421,7 +15421,7 @@
.local pmc rx1256_cur
(rx1256_cur, rx1256_pos, rx1256_tgt) = self."!cursor_start"()
rx1256_cur."!cursor_debug"("START ", "assertion:sym<name>")
- rx1256_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
+ rx1256_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
.lex unicode:"$\x{a2}", rx1256_cur
.local pmc match
.lex "$/", match
@@ -15476,7 +15476,7 @@
.annotate "line", 543
# rx subrule "before" subtype=zerowidth negate=
rx1256_cur."!cursor_pos"(rx1256_pos)
- .const 'Sub' $P1264 = "328_1261064023.05912"
+ .const 'Sub' $P1264 = "328_1266337354.28388"
capture_lex $P1264
$P10 = rx1256_cur."before"($P1264)
unless $P10, rx1256_fail
@@ -15583,7 +15583,7 @@
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<name>" :subid("327_1261064023.05912") :method
+.sub "!PREFIX__assertion:sym<name>" :subid("327_1266337354.28388") :method
.annotate "line", 527
new $P1258, "ResizablePMCArray"
push $P1258, ""
@@ -15592,7 +15592,7 @@
.namespace ["NQP";"Regex"]
-.sub "_block1263" :anon :subid("328_1261064023.05912") :method :outer("326_1261064023.05912")
+.sub "_block1263" :anon :subid("328_1266337354.28388") :method :outer("326_1266337354.28388")
.annotate "line", 543
.local string rx1265_tgt
.local int rx1265_pos
@@ -15648,7 +15648,7 @@
.namespace ["NQP";"Regex"]
-.sub "codeblock" :subid("329_1261064023.05912") :method :outer("318_1261064023.05912")
+.sub "codeblock" :subid("329_1266337354.28388") :method :outer("318_1266337354.28388")
.annotate "line", 527
.local string rx1269_tgt
.local int rx1269_pos
@@ -15707,7 +15707,7 @@
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__codeblock" :subid("330_1261064023.05912") :method
+.sub "!PREFIX__codeblock" :subid("330_1266337354.28388") :method
.annotate "line", 527
$P1271 = self."!PREFIX__!subrule"("block", "")
new $P1272, "ResizablePMCArray"
@@ -15718,7 +15718,7 @@
### .include 'gen/nqp-actions.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1261064035.64813")
+.sub "_block11" :anon :subid("10_1266337365.65225")
.annotate "line", 0
get_hll_global $P14, ["NQP";"Actions"], "_block13"
capture_lex $P14
@@ -15732,9 +15732,9 @@
.namespace []
-.sub "" :load :init :subid("post126") :outer("10_1261064035.64813")
+.sub "" :load :init :subid("post126") :outer("10_1266337365.65225")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1261064035.64813"
+ .const 'Sub' $P12 = "10_1266337365.65225"
.local pmc block
set block, $P12
$P2166 = get_root_global ["parrot"], "P6metaclass"
@@ -15743,199 +15743,199 @@
.namespace ["NQP";"Actions"]
-.sub "_block13" :subid("11_1261064035.64813") :outer("10_1261064035.64813")
+.sub "_block13" :subid("11_1266337365.65225") :outer("10_1266337365.65225")
.annotate "line", 3
- .const 'Sub' $P2161 = "125_1261064035.64813"
+ .const 'Sub' $P2161 = "125_1266337365.65225"
capture_lex $P2161
get_hll_global $P2097, ["NQP";"RegexActions"], "_block2096"
capture_lex $P2097
- .const 'Sub' $P2086 = "119_1261064035.64813"
+ .const 'Sub' $P2086 = "119_1266337365.65225"
capture_lex $P2086
- .const 'Sub' $P2074 = "118_1261064035.64813"
+ .const 'Sub' $P2074 = "118_1266337365.65225"
capture_lex $P2074
- .const 'Sub' $P2064 = "117_1261064035.64813"
+ .const 'Sub' $P2064 = "117_1266337365.65225"
capture_lex $P2064
- .const 'Sub' $P2054 = "116_1261064035.64813"
+ .const 'Sub' $P2054 = "116_1266337365.65225"
capture_lex $P2054
- .const 'Sub' $P2044 = "115_1261064035.64813"
+ .const 'Sub' $P2044 = "115_1266337365.65225"
capture_lex $P2044
- .const 'Sub' $P2030 = "114_1261064035.64813"
+ .const 'Sub' $P2030 = "114_1266337365.65225"
capture_lex $P2030
- .const 'Sub' $P2020 = "113_1261064035.64813"
+ .const 'Sub' $P2020 = "113_1266337365.65225"
capture_lex $P2020
- .const 'Sub' $P1983 = "112_1261064035.64813"
+ .const 'Sub' $P1983 = "112_1266337365.65225"
capture_lex $P1983
- .const 'Sub' $P1969 = "111_1261064035.64813"
+ .const 'Sub' $P1969 = "111_1266337365.65225"
capture_lex $P1969
- .const 'Sub' $P1959 = "110_1261064035.64813"
+ .const 'Sub' $P1959 = "110_1266337365.65225"
capture_lex $P1959
- .const 'Sub' $P1949 = "109_1261064035.64813"
+ .const 'Sub' $P1949 = "109_1266337365.65225"
capture_lex $P1949
- .const 'Sub' $P1939 = "108_1261064035.64813"
+ .const 'Sub' $P1939 = "108_1266337365.65225"
capture_lex $P1939
- .const 'Sub' $P1929 = "107_1261064035.64813"
+ .const 'Sub' $P1929 = "107_1266337365.65225"
capture_lex $P1929
- .const 'Sub' $P1919 = "106_1261064035.64813"
+ .const 'Sub' $P1919 = "106_1266337365.65225"
capture_lex $P1919
- .const 'Sub' $P1891 = "105_1261064035.64813"
+ .const 'Sub' $P1891 = "105_1266337365.65225"
capture_lex $P1891
- .const 'Sub' $P1874 = "104_1261064035.64813"
+ .const 'Sub' $P1874 = "104_1266337365.65225"
capture_lex $P1874
- .const 'Sub' $P1864 = "103_1261064035.64813"
+ .const 'Sub' $P1864 = "103_1266337365.65225"
capture_lex $P1864
- .const 'Sub' $P1852 = "102_1261064035.64813"
+ .const 'Sub' $P1852 = "102_1266337365.65225"
capture_lex $P1852
- .const 'Sub' $P1840 = "101_1261064035.64813"
+ .const 'Sub' $P1840 = "101_1266337365.65225"
capture_lex $P1840
- .const 'Sub' $P1828 = "100_1261064035.64813"
+ .const 'Sub' $P1828 = "100_1266337365.65225"
capture_lex $P1828
- .const 'Sub' $P1818 = "99_1261064035.64813"
+ .const 'Sub' $P1818 = "99_1266337365.65225"
capture_lex $P1818
- .const 'Sub' $P1789 = "98_1261064035.64813"
+ .const 'Sub' $P1789 = "98_1266337365.65225"
capture_lex $P1789
- .const 'Sub' $P1767 = "97_1261064035.64813"
+ .const 'Sub' $P1767 = "97_1266337365.65225"
capture_lex $P1767
- .const 'Sub' $P1757 = "96_1261064035.64813"
+ .const 'Sub' $P1757 = "96_1266337365.65225"
capture_lex $P1757
- .const 'Sub' $P1747 = "95_1261064035.64813"
+ .const 'Sub' $P1747 = "95_1266337365.65225"
capture_lex $P1747
- .const 'Sub' $P1720 = "94_1261064035.64813"
+ .const 'Sub' $P1720 = "94_1266337365.65225"
capture_lex $P1720
- .const 'Sub' $P1702 = "93_1261064035.64813"
+ .const 'Sub' $P1702 = "93_1266337365.65225"
capture_lex $P1702
- .const 'Sub' $P1692 = "92_1261064035.64813"
+ .const 'Sub' $P1692 = "92_1266337365.65225"
capture_lex $P1692
- .const 'Sub' $P1608 = "89_1261064035.64813"
+ .const 'Sub' $P1608 = "89_1266337365.65225"
capture_lex $P1608
- .const 'Sub' $P1598 = "88_1261064035.64813"
+ .const 'Sub' $P1598 = "88_1266337365.65225"
capture_lex $P1598
- .const 'Sub' $P1569 = "87_1261064035.64813"
+ .const 'Sub' $P1569 = "87_1266337365.65225"
capture_lex $P1569
- .const 'Sub' $P1527 = "86_1261064035.64813"
+ .const 'Sub' $P1527 = "86_1266337365.65225"
capture_lex $P1527
- .const 'Sub' $P1511 = "85_1261064035.64813"
+ .const 'Sub' $P1511 = "85_1266337365.65225"
capture_lex $P1511
- .const 'Sub' $P1502 = "84_1261064035.64813"
+ .const 'Sub' $P1502 = "84_1266337365.65225"
capture_lex $P1502
- .const 'Sub' $P1470 = "83_1261064035.64813"
+ .const 'Sub' $P1470 = "83_1266337365.65225"
capture_lex $P1470
- .const 'Sub' $P1371 = "80_1261064035.64813"
+ .const 'Sub' $P1371 = "80_1266337365.65225"
capture_lex $P1371
- .const 'Sub' $P1354 = "79_1261064035.64813"
+ .const 'Sub' $P1354 = "79_1266337365.65225"
capture_lex $P1354
- .const 'Sub' $P1334 = "78_1261064035.64813"
+ .const 'Sub' $P1334 = "78_1266337365.65225"
capture_lex $P1334
- .const 'Sub' $P1250 = "77_1261064035.64813"
+ .const 'Sub' $P1250 = "77_1266337365.65225"
capture_lex $P1250
- .const 'Sub' $P1226 = "75_1261064035.64813"
+ .const 'Sub' $P1226 = "75_1266337365.65225"
capture_lex $P1226
- .const 'Sub' $P1192 = "73_1261064035.64813"
+ .const 'Sub' $P1192 = "73_1266337365.65225"
capture_lex $P1192
- .const 'Sub' $P1142 = "71_1261064035.64813"
+ .const 'Sub' $P1142 = "71_1266337365.65225"
capture_lex $P1142
- .const 'Sub' $P1132 = "70_1261064035.64813"
+ .const 'Sub' $P1132 = "70_1266337365.65225"
capture_lex $P1132
- .const 'Sub' $P1122 = "69_1261064035.64813"
+ .const 'Sub' $P1122 = "69_1266337365.65225"
capture_lex $P1122
- .const 'Sub' $P1051 = "67_1261064035.64813"
+ .const 'Sub' $P1051 = "67_1266337365.65225"
capture_lex $P1051
- .const 'Sub' $P1034 = "66_1261064035.64813"
+ .const 'Sub' $P1034 = "66_1266337365.65225"
capture_lex $P1034
- .const 'Sub' $P1024 = "65_1261064035.64813"
+ .const 'Sub' $P1024 = "65_1266337365.65225"
capture_lex $P1024
- .const 'Sub' $P1014 = "64_1261064035.64813"
+ .const 'Sub' $P1014 = "64_1266337365.65225"
capture_lex $P1014
- .const 'Sub' $P1004 = "63_1261064035.64813"
+ .const 'Sub' $P1004 = "63_1266337365.65225"
capture_lex $P1004
- .const 'Sub' $P980 = "62_1261064035.64813"
+ .const 'Sub' $P980 = "62_1266337365.65225"
capture_lex $P980
- .const 'Sub' $P927 = "61_1261064035.64813"
+ .const 'Sub' $P927 = "61_1266337365.65225"
capture_lex $P927
- .const 'Sub' $P917 = "60_1261064035.64813"
+ .const 'Sub' $P917 = "60_1266337365.65225"
capture_lex $P917
- .const 'Sub' $P828 = "58_1261064035.64813"
+ .const 'Sub' $P828 = "58_1266337365.65225"
capture_lex $P828
- .const 'Sub' $P802 = "57_1261064035.64813"
+ .const 'Sub' $P802 = "57_1266337365.65225"
capture_lex $P802
- .const 'Sub' $P786 = "56_1261064035.64813"
+ .const 'Sub' $P786 = "56_1266337365.65225"
capture_lex $P786
- .const 'Sub' $P776 = "55_1261064035.64813"
+ .const 'Sub' $P776 = "55_1266337365.65225"
capture_lex $P776
- .const 'Sub' $P766 = "54_1261064035.64813"
+ .const 'Sub' $P766 = "54_1266337365.65225"
capture_lex $P766
- .const 'Sub' $P756 = "53_1261064035.64813"
+ .const 'Sub' $P756 = "53_1266337365.65225"
capture_lex $P756
- .const 'Sub' $P746 = "52_1261064035.64813"
+ .const 'Sub' $P746 = "52_1266337365.65225"
capture_lex $P746
- .const 'Sub' $P736 = "51_1261064035.64813"
+ .const 'Sub' $P736 = "51_1266337365.65225"
capture_lex $P736
- .const 'Sub' $P726 = "50_1261064035.64813"
+ .const 'Sub' $P726 = "50_1266337365.65225"
capture_lex $P726
- .const 'Sub' $P716 = "49_1261064035.64813"
+ .const 'Sub' $P716 = "49_1266337365.65225"
capture_lex $P716
- .const 'Sub' $P706 = "48_1261064035.64813"
+ .const 'Sub' $P706 = "48_1266337365.65225"
capture_lex $P706
- .const 'Sub' $P696 = "47_1261064035.64813"
+ .const 'Sub' $P696 = "47_1266337365.65225"
capture_lex $P696
- .const 'Sub' $P686 = "46_1261064035.64813"
+ .const 'Sub' $P686 = "46_1266337365.65225"
capture_lex $P686
- .const 'Sub' $P676 = "45_1261064035.64813"
+ .const 'Sub' $P676 = "45_1266337365.65225"
capture_lex $P676
- .const 'Sub' $P666 = "44_1261064035.64813"
+ .const 'Sub' $P666 = "44_1266337365.65225"
capture_lex $P666
- .const 'Sub' $P656 = "43_1261064035.64813"
+ .const 'Sub' $P656 = "43_1266337365.65225"
capture_lex $P656
- .const 'Sub' $P638 = "42_1261064035.64813"
+ .const 'Sub' $P638 = "42_1266337365.65225"
capture_lex $P638
- .const 'Sub' $P603 = "41_1261064035.64813"
+ .const 'Sub' $P603 = "41_1266337365.65225"
capture_lex $P603
- .const 'Sub' $P587 = "40_1261064035.64813"
+ .const 'Sub' $P587 = "40_1266337365.65225"
capture_lex $P587
- .const 'Sub' $P566 = "39_1261064035.64813"
+ .const 'Sub' $P566 = "39_1266337365.65225"
capture_lex $P566
- .const 'Sub' $P546 = "38_1261064035.64813"
+ .const 'Sub' $P546 = "38_1266337365.65225"
capture_lex $P546
- .const 'Sub' $P533 = "37_1261064035.64813"
+ .const 'Sub' $P533 = "37_1266337365.65225"
capture_lex $P533
- .const 'Sub' $P507 = "36_1261064035.64813"
+ .const 'Sub' $P507 = "36_1266337365.65225"
capture_lex $P507
- .const 'Sub' $P471 = "35_1261064035.64813"
+ .const 'Sub' $P471 = "35_1266337365.65225"
capture_lex $P471
- .const 'Sub' $P454 = "34_1261064035.64813"
+ .const 'Sub' $P454 = "34_1266337365.65225"
capture_lex $P454
- .const 'Sub' $P440 = "33_1261064035.64813"
+ .const 'Sub' $P440 = "33_1266337365.65225"
capture_lex $P440
- .const 'Sub' $P387 = "31_1261064035.64813"
+ .const 'Sub' $P387 = "31_1266337365.65225"
capture_lex $P387
- .const 'Sub' $P374 = "30_1261064035.64813"
+ .const 'Sub' $P374 = "30_1266337365.65225"
capture_lex $P374
- .const 'Sub' $P355 = "29_1261064035.64813"
+ .const 'Sub' $P355 = "29_1266337365.65225"
capture_lex $P355
- .const 'Sub' $P345 = "28_1261064035.64813"
+ .const 'Sub' $P345 = "28_1266337365.65225"
capture_lex $P345
- .const 'Sub' $P335 = "27_1261064035.64813"
+ .const 'Sub' $P335 = "27_1266337365.65225"
capture_lex $P335
- .const 'Sub' $P319 = "26_1261064035.64813"
+ .const 'Sub' $P319 = "26_1266337365.65225"
capture_lex $P319
- .const 'Sub' $P259 = "24_1261064035.64813"
+ .const 'Sub' $P259 = "24_1266337365.65225"
capture_lex $P259
- .const 'Sub' $P210 = "22_1261064035.64813"
+ .const 'Sub' $P210 = "22_1266337365.65225"
capture_lex $P210
- .const 'Sub' $P191 = "21_1261064035.64813"
+ .const 'Sub' $P191 = "21_1266337365.65225"
capture_lex $P191
- .const 'Sub' $P158 = "20_1261064035.64813"
+ .const 'Sub' $P158 = "20_1266337365.65225"
capture_lex $P158
- .const 'Sub' $P148 = "19_1261064035.64813"
+ .const 'Sub' $P148 = "19_1266337365.65225"
capture_lex $P148
- .const 'Sub' $P94 = "18_1261064035.64813"
+ .const 'Sub' $P94 = "18_1266337365.65225"
capture_lex $P94
- .const 'Sub' $P79 = "17_1261064035.64813"
+ .const 'Sub' $P79 = "17_1266337365.65225"
capture_lex $P79
- .const 'Sub' $P61 = "16_1261064035.64813"
+ .const 'Sub' $P61 = "16_1266337365.65225"
capture_lex $P61
- .const 'Sub' $P26 = "13_1261064035.64813"
+ .const 'Sub' $P26 = "13_1266337365.65225"
capture_lex $P26
- .const 'Sub' $P16 = "12_1261064035.64813"
+ .const 'Sub' $P16 = "12_1266337365.65225"
capture_lex $P16
get_global $P15, "@BLOCK"
unless_null $P15, vivify_129
@@ -15943,23 +15943,23 @@
set_global "@BLOCK", $P15
vivify_129:
.annotate "line", 9
- .const 'Sub' $P16 = "12_1261064035.64813"
+ .const 'Sub' $P16 = "12_1266337365.65225"
capture_lex $P16
.lex "xblock_immediate", $P16
.annotate "line", 14
- .const 'Sub' $P26 = "13_1261064035.64813"
+ .const 'Sub' $P26 = "13_1266337365.65225"
capture_lex $P26
.lex "block_immediate", $P26
.annotate "line", 24
- .const 'Sub' $P61 = "16_1261064035.64813"
+ .const 'Sub' $P61 = "16_1266337365.65225"
capture_lex $P61
.lex "sigiltype", $P61
.annotate "line", 40
- .const 'Sub' $P79 = "17_1261064035.64813"
+ .const 'Sub' $P79 = "17_1266337365.65225"
capture_lex $P79
.lex "colonpair_str", $P79
.annotate "line", 187
- .const 'Sub' $P94 = "18_1261064035.64813"
+ .const 'Sub' $P94 = "18_1266337365.65225"
capture_lex $P94
.lex "push_block_handler", $P94
.annotate "line", 3
@@ -15982,13 +15982,13 @@
.namespace ["NQP";"Actions"]
-.sub "" :load :init :subid("post127") :outer("11_1261064035.64813")
+.sub "" :load :init :subid("post127") :outer("11_1266337365.65225")
.annotate "line", 3
get_hll_global $P14, ["NQP";"Actions"], "_block13"
.local pmc block
set block, $P14
.annotate "line", 5
- .const 'Sub' $P2161 = "125_1261064035.64813"
+ .const 'Sub' $P2161 = "125_1266337365.65225"
capture_lex $P2161
$P2161()
$P2164 = get_root_global ["parrot"], "P6metaclass"
@@ -15997,7 +15997,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block2160" :anon :subid("125_1261064035.64813") :outer("11_1261064035.64813")
+.sub "_block2160" :anon :subid("125_1266337365.65225") :outer("11_1266337365.65225")
.annotate "line", 6
get_global $P2162, "@BLOCK"
unless_null $P2162, vivify_128
@@ -16012,7 +16012,7 @@
.namespace ["NQP";"Actions"]
-.sub "xblock_immediate" :subid("12_1261064035.64813") :outer("11_1261064035.64813")
+.sub "xblock_immediate" :subid("12_1266337365.65225") :outer("11_1266337365.65225")
.param pmc param_19
.annotate "line", 9
new $P18, 'ExceptionHandler'
@@ -16048,10 +16048,10 @@
.namespace ["NQP";"Actions"]
-.sub "block_immediate" :subid("13_1261064035.64813") :outer("11_1261064035.64813")
+.sub "block_immediate" :subid("13_1266337365.65225") :outer("11_1266337365.65225")
.param pmc param_29
.annotate "line", 14
- .const 'Sub' $P39 = "14_1261064035.64813"
+ .const 'Sub' $P39 = "14_1266337365.65225"
capture_lex $P39
new $P28, 'ExceptionHandler'
set_addr $P28, control_27
@@ -16073,7 +16073,7 @@
set $P32, $P37
unless_33_end:
if $P32, unless_31_end
- .const 'Sub' $P39 = "14_1261064035.64813"
+ .const 'Sub' $P39 = "14_1266337365.65225"
capture_lex $P39
$P39()
unless_31_end:
@@ -16089,9 +16089,9 @@
.namespace ["NQP";"Actions"]
-.sub "_block38" :anon :subid("14_1261064035.64813") :outer("13_1261064035.64813")
+.sub "_block38" :anon :subid("14_1266337365.65225") :outer("13_1266337365.65225")
.annotate "line", 16
- .const 'Sub' $P50 = "15_1261064035.64813"
+ .const 'Sub' $P50 = "15_1266337365.65225"
capture_lex $P50
.annotate "line", 17
new $P40, "Undef"
@@ -16114,7 +16114,7 @@
unless $P44, loop55_done
shift $P48, $P44
loop55_redo:
- .const 'Sub' $P50 = "15_1261064035.64813"
+ .const 'Sub' $P50 = "15_1266337365.65225"
capture_lex $P50
$P50($P48)
loop55_next:
@@ -16137,7 +16137,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block49" :anon :subid("15_1261064035.64813") :outer("14_1261064035.64813")
+.sub "_block49" :anon :subid("15_1266337365.65225") :outer("14_1266337365.65225")
.param pmc param_51
.annotate "line", 18
.lex "$_", param_51
@@ -16149,7 +16149,7 @@
.namespace ["NQP";"Actions"]
-.sub "sigiltype" :subid("16_1261064035.64813") :outer("11_1261064035.64813")
+.sub "sigiltype" :subid("16_1266337365.65225") :outer("11_1266337365.65225")
.param pmc param_64
.annotate "line", 24
new $P63, 'ExceptionHandler'
@@ -16195,7 +16195,7 @@
.namespace ["NQP";"Actions"]
-.sub "colonpair_str" :subid("17_1261064035.64813") :outer("11_1261064035.64813")
+.sub "colonpair_str" :subid("17_1266337365.65225") :outer("11_1266337365.65225")
.param pmc param_82
.annotate "line", 40
new $P81, 'ExceptionHandler'
@@ -16233,7 +16233,7 @@
.namespace ["NQP";"Actions"]
-.sub "push_block_handler" :subid("18_1261064035.64813") :outer("11_1261064035.64813")
+.sub "push_block_handler" :subid("18_1266337365.65225") :outer("11_1266337365.65225")
.param pmc param_97
.param pmc param_98
.annotate "line", 187
@@ -16350,7 +16350,7 @@
.namespace ["NQP";"Actions"]
-.sub "TOP" :subid("19_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "TOP" :subid("19_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_151
.annotate "line", 30
new $P150, 'ExceptionHandler'
@@ -16380,7 +16380,7 @@
.namespace ["NQP";"Actions"]
-.sub "deflongname" :subid("20_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "deflongname" :subid("20_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_161
.annotate "line", 32
new $P160, 'ExceptionHandler'
@@ -16469,7 +16469,7 @@
.namespace ["NQP";"Actions"]
-.sub "comp_unit" :subid("21_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "comp_unit" :subid("21_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_194
.annotate "line", 46
new $P193, 'ExceptionHandler'
@@ -16522,10 +16522,10 @@
.namespace ["NQP";"Actions"]
-.sub "statementlist" :subid("22_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "statementlist" :subid("22_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_213
.annotate "line", 54
- .const 'Sub' $P227 = "23_1261064035.64813"
+ .const 'Sub' $P227 = "23_1266337365.65225"
capture_lex $P227
new $P212, 'ExceptionHandler'
set_addr $P212, control_211
@@ -16570,7 +16570,7 @@
unless $P221, loop252_done
shift $P225, $P221
loop252_redo:
- .const 'Sub' $P227 = "23_1261064035.64813"
+ .const 'Sub' $P227 = "23_1266337365.65225"
capture_lex $P227
$P227($P225)
loop252_next:
@@ -16600,7 +16600,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block226" :anon :subid("23_1261064035.64813") :outer("22_1261064035.64813")
+.sub "_block226" :anon :subid("23_1266337365.65225") :outer("22_1266337365.65225")
.param pmc param_229
.annotate "line", 58
new $P228, "Undef"
@@ -16660,12 +16660,12 @@
.namespace ["NQP";"Actions"]
-.sub "statement" :subid("24_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "statement" :subid("24_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_262
.param pmc param_263 :optional
.param int has_param_263 :opt_flag
.annotate "line", 69
- .const 'Sub' $P271 = "25_1261064035.64813"
+ .const 'Sub' $P271 = "25_1266337365.65225"
capture_lex $P271
new $P261, 'ExceptionHandler'
set_addr $P261, control_260
@@ -16724,7 +16724,7 @@
goto if_267_end
if_267:
.annotate "line", 71
- .const 'Sub' $P271 = "25_1261064035.64813"
+ .const 'Sub' $P271 = "25_1266337365.65225"
capture_lex $P271
$P271()
if_267_end:
@@ -16743,7 +16743,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block270" :anon :subid("25_1261064035.64813") :outer("24_1261064035.64813")
+.sub "_block270" :anon :subid("25_1266337365.65225") :outer("24_1266337365.65225")
.annotate "line", 72
new $P272, "Undef"
.lex "$mc", $P272
@@ -16856,7 +16856,7 @@
.namespace ["NQP";"Actions"]
-.sub "xblock" :subid("26_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "xblock" :subid("26_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_322
.annotate "line", 87
new $P321, 'ExceptionHandler'
@@ -16900,7 +16900,7 @@
.namespace ["NQP";"Actions"]
-.sub "pblock" :subid("27_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "pblock" :subid("27_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_338
.annotate "line", 91
new $P337, 'ExceptionHandler'
@@ -16932,7 +16932,7 @@
.namespace ["NQP";"Actions"]
-.sub "block" :subid("28_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "block" :subid("28_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_348
.annotate "line", 95
new $P347, 'ExceptionHandler'
@@ -16964,7 +16964,7 @@
.namespace ["NQP";"Actions"]
-.sub "blockoid" :subid("29_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "blockoid" :subid("29_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_358
.annotate "line", 99
new $P357, 'ExceptionHandler'
@@ -17017,7 +17017,7 @@
.namespace ["NQP";"Actions"]
-.sub "newpad" :subid("30_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "newpad" :subid("30_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_377
.annotate "line", 107
new $P376, 'ExceptionHandler'
@@ -17052,10 +17052,10 @@
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<if>" :subid("31_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "statement_control:sym<if>" :subid("31_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_390
.annotate "line", 114
- .const 'Sub' $P418 = "32_1261064035.64813"
+ .const 'Sub' $P418 = "32_1266337365.65225"
capture_lex $P418
new $P389, 'ExceptionHandler'
set_addr $P389, control_388
@@ -17140,7 +17140,7 @@
isgt $I416, $N415, 0.0
unless $I416, loop433_done
loop433_redo:
- .const 'Sub' $P418 = "32_1261064035.64813"
+ .const 'Sub' $P418 = "32_1266337365.65225"
capture_lex $P418
$P418()
loop433_next:
@@ -17168,7 +17168,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block417" :anon :subid("32_1261064035.64813") :outer("31_1261064035.64813")
+.sub "_block417" :anon :subid("32_1266337365.65225") :outer("31_1266337365.65225")
.annotate "line", 123
new $P419, "Undef"
.lex "$else", $P419
@@ -17207,7 +17207,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<unless>" :subid("33_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "statement_control:sym<unless>" :subid("33_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_443
.annotate "line", 130
new $P442, 'ExceptionHandler'
@@ -17248,7 +17248,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<while>" :subid("34_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "statement_control:sym<while>" :subid("34_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_457
.annotate "line", 136
new $P456, 'ExceptionHandler'
@@ -17298,7 +17298,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<repeat>" :subid("35_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "statement_control:sym<repeat>" :subid("35_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_474
.annotate "line", 142
new $P473, 'ExceptionHandler'
@@ -17398,7 +17398,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<for>" :subid("36_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "statement_control:sym<for>" :subid("36_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_510
.annotate "line", 156
new $P509, 'ExceptionHandler'
@@ -17478,7 +17478,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<return>" :subid("37_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "statement_control:sym<return>" :subid("37_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_536
.annotate "line", 169
new $P535, 'ExceptionHandler'
@@ -17513,7 +17513,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<CATCH>" :subid("38_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "statement_control:sym<CATCH>" :subid("38_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_549
.annotate "line", 173
new $P548, 'ExceptionHandler'
@@ -17571,7 +17571,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<CONTROL>" :subid("39_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "statement_control:sym<CONTROL>" :subid("39_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_569
.annotate "line", 180
new $P568, 'ExceptionHandler'
@@ -17629,7 +17629,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_prefix:sym<INIT>" :subid("40_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "statement_prefix:sym<INIT>" :subid("40_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_590
.annotate "line", 224
new $P589, 'ExceptionHandler'
@@ -17675,7 +17675,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_prefix:sym<try>" :subid("41_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "statement_prefix:sym<try>" :subid("41_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_606
.annotate "line", 229
new $P605, 'ExceptionHandler'
@@ -17752,7 +17752,7 @@
.namespace ["NQP";"Actions"]
-.sub "blorst" :subid("42_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "blorst" :subid("42_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_641
.annotate "line", 252
new $P640, 'ExceptionHandler'
@@ -17811,7 +17811,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_mod_cond:sym<if>" :subid("43_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "statement_mod_cond:sym<if>" :subid("43_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_659
.annotate "line", 260
new $P658, 'ExceptionHandler'
@@ -17841,7 +17841,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_mod_cond:sym<unless>" :subid("44_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "statement_mod_cond:sym<unless>" :subid("44_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_669
.annotate "line", 261
new $P668, 'ExceptionHandler'
@@ -17871,7 +17871,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_mod_loop:sym<while>" :subid("45_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "statement_mod_loop:sym<while>" :subid("45_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_679
.annotate "line", 263
new $P678, 'ExceptionHandler'
@@ -17901,7 +17901,7 @@
.namespace ["NQP";"Actions"]
-.sub "statement_mod_loop:sym<until>" :subid("46_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "statement_mod_loop:sym<until>" :subid("46_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_689
.annotate "line", 264
new $P688, 'ExceptionHandler'
@@ -17931,7 +17931,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<fatarrow>" :subid("47_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "term:sym<fatarrow>" :subid("47_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_699
.annotate "line", 268
new $P698, 'ExceptionHandler'
@@ -17961,7 +17961,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<colonpair>" :subid("48_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "term:sym<colonpair>" :subid("48_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_709
.annotate "line", 269
new $P708, 'ExceptionHandler'
@@ -17991,7 +17991,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<variable>" :subid("49_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "term:sym<variable>" :subid("49_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_719
.annotate "line", 270
new $P718, 'ExceptionHandler'
@@ -18021,7 +18021,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<package_declarator>" :subid("50_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "term:sym<package_declarator>" :subid("50_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_729
.annotate "line", 271
new $P728, 'ExceptionHandler'
@@ -18051,7 +18051,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<scope_declarator>" :subid("51_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "term:sym<scope_declarator>" :subid("51_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_739
.annotate "line", 272
new $P738, 'ExceptionHandler'
@@ -18081,7 +18081,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<routine_declarator>" :subid("52_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "term:sym<routine_declarator>" :subid("52_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_749
.annotate "line", 273
new $P748, 'ExceptionHandler'
@@ -18111,7 +18111,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<regex_declarator>" :subid("53_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "term:sym<regex_declarator>" :subid("53_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_759
.annotate "line", 274
new $P758, 'ExceptionHandler'
@@ -18141,7 +18141,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<statement_prefix>" :subid("54_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "term:sym<statement_prefix>" :subid("54_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_769
.annotate "line", 275
new $P768, 'ExceptionHandler'
@@ -18171,7 +18171,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<lambda>" :subid("55_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "term:sym<lambda>" :subid("55_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_779
.annotate "line", 276
new $P778, 'ExceptionHandler'
@@ -18201,7 +18201,7 @@
.namespace ["NQP";"Actions"]
-.sub "fatarrow" :subid("56_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "fatarrow" :subid("56_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_789
.annotate "line", 278
new $P788, 'ExceptionHandler'
@@ -18250,7 +18250,7 @@
.namespace ["NQP";"Actions"]
-.sub "colonpair" :subid("57_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "colonpair" :subid("57_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_805
.annotate "line", 284
new $P804, 'ExceptionHandler'
@@ -18331,10 +18331,10 @@
.namespace ["NQP";"Actions"]
-.sub "variable" :subid("58_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "variable" :subid("58_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_831
.annotate "line", 292
- .const 'Sub' $P844 = "59_1261064035.64813"
+ .const 'Sub' $P844 = "59_1266337365.65225"
capture_lex $P844
new $P830, 'ExceptionHandler'
set_addr $P830, control_829
@@ -18358,7 +18358,7 @@
vivify_296:
if $P836, if_834
.annotate "line", 298
- .const 'Sub' $P844 = "59_1261064035.64813"
+ .const 'Sub' $P844 = "59_1266337365.65225"
capture_lex $P844
$P844()
goto if_834_end
@@ -18395,7 +18395,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block843" :anon :subid("59_1261064035.64813") :outer("58_1261064035.64813")
+.sub "_block843" :anon :subid("59_1266337365.65225") :outer("58_1266337365.65225")
.annotate "line", 299
new $P845, "ResizablePMCArray"
.lex "@name", $P845
@@ -18564,7 +18564,7 @@
.namespace ["NQP";"Actions"]
-.sub "package_declarator:sym<module>" :subid("60_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "package_declarator:sym<module>" :subid("60_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_920
.annotate "line", 330
new $P919, 'ExceptionHandler'
@@ -18594,7 +18594,7 @@
.namespace ["NQP";"Actions"]
-.sub "package_declarator:sym<class>" :subid("61_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "package_declarator:sym<class>" :subid("61_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_930
.annotate "line", 331
new $P929, 'ExceptionHandler'
@@ -18751,7 +18751,7 @@
.namespace ["NQP";"Actions"]
-.sub "package_def" :subid("62_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "package_def" :subid("62_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_983
.annotate "line", 354
new $P982, 'ExceptionHandler'
@@ -18829,7 +18829,7 @@
.namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<my>" :subid("63_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "scope_declarator:sym<my>" :subid("63_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1007
.annotate "line", 361
new $P1006, 'ExceptionHandler'
@@ -18859,7 +18859,7 @@
.namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<our>" :subid("64_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "scope_declarator:sym<our>" :subid("64_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1017
.annotate "line", 362
new $P1016, 'ExceptionHandler'
@@ -18889,7 +18889,7 @@
.namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<has>" :subid("65_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "scope_declarator:sym<has>" :subid("65_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1027
.annotate "line", 363
new $P1026, 'ExceptionHandler'
@@ -18919,7 +18919,7 @@
.namespace ["NQP";"Actions"]
-.sub "scoped" :subid("66_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "scoped" :subid("66_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1037
.annotate "line", 365
new $P1036, 'ExceptionHandler'
@@ -18977,10 +18977,10 @@
.namespace ["NQP";"Actions"]
-.sub "variable_declarator" :subid("67_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "variable_declarator" :subid("67_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1054
.annotate "line", 371
- .const 'Sub' $P1094 = "68_1261064035.64813"
+ .const 'Sub' $P1094 = "68_1266337365.65225"
capture_lex $P1094
new $P1053, 'ExceptionHandler'
set_addr $P1053, control_1052
@@ -19062,7 +19062,7 @@
iseq $I1079, $S1078, "has"
if $I1079, if_1076
.annotate "line", 388
- .const 'Sub' $P1094 = "68_1261064035.64813"
+ .const 'Sub' $P1094 = "68_1266337365.65225"
capture_lex $P1094
$P1094()
goto if_1076_end
@@ -19122,7 +19122,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1093" :anon :subid("68_1261064035.64813") :outer("67_1261064035.64813")
+.sub "_block1093" :anon :subid("68_1266337365.65225") :outer("67_1266337365.65225")
.annotate "line", 389
new $P1095, "Undef"
.lex "$scope", $P1095
@@ -19183,7 +19183,7 @@
.namespace ["NQP";"Actions"]
-.sub "routine_declarator:sym<sub>" :subid("69_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "routine_declarator:sym<sub>" :subid("69_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1125
.annotate "line", 399
new $P1124, 'ExceptionHandler'
@@ -19213,7 +19213,7 @@
.namespace ["NQP";"Actions"]
-.sub "routine_declarator:sym<method>" :subid("70_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "routine_declarator:sym<method>" :subid("70_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1135
.annotate "line", 400
new $P1134, 'ExceptionHandler'
@@ -19243,10 +19243,10 @@
.namespace ["NQP";"Actions"]
-.sub "routine_def" :subid("71_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "routine_def" :subid("71_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1145
.annotate "line", 402
- .const 'Sub' $P1156 = "72_1261064035.64813"
+ .const 'Sub' $P1156 = "72_1266337365.65225"
capture_lex $P1156
new $P1144, 'ExceptionHandler'
set_addr $P1144, control_1143
@@ -19283,7 +19283,7 @@
new $P1154, "Undef"
vivify_380:
unless $P1154, if_1152_end
- .const 'Sub' $P1156 = "72_1261064035.64813"
+ .const 'Sub' $P1156 = "72_1266337365.65225"
capture_lex $P1156
$P1156()
if_1152_end:
@@ -19302,7 +19302,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1155" :anon :subid("72_1261064035.64813") :outer("71_1261064035.64813")
+.sub "_block1155" :anon :subid("72_1266337365.65225") :outer("71_1266337365.65225")
.annotate "line", 407
new $P1157, "Undef"
.lex "$name", $P1157
@@ -19398,10 +19398,10 @@
.namespace ["NQP";"Actions"]
-.sub "method_def" :subid("73_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "method_def" :subid("73_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1195
.annotate "line", 420
- .const 'Sub' $P1211 = "74_1261064035.64813"
+ .const 'Sub' $P1211 = "74_1266337365.65225"
capture_lex $P1211
new $P1194, 'ExceptionHandler'
set_addr $P1194, control_1193
@@ -19453,7 +19453,7 @@
new $P1209, "Undef"
vivify_399:
unless $P1209, if_1207_end
- .const 'Sub' $P1211 = "74_1261064035.64813"
+ .const 'Sub' $P1211 = "74_1266337365.65225"
capture_lex $P1211
$P1211()
if_1207_end:
@@ -19472,7 +19472,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1210" :anon :subid("74_1261064035.64813") :outer("73_1261064035.64813")
+.sub "_block1210" :anon :subid("74_1266337365.65225") :outer("73_1266337365.65225")
.annotate "line", 427
new $P1212, "Undef"
.lex "$name", $P1212
@@ -19503,10 +19503,10 @@
.namespace ["NQP";"Actions"]
-.sub "signature" :subid("75_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "signature" :subid("75_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1229
.annotate "line", 434
- .const 'Sub' $P1240 = "76_1261064035.64813"
+ .const 'Sub' $P1240 = "76_1266337365.65225"
capture_lex $P1240
new $P1228, 'ExceptionHandler'
set_addr $P1228, control_1227
@@ -19550,7 +19550,7 @@
unless $P1234, loop1246_done
shift $P1238, $P1234
loop1246_redo:
- .const 'Sub' $P1240 = "76_1261064035.64813"
+ .const 'Sub' $P1240 = "76_1266337365.65225"
capture_lex $P1240
$P1240($P1238)
loop1246_next:
@@ -19575,7 +19575,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1239" :anon :subid("76_1261064035.64813") :outer("75_1261064035.64813")
+.sub "_block1239" :anon :subid("76_1266337365.65225") :outer("75_1266337365.65225")
.param pmc param_1241
.annotate "line", 436
.lex "$_", param_1241
@@ -19588,7 +19588,7 @@
.namespace ["NQP";"Actions"]
-.sub "parameter" :subid("77_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "parameter" :subid("77_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1253
.annotate "line", 439
new $P1252, 'ExceptionHandler'
@@ -19820,7 +19820,7 @@
.namespace ["NQP";"Actions"]
-.sub "param_var" :subid("78_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "param_var" :subid("78_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1337
.annotate "line", 471
new $P1336, 'ExceptionHandler'
@@ -19873,7 +19873,7 @@
.namespace ["NQP";"Actions"]
-.sub "named_param" :subid("79_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "named_param" :subid("79_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1357
.annotate "line", 479
new $P1356, 'ExceptionHandler'
@@ -19926,14 +19926,14 @@
.namespace ["NQP";"Actions"]
-.sub "regex_declarator" :subid("80_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "regex_declarator" :subid("80_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1374
.param pmc param_1375 :optional
.param int has_param_1375 :opt_flag
.annotate "line", 485
- .const 'Sub' $P1445 = "82_1261064035.64813"
+ .const 'Sub' $P1445 = "82_1266337365.65225"
capture_lex $P1445
- .const 'Sub' $P1417 = "81_1261064035.64813"
+ .const 'Sub' $P1417 = "81_1266337365.65225"
capture_lex $P1417
new $P1373, 'ExceptionHandler'
set_addr $P1373, control_1372
@@ -19991,13 +19991,13 @@
iseq $I1415, $S1414, "open"
if $I1415, if_1412
.annotate "line", 531
- .const 'Sub' $P1445 = "82_1261064035.64813"
+ .const 'Sub' $P1445 = "82_1266337365.65225"
capture_lex $P1445
$P1445()
goto if_1412_end
if_1412:
.annotate "line", 518
- .const 'Sub' $P1417 = "81_1261064035.64813"
+ .const 'Sub' $P1417 = "81_1266337365.65225"
capture_lex $P1417
$P1417()
if_1412_end:
@@ -20054,7 +20054,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1444" :anon :subid("82_1261064035.64813") :outer("80_1261064035.64813")
+.sub "_block1444" :anon :subid("82_1266337365.65225") :outer("80_1266337365.65225")
.annotate "line", 532
new $P1446, "Undef"
.lex "$regex", $P1446
@@ -20105,7 +20105,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1416" :anon :subid("81_1261064035.64813") :outer("80_1261064035.64813")
+.sub "_block1416" :anon :subid("81_1266337365.65225") :outer("80_1266337365.65225")
.annotate "line", 519
new $P1418, "Hash"
.lex "%h", $P1418
@@ -20203,7 +20203,7 @@
.namespace ["NQP";"Actions"]
-.sub "dotty" :subid("83_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "dotty" :subid("83_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1473
.annotate "line", 549
new $P1472, 'ExceptionHandler'
@@ -20300,7 +20300,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<self>" :subid("84_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "term:sym<self>" :subid("84_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1505
.annotate "line", 558
new $P1504, 'ExceptionHandler'
@@ -20325,7 +20325,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<identifier>" :subid("85_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "term:sym<identifier>" :subid("85_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1514
.annotate "line", 562
new $P1513, 'ExceptionHandler'
@@ -20374,7 +20374,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<name>" :subid("86_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "term:sym<name>" :subid("86_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1530
.annotate "line", 568
new $P1529, 'ExceptionHandler'
@@ -20492,7 +20492,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<pir::op>" :subid("87_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "term:sym<pir::op>" :subid("87_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1572
.annotate "line", 582
new $P1571, 'ExceptionHandler'
@@ -20583,7 +20583,7 @@
.namespace ["NQP";"Actions"]
-.sub "args" :subid("88_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "args" :subid("88_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1601
.annotate "line", 597
new $P1600, 'ExceptionHandler'
@@ -20613,10 +20613,10 @@
.namespace ["NQP";"Actions"]
-.sub "arglist" :subid("89_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "arglist" :subid("89_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1611
.annotate "line", 599
- .const 'Sub' $P1622 = "90_1261064035.64813"
+ .const 'Sub' $P1622 = "90_1266337365.65225"
capture_lex $P1622
new $P1610, 'ExceptionHandler'
set_addr $P1610, control_1609
@@ -20648,7 +20648,7 @@
new $P1620, "Undef"
vivify_498:
unless $P1620, if_1618_end
- .const 'Sub' $P1622 = "90_1261064035.64813"
+ .const 'Sub' $P1622 = "90_1266337365.65225"
capture_lex $P1622
$P1622()
if_1618_end:
@@ -20756,9 +20756,9 @@
.namespace ["NQP";"Actions"]
-.sub "_block1621" :anon :subid("90_1261064035.64813") :outer("89_1261064035.64813")
+.sub "_block1621" :anon :subid("90_1266337365.65225") :outer("89_1266337365.65225")
.annotate "line", 601
- .const 'Sub' $P1643 = "91_1261064035.64813"
+ .const 'Sub' $P1643 = "91_1266337365.65225"
capture_lex $P1643
.annotate "line", 602
new $P1623, "Undef"
@@ -20811,7 +20811,7 @@
unless $P1637, loop1648_done
shift $P1641, $P1637
loop1648_redo:
- .const 'Sub' $P1643 = "91_1261064035.64813"
+ .const 'Sub' $P1643 = "91_1266337365.65225"
capture_lex $P1643
$P1643($P1641)
loop1648_next:
@@ -20834,7 +20834,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block1642" :anon :subid("91_1261064035.64813") :outer("90_1261064035.64813")
+.sub "_block1642" :anon :subid("91_1266337365.65225") :outer("90_1266337365.65225")
.param pmc param_1644
.annotate "line", 604
.lex "$_", param_1644
@@ -20846,7 +20846,7 @@
.namespace ["NQP";"Actions"]
-.sub "term:sym<value>" :subid("92_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "term:sym<value>" :subid("92_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1695
.annotate "line", 621
new $P1694, 'ExceptionHandler'
@@ -20876,7 +20876,7 @@
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<( )>" :subid("93_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "circumfix:sym<( )>" :subid("93_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1705
.annotate "line", 623
new $P1704, 'ExceptionHandler'
@@ -20932,7 +20932,7 @@
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<[ ]>" :subid("94_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "circumfix:sym<[ ]>" :subid("94_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1723
.annotate "line", 629
new $P1722, 'ExceptionHandler'
@@ -21008,7 +21008,7 @@
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<ang>" :subid("95_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "circumfix:sym<ang>" :subid("95_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1750
.annotate "line", 644
new $P1749, 'ExceptionHandler'
@@ -21038,7 +21038,7 @@
.namespace ["NQP";"Actions"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("96_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("96_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1760
.annotate "line", 645
new $P1759, 'ExceptionHandler'
@@ -21068,7 +21068,7 @@
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<{ }>" :subid("97_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "circumfix:sym<{ }>" :subid("97_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1770
.annotate "line", 647
new $P1769, 'ExceptionHandler'
@@ -21134,7 +21134,7 @@
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<sigil>" :subid("98_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "circumfix:sym<sigil>" :subid("98_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1792
.annotate "line", 653
new $P1791, 'ExceptionHandler'
@@ -21213,7 +21213,7 @@
.namespace ["NQP";"Actions"]
-.sub "semilist" :subid("99_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "semilist" :subid("99_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1821
.annotate "line", 660
new $P1820, 'ExceptionHandler'
@@ -21243,7 +21243,7 @@
.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<[ ]>" :subid("100_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "postcircumfix:sym<[ ]>" :subid("100_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1831
.annotate "line", 662
new $P1830, 'ExceptionHandler'
@@ -21277,7 +21277,7 @@
.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<{ }>" :subid("101_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "postcircumfix:sym<{ }>" :subid("101_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1843
.annotate "line", 668
new $P1842, 'ExceptionHandler'
@@ -21311,7 +21311,7 @@
.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<ang>" :subid("102_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "postcircumfix:sym<ang>" :subid("102_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1855
.annotate "line", 674
new $P1854, 'ExceptionHandler'
@@ -21345,7 +21345,7 @@
.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<( )>" :subid("103_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "postcircumfix:sym<( )>" :subid("103_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1867
.annotate "line", 680
new $P1866, 'ExceptionHandler'
@@ -21377,7 +21377,7 @@
.namespace ["NQP";"Actions"]
-.sub "value" :subid("104_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "value" :subid("104_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1877
.annotate "line", 684
new $P1876, 'ExceptionHandler'
@@ -21432,7 +21432,7 @@
.namespace ["NQP";"Actions"]
-.sub "number" :subid("105_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "number" :subid("105_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1894
.annotate "line", 688
new $P1893, 'ExceptionHandler'
@@ -21510,7 +21510,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote:sym<apos>" :subid("106_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "quote:sym<apos>" :subid("106_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1922
.annotate "line", 694
new $P1921, 'ExceptionHandler'
@@ -21540,7 +21540,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote:sym<dblq>" :subid("107_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "quote:sym<dblq>" :subid("107_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1932
.annotate "line", 695
new $P1931, 'ExceptionHandler'
@@ -21570,7 +21570,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote:sym<qq>" :subid("108_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "quote:sym<qq>" :subid("108_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1942
.annotate "line", 696
new $P1941, 'ExceptionHandler'
@@ -21600,7 +21600,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote:sym<q>" :subid("109_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "quote:sym<q>" :subid("109_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1952
.annotate "line", 697
new $P1951, 'ExceptionHandler'
@@ -21630,7 +21630,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote:sym<Q>" :subid("110_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "quote:sym<Q>" :subid("110_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1962
.annotate "line", 698
new $P1961, 'ExceptionHandler'
@@ -21660,7 +21660,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote:sym<Q:PIR>" :subid("111_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "quote:sym<Q:PIR>" :subid("111_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1972
.annotate "line", 699
new $P1971, 'ExceptionHandler'
@@ -21696,7 +21696,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote:sym</ />" :subid("112_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "quote:sym</ />" :subid("112_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_1986
.param pmc param_1987 :optional
.param int has_param_1987 :opt_flag
@@ -21805,7 +21805,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<$>" :subid("113_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "quote_escape:sym<$>" :subid("113_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_2023
.annotate "line", 728
new $P2022, 'ExceptionHandler'
@@ -21835,7 +21835,7 @@
.namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<{ }>" :subid("114_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "quote_escape:sym<{ }>" :subid("114_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_2033
.annotate "line", 729
new $P2032, 'ExceptionHandler'
@@ -21873,7 +21873,7 @@
.namespace ["NQP";"Actions"]
-.sub "postfix:sym<.>" :subid("115_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "postfix:sym<.>" :subid("115_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_2047
.annotate "line", 737
new $P2046, 'ExceptionHandler'
@@ -21903,7 +21903,7 @@
.namespace ["NQP";"Actions"]
-.sub "postfix:sym<++>" :subid("116_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "postfix:sym<++>" :subid("116_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_2057
.annotate "line", 739
new $P2056, 'ExceptionHandler'
@@ -21933,7 +21933,7 @@
.namespace ["NQP";"Actions"]
-.sub "postfix:sym<-->" :subid("117_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "postfix:sym<-->" :subid("117_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_2067
.annotate "line", 745
new $P2066, 'ExceptionHandler'
@@ -21963,7 +21963,7 @@
.namespace ["NQP";"Actions"]
-.sub "prefix:sym<make>" :subid("118_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "prefix:sym<make>" :subid("118_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_2077
.annotate "line", 751
new $P2076, 'ExceptionHandler'
@@ -21993,7 +21993,7 @@
.namespace ["NQP";"Actions"]
-.sub "infix:sym<~~>" :subid("119_1261064035.64813") :method :outer("11_1261064035.64813")
+.sub "infix:sym<~~>" :subid("119_1266337365.65225") :method :outer("11_1266337365.65225")
.param pmc param_2089
.annotate "line", 760
new $P2088, 'ExceptionHandler'
@@ -22019,18 +22019,18 @@
.namespace ["NQP";"RegexActions"]
-.sub "_block2096" :subid("120_1261064035.64813") :outer("11_1261064035.64813")
+.sub "_block2096" :subid("120_1266337365.65225") :outer("11_1266337365.65225")
.annotate "line", 765
- .const 'Sub' $P2132 = "124_1261064035.64813"
+ .const 'Sub' $P2132 = "124_1266337365.65225"
capture_lex $P2132
- .const 'Sub' $P2122 = "123_1261064035.64813"
+ .const 'Sub' $P2122 = "123_1266337365.65225"
capture_lex $P2122
- .const 'Sub' $P2112 = "122_1261064035.64813"
+ .const 'Sub' $P2112 = "122_1266337365.65225"
capture_lex $P2112
- .const 'Sub' $P2098 = "121_1261064035.64813"
+ .const 'Sub' $P2098 = "121_1266337365.65225"
capture_lex $P2098
.annotate "line", 776
- .const 'Sub' $P2132 = "124_1261064035.64813"
+ .const 'Sub' $P2132 = "124_1266337365.65225"
capture_lex $P2132
.annotate "line", 765
.return ($P2132)
@@ -22038,7 +22038,7 @@
.namespace ["NQP";"RegexActions"]
-.sub "metachar:sym<:my>" :subid("121_1261064035.64813") :method :outer("120_1261064035.64813")
+.sub "metachar:sym<:my>" :subid("121_1266337365.65225") :method :outer("120_1266337365.65225")
.param pmc param_2101
.annotate "line", 767
new $P2100, 'ExceptionHandler'
@@ -22077,7 +22077,7 @@
.namespace ["NQP";"RegexActions"]
-.sub "metachar:sym<{ }>" :subid("122_1261064035.64813") :method :outer("120_1261064035.64813")
+.sub "metachar:sym<{ }>" :subid("122_1266337365.65225") :method :outer("120_1266337365.65225")
.param pmc param_2115
.annotate "line", 772
new $P2114, 'ExceptionHandler'
@@ -22107,7 +22107,7 @@
.namespace ["NQP";"RegexActions"]
-.sub "assertion:sym<{ }>" :subid("123_1261064035.64813") :method :outer("120_1261064035.64813")
+.sub "assertion:sym<{ }>" :subid("123_1266337365.65225") :method :outer("120_1266337365.65225")
.param pmc param_2125
.annotate "line", 774
new $P2124, 'ExceptionHandler'
@@ -22137,7 +22137,7 @@
.namespace ["NQP";"RegexActions"]
-.sub "codeblock" :subid("124_1261064035.64813") :method :outer("120_1261064035.64813")
+.sub "codeblock" :subid("124_1266337365.65225") :method :outer("120_1266337365.65225")
.param pmc param_2135
.annotate "line", 776
new $P2134, 'ExceptionHandler'
Modified: branches/rm_cflags/ext/nqp-rx/src/stage0/P6Regex-s0.pir
==============================================================================
--- branches/rm_cflags/ext/nqp-rx/src/stage0/P6Regex-s0.pir Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/ext/nqp-rx/src/stage0/P6Regex-s0.pir Tue Feb 16 21:05:51 2010 (r44046)
@@ -16,7 +16,7 @@
### .include 'gen/p6regex-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1261064009.3328")
+.sub "_block11" :anon :subid("10_1266337342.27136")
.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_1261064009.3328")
+.sub "" :load :init :subid("post158") :outer("10_1266337342.27136")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1261064009.3328"
+ .const 'Sub' $P12 = "10_1266337342.27136"
.local pmc block
set block, $P12
$P580 = get_root_global ["parrot"], "P6metaclass"
@@ -41,140 +41,140 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block13" :subid("11_1261064009.3328") :outer("10_1261064009.3328")
+.sub "_block13" :subid("11_1266337342.27136") :outer("10_1266337342.27136")
.annotate "line", 3
- .const 'Sub' $P571 = "156_1261064009.3328"
+ .const 'Sub' $P571 = "156_1266337342.27136"
capture_lex $P571
- .const 'Sub' $P563 = "154_1261064009.3328"
+ .const 'Sub' $P563 = "154_1266337342.27136"
capture_lex $P563
- .const 'Sub' $P555 = "152_1261064009.3328"
+ .const 'Sub' $P555 = "152_1266337342.27136"
capture_lex $P555
- .const 'Sub' $P534 = "147_1261064009.3328"
+ .const 'Sub' $P534 = "147_1266337342.27136"
capture_lex $P534
- .const 'Sub' $P499 = "141_1261064009.3328"
+ .const 'Sub' $P499 = "141_1266337342.27136"
capture_lex $P499
- .const 'Sub' $P487 = "138_1261064009.3328"
+ .const 'Sub' $P487 = "138_1266337342.27136"
capture_lex $P487
- .const 'Sub' $P474 = "135_1261064009.3328"
+ .const 'Sub' $P474 = "135_1266337342.27136"
capture_lex $P474
- .const 'Sub' $P468 = "133_1261064009.3328"
+ .const 'Sub' $P468 = "133_1266337342.27136"
capture_lex $P468
- .const 'Sub' $P457 = "130_1261064009.3328"
+ .const 'Sub' $P457 = "130_1266337342.27136"
capture_lex $P457
- .const 'Sub' $P446 = "127_1261064009.3328"
+ .const 'Sub' $P446 = "127_1266337342.27136"
capture_lex $P446
- .const 'Sub' $P437 = "123_1261064009.3328"
+ .const 'Sub' $P437 = "123_1266337342.27136"
capture_lex $P437
- .const 'Sub' $P431 = "121_1261064009.3328"
+ .const 'Sub' $P431 = "121_1266337342.27136"
capture_lex $P431
- .const 'Sub' $P425 = "119_1261064009.3328"
+ .const 'Sub' $P425 = "119_1266337342.27136"
capture_lex $P425
- .const 'Sub' $P419 = "117_1261064009.3328"
+ .const 'Sub' $P419 = "117_1266337342.27136"
capture_lex $P419
- .const 'Sub' $P413 = "115_1261064009.3328"
+ .const 'Sub' $P413 = "115_1266337342.27136"
capture_lex $P413
- .const 'Sub' $P402 = "113_1261064009.3328"
- capture_lex $P402
- .const 'Sub' $P391 = "111_1261064009.3328"
- capture_lex $P391
- .const 'Sub' $P383 = "109_1261064009.3328"
+ .const 'Sub' $P405 = "113_1266337342.27136"
+ capture_lex $P405
+ .const 'Sub' $P394 = "111_1266337342.27136"
+ capture_lex $P394
+ .const 'Sub' $P383 = "109_1266337342.27136"
capture_lex $P383
- .const 'Sub' $P377 = "107_1261064009.3328"
+ .const 'Sub' $P377 = "107_1266337342.27136"
capture_lex $P377
- .const 'Sub' $P371 = "105_1261064009.3328"
+ .const 'Sub' $P371 = "105_1266337342.27136"
capture_lex $P371
- .const 'Sub' $P365 = "103_1261064009.3328"
+ .const 'Sub' $P365 = "103_1266337342.27136"
capture_lex $P365
- .const 'Sub' $P359 = "101_1261064009.3328"
+ .const 'Sub' $P359 = "101_1266337342.27136"
capture_lex $P359
- .const 'Sub' $P353 = "99_1261064009.3328"
+ .const 'Sub' $P353 = "99_1266337342.27136"
capture_lex $P353
- .const 'Sub' $P347 = "97_1261064009.3328"
+ .const 'Sub' $P347 = "97_1266337342.27136"
capture_lex $P347
- .const 'Sub' $P341 = "95_1261064009.3328"
+ .const 'Sub' $P341 = "95_1266337342.27136"
capture_lex $P341
- .const 'Sub' $P335 = "93_1261064009.3328"
+ .const 'Sub' $P335 = "93_1266337342.27136"
capture_lex $P335
- .const 'Sub' $P323 = "89_1261064009.3328"
+ .const 'Sub' $P323 = "89_1266337342.27136"
capture_lex $P323
- .const 'Sub' $P311 = "87_1261064009.3328"
+ .const 'Sub' $P311 = "87_1266337342.27136"
capture_lex $P311
- .const 'Sub' $P304 = "85_1261064009.3328"
+ .const 'Sub' $P304 = "85_1266337342.27136"
capture_lex $P304
- .const 'Sub' $P287 = "83_1261064009.3328"
+ .const 'Sub' $P287 = "83_1266337342.27136"
capture_lex $P287
- .const 'Sub' $P280 = "81_1261064009.3328"
+ .const 'Sub' $P280 = "81_1266337342.27136"
capture_lex $P280
- .const 'Sub' $P274 = "79_1261064009.3328"
+ .const 'Sub' $P274 = "79_1266337342.27136"
capture_lex $P274
- .const 'Sub' $P268 = "77_1261064009.3328"
+ .const 'Sub' $P268 = "77_1266337342.27136"
capture_lex $P268
- .const 'Sub' $P261 = "75_1261064009.3328"
+ .const 'Sub' $P261 = "75_1266337342.27136"
capture_lex $P261
- .const 'Sub' $P254 = "73_1261064009.3328"
+ .const 'Sub' $P254 = "73_1266337342.27136"
capture_lex $P254
- .const 'Sub' $P247 = "71_1261064009.3328"
+ .const 'Sub' $P247 = "71_1266337342.27136"
capture_lex $P247
- .const 'Sub' $P240 = "69_1261064009.3328"
+ .const 'Sub' $P240 = "69_1266337342.27136"
capture_lex $P240
- .const 'Sub' $P234 = "67_1261064009.3328"
+ .const 'Sub' $P234 = "67_1266337342.27136"
capture_lex $P234
- .const 'Sub' $P228 = "65_1261064009.3328"
+ .const 'Sub' $P228 = "65_1266337342.27136"
capture_lex $P228
- .const 'Sub' $P222 = "63_1261064009.3328"
+ .const 'Sub' $P222 = "63_1266337342.27136"
capture_lex $P222
- .const 'Sub' $P216 = "61_1261064009.3328"
+ .const 'Sub' $P216 = "61_1266337342.27136"
capture_lex $P216
- .const 'Sub' $P210 = "59_1261064009.3328"
+ .const 'Sub' $P210 = "59_1266337342.27136"
capture_lex $P210
- .const 'Sub' $P205 = "57_1261064009.3328"
+ .const 'Sub' $P205 = "57_1266337342.27136"
capture_lex $P205
- .const 'Sub' $P200 = "55_1261064009.3328"
+ .const 'Sub' $P200 = "55_1266337342.27136"
capture_lex $P200
- .const 'Sub' $P194 = "53_1261064009.3328"
+ .const 'Sub' $P194 = "53_1266337342.27136"
capture_lex $P194
- .const 'Sub' $P188 = "51_1261064009.3328"
+ .const 'Sub' $P188 = "51_1266337342.27136"
capture_lex $P188
- .const 'Sub' $P182 = "49_1261064009.3328"
+ .const 'Sub' $P182 = "49_1266337342.27136"
capture_lex $P182
- .const 'Sub' $P166 = "44_1261064009.3328"
+ .const 'Sub' $P166 = "44_1266337342.27136"
capture_lex $P166
- .const 'Sub' $P154 = "42_1261064009.3328"
+ .const 'Sub' $P154 = "42_1266337342.27136"
capture_lex $P154
- .const 'Sub' $P147 = "40_1261064009.3328"
+ .const 'Sub' $P147 = "40_1266337342.27136"
capture_lex $P147
- .const 'Sub' $P140 = "38_1261064009.3328"
+ .const 'Sub' $P140 = "38_1266337342.27136"
capture_lex $P140
- .const 'Sub' $P133 = "36_1261064009.3328"
+ .const 'Sub' $P133 = "36_1266337342.27136"
capture_lex $P133
- .const 'Sub' $P114 = "31_1261064009.3328"
+ .const 'Sub' $P114 = "31_1266337342.27136"
capture_lex $P114
- .const 'Sub' $P101 = "28_1261064009.3328"
+ .const 'Sub' $P101 = "28_1266337342.27136"
capture_lex $P101
- .const 'Sub' $P94 = "26_1261064009.3328"
+ .const 'Sub' $P94 = "26_1266337342.27136"
capture_lex $P94
- .const 'Sub' $P82 = "24_1261064009.3328"
+ .const 'Sub' $P82 = "24_1266337342.27136"
capture_lex $P82
- .const 'Sub' $P75 = "22_1261064009.3328"
+ .const 'Sub' $P75 = "22_1266337342.27136"
capture_lex $P75
- .const 'Sub' $P63 = "20_1261064009.3328"
+ .const 'Sub' $P63 = "20_1266337342.27136"
capture_lex $P63
- .const 'Sub' $P56 = "18_1261064009.3328"
+ .const 'Sub' $P56 = "18_1266337342.27136"
capture_lex $P56
- .const 'Sub' $P46 = "15_1261064009.3328"
+ .const 'Sub' $P46 = "15_1266337342.27136"
capture_lex $P46
- .const 'Sub' $P38 = "13_1261064009.3328"
+ .const 'Sub' $P38 = "13_1266337342.27136"
capture_lex $P38
- .const 'Sub' $P15 = "12_1261064009.3328"
+ .const 'Sub' $P15 = "12_1266337342.27136"
capture_lex $P15
- .const 'Sub' $P571 = "156_1261064009.3328"
+ .const 'Sub' $P571 = "156_1266337342.27136"
capture_lex $P571
.return ($P571)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "obs" :subid("12_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "obs" :subid("12_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "ws" :subid("13_1266337342.27136") :method :outer("11_1266337342.27136")
.annotate "line", 3
.local string rx39_tgt
.local int rx39_pos
@@ -304,7 +304,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__ws" :subid("14_1261064009.3328") :method
+.sub "!PREFIX__ws" :subid("14_1266337342.27136") :method
.annotate "line", 3
new $P41, "ResizablePMCArray"
push $P41, ""
@@ -313,9 +313,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "normspace" :subid("15_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "normspace" :subid("15_1266337342.27136") :method :outer("11_1266337342.27136")
.annotate "line", 3
- .const 'Sub' $P52 = "17_1261064009.3328"
+ .const 'Sub' $P52 = "17_1266337342.27136"
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_1261064009.3328"
+ .const 'Sub' $P52 = "17_1266337342.27136"
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_1261064009.3328") :method
+.sub "!PREFIX__normspace" :subid("16_1266337342.27136") :method
.annotate "line", 3
new $P49, "ResizablePMCArray"
push $P49, ""
@@ -386,7 +386,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block51" :anon :subid("17_1261064009.3328") :method :outer("15_1261064009.3328")
+.sub "_block51" :anon :subid("17_1266337342.27136") :method :outer("15_1266337342.27136")
.annotate "line", 10
.local string rx53_tgt
.local int rx53_pos
@@ -454,7 +454,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arg" :subid("18_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "arg" :subid("18_1266337342.27136") :method :outer("11_1266337342.27136")
.annotate "line", 3
.local string rx57_tgt
.local int rx57_pos
@@ -565,7 +565,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arg" :subid("19_1261064009.3328") :method
+.sub "!PREFIX__arg" :subid("19_1266337342.27136") :method
.annotate "line", 3
new $P59, "ResizablePMCArray"
push $P59, ""
@@ -576,7 +576,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arglist" :subid("20_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "arglist" :subid("20_1266337342.27136") :method :outer("11_1266337342.27136")
.annotate "line", 3
.local string rx64_tgt
.local int rx64_pos
@@ -682,7 +682,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arglist" :subid("21_1261064009.3328") :method
+.sub "!PREFIX__arglist" :subid("21_1266337342.27136") :method
.annotate "line", 3
new $P66, "ResizablePMCArray"
push $P66, ""
@@ -691,7 +691,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "TOP" :subid("22_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "TOP" :subid("22_1266337342.27136") :method :outer("11_1266337342.27136")
.annotate "line", 3
.local string rx76_tgt
.local int rx76_pos
@@ -764,7 +764,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__TOP" :subid("23_1261064009.3328") :method
+.sub "!PREFIX__TOP" :subid("23_1266337342.27136") :method
.annotate "line", 3
$P78 = self."!PREFIX__!subrule"("nibbler", "")
new $P79, "ResizablePMCArray"
@@ -774,7 +774,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "nibbler" :subid("24_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "nibbler" :subid("24_1266337342.27136") :method :outer("11_1266337342.27136")
.annotate "line", 3
.local string rx83_tgt
.local int rx83_pos
@@ -942,7 +942,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__nibbler" :subid("25_1261064009.3328") :method
+.sub "!PREFIX__nibbler" :subid("25_1266337342.27136") :method
.annotate "line", 3
new $P85, "ResizablePMCArray"
push $P85, ""
@@ -951,7 +951,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "termish" :subid("26_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "termish" :subid("26_1266337342.27136") :method :outer("11_1266337342.27136")
.annotate "line", 3
.local string rx95_tgt
.local int rx95_pos
@@ -1019,7 +1019,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__termish" :subid("27_1261064009.3328") :method
+.sub "!PREFIX__termish" :subid("27_1266337342.27136") :method
.annotate "line", 3
new $P97, "ResizablePMCArray"
push $P97, ""
@@ -1028,9 +1028,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantified_atom" :subid("28_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "quantified_atom" :subid("28_1266337342.27136") :method :outer("11_1266337342.27136")
.annotate "line", 3
- .const 'Sub' $P110 = "30_1261064009.3328"
+ .const 'Sub' $P110 = "30_1266337342.27136"
capture_lex $P110
.local string rx102_tgt
.local int rx102_pos
@@ -1040,7 +1040,7 @@
.local pmc rx102_cur
(rx102_cur, rx102_pos, rx102_tgt) = self."!cursor_start"()
rx102_cur."!cursor_debug"("START ", "quantified_atom")
- rx102_cur."!cursor_caparray"("backmod", "quantifier")
+ rx102_cur."!cursor_caparray"("quantifier", "backmod")
.lex unicode:"$\x{a2}", rx102_cur
.local pmc match
.lex "$/", match
@@ -1093,7 +1093,7 @@
alt108_1:
# rx subrule "before" subtype=zerowidth negate=
rx102_cur."!cursor_pos"(rx102_pos)
- .const 'Sub' $P110 = "30_1261064009.3328"
+ .const 'Sub' $P110 = "30_1266337342.27136"
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_1261064009.3328") :method
+.sub "!PREFIX__quantified_atom" :subid("29_1266337342.27136") :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_1261064009.3328") :method :outer("28_1261064009.3328")
+.sub "_block109" :anon :subid("30_1266337342.27136") :method :outer("28_1266337342.27136")
.annotate "line", 41
.local string rx111_tgt
.local int rx111_pos
@@ -1197,9 +1197,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "atom" :subid("31_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "atom" :subid("31_1266337342.27136") :method :outer("11_1266337342.27136")
.annotate "line", 3
- .const 'Sub' $P125 = "33_1261064009.3328"
+ .const 'Sub' $P125 = "33_1266337342.27136"
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_1261064009.3328"
+ .const 'Sub' $P125 = "33_1266337342.27136"
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_1261064009.3328") :method
+.sub "!PREFIX__atom" :subid("32_1266337342.27136") :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_1261064009.3328") :method :outer("31_1261064009.3328")
+.sub "_block124" :anon :subid("33_1266337342.27136") :method :outer("31_1266337342.27136")
.annotate "line", 47
.local string rx126_tgt
.local int rx126_pos
@@ -1362,7 +1362,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier" :subid("34_1261064009.3328") :method
+.sub "quantifier" :subid("34_1266337342.27136") :method
.annotate "line", 52
$P130 = self."!protoregex"("quantifier")
.return ($P130)
@@ -1370,7 +1370,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier" :subid("35_1261064009.3328") :method
+.sub "!PREFIX__quantifier" :subid("35_1266337342.27136") :method
.annotate "line", 52
$P132 = self."!PREFIX__!protoregex"("quantifier")
.return ($P132)
@@ -1378,7 +1378,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<*>" :subid("36_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "quantifier:sym<*>" :subid("36_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__quantifier:sym<*>" :subid("37_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "quantifier:sym<+>" :subid("38_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__quantifier:sym<+>" :subid("39_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "quantifier:sym<?>" :subid("40_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__quantifier:sym<?>" :subid("41_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "quantifier:sym<**>" :subid("42_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__quantifier:sym<**>" :subid("43_1266337342.27136") :method
.annotate "line", 3
new $P157, "ResizablePMCArray"
push $P157, "**"
@@ -1843,9 +1843,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backmod" :subid("44_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backmod" :subid("44_1266337342.27136") :method :outer("11_1266337342.27136")
.annotate "line", 3
- .const 'Sub' $P175 = "46_1261064009.3328"
+ .const 'Sub' $P175 = "46_1266337342.27136"
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_1261064009.3328"
+ .const 'Sub' $P175 = "46_1266337342.27136"
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_1261064009.3328") :method
+.sub "!PREFIX__backmod" :subid("45_1266337342.27136") :method
.annotate "line", 3
new $P169, "ResizablePMCArray"
push $P169, ""
@@ -1948,7 +1948,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block174" :anon :subid("46_1261064009.3328") :method :outer("44_1261064009.3328")
+.sub "_block174" :anon :subid("46_1266337342.27136") :method :outer("44_1266337342.27136")
.annotate "line", 71
.local string rx176_tgt
.local int rx176_pos
@@ -2004,7 +2004,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar" :subid("47_1261064009.3328") :method
+.sub "metachar" :subid("47_1266337342.27136") :method
.annotate "line", 73
$P179 = self."!protoregex"("metachar")
.return ($P179)
@@ -2012,7 +2012,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar" :subid("48_1261064009.3328") :method
+.sub "!PREFIX__metachar" :subid("48_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<ws>" :subid("49_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<ws>" :subid("50_1266337342.27136") :method
.annotate "line", 3
$P185 = self."!PREFIX__!subrule"("", "")
new $P186, "ResizablePMCArray"
@@ -2086,7 +2086,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<[ ]>" :subid("51_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<[ ]>" :subid("51_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<[ ]>" :subid("52_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<( )>" :subid("53_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<( )>" :subid("54_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<'>" :subid("55_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<'>" :subid("56_1266337342.27136") :method
.annotate "line", 3
new $P203, "ResizablePMCArray"
push $P203, "'"
@@ -2323,7 +2323,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<\">" :subid("57_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<\">" :subid("57_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<\">" :subid("58_1266337342.27136") :method
.annotate "line", 3
new $P208, "ResizablePMCArray"
push $P208, "\""
@@ -2396,7 +2396,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<.>" :subid("59_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<.>" :subid("59_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<.>" :subid("60_1266337342.27136") :method
.annotate "line", 3
new $P213, "ResizablePMCArray"
push $P213, "."
@@ -2477,7 +2477,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^>" :subid("61_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<^>" :subid("61_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<^>" :subid("62_1266337342.27136") :method
.annotate "line", 3
new $P219, "ResizablePMCArray"
push $P219, "^"
@@ -2558,7 +2558,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^^>" :subid("63_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<^^>" :subid("63_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<^^>" :subid("64_1266337342.27136") :method
.annotate "line", 3
new $P225, "ResizablePMCArray"
push $P225, "^^"
@@ -2639,7 +2639,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$>" :subid("65_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<$>" :subid("65_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<$>" :subid("66_1266337342.27136") :method
.annotate "line", 3
new $P231, "ResizablePMCArray"
push $P231, "$"
@@ -2720,7 +2720,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$$>" :subid("67_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<$$>" :subid("67_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<$$>" :subid("68_1266337342.27136") :method
.annotate "line", 3
new $P237, "ResizablePMCArray"
push $P237, "$$"
@@ -2801,7 +2801,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<:::>" :subid("69_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<:::>" :subid("69_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<:::>" :subid("70_1266337342.27136") :method
.annotate "line", 3
$P243 = self."!PREFIX__!subrule"("", ":::")
new $P244, "ResizablePMCArray"
@@ -2888,7 +2888,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<::>" :subid("71_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<::>" :subid("71_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<::>" :subid("72_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<lwb>" :subid("73_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<lwb>" :subid("74_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<rwb>" :subid("75_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<rwb>" :subid("76_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<bs>" :subid("77_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<bs>" :subid("78_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<mod>" :subid("79_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<mod>" :subid("80_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<~>" :subid("81_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<~>" :subid("82_1266337342.27136") :method
.annotate "line", 3
$P283 = self."!PREFIX__!subrule"("", "~")
new $P284, "ResizablePMCArray"
@@ -3417,7 +3417,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<{*}>" :subid("83_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<{*}>" :subid("83_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<{*}>" :subid("84_1266337342.27136") :method
.annotate "line", 3
new $P290, "ResizablePMCArray"
push $P290, "{*}"
@@ -3593,7 +3593,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<assert>" :subid("85_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<assert>" :subid("85_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<assert>" :subid("86_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<var>" :subid("87_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<var>" :subid("88_1266337342.27136") :method
.annotate "line", 3
new $P314, "ResizablePMCArray"
push $P314, "$"
@@ -3860,7 +3860,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<PIR>" :subid("89_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "metachar:sym<PIR>" :subid("89_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__metachar:sym<PIR>" :subid("90_1266337342.27136") :method
.annotate "line", 3
new $P326, "ResizablePMCArray"
push $P326, ":PIR{{"
@@ -3960,7 +3960,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash" :subid("91_1261064009.3328") :method
+.sub "backslash" :subid("91_1266337342.27136") :method
.annotate "line", 120
$P332 = self."!protoregex"("backslash")
.return ($P332)
@@ -3968,7 +3968,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash" :subid("92_1261064009.3328") :method
+.sub "!PREFIX__backslash" :subid("92_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<w>" :subid("93_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<w>" :subid("94_1266337342.27136") :method
.annotate "line", 3
new $P338, "ResizablePMCArray"
push $P338, "N"
@@ -4064,7 +4064,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<b>" :subid("95_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<b>" :subid("95_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<b>" :subid("96_1266337342.27136") :method
.annotate "line", 3
new $P344, "ResizablePMCArray"
push $P344, "B"
@@ -4146,7 +4146,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<e>" :subid("97_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<e>" :subid("97_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<e>" :subid("98_1266337342.27136") :method
.annotate "line", 3
new $P350, "ResizablePMCArray"
push $P350, "E"
@@ -4228,7 +4228,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<f>" :subid("99_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<f>" :subid("99_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<f>" :subid("100_1266337342.27136") :method
.annotate "line", 3
new $P356, "ResizablePMCArray"
push $P356, "F"
@@ -4310,7 +4310,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<h>" :subid("101_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<h>" :subid("101_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<h>" :subid("102_1266337342.27136") :method
.annotate "line", 3
new $P362, "ResizablePMCArray"
push $P362, "H"
@@ -4392,7 +4392,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<r>" :subid("103_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<r>" :subid("103_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<r>" :subid("104_1266337342.27136") :method
.annotate "line", 3
new $P368, "ResizablePMCArray"
push $P368, "R"
@@ -4474,7 +4474,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<t>" :subid("105_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<t>" :subid("105_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<t>" :subid("106_1266337342.27136") :method
.annotate "line", 3
new $P374, "ResizablePMCArray"
push $P374, "T"
@@ -4556,7 +4556,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<v>" :subid("107_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<v>" :subid("107_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<v>" :subid("108_1266337342.27136") :method
.annotate "line", 3
new $P380, "ResizablePMCArray"
push $P380, "V"
@@ -4638,7 +4638,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<c>" :subid("109_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<o>" :subid("109_1266337342.27136") :method :outer("11_1266337342.27136")
.annotate "line", 3
.local string rx384_tgt
.local int rx384_pos
@@ -4647,7 +4647,7 @@
.local int rx384_rep
.local pmc rx384_cur
(rx384_cur, rx384_pos, rx384_tgt) = self."!cursor_start"()
- rx384_cur."!cursor_debug"("START ", "backslash:sym<c>")
+ rx384_cur."!cursor_debug"("START ", "backslash:sym<o>")
.lex unicode:"$\x{a2}", rx384_cur
.local pmc match
.lex "$/", match
@@ -4658,49 +4658,76 @@
substr rx384_tgt, rx384_tgt, rx384_off
rx384_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan389_done
- goto rxscan389_scan
- rxscan389_loop:
+ ne $I10, -1, rxscan391_done
+ goto rxscan391_scan
+ rxscan391_loop:
($P10) = rx384_cur."from"()
inc $P10
set rx384_pos, $P10
- ge rx384_pos, rx384_eos, rxscan389_done
- rxscan389_scan:
- set_addr $I10, rxscan389_loop
+ ge rx384_pos, rx384_eos, rxscan391_done
+ rxscan391_scan:
+ set_addr $I10, rxscan391_loop
rx384_cur."!mark_push"(0, rx384_pos, $I10)
- rxscan389_done:
+ rxscan391_done:
.annotate "line", 129
# rx subcapture "sym"
- set_addr $I10, rxcap_390_fail
+ set_addr $I10, rxcap_392_fail
rx384_cur."!mark_push"(0, rx384_pos, $I10)
# rx enumcharlist negate=0
ge rx384_pos, rx384_eos, rx384_fail
sub $I10, rx384_pos, rx384_off
substr $S10, rx384_tgt, $I10, 1
- index $I11, "cC", $S10
+ index $I11, "oO", $S10
lt $I11, 0, rx384_fail
inc rx384_pos
- set_addr $I10, rxcap_390_fail
+ set_addr $I10, rxcap_392_fail
($I12, $I11) = rx384_cur."!mark_peek"($I10)
rx384_cur."!cursor_pos"($I11)
($P10) = rx384_cur."!cursor_start"()
$P10."!cursor_pass"(rx384_pos, "")
rx384_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_390_done
- rxcap_390_fail:
+ goto rxcap_392_done
+ rxcap_392_fail:
goto rx384_fail
- rxcap_390_done:
- # rx subrule "charspec" subtype=capture negate=
+ rxcap_392_done:
+ alt393_0:
+ set_addr $I10, alt393_1
+ rx384_cur."!mark_push"(0, rx384_pos, $I10)
+ # rx subrule "octint" subtype=capture negate=
rx384_cur."!cursor_pos"(rx384_pos)
- $P10 = rx384_cur."charspec"()
+ $P10 = rx384_cur."octint"()
unless $P10, rx384_fail
rx384_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("charspec")
+ $P10."!cursor_names"("octint")
rx384_pos = $P10."pos"()
+ goto alt393_end
+ alt393_1:
+ # rx literal "["
+ add $I11, rx384_pos, 1
+ gt $I11, rx384_eos, rx384_fail
+ sub $I11, rx384_pos, rx384_off
+ substr $S10, rx384_tgt, $I11, 1
+ ne $S10, "[", rx384_fail
+ add rx384_pos, 1
+ # rx subrule "octints" subtype=capture negate=
+ rx384_cur."!cursor_pos"(rx384_pos)
+ $P10 = rx384_cur."octints"()
+ unless $P10, rx384_fail
+ rx384_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("octints")
+ rx384_pos = $P10."pos"()
+ # rx literal "]"
+ add $I11, rx384_pos, 1
+ gt $I11, rx384_eos, rx384_fail
+ sub $I11, rx384_pos, rx384_off
+ substr $S10, rx384_tgt, $I11, 1
+ ne $S10, "]", rx384_fail
+ add rx384_pos, 1
+ alt393_end:
# rx pass
- rx384_cur."!cursor_pass"(rx384_pos, "backslash:sym<c>")
- rx384_cur."!cursor_debug"("PASS ", "backslash:sym<c>", " at pos=", rx384_pos)
+ rx384_cur."!cursor_pass"(rx384_pos, "backslash:sym<o>")
+ rx384_cur."!cursor_debug"("PASS ", "backslash:sym<o>", " at pos=", rx384_pos)
.return (rx384_cur)
rx384_fail:
.annotate "line", 3
@@ -4710,270 +4737,243 @@
jump $I10
rx384_done:
rx384_cur."!cursor_fail"()
- rx384_cur."!cursor_debug"("FAIL ", "backslash:sym<c>")
+ rx384_cur."!cursor_debug"("FAIL ", "backslash:sym<o>")
.return (rx384_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<c>" :subid("110_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<o>" :subid("110_1266337342.27136") :method
.annotate "line", 3
- $P386 = self."!PREFIX__!subrule"("charspec", "C")
- $P387 = self."!PREFIX__!subrule"("charspec", "c")
- new $P388, "ResizablePMCArray"
- push $P388, $P386
- push $P388, $P387
- .return ($P388)
+ $P386 = self."!PREFIX__!subrule"("octints", "O[")
+ $P387 = self."!PREFIX__!subrule"("octint", "O")
+ $P388 = self."!PREFIX__!subrule"("octints", "o[")
+ $P389 = self."!PREFIX__!subrule"("octint", "o")
+ new $P390, "ResizablePMCArray"
+ push $P390, $P386
+ push $P390, $P387
+ push $P390, $P388
+ push $P390, $P389
+ .return ($P390)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<o>" :subid("111_1261064009.3328") :method :outer("11_1261064009.3328")
-.annotate "line", 3
- .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 ", "backslash:sym<o>")
- .lex unicode:"$\x{a2}", rx392_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:
- $I10 = self.'from'()
- ne $I10, -1, rxscan399_done
- goto rxscan399_scan
- rxscan399_loop:
- ($P10) = rx392_cur."from"()
- inc $P10
- set rx392_pos, $P10
- ge rx392_pos, rx392_eos, rxscan399_done
- rxscan399_scan:
- set_addr $I10, rxscan399_loop
- rx392_cur."!mark_push"(0, rx392_pos, $I10)
- rxscan399_done:
+.sub "backslash:sym<x>" :subid("111_1266337342.27136") :method :outer("11_1266337342.27136")
+.annotate "line", 3
+ .local string rx395_tgt
+ .local int rx395_pos
+ .local int rx395_off
+ .local int rx395_eos
+ .local int rx395_rep
+ .local pmc rx395_cur
+ (rx395_cur, rx395_pos, rx395_tgt) = self."!cursor_start"()
+ rx395_cur."!cursor_debug"("START ", "backslash:sym<x>")
+ .lex unicode:"$\x{a2}", rx395_cur
+ .local pmc match
+ .lex "$/", match
+ length rx395_eos, rx395_tgt
+ set rx395_off, 0
+ lt rx395_pos, 2, rx395_start
+ sub rx395_off, rx395_pos, 1
+ substr rx395_tgt, rx395_tgt, rx395_off
+ rx395_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan402_done
+ goto rxscan402_scan
+ rxscan402_loop:
+ ($P10) = rx395_cur."from"()
+ inc $P10
+ set rx395_pos, $P10
+ ge rx395_pos, rx395_eos, rxscan402_done
+ rxscan402_scan:
+ set_addr $I10, rxscan402_loop
+ rx395_cur."!mark_push"(0, rx395_pos, $I10)
+ rxscan402_done:
.annotate "line", 130
# rx subcapture "sym"
- set_addr $I10, rxcap_400_fail
- rx392_cur."!mark_push"(0, rx392_pos, $I10)
+ set_addr $I10, rxcap_403_fail
+ rx395_cur."!mark_push"(0, rx395_pos, $I10)
# rx enumcharlist negate=0
- ge rx392_pos, rx392_eos, rx392_fail
- sub $I10, rx392_pos, rx392_off
- substr $S10, rx392_tgt, $I10, 1
- index $I11, "oO", $S10
- lt $I11, 0, rx392_fail
- inc rx392_pos
- set_addr $I10, rxcap_400_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)
+ ge rx395_pos, rx395_eos, rx395_fail
+ sub $I10, rx395_pos, rx395_off
+ substr $S10, rx395_tgt, $I10, 1
+ index $I11, "xX", $S10
+ lt $I11, 0, rx395_fail
+ inc rx395_pos
+ set_addr $I10, rxcap_403_fail
+ ($I12, $I11) = rx395_cur."!mark_peek"($I10)
+ rx395_cur."!cursor_pos"($I11)
+ ($P10) = rx395_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx395_pos, "")
+ rx395_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_400_done
- rxcap_400_fail:
- goto rx392_fail
- rxcap_400_done:
- alt401_0:
- set_addr $I10, alt401_1
- rx392_cur."!mark_push"(0, rx392_pos, $I10)
- # rx subrule "octint" subtype=capture negate=
- rx392_cur."!cursor_pos"(rx392_pos)
- $P10 = rx392_cur."octint"()
- unless $P10, rx392_fail
- rx392_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("octint")
- rx392_pos = $P10."pos"()
- goto alt401_end
- alt401_1:
+ goto rxcap_403_done
+ rxcap_403_fail:
+ goto rx395_fail
+ rxcap_403_done:
+ alt404_0:
+ set_addr $I10, alt404_1
+ rx395_cur."!mark_push"(0, rx395_pos, $I10)
+ # rx subrule "hexint" subtype=capture negate=
+ rx395_cur."!cursor_pos"(rx395_pos)
+ $P10 = rx395_cur."hexint"()
+ unless $P10, rx395_fail
+ rx395_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("hexint")
+ rx395_pos = $P10."pos"()
+ goto alt404_end
+ alt404_1:
# rx literal "["
- add $I11, rx392_pos, 1
- gt $I11, rx392_eos, rx392_fail
- sub $I11, rx392_pos, rx392_off
- substr $S10, rx392_tgt, $I11, 1
- ne $S10, "[", rx392_fail
- add rx392_pos, 1
- # rx subrule "octints" subtype=capture negate=
- rx392_cur."!cursor_pos"(rx392_pos)
- $P10 = rx392_cur."octints"()
- unless $P10, rx392_fail
- rx392_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("octints")
- rx392_pos = $P10."pos"()
+ add $I11, rx395_pos, 1
+ gt $I11, rx395_eos, rx395_fail
+ sub $I11, rx395_pos, rx395_off
+ substr $S10, rx395_tgt, $I11, 1
+ ne $S10, "[", rx395_fail
+ add rx395_pos, 1
+ # rx subrule "hexints" subtype=capture negate=
+ rx395_cur."!cursor_pos"(rx395_pos)
+ $P10 = rx395_cur."hexints"()
+ unless $P10, rx395_fail
+ rx395_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("hexints")
+ rx395_pos = $P10."pos"()
# rx literal "]"
- add $I11, rx392_pos, 1
- gt $I11, rx392_eos, rx392_fail
- sub $I11, rx392_pos, rx392_off
- substr $S10, rx392_tgt, $I11, 1
- ne $S10, "]", rx392_fail
- add rx392_pos, 1
- alt401_end:
- # rx pass
- rx392_cur."!cursor_pass"(rx392_pos, "backslash:sym<o>")
- rx392_cur."!cursor_debug"("PASS ", "backslash:sym<o>", " at pos=", rx392_pos)
- .return (rx392_cur)
- rx392_fail:
-.annotate "line", 3
- (rx392_rep, rx392_pos, $I10, $P10) = rx392_cur."!mark_fail"(0)
- lt rx392_pos, -1, rx392_done
- eq rx392_pos, -1, rx392_fail
- jump $I10
- rx392_done:
- rx392_cur."!cursor_fail"()
- rx392_cur."!cursor_debug"("FAIL ", "backslash:sym<o>")
- .return (rx392_cur)
+ add $I11, rx395_pos, 1
+ gt $I11, rx395_eos, rx395_fail
+ sub $I11, rx395_pos, rx395_off
+ substr $S10, rx395_tgt, $I11, 1
+ ne $S10, "]", rx395_fail
+ add rx395_pos, 1
+ alt404_end:
+ # rx pass
+ rx395_cur."!cursor_pass"(rx395_pos, "backslash:sym<x>")
+ rx395_cur."!cursor_debug"("PASS ", "backslash:sym<x>", " at pos=", rx395_pos)
+ .return (rx395_cur)
+ rx395_fail:
+.annotate "line", 3
+ (rx395_rep, rx395_pos, $I10, $P10) = rx395_cur."!mark_fail"(0)
+ lt rx395_pos, -1, rx395_done
+ eq rx395_pos, -1, rx395_fail
+ jump $I10
+ rx395_done:
+ rx395_cur."!cursor_fail"()
+ rx395_cur."!cursor_debug"("FAIL ", "backslash:sym<x>")
+ .return (rx395_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<o>" :subid("112_1261064009.3328") :method
-.annotate "line", 3
- $P394 = self."!PREFIX__!subrule"("octints", "O[")
- $P395 = self."!PREFIX__!subrule"("octint", "O")
- $P396 = self."!PREFIX__!subrule"("octints", "o[")
- $P397 = self."!PREFIX__!subrule"("octint", "o")
- new $P398, "ResizablePMCArray"
- push $P398, $P394
- push $P398, $P395
- push $P398, $P396
- push $P398, $P397
- .return ($P398)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<x>" :subid("113_1261064009.3328") :method :outer("11_1261064009.3328")
-.annotate "line", 3
- .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 ", "backslash:sym<x>")
- .lex unicode:"$\x{a2}", rx403_cur
- .local pmc match
- .lex "$/", match
- 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, rxscan410_done
- goto rxscan410_scan
- rxscan410_loop:
- ($P10) = rx403_cur."from"()
- inc $P10
- set rx403_pos, $P10
- ge rx403_pos, rx403_eos, rxscan410_done
- rxscan410_scan:
- set_addr $I10, rxscan410_loop
- rx403_cur."!mark_push"(0, rx403_pos, $I10)
- rxscan410_done:
+.sub "!PREFIX__backslash:sym<x>" :subid("112_1266337342.27136") :method
+.annotate "line", 3
+ $P397 = self."!PREFIX__!subrule"("hexints", "X[")
+ $P398 = self."!PREFIX__!subrule"("hexint", "X")
+ $P399 = self."!PREFIX__!subrule"("hexints", "x[")
+ $P400 = self."!PREFIX__!subrule"("hexint", "x")
+ new $P401, "ResizablePMCArray"
+ push $P401, $P397
+ push $P401, $P398
+ push $P401, $P399
+ push $P401, $P400
+ .return ($P401)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<c>" :subid("113_1266337342.27136") :method :outer("11_1266337342.27136")
+.annotate "line", 3
+ .local string rx406_tgt
+ .local int rx406_pos
+ .local int rx406_off
+ .local int rx406_eos
+ .local int rx406_rep
+ .local pmc rx406_cur
+ (rx406_cur, rx406_pos, rx406_tgt) = self."!cursor_start"()
+ rx406_cur."!cursor_debug"("START ", "backslash:sym<c>")
+ .lex unicode:"$\x{a2}", rx406_cur
+ .local pmc match
+ .lex "$/", match
+ length rx406_eos, rx406_tgt
+ set rx406_off, 0
+ lt rx406_pos, 2, rx406_start
+ sub rx406_off, rx406_pos, 1
+ substr rx406_tgt, rx406_tgt, rx406_off
+ rx406_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan411_done
+ goto rxscan411_scan
+ rxscan411_loop:
+ ($P10) = rx406_cur."from"()
+ inc $P10
+ set rx406_pos, $P10
+ ge rx406_pos, rx406_eos, rxscan411_done
+ rxscan411_scan:
+ set_addr $I10, rxscan411_loop
+ rx406_cur."!mark_push"(0, rx406_pos, $I10)
+ rxscan411_done:
.annotate "line", 131
# rx subcapture "sym"
- set_addr $I10, rxcap_411_fail
- rx403_cur."!mark_push"(0, rx403_pos, $I10)
+ set_addr $I10, rxcap_412_fail
+ rx406_cur."!mark_push"(0, rx406_pos, $I10)
# rx enumcharlist negate=0
- ge rx403_pos, rx403_eos, rx403_fail
- sub $I10, rx403_pos, rx403_off
- substr $S10, rx403_tgt, $I10, 1
- index $I11, "xX", $S10
- lt $I11, 0, rx403_fail
- inc rx403_pos
- set_addr $I10, rxcap_411_fail
- ($I12, $I11) = rx403_cur."!mark_peek"($I10)
- rx403_cur."!cursor_pos"($I11)
- ($P10) = rx403_cur."!cursor_start"()
- $P10."!cursor_pass"(rx403_pos, "")
- rx403_cur."!mark_push"(0, -1, 0, $P10)
+ ge rx406_pos, rx406_eos, rx406_fail
+ sub $I10, rx406_pos, rx406_off
+ substr $S10, rx406_tgt, $I10, 1
+ index $I11, "cC", $S10
+ lt $I11, 0, rx406_fail
+ inc rx406_pos
+ set_addr $I10, rxcap_412_fail
+ ($I12, $I11) = rx406_cur."!mark_peek"($I10)
+ rx406_cur."!cursor_pos"($I11)
+ ($P10) = rx406_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx406_pos, "")
+ rx406_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_411_done
- rxcap_411_fail:
- goto rx403_fail
- rxcap_411_done:
- alt412_0:
- set_addr $I10, alt412_1
- rx403_cur."!mark_push"(0, rx403_pos, $I10)
- # rx subrule "hexint" subtype=capture negate=
- rx403_cur."!cursor_pos"(rx403_pos)
- $P10 = rx403_cur."hexint"()
- unless $P10, rx403_fail
- rx403_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("hexint")
- rx403_pos = $P10."pos"()
- goto alt412_end
- alt412_1:
- # rx literal "["
- add $I11, rx403_pos, 1
- gt $I11, rx403_eos, rx403_fail
- sub $I11, rx403_pos, rx403_off
- substr $S10, rx403_tgt, $I11, 1
- ne $S10, "[", rx403_fail
- add rx403_pos, 1
- # rx subrule "hexints" subtype=capture negate=
- rx403_cur."!cursor_pos"(rx403_pos)
- $P10 = rx403_cur."hexints"()
- unless $P10, rx403_fail
- rx403_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("hexints")
- rx403_pos = $P10."pos"()
- # rx literal "]"
- add $I11, rx403_pos, 1
- gt $I11, rx403_eos, rx403_fail
- sub $I11, rx403_pos, rx403_off
- substr $S10, rx403_tgt, $I11, 1
- ne $S10, "]", rx403_fail
- add rx403_pos, 1
- alt412_end:
+ goto rxcap_412_done
+ rxcap_412_fail:
+ goto rx406_fail
+ rxcap_412_done:
+ # rx subrule "charspec" subtype=capture negate=
+ rx406_cur."!cursor_pos"(rx406_pos)
+ $P10 = rx406_cur."charspec"()
+ unless $P10, rx406_fail
+ rx406_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("charspec")
+ rx406_pos = $P10."pos"()
# rx pass
- rx403_cur."!cursor_pass"(rx403_pos, "backslash:sym<x>")
- rx403_cur."!cursor_debug"("PASS ", "backslash:sym<x>", " at pos=", rx403_pos)
- .return (rx403_cur)
- rx403_fail:
+ rx406_cur."!cursor_pass"(rx406_pos, "backslash:sym<c>")
+ rx406_cur."!cursor_debug"("PASS ", "backslash:sym<c>", " at pos=", rx406_pos)
+ .return (rx406_cur)
+ rx406_fail:
.annotate "line", 3
- (rx403_rep, rx403_pos, $I10, $P10) = rx403_cur."!mark_fail"(0)
- lt rx403_pos, -1, rx403_done
- eq rx403_pos, -1, rx403_fail
+ (rx406_rep, rx406_pos, $I10, $P10) = rx406_cur."!mark_fail"(0)
+ lt rx406_pos, -1, rx406_done
+ eq rx406_pos, -1, rx406_fail
jump $I10
- rx403_done:
- rx403_cur."!cursor_fail"()
- rx403_cur."!cursor_debug"("FAIL ", "backslash:sym<x>")
- .return (rx403_cur)
+ rx406_done:
+ rx406_cur."!cursor_fail"()
+ rx406_cur."!cursor_debug"("FAIL ", "backslash:sym<c>")
+ .return (rx406_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<x>" :subid("114_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<c>" :subid("114_1266337342.27136") :method
.annotate "line", 3
- $P405 = self."!PREFIX__!subrule"("hexints", "X[")
- $P406 = self."!PREFIX__!subrule"("hexint", "X")
- $P407 = self."!PREFIX__!subrule"("hexints", "x[")
- $P408 = self."!PREFIX__!subrule"("hexint", "x")
- new $P409, "ResizablePMCArray"
- push $P409, $P405
- push $P409, $P406
- push $P409, $P407
- push $P409, $P408
- .return ($P409)
+ $P408 = self."!PREFIX__!subrule"("charspec", "C")
+ $P409 = self."!PREFIX__!subrule"("charspec", "c")
+ new $P410, "ResizablePMCArray"
+ push $P410, $P408
+ push $P410, $P409
+ .return ($P410)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<A>" :subid("115_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<A>" :subid("115_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<A>" :subid("116_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<z>" :subid("117_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<z>" :subid("118_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<Z>" :subid("119_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<Z>" :subid("120_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<Q>" :subid("121_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<Q>" :subid("122_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "backslash:sym<misc>" :subid("123_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__backslash:sym<misc>" :subid("124_1266337342.27136") :method
.annotate "line", 3
new $P440, "ResizablePMCArray"
push $P440, ""
@@ -5331,7 +5331,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion" :subid("125_1261064009.3328") :method
+.sub "assertion" :subid("125_1266337342.27136") :method
.annotate "line", 138
$P443 = self."!protoregex"("assertion")
.return ($P443)
@@ -5339,7 +5339,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion" :subid("126_1261064009.3328") :method
+.sub "!PREFIX__assertion" :subid("126_1266337342.27136") :method
.annotate "line", 138
$P445 = self."!PREFIX__!protoregex"("assertion")
.return ($P445)
@@ -5347,9 +5347,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<?>" :subid("127_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "assertion:sym<?>" :subid("127_1266337342.27136") :method :outer("11_1266337342.27136")
.annotate "line", 3
- .const 'Sub' $P454 = "129_1261064009.3328"
+ .const 'Sub' $P454 = "129_1266337342.27136"
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_1261064009.3328"
+ .const 'Sub' $P454 = "129_1266337342.27136"
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_1261064009.3328") :method
+.sub "!PREFIX__assertion:sym<?>" :subid("128_1266337342.27136") :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_1261064009.3328") :method :outer("127_1261064009.3328")
+.sub "_block453" :anon :subid("129_1266337342.27136") :method :outer("127_1266337342.27136")
.annotate "line", 140
.local string rx455_tgt
.local int rx455_pos
@@ -5493,9 +5493,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<!>" :subid("130_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "assertion:sym<!>" :subid("130_1266337342.27136") :method :outer("11_1266337342.27136")
.annotate "line", 3
- .const 'Sub' $P465 = "132_1261064009.3328"
+ .const 'Sub' $P465 = "132_1266337342.27136"
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_1261064009.3328"
+ .const 'Sub' $P465 = "132_1266337342.27136"
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_1261064009.3328") :method
+.sub "!PREFIX__assertion:sym<!>" :subid("131_1266337342.27136") :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_1261064009.3328") :method :outer("130_1261064009.3328")
+.sub "_block464" :anon :subid("132_1266337342.27136") :method :outer("130_1266337342.27136")
.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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "assertion:sym<method>" :subid("133_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__assertion:sym<method>" :subid("134_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "assertion:sym<name>" :subid("135_1266337342.27136") :method :outer("11_1266337342.27136")
.annotate "line", 3
- .const 'Sub' $P483 = "137_1261064009.3328"
+ .const 'Sub' $P483 = "137_1266337342.27136"
capture_lex $P483
.local string rx475_tgt
.local int rx475_pos
@@ -5727,7 +5727,7 @@
.local pmc rx475_cur
(rx475_cur, rx475_pos, rx475_tgt) = self."!cursor_start"()
rx475_cur."!cursor_debug"("START ", "assertion:sym<name>")
- rx475_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
+ rx475_cur."!cursor_caparray"("assertion", "nibbler", "arglist")
.lex unicode:"$\x{a2}", rx475_cur
.local pmc match
.lex "$/", match
@@ -5782,7 +5782,7 @@
.annotate "line", 150
# rx subrule "before" subtype=zerowidth negate=
rx475_cur."!cursor_pos"(rx475_pos)
- .const 'Sub' $P483 = "137_1261064009.3328"
+ .const 'Sub' $P483 = "137_1266337342.27136"
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_1261064009.3328") :method
+.sub "!PREFIX__assertion:sym<name>" :subid("136_1266337342.27136") :method
.annotate "line", 3
new $P477, "ResizablePMCArray"
push $P477, ""
@@ -5898,7 +5898,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block482" :anon :subid("137_1261064009.3328") :method :outer("135_1261064009.3328")
+.sub "_block482" :anon :subid("137_1266337342.27136") :method :outer("135_1266337342.27136")
.annotate "line", 150
.local string rx484_tgt
.local int rx484_pos
@@ -5954,9 +5954,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<[>" :subid("138_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "assertion:sym<[>" :subid("138_1266337342.27136") :method :outer("11_1266337342.27136")
.annotate "line", 3
- .const 'Sub' $P493 = "140_1261064009.3328"
+ .const 'Sub' $P493 = "140_1266337342.27136"
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_1261064009.3328"
+ .const 'Sub' $P493 = "140_1266337342.27136"
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_1261064009.3328") :method
+.sub "!PREFIX__assertion:sym<[>" :subid("139_1266337342.27136") :method
.annotate "line", 3
new $P490, "ResizablePMCArray"
push $P490, ""
@@ -6038,7 +6038,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block492" :anon :subid("140_1261064009.3328") :method :outer("138_1261064009.3328")
+.sub "_block492" :anon :subid("140_1266337342.27136") :method :outer("138_1266337342.27136")
.annotate "line", 158
.local string rx494_tgt
.local int rx494_pos
@@ -6118,9 +6118,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "cclass_elem" :subid("141_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "cclass_elem" :subid("141_1266337342.27136") :method :outer("11_1266337342.27136")
.annotate "line", 3
- .const 'Sub' $P511 = "143_1261064009.3328"
+ .const 'Sub' $P511 = "143_1266337342.27136"
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_1261064009.3328"
+ .const 'Sub' $P511 = "143_1266337342.27136"
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_1261064009.3328") :method
+.sub "!PREFIX__cclass_elem" :subid("142_1266337342.27136") :method
.annotate "line", 3
new $P502, "ResizablePMCArray"
push $P502, ""
@@ -6315,13 +6315,13 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block510" :anon :subid("143_1261064009.3328") :method :outer("141_1261064009.3328")
+.sub "_block510" :anon :subid("143_1266337342.27136") :method :outer("141_1266337342.27136")
.annotate "line", 164
- .const 'Sub' $P526 = "146_1261064009.3328"
+ .const 'Sub' $P526 = "146_1266337342.27136"
capture_lex $P526
- .const 'Sub' $P521 = "145_1261064009.3328"
+ .const 'Sub' $P521 = "145_1266337342.27136"
capture_lex $P521
- .const 'Sub' $P517 = "144_1261064009.3328"
+ .const 'Sub' $P517 = "144_1266337342.27136"
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_1261064009.3328"
+ .const 'Sub' $P517 = "144_1266337342.27136"
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_1261064009.3328"
+ .const 'Sub' $P521 = "145_1266337342.27136"
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_1261064009.3328"
+ .const 'Sub' $P526 = "146_1266337342.27136"
capture_lex $P526
$P10 = rx512_cur.$P526()
unless $P10, rx512_fail
@@ -6461,7 +6461,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block516" :anon :subid("144_1261064009.3328") :method :outer("143_1261064009.3328")
+.sub "_block516" :anon :subid("144_1266337342.27136") :method :outer("143_1266337342.27136")
.annotate "line", 166
.local string rx518_tgt
.local int rx518_pos
@@ -6513,7 +6513,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block520" :anon :subid("145_1261064009.3328") :method :outer("143_1261064009.3328")
+.sub "_block520" :anon :subid("145_1266337342.27136") :method :outer("143_1266337342.27136")
.annotate "line", 166
.local string rx522_tgt
.local int rx522_pos
@@ -6569,7 +6569,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block525" :anon :subid("146_1261064009.3328") :method :outer("143_1261064009.3328")
+.sub "_block525" :anon :subid("146_1266337342.27136") :method :outer("143_1266337342.27136")
.annotate "line", 166
.local string rx527_tgt
.local int rx527_pos
@@ -6621,9 +6621,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_internal" :subid("147_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "mod_internal" :subid("147_1266337342.27136") :method :outer("11_1266337342.27136")
.annotate "line", 3
- .const 'Sub' $P543 = "149_1261064009.3328"
+ .const 'Sub' $P543 = "149_1266337342.27136"
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_1261064009.3328"
+ .const 'Sub' $P543 = "149_1266337342.27136"
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_1261064009.3328") :method
+.sub "!PREFIX__mod_internal" :subid("148_1266337342.27136") :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_1261064009.3328") :method :outer("147_1261064009.3328")
+.sub "_block542" :anon :subid("149_1266337342.27136") :method :outer("147_1266337342.27136")
.annotate "line", 176
.local string rx544_tgt
.local int rx544_pos
@@ -6854,7 +6854,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident" :subid("150_1261064009.3328") :method
+.sub "mod_ident" :subid("150_1266337342.27136") :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_1261064009.3328") :method
+.sub "!PREFIX__mod_ident" :subid("151_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "mod_ident:sym<ignorecase>" :subid("152_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__mod_ident:sym<ignorecase>" :subid("153_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "mod_ident:sym<ratchet>" :subid("154_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__mod_ident:sym<ratchet>" :subid("155_1266337342.27136") :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_1261064009.3328") :method :outer("11_1261064009.3328")
+.sub "mod_ident:sym<sigspace>" :subid("156_1266337342.27136") :method :outer("11_1266337342.27136")
.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_1261064009.3328") :method
+.sub "!PREFIX__mod_ident:sym<sigspace>" :subid("157_1266337342.27136") :method
.annotate "line", 3
new $P574, "ResizablePMCArray"
push $P574, "s"
@@ -7153,181 +7153,183 @@
### .include 'gen/p6regex-actions.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1261064016.27984")
+.sub "_block11" :anon :subid("10_1266337348.54616")
.annotate "line", 0
get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13"
capture_lex $P14
.annotate "line", 4
get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13"
capture_lex $P14
- $P1556 = $P14()
+ $P1569 = $P14()
.annotate "line", 1
- .return ($P1556)
+ .return ($P1569)
.end
.namespace []
-.sub "" :load :init :subid("post89") :outer("10_1261064016.27984")
+.sub "" :load :init :subid("post90") :outer("10_1266337348.54616")
.annotate "line", 0
- .const 'Sub' $P12 = "10_1261064016.27984"
+ .const 'Sub' $P12 = "10_1266337348.54616"
.local pmc block
set block, $P12
- $P1557 = get_root_global ["parrot"], "P6metaclass"
- $P1557."new_class"("Regex::P6Regex::Actions", "HLL::Actions" :named("parent"))
+ $P1570 = get_root_global ["parrot"], "P6metaclass"
+ $P1570."new_class"("Regex::P6Regex::Actions", "HLL::Actions" :named("parent"))
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block13" :subid("11_1261064016.27984") :outer("10_1261064016.27984")
+.sub "_block13" :subid("11_1266337348.54616") :outer("10_1266337348.54616")
.annotate "line", 4
- .const 'Sub' $P1523 = "88_1261064016.27984"
- capture_lex $P1523
- .const 'Sub' $P1454 = "84_1261064016.27984"
- capture_lex $P1454
- .const 'Sub' $P1386 = "82_1261064016.27984"
- capture_lex $P1386
- .const 'Sub' $P1313 = "79_1261064016.27984"
- capture_lex $P1313
- .const 'Sub' $P1299 = "78_1261064016.27984"
- capture_lex $P1299
- .const 'Sub' $P1275 = "77_1261064016.27984"
- capture_lex $P1275
- .const 'Sub' $P1257 = "76_1261064016.27984"
- capture_lex $P1257
- .const 'Sub' $P1243 = "75_1261064016.27984"
+ .const 'Sub' $P1536 = "89_1266337348.54616"
+ capture_lex $P1536
+ .const 'Sub' $P1467 = "85_1266337348.54616"
+ capture_lex $P1467
+ .const 'Sub' $P1399 = "83_1266337348.54616"
+ capture_lex $P1399
+ .const 'Sub' $P1326 = "80_1266337348.54616"
+ capture_lex $P1326
+ .const 'Sub' $P1312 = "79_1266337348.54616"
+ capture_lex $P1312
+ .const 'Sub' $P1288 = "78_1266337348.54616"
+ capture_lex $P1288
+ .const 'Sub' $P1270 = "77_1266337348.54616"
+ capture_lex $P1270
+ .const 'Sub' $P1256 = "76_1266337348.54616"
+ capture_lex $P1256
+ .const 'Sub' $P1243 = "75_1266337348.54616"
capture_lex $P1243
- .const 'Sub' $P1212 = "74_1261064016.27984"
+ .const 'Sub' $P1212 = "74_1266337348.54616"
capture_lex $P1212
- .const 'Sub' $P1181 = "73_1261064016.27984"
+ .const 'Sub' $P1181 = "73_1266337348.54616"
capture_lex $P1181
- .const 'Sub' $P1165 = "72_1261064016.27984"
+ .const 'Sub' $P1165 = "72_1266337348.54616"
capture_lex $P1165
- .const 'Sub' $P1149 = "71_1261064016.27984"
+ .const 'Sub' $P1149 = "71_1266337348.54616"
capture_lex $P1149
- .const 'Sub' $P1133 = "70_1261064016.27984"
+ .const 'Sub' $P1133 = "70_1266337348.54616"
capture_lex $P1133
- .const 'Sub' $P1117 = "69_1261064016.27984"
+ .const 'Sub' $P1117 = "69_1266337348.54616"
capture_lex $P1117
- .const 'Sub' $P1101 = "68_1261064016.27984"
+ .const 'Sub' $P1101 = "68_1266337348.54616"
capture_lex $P1101
- .const 'Sub' $P1085 = "67_1261064016.27984"
+ .const 'Sub' $P1085 = "67_1266337348.54616"
capture_lex $P1085
- .const 'Sub' $P1069 = "66_1261064016.27984"
+ .const 'Sub' $P1069 = "66_1266337348.54616"
capture_lex $P1069
- .const 'Sub' $P1045 = "65_1261064016.27984"
+ .const 'Sub' $P1045 = "65_1266337348.54616"
capture_lex $P1045
- .const 'Sub' $P1030 = "64_1261064016.27984"
+ .const 'Sub' $P1030 = "64_1266337348.54616"
capture_lex $P1030
- .const 'Sub' $P974 = "63_1261064016.27984"
+ .const 'Sub' $P974 = "63_1266337348.54616"
capture_lex $P974
- .const 'Sub' $P953 = "62_1261064016.27984"
+ .const 'Sub' $P953 = "62_1266337348.54616"
capture_lex $P953
- .const 'Sub' $P931 = "61_1261064016.27984"
+ .const 'Sub' $P931 = "61_1266337348.54616"
capture_lex $P931
- .const 'Sub' $P921 = "60_1261064016.27984"
+ .const 'Sub' $P921 = "60_1266337348.54616"
capture_lex $P921
- .const 'Sub' $P911 = "59_1261064016.27984"
+ .const 'Sub' $P911 = "59_1266337348.54616"
capture_lex $P911
- .const 'Sub' $P901 = "58_1261064016.27984"
+ .const 'Sub' $P901 = "58_1266337348.54616"
capture_lex $P901
- .const 'Sub' $P889 = "57_1261064016.27984"
+ .const 'Sub' $P889 = "57_1266337348.54616"
capture_lex $P889
- .const 'Sub' $P877 = "56_1261064016.27984"
+ .const 'Sub' $P877 = "56_1266337348.54616"
capture_lex $P877
- .const 'Sub' $P865 = "55_1261064016.27984"
+ .const 'Sub' $P865 = "55_1266337348.54616"
capture_lex $P865
- .const 'Sub' $P853 = "54_1261064016.27984"
+ .const 'Sub' $P853 = "54_1266337348.54616"
capture_lex $P853
- .const 'Sub' $P841 = "53_1261064016.27984"
+ .const 'Sub' $P841 = "53_1266337348.54616"
capture_lex $P841
- .const 'Sub' $P829 = "52_1261064016.27984"
+ .const 'Sub' $P829 = "52_1266337348.54616"
capture_lex $P829
- .const 'Sub' $P817 = "51_1261064016.27984"
+ .const 'Sub' $P817 = "51_1266337348.54616"
capture_lex $P817
- .const 'Sub' $P805 = "50_1261064016.27984"
+ .const 'Sub' $P805 = "50_1266337348.54616"
capture_lex $P805
- .const 'Sub' $P782 = "49_1261064016.27984"
+ .const 'Sub' $P782 = "49_1266337348.54616"
capture_lex $P782
- .const 'Sub' $P759 = "48_1261064016.27984"
+ .const 'Sub' $P759 = "48_1266337348.54616"
capture_lex $P759
- .const 'Sub' $P741 = "47_1261064016.27984"
+ .const 'Sub' $P741 = "47_1266337348.54616"
capture_lex $P741
- .const 'Sub' $P731 = "46_1261064016.27984"
+ .const 'Sub' $P731 = "46_1266337348.54616"
capture_lex $P731
- .const 'Sub' $P713 = "45_1261064016.27984"
+ .const 'Sub' $P713 = "45_1266337348.54616"
capture_lex $P713
- .const 'Sub' $P666 = "44_1261064016.27984"
+ .const 'Sub' $P666 = "44_1266337348.54616"
capture_lex $P666
- .const 'Sub' $P649 = "43_1261064016.27984"
+ .const 'Sub' $P649 = "43_1266337348.54616"
capture_lex $P649
- .const 'Sub' $P634 = "42_1261064016.27984"
+ .const 'Sub' $P634 = "42_1266337348.54616"
capture_lex $P634
- .const 'Sub' $P619 = "41_1261064016.27984"
+ .const 'Sub' $P619 = "41_1266337348.54616"
capture_lex $P619
- .const 'Sub' $P593 = "40_1261064016.27984"
+ .const 'Sub' $P593 = "40_1266337348.54616"
capture_lex $P593
- .const 'Sub' $P543 = "38_1261064016.27984"
+ .const 'Sub' $P543 = "38_1266337348.54616"
capture_lex $P543
- .const 'Sub' $P475 = "36_1261064016.27984"
+ .const 'Sub' $P475 = "36_1266337348.54616"
capture_lex $P475
- .const 'Sub' $P420 = "33_1261064016.27984"
+ .const 'Sub' $P420 = "33_1266337348.54616"
capture_lex $P420
- .const 'Sub' $P405 = "32_1261064016.27984"
+ .const 'Sub' $P405 = "32_1266337348.54616"
capture_lex $P405
- .const 'Sub' $P379 = "30_1261064016.27984"
+ .const 'Sub' $P379 = "30_1266337348.54616"
capture_lex $P379
- .const 'Sub' $P362 = "29_1261064016.27984"
+ .const 'Sub' $P362 = "29_1266337348.54616"
capture_lex $P362
- .const 'Sub' $P340 = "28_1261064016.27984"
+ .const 'Sub' $P340 = "28_1266337348.54616"
capture_lex $P340
- .const 'Sub' $P308 = "27_1261064016.27984"
+ .const 'Sub' $P308 = "27_1266337348.54616"
capture_lex $P308
- .const 'Sub' $P54 = "14_1261064016.27984"
+ .const 'Sub' $P54 = "14_1266337348.54616"
capture_lex $P54
- .const 'Sub' $P21 = "13_1261064016.27984"
+ .const 'Sub' $P21 = "13_1266337348.54616"
capture_lex $P21
- .const 'Sub' $P16 = "12_1261064016.27984"
+ .const 'Sub' $P16 = "12_1266337348.54616"
capture_lex $P16
get_global $P15, "@MODIFIERS"
- unless_null $P15, vivify_90
+ unless_null $P15, vivify_91
new $P15, "ResizablePMCArray"
set_global "@MODIFIERS", $P15
- vivify_90:
+ vivify_91:
.annotate "line", 6
- .const 'Sub' $P16 = "12_1261064016.27984"
+ .const 'Sub' $P16 = "12_1266337348.54616"
capture_lex $P16
.lex "INIT", $P16
-.annotate "line", 475
- .const 'Sub' $P21 = "13_1261064016.27984"
+.annotate "line", 479
+ .const 'Sub' $P21 = "13_1266337348.54616"
capture_lex $P21
.lex "buildsub", $P21
-.annotate "line", 492
- .const 'Sub' $P54 = "14_1261064016.27984"
+.annotate "line", 496
+ .const 'Sub' $P54 = "14_1266337348.54616"
capture_lex $P54
.lex "capnames", $P54
-.annotate "line", 558
- .const 'Sub' $P308 = "27_1261064016.27984"
+.annotate "line", 562
+ .const 'Sub' $P308 = "27_1266337348.54616"
capture_lex $P308
.lex "backmod", $P308
-.annotate "line", 565
- .const 'Sub' $P340 = "28_1261064016.27984"
+.annotate "line", 569
+ .const 'Sub' $P340 = "28_1266337348.54616"
capture_lex $P340
.lex "subrule_alias", $P340
.annotate "line", 4
get_global $P360, "@MODIFIERS"
find_lex $P361, "INIT"
-.annotate "line", 468
- find_lex $P1552, "buildsub"
- find_lex $P1553, "capnames"
- find_lex $P1554, "backmod"
- find_lex $P1555, "subrule_alias"
+.annotate "line", 472
+ find_lex $P1565, "buildsub"
+ find_lex $P1566, "capnames"
+ find_lex $P1567, "backmod"
+ find_lex $P1568, "subrule_alias"
.annotate "line", 4
- .return ($P1555)
+ .return ($P1568)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "INIT" :subid("12_1261064016.27984") :outer("11_1261064016.27984")
+.sub "INIT" :subid("12_1266337348.54616") :outer("11_1266337348.54616")
.annotate "line", 6
new $P18, 'ExceptionHandler'
set_addr $P18, control_17
@@ -7351,73 +7353,73 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "buildsub" :subid("13_1261064016.27984") :outer("11_1261064016.27984")
+.sub "buildsub" :subid("13_1266337348.54616") :outer("11_1266337348.54616")
.param pmc param_24
.param pmc param_25 :optional
.param int has_param_25 :opt_flag
-.annotate "line", 475
+.annotate "line", 479
new $P23, 'ExceptionHandler'
set_addr $P23, control_22
$P23."handle_types"(58)
push_eh $P23
.lex "$rpast", param_24
- if has_param_25, optparam_91
+ if has_param_25, optparam_92
get_hll_global $P26, ["PAST"], "Block"
$P27 = $P26."new"()
set param_25, $P27
- optparam_91:
+ optparam_92:
.lex "$block", param_25
-.annotate "line", 476
+.annotate "line", 480
new $P28, "Hash"
.lex "%capnames", $P28
find_lex $P29, "$rpast"
$P30 = "capnames"($P29, 0)
store_lex "%capnames", $P30
-.annotate "line", 477
+.annotate "line", 481
new $P31, "Integer"
assign $P31, 0
find_lex $P32, "%capnames"
- unless_null $P32, vivify_92
+ unless_null $P32, vivify_93
new $P32, "Hash"
store_lex "%capnames", $P32
- vivify_92:
+ vivify_93:
set $P32[""], $P31
-.annotate "line", 478
+.annotate "line", 482
get_hll_global $P33, ["PAST"], "Regex"
-.annotate "line", 479
+.annotate "line", 483
get_hll_global $P34, ["PAST"], "Regex"
$P35 = $P34."new"("scan" :named("pasttype"))
find_lex $P36, "$rpast"
-.annotate "line", 481
+.annotate "line", 485
get_hll_global $P37, ["PAST"], "Regex"
$P38 = $P37."new"("pass" :named("pasttype"))
find_lex $P39, "%capnames"
$P40 = $P33."new"($P35, $P36, $P38, "concat" :named("pasttype"), $P39 :named("capnames"))
-.annotate "line", 478
+.annotate "line", 482
store_lex "$rpast", $P40
-.annotate "line", 485
+.annotate "line", 489
find_lex $P42, "$block"
$P43 = $P42."symbol"(unicode:"$\x{a2}")
if $P43, unless_41_end
find_lex $P44, "$block"
$P44."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
unless_41_end:
-.annotate "line", 486
+.annotate "line", 490
find_lex $P46, "$block"
$P47 = $P46."symbol"("$/")
if $P47, unless_45_end
find_lex $P48, "$block"
$P48."symbol"("$/", "lexical" :named("scope"))
unless_45_end:
-.annotate "line", 487
+.annotate "line", 491
find_lex $P49, "$block"
find_lex $P50, "$rpast"
$P49."push"($P50)
-.annotate "line", 488
+.annotate "line", 492
find_lex $P51, "$block"
$P51."blocktype"("method")
find_lex $P52, "$block"
-.annotate "line", 475
+.annotate "line", 479
.return ($P52)
control_22:
.local pmc exception
@@ -7428,19 +7430,19 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "capnames" :subid("14_1261064016.27984") :outer("11_1261064016.27984")
+.sub "capnames" :subid("14_1266337348.54616") :outer("11_1266337348.54616")
.param pmc param_57
.param pmc param_58
-.annotate "line", 492
- .const 'Sub' $P283 = "25_1261064016.27984"
+.annotate "line", 496
+ .const 'Sub' $P283 = "25_1266337348.54616"
capture_lex $P283
- .const 'Sub' $P220 = "22_1261064016.27984"
+ .const 'Sub' $P220 = "22_1266337348.54616"
capture_lex $P220
- .const 'Sub' $P178 = "20_1261064016.27984"
+ .const 'Sub' $P178 = "20_1266337348.54616"
capture_lex $P178
- .const 'Sub' $P136 = "18_1261064016.27984"
+ .const 'Sub' $P136 = "18_1266337348.54616"
capture_lex $P136
- .const 'Sub' $P69 = "15_1261064016.27984"
+ .const 'Sub' $P69 = "15_1266337348.54616"
capture_lex $P69
new $P56, 'ExceptionHandler'
set_addr $P56, control_55
@@ -7448,29 +7450,29 @@
push_eh $P56
.lex "$ast", param_57
.lex "$count", param_58
-.annotate "line", 493
+.annotate "line", 497
new $P59, "Hash"
.lex "%capnames", $P59
-.annotate "line", 494
+.annotate "line", 498
new $P60, "Undef"
.lex "$pasttype", $P60
-.annotate "line", 492
+.annotate "line", 496
find_lex $P61, "%capnames"
-.annotate "line", 494
+.annotate "line", 498
find_lex $P62, "$ast"
$P63 = $P62."pasttype"()
store_lex "$pasttype", $P63
-.annotate "line", 495
+.annotate "line", 499
find_lex $P65, "$pasttype"
set $S66, $P65
iseq $I67, $S66, "alt"
if $I67, if_64
-.annotate "line", 508
+.annotate "line", 512
find_lex $P127, "$pasttype"
set $S128, $P127
iseq $I129, $S128, "concat"
if $I129, if_126
-.annotate "line", 517
+.annotate "line", 521
find_lex $P171, "$pasttype"
set $S172, $P171
iseq $I173, $S172, "subrule"
@@ -7486,41 +7488,41 @@
set $P169, $I176
if_170_end:
if $P169, if_168
-.annotate "line", 530
+.annotate "line", 534
find_lex $P216, "$pasttype"
set $S217, $P216
iseq $I218, $S217, "subcapture"
if $I218, if_215
-.annotate "line", 547
+.annotate "line", 551
find_lex $P279, "$pasttype"
set $S280, $P279
iseq $I281, $S280, "quant"
unless $I281, if_278_end
- .const 'Sub' $P283 = "25_1261064016.27984"
+ .const 'Sub' $P283 = "25_1266337348.54616"
capture_lex $P283
$P283()
if_278_end:
goto if_215_end
if_215:
-.annotate "line", 530
- .const 'Sub' $P220 = "22_1261064016.27984"
+.annotate "line", 534
+ .const 'Sub' $P220 = "22_1266337348.54616"
capture_lex $P220
$P220()
if_215_end:
goto if_168_end
if_168:
-.annotate "line", 517
- .const 'Sub' $P178 = "20_1261064016.27984"
+.annotate "line", 521
+ .const 'Sub' $P178 = "20_1266337348.54616"
capture_lex $P178
$P178()
if_168_end:
goto if_126_end
if_126:
-.annotate "line", 509
+.annotate "line", 513
find_lex $P131, "$ast"
$P132 = $P131."list"()
defined $I133, $P132
- unless $I133, for_undef_113
+ unless $I133, for_undef_114
iter $P130, $P132
new $P166, 'ExceptionHandler'
set_addr $P166, loop165_handler
@@ -7530,7 +7532,7 @@
unless $P130, loop165_done
shift $P134, $P130
loop165_redo:
- .const 'Sub' $P136 = "18_1261064016.27984"
+ .const 'Sub' $P136 = "18_1266337348.54616"
capture_lex $P136
$P136($P134)
loop165_next:
@@ -7543,26 +7545,26 @@
eq $P167, 67, loop165_redo
loop165_done:
pop_eh
- for_undef_113:
+ for_undef_114:
if_126_end:
-.annotate "line", 508
+.annotate "line", 512
goto if_64_end
if_64:
-.annotate "line", 495
- .const 'Sub' $P69 = "15_1261064016.27984"
+.annotate "line", 499
+ .const 'Sub' $P69 = "15_1266337348.54616"
capture_lex $P69
$P69()
if_64_end:
-.annotate "line", 554
+.annotate "line", 558
find_lex $P304, "$count"
find_lex $P305, "%capnames"
- unless_null $P305, vivify_133
+ unless_null $P305, vivify_134
new $P305, "Hash"
store_lex "%capnames", $P305
- vivify_133:
+ vivify_134:
set $P305[""], $P304
find_lex $P306, "%capnames"
-.annotate "line", 492
+.annotate "line", 496
.return ($P306)
control_55:
.local pmc exception
@@ -7573,28 +7575,28 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block282" :anon :subid("25_1261064016.27984") :outer("14_1261064016.27984")
-.annotate "line", 547
- .const 'Sub' $P294 = "26_1261064016.27984"
+.sub "_block282" :anon :subid("25_1266337348.54616") :outer("14_1266337348.54616")
+.annotate "line", 551
+ .const 'Sub' $P294 = "26_1266337348.54616"
capture_lex $P294
-.annotate "line", 548
+.annotate "line", 552
new $P284, "Hash"
.lex "%astcap", $P284
find_lex $P285, "$ast"
- unless_null $P285, vivify_93
+ unless_null $P285, vivify_94
new $P285, "ResizablePMCArray"
- vivify_93:
+ vivify_94:
set $P286, $P285[0]
- unless_null $P286, vivify_94
+ unless_null $P286, vivify_95
new $P286, "Undef"
- vivify_94:
+ vivify_95:
find_lex $P287, "$count"
$P288 = "capnames"($P286, $P287)
store_lex "%astcap", $P288
-.annotate "line", 549
+.annotate "line", 553
find_lex $P290, "%astcap"
defined $I291, $P290
- unless $I291, for_undef_95
+ unless $I291, for_undef_96
iter $P289, $P290
new $P300, 'ExceptionHandler'
set_addr $P300, loop299_handler
@@ -7604,7 +7606,7 @@
unless $P289, loop299_done
shift $P292, $P289
loop299_redo:
- .const 'Sub' $P294 = "26_1261064016.27984"
+ .const 'Sub' $P294 = "26_1266337348.54616"
capture_lex $P294
$P294($P292)
loop299_next:
@@ -7617,73 +7619,73 @@
eq $P301, 67, loop299_redo
loop299_done:
pop_eh
- for_undef_95:
-.annotate "line", 552
+ for_undef_96:
+.annotate "line", 556
find_lex $P302, "%astcap"
- unless_null $P302, vivify_97
+ unless_null $P302, vivify_98
new $P302, "Hash"
- vivify_97:
+ vivify_98:
set $P303, $P302[""]
- unless_null $P303, vivify_98
+ unless_null $P303, vivify_99
new $P303, "Undef"
- vivify_98:
+ vivify_99:
store_lex "$count", $P303
-.annotate "line", 547
+.annotate "line", 551
.return ($P303)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block293" :anon :subid("26_1261064016.27984") :outer("25_1261064016.27984")
+.sub "_block293" :anon :subid("26_1266337348.54616") :outer("25_1266337348.54616")
.param pmc param_295
-.annotate "line", 549
+.annotate "line", 553
.lex "$_", param_295
-.annotate "line", 550
+.annotate "line", 554
new $P296, "Integer"
assign $P296, 2
find_lex $P297, "$_"
find_lex $P298, "%capnames"
- unless_null $P298, vivify_96
+ unless_null $P298, vivify_97
new $P298, "Hash"
store_lex "%capnames", $P298
- vivify_96:
+ vivify_97:
set $P298[$P297], $P296
-.annotate "line", 549
+.annotate "line", 553
.return ($P296)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block219" :anon :subid("22_1261064016.27984") :outer("14_1261064016.27984")
-.annotate "line", 530
- .const 'Sub' $P260 = "24_1261064016.27984"
+.sub "_block219" :anon :subid("22_1266337348.54616") :outer("14_1266337348.54616")
+.annotate "line", 534
+ .const 'Sub' $P260 = "24_1266337348.54616"
capture_lex $P260
- .const 'Sub' $P232 = "23_1261064016.27984"
+ .const 'Sub' $P232 = "23_1266337348.54616"
capture_lex $P232
-.annotate "line", 531
+.annotate "line", 535
new $P221, "Undef"
.lex "$name", $P221
-.annotate "line", 532
+.annotate "line", 536
new $P222, "ResizablePMCArray"
.lex "@names", $P222
-.annotate "line", 541
+.annotate "line", 545
new $P223, "Hash"
.lex "%x", $P223
-.annotate "line", 531
+.annotate "line", 535
find_lex $P224, "$ast"
$P225 = $P224."name"()
store_lex "$name", $P225
-.annotate "line", 532
+.annotate "line", 536
$P0 = find_lex '$name'
$S0 = $P0
$P226 = split '=', $S0
store_lex "@names", $P226
-.annotate "line", 537
+.annotate "line", 541
find_lex $P228, "@names"
defined $I229, $P228
- unless $I229, for_undef_99
+ unless $I229, for_undef_100
iter $P227, $P228
new $P249, 'ExceptionHandler'
set_addr $P249, loop248_handler
@@ -7693,7 +7695,7 @@
unless $P227, loop248_done
shift $P230, $P227
loop248_redo:
- .const 'Sub' $P232 = "23_1261064016.27984"
+ .const 'Sub' $P232 = "23_1266337348.54616"
capture_lex $P232
$P232($P230)
loop248_next:
@@ -7706,23 +7708,23 @@
eq $P250, 67, loop248_redo
loop248_done:
pop_eh
- for_undef_99:
-.annotate "line", 541
+ for_undef_100:
+.annotate "line", 545
find_lex $P251, "$ast"
- unless_null $P251, vivify_101
+ unless_null $P251, vivify_102
new $P251, "ResizablePMCArray"
- vivify_101:
+ vivify_102:
set $P252, $P251[0]
- unless_null $P252, vivify_102
+ unless_null $P252, vivify_103
new $P252, "Undef"
- vivify_102:
+ vivify_103:
find_lex $P253, "$count"
$P254 = "capnames"($P252, $P253)
store_lex "%x", $P254
-.annotate "line", 542
+.annotate "line", 546
find_lex $P256, "%x"
defined $I257, $P256
- unless $I257, for_undef_103
+ unless $I257, for_undef_104
iter $P255, $P256
new $P274, 'ExceptionHandler'
set_addr $P274, loop273_handler
@@ -7732,7 +7734,7 @@
unless $P255, loop273_done
shift $P258, $P255
loop273_redo:
- .const 'Sub' $P260 = "24_1261064016.27984"
+ .const 'Sub' $P260 = "24_1266337348.54616"
capture_lex $P260
$P260($P258)
loop273_next:
@@ -7745,28 +7747,28 @@
eq $P275, 67, loop273_redo
loop273_done:
pop_eh
- for_undef_103:
-.annotate "line", 545
+ for_undef_104:
+.annotate "line", 549
find_lex $P276, "%x"
- unless_null $P276, vivify_109
+ unless_null $P276, vivify_110
new $P276, "Hash"
- vivify_109:
+ vivify_110:
set $P277, $P276[""]
- unless_null $P277, vivify_110
+ unless_null $P277, vivify_111
new $P277, "Undef"
- vivify_110:
+ vivify_111:
store_lex "$count", $P277
-.annotate "line", 530
+.annotate "line", 534
.return ($P277)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block231" :anon :subid("23_1261064016.27984") :outer("22_1261064016.27984")
+.sub "_block231" :anon :subid("23_1266337348.54616") :outer("22_1266337348.54616")
.param pmc param_233
-.annotate "line", 537
+.annotate "line", 541
.lex "$_", param_233
-.annotate "line", 538
+.annotate "line", 542
find_lex $P237, "$_"
set $S238, $P237
iseq $I239, $S238, "0"
@@ -7786,77 +7788,77 @@
add $P244, $P243, 1
store_lex "$count", $P244
if_234_end:
-.annotate "line", 539
+.annotate "line", 543
new $P245, "Integer"
assign $P245, 1
find_lex $P246, "$_"
find_lex $P247, "%capnames"
- unless_null $P247, vivify_100
+ unless_null $P247, vivify_101
new $P247, "Hash"
store_lex "%capnames", $P247
- vivify_100:
+ vivify_101:
set $P247[$P246], $P245
-.annotate "line", 537
+.annotate "line", 541
.return ($P245)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block259" :anon :subid("24_1261064016.27984") :outer("22_1261064016.27984")
+.sub "_block259" :anon :subid("24_1266337348.54616") :outer("22_1266337348.54616")
.param pmc param_261
-.annotate "line", 542
+.annotate "line", 546
.lex "$_", param_261
-.annotate "line", 543
+.annotate "line", 547
find_lex $P262, "$_"
find_lex $P263, "%capnames"
- unless_null $P263, vivify_104
+ unless_null $P263, vivify_105
new $P263, "Hash"
- vivify_104:
+ vivify_105:
set $P264, $P263[$P262]
- unless_null $P264, vivify_105
+ unless_null $P264, vivify_106
new $P264, "Undef"
- vivify_105:
+ vivify_106:
set $N265, $P264
new $P266, 'Float'
set $P266, $N265
find_lex $P267, "$_"
find_lex $P268, "%x"
- unless_null $P268, vivify_106
+ unless_null $P268, vivify_107
new $P268, "Hash"
- vivify_106:
+ vivify_107:
set $P269, $P268[$P267]
- unless_null $P269, vivify_107
+ unless_null $P269, vivify_108
new $P269, "Undef"
- vivify_107:
+ vivify_108:
add $P270, $P266, $P269
find_lex $P271, "$_"
find_lex $P272, "%capnames"
- unless_null $P272, vivify_108
+ unless_null $P272, vivify_109
new $P272, "Hash"
store_lex "%capnames", $P272
- vivify_108:
+ vivify_109:
set $P272[$P271], $P270
-.annotate "line", 542
+.annotate "line", 546
.return ($P270)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block177" :anon :subid("20_1261064016.27984") :outer("14_1261064016.27984")
-.annotate "line", 517
- .const 'Sub' $P196 = "21_1261064016.27984"
+.sub "_block177" :anon :subid("20_1266337348.54616") :outer("14_1266337348.54616")
+.annotate "line", 521
+ .const 'Sub' $P196 = "21_1266337348.54616"
capture_lex $P196
-.annotate "line", 518
+.annotate "line", 522
new $P179, "Undef"
.lex "$name", $P179
-.annotate "line", 520
+.annotate "line", 524
new $P180, "ResizablePMCArray"
.lex "@names", $P180
-.annotate "line", 518
+.annotate "line", 522
find_lex $P181, "$ast"
$P182 = $P181."name"()
store_lex "$name", $P182
-.annotate "line", 519
+.annotate "line", 523
find_lex $P184, "$name"
set $S185, $P184
iseq $I186, $S185, ""
@@ -7867,17 +7869,17 @@
find_lex $P189, "$name"
$P188."name"($P189)
if_183_end:
-.annotate "line", 520
+.annotate "line", 524
$P0 = find_lex '$name'
$S0 = $P0
$P190 = split '=', $S0
store_lex "@names", $P190
-.annotate "line", 525
+.annotate "line", 529
find_lex $P192, "@names"
defined $I193, $P192
- unless $I193, for_undef_111
+ unless $I193, for_undef_112
iter $P191, $P192
new $P213, 'ExceptionHandler'
set_addr $P213, loop212_handler
@@ -7887,7 +7889,7 @@
unless $P191, loop212_done
shift $P194, $P191
loop212_redo:
- .const 'Sub' $P196 = "21_1261064016.27984"
+ .const 'Sub' $P196 = "21_1266337348.54616"
capture_lex $P196
$P196($P194)
loop212_next:
@@ -7900,18 +7902,18 @@
eq $P214, 67, loop212_redo
loop212_done:
pop_eh
- for_undef_111:
-.annotate "line", 517
+ for_undef_112:
+.annotate "line", 521
.return ($P191)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block195" :anon :subid("21_1261064016.27984") :outer("20_1261064016.27984")
+.sub "_block195" :anon :subid("21_1266337348.54616") :outer("20_1266337348.54616")
.param pmc param_197
-.annotate "line", 525
+.annotate "line", 529
.lex "$_", param_197
-.annotate "line", 526
+.annotate "line", 530
find_lex $P201, "$_"
set $S202, $P201
iseq $I203, $S202, "0"
@@ -7931,28 +7933,28 @@
add $P208, $P207, 1
store_lex "$count", $P208
if_198_end:
-.annotate "line", 527
+.annotate "line", 531
new $P209, "Integer"
assign $P209, 1
find_lex $P210, "$_"
find_lex $P211, "%capnames"
- unless_null $P211, vivify_112
+ unless_null $P211, vivify_113
new $P211, "Hash"
store_lex "%capnames", $P211
- vivify_112:
+ vivify_113:
set $P211[$P210], $P209
-.annotate "line", 525
+.annotate "line", 529
.return ($P209)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block135" :anon :subid("18_1261064016.27984") :outer("14_1261064016.27984")
+.sub "_block135" :anon :subid("18_1266337348.54616") :outer("14_1266337348.54616")
.param pmc param_138
-.annotate "line", 509
- .const 'Sub' $P147 = "19_1261064016.27984"
+.annotate "line", 513
+ .const 'Sub' $P147 = "19_1266337348.54616"
capture_lex $P147
-.annotate "line", 510
+.annotate "line", 514
new $P137, "Hash"
.lex "%x", $P137
.lex "$_", param_138
@@ -7960,10 +7962,10 @@
find_lex $P140, "$count"
$P141 = "capnames"($P139, $P140)
store_lex "%x", $P141
-.annotate "line", 511
+.annotate "line", 515
find_lex $P143, "%x"
defined $I144, $P143
- unless $I144, for_undef_114
+ unless $I144, for_undef_115
iter $P142, $P143
new $P161, 'ExceptionHandler'
set_addr $P161, loop160_handler
@@ -7973,7 +7975,7 @@
unless $P142, loop160_done
shift $P145, $P142
loop160_redo:
- .const 'Sub' $P147 = "19_1261064016.27984"
+ .const 'Sub' $P147 = "19_1266337348.54616"
capture_lex $P147
$P147($P145)
loop160_next:
@@ -7986,77 +7988,77 @@
eq $P162, 67, loop160_redo
loop160_done:
pop_eh
- for_undef_114:
-.annotate "line", 514
+ for_undef_115:
+.annotate "line", 518
find_lex $P163, "%x"
- unless_null $P163, vivify_120
+ unless_null $P163, vivify_121
new $P163, "Hash"
- vivify_120:
+ vivify_121:
set $P164, $P163[""]
- unless_null $P164, vivify_121
+ unless_null $P164, vivify_122
new $P164, "Undef"
- vivify_121:
+ vivify_122:
store_lex "$count", $P164
-.annotate "line", 509
+.annotate "line", 513
.return ($P164)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block146" :anon :subid("19_1261064016.27984") :outer("18_1261064016.27984")
+.sub "_block146" :anon :subid("19_1266337348.54616") :outer("18_1266337348.54616")
.param pmc param_148
-.annotate "line", 511
+.annotate "line", 515
.lex "$_", param_148
-.annotate "line", 512
+.annotate "line", 516
find_lex $P149, "$_"
find_lex $P150, "%capnames"
- unless_null $P150, vivify_115
+ unless_null $P150, vivify_116
new $P150, "Hash"
- vivify_115:
+ vivify_116:
set $P151, $P150[$P149]
- unless_null $P151, vivify_116
+ unless_null $P151, vivify_117
new $P151, "Undef"
- vivify_116:
+ vivify_117:
set $N152, $P151
new $P153, 'Float'
set $P153, $N152
find_lex $P154, "$_"
find_lex $P155, "%x"
- unless_null $P155, vivify_117
+ unless_null $P155, vivify_118
new $P155, "Hash"
- vivify_117:
+ vivify_118:
set $P156, $P155[$P154]
- unless_null $P156, vivify_118
+ unless_null $P156, vivify_119
new $P156, "Undef"
- vivify_118:
+ vivify_119:
add $P157, $P153, $P156
find_lex $P158, "$_"
find_lex $P159, "%capnames"
- unless_null $P159, vivify_119
+ unless_null $P159, vivify_120
new $P159, "Hash"
store_lex "%capnames", $P159
- vivify_119:
+ vivify_120:
set $P159[$P158], $P157
-.annotate "line", 511
+.annotate "line", 515
.return ($P157)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block68" :anon :subid("15_1261064016.27984") :outer("14_1261064016.27984")
-.annotate "line", 495
- .const 'Sub' $P78 = "16_1261064016.27984"
+.sub "_block68" :anon :subid("15_1266337348.54616") :outer("14_1266337348.54616")
+.annotate "line", 499
+ .const 'Sub' $P78 = "16_1266337348.54616"
capture_lex $P78
-.annotate "line", 496
+.annotate "line", 500
new $P70, "Undef"
.lex "$max", $P70
find_lex $P71, "$count"
store_lex "$max", $P71
-.annotate "line", 497
+.annotate "line", 501
find_lex $P73, "$ast"
$P74 = $P73."list"()
defined $I75, $P74
- unless $I75, for_undef_122
+ unless $I75, for_undef_123
iter $P72, $P74
new $P123, 'ExceptionHandler'
set_addr $P123, loop122_handler
@@ -8066,7 +8068,7 @@
unless $P72, loop122_done
shift $P76, $P72
loop122_redo:
- .const 'Sub' $P78 = "16_1261064016.27984"
+ .const 'Sub' $P78 = "16_1266337348.54616"
capture_lex $P78
$P78($P76)
loop122_next:
@@ -8079,22 +8081,22 @@
eq $P124, 67, loop122_redo
loop122_done:
pop_eh
- for_undef_122:
-.annotate "line", 506
+ for_undef_123:
+.annotate "line", 510
find_lex $P125, "$max"
store_lex "$count", $P125
-.annotate "line", 495
+.annotate "line", 499
.return ($P125)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block77" :anon :subid("16_1261064016.27984") :outer("15_1261064016.27984")
+.sub "_block77" :anon :subid("16_1266337348.54616") :outer("15_1266337348.54616")
.param pmc param_80
-.annotate "line", 497
- .const 'Sub' $P89 = "17_1261064016.27984"
+.annotate "line", 501
+ .const 'Sub' $P89 = "17_1266337348.54616"
capture_lex $P89
-.annotate "line", 498
+.annotate "line", 502
new $P79, "Hash"
.lex "%x", $P79
.lex "$_", param_80
@@ -8102,10 +8104,10 @@
find_lex $P82, "$count"
$P83 = "capnames"($P81, $P82)
store_lex "%x", $P83
-.annotate "line", 499
+.annotate "line", 503
find_lex $P85, "%x"
defined $I86, $P85
- unless $I86, for_undef_123
+ unless $I86, for_undef_124
iter $P84, $P85
new $P110, 'ExceptionHandler'
set_addr $P110, loop109_handler
@@ -8115,7 +8117,7 @@
unless $P84, loop109_done
shift $P87, $P84
loop109_redo:
- .const 'Sub' $P89 = "17_1261064016.27984"
+ .const 'Sub' $P89 = "17_1266337348.54616"
capture_lex $P89
$P89($P87)
loop109_next:
@@ -8128,16 +8130,16 @@
eq $P111, 67, loop109_redo
loop109_done:
pop_eh
- for_undef_123:
-.annotate "line", 504
+ for_undef_124:
+.annotate "line", 508
find_lex $P114, "%x"
- unless_null $P114, vivify_129
+ unless_null $P114, vivify_130
new $P114, "Hash"
- vivify_129:
+ vivify_130:
set $P115, $P114[""]
- unless_null $P115, vivify_130
+ unless_null $P115, vivify_131
new $P115, "Undef"
- vivify_130:
+ vivify_131:
set $N116, $P115
find_lex $P117, "$max"
set $N118, $P117
@@ -8148,36 +8150,36 @@
goto if_113_end
if_113:
find_lex $P120, "%x"
- unless_null $P120, vivify_131
+ unless_null $P120, vivify_132
new $P120, "Hash"
- vivify_131:
+ vivify_132:
set $P121, $P120[""]
- unless_null $P121, vivify_132
+ unless_null $P121, vivify_133
new $P121, "Undef"
- vivify_132:
+ vivify_133:
store_lex "$max", $P121
set $P112, $P121
if_113_end:
-.annotate "line", 497
+.annotate "line", 501
.return ($P112)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block88" :anon :subid("17_1261064016.27984") :outer("16_1261064016.27984")
+.sub "_block88" :anon :subid("17_1266337348.54616") :outer("16_1266337348.54616")
.param pmc param_90
-.annotate "line", 499
+.annotate "line", 503
.lex "$_", param_90
-.annotate "line", 500
+.annotate "line", 504
find_lex $P95, "$_"
find_lex $P96, "%capnames"
- unless_null $P96, vivify_124
+ unless_null $P96, vivify_125
new $P96, "Hash"
- vivify_124:
+ vivify_125:
set $P97, $P96[$P95]
- unless_null $P97, vivify_125
+ unless_null $P97, vivify_126
new $P97, "Undef"
- vivify_125:
+ vivify_126:
set $N98, $P97
islt $I99, $N98, 2.0
if $I99, if_94
@@ -8187,13 +8189,13 @@
if_94:
find_lex $P100, "$_"
find_lex $P101, "%x"
- unless_null $P101, vivify_126
+ unless_null $P101, vivify_127
new $P101, "Hash"
- vivify_126:
+ vivify_127:
set $P102, $P101[$P100]
- unless_null $P102, vivify_127
+ unless_null $P102, vivify_128
new $P102, "Undef"
- vivify_127:
+ vivify_128:
set $N103, $P102
iseq $I104, $N103, 1.0
new $P93, 'Integer'
@@ -8209,36 +8211,36 @@
assign $P105, 1
set $P91, $P105
if_92_end:
-.annotate "line", 501
+.annotate "line", 505
find_lex $P107, "$_"
find_lex $P108, "%capnames"
- unless_null $P108, vivify_128
+ unless_null $P108, vivify_129
new $P108, "Hash"
store_lex "%capnames", $P108
- vivify_128:
+ vivify_129:
set $P108[$P107], $P91
-.annotate "line", 499
+.annotate "line", 503
.return ($P91)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backmod" :subid("27_1261064016.27984") :outer("11_1261064016.27984")
+.sub "backmod" :subid("27_1266337348.54616") :outer("11_1266337348.54616")
.param pmc param_311
.param pmc param_312
-.annotate "line", 558
+.annotate "line", 562
new $P310, 'ExceptionHandler'
set_addr $P310, control_309
$P310."handle_types"(58)
push_eh $P310
.lex "$ast", param_311
.lex "$backmod", param_312
-.annotate "line", 559
+.annotate "line", 563
find_lex $P314, "$backmod"
set $S315, $P314
iseq $I316, $S315, ":"
if $I316, if_313
-.annotate "line", 560
+.annotate "line", 564
find_lex $P321, "$backmod"
set $S322, $P321
iseq $I323, $S322, ":?"
@@ -8254,7 +8256,7 @@
set $P319, $I326
unless_320_end:
if $P319, if_318
-.annotate "line", 561
+.annotate "line", 565
find_lex $P331, "$backmod"
set $S332, $P331
iseq $I333, $S332, ":!"
@@ -8275,18 +8277,18 @@
if_328_end:
goto if_318_end
if_318:
-.annotate "line", 560
+.annotate "line", 564
find_lex $P327, "$ast"
$P327."backtrack"("f")
if_318_end:
goto if_313_end
if_313:
-.annotate "line", 559
+.annotate "line", 563
find_lex $P317, "$ast"
$P317."backtrack"("r")
if_313_end:
find_lex $P338, "$ast"
-.annotate "line", 558
+.annotate "line", 562
.return ($P338)
control_309:
.local pmc exception
@@ -8297,28 +8299,28 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "subrule_alias" :subid("28_1261064016.27984") :outer("11_1261064016.27984")
+.sub "subrule_alias" :subid("28_1266337348.54616") :outer("11_1266337348.54616")
.param pmc param_343
.param pmc param_344
-.annotate "line", 565
+.annotate "line", 569
new $P342, 'ExceptionHandler'
set_addr $P342, control_341
$P342."handle_types"(58)
push_eh $P342
.lex "$past", param_343
.lex "$name", param_344
-.annotate "line", 566
+.annotate "line", 570
find_lex $P346, "$past"
$S347 = $P346."name"()
isgt $I348, $S347, ""
if $I348, if_345
-.annotate "line", 567
+.annotate "line", 571
find_lex $P355, "$past"
find_lex $P356, "$name"
$P355."name"($P356)
goto if_345_end
if_345:
-.annotate "line", 566
+.annotate "line", 570
find_lex $P349, "$past"
find_lex $P350, "$name"
concat $P351, $P350, "="
@@ -8327,10 +8329,10 @@
concat $P354, $P351, $S353
$P349."name"($P354)
if_345_end:
-.annotate "line", 568
+.annotate "line", 572
find_lex $P357, "$past"
$P358 = $P357."subtype"("capture")
-.annotate "line", 565
+.annotate "line", 569
.return ($P358)
control_341:
.local pmc exception
@@ -8341,7 +8343,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "arg" :subid("29_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "arg" :subid("29_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_365
.annotate "line", 14
new $P364, 'ExceptionHandler'
@@ -8353,35 +8355,35 @@
.annotate "line", 15
find_lex $P366, "$/"
find_lex $P369, "$/"
- unless_null $P369, vivify_134
+ unless_null $P369, vivify_135
new $P369, "Hash"
- vivify_134:
+ vivify_135:
set $P370, $P369["quote_EXPR"]
- unless_null $P370, vivify_135
+ unless_null $P370, vivify_136
new $P370, "Undef"
- vivify_135:
+ vivify_136:
if $P370, if_368
find_lex $P374, "$/"
- unless_null $P374, vivify_136
+ unless_null $P374, vivify_137
new $P374, "Hash"
- vivify_136:
+ vivify_137:
set $P375, $P374["val"]
- unless_null $P375, vivify_137
+ unless_null $P375, vivify_138
new $P375, "Undef"
- vivify_137:
+ vivify_138:
set $N376, $P375
new $P367, 'Float'
set $P367, $N376
goto if_368_end
if_368:
find_lex $P371, "$/"
- unless_null $P371, vivify_138
+ unless_null $P371, vivify_139
new $P371, "Hash"
- vivify_138:
+ vivify_139:
set $P372, $P371["quote_EXPR"]
- unless_null $P372, vivify_139
+ unless_null $P372, vivify_140
new $P372, "Undef"
- vivify_139:
+ vivify_140:
$P373 = $P372."ast"()
set $P367, $P373
if_368_end:
@@ -8397,10 +8399,10 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "arglist" :subid("30_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "arglist" :subid("30_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_382
.annotate "line", 18
- .const 'Sub' $P392 = "31_1261064016.27984"
+ .const 'Sub' $P392 = "31_1266337348.54616"
capture_lex $P392
new $P381, 'ExceptionHandler'
set_addr $P381, control_380
@@ -8416,15 +8418,15 @@
store_lex "$past", $P385
.annotate "line", 20
find_lex $P387, "$/"
- unless_null $P387, vivify_140
+ unless_null $P387, vivify_141
new $P387, "Hash"
- vivify_140:
+ vivify_141:
set $P388, $P387["arg"]
- unless_null $P388, vivify_141
+ unless_null $P388, vivify_142
new $P388, "Undef"
- vivify_141:
+ vivify_142:
defined $I389, $P388
- unless $I389, for_undef_142
+ unless $I389, for_undef_143
iter $P386, $P388
new $P399, 'ExceptionHandler'
set_addr $P399, loop398_handler
@@ -8434,7 +8436,7 @@
unless $P386, loop398_done
shift $P390, $P386
loop398_redo:
- .const 'Sub' $P392 = "31_1261064016.27984"
+ .const 'Sub' $P392 = "31_1266337348.54616"
capture_lex $P392
$P392($P390)
loop398_next:
@@ -8447,7 +8449,7 @@
eq $P400, 67, loop398_redo
loop398_done:
pop_eh
- for_undef_142:
+ for_undef_143:
.annotate "line", 21
find_lex $P401, "$/"
find_lex $P402, "$past"
@@ -8463,7 +8465,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block391" :anon :subid("31_1261064016.27984") :outer("30_1261064016.27984")
+.sub "_block391" :anon :subid("31_1266337348.54616") :outer("30_1266337348.54616")
.param pmc param_393
.annotate "line", 20
.lex "$_", param_393
@@ -8476,7 +8478,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "TOP" :subid("32_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "TOP" :subid("32_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_408
.annotate "line", 24
new $P407, 'ExceptionHandler'
@@ -8489,13 +8491,13 @@
new $P409, "Undef"
.lex "$past", $P409
find_lex $P410, "$/"
- unless_null $P410, vivify_143
+ unless_null $P410, vivify_144
new $P410, "Hash"
- vivify_143:
+ vivify_144:
set $P411, $P410["nibbler"]
- unless_null $P411, vivify_144
+ unless_null $P411, vivify_145
new $P411, "Undef"
- vivify_144:
+ vivify_145:
$P412 = $P411."ast"()
$P413 = "buildsub"($P412)
store_lex "$past", $P413
@@ -8518,14 +8520,14 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "nibbler" :subid("33_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "nibbler" :subid("33_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_423
.param pmc param_424 :optional
.param int has_param_424 :opt_flag
.annotate "line", 30
- .const 'Sub' $P458 = "35_1261064016.27984"
+ .const 'Sub' $P458 = "35_1266337348.54616"
capture_lex $P458
- .const 'Sub' $P432 = "34_1261064016.27984"
+ .const 'Sub' $P432 = "34_1266337348.54616"
capture_lex $P432
new $P422, 'ExceptionHandler'
set_addr $P422, control_421
@@ -8533,10 +8535,10 @@
push_eh $P422
.lex "self", self
.lex "$/", param_423
- if has_param_424, optparam_145
+ if has_param_424, optparam_146
new $P425, "Undef"
set param_424, $P425
- optparam_145:
+ optparam_146:
.lex "$key", param_424
.annotate "line", 42
new $P426, "Undef"
@@ -8546,7 +8548,7 @@
set $S429, $P428
iseq $I430, $S429, "open"
unless $I430, if_427_end
- .const 'Sub' $P432 = "34_1261064016.27984"
+ .const 'Sub' $P432 = "34_1266337348.54616"
capture_lex $P432
$P432()
if_427_end:
@@ -8556,29 +8558,29 @@
find_lex $P443, "$past"
.annotate "line", 43
find_lex $P445, "$/"
- unless_null $P445, vivify_148
+ unless_null $P445, vivify_149
new $P445, "Hash"
- vivify_148:
+ vivify_149:
set $P446, $P445["termish"]
- unless_null $P446, vivify_149
+ unless_null $P446, vivify_150
new $P446, "Undef"
- vivify_149:
+ vivify_150:
set $N447, $P446
isgt $I448, $N447, 1.0
if $I448, if_444
.annotate "line", 50
find_lex $P467, "$/"
- unless_null $P467, vivify_150
+ unless_null $P467, vivify_151
new $P467, "Hash"
- vivify_150:
+ vivify_151:
set $P468, $P467["termish"]
- unless_null $P468, vivify_151
+ unless_null $P468, vivify_152
new $P468, "ResizablePMCArray"
- vivify_151:
+ vivify_152:
set $P469, $P468[0]
- unless_null $P469, vivify_152
+ unless_null $P469, vivify_153
new $P469, "Undef"
- vivify_152:
+ vivify_153:
$P470 = $P469."ast"()
store_lex "$past", $P470
.annotate "line", 49
@@ -8591,15 +8593,15 @@
store_lex "$past", $P451
.annotate "line", 45
find_lex $P453, "$/"
- unless_null $P453, vivify_153
+ unless_null $P453, vivify_154
new $P453, "Hash"
- vivify_153:
+ vivify_154:
set $P454, $P453["termish"]
- unless_null $P454, vivify_154
+ unless_null $P454, vivify_155
new $P454, "Undef"
- vivify_154:
+ vivify_155:
defined $I455, $P454
- unless $I455, for_undef_155
+ unless $I455, for_undef_156
iter $P452, $P454
new $P465, 'ExceptionHandler'
set_addr $P465, loop464_handler
@@ -8609,7 +8611,7 @@
unless $P452, loop464_done
shift $P456, $P452
loop464_redo:
- .const 'Sub' $P458 = "35_1261064016.27984"
+ .const 'Sub' $P458 = "35_1266337348.54616"
capture_lex $P458
$P458($P456)
loop464_next:
@@ -8622,7 +8624,7 @@
eq $P466, 67, loop464_redo
loop464_done:
pop_eh
- for_undef_155:
+ for_undef_156:
if_444_end:
.annotate "line", 52
find_lex $P471, "$/"
@@ -8639,7 +8641,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block431" :anon :subid("34_1261064016.27984") :outer("33_1261064016.27984")
+.sub "_block431" :anon :subid("34_1266337348.54616") :outer("33_1266337348.54616")
.annotate "line", 32
new $P433, "Hash"
.lex "%old", $P433
@@ -8648,13 +8650,13 @@
.lex "%new", $P434
.annotate "line", 32
get_global $P435, "@MODIFIERS"
- unless_null $P435, vivify_146
+ unless_null $P435, vivify_147
new $P435, "ResizablePMCArray"
- vivify_146:
+ vivify_147:
set $P436, $P435[0]
- unless_null $P436, vivify_147
+ unless_null $P436, vivify_148
new $P436, "Undef"
- vivify_147:
+ vivify_148:
store_lex "%old", $P436
.annotate "line", 33
@@ -8679,7 +8681,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block457" :anon :subid("35_1261064016.27984") :outer("33_1261064016.27984")
+.sub "_block457" :anon :subid("35_1266337348.54616") :outer("33_1266337348.54616")
.param pmc param_459
.annotate "line", 45
.lex "$_", param_459
@@ -8694,10 +8696,10 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "termish" :subid("36_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "termish" :subid("36_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_478
.annotate "line", 55
- .const 'Sub' $P491 = "37_1261064016.27984"
+ .const 'Sub' $P491 = "37_1266337348.54616"
capture_lex $P491
new $P477, 'ExceptionHandler'
set_addr $P477, control_476
@@ -8722,15 +8724,15 @@
store_lex "$lastlit", $P484
.annotate "line", 58
find_lex $P486, "$/"
- unless_null $P486, vivify_156
+ unless_null $P486, vivify_157
new $P486, "Hash"
- vivify_156:
+ vivify_157:
set $P487, $P486["noun"]
- unless_null $P487, vivify_157
+ unless_null $P487, vivify_158
new $P487, "Undef"
- vivify_157:
+ vivify_158:
defined $I488, $P487
- unless $I488, for_undef_158
+ unless $I488, for_undef_159
iter $P485, $P487
new $P537, 'ExceptionHandler'
set_addr $P537, loop536_handler
@@ -8740,7 +8742,7 @@
unless $P485, loop536_done
shift $P489, $P485
loop536_redo:
- .const 'Sub' $P491 = "37_1261064016.27984"
+ .const 'Sub' $P491 = "37_1266337348.54616"
capture_lex $P491
$P491($P489)
loop536_next:
@@ -8753,7 +8755,7 @@
eq $P538, 67, loop536_redo
loop536_done:
pop_eh
- for_undef_158:
+ for_undef_159:
.annotate "line", 73
find_lex $P539, "$/"
find_lex $P540, "$past"
@@ -8769,7 +8771,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block490" :anon :subid("37_1261064016.27984") :outer("36_1261064016.27984")
+.sub "_block490" :anon :subid("37_1266337348.54616") :outer("36_1266337348.54616")
.param pmc param_493
.annotate "line", 59
new $P492, "Undef"
@@ -8803,13 +8805,13 @@
.annotate "line", 62
get_hll_global $P509, ["PAST"], "Node"
find_lex $P510, "$ast"
- unless_null $P510, vivify_159
+ unless_null $P510, vivify_160
new $P510, "ResizablePMCArray"
- vivify_159:
+ vivify_160:
set $P511, $P510[0]
- unless_null $P511, vivify_160
+ unless_null $P511, vivify_161
new $P511, "Undef"
- vivify_160:
+ vivify_161:
$P512 = $P509."ACCEPTS"($P511)
isfalse $I513, $P512
new $P501, 'Integer'
@@ -8832,13 +8834,13 @@
.annotate "line", 68
get_hll_global $P529, ["PAST"], "Node"
find_lex $P530, "$ast"
- unless_null $P530, vivify_161
+ unless_null $P530, vivify_162
new $P530, "ResizablePMCArray"
- vivify_161:
+ vivify_162:
set $P531, $P530[0]
- unless_null $P531, vivify_162
+ unless_null $P531, vivify_163
new $P531, "Undef"
- vivify_162:
+ vivify_163:
$P532 = $P529."ACCEPTS"($P531)
isfalse $I533, $P532
new $P524, 'Integer'
@@ -8862,27 +8864,27 @@
if_500:
.annotate "line", 63
find_lex $P514, "$lastlit"
- unless_null $P514, vivify_163
+ unless_null $P514, vivify_164
new $P514, "ResizablePMCArray"
- vivify_163:
+ vivify_164:
set $P515, $P514[0]
- unless_null $P515, vivify_164
+ unless_null $P515, vivify_165
new $P515, "Undef"
- vivify_164:
+ vivify_165:
find_lex $P516, "$ast"
- unless_null $P516, vivify_165
+ unless_null $P516, vivify_166
new $P516, "ResizablePMCArray"
- vivify_165:
+ vivify_166:
set $P517, $P516[0]
- unless_null $P517, vivify_166
+ unless_null $P517, vivify_167
new $P517, "Undef"
- vivify_166:
+ vivify_167:
concat $P518, $P515, $P517
find_lex $P519, "$lastlit"
- unless_null $P519, vivify_167
+ unless_null $P519, vivify_168
new $P519, "ResizablePMCArray"
store_lex "$lastlit", $P519
- vivify_167:
+ vivify_168:
set $P519[0], $P518
.annotate "line", 62
set $P499, $P518
@@ -8896,10 +8898,10 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantified_atom" :subid("38_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "quantified_atom" :subid("38_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_546
.annotate "line", 76
- .const 'Sub' $P555 = "39_1261064016.27984"
+ .const 'Sub' $P555 = "39_1266337348.54616"
capture_lex $P555
new $P545, 'ExceptionHandler'
set_addr $P545, control_544
@@ -8911,58 +8913,58 @@
new $P547, "Undef"
.lex "$past", $P547
find_lex $P548, "$/"
- unless_null $P548, vivify_168
+ unless_null $P548, vivify_169
new $P548, "Hash"
- vivify_168:
+ vivify_169:
set $P549, $P548["atom"]
- unless_null $P549, vivify_169
+ unless_null $P549, vivify_170
new $P549, "Undef"
- vivify_169:
+ vivify_170:
$P550 = $P549."ast"()
store_lex "$past", $P550
.annotate "line", 78
find_lex $P552, "$/"
- unless_null $P552, vivify_170
+ unless_null $P552, vivify_171
new $P552, "Hash"
- vivify_170:
+ vivify_171:
set $P553, $P552["quantifier"]
- unless_null $P553, vivify_171
+ unless_null $P553, vivify_172
new $P553, "Undef"
- vivify_171:
+ vivify_172:
if $P553, if_551
.annotate "line", 84
find_lex $P569, "$/"
- unless_null $P569, vivify_172
+ unless_null $P569, vivify_173
new $P569, "Hash"
- vivify_172:
+ vivify_173:
set $P570, $P569["backmod"]
- unless_null $P570, vivify_173
+ unless_null $P570, vivify_174
new $P570, "ResizablePMCArray"
- vivify_173:
+ vivify_174:
set $P571, $P570[0]
- unless_null $P571, vivify_174
+ unless_null $P571, vivify_175
new $P571, "Undef"
- vivify_174:
+ vivify_175:
unless $P571, if_568_end
find_lex $P572, "$past"
find_lex $P573, "$/"
- unless_null $P573, vivify_175
+ unless_null $P573, vivify_176
new $P573, "Hash"
- vivify_175:
+ vivify_176:
set $P574, $P573["backmod"]
- unless_null $P574, vivify_176
+ unless_null $P574, vivify_177
new $P574, "ResizablePMCArray"
- vivify_176:
+ vivify_177:
set $P575, $P574[0]
- unless_null $P575, vivify_177
+ unless_null $P575, vivify_178
new $P575, "Undef"
- vivify_177:
+ vivify_178:
"backmod"($P572, $P575)
if_568_end:
goto if_551_end
if_551:
.annotate "line", 78
- .const 'Sub' $P555 = "39_1261064016.27984"
+ .const 'Sub' $P555 = "39_1266337348.54616"
capture_lex $P555
$P555()
if_551_end:
@@ -8983,17 +8985,17 @@
goto if_578_end
if_578:
get_global $P585, "@MODIFIERS"
- unless_null $P585, vivify_181
+ unless_null $P585, vivify_182
new $P585, "ResizablePMCArray"
- vivify_181:
+ vivify_182:
set $P586, $P585[0]
- unless_null $P586, vivify_182
+ unless_null $P586, vivify_183
new $P586, "Hash"
- vivify_182:
+ vivify_183:
set $P587, $P586["r"]
- unless_null $P587, vivify_183
+ unless_null $P587, vivify_184
new $P587, "Undef"
- vivify_183:
+ vivify_184:
set $P577, $P587
if_578_end:
unless $P577, if_576_end
@@ -9016,7 +9018,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block554" :anon :subid("39_1261064016.27984") :outer("38_1261064016.27984")
+.sub "_block554" :anon :subid("39_1266337348.54616") :outer("38_1266337348.54616")
.annotate "line", 80
new $P556, "Undef"
.lex "$qast", $P556
@@ -9029,17 +9031,17 @@
if_557_end:
.annotate "line", 80
find_lex $P561, "$/"
- unless_null $P561, vivify_178
+ unless_null $P561, vivify_179
new $P561, "Hash"
- vivify_178:
+ vivify_179:
set $P562, $P561["quantifier"]
- unless_null $P562, vivify_179
+ unless_null $P562, vivify_180
new $P562, "ResizablePMCArray"
- vivify_179:
+ vivify_180:
set $P563, $P562[0]
- unless_null $P563, vivify_180
+ unless_null $P563, vivify_181
new $P563, "Undef"
- vivify_180:
+ vivify_181:
$P564 = $P563."ast"()
store_lex "$qast", $P564
.annotate "line", 81
@@ -9055,7 +9057,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "atom" :subid("40_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "atom" :subid("40_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_596
.annotate "line", 91
new $P595, 'ExceptionHandler'
@@ -9071,13 +9073,13 @@
find_lex $P598, "$past"
.annotate "line", 93
find_lex $P600, "$/"
- unless_null $P600, vivify_184
+ unless_null $P600, vivify_185
new $P600, "Hash"
- vivify_184:
+ vivify_185:
set $P601, $P600["metachar"]
- unless_null $P601, vivify_185
+ unless_null $P601, vivify_186
new $P601, "Undef"
- vivify_185:
+ vivify_186:
if $P601, if_599
.annotate "line", 95
get_hll_global $P605, ["PAST"], "Regex"
@@ -9088,17 +9090,17 @@
store_lex "$past", $P609
.annotate "line", 96
get_global $P611, "@MODIFIERS"
- unless_null $P611, vivify_186
+ unless_null $P611, vivify_187
new $P611, "ResizablePMCArray"
- vivify_186:
+ vivify_187:
set $P612, $P611[0]
- unless_null $P612, vivify_187
+ unless_null $P612, vivify_188
new $P612, "Hash"
- vivify_187:
+ vivify_188:
set $P613, $P612["i"]
- unless_null $P613, vivify_188
+ unless_null $P613, vivify_189
new $P613, "Undef"
- vivify_188:
+ vivify_189:
unless $P613, if_610_end
find_lex $P614, "$past"
$P614."subtype"("ignorecase")
@@ -9108,13 +9110,13 @@
if_599:
.annotate "line", 93
find_lex $P602, "$/"
- unless_null $P602, vivify_189
+ unless_null $P602, vivify_190
new $P602, "Hash"
- vivify_189:
+ vivify_190:
set $P603, $P602["metachar"]
- unless_null $P603, vivify_190
+ unless_null $P603, vivify_191
new $P603, "Undef"
- vivify_190:
+ vivify_191:
$P604 = $P603."ast"()
store_lex "$past", $P604
if_599_end:
@@ -9133,7 +9135,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<*>" :subid("41_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "quantifier:sym<*>" :subid("41_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_622
.annotate "line", 101
new $P621, 'ExceptionHandler'
@@ -9153,13 +9155,13 @@
find_lex $P627, "$/"
find_lex $P628, "$past"
find_lex $P629, "$/"
- unless_null $P629, vivify_191
+ unless_null $P629, vivify_192
new $P629, "Hash"
- vivify_191:
+ vivify_192:
set $P630, $P629["backmod"]
- unless_null $P630, vivify_192
+ unless_null $P630, vivify_193
new $P630, "Undef"
- vivify_192:
+ vivify_193:
$P631 = "backmod"($P628, $P630)
$P632 = $P627."!make"($P631)
.annotate "line", 101
@@ -9173,7 +9175,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<+>" :subid("42_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "quantifier:sym<+>" :subid("42_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_637
.annotate "line", 106
new $P636, 'ExceptionHandler'
@@ -9193,13 +9195,13 @@
find_lex $P642, "$/"
find_lex $P643, "$past"
find_lex $P644, "$/"
- unless_null $P644, vivify_193
+ unless_null $P644, vivify_194
new $P644, "Hash"
- vivify_193:
+ vivify_194:
set $P645, $P644["backmod"]
- unless_null $P645, vivify_194
+ unless_null $P645, vivify_195
new $P645, "Undef"
- vivify_194:
+ vivify_195:
$P646 = "backmod"($P643, $P645)
$P647 = $P642."!make"($P646)
.annotate "line", 106
@@ -9213,7 +9215,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<?>" :subid("43_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "quantifier:sym<?>" :subid("43_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_652
.annotate "line", 111
new $P651, 'ExceptionHandler'
@@ -9233,13 +9235,13 @@
find_lex $P657, "$/"
find_lex $P658, "$past"
find_lex $P659, "$/"
- unless_null $P659, vivify_195
+ unless_null $P659, vivify_196
new $P659, "Hash"
- vivify_195:
+ vivify_196:
set $P660, $P659["backmod"]
- unless_null $P660, vivify_196
+ unless_null $P660, vivify_197
new $P660, "Undef"
- vivify_196:
+ vivify_197:
$P661 = "backmod"($P658, $P660)
$P657."!make"($P661)
.annotate "line", 114
@@ -9257,7 +9259,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<**>" :subid("44_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "quantifier:sym<**>" :subid("44_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_669
.annotate "line", 117
new $P668, 'ExceptionHandler'
@@ -9273,68 +9275,68 @@
find_lex $P671, "$past"
.annotate "line", 119
find_lex $P673, "$/"
- unless_null $P673, vivify_197
+ unless_null $P673, vivify_198
new $P673, "Hash"
- vivify_197:
+ vivify_198:
set $P674, $P673["quantified_atom"]
- unless_null $P674, vivify_198
+ unless_null $P674, vivify_199
new $P674, "Undef"
- vivify_198:
+ vivify_199:
if $P674, if_672
.annotate "line", 124
get_hll_global $P681, ["PAST"], "Regex"
find_lex $P682, "$/"
- unless_null $P682, vivify_199
+ unless_null $P682, vivify_200
new $P682, "Hash"
- vivify_199:
+ vivify_200:
set $P683, $P682["min"]
- unless_null $P683, vivify_200
+ unless_null $P683, vivify_201
new $P683, "Undef"
- vivify_200:
+ vivify_201:
set $N684, $P683
find_lex $P685, "$/"
$P686 = $P681."new"("quant" :named("pasttype"), $N684 :named("min"), $P685 :named("node"))
store_lex "$past", $P686
.annotate "line", 125
find_lex $P688, "$/"
- unless_null $P688, vivify_201
+ unless_null $P688, vivify_202
new $P688, "Hash"
- vivify_201:
+ vivify_202:
set $P689, $P688["max"]
- unless_null $P689, vivify_202
+ unless_null $P689, vivify_203
new $P689, "Undef"
- vivify_202:
+ vivify_203:
isfalse $I690, $P689
if $I690, if_687
.annotate "line", 126
find_lex $P696, "$/"
- unless_null $P696, vivify_203
+ unless_null $P696, vivify_204
new $P696, "Hash"
- vivify_203:
+ vivify_204:
set $P697, $P696["max"]
- unless_null $P697, vivify_204
+ unless_null $P697, vivify_205
new $P697, "ResizablePMCArray"
- vivify_204:
+ vivify_205:
set $P698, $P697[0]
- unless_null $P698, vivify_205
+ unless_null $P698, vivify_206
new $P698, "Undef"
- vivify_205:
+ vivify_206:
set $S699, $P698
isne $I700, $S699, "*"
unless $I700, if_695_end
find_lex $P701, "$past"
find_lex $P702, "$/"
- unless_null $P702, vivify_206
+ unless_null $P702, vivify_207
new $P702, "Hash"
- vivify_206:
+ vivify_207:
set $P703, $P702["max"]
- unless_null $P703, vivify_207
+ unless_null $P703, vivify_208
new $P703, "ResizablePMCArray"
- vivify_207:
+ vivify_208:
set $P704, $P703[0]
- unless_null $P704, vivify_208
+ unless_null $P704, vivify_209
new $P704, "Undef"
- vivify_208:
+ vivify_209:
set $N705, $P704
$P701."max"($N705)
if_695_end:
@@ -9343,13 +9345,13 @@
.annotate "line", 125
find_lex $P691, "$past"
find_lex $P692, "$/"
- unless_null $P692, vivify_209
+ unless_null $P692, vivify_210
new $P692, "Hash"
- vivify_209:
+ vivify_210:
set $P693, $P692["min"]
- unless_null $P693, vivify_210
+ unless_null $P693, vivify_211
new $P693, "Undef"
- vivify_210:
+ vivify_211:
set $N694, $P693
$P691."max"($N694)
if_687_end:
@@ -9360,13 +9362,13 @@
get_hll_global $P675, ["PAST"], "Regex"
.annotate "line", 121
find_lex $P676, "$/"
- unless_null $P676, vivify_211
+ unless_null $P676, vivify_212
new $P676, "Hash"
- vivify_211:
+ vivify_212:
set $P677, $P676["quantified_atom"]
- unless_null $P677, vivify_212
+ unless_null $P677, vivify_213
new $P677, "Undef"
- vivify_212:
+ vivify_213:
$P678 = $P677."ast"()
find_lex $P679, "$/"
$P680 = $P675."new"("quant" :named("pasttype"), 1 :named("min"), $P678 :named("sep"), $P679 :named("node"))
@@ -9377,13 +9379,13 @@
find_lex $P706, "$/"
find_lex $P707, "$past"
find_lex $P708, "$/"
- unless_null $P708, vivify_213
+ unless_null $P708, vivify_214
new $P708, "Hash"
- vivify_213:
+ vivify_214:
set $P709, $P708["backmod"]
- unless_null $P709, vivify_214
+ unless_null $P709, vivify_215
new $P709, "Undef"
- vivify_214:
+ vivify_215:
$P710 = "backmod"($P707, $P709)
$P711 = $P706."!make"($P710)
.annotate "line", 117
@@ -9397,7 +9399,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<ws>" :subid("45_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<ws>" :subid("45_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_716
.annotate "line", 131
new $P715, 'ExceptionHandler'
@@ -9411,17 +9413,17 @@
.lex "$past", $P717
.annotate "line", 133
get_global $P720, "@MODIFIERS"
- unless_null $P720, vivify_215
+ unless_null $P720, vivify_216
new $P720, "ResizablePMCArray"
- vivify_215:
+ vivify_216:
set $P721, $P720[0]
- unless_null $P721, vivify_216
+ unless_null $P721, vivify_217
new $P721, "Hash"
- vivify_216:
+ vivify_217:
set $P722, $P721["s"]
- unless_null $P722, vivify_217
+ unless_null $P722, vivify_218
new $P722, "Undef"
- vivify_217:
+ vivify_218:
if $P722, if_719
new $P726, "Integer"
assign $P726, 0
@@ -9449,7 +9451,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<[ ]>" :subid("46_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<[ ]>" :subid("46_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_734
.annotate "line", 140
new $P733, 'ExceptionHandler'
@@ -9461,13 +9463,13 @@
.annotate "line", 141
find_lex $P735, "$/"
find_lex $P736, "$/"
- unless_null $P736, vivify_218
+ unless_null $P736, vivify_219
new $P736, "Hash"
- vivify_218:
+ vivify_219:
set $P737, $P736["nibbler"]
- unless_null $P737, vivify_219
+ unless_null $P737, vivify_220
new $P737, "Undef"
- vivify_219:
+ vivify_220:
$P738 = $P737."ast"()
$P739 = $P735."!make"($P738)
.annotate "line", 140
@@ -9481,7 +9483,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<( )>" :subid("47_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<( )>" :subid("47_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_744
.annotate "line", 144
new $P743, 'ExceptionHandler'
@@ -9498,13 +9500,13 @@
.lex "$past", $P746
.annotate "line", 145
find_lex $P747, "$/"
- unless_null $P747, vivify_220
+ unless_null $P747, vivify_221
new $P747, "Hash"
- vivify_220:
+ vivify_221:
set $P748, $P747["nibbler"]
- unless_null $P748, vivify_221
+ unless_null $P748, vivify_222
new $P748, "Undef"
- vivify_221:
+ vivify_222:
$P749 = $P748."ast"()
$P750 = "buildsub"($P749)
store_lex "$subpast", $P750
@@ -9529,7 +9531,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<'>" :subid("48_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<'>" :subid("48_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_762
.annotate "line", 151
new $P761, 'ExceptionHandler'
@@ -9546,13 +9548,13 @@
.lex "$past", $P764
.annotate "line", 152
find_lex $P765, "$/"
- unless_null $P765, vivify_222
+ unless_null $P765, vivify_223
new $P765, "Hash"
- vivify_222:
+ vivify_223:
set $P766, $P765["quote_EXPR"]
- unless_null $P766, vivify_223
+ unless_null $P766, vivify_224
new $P766, "Undef"
- vivify_223:
+ vivify_224:
$P767 = $P766."ast"()
store_lex "$quote", $P767
.annotate "line", 153
@@ -9585,7 +9587,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<\">" :subid("49_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<\">" :subid("49_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_785
.annotate "line", 158
new $P784, 'ExceptionHandler'
@@ -9602,13 +9604,13 @@
.lex "$past", $P787
.annotate "line", 159
find_lex $P788, "$/"
- unless_null $P788, vivify_224
+ unless_null $P788, vivify_225
new $P788, "Hash"
- vivify_224:
+ vivify_225:
set $P789, $P788["quote_EXPR"]
- unless_null $P789, vivify_225
+ unless_null $P789, vivify_226
new $P789, "Undef"
- vivify_225:
+ vivify_226:
$P790 = $P789."ast"()
store_lex "$quote", $P790
.annotate "line", 160
@@ -9641,7 +9643,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<.>" :subid("50_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<.>" :subid("50_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_808
.annotate "line", 165
new $P807, 'ExceptionHandler'
@@ -9672,7 +9674,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<^>" :subid("51_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<^>" :subid("51_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_820
.annotate "line", 170
new $P819, 'ExceptionHandler'
@@ -9703,7 +9705,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<^^>" :subid("52_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<^^>" :subid("52_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_832
.annotate "line", 175
new $P831, 'ExceptionHandler'
@@ -9734,7 +9736,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<$>" :subid("53_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<$>" :subid("53_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_844
.annotate "line", 180
new $P843, 'ExceptionHandler'
@@ -9765,7 +9767,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<$$>" :subid("54_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<$$>" :subid("54_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_856
.annotate "line", 185
new $P855, 'ExceptionHandler'
@@ -9796,7 +9798,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<:::>" :subid("55_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<:::>" :subid("55_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_868
.annotate "line", 190
new $P867, 'ExceptionHandler'
@@ -9827,7 +9829,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<lwb>" :subid("56_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<lwb>" :subid("56_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_880
.annotate "line", 195
new $P879, 'ExceptionHandler'
@@ -9858,7 +9860,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<rwb>" :subid("57_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<rwb>" :subid("57_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_892
.annotate "line", 200
new $P891, 'ExceptionHandler'
@@ -9889,7 +9891,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<bs>" :subid("58_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<bs>" :subid("58_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_904
.annotate "line", 205
new $P903, 'ExceptionHandler'
@@ -9901,13 +9903,13 @@
.annotate "line", 206
find_lex $P905, "$/"
find_lex $P906, "$/"
- unless_null $P906, vivify_226
+ unless_null $P906, vivify_227
new $P906, "Hash"
- vivify_226:
+ vivify_227:
set $P907, $P906["backslash"]
- unless_null $P907, vivify_227
+ unless_null $P907, vivify_228
new $P907, "Undef"
- vivify_227:
+ vivify_228:
$P908 = $P907."ast"()
$P909 = $P905."!make"($P908)
.annotate "line", 205
@@ -9921,7 +9923,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<mod>" :subid("59_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<mod>" :subid("59_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_914
.annotate "line", 209
new $P913, 'ExceptionHandler'
@@ -9933,13 +9935,13 @@
.annotate "line", 210
find_lex $P915, "$/"
find_lex $P916, "$/"
- unless_null $P916, vivify_228
+ unless_null $P916, vivify_229
new $P916, "Hash"
- vivify_228:
+ vivify_229:
set $P917, $P916["mod_internal"]
- unless_null $P917, vivify_229
+ unless_null $P917, vivify_230
new $P917, "Undef"
- vivify_229:
+ vivify_230:
$P918 = $P917."ast"()
$P919 = $P915."!make"($P918)
.annotate "line", 209
@@ -9953,7 +9955,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<assert>" :subid("60_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<assert>" :subid("60_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_924
.annotate "line", 213
new $P923, 'ExceptionHandler'
@@ -9965,13 +9967,13 @@
.annotate "line", 214
find_lex $P925, "$/"
find_lex $P926, "$/"
- unless_null $P926, vivify_230
+ unless_null $P926, vivify_231
new $P926, "Hash"
- vivify_230:
+ vivify_231:
set $P927, $P926["assertion"]
- unless_null $P927, vivify_231
+ unless_null $P927, vivify_232
new $P927, "Undef"
- vivify_231:
+ vivify_232:
$P928 = $P927."ast"()
$P929 = $P925."!make"($P928)
.annotate "line", 213
@@ -9985,7 +9987,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<~>" :subid("61_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<~>" :subid("61_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_934
.annotate "line", 217
new $P933, 'ExceptionHandler'
@@ -9999,36 +10001,36 @@
get_hll_global $P936, ["PAST"], "Regex"
.annotate "line", 219
find_lex $P937, "$/"
- unless_null $P937, vivify_232
+ unless_null $P937, vivify_233
new $P937, "Hash"
- vivify_232:
+ vivify_233:
set $P938, $P937["EXPR"]
- unless_null $P938, vivify_233
+ unless_null $P938, vivify_234
new $P938, "Undef"
- vivify_233:
+ vivify_234:
$P939 = $P938."ast"()
.annotate "line", 220
get_hll_global $P940, ["PAST"], "Regex"
.annotate "line", 221
find_lex $P941, "$/"
- unless_null $P941, vivify_234
+ unless_null $P941, vivify_235
new $P941, "Hash"
- vivify_234:
+ vivify_235:
set $P942, $P941["GOAL"]
- unless_null $P942, vivify_235
+ unless_null $P942, vivify_236
new $P942, "Undef"
- vivify_235:
+ vivify_236:
$P943 = $P942."ast"()
.annotate "line", 222
get_hll_global $P944, ["PAST"], "Regex"
find_lex $P945, "$/"
- unless_null $P945, vivify_236
+ unless_null $P945, vivify_237
new $P945, "Hash"
- vivify_236:
+ vivify_237:
set $P946, $P945["GOAL"]
- unless_null $P946, vivify_237
+ unless_null $P946, vivify_238
new $P946, "Undef"
- vivify_237:
+ vivify_238:
set $S947, $P946
$P948 = $P944."new"("FAILGOAL", $S947, "subrule" :named("pasttype"), "method" :named("subtype"))
$P949 = $P940."new"($P943, $P948, "alt" :named("pasttype"))
@@ -10047,7 +10049,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<{*}>" :subid("62_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<{*}>" :subid("62_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_956
.annotate "line", 230
new $P955, 'ExceptionHandler'
@@ -10061,13 +10063,13 @@
.lex "$past", $P957
.annotate "line", 232
find_lex $P960, "$/"
- unless_null $P960, vivify_238
+ unless_null $P960, vivify_239
new $P960, "Hash"
- vivify_238:
+ vivify_239:
set $P961, $P960["key"]
- unless_null $P961, vivify_239
+ unless_null $P961, vivify_240
new $P961, "Undef"
- vivify_239:
+ vivify_240:
if $P961, if_959
new $P969, "Integer"
assign $P969, 0
@@ -10076,17 +10078,17 @@
if_959:
get_hll_global $P962, ["PAST"], "Regex"
find_lex $P963, "$/"
- unless_null $P963, vivify_240
+ unless_null $P963, vivify_241
new $P963, "Hash"
- vivify_240:
+ vivify_241:
set $P964, $P963["key"]
- unless_null $P964, vivify_241
+ unless_null $P964, vivify_242
new $P964, "ResizablePMCArray"
- vivify_241:
+ vivify_242:
set $P965, $P964[0]
- unless_null $P965, vivify_242
+ unless_null $P965, vivify_243
new $P965, "Undef"
- vivify_242:
+ vivify_243:
set $S966, $P965
find_lex $P967, "$/"
$P968 = $P962."new"($S966, "reduce" :named("pasttype"), $P967 :named("node"))
@@ -10108,7 +10110,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<var>" :subid("63_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<var>" :subid("63_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_977
.annotate "line", 237
new $P976, 'ExceptionHandler'
@@ -10127,35 +10129,35 @@
find_lex $P980, "$past"
.annotate "line", 239
find_lex $P983, "$/"
- unless_null $P983, vivify_243
+ unless_null $P983, vivify_244
new $P983, "Hash"
- vivify_243:
+ vivify_244:
set $P984, $P983["pos"]
- unless_null $P984, vivify_244
+ unless_null $P984, vivify_245
new $P984, "Undef"
- vivify_244:
+ vivify_245:
if $P984, if_982
find_lex $P988, "$/"
- unless_null $P988, vivify_245
+ unless_null $P988, vivify_246
new $P988, "Hash"
- vivify_245:
+ vivify_246:
set $P989, $P988["name"]
- unless_null $P989, vivify_246
+ unless_null $P989, vivify_247
new $P989, "Undef"
- vivify_246:
+ vivify_247:
set $S990, $P989
new $P981, 'String'
set $P981, $S990
goto if_982_end
if_982:
find_lex $P985, "$/"
- unless_null $P985, vivify_247
+ unless_null $P985, vivify_248
new $P985, "Hash"
- vivify_247:
+ vivify_248:
set $P986, $P985["pos"]
- unless_null $P986, vivify_248
+ unless_null $P986, vivify_249
new $P986, "Undef"
- vivify_248:
+ vivify_249:
set $N987, $P986
new $P981, 'Float'
set $P981, $N987
@@ -10163,13 +10165,13 @@
store_lex "$name", $P981
.annotate "line", 240
find_lex $P992, "$/"
- unless_null $P992, vivify_249
+ unless_null $P992, vivify_250
new $P992, "Hash"
- vivify_249:
+ vivify_250:
set $P993, $P992["quantified_atom"]
- unless_null $P993, vivify_250
+ unless_null $P993, vivify_251
new $P993, "Undef"
- vivify_250:
+ vivify_251:
if $P993, if_991
.annotate "line", 251
get_hll_global $P1022, ["PAST"], "Regex"
@@ -10182,17 +10184,17 @@
if_991:
.annotate "line", 241
find_lex $P994, "$/"
- unless_null $P994, vivify_251
+ unless_null $P994, vivify_252
new $P994, "Hash"
- vivify_251:
+ vivify_252:
set $P995, $P994["quantified_atom"]
- unless_null $P995, vivify_252
+ unless_null $P995, vivify_253
new $P995, "ResizablePMCArray"
- vivify_252:
+ vivify_253:
set $P996, $P995[0]
- unless_null $P996, vivify_253
+ unless_null $P996, vivify_254
new $P996, "Undef"
- vivify_253:
+ vivify_254:
$P997 = $P996."ast"()
store_lex "$past", $P997
.annotate "line", 242
@@ -10205,13 +10207,13 @@
goto if_1000_end
if_1000:
find_lex $P1004, "$past"
- unless_null $P1004, vivify_254
+ unless_null $P1004, vivify_255
new $P1004, "ResizablePMCArray"
- vivify_254:
+ vivify_255:
set $P1005, $P1004[0]
- unless_null $P1005, vivify_255
+ unless_null $P1005, vivify_256
new $P1005, "Undef"
- vivify_255:
+ vivify_256:
$S1006 = $P1005."pasttype"()
iseq $I1007, $S1006, "subrule"
new $P999, 'Integer'
@@ -10242,13 +10244,13 @@
if_998:
.annotate "line", 243
find_lex $P1008, "$past"
- unless_null $P1008, vivify_256
+ unless_null $P1008, vivify_257
new $P1008, "ResizablePMCArray"
- vivify_256:
+ vivify_257:
set $P1009, $P1008[0]
- unless_null $P1009, vivify_257
+ unless_null $P1009, vivify_258
new $P1009, "Undef"
- vivify_257:
+ vivify_258:
find_lex $P1010, "$name"
"subrule_alias"($P1009, $P1010)
if_998_end:
@@ -10268,7 +10270,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<PIR>" :subid("64_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "metachar:sym<PIR>" :subid("64_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_1033
.annotate "line", 257
new $P1032, 'ExceptionHandler'
@@ -10283,13 +10285,13 @@
.annotate "line", 259
get_hll_global $P1036, ["PAST"], "Op"
find_lex $P1037, "$/"
- unless_null $P1037, vivify_258
+ unless_null $P1037, vivify_259
new $P1037, "Hash"
- vivify_258:
+ vivify_259:
set $P1038, $P1037["pir"]
- unless_null $P1038, vivify_259
+ unless_null $P1038, vivify_260
new $P1038, "Undef"
- vivify_259:
+ vivify_260:
set $S1039, $P1038
$P1040 = $P1036."new"($S1039 :named("inline"), "inline" :named("pasttype"))
find_lex $P1041, "$/"
@@ -10307,7 +10309,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<w>" :subid("65_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<w>" :subid("65_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_1048
.annotate "line", 265
new $P1047, 'ExceptionHandler'
@@ -10324,24 +10326,24 @@
.lex "$past", $P1050
.annotate "line", 266
find_lex $P1053, "$/"
- unless_null $P1053, vivify_260
+ unless_null $P1053, vivify_261
new $P1053, "Hash"
- vivify_260:
+ vivify_261:
set $P1054, $P1053["sym"]
- unless_null $P1054, vivify_261
+ unless_null $P1054, vivify_262
new $P1054, "Undef"
- vivify_261:
+ vivify_262:
set $S1055, $P1054
iseq $I1056, $S1055, "n"
if $I1056, if_1052
find_lex $P1058, "$/"
- unless_null $P1058, vivify_262
+ unless_null $P1058, vivify_263
new $P1058, "Hash"
- vivify_262:
+ vivify_263:
set $P1059, $P1058["sym"]
- unless_null $P1059, vivify_263
+ unless_null $P1059, vivify_264
new $P1059, "Undef"
- vivify_263:
+ vivify_264:
set $S1060, $P1059
new $P1051, 'String'
set $P1051, $S1060
@@ -10373,7 +10375,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<b>" :subid("66_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<b>" :subid("66_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_1072
.annotate "line", 271
new $P1071, 'ExceptionHandler'
@@ -10388,13 +10390,13 @@
get_hll_global $P1074, ["PAST"], "Regex"
.annotate "line", 273
find_lex $P1075, "$/"
- unless_null $P1075, vivify_264
+ unless_null $P1075, vivify_265
new $P1075, "Hash"
- vivify_264:
+ vivify_265:
set $P1076, $P1075["sym"]
- unless_null $P1076, vivify_265
+ unless_null $P1076, vivify_266
new $P1076, "Undef"
- vivify_265:
+ vivify_266:
set $S1077, $P1076
iseq $I1078, $S1077, "B"
find_lex $P1079, "$/"
@@ -10416,7 +10418,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<e>" :subid("67_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<e>" :subid("67_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_1088
.annotate "line", 277
new $P1087, 'ExceptionHandler'
@@ -10431,13 +10433,13 @@
get_hll_global $P1090, ["PAST"], "Regex"
.annotate "line", 279
find_lex $P1091, "$/"
- unless_null $P1091, vivify_266
+ unless_null $P1091, vivify_267
new $P1091, "Hash"
- vivify_266:
+ vivify_267:
set $P1092, $P1091["sym"]
- unless_null $P1092, vivify_267
+ unless_null $P1092, vivify_268
new $P1092, "Undef"
- vivify_267:
+ vivify_268:
set $S1093, $P1092
iseq $I1094, $S1093, "E"
find_lex $P1095, "$/"
@@ -10459,7 +10461,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<f>" :subid("68_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<f>" :subid("68_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_1104
.annotate "line", 283
new $P1103, 'ExceptionHandler'
@@ -10474,13 +10476,13 @@
get_hll_global $P1106, ["PAST"], "Regex"
.annotate "line", 285
find_lex $P1107, "$/"
- unless_null $P1107, vivify_268
+ unless_null $P1107, vivify_269
new $P1107, "Hash"
- vivify_268:
+ vivify_269:
set $P1108, $P1107["sym"]
- unless_null $P1108, vivify_269
+ unless_null $P1108, vivify_270
new $P1108, "Undef"
- vivify_269:
+ vivify_270:
set $S1109, $P1108
iseq $I1110, $S1109, "F"
find_lex $P1111, "$/"
@@ -10502,7 +10504,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<h>" :subid("69_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<h>" :subid("69_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_1120
.annotate "line", 289
new $P1119, 'ExceptionHandler'
@@ -10517,13 +10519,13 @@
get_hll_global $P1122, ["PAST"], "Regex"
.annotate "line", 291
find_lex $P1123, "$/"
- unless_null $P1123, vivify_270
+ unless_null $P1123, vivify_271
new $P1123, "Hash"
- vivify_270:
+ vivify_271:
set $P1124, $P1123["sym"]
- unless_null $P1124, vivify_271
+ unless_null $P1124, vivify_272
new $P1124, "Undef"
- vivify_271:
+ vivify_272:
set $S1125, $P1124
iseq $I1126, $S1125, "H"
find_lex $P1127, "$/"
@@ -10545,7 +10547,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<r>" :subid("70_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<r>" :subid("70_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_1136
.annotate "line", 295
new $P1135, 'ExceptionHandler'
@@ -10560,13 +10562,13 @@
get_hll_global $P1138, ["PAST"], "Regex"
.annotate "line", 297
find_lex $P1139, "$/"
- unless_null $P1139, vivify_272
+ unless_null $P1139, vivify_273
new $P1139, "Hash"
- vivify_272:
+ vivify_273:
set $P1140, $P1139["sym"]
- unless_null $P1140, vivify_273
+ unless_null $P1140, vivify_274
new $P1140, "Undef"
- vivify_273:
+ vivify_274:
set $S1141, $P1140
iseq $I1142, $S1141, "R"
find_lex $P1143, "$/"
@@ -10588,7 +10590,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<t>" :subid("71_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<t>" :subid("71_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_1152
.annotate "line", 301
new $P1151, 'ExceptionHandler'
@@ -10603,13 +10605,13 @@
get_hll_global $P1154, ["PAST"], "Regex"
.annotate "line", 303
find_lex $P1155, "$/"
- unless_null $P1155, vivify_274
+ unless_null $P1155, vivify_275
new $P1155, "Hash"
- vivify_274:
+ vivify_275:
set $P1156, $P1155["sym"]
- unless_null $P1156, vivify_275
+ unless_null $P1156, vivify_276
new $P1156, "Undef"
- vivify_275:
+ vivify_276:
set $S1157, $P1156
iseq $I1158, $S1157, "T"
find_lex $P1159, "$/"
@@ -10631,7 +10633,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<v>" :subid("72_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<v>" :subid("72_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_1168
.annotate "line", 307
new $P1167, 'ExceptionHandler'
@@ -10646,13 +10648,13 @@
get_hll_global $P1170, ["PAST"], "Regex"
.annotate "line", 310
find_lex $P1171, "$/"
- unless_null $P1171, vivify_276
+ unless_null $P1171, vivify_277
new $P1171, "Hash"
- vivify_276:
+ vivify_277:
set $P1172, $P1171["sym"]
- unless_null $P1172, vivify_277
+ unless_null $P1172, vivify_278
new $P1172, "Undef"
- vivify_277:
+ vivify_278:
set $S1173, $P1172
iseq $I1174, $S1173, "V"
find_lex $P1175, "$/"
@@ -10674,7 +10676,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<o>" :subid("73_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<o>" :subid("73_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_1184
.annotate "line", 314
new $P1183, 'ExceptionHandler'
@@ -10689,29 +10691,29 @@
.annotate "line", 316
get_hll_global $P1186, ["HLL";"Actions"], "ints_to_string"
find_lex $P1189, "$/"
- unless_null $P1189, vivify_278
+ unless_null $P1189, vivify_279
new $P1189, "Hash"
- vivify_278:
+ vivify_279:
set $P1190, $P1189["octint"]
- unless_null $P1190, vivify_279
+ unless_null $P1190, vivify_280
new $P1190, "Undef"
- vivify_279:
+ vivify_280:
unless $P1190, unless_1188
set $P1187, $P1190
goto unless_1188_end
unless_1188:
find_lex $P1191, "$/"
- unless_null $P1191, vivify_280
+ unless_null $P1191, vivify_281
new $P1191, "Hash"
- vivify_280:
+ vivify_281:
set $P1192, $P1191["octints"]
- unless_null $P1192, vivify_281
+ unless_null $P1192, vivify_282
new $P1192, "Hash"
- vivify_281:
+ vivify_282:
set $P1193, $P1192["octint"]
- unless_null $P1193, vivify_282
+ unless_null $P1193, vivify_283
new $P1193, "Undef"
- vivify_282:
+ vivify_283:
set $P1187, $P1193
unless_1188_end:
$P1194 = $P1186($P1187)
@@ -10719,13 +10721,13 @@
.annotate "line", 317
find_lex $P1195, "$/"
find_lex $P1198, "$/"
- unless_null $P1198, vivify_283
+ unless_null $P1198, vivify_284
new $P1198, "Hash"
- vivify_283:
+ vivify_284:
set $P1199, $P1198["sym"]
- unless_null $P1199, vivify_284
+ unless_null $P1199, vivify_285
new $P1199, "Undef"
- vivify_284:
+ vivify_285:
set $S1200, $P1199
iseq $I1201, $S1200, "O"
if $I1201, if_1197
@@ -10757,7 +10759,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<x>" :subid("74_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<x>" :subid("74_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_1215
.annotate "line", 323
new $P1214, 'ExceptionHandler'
@@ -10772,29 +10774,29 @@
.annotate "line", 325
get_hll_global $P1217, ["HLL";"Actions"], "ints_to_string"
find_lex $P1220, "$/"
- unless_null $P1220, vivify_285
+ unless_null $P1220, vivify_286
new $P1220, "Hash"
- vivify_285:
+ vivify_286:
set $P1221, $P1220["hexint"]
- unless_null $P1221, vivify_286
+ unless_null $P1221, vivify_287
new $P1221, "Undef"
- vivify_286:
+ vivify_287:
unless $P1221, unless_1219
set $P1218, $P1221
goto unless_1219_end
unless_1219:
find_lex $P1222, "$/"
- unless_null $P1222, vivify_287
+ unless_null $P1222, vivify_288
new $P1222, "Hash"
- vivify_287:
+ vivify_288:
set $P1223, $P1222["hexints"]
- unless_null $P1223, vivify_288
+ unless_null $P1223, vivify_289
new $P1223, "Hash"
- vivify_288:
+ vivify_289:
set $P1224, $P1223["hexint"]
- unless_null $P1224, vivify_289
+ unless_null $P1224, vivify_290
new $P1224, "Undef"
- vivify_289:
+ vivify_290:
set $P1218, $P1224
unless_1219_end:
$P1225 = $P1217($P1218)
@@ -10802,13 +10804,13 @@
.annotate "line", 326
find_lex $P1226, "$/"
find_lex $P1229, "$/"
- unless_null $P1229, vivify_290
+ unless_null $P1229, vivify_291
new $P1229, "Hash"
- vivify_290:
+ vivify_291:
set $P1230, $P1229["sym"]
- unless_null $P1230, vivify_291
+ unless_null $P1230, vivify_292
new $P1230, "Undef"
- vivify_291:
+ vivify_292:
set $S1231, $P1230
iseq $I1232, $S1231, "X"
if $I1232, if_1228
@@ -10840,7 +10842,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<misc>" :subid("75_1261064016.27984") :method :outer("11_1261064016.27984")
+.sub "backslash:sym<c>" :subid("75_1266337348.54616") :method :outer("11_1266337348.54616")
.param pmc param_1246
.annotate "line", 332
new $P1245, 'ExceptionHandler'
@@ -10850,398 +10852,433 @@
.lex "self", self
.lex "$/", param_1246
.annotate "line", 333
- new $P1247, "Undef"
- .lex "$past", $P1247
+ find_lex $P1247, "$/"
get_hll_global $P1248, ["PAST"], "Regex"
find_lex $P1249, "$/"
- set $S1250, $P1249
- find_lex $P1251, "$/"
- $P1252 = $P1248."new"($S1250, "literal" :named("pasttype"), $P1251 :named("node"))
- store_lex "$past", $P1252
-.annotate "line", 334
- find_lex $P1253, "$/"
- find_lex $P1254, "$past"
- $P1255 = $P1253."!make"($P1254)
+ unless_null $P1249, vivify_293
+ new $P1249, "Hash"
+ vivify_293:
+ set $P1250, $P1249["charspec"]
+ unless_null $P1250, vivify_294
+ new $P1250, "Undef"
+ vivify_294:
+ $P1251 = $P1250."ast"()
+ find_lex $P1252, "$/"
+ $P1253 = $P1248."new"($P1251, "literal" :named("pasttype"), $P1252 :named("node"))
+ $P1254 = $P1247."!make"($P1253)
.annotate "line", 332
- .return ($P1255)
+ .return ($P1254)
control_1244:
.local pmc exception
.get_results (exception)
- getattribute $P1256, exception, "payload"
- .return ($P1256)
+ getattribute $P1255, exception, "payload"
+ .return ($P1255)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<?>" :subid("76_1261064016.27984") :method :outer("11_1261064016.27984")
- .param pmc param_1260
-.annotate "line", 338
- new $P1259, 'ExceptionHandler'
- set_addr $P1259, control_1258
- $P1259."handle_types"(58)
- push_eh $P1259
- .lex "self", self
- .lex "$/", param_1260
-.annotate "line", 339
- new $P1261, "Undef"
- .lex "$past", $P1261
-.annotate "line", 338
- find_lex $P1262, "$past"
-.annotate "line", 340
+.sub "backslash:sym<misc>" :subid("76_1266337348.54616") :method :outer("11_1266337348.54616")
+ .param pmc param_1259
+.annotate "line", 336
+ new $P1258, 'ExceptionHandler'
+ set_addr $P1258, control_1257
+ $P1258."handle_types"(58)
+ push_eh $P1258
+ .lex "self", self
+ .lex "$/", param_1259
+.annotate "line", 337
+ new $P1260, "Undef"
+ .lex "$past", $P1260
+ get_hll_global $P1261, ["PAST"], "Regex"
+ find_lex $P1262, "$/"
+ set $S1263, $P1262
find_lex $P1264, "$/"
- unless_null $P1264, vivify_292
- new $P1264, "Hash"
- vivify_292:
- set $P1265, $P1264["assertion"]
- unless_null $P1265, vivify_293
- new $P1265, "Undef"
- vivify_293:
- if $P1265, if_1263
-.annotate "line", 344
- new $P1270, "Integer"
- assign $P1270, 0
- store_lex "$past", $P1270
- goto if_1263_end
- if_1263:
-.annotate "line", 341
- find_lex $P1266, "$/"
- unless_null $P1266, vivify_294
- new $P1266, "Hash"
- vivify_294:
- set $P1267, $P1266["assertion"]
- unless_null $P1267, vivify_295
- new $P1267, "Undef"
- vivify_295:
- $P1268 = $P1267."ast"()
- store_lex "$past", $P1268
-.annotate "line", 342
- find_lex $P1269, "$past"
- $P1269."subtype"("zerowidth")
- if_1263_end:
-.annotate "line", 345
- find_lex $P1271, "$/"
- find_lex $P1272, "$past"
- $P1273 = $P1271."!make"($P1272)
+ $P1265 = $P1261."new"($S1263, "literal" :named("pasttype"), $P1264 :named("node"))
+ store_lex "$past", $P1265
.annotate "line", 338
- .return ($P1273)
- control_1258:
+ find_lex $P1266, "$/"
+ find_lex $P1267, "$past"
+ $P1268 = $P1266."!make"($P1267)
+.annotate "line", 336
+ .return ($P1268)
+ control_1257:
.local pmc exception
.get_results (exception)
- getattribute $P1274, exception, "payload"
- .return ($P1274)
+ getattribute $P1269, exception, "payload"
+ .return ($P1269)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<!>" :subid("77_1261064016.27984") :method :outer("11_1261064016.27984")
- .param pmc param_1278
-.annotate "line", 348
- new $P1277, 'ExceptionHandler'
- set_addr $P1277, control_1276
- $P1277."handle_types"(58)
- push_eh $P1277
- .lex "self", self
- .lex "$/", param_1278
-.annotate "line", 349
- new $P1279, "Undef"
- .lex "$past", $P1279
-.annotate "line", 348
- find_lex $P1280, "$past"
-.annotate "line", 350
- find_lex $P1282, "$/"
- unless_null $P1282, vivify_296
- new $P1282, "Hash"
+.sub "assertion:sym<?>" :subid("77_1266337348.54616") :method :outer("11_1266337348.54616")
+ .param pmc param_1273
+.annotate "line", 342
+ new $P1272, 'ExceptionHandler'
+ set_addr $P1272, control_1271
+ $P1272."handle_types"(58)
+ push_eh $P1272
+ .lex "self", self
+ .lex "$/", param_1273
+.annotate "line", 343
+ new $P1274, "Undef"
+ .lex "$past", $P1274
+.annotate "line", 342
+ find_lex $P1275, "$past"
+.annotate "line", 344
+ find_lex $P1277, "$/"
+ unless_null $P1277, vivify_295
+ new $P1277, "Hash"
+ vivify_295:
+ set $P1278, $P1277["assertion"]
+ unless_null $P1278, vivify_296
+ new $P1278, "Undef"
vivify_296:
- set $P1283, $P1282["assertion"]
- unless_null $P1283, vivify_297
- new $P1283, "Undef"
+ if $P1278, if_1276
+.annotate "line", 348
+ new $P1283, "Integer"
+ assign $P1283, 0
+ store_lex "$past", $P1283
+ goto if_1276_end
+ if_1276:
+.annotate "line", 345
+ find_lex $P1279, "$/"
+ unless_null $P1279, vivify_297
+ new $P1279, "Hash"
vivify_297:
- if $P1283, if_1281
-.annotate "line", 356
- get_hll_global $P1292, ["PAST"], "Regex"
- find_lex $P1293, "$/"
- $P1294 = $P1292."new"("anchor" :named("pasttype"), "fail" :named("subtype"), $P1293 :named("node"))
- store_lex "$past", $P1294
-.annotate "line", 355
- goto if_1281_end
- if_1281:
-.annotate "line", 351
- find_lex $P1284, "$/"
- unless_null $P1284, vivify_298
- new $P1284, "Hash"
+ set $P1280, $P1279["assertion"]
+ unless_null $P1280, vivify_298
+ new $P1280, "Undef"
vivify_298:
- set $P1285, $P1284["assertion"]
- unless_null $P1285, vivify_299
- new $P1285, "Undef"
- vivify_299:
- $P1286 = $P1285."ast"()
- store_lex "$past", $P1286
-.annotate "line", 352
- find_lex $P1287, "$past"
- find_lex $P1288, "$past"
- $P1289 = $P1288."negate"()
- isfalse $I1290, $P1289
- $P1287."negate"($I1290)
-.annotate "line", 353
- find_lex $P1291, "$past"
- $P1291."subtype"("zerowidth")
- if_1281_end:
-.annotate "line", 358
- find_lex $P1295, "$/"
- find_lex $P1296, "$past"
- $P1297 = $P1295."!make"($P1296)
-.annotate "line", 348
- .return ($P1297)
- control_1276:
+ $P1281 = $P1280."ast"()
+ store_lex "$past", $P1281
+.annotate "line", 346
+ find_lex $P1282, "$past"
+ $P1282."subtype"("zerowidth")
+ if_1276_end:
+.annotate "line", 349
+ find_lex $P1284, "$/"
+ find_lex $P1285, "$past"
+ $P1286 = $P1284."!make"($P1285)
+.annotate "line", 342
+ .return ($P1286)
+ control_1271:
.local pmc exception
.get_results (exception)
- getattribute $P1298, exception, "payload"
- .return ($P1298)
+ getattribute $P1287, exception, "payload"
+ .return ($P1287)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<method>" :subid("78_1261064016.27984") :method :outer("11_1261064016.27984")
- .param pmc param_1302
-.annotate "line", 361
- new $P1301, 'ExceptionHandler'
- set_addr $P1301, control_1300
- $P1301."handle_types"(58)
- push_eh $P1301
+.sub "assertion:sym<!>" :subid("78_1266337348.54616") :method :outer("11_1266337348.54616")
+ .param pmc param_1291
+.annotate "line", 352
+ new $P1290, 'ExceptionHandler'
+ set_addr $P1290, control_1289
+ $P1290."handle_types"(58)
+ push_eh $P1290
.lex "self", self
- .lex "$/", param_1302
-.annotate "line", 362
- new $P1303, "Undef"
- .lex "$past", $P1303
- find_lex $P1304, "$/"
- unless_null $P1304, vivify_300
- new $P1304, "Hash"
+ .lex "$/", param_1291
+.annotate "line", 353
+ new $P1292, "Undef"
+ .lex "$past", $P1292
+.annotate "line", 352
+ find_lex $P1293, "$past"
+.annotate "line", 354
+ find_lex $P1295, "$/"
+ unless_null $P1295, vivify_299
+ new $P1295, "Hash"
+ vivify_299:
+ set $P1296, $P1295["assertion"]
+ unless_null $P1296, vivify_300
+ new $P1296, "Undef"
vivify_300:
- set $P1305, $P1304["assertion"]
- unless_null $P1305, vivify_301
- new $P1305, "Undef"
+ if $P1296, if_1294
+.annotate "line", 360
+ get_hll_global $P1305, ["PAST"], "Regex"
+ find_lex $P1306, "$/"
+ $P1307 = $P1305."new"("anchor" :named("pasttype"), "fail" :named("subtype"), $P1306 :named("node"))
+ store_lex "$past", $P1307
+.annotate "line", 359
+ goto if_1294_end
+ if_1294:
+.annotate "line", 355
+ find_lex $P1297, "$/"
+ unless_null $P1297, vivify_301
+ new $P1297, "Hash"
vivify_301:
- $P1306 = $P1305."ast"()
- store_lex "$past", $P1306
-.annotate "line", 363
- find_lex $P1307, "$past"
- $P1307."subtype"("method")
-.annotate "line", 364
- find_lex $P1308, "$past"
- $P1308."name"("")
-.annotate "line", 365
- find_lex $P1309, "$/"
- find_lex $P1310, "$past"
- $P1311 = $P1309."!make"($P1310)
-.annotate "line", 361
- .return ($P1311)
- control_1300:
+ set $P1298, $P1297["assertion"]
+ unless_null $P1298, vivify_302
+ new $P1298, "Undef"
+ vivify_302:
+ $P1299 = $P1298."ast"()
+ store_lex "$past", $P1299
+.annotate "line", 356
+ find_lex $P1300, "$past"
+ find_lex $P1301, "$past"
+ $P1302 = $P1301."negate"()
+ isfalse $I1303, $P1302
+ $P1300."negate"($I1303)
+.annotate "line", 357
+ find_lex $P1304, "$past"
+ $P1304."subtype"("zerowidth")
+ if_1294_end:
+.annotate "line", 362
+ find_lex $P1308, "$/"
+ find_lex $P1309, "$past"
+ $P1310 = $P1308."!make"($P1309)
+.annotate "line", 352
+ .return ($P1310)
+ control_1289:
.local pmc exception
.get_results (exception)
- getattribute $P1312, exception, "payload"
- .return ($P1312)
+ getattribute $P1311, exception, "payload"
+ .return ($P1311)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<name>" :subid("79_1261064016.27984") :method :outer("11_1261064016.27984")
- .param pmc param_1316
-.annotate "line", 368
- .const 'Sub' $P1374 = "81_1261064016.27984"
- capture_lex $P1374
- .const 'Sub' $P1338 = "80_1261064016.27984"
- capture_lex $P1338
- new $P1315, 'ExceptionHandler'
- set_addr $P1315, control_1314
- $P1315."handle_types"(58)
- push_eh $P1315
- .lex "self", self
- .lex "$/", param_1316
-.annotate "line", 369
- new $P1317, "Undef"
- .lex "$name", $P1317
-.annotate "line", 370
+.sub "assertion:sym<method>" :subid("79_1266337348.54616") :method :outer("11_1266337348.54616")
+ .param pmc param_1315
+.annotate "line", 365
+ new $P1314, 'ExceptionHandler'
+ set_addr $P1314, control_1313
+ $P1314."handle_types"(58)
+ push_eh $P1314
+ .lex "self", self
+ .lex "$/", param_1315
+.annotate "line", 366
+ new $P1316, "Undef"
+ .lex "$past", $P1316
+ find_lex $P1317, "$/"
+ unless_null $P1317, vivify_303
+ new $P1317, "Hash"
+ vivify_303:
+ set $P1318, $P1317["assertion"]
+ unless_null $P1318, vivify_304
new $P1318, "Undef"
- .lex "$past", $P1318
+ vivify_304:
+ $P1319 = $P1318."ast"()
+ store_lex "$past", $P1319
+.annotate "line", 367
+ find_lex $P1320, "$past"
+ $P1320."subtype"("method")
+.annotate "line", 368
+ find_lex $P1321, "$past"
+ $P1321."name"("")
.annotate "line", 369
- find_lex $P1319, "$/"
- unless_null $P1319, vivify_302
- new $P1319, "Hash"
- vivify_302:
- set $P1320, $P1319["longname"]
- unless_null $P1320, vivify_303
- new $P1320, "Undef"
- vivify_303:
- set $S1321, $P1320
- new $P1322, 'String'
- set $P1322, $S1321
- store_lex "$name", $P1322
+ find_lex $P1322, "$/"
find_lex $P1323, "$past"
-.annotate "line", 371
- find_lex $P1325, "$/"
- unless_null $P1325, vivify_304
- new $P1325, "Hash"
- vivify_304:
- set $P1326, $P1325["assertion"]
- unless_null $P1326, vivify_305
- new $P1326, "Undef"
+ $P1324 = $P1322."!make"($P1323)
+.annotate "line", 365
+ .return ($P1324)
+ control_1313:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1325, exception, "payload"
+ .return ($P1325)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.sub "assertion:sym<name>" :subid("80_1266337348.54616") :method :outer("11_1266337348.54616")
+ .param pmc param_1329
+.annotate "line", 372
+ .const 'Sub' $P1387 = "82_1266337348.54616"
+ capture_lex $P1387
+ .const 'Sub' $P1351 = "81_1266337348.54616"
+ capture_lex $P1351
+ new $P1328, 'ExceptionHandler'
+ set_addr $P1328, control_1327
+ $P1328."handle_types"(58)
+ push_eh $P1328
+ .lex "self", self
+ .lex "$/", param_1329
+.annotate "line", 373
+ new $P1330, "Undef"
+ .lex "$name", $P1330
+.annotate "line", 374
+ new $P1331, "Undef"
+ .lex "$past", $P1331
+.annotate "line", 373
+ find_lex $P1332, "$/"
+ unless_null $P1332, vivify_305
+ new $P1332, "Hash"
vivify_305:
- if $P1326, if_1324
-.annotate "line", 375
- find_lex $P1334, "$name"
- set $S1335, $P1334
- iseq $I1336, $S1335, "sym"
- if $I1336, if_1333
-.annotate "line", 391
- get_hll_global $P1348, ["PAST"], "Regex"
- find_lex $P1349, "$name"
- find_lex $P1350, "$name"
- find_lex $P1351, "$/"
- $P1352 = $P1348."new"($P1349, $P1350 :named("name"), "subrule" :named("pasttype"), "capture" :named("subtype"), $P1351 :named("node"))
- store_lex "$past", $P1352
-.annotate "line", 393
- find_lex $P1354, "$/"
- unless_null $P1354, vivify_306
- new $P1354, "Hash"
+ set $P1333, $P1332["longname"]
+ unless_null $P1333, vivify_306
+ new $P1333, "Undef"
vivify_306:
- set $P1355, $P1354["nibbler"]
- unless_null $P1355, vivify_307
- new $P1355, "Undef"
+ set $S1334, $P1333
+ new $P1335, 'String'
+ set $P1335, $S1334
+ store_lex "$name", $P1335
+ find_lex $P1336, "$past"
+.annotate "line", 375
+ find_lex $P1338, "$/"
+ unless_null $P1338, vivify_307
+ new $P1338, "Hash"
vivify_307:
- if $P1355, if_1353
-.annotate "line", 396
- find_lex $P1363, "$/"
- unless_null $P1363, vivify_308
- new $P1363, "Hash"
+ set $P1339, $P1338["assertion"]
+ unless_null $P1339, vivify_308
+ new $P1339, "Undef"
vivify_308:
- set $P1364, $P1363["arglist"]
- unless_null $P1364, vivify_309
- new $P1364, "Undef"
- vivify_309:
- unless $P1364, if_1362_end
+ if $P1339, if_1337
+.annotate "line", 379
+ find_lex $P1347, "$name"
+ set $S1348, $P1347
+ iseq $I1349, $S1348, "sym"
+ if $I1349, if_1346
+.annotate "line", 395
+ get_hll_global $P1361, ["PAST"], "Regex"
+ find_lex $P1362, "$name"
+ find_lex $P1363, "$name"
+ find_lex $P1364, "$/"
+ $P1365 = $P1361."new"($P1362, $P1363 :named("name"), "subrule" :named("pasttype"), "capture" :named("subtype"), $P1364 :named("node"))
+ store_lex "$past", $P1365
.annotate "line", 397
- find_lex $P1366, "$/"
- unless_null $P1366, vivify_310
- new $P1366, "Hash"
+ find_lex $P1367, "$/"
+ unless_null $P1367, vivify_309
+ new $P1367, "Hash"
+ vivify_309:
+ set $P1368, $P1367["nibbler"]
+ unless_null $P1368, vivify_310
+ new $P1368, "Undef"
vivify_310:
- set $P1367, $P1366["arglist"]
- unless_null $P1367, vivify_311
- new $P1367, "ResizablePMCArray"
+ if $P1368, if_1366
+.annotate "line", 400
+ find_lex $P1376, "$/"
+ unless_null $P1376, vivify_311
+ new $P1376, "Hash"
vivify_311:
- set $P1368, $P1367[0]
- unless_null $P1368, vivify_312
- new $P1368, "Undef"
+ set $P1377, $P1376["arglist"]
+ unless_null $P1377, vivify_312
+ new $P1377, "Undef"
vivify_312:
- $P1369 = $P1368."ast"()
- $P1370 = $P1369."list"()
- defined $I1371, $P1370
- unless $I1371, for_undef_313
- iter $P1365, $P1370
- new $P1380, 'ExceptionHandler'
- set_addr $P1380, loop1379_handler
- $P1380."handle_types"(65, 67, 66)
- push_eh $P1380
- loop1379_test:
- unless $P1365, loop1379_done
- shift $P1372, $P1365
- loop1379_redo:
- .const 'Sub' $P1374 = "81_1261064016.27984"
- capture_lex $P1374
- $P1374($P1372)
- loop1379_next:
- goto loop1379_test
- loop1379_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1381, exception, 'type'
- eq $P1381, 65, loop1379_next
- eq $P1381, 67, loop1379_redo
- loop1379_done:
- pop_eh
- for_undef_313:
- if_1362_end:
-.annotate "line", 396
- goto if_1353_end
- if_1353:
-.annotate "line", 394
- find_lex $P1356, "$past"
- find_lex $P1357, "$/"
- unless_null $P1357, vivify_314
- new $P1357, "Hash"
+ unless $P1377, if_1375_end
+.annotate "line", 401
+ find_lex $P1379, "$/"
+ unless_null $P1379, vivify_313
+ new $P1379, "Hash"
+ vivify_313:
+ set $P1380, $P1379["arglist"]
+ unless_null $P1380, vivify_314
+ new $P1380, "ResizablePMCArray"
vivify_314:
- set $P1358, $P1357["nibbler"]
- unless_null $P1358, vivify_315
- new $P1358, "ResizablePMCArray"
+ set $P1381, $P1380[0]
+ unless_null $P1381, vivify_315
+ new $P1381, "Undef"
vivify_315:
- set $P1359, $P1358[0]
- unless_null $P1359, vivify_316
- new $P1359, "Undef"
- vivify_316:
- $P1360 = $P1359."ast"()
- $P1361 = "buildsub"($P1360)
- $P1356."push"($P1361)
- if_1353_end:
-.annotate "line", 390
- goto if_1333_end
- if_1333:
-.annotate "line", 375
- .const 'Sub' $P1338 = "80_1261064016.27984"
- capture_lex $P1338
- $P1338()
- if_1333_end:
- goto if_1324_end
- if_1324:
-.annotate "line", 372
- find_lex $P1327, "$/"
- unless_null $P1327, vivify_317
- new $P1327, "Hash"
+ $P1382 = $P1381."ast"()
+ $P1383 = $P1382."list"()
+ defined $I1384, $P1383
+ unless $I1384, for_undef_316
+ iter $P1378, $P1383
+ new $P1393, 'ExceptionHandler'
+ set_addr $P1393, loop1392_handler
+ $P1393."handle_types"(65, 67, 66)
+ push_eh $P1393
+ loop1392_test:
+ unless $P1378, loop1392_done
+ shift $P1385, $P1378
+ loop1392_redo:
+ .const 'Sub' $P1387 = "82_1266337348.54616"
+ capture_lex $P1387
+ $P1387($P1385)
+ loop1392_next:
+ goto loop1392_test
+ loop1392_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1394, exception, 'type'
+ eq $P1394, 65, loop1392_next
+ eq $P1394, 67, loop1392_redo
+ loop1392_done:
+ pop_eh
+ for_undef_316:
+ if_1375_end:
+.annotate "line", 400
+ goto if_1366_end
+ if_1366:
+.annotate "line", 398
+ find_lex $P1369, "$past"
+ find_lex $P1370, "$/"
+ unless_null $P1370, vivify_317
+ new $P1370, "Hash"
vivify_317:
- set $P1328, $P1327["assertion"]
- unless_null $P1328, vivify_318
- new $P1328, "ResizablePMCArray"
+ set $P1371, $P1370["nibbler"]
+ unless_null $P1371, vivify_318
+ new $P1371, "ResizablePMCArray"
vivify_318:
- set $P1329, $P1328[0]
- unless_null $P1329, vivify_319
- new $P1329, "Undef"
+ set $P1372, $P1371[0]
+ unless_null $P1372, vivify_319
+ new $P1372, "Undef"
vivify_319:
- $P1330 = $P1329."ast"()
- store_lex "$past", $P1330
-.annotate "line", 373
- find_lex $P1331, "$past"
- find_lex $P1332, "$name"
- "subrule_alias"($P1331, $P1332)
- if_1324_end:
-.annotate "line", 400
- find_lex $P1382, "$/"
- find_lex $P1383, "$past"
- $P1384 = $P1382."!make"($P1383)
-.annotate "line", 368
- .return ($P1384)
- control_1314:
+ $P1373 = $P1372."ast"()
+ $P1374 = "buildsub"($P1373)
+ $P1369."push"($P1374)
+ if_1366_end:
+.annotate "line", 394
+ goto if_1346_end
+ if_1346:
+.annotate "line", 379
+ .const 'Sub' $P1351 = "81_1266337348.54616"
+ capture_lex $P1351
+ $P1351()
+ if_1346_end:
+ goto if_1337_end
+ if_1337:
+.annotate "line", 376
+ find_lex $P1340, "$/"
+ unless_null $P1340, vivify_320
+ new $P1340, "Hash"
+ vivify_320:
+ set $P1341, $P1340["assertion"]
+ unless_null $P1341, vivify_321
+ new $P1341, "ResizablePMCArray"
+ vivify_321:
+ set $P1342, $P1341[0]
+ unless_null $P1342, vivify_322
+ new $P1342, "Undef"
+ vivify_322:
+ $P1343 = $P1342."ast"()
+ store_lex "$past", $P1343
+.annotate "line", 377
+ find_lex $P1344, "$past"
+ find_lex $P1345, "$name"
+ "subrule_alias"($P1344, $P1345)
+ if_1337_end:
+.annotate "line", 404
+ find_lex $P1395, "$/"
+ find_lex $P1396, "$past"
+ $P1397 = $P1395."!make"($P1396)
+.annotate "line", 372
+ .return ($P1397)
+ control_1327:
.local pmc exception
.get_results (exception)
- getattribute $P1385, exception, "payload"
- .return ($P1385)
+ getattribute $P1398, exception, "payload"
+ .return ($P1398)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1373" :anon :subid("81_1261064016.27984") :outer("79_1261064016.27984")
- .param pmc param_1375
-.annotate "line", 397
- .lex "$_", param_1375
- find_lex $P1376, "$past"
- find_lex $P1377, "$_"
- $P1378 = $P1376."push"($P1377)
- .return ($P1378)
+.sub "_block1386" :anon :subid("82_1266337348.54616") :outer("80_1266337348.54616")
+ .param pmc param_1388
+.annotate "line", 401
+ .lex "$_", param_1388
+ find_lex $P1389, "$past"
+ find_lex $P1390, "$_"
+ $P1391 = $P1389."push"($P1390)
+ .return ($P1391)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1337" :anon :subid("80_1261064016.27984") :outer("79_1261064016.27984")
-.annotate "line", 376
- new $P1339, "Undef"
- .lex "$regexsym", $P1339
+.sub "_block1350" :anon :subid("81_1266337348.54616") :outer("80_1266337348.54616")
+.annotate "line", 380
+ new $P1352, "Undef"
+ .lex "$regexsym", $P1352
$P0 = get_global '$REGEXNAME'
$S0 = $P0
@@ -11249,388 +11286,388 @@
add $I0, 5
$S0 = substr $S0, $I0
chopn $S0, 1
- $P1340 = box $S0
+ $P1353 = box $S0
- store_lex "$regexsym", $P1340
-.annotate "line", 385
- get_hll_global $P1341, ["PAST"], "Regex"
-.annotate "line", 386
- get_hll_global $P1342, ["PAST"], "Regex"
- find_lex $P1343, "$regexsym"
- $P1344 = $P1342."new"($P1343, "literal" :named("pasttype"))
- find_lex $P1345, "$name"
- find_lex $P1346, "$/"
- $P1347 = $P1341."new"($P1344, $P1345 :named("name"), "subcapture" :named("pasttype"), $P1346 :named("node"))
-.annotate "line", 385
- store_lex "$past", $P1347
-.annotate "line", 375
- .return ($P1347)
+ store_lex "$regexsym", $P1353
+.annotate "line", 389
+ get_hll_global $P1354, ["PAST"], "Regex"
+.annotate "line", 390
+ get_hll_global $P1355, ["PAST"], "Regex"
+ find_lex $P1356, "$regexsym"
+ $P1357 = $P1355."new"($P1356, "literal" :named("pasttype"))
+ find_lex $P1358, "$name"
+ find_lex $P1359, "$/"
+ $P1360 = $P1354."new"($P1357, $P1358 :named("name"), "subcapture" :named("pasttype"), $P1359 :named("node"))
+.annotate "line", 389
+ store_lex "$past", $P1360
+.annotate "line", 379
+ .return ($P1360)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<[>" :subid("82_1261064016.27984") :method :outer("11_1261064016.27984")
- .param pmc param_1389
-.annotate "line", 403
- .const 'Sub' $P1424 = "83_1261064016.27984"
- capture_lex $P1424
- new $P1388, 'ExceptionHandler'
- set_addr $P1388, control_1387
- $P1388."handle_types"(58)
- push_eh $P1388
- .lex "self", self
- .lex "$/", param_1389
-.annotate "line", 404
- new $P1390, "Undef"
- .lex "$clist", $P1390
-.annotate "line", 405
- new $P1391, "Undef"
- .lex "$past", $P1391
-.annotate "line", 414
- new $P1392, "Undef"
- .lex "$i", $P1392
-.annotate "line", 415
- new $P1393, "Undef"
- .lex "$n", $P1393
-.annotate "line", 404
- find_lex $P1394, "$/"
- unless_null $P1394, vivify_320
- new $P1394, "Hash"
- vivify_320:
- set $P1395, $P1394["cclass_elem"]
- unless_null $P1395, vivify_321
- new $P1395, "Undef"
- vivify_321:
- store_lex "$clist", $P1395
-.annotate "line", 405
- find_lex $P1396, "$clist"
- unless_null $P1396, vivify_322
- new $P1396, "ResizablePMCArray"
- vivify_322:
- set $P1397, $P1396[0]
- unless_null $P1397, vivify_323
- new $P1397, "Undef"
- vivify_323:
- $P1398 = $P1397."ast"()
- store_lex "$past", $P1398
-.annotate "line", 406
- find_lex $P1402, "$past"
- $P1403 = $P1402."negate"()
- if $P1403, if_1401
- set $P1400, $P1403
- goto if_1401_end
- if_1401:
- find_lex $P1404, "$past"
- $S1405 = $P1404."pasttype"()
- iseq $I1406, $S1405, "subrule"
- new $P1400, 'Integer'
- set $P1400, $I1406
- if_1401_end:
- unless $P1400, if_1399_end
+.sub "assertion:sym<[>" :subid("83_1266337348.54616") :method :outer("11_1266337348.54616")
+ .param pmc param_1402
.annotate "line", 407
- find_lex $P1407, "$past"
- $P1407."subtype"("zerowidth")
+ .const 'Sub' $P1437 = "84_1266337348.54616"
+ capture_lex $P1437
+ new $P1401, 'ExceptionHandler'
+ set_addr $P1401, control_1400
+ $P1401."handle_types"(58)
+ push_eh $P1401
+ .lex "self", self
+ .lex "$/", param_1402
.annotate "line", 408
- get_hll_global $P1408, ["PAST"], "Regex"
- find_lex $P1409, "$past"
-.annotate "line", 410
- get_hll_global $P1410, ["PAST"], "Regex"
- $P1411 = $P1410."new"("charclass" :named("pasttype"), "." :named("subtype"))
- find_lex $P1412, "$/"
- $P1413 = $P1408."new"($P1409, $P1411, $P1412 :named("node"))
+ new $P1403, "Undef"
+ .lex "$clist", $P1403
+.annotate "line", 409
+ new $P1404, "Undef"
+ .lex "$past", $P1404
+.annotate "line", 418
+ new $P1405, "Undef"
+ .lex "$i", $P1405
+.annotate "line", 419
+ new $P1406, "Undef"
+ .lex "$n", $P1406
.annotate "line", 408
- store_lex "$past", $P1413
- if_1399_end:
+ find_lex $P1407, "$/"
+ unless_null $P1407, vivify_323
+ new $P1407, "Hash"
+ vivify_323:
+ set $P1408, $P1407["cclass_elem"]
+ unless_null $P1408, vivify_324
+ new $P1408, "Undef"
+ vivify_324:
+ store_lex "$clist", $P1408
+.annotate "line", 409
+ find_lex $P1409, "$clist"
+ unless_null $P1409, vivify_325
+ new $P1409, "ResizablePMCArray"
+ vivify_325:
+ set $P1410, $P1409[0]
+ unless_null $P1410, vivify_326
+ new $P1410, "Undef"
+ vivify_326:
+ $P1411 = $P1410."ast"()
+ store_lex "$past", $P1411
+.annotate "line", 410
+ find_lex $P1415, "$past"
+ $P1416 = $P1415."negate"()
+ if $P1416, if_1414
+ set $P1413, $P1416
+ goto if_1414_end
+ if_1414:
+ find_lex $P1417, "$past"
+ $S1418 = $P1417."pasttype"()
+ iseq $I1419, $S1418, "subrule"
+ new $P1413, 'Integer'
+ set $P1413, $I1419
+ if_1414_end:
+ unless $P1413, if_1412_end
+.annotate "line", 411
+ find_lex $P1420, "$past"
+ $P1420."subtype"("zerowidth")
+.annotate "line", 412
+ get_hll_global $P1421, ["PAST"], "Regex"
+ find_lex $P1422, "$past"
.annotate "line", 414
- new $P1414, "Integer"
- assign $P1414, 1
- store_lex "$i", $P1414
-.annotate "line", 415
- find_lex $P1415, "$clist"
- set $N1416, $P1415
- new $P1417, 'Float'
- set $P1417, $N1416
- store_lex "$n", $P1417
-.annotate "line", 416
- new $P1448, 'ExceptionHandler'
- set_addr $P1448, loop1447_handler
- $P1448."handle_types"(65, 67, 66)
- push_eh $P1448
- loop1447_test:
- find_lex $P1418, "$i"
- set $N1419, $P1418
- find_lex $P1420, "$n"
- set $N1421, $P1420
- islt $I1422, $N1419, $N1421
- unless $I1422, loop1447_done
- loop1447_redo:
- .const 'Sub' $P1424 = "83_1261064016.27984"
- capture_lex $P1424
- $P1424()
- loop1447_next:
- goto loop1447_test
- loop1447_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1449, exception, 'type'
- eq $P1449, 65, loop1447_next
- eq $P1449, 67, loop1447_redo
- loop1447_done:
+ get_hll_global $P1423, ["PAST"], "Regex"
+ $P1424 = $P1423."new"("charclass" :named("pasttype"), "." :named("subtype"))
+ find_lex $P1425, "$/"
+ $P1426 = $P1421."new"($P1422, $P1424, $P1425 :named("node"))
+.annotate "line", 412
+ store_lex "$past", $P1426
+ if_1412_end:
+.annotate "line", 418
+ new $P1427, "Integer"
+ assign $P1427, 1
+ store_lex "$i", $P1427
+.annotate "line", 419
+ find_lex $P1428, "$clist"
+ set $N1429, $P1428
+ new $P1430, 'Float'
+ set $P1430, $N1429
+ store_lex "$n", $P1430
+.annotate "line", 420
+ new $P1461, 'ExceptionHandler'
+ set_addr $P1461, loop1460_handler
+ $P1461."handle_types"(65, 67, 66)
+ push_eh $P1461
+ loop1460_test:
+ find_lex $P1431, "$i"
+ set $N1432, $P1431
+ find_lex $P1433, "$n"
+ set $N1434, $P1433
+ islt $I1435, $N1432, $N1434
+ unless $I1435, loop1460_done
+ loop1460_redo:
+ .const 'Sub' $P1437 = "84_1266337348.54616"
+ capture_lex $P1437
+ $P1437()
+ loop1460_next:
+ goto loop1460_test
+ loop1460_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1462, exception, 'type'
+ eq $P1462, 65, loop1460_next
+ eq $P1462, 67, loop1460_redo
+ loop1460_done:
pop_eh
-.annotate "line", 427
- find_lex $P1450, "$/"
- find_lex $P1451, "$past"
- $P1452 = $P1450."!make"($P1451)
-.annotate "line", 403
- .return ($P1452)
- control_1387:
+.annotate "line", 431
+ find_lex $P1463, "$/"
+ find_lex $P1464, "$past"
+ $P1465 = $P1463."!make"($P1464)
+.annotate "line", 407
+ .return ($P1465)
+ control_1400:
.local pmc exception
.get_results (exception)
- getattribute $P1453, exception, "payload"
- .return ($P1453)
+ getattribute $P1466, exception, "payload"
+ .return ($P1466)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1423" :anon :subid("83_1261064016.27984") :outer("82_1261064016.27984")
-.annotate "line", 417
- new $P1425, "Undef"
- .lex "$ast", $P1425
- find_lex $P1426, "$i"
- set $I1427, $P1426
- find_lex $P1428, "$clist"
- unless_null $P1428, vivify_324
- new $P1428, "ResizablePMCArray"
- vivify_324:
- set $P1429, $P1428[$I1427]
- unless_null $P1429, vivify_325
- new $P1429, "Undef"
- vivify_325:
- $P1430 = $P1429."ast"()
- store_lex "$ast", $P1430
-.annotate "line", 418
- find_lex $P1432, "$ast"
- $P1433 = $P1432."negate"()
- if $P1433, if_1431
-.annotate "line", 423
- get_hll_global $P1440, ["PAST"], "Regex"
- find_lex $P1441, "$past"
- find_lex $P1442, "$ast"
- find_lex $P1443, "$/"
- $P1444 = $P1440."new"($P1441, $P1442, "alt" :named("pasttype"), $P1443 :named("node"))
- store_lex "$past", $P1444
+.sub "_block1436" :anon :subid("84_1266337348.54616") :outer("83_1266337348.54616")
+.annotate "line", 421
+ new $P1438, "Undef"
+ .lex "$ast", $P1438
+ find_lex $P1439, "$i"
+ set $I1440, $P1439
+ find_lex $P1441, "$clist"
+ unless_null $P1441, vivify_327
+ new $P1441, "ResizablePMCArray"
+ vivify_327:
+ set $P1442, $P1441[$I1440]
+ unless_null $P1442, vivify_328
+ new $P1442, "Undef"
+ vivify_328:
+ $P1443 = $P1442."ast"()
+ store_lex "$ast", $P1443
.annotate "line", 422
- goto if_1431_end
- if_1431:
-.annotate "line", 419
- find_lex $P1434, "$ast"
- $P1434."subtype"("zerowidth")
+ find_lex $P1445, "$ast"
+ $P1446 = $P1445."negate"()
+ if $P1446, if_1444
+.annotate "line", 427
+ get_hll_global $P1453, ["PAST"], "Regex"
+ find_lex $P1454, "$past"
+ find_lex $P1455, "$ast"
+ find_lex $P1456, "$/"
+ $P1457 = $P1453."new"($P1454, $P1455, "alt" :named("pasttype"), $P1456 :named("node"))
+ store_lex "$past", $P1457
+.annotate "line", 426
+ goto if_1444_end
+ if_1444:
+.annotate "line", 423
+ find_lex $P1447, "$ast"
+ $P1447."subtype"("zerowidth")
+.annotate "line", 424
+ get_hll_global $P1448, ["PAST"], "Regex"
+ find_lex $P1449, "$ast"
+ find_lex $P1450, "$past"
+ find_lex $P1451, "$/"
+ $P1452 = $P1448."new"($P1449, $P1450, "concat" :named("pasttype"), $P1451 :named("node"))
+ store_lex "$past", $P1452
+ if_1444_end:
+.annotate "line", 429
+ find_lex $P1458, "$i"
+ add $P1459, $P1458, 1
+ store_lex "$i", $P1459
.annotate "line", 420
- get_hll_global $P1435, ["PAST"], "Regex"
- find_lex $P1436, "$ast"
- find_lex $P1437, "$past"
- find_lex $P1438, "$/"
- $P1439 = $P1435."new"($P1436, $P1437, "concat" :named("pasttype"), $P1438 :named("node"))
- store_lex "$past", $P1439
- if_1431_end:
-.annotate "line", 425
- find_lex $P1445, "$i"
- add $P1446, $P1445, 1
- store_lex "$i", $P1446
-.annotate "line", 416
- .return ($P1446)
+ .return ($P1459)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "cclass_elem" :subid("84_1261064016.27984") :method :outer("11_1261064016.27984")
- .param pmc param_1457
-.annotate "line", 430
- .const 'Sub' $P1482 = "86_1261064016.27984"
- capture_lex $P1482
- .const 'Sub' $P1466 = "85_1261064016.27984"
- capture_lex $P1466
- new $P1456, 'ExceptionHandler'
- set_addr $P1456, control_1455
- $P1456."handle_types"(58)
- push_eh $P1456
+.sub "cclass_elem" :subid("85_1266337348.54616") :method :outer("11_1266337348.54616")
+ .param pmc param_1470
+.annotate "line", 434
+ .const 'Sub' $P1495 = "87_1266337348.54616"
+ capture_lex $P1495
+ .const 'Sub' $P1479 = "86_1266337348.54616"
+ capture_lex $P1479
+ new $P1469, 'ExceptionHandler'
+ set_addr $P1469, control_1468
+ $P1469."handle_types"(58)
+ push_eh $P1469
.lex "self", self
- .lex "$/", param_1457
-.annotate "line", 431
- new $P1458, "Undef"
- .lex "$str", $P1458
-.annotate "line", 432
- new $P1459, "Undef"
- .lex "$past", $P1459
-.annotate "line", 431
- new $P1460, "String"
- assign $P1460, ""
- store_lex "$str", $P1460
- find_lex $P1461, "$past"
-.annotate "line", 433
- find_lex $P1463, "$/"
- unless_null $P1463, vivify_326
- new $P1463, "Hash"
- vivify_326:
- set $P1464, $P1463["name"]
- unless_null $P1464, vivify_327
- new $P1464, "Undef"
- vivify_327:
- if $P1464, if_1462
+ .lex "$/", param_1470
+.annotate "line", 435
+ new $P1471, "Undef"
+ .lex "$str", $P1471
+.annotate "line", 436
+ new $P1472, "Undef"
+ .lex "$past", $P1472
+.annotate "line", 435
+ new $P1473, "String"
+ assign $P1473, ""
+ store_lex "$str", $P1473
+ find_lex $P1474, "$past"
.annotate "line", 437
- find_lex $P1477, "$/"
- unless_null $P1477, vivify_328
- new $P1477, "Hash"
- vivify_328:
- set $P1478, $P1477["charspec"]
- unless_null $P1478, vivify_329
- new $P1478, "Undef"
+ find_lex $P1476, "$/"
+ unless_null $P1476, vivify_329
+ new $P1476, "Hash"
vivify_329:
- defined $I1479, $P1478
- unless $I1479, for_undef_330
- iter $P1476, $P1478
- new $P1508, 'ExceptionHandler'
- set_addr $P1508, loop1507_handler
- $P1508."handle_types"(65, 67, 66)
- push_eh $P1508
- loop1507_test:
- unless $P1476, loop1507_done
- shift $P1480, $P1476
- loop1507_redo:
- .const 'Sub' $P1482 = "86_1261064016.27984"
- capture_lex $P1482
- $P1482($P1480)
- loop1507_next:
- goto loop1507_test
- loop1507_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1509, exception, 'type'
- eq $P1509, 65, loop1507_next
- eq $P1509, 67, loop1507_redo
- loop1507_done:
+ set $P1477, $P1476["name"]
+ unless_null $P1477, vivify_330
+ new $P1477, "Undef"
+ vivify_330:
+ if $P1477, if_1475
+.annotate "line", 441
+ find_lex $P1490, "$/"
+ unless_null $P1490, vivify_331
+ new $P1490, "Hash"
+ vivify_331:
+ set $P1491, $P1490["charspec"]
+ unless_null $P1491, vivify_332
+ new $P1491, "Undef"
+ vivify_332:
+ defined $I1492, $P1491
+ unless $I1492, for_undef_333
+ iter $P1489, $P1491
+ new $P1521, 'ExceptionHandler'
+ set_addr $P1521, loop1520_handler
+ $P1521."handle_types"(65, 67, 66)
+ push_eh $P1521
+ loop1520_test:
+ unless $P1489, loop1520_done
+ shift $P1493, $P1489
+ loop1520_redo:
+ .const 'Sub' $P1495 = "87_1266337348.54616"
+ capture_lex $P1495
+ $P1495($P1493)
+ loop1520_next:
+ goto loop1520_test
+ loop1520_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1522, exception, 'type'
+ eq $P1522, 65, loop1520_next
+ eq $P1522, 67, loop1520_redo
+ loop1520_done:
pop_eh
- for_undef_330:
-.annotate "line", 462
- get_hll_global $P1510, ["PAST"], "Regex"
- find_lex $P1511, "$str"
- find_lex $P1512, "$/"
- $P1513 = $P1510."new"($P1511, "enumcharlist" :named("pasttype"), $P1512 :named("node"))
- store_lex "$past", $P1513
-.annotate "line", 436
- goto if_1462_end
- if_1462:
-.annotate "line", 433
- .const 'Sub' $P1466 = "85_1261064016.27984"
- capture_lex $P1466
- $P1466()
- if_1462_end:
-.annotate "line", 464
- find_lex $P1514, "$past"
- find_lex $P1515, "$/"
- unless_null $P1515, vivify_342
- new $P1515, "Hash"
- vivify_342:
- set $P1516, $P1515["sign"]
- unless_null $P1516, vivify_343
- new $P1516, "Undef"
- vivify_343:
- set $S1517, $P1516
- iseq $I1518, $S1517, "-"
- $P1514."negate"($I1518)
-.annotate "line", 465
- find_lex $P1519, "$/"
- find_lex $P1520, "$past"
- $P1521 = $P1519."!make"($P1520)
-.annotate "line", 430
- .return ($P1521)
- control_1455:
+ for_undef_333:
+.annotate "line", 466
+ get_hll_global $P1523, ["PAST"], "Regex"
+ find_lex $P1524, "$str"
+ find_lex $P1525, "$/"
+ $P1526 = $P1523."new"($P1524, "enumcharlist" :named("pasttype"), $P1525 :named("node"))
+ store_lex "$past", $P1526
+.annotate "line", 440
+ goto if_1475_end
+ if_1475:
+.annotate "line", 437
+ .const 'Sub' $P1479 = "86_1266337348.54616"
+ capture_lex $P1479
+ $P1479()
+ if_1475_end:
+.annotate "line", 468
+ find_lex $P1527, "$past"
+ find_lex $P1528, "$/"
+ unless_null $P1528, vivify_345
+ new $P1528, "Hash"
+ vivify_345:
+ set $P1529, $P1528["sign"]
+ unless_null $P1529, vivify_346
+ new $P1529, "Undef"
+ vivify_346:
+ set $S1530, $P1529
+ iseq $I1531, $S1530, "-"
+ $P1527."negate"($I1531)
+.annotate "line", 469
+ find_lex $P1532, "$/"
+ find_lex $P1533, "$past"
+ $P1534 = $P1532."!make"($P1533)
+.annotate "line", 434
+ .return ($P1534)
+ control_1468:
.local pmc exception
.get_results (exception)
- getattribute $P1522, exception, "payload"
- .return ($P1522)
+ getattribute $P1535, exception, "payload"
+ .return ($P1535)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1481" :anon :subid("86_1261064016.27984") :outer("84_1261064016.27984")
- .param pmc param_1483
-.annotate "line", 437
- .const 'Sub' $P1489 = "87_1261064016.27984"
- capture_lex $P1489
- .lex "$_", param_1483
-.annotate "line", 438
- find_lex $P1486, "$_"
- unless_null $P1486, vivify_331
- new $P1486, "ResizablePMCArray"
- vivify_331:
- set $P1487, $P1486[1]
- unless_null $P1487, vivify_332
- new $P1487, "Undef"
- vivify_332:
- if $P1487, if_1485
-.annotate "line", 460
- find_lex $P1503, "$str"
- find_lex $P1504, "$_"
- unless_null $P1504, vivify_333
- new $P1504, "ResizablePMCArray"
- vivify_333:
- set $P1505, $P1504[0]
- unless_null $P1505, vivify_334
- new $P1505, "Undef"
+.sub "_block1494" :anon :subid("87_1266337348.54616") :outer("85_1266337348.54616")
+ .param pmc param_1496
+.annotate "line", 441
+ .const 'Sub' $P1502 = "88_1266337348.54616"
+ capture_lex $P1502
+ .lex "$_", param_1496
+.annotate "line", 442
+ find_lex $P1499, "$_"
+ unless_null $P1499, vivify_334
+ new $P1499, "ResizablePMCArray"
vivify_334:
- concat $P1506, $P1503, $P1505
- store_lex "$str", $P1506
- set $P1484, $P1506
-.annotate "line", 438
- goto if_1485_end
- if_1485:
- .const 'Sub' $P1489 = "87_1261064016.27984"
- capture_lex $P1489
- $P1502 = $P1489()
- set $P1484, $P1502
- if_1485_end:
-.annotate "line", 437
- .return ($P1484)
+ set $P1500, $P1499[1]
+ unless_null $P1500, vivify_335
+ new $P1500, "Undef"
+ vivify_335:
+ if $P1500, if_1498
+.annotate "line", 464
+ find_lex $P1516, "$str"
+ find_lex $P1517, "$_"
+ unless_null $P1517, vivify_336
+ new $P1517, "ResizablePMCArray"
+ vivify_336:
+ set $P1518, $P1517[0]
+ unless_null $P1518, vivify_337
+ new $P1518, "Undef"
+ vivify_337:
+ concat $P1519, $P1516, $P1518
+ store_lex "$str", $P1519
+ set $P1497, $P1519
+.annotate "line", 442
+ goto if_1498_end
+ if_1498:
+ .const 'Sub' $P1502 = "88_1266337348.54616"
+ capture_lex $P1502
+ $P1515 = $P1502()
+ set $P1497, $P1515
+ if_1498_end:
+.annotate "line", 441
+ .return ($P1497)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1488" :anon :subid("87_1261064016.27984") :outer("86_1261064016.27984")
-.annotate "line", 439
- new $P1490, "Undef"
- .lex "$a", $P1490
-.annotate "line", 440
- new $P1491, "Undef"
- .lex "$b", $P1491
-.annotate "line", 441
- new $P1492, "Undef"
- .lex "$c", $P1492
-.annotate "line", 439
- find_lex $P1493, "$_"
- unless_null $P1493, vivify_335
- new $P1493, "ResizablePMCArray"
- vivify_335:
- set $P1494, $P1493[0]
- unless_null $P1494, vivify_336
- new $P1494, "Undef"
- vivify_336:
- store_lex "$a", $P1494
-.annotate "line", 440
- find_lex $P1495, "$_"
- unless_null $P1495, vivify_337
- new $P1495, "ResizablePMCArray"
- vivify_337:
- set $P1496, $P1495[1]
- unless_null $P1496, vivify_338
- new $P1496, "ResizablePMCArray"
+.sub "_block1501" :anon :subid("88_1266337348.54616") :outer("87_1266337348.54616")
+.annotate "line", 443
+ new $P1503, "Undef"
+ .lex "$a", $P1503
+.annotate "line", 444
+ new $P1504, "Undef"
+ .lex "$b", $P1504
+.annotate "line", 445
+ new $P1505, "Undef"
+ .lex "$c", $P1505
+.annotate "line", 443
+ find_lex $P1506, "$_"
+ unless_null $P1506, vivify_338
+ new $P1506, "ResizablePMCArray"
vivify_338:
- set $P1497, $P1496[0]
- unless_null $P1497, vivify_339
- new $P1497, "Undef"
+ set $P1507, $P1506[0]
+ unless_null $P1507, vivify_339
+ new $P1507, "Undef"
vivify_339:
- store_lex "$b", $P1497
-.annotate "line", 441
+ store_lex "$a", $P1507
+.annotate "line", 444
+ find_lex $P1508, "$_"
+ unless_null $P1508, vivify_340
+ new $P1508, "ResizablePMCArray"
+ vivify_340:
+ set $P1509, $P1508[1]
+ unless_null $P1509, vivify_341
+ new $P1509, "ResizablePMCArray"
+ vivify_341:
+ set $P1510, $P1509[0]
+ unless_null $P1510, vivify_342
+ new $P1510, "Undef"
+ vivify_342:
+ store_lex "$b", $P1510
+.annotate "line", 445
$P0 = find_lex '$a'
$S0 = $P0
@@ -11646,142 +11683,142 @@
inc $I0
goto cclass_loop
cclass_done:
- $P1498 = box $S2
+ $P1511 = box $S2
- store_lex "$c", $P1498
-.annotate "line", 458
- find_lex $P1499, "$str"
- find_lex $P1500, "$c"
- concat $P1501, $P1499, $P1500
- store_lex "$str", $P1501
-.annotate "line", 438
- .return ($P1501)
+ store_lex "$c", $P1511
+.annotate "line", 462
+ find_lex $P1512, "$str"
+ find_lex $P1513, "$c"
+ concat $P1514, $P1512, $P1513
+ store_lex "$str", $P1514
+.annotate "line", 442
+ .return ($P1514)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1465" :anon :subid("85_1261064016.27984") :outer("84_1261064016.27984")
-.annotate "line", 434
- new $P1467, "Undef"
- .lex "$name", $P1467
- find_lex $P1468, "$/"
- unless_null $P1468, vivify_340
- new $P1468, "Hash"
- vivify_340:
- set $P1469, $P1468["name"]
- unless_null $P1469, vivify_341
- new $P1469, "Undef"
- vivify_341:
- set $S1470, $P1469
- new $P1471, 'String'
- set $P1471, $S1470
- store_lex "$name", $P1471
-.annotate "line", 435
- get_hll_global $P1472, ["PAST"], "Regex"
- find_lex $P1473, "$name"
- find_lex $P1474, "$/"
- $P1475 = $P1472."new"($P1473, "subrule" :named("pasttype"), "method" :named("subtype"), $P1474 :named("node"))
- store_lex "$past", $P1475
-.annotate "line", 433
- .return ($P1475)
+.sub "_block1478" :anon :subid("86_1266337348.54616") :outer("85_1266337348.54616")
+.annotate "line", 438
+ new $P1480, "Undef"
+ .lex "$name", $P1480
+ find_lex $P1481, "$/"
+ unless_null $P1481, vivify_343
+ new $P1481, "Hash"
+ vivify_343:
+ set $P1482, $P1481["name"]
+ unless_null $P1482, vivify_344
+ new $P1482, "Undef"
+ vivify_344:
+ set $S1483, $P1482
+ new $P1484, 'String'
+ set $P1484, $S1483
+ store_lex "$name", $P1484
+.annotate "line", 439
+ get_hll_global $P1485, ["PAST"], "Regex"
+ find_lex $P1486, "$name"
+ find_lex $P1487, "$/"
+ $P1488 = $P1485."new"($P1486, "subrule" :named("pasttype"), "method" :named("subtype"), $P1487 :named("node"))
+ store_lex "$past", $P1488
+.annotate "line", 437
+ .return ($P1488)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "mod_internal" :subid("88_1261064016.27984") :method :outer("11_1261064016.27984")
- .param pmc param_1526
-.annotate "line", 468
- new $P1525, 'ExceptionHandler'
- set_addr $P1525, control_1524
- $P1525."handle_types"(58)
- push_eh $P1525
- .lex "self", self
- .lex "$/", param_1526
-.annotate "line", 469
- new $P1527, "Hash"
- .lex "%mods", $P1527
-.annotate "line", 470
- new $P1528, "Undef"
- .lex "$n", $P1528
-.annotate "line", 469
- get_global $P1529, "@MODIFIERS"
- unless_null $P1529, vivify_344
- new $P1529, "ResizablePMCArray"
- vivify_344:
- set $P1530, $P1529[0]
- unless_null $P1530, vivify_345
- new $P1530, "Undef"
- vivify_345:
- store_lex "%mods", $P1530
-.annotate "line", 470
- find_lex $P1533, "$/"
- unless_null $P1533, vivify_346
- new $P1533, "Hash"
- vivify_346:
- set $P1534, $P1533["n"]
- unless_null $P1534, vivify_347
- new $P1534, "ResizablePMCArray"
+.sub "mod_internal" :subid("89_1266337348.54616") :method :outer("11_1266337348.54616")
+ .param pmc param_1539
+.annotate "line", 472
+ new $P1538, 'ExceptionHandler'
+ set_addr $P1538, control_1537
+ $P1538."handle_types"(58)
+ push_eh $P1538
+ .lex "self", self
+ .lex "$/", param_1539
+.annotate "line", 473
+ new $P1540, "Hash"
+ .lex "%mods", $P1540
+.annotate "line", 474
+ new $P1541, "Undef"
+ .lex "$n", $P1541
+.annotate "line", 473
+ get_global $P1542, "@MODIFIERS"
+ unless_null $P1542, vivify_347
+ new $P1542, "ResizablePMCArray"
vivify_347:
- set $P1535, $P1534[0]
- unless_null $P1535, vivify_348
- new $P1535, "Undef"
+ set $P1543, $P1542[0]
+ unless_null $P1543, vivify_348
+ new $P1543, "Undef"
vivify_348:
- set $S1536, $P1535
- isgt $I1537, $S1536, ""
- if $I1537, if_1532
- new $P1542, "Integer"
- assign $P1542, 1
- set $P1531, $P1542
- goto if_1532_end
- if_1532:
- find_lex $P1538, "$/"
- unless_null $P1538, vivify_349
- new $P1538, "Hash"
+ store_lex "%mods", $P1543
+.annotate "line", 474
+ find_lex $P1546, "$/"
+ unless_null $P1546, vivify_349
+ new $P1546, "Hash"
vivify_349:
- set $P1539, $P1538["n"]
- unless_null $P1539, vivify_350
- new $P1539, "ResizablePMCArray"
+ set $P1547, $P1546["n"]
+ unless_null $P1547, vivify_350
+ new $P1547, "ResizablePMCArray"
vivify_350:
- set $P1540, $P1539[0]
- unless_null $P1540, vivify_351
- new $P1540, "Undef"
+ set $P1548, $P1547[0]
+ unless_null $P1548, vivify_351
+ new $P1548, "Undef"
vivify_351:
- set $N1541, $P1540
- new $P1531, 'Float'
- set $P1531, $N1541
- if_1532_end:
- store_lex "$n", $P1531
-.annotate "line", 471
- find_lex $P1543, "$n"
- find_lex $P1544, "$/"
- unless_null $P1544, vivify_352
- new $P1544, "Hash"
+ set $S1549, $P1548
+ isgt $I1550, $S1549, ""
+ if $I1550, if_1545
+ new $P1555, "Integer"
+ assign $P1555, 1
+ set $P1544, $P1555
+ goto if_1545_end
+ if_1545:
+ find_lex $P1551, "$/"
+ unless_null $P1551, vivify_352
+ new $P1551, "Hash"
vivify_352:
- set $P1545, $P1544["mod_ident"]
- unless_null $P1545, vivify_353
- new $P1545, "Hash"
+ set $P1552, $P1551["n"]
+ unless_null $P1552, vivify_353
+ new $P1552, "ResizablePMCArray"
vivify_353:
- set $P1546, $P1545["sym"]
- unless_null $P1546, vivify_354
- new $P1546, "Undef"
+ set $P1553, $P1552[0]
+ unless_null $P1553, vivify_354
+ new $P1553, "Undef"
vivify_354:
- set $S1547, $P1546
- find_lex $P1548, "%mods"
- unless_null $P1548, vivify_355
- new $P1548, "Hash"
- store_lex "%mods", $P1548
+ set $N1554, $P1553
+ new $P1544, 'Float'
+ set $P1544, $N1554
+ if_1545_end:
+ store_lex "$n", $P1544
+.annotate "line", 475
+ find_lex $P1556, "$n"
+ find_lex $P1557, "$/"
+ unless_null $P1557, vivify_355
+ new $P1557, "Hash"
vivify_355:
- set $P1548[$S1547], $P1543
+ set $P1558, $P1557["mod_ident"]
+ unless_null $P1558, vivify_356
+ new $P1558, "Hash"
+ vivify_356:
+ set $P1559, $P1558["sym"]
+ unless_null $P1559, vivify_357
+ new $P1559, "Undef"
+ vivify_357:
+ set $S1560, $P1559
+ find_lex $P1561, "%mods"
+ unless_null $P1561, vivify_358
+ new $P1561, "Hash"
+ store_lex "%mods", $P1561
+ vivify_358:
+ set $P1561[$S1560], $P1556
+.annotate "line", 476
+ find_lex $P1562, "$/"
+ $P1563 = $P1562."!make"(0)
.annotate "line", 472
- find_lex $P1549, "$/"
- $P1550 = $P1549."!make"(0)
-.annotate "line", 468
- .return ($P1550)
- control_1524:
+ .return ($P1563)
+ control_1537:
.local pmc exception
.get_results (exception)
- getattribute $P1551, exception, "payload"
- .return ($P1551)
+ getattribute $P1564, exception, "payload"
+ .return ($P1564)
.end
# .include 'src/cheats/p6regex-grammar.pir'
Modified: branches/rm_cflags/include/parrot/context.h
==============================================================================
--- branches/rm_cflags/include/parrot/context.h Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/include/parrot/context.h Tue Feb 16 21:05:51 2010 (r44046)
@@ -1,5 +1,5 @@
/* context.h
- * Copyright (C) 2009, Parrot Foundation.
+ * Copyright (C) 2009-2010, Parrot Foundation.
* SVN Info
* $Id$
* Overview:
@@ -225,12 +225,6 @@
PARROT_EXPORT
PARROT_CAN_RETURN_NULL
-opcode_t* Parrot_pcc_get_results_func(PARROT_INTERP, ARGIN(PMC *ctx))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_CAN_RETURN_NULL
PMC* Parrot_pcc_get_results_signature_func(PARROT_INTERP, ARGIN(PMC *ctx))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -335,13 +329,6 @@
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_pcc_set_results_func(PARROT_INTERP,
- ARGIN(PMC *ctx),
- ARGIN_NULLOK(opcode_t *pc))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
void Parrot_pcc_set_results_signature_func(PARROT_INTERP,
ARGIN(PMC *ctx),
ARGIN_NULLOK(PMC *sig))
@@ -465,9 +452,6 @@
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(ctx))
-#define ASSERT_ARGS_Parrot_pcc_get_results_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_get_results_signature_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -523,9 +507,6 @@
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(ctx))
-#define ASSERT_ARGS_Parrot_pcc_set_results_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(ctx))
#define ASSERT_ARGS_Parrot_pcc_set_results_signature_func \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -567,9 +548,6 @@
# define Parrot_pcc_get_continuation(i, c) (__C(c)->current_cont)
# define Parrot_pcc_set_continuation(i, c, value) (__C(c)->current_cont = (value))
-# define Parrot_pcc_get_results(i, c) (__C(c)->current_results)
-# define Parrot_pcc_set_results(i, c, value) (__C(c)->current_results = (value))
-
# define Parrot_pcc_get_caller_ctx(i, c) (__C(c)->caller_ctx)
# define Parrot_pcc_set_caller_ctx(i, c, value) (__C(c)->caller_ctx = (value))
@@ -634,9 +612,6 @@
# define Parrot_pcc_get_continuation(i, c) Parrot_pcc_get_continuation_func((i), (c))
# define Parrot_pcc_set_continuation(i, c, value) Parrot_pcc_set_continuation_func((i), (c), (value))
-# define Parrot_pcc_get_results(i, c) Parrot_pcc_get_results_func((i), (c))
-# define Parrot_pcc_set_results(i, c, value) Parrot_pcc_set_results_func((i), (c), (value))
-
# define Parrot_pcc_get_caller_ctx(i, c) Parrot_pcc_get_caller_ctx_func((i), (c))
# define Parrot_pcc_set_caller_ctx(i, c, value) Parrot_pcc_set_caller_ctx_func((i), (c), (value))
Modified: branches/rm_cflags/include/parrot/gc_api.h
==============================================================================
--- branches/rm_cflags/include/parrot/gc_api.h Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/include/parrot/gc_api.h Tue Feb 16 21:05:51 2010 (r44046)
@@ -301,8 +301,6 @@
int Parrot_gc_total_sized_buffers(PARROT_INTERP)
__attribute__nonnull__(1);
-STRING *Parrot_gc_sys_name(PARROT_INTERP);
-
#define ASSERT_ARGS_Parrot_block_GC_mark __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_block_GC_sweep __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/rm_cflags/include/parrot/imcc.h
==============================================================================
--- branches/rm_cflags/include/parrot/imcc.h Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/include/parrot/imcc.h Tue Feb 16 21:05:51 2010 (r44046)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2008, Parrot Foundation.
+ * Copyright (C) 2007-2010, Parrot Foundation.
* $Id$
*/
@@ -8,7 +8,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, INTVAL *core);
+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);
#endif /* PARROT_IMCC_H_GUARD */
Modified: branches/rm_cflags/lib/Parrot/Configure/Messages.pm
==============================================================================
--- branches/rm_cflags/lib/Parrot/Configure/Messages.pm Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/lib/Parrot/Configure/Messages.pm Tue Feb 16 21:05:51 2010 (r44046)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
package Parrot::Configure::Messages;
@@ -17,7 +17,7 @@
my $parrot_version = shift;
print <<"END";
Parrot Version $parrot_version Configure 2.0
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
Hello, I'm Configure. My job is to poke and prod your system to figure out
how to build Parrot. The process is completely automated, unless you passed in
Modified: branches/rm_cflags/runtime/parrot/library/P6object.pir
==============================================================================
--- branches/rm_cflags/runtime/parrot/library/P6object.pir Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/runtime/parrot/library/P6object.pir Tue Feb 16 21:05:51 2010 (r44046)
@@ -819,7 +819,7 @@
# If this fails, and we want Any, and it's something form outside
# of the Perl 6 world, we'd best just accept it.
unless $S0 == 'Any' goto end
- $I0 = isa topicwhat, 'Perl6Object'
+ $I0 = isa topicwhat, 'Mu'
unless $I0 goto accept_anyway
$I0 = 0
goto end
Modified: branches/rm_cflags/src/call/args.c
==============================================================================
--- branches/rm_cflags/src/call/args.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/call/args.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -996,15 +996,17 @@
ARGIN(PMC *raw_sig), ARGIN(void *arg_info), ARGIN(struct pcc_set_funcs *accessor))
{
ASSERT_ARGS(fill_params)
- PMC *named_used_list = PMCNULL;
INTVAL *raw_params;
- const INTVAL param_count = VTABLE_elements(interp, raw_sig);
+ PMC *named_used_list = PMCNULL;
+ INTVAL param_count = 0;
INTVAL param_index = 0;
INTVAL arg_index = 0;
INTVAL named_count = 0;
INTVAL err_check = 0;
INTVAL positional_args;
+ GETATTR_FixedIntegerArray_size(interp, raw_sig, param_count);
+
/* Check if we should be throwing errors. This is configured separately
* for parameters and return values. */
if (PARROT_ERRORS_test(interp, PARROT_ERRORS_PARAM_COUNT_FLAG))
@@ -1604,7 +1606,7 @@
if (PMC_IS_NULL(call_object)) {
/* If the return_count is 0, then there are no return values waiting to
* fill the results, so no error. */
- if (return_count > 0 && (err_check))
+ if (return_count > 0 && err_check)
Parrot_ex_throw_from_c_args(interp, NULL,
EXCEPTION_INVALID_OPERATION,
"too few returns: 0 passed, %d expected", return_count);
@@ -2098,8 +2100,7 @@
ARGIN(PMC *raw_sig), ARGIN(opcode_t *raw_returns))
{
ASSERT_ARGS(Parrot_pcc_fill_returns_from_op)
- const INTVAL raw_return_count = VTABLE_elements(interp, raw_sig);
- INTVAL err_check = 0;
+
static pcc_get_funcs function_pointers = {
(intval_func_t)intval_arg_from_op,
(numval_func_t)numval_arg_from_op,
@@ -2112,20 +2113,21 @@
(pmc_func_t)pmc_constant_from_op,
};
+ INTVAL raw_return_count = 0;
- /* Check if we should be throwing errors. This is configured separately
- * for parameters and return values. */
- if (PARROT_ERRORS_test(interp, PARROT_ERRORS_RESULT_COUNT_FLAG))
- err_check = 1;
+ GETATTR_FixedIntegerArray_size(interp, raw_sig, raw_return_count);
/* A null call object is fine if there are no arguments and no returns. */
if (PMC_IS_NULL(call_object)) {
- if (raw_return_count > 0) {
- if (err_check)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
- "too many return values: %d passed, 0 expected",
- raw_return_count);
- }
+
+ /* Check if we should be throwing errors. This is configured separately
+ * for parameters and return values. */
+ if (raw_return_count > 0
+ && PARROT_ERRORS_test(interp, PARROT_ERRORS_RESULT_COUNT_FLAG))
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_OPERATION,
+ "too many return values: %d passed, 0 expected",
+ raw_return_count);
return;
}
@@ -2133,6 +2135,8 @@
return;
}
+
+
/*
=item C<void Parrot_pcc_fill_returns_from_continuation(PARROT_INTERP, PMC
@@ -2152,7 +2156,7 @@
{
ASSERT_ARGS(Parrot_pcc_fill_returns_from_continuation)
const INTVAL raw_return_count = VTABLE_elements(interp, raw_sig);
- INTVAL err_check = 0;
+
static pcc_get_funcs function_pointers = {
(intval_func_t)intval_arg_from_continuation,
(numval_func_t)numval_arg_from_continuation,
@@ -2165,20 +2169,17 @@
(pmc_func_t)pmc_arg_from_continuation,
};
-
- /* Check if we should be throwing errors. This is configured separately
- * for parameters and return values. */
- if (PARROT_ERRORS_test(interp, PARROT_ERRORS_RESULT_COUNT_FLAG))
- err_check = 1;
-
/* A null call object is fine if there are no arguments and no returns. */
if (PMC_IS_NULL(call_object)) {
- if (raw_return_count > 0) {
- if (err_check)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
- "too many return values: %d passed, 0 expected",
- raw_return_count);
- }
+
+ /* Check if we should be throwing errors. This is configured separately
+ * for parameters and return values. */
+ if (raw_return_count > 0
+ && PARROT_ERRORS_test(interp, PARROT_ERRORS_RESULT_COUNT_FLAG))
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_OPERATION,
+ "too many return values: %d passed, 0 expected",
+ raw_return_count);
return;
}
@@ -2187,6 +2188,7 @@
return;
}
+
/*
=item C<void Parrot_pcc_fill_returns_from_c_args(PARROT_INTERP, PMC
@@ -2213,7 +2215,6 @@
ASSERT_ARGS(Parrot_pcc_fill_returns_from_c_args)
va_list args;
INTVAL raw_return_count = 0;
- INTVAL err_check = 0;
PMC *raw_sig = PMCNULL;
PMC *invalid_sig = PMCNULL;
@@ -2230,21 +2231,20 @@
};
parse_signature_string(interp, signature, &raw_sig, &invalid_sig);
+
if (!PMC_IS_NULL(invalid_sig))
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
"parameters should not be included in the return signature");
raw_return_count = VTABLE_elements(interp, raw_sig);
- /* Check if we should be throwing errors. This is configured separately
- * for parameters and return values. */
- if (PARROT_ERRORS_test(interp, PARROT_ERRORS_RESULT_COUNT_FLAG))
- err_check = 1;
-
/* A null call object is fine if there are no arguments and no returns. */
if (PMC_IS_NULL(call_object)) {
- if (raw_return_count > 0)
- if (err_check)
+
+ /* Check if we should be throwing errors. This is configured separately
+ * for parameters and return values. */
+ if (raw_return_count > 0
+ && PARROT_ERRORS_test(interp, PARROT_ERRORS_RESULT_COUNT_FLAG))
Parrot_ex_throw_from_c_args(interp, NULL,
EXCEPTION_INVALID_OPERATION,
"too many return values: %d passed, 0 expected",
@@ -2257,6 +2257,7 @@
va_end(args);
}
+
/*
=item C<static void parse_signature_string(PARROT_INTERP, const char *signature,
Modified: branches/rm_cflags/src/call/context.c
==============================================================================
--- branches/rm_cflags/src/call/context.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/call/context.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -315,7 +315,6 @@
if (!PMC_IS_NULL(ctx->current_sub))
return;
- ctx->current_results = NULL;
ctx->results_signature = NULL;
ctx->lex_pad = PMCNULL;
ctx->outer_ctx = NULL;
Modified: branches/rm_cflags/src/call/context_accessors.c
==============================================================================
--- branches/rm_cflags/src/call/context_accessors.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/call/context_accessors.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -471,37 +471,6 @@
/*
-=item C<opcode_t* Parrot_pcc_get_results_func(PARROT_INTERP, PMC *ctx)>
-
-=item C<void Parrot_pcc_set_results_func(PARROT_INTERP, PMC *ctx, opcode_t *pc)>
-
-Get/set ptr into code with get_results opcode.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_CAN_RETURN_NULL
-opcode_t*
-Parrot_pcc_get_results_func(PARROT_INTERP, ARGIN(PMC *ctx))
-{
- ASSERT_ARGS(Parrot_pcc_get_results_func)
- Parrot_Context const *c = get_context_struct_fast(interp, ctx);
- return c->current_results;
-}
-
-PARROT_EXPORT
-void
-Parrot_pcc_set_results_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(opcode_t *pc))
-{
- ASSERT_ARGS(Parrot_pcc_set_results_func)
- Parrot_Context *c = get_context_struct_fast(interp, ctx);
- c->current_results = pc;
-}
-
-/*
-
=item C<PMC* Parrot_pcc_get_results_signature_func(PARROT_INTERP, PMC *ctx)>
=item C<void Parrot_pcc_set_results_signature_func(PARROT_INTERP, PMC *ctx, PMC
Modified: branches/rm_cflags/src/debug.c
==============================================================================
--- branches/rm_cflags/src/debug.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/debug.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -555,6 +555,9 @@
=item C<static const DebuggerCmd * get_cmd(const char **cmd)>
+Parse the debuggger command indicated by C<**cmd>. Return a pointer to the
+matching function for known commands, or a NULL pointer otherwise.
+
=cut
*/
@@ -610,6 +613,8 @@
=item C<static const char * skip_whitespace(const char *cmd)>
+Return a pointer to the first non-whitespace character in C<cmd>.
+
=cut
*/
@@ -629,6 +634,8 @@
=item C<static unsigned long get_uint(const char **cmd, unsigned int def)>
+Get an unsigned int from C<**cmd>.
+
=cut
*/
@@ -652,6 +659,8 @@
=item C<static unsigned long get_ulong(const char **cmd, unsigned long def)>
+Get an unsigned long from C<**cmd>.
+
=cut
*/
@@ -1265,6 +1274,8 @@
=item C<static unsigned short condition_regtype(const char *cmd)>
+Return the type of the register represented by C<*cmd>.
+
=cut
*/
@@ -1627,6 +1638,8 @@
=item C<static void list_breakpoints(PDB_t *pdb)>
+Print all breakpoints for this debugger session to C<pdb->debugger>.
+
=cut
*/
Modified: branches/rm_cflags/src/embed.c
==============================================================================
--- branches/rm_cflags/src/embed.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/embed.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
Modified: branches/rm_cflags/src/gc/alloc_resources.c
==============================================================================
--- branches/rm_cflags/src/gc/alloc_resources.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/gc/alloc_resources.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -627,33 +627,6 @@
/*
-=item C<size_t aligned_size(const Buffer *buffer, size_t len)>
-
-Determines the size of Buffer C<buffer> which has nominal length C<len>.
-The actual size in RAM of the Buffer might be different because of
-alignment issues.
-
-=cut
-
-*/
-
-PARROT_PURE_FUNCTION
-PARROT_WARN_UNUSED_RESULT
-size_t
-aligned_size(ARGIN(const Buffer *buffer), size_t len)
-{
- ASSERT_ARGS(aligned_size)
- if (PObj_is_COWable_TEST(buffer))
- len += sizeof (void*);
- if (PObj_aligned_TEST(buffer))
- len = (len + BUFFER_ALIGN_1) & BUFFER_ALIGN_MASK;
- else
- len = (len + WORD_ALIGN_1) & WORD_ALIGN_MASK;
- return len;
-}
-
-/*
-
=item C<char * aligned_mem(const Buffer *buffer, char *mem)>
Returns a pointer to the aligned allocated storage for Buffer C<buffer>,
@@ -670,6 +643,10 @@
aligned_mem(ARGIN(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))
@@ -677,6 +654,9 @@
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);
return mem;
}
@@ -1160,6 +1140,31 @@
/*
+=item C<static void free_memory_pool(Variable_Size_Pool *pool)>
+
+Frees a memory pool; helper function for C<Parrot_gc_destroy_memory_pools>.
+
+=cut
+
+*/
+
+static void
+free_memory_pool(Variable_Size_Pool *pool)
+{
+ Memory_Block *cur_block = pool->top_block;
+
+ while (cur_block) {
+ Memory_Block * const next_block = cur_block->prev;
+ mem_internal_free(cur_block);
+ cur_block = next_block;
+ }
+
+ mem_internal_free(pool);
+}
+
+
+/*
+
=item C<void Parrot_gc_destroy_memory_pools(PARROT_INTERP, Memory_Pools * const
mem_pools)>
@@ -1176,24 +1181,9 @@
ARGIN(Memory_Pools * const mem_pools))
{
ASSERT_ARGS(Parrot_gc_destroy_memory_pools)
- int i;
-
- for (i = 0; i < 2; i++) {
- Variable_Size_Pool * const pool = i ?
- mem_pools->constant_string_pool :
- mem_pools->memory_pool;
- Memory_Block *cur_block;
-
- cur_block = pool->top_block;
-
- while (cur_block) {
- Memory_Block * const next_block = cur_block->prev;
- mem_internal_free(cur_block);
- cur_block = next_block;
- }
- mem_internal_free(pool);
- }
+ free_memory_pool(mem_pools->constant_string_pool);
+ free_memory_pool(mem_pools->memory_pool);
}
/*
Modified: branches/rm_cflags/src/gc/api.c
==============================================================================
--- branches/rm_cflags/src/gc/api.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/gc/api.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -997,7 +997,8 @@
PARROT_CANNOT_RETURN_NULL
STRING *
-Parrot_gc_sys_name(PARROT_INTERP) {
+Parrot_gc_sys_name(PARROT_INTERP)
+{
ASSERT_ARGS(Parrot_gc_sys_name)
STRING *name = NULL;
switch (interp->gc_sys->sys_type) {
Modified: branches/rm_cflags/src/gc/gc_inf.c
==============================================================================
--- branches/rm_cflags/src/gc/gc_inf.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/gc/gc_inf.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -60,46 +60,60 @@
__attribute__nonnull__(2)
FUNC_MODIFIES(*buffer);
+PARROT_CAN_RETURN_NULL
static Buffer* gc_inf_allocate_bufferlike_header(PARROT_INTERP, size_t size)
__attribute__nonnull__(1);
+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_pmc_attributes(PARROT_INTERP, PMC *pmc)
- __attribute__nonnull__(1);
+PARROT_CAN_RETURN_NULL
+static void* gc_inf_allocate_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*pmc);
+PARROT_CAN_RETURN_NULL
static PMC* gc_inf_allocate_pmc_header(PARROT_INTERP, UINTVAL flags)
__attribute__nonnull__(1);
+PARROT_CAN_RETURN_NULL
static STRING* gc_inf_allocate_string_header(PARROT_INTERP, UINTVAL flags)
__attribute__nonnull__(1);
static void gc_inf_allocate_string_storage(PARROT_INTERP,
- STRING *str,
+ ARGMOD(STRING *str),
size_t size)
- __attribute__nonnull__(1);
+ __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_free_bufferlike_header(PARROT_INTERP,
- Buffer *b,
+ ARGIN_NULLOK(Buffer *b),
size_t size)
__attribute__nonnull__(1);
static void gc_inf_free_fixed_size_storage(PARROT_INTERP,
size_t size,
- void *data)
- __attribute__nonnull__(1);
+ ARGMOD(void *data))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*data);
-static void gc_inf_free_pmc_attributes(PARROT_INTERP, PMC *pmc)
- __attribute__nonnull__(1);
+static void gc_inf_free_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*pmc);
-static void gc_inf_free_pmc_header(PARROT_INTERP, PMC *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, STRING *s)
+static void gc_inf_free_string_header(PARROT_INTERP,
+ ARGIN_NULLOK(STRING *s))
__attribute__nonnull__(1);
PARROT_CANNOT_RETURN_NULL
@@ -133,9 +147,11 @@
FUNC_MODIFIES(*buffer);
static void gc_inf_reallocate_string_storage(PARROT_INTERP,
- STRING *str,
+ ARGMOD(STRING *str),
size_t size)
- __attribute__nonnull__(1);
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*str);
#define ASSERT_ARGS_gc_inf_add_free_object __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(mem_pools) \
@@ -156,23 +172,27 @@
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_gc_inf_allocate_pmc_attributes \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ 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))
#define ASSERT_ARGS_gc_inf_allocate_string_storage \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ 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))
#define ASSERT_ARGS_gc_inf_free_fixed_size_storage \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(data))
#define ASSERT_ARGS_gc_inf_free_pmc_attributes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ 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 = (\
@@ -194,7 +214,8 @@
, PARROT_ASSERT_ARG(buffer))
#define ASSERT_ARGS_gc_inf_reallocate_string_storage \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(str))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -424,6 +445,7 @@
*/
+PARROT_CAN_RETURN_NULL
static PMC*
gc_inf_allocate_pmc_header(PARROT_INTERP, UINTVAL flags)
{
@@ -432,14 +454,14 @@
}
static void
-gc_inf_free_pmc_header(PARROT_INTERP, PMC *pmc)
+gc_inf_free_pmc_header(PARROT_INTERP, ARGIN_NULLOK(PMC *pmc))
{
ASSERT_ARGS(gc_inf_free_pmc_header)
if (pmc)
free(pmc);
}
-
+PARROT_CAN_RETURN_NULL
static STRING*
gc_inf_allocate_string_header(PARROT_INTERP, UINTVAL flags)
{
@@ -448,14 +470,14 @@
}
static void
-gc_inf_free_string_header(PARROT_INTERP, STRING *s)
+gc_inf_free_string_header(PARROT_INTERP, ARGIN_NULLOK(STRING *s))
{
ASSERT_ARGS(gc_inf_free_string_header)
if (s)
free(s);
}
-
+PARROT_CAN_RETURN_NULL
static Buffer*
gc_inf_allocate_bufferlike_header(PARROT_INTERP, size_t size)
{
@@ -464,16 +486,16 @@
}
static void
-gc_inf_free_bufferlike_header(PARROT_INTERP, Buffer *b, size_t size)
+gc_inf_free_bufferlike_header(PARROT_INTERP, ARGIN_NULLOK(Buffer *b), size_t size)
{
ASSERT_ARGS(gc_inf_free_bufferlike_header)
if (b)
free(b);
}
-
+PARROT_CAN_RETURN_NULL
static void*
-gc_inf_allocate_pmc_attributes(PARROT_INTERP, PMC *pmc)
+gc_inf_allocate_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
{
ASSERT_ARGS(gc_inf_allocate_pmc_attributes)
const size_t attr_size = pmc->vtable->attr_size;
@@ -482,7 +504,7 @@
}
static void
-gc_inf_free_pmc_attributes(PARROT_INTERP, PMC *pmc)
+gc_inf_free_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc))
{
ASSERT_ARGS(gc_inf_free_pmc_attributes)
if (PMC_data(pmc))
@@ -491,7 +513,7 @@
static void
-gc_inf_allocate_string_storage(PARROT_INTERP, STRING *str, size_t size)
+gc_inf_allocate_string_storage(PARROT_INTERP, ARGMOD(STRING *str), size_t size)
{
ASSERT_ARGS(gc_inf_allocate_string_storage)
char *mem;
@@ -509,7 +531,7 @@
}
static void
-gc_inf_reallocate_string_storage(PARROT_INTERP, STRING *str, size_t size)
+gc_inf_reallocate_string_storage(PARROT_INTERP, ARGMOD(STRING *str), size_t size)
{
ASSERT_ARGS(gc_inf_reallocate_string_storage)
char *mem;
@@ -551,7 +573,7 @@
Buffer_buflen(buffer) = size;
}
-
+PARROT_CAN_RETURN_NULL
static void*
gc_inf_allocate_fixed_size_storage(PARROT_INTERP, size_t size)
{
@@ -560,7 +582,7 @@
}
static void
-gc_inf_free_fixed_size_storage(PARROT_INTERP, size_t size, void *data)
+gc_inf_free_fixed_size_storage(PARROT_INTERP, size_t size, ARGMOD(void *data))
{
ASSERT_ARGS(gc_inf_free_fixed_size_storage)
if (data)
Modified: branches/rm_cflags/src/gc/gc_ms.c
==============================================================================
--- branches/rm_cflags/src/gc/gc_ms.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/gc/gc_ms.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -85,6 +85,15 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
+static void gc_ms_free_attributes_from_pool(PARROT_INTERP,
+ ARGMOD(PMC_Attribute_Pool *pool),
+ ARGMOD(void *data))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*pool)
+ FUNC_MODIFIES(*data);
+
static void gc_ms_free_bufferlike_header(PARROT_INTERP,
ARGMOD(Buffer *obj),
size_t size)
@@ -181,15 +190,6 @@
static void gc_ms_unblock_GC_sweep(PARROT_INTERP)
__attribute__nonnull__(1);
-static void gc_ms_free_attributes_from_pool(PARROT_INTERP,
- ARGMOD(PMC_Attribute_Pool *pool),
- ARGMOD(void *data))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*pool)
- FUNC_MODIFIES(*data);
-
#define ASSERT_ARGS_gc_ms_active_sized_buffers __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(mem_pools))
@@ -223,6 +223,11 @@
#define ASSERT_ARGS_gc_ms_finalize_memory_pools __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(mem_pools))
+#define ASSERT_ARGS_gc_ms_free_attributes_from_pool \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(pool) \
+ , PARROT_ASSERT_ARG(data))
#define ASSERT_ARGS_gc_ms_free_bufferlike_header __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(obj))
@@ -275,11 +280,6 @@
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_gc_ms_unblock_GC_sweep __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_gc_ms_free_attributes_from_pool \
- __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(pool) \
- , PARROT_ASSERT_ARG(data))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -803,13 +803,12 @@
Buffer_buflen(buffer) = 0;
Buffer_bufstart(buffer) = NULL;
- new_size = aligned_size(buffer, size);
+ new_size = aligned_string_size(size);
mem = (char *)mem_allocate(interp, interp->mem_pools, new_size,
interp->mem_pools->memory_pool);
mem = aligned_mem(buffer, mem);
Buffer_bufstart(buffer) = mem;
- if (PObj_is_COWable_TEST(buffer))
- new_size -= sizeof (void*);
+ new_size -= sizeof (void*);
Buffer_buflen(buffer) = new_size;
}
@@ -852,8 +851,8 @@
* normally, which play ping pong with buffers.
* The normal case is therefore always to allocate a new block
*/
- new_size = aligned_size(buffer, newsize);
- old_size = aligned_size(buffer, Buffer_buflen(buffer));
+ new_size = aligned_string_size(newsize);
+ old_size = aligned_string_size(Buffer_buflen(buffer));
needed = new_size - old_size;
if ((pool->top_block->free >= needed)
@@ -881,8 +880,7 @@
Buffer_bufstart(buffer) = mem;
- if (PObj_is_COWable_TEST(buffer))
- new_size -= sizeof (void *);
+ new_size -= sizeof (void *);
Buffer_buflen(buffer) = new_size;
}
@@ -1156,12 +1154,9 @@
if (pool->skip == GC_ONE_SKIP)
pool->skip = GC_NO_SKIP;
- else if (pool->skip == GC_NO_SKIP) {
- Fixed_Size_Arena * const arena = pool->last_Arena;
- if (arena
- && arena->used == arena->total_objects)
- Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG);
- }
+ else if (pool->skip == GC_NO_SKIP
+ && interp->mem_pools->header_allocs_since_last_collect >= 1024*1024)
+ Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG);
/* requires that num_free_objects be updated in Parrot_gc_mark_and_sweep.
If gc is disabled, then we must check the free list directly. */
@@ -1325,11 +1320,12 @@
pool->objects_per_alloc = POOL_MAX_BYTES / pool->object_size;
}
+
/*
=item C<static void gc_ms_block_GC_mark(PARROT_INTERP)>
-Blocks the GC from performing it's mark phase.
+Blocks the GC from performing its mark phase.
=item C<static void gc_ms_unblock_GC_mark(PARROT_INTERP)>
@@ -1337,7 +1333,7 @@
=item C<static void gc_ms_block_GC_sweep(PARROT_INTERP)>
-Blocks the GC from performing it's sweep phase.
+Blocks the GC from performing its sweep phase.
=item C<static void gc_ms_unblock_GC_sweep(PARROT_INTERP)>
Modified: branches/rm_cflags/src/gc/gc_private.h
==============================================================================
--- branches/rm_cflags/src/gc/gc_private.h Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/gc/gc_private.h Tue Feb 16 21:05:51 2010 (r44046)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -251,21 +251,20 @@
} Fixed_Size_Pool;
typedef struct Memory_Pools {
- Variable_Size_Pool *memory_pool;
- Variable_Size_Pool *constant_string_pool;
- struct Fixed_Size_Pool *string_header_pool;
- struct Fixed_Size_Pool *pmc_pool;
- struct Fixed_Size_Pool *constant_pmc_pool;
- struct Fixed_Size_Pool *constant_string_header_pool;
- struct Fixed_Size_Pool **sized_header_pools;
- size_t num_sized;
+ Variable_Size_Pool *memory_pool;
+ Variable_Size_Pool *constant_string_pool;
+ Fixed_Size_Pool *string_header_pool;
+ Fixed_Size_Pool *pmc_pool;
+ Fixed_Size_Pool *constant_pmc_pool;
+ Fixed_Size_Pool *constant_string_header_pool;
+ Fixed_Size_Pool **sized_header_pools;
+ size_t num_sized;
PMC_Attribute_Pool **attrib_pools;
- size_t num_attribs;
-
+ size_t num_attribs;
/** statistics for GC **/
- size_t gc_mark_runs; /* Number of times we've done a mark run*/
+ size_t gc_mark_runs; /* Number of times we've done a mark run */
size_t gc_lazy_mark_runs; /* Number of successful lazy mark runs */
size_t gc_collect_runs; /* Number of times we've done a memory
compaction */
@@ -273,7 +272,7 @@
* allocations from the
* system since the last
* compaction run */
- size_t header_allocs_since_last_collect; /* The number of header
+ size_t header_allocs_since_last_collect; /* The size of header
* blocks allocated from
* the system since the last
* GC run */
@@ -287,24 +286,21 @@
during collection */
UINTVAL num_early_gc_PMCs; /* how many PMCs want immediate destruction */
UINTVAL num_early_PMCs_seen; /* how many such PMCs has GC seen */
- PMC* gc_mark_start; /* first PMC marked during a GC run */
- PMC* gc_mark_ptr; /* last PMC marked during a GC run */
- PMC* gc_trace_ptr; /* last PMC trace_children was called on */
- int lazy_gc; /* flag that indicates whether we should stop
+ PMC *gc_mark_start; /* first PMC marked during a GC run */
+ PMC *gc_mark_ptr; /* last PMC marked during a GC run */
+ PMC *gc_trace_ptr; /* last PMC trace_children was called on */
+ int lazy_gc; /* flag that indicates whether we should stop
when we've seen all impatient PMCs */
- /*
- * GC blocking
- */
+
+ /* GC blocking */
UINTVAL gc_mark_block_level; /* How many outstanding GC block
requests are there? */
UINTVAL gc_sweep_block_level; /* How many outstanding GC block
requests are there? */
- /*
- * private data for the GC subsystem
- */
- void * gc_private; /* gc subsystem data */
-} Memory_Pools;
+ /* private data for the GC subsystem */
+ void *gc_private; /* gc subsystem data */
+} Memory_Pools;
/* HEADERIZER BEGIN: src/gc/system.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
@@ -491,11 +487,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-PARROT_PURE_FUNCTION
-PARROT_WARN_UNUSED_RESULT
-size_t aligned_size(ARGIN(const Buffer *buffer), size_t len)
- __attribute__nonnull__(1);
-
PARROT_CONST_FUNCTION
PARROT_WARN_UNUSED_RESULT
size_t aligned_string_size(size_t len);
@@ -562,8 +553,6 @@
#define ASSERT_ARGS_aligned_mem __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(buffer) \
, PARROT_ASSERT_ARG(mem))
-#define ASSERT_ARGS_aligned_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(buffer))
#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) \
@@ -680,8 +669,6 @@
#endif /* PARROT_GC_PRIVATE_H_GUARD */
-
-
/*
* Local variables:
* c-file-style: "parrot"
Modified: branches/rm_cflags/src/gc/mark_sweep.c
==============================================================================
--- branches/rm_cflags/src/gc/mark_sweep.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/gc/mark_sweep.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -527,7 +527,7 @@
new_arena->prev->next = new_arena;
pool->last_Arena = new_arena;
- mem_pools->header_allocs_since_last_collect++;
+ mem_pools->header_allocs_since_last_collect += size;
}
/*
Modified: branches/rm_cflags/src/hash.c
==============================================================================
--- branches/rm_cflags/src/hash.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/hash.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -61,9 +61,7 @@
__attribute__nonnull__(3)
FUNC_MODIFIES(*info);
-static void hash_thaw(PARROT_INTERP,
- ARGMOD(Hash *hash),
- ARGMOD(PMC *info))
+static void hash_thaw(PARROT_INTERP, ARGMOD(Hash *hash), ARGMOD(PMC *info))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
Modified: branches/rm_cflags/src/interp/inter_create.c
==============================================================================
--- branches/rm_cflags/src/interp/inter_create.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/interp/inter_create.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -229,8 +229,6 @@
*/
Parrot_str_init(interp);
- Parrot_initialize_core_vtables(interp);
-
/* Set up MMD; MMD cache for builtins. */
interp->op_mmd_cache = Parrot_mmd_cache_create(interp);
@@ -239,6 +237,8 @@
/* initialize classes - this needs mmd func table */
interp->HLL_info = NULL;
+
+ Parrot_initialize_core_vtables(interp);
init_world_once(interp);
/* context data */
Modified: branches/rm_cflags/src/main.c
==============================================================================
--- branches/rm_cflags/src/main.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/main.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -49,7 +49,7 @@
static const char * parseflags(PARROT_INTERP,
ARGIN(int *argc),
ARGIN(char **argv[]),
- ARGIN(INTVAL *core),
+ ARGIN(Parrot_Run_core_t *core),
ARGIN(Parrot_trace_flags *trace))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
@@ -57,6 +57,10 @@
__attribute__nonnull__(4)
__attribute__nonnull__(5);
+static void parseflags_minimal(PARROT_INTERP, int argc, ARGIN(char *argv[]))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+
static void usage(ARGMOD(FILE *fp))
__attribute__nonnull__(1)
FUNC_MODIFIES(*fp);
@@ -73,6 +77,9 @@
, PARROT_ASSERT_ARG(argv) \
, PARROT_ASSERT_ARG(core) \
, PARROT_ASSERT_ARG(trace))
+#define ASSERT_ARGS_parseflags_minimal __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(argv))
#define ASSERT_ARGS_usage __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(fp))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
@@ -97,7 +104,7 @@
Interp *interp;
int status;
- INTVAL core = 0;
+ Parrot_Run_core_t core = PARROT_SLOW_CORE;
Parrot_trace_flags trace = PARROT_NO_TRACE;
/* internationalization setup */
@@ -114,13 +121,16 @@
available. */
execname = argv[0];
- /* Parse flags */
- sourcefile = parseflags(interp, &argc, &argv, &core, &trace);
+ /* Parse minimal subset of flags */
+ parseflags_minimal(interp, argc, argv);
/* Now initialize interpreter */
initialize_interpreter(interp, (void*)&stacktop);
imcc_initialize(interp);
+ /* Parse flags */
+ sourcefile = parseflags(interp, &argc, &argv, &core, &trace);
+
Parrot_set_trace(interp, trace);
Parrot_set_run_core(interp, (Parrot_Run_core_t) core);
Parrot_set_executable_name(interp, Parrot_str_new(interp, execname, 0));
@@ -148,6 +158,7 @@
{ 'D', 'D', OPTION_optional_FLAG, { "--parrot-debug" } },
{ 'E', 'E', (OPTION_flags)0, { "--pre-process-only" } },
{ 'G', 'G', (OPTION_flags)0, { "--no-gc" } },
+ { 'H', 'H', OPTION_required_FLAG, { "--hash-seed" } },
{ 'I', 'I', OPTION_required_FLAG, { "--include" } },
{ 'L', 'L', OPTION_required_FLAG, { "--library" } },
{ 'O', 'O', OPTION_optional_FLAG, { "--optimize" } },
@@ -283,6 +294,7 @@
" -V --version\n"
" -I --include add path to include search\n"
" -L --library add path to library search\n"
+ " -H --hash-seed F00F specify hex value to use as hash seed\n"
" -X --dynext add path to dynamic extension search\n"
" <Run core options>\n"
" -R --runcore slow|bounds|fast|cgoto|cgp\n"
@@ -341,6 +353,50 @@
exit(EXIT_SUCCESS);
}
+
+/*
+
+=item C<static void parseflags_minimal(PARROT_INTERP, int argc, char *argv[])>
+
+Parse minimal subset of args required for initializing interpreter.
+
+=cut
+
+*/
+static void
+parseflags_minimal(PARROT_INTERP, int argc, ARGIN(char *argv[]))
+{
+ ASSERT_ARGS(parseflags_minimal)
+
+ int pos = 0;
+ const char *arg;
+ while (pos < argc) {
+ arg = argv[pos];
+ if (STREQ(arg, "--gc")) {
+ ++pos;
+ if (pos == argc) {
+ fprintf(stderr,
+ "main: No GC specified."
+ "\n\nhelp: parrot -h\n");
+ exit(EXIT_FAILURE);
+ }
+ arg = argv[pos];
+ if (STREQ(arg, "ms"))
+ interp->gc_sys->sys_type = MS;
+ else if (STREQ(arg, "inf"))
+ interp->gc_sys->sys_type = INF;
+ else {
+ fprintf(stderr,
+ "main: Unrecognized GC '%s' specified."
+ "\n\nhelp: parrot -h\n", arg);
+ exit(EXIT_FAILURE);
+ }
+ break;
+ }
+ ++pos;
+ }
+}
+
/*
=item C<static const char * parseflags(PARROT_INTERP, int *argc, char **argv[],
@@ -356,7 +412,7 @@
static const char *
parseflags(PARROT_INTERP,
ARGIN(int *argc), ARGIN(char **argv[]),
- ARGIN(INTVAL *core), ARGIN(Parrot_trace_flags *trace))
+ ARGIN(Parrot_Run_core_t *core), ARGIN(Parrot_trace_flags *trace))
{
ASSERT_ARGS(parseflags)
struct longopt_opt_info opt = LONGOPT_OPT_INFO_INIT;
@@ -397,20 +453,15 @@
*core = PARROT_PROFILING_CORE;
else if (STREQ(opt.opt_arg, "gcdebug"))
*core = PARROT_GC_DEBUG_CORE;
- else
- Parrot_ex_throw_from_c_args(interp, NULL, 1,
+ else {
+ fprintf(stderr,
"main: Unrecognized runcore '%s' specified."
"\n\nhelp: parrot -h\n", opt.opt_arg);
+ exit(EXIT_FAILURE);
+ }
break;
case 'g':
- if (STREQ(opt.opt_arg, "ms"))
- interp->gc_sys->sys_type = MS;
- else if (STREQ(opt.opt_arg, "inf"))
- interp->gc_sys->sys_type = INF;
- else
- Parrot_ex_throw_from_c_args(interp, NULL, 1,
- "main: Unrecognized GC '%s' specified."
- "\n\nhelp: parrot -h\n", opt.opt_arg);
+ /* Handled in parseflags_minimal */
break;
case 't':
if (opt.opt_arg && is_all_hex_digits(opt.opt_arg))
@@ -425,6 +476,12 @@
else
SET_DEBUG(PARROT_MEM_STAT_DEBUG_FLAG);
break;
+ case 'H':
+ if (opt.opt_arg && is_all_hex_digits(opt.opt_arg)) {
+ interp->hash_seed = strtoul(opt.opt_arg, NULL, 16);
+ }
+ break;
+
case '.': /* Give Windows Parrot hackers an opportunity to
* attach a debuggger. */
fgetc(stdin);
@@ -447,10 +504,9 @@
case OPT_GC_DEBUG:
#if DISABLE_GC_DEBUG
- if (!PMC_IS_NULL(CURRENT_CONTEXT(interp)))
- Parrot_warn(interp, PARROT_WARNINGS_ALL_FLAG,
- "PARROT_GC_DEBUG is set but the binary was compiled "
- "with DISABLE_GC_DEBUG.");
+ Parrot_warn(interp, PARROT_WARNINGS_ALL_FLAG,
+ "PARROT_GC_DEBUG is set but the binary was compiled "
+ "with DISABLE_GC_DEBUG.");
#endif
SET_FLAG(PARROT_GC_DEBUG_FLAG);
break;
@@ -475,9 +531,10 @@
break;
/* PIRC flags handling goes here */
- Parrot_ex_throw_from_c_args(interp, NULL, 1,
+ fprintf(stderr,
"main: Invalid flag '%s' used.\n\nhelp: parrot -h\n",
(*argv)[0]);
+ exit(EXIT_FAILURE);
}
}
Modified: branches/rm_cflags/src/ops/bit.ops
==============================================================================
--- branches/rm_cflags/src/ops/bit.ops Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/ops/bit.ops Tue Feb 16 21:05:51 2010 (r44046)
@@ -63,11 +63,15 @@
}
inline op band(invar PMC, in INT) :base_core {
- VTABLE_i_bitwise_and_int(interp, $1, $2);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = a & $2;
+ VTABLE_set_integer_native(interp, $1, b);
}
inline op band(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_and(interp, $1, $2);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = VTABLE_get_integer(interp, $2);
+ VTABLE_set_integer_native(interp, $1, a & b);
}
inline op band(out INT, in INT, in INT) :base_core {
@@ -75,11 +79,14 @@
}
inline op band(invar PMC, invar PMC, in INT) :base_core {
- $1 = VTABLE_bitwise_and_int(interp, $2, $3, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ VTABLE_set_integer_native(interp, $1, a & $3);
}
inline op band(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_and(interp, $2, $3, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL b = VTABLE_get_integer(interp, $3);
+ VTABLE_set_integer_native(interp, $1, a & b);
}
=item B<bands>(inout STR, in STR)
@@ -107,11 +114,16 @@
}
inline op bands(invar PMC, in STR) :base_core {
- VTABLE_i_bitwise_ands_str(interp, $1, $2);
+ STRING * const a = VTABLE_get_string(interp, $1);
+ STRING * const b = Parrot_str_bitwise_and(interp, a, $2, NULL);
+ VTABLE_set_string_native(interp, $1, b);
}
inline op bands(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_ands(interp, $1, $2);
+ STRING * a = VTABLE_get_string(interp, $1);
+ STRING * b = VTABLE_get_string(interp, $2);
+ a = Parrot_str_bitwise_and(interp, a, b, NULL);
+ VTABLE_set_string_native(interp, $1, a);
}
inline op bands(out STR, in STR, in STR) :base_core {
@@ -119,11 +131,16 @@
}
inline op bands(invar PMC, invar PMC, in STR) :base_core {
- $1 = VTABLE_bitwise_ands_str(interp, $2, $3, $1);
+ STRING * const a = VTABLE_get_string(interp, $2);
+ STRING * const b = Parrot_str_bitwise_and(interp, a, $3, NULL);
+ VTABLE_set_string_native(interp, $1, b);
}
inline op bands(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_ands(interp, $2, $3, $1);
+ 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);
+ VTABLE_set_string_native(interp, $1, c);
}
########################################
@@ -149,11 +166,15 @@
}
inline op bnot(invar PMC) :base_core {
- VTABLE_i_bitwise_not(interp, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ VTABLE_set_integer_native(interp, $1, ~a);
}
inline op bnot(out PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_not(interp, $2, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ PMC * const b = pmc_new(interp, VTABLE_type(interp, $2));
+ VTABLE_set_integer_native(interp, b, ~a);
+ $1 = b;
}
=item B<bnots>(inout STR)
@@ -175,11 +196,15 @@
}
inline op bnots(invar PMC) :base_core {
- VTABLE_i_bitwise_nots(interp, $1);
+ STRING * a = VTABLE_get_string(interp, $1);
+ STRING * b = Parrot_str_bitwise_not(interp, a, NULL);
+ VTABLE_set_string_native(interp, $1, b);
}
inline op bnots(out PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_nots(interp, $2, $1);
+ STRING * a = VTABLE_get_string(interp, $2);
+ STRING * b = Parrot_str_bitwise_not(interp, a, NULL);
+ VTABLE_set_string_native(interp, $1, b);
}
########################################
@@ -209,11 +234,14 @@
}
inline op bor(invar PMC, in INT) :base_core {
- VTABLE_i_bitwise_or_int(interp, $1, $2);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ VTABLE_set_integer_native(interp, $1, a | $2);
}
inline op bor(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_or(interp, $1, $2);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = VTABLE_get_integer(interp, $2);
+ VTABLE_set_integer_native(interp, $1, a | b);
}
inline op bor(out INT, in INT, in INT) :base_core {
@@ -221,11 +249,14 @@
}
inline op bor(invar PMC, invar PMC, in INT) :base_core {
- $1 = VTABLE_bitwise_or_int(interp, $2, $3, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ VTABLE_set_integer_native(interp, $1, a | $3);
}
inline op bor(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_or(interp, $2, $3, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL b = VTABLE_get_integer(interp, $3);
+ VTABLE_set_integer_native(interp, $1, a | b);
}
=item B<bors>(inout STR, in STR)
@@ -253,11 +284,16 @@
}
inline op bors(invar PMC, in STR) :base_core {
- VTABLE_i_bitwise_ors_str(interp, $1, $2);
+ STRING * const a = VTABLE_get_string(interp, $1);
+ STRING * const b = Parrot_str_bitwise_or(interp, a, $2, NULL);
+ VTABLE_set_string_native(interp, $1, b);
}
inline op bors(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_ors(interp, $1, $2);
+ 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);
+ VTABLE_set_string_native(interp, $1, c);
}
inline op bors(out STR, in STR, in STR) :base_core {
@@ -265,11 +301,16 @@
}
inline op bors(invar PMC, invar PMC, in STR) :base_core {
- $1 = VTABLE_bitwise_ors_str(interp, $2, $3, $1);
+ STRING * const b = VTABLE_get_string(interp, $2);
+ STRING * const c = Parrot_str_bitwise_or(interp, b, $3, NULL);
+ VTABLE_set_string_native(interp, $1, c);
}
inline op bors(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_ors(interp, $2, $3, $1);
+ 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);
+ VTABLE_set_string_native(interp, $1, c);
}
########################################
@@ -297,11 +338,16 @@
}
inline op shl(invar PMC, in INT) :base_core {
- VTABLE_i_bitwise_shl_int(interp, $1, $2);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = bit_shift_left(a, $2);
+ VTABLE_set_integer_native(interp, $1, b);
}
inline op shl(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_shl(interp, $1, $2);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = VTABLE_get_integer(interp, $2);
+ const INTVAL c = bit_shift_left(a, b);
+ VTABLE_set_integer_native(interp, $1, c);
}
inline op shl(out INT, in INT, in INT) :base_core {
@@ -309,11 +355,16 @@
}
inline op shl(invar PMC, invar PMC, in INT) :base_core {
- $1 = VTABLE_bitwise_shl_int(interp, $2, $3, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL b = bit_shift_left(a, $3);
+ VTABLE_set_integer_native(interp, $1, b);
}
inline op shl(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_shl(interp, $2, $3, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL b = VTABLE_get_integer(interp, $3);
+ const INTVAL c = bit_shift_left(a, b);
+ VTABLE_set_integer_native(interp, $1, c);
}
########################################
@@ -342,11 +393,16 @@
}
inline op shr(invar PMC, in INT) :base_core {
- VTABLE_i_bitwise_shr_int(interp, $1, $2);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = bit_shift_left(a, -$2);
+ VTABLE_set_integer_native(interp, $1, b);
}
inline op shr(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_shr(interp, $1, $2);
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = VTABLE_get_integer(interp, $2);
+ const INTVAL c = bit_shift_left(a, -b);
+ VTABLE_set_integer_native(interp, $1, c);
}
inline op shr(out INT, in INT, in INT) :base_core {
@@ -355,11 +411,16 @@
}
inline op shr(invar PMC, invar PMC, in INT) :base_core {
- $1 = VTABLE_bitwise_shr_int(interp, $2, $3, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL c = bit_shift_left(a, -$3);
+ VTABLE_set_integer_native(interp, $1, c);
}
inline op shr(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_shr(interp, $2, $3, $1);
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL b = VTABLE_get_integer(interp, $3);
+ const INTVAL c = bit_shift_left(a, -b);
+ VTABLE_set_integer_native(interp, $1, c);
}
########################################
@@ -383,19 +444,22 @@
=cut
inline op lsr(out INT, in INT) :base_core {
- /*
- * lvalue casts are evil, but this one isn't evil enough to kill.
- * it's just casting a signed integral to the equivalent unsigned.
- */
- LVALUE_CAST(UINTVAL, $1) >>= $2;
+ const UINTVAL a = (UINTVAL)$1;
+ const UINTVAL b = a >> $2;
+ $1 = (INTVAL)b;
}
inline op lsr(invar PMC, in INT) :base_core {
- VTABLE_i_bitwise_lsr_int(interp, $1, $2);
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
+ const UINTVAL b = a >> $2;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)b);
}
inline op lsr(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_lsr(interp, $1, $2);
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
+ const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL c = a >> b;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)c);
}
inline op lsr(out INT, in INT, in INT) :base_core {
@@ -403,11 +467,17 @@
}
inline op lsr(invar PMC, invar PMC, in INT) :base_core {
- $1 = VTABLE_bitwise_lsr_int(interp, $2, $3, $1);
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL b = (UINTVAL)$3;
+ const UINTVAL c = a >> b;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)c);
}
inline op lsr(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_lsr(interp, $2, $3, $1);
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $3);
+ const UINTVAL c = a >> b;
+ VTABLE_set_integer_native(interp, $3, (INTVAL)c);
}
=item B<rot>(out INT, in INT, in INT, inconst INT)
@@ -433,9 +503,6 @@
$1 = d;
}
-
-}
-
########################################
=item B<bxor>(inout INT, in INT)
@@ -463,11 +530,16 @@
}
inline op bxor(invar PMC, in INT) :base_core {
- VTABLE_i_bitwise_xor_int(interp, $1, $2);
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
+ const UINTVAL b = a ^ $2;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)b);
}
inline op bxor(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_xor(interp, $1, $2);
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
+ const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL c = a ^ b;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)c);
}
inline op bxor(out INT, in INT, in INT) :base_core {
@@ -475,11 +547,16 @@
}
inline op bxor(invar PMC, invar PMC, in INT) :base_core {
- $1 = VTABLE_bitwise_xor_int(interp, $2, $3, $1);
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL b = a ^ $3;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)b);
}
inline op bxor(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_xor(interp, $2, $3, $1);
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $3);
+ const UINTVAL c = a ^ b;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)c);
}
=item B<bxors>(inout STR, in STR)
@@ -507,11 +584,16 @@
}
inline op bxors(invar PMC, in STR) :base_core {
- VTABLE_i_bitwise_xors_str(interp, $1, $2);
+ STRING *a = VTABLE_get_string(interp, $1);
+ STRING *b = Parrot_str_bitwise_xor(interp, a, $2, NULL);
+ VTABLE_set_string_native(interp, $1, b);
}
inline op bxors(invar PMC, invar PMC) :base_core {
- VTABLE_i_bitwise_xors(interp, $1, $2);
+ STRING *a = VTABLE_get_string(interp, $1);
+ STRING *b = VTABLE_get_string(interp, $2);
+ STRING *c = Parrot_str_bitwise_xor(interp, a, b, NULL);
+ VTABLE_set_string_native(interp, $1, c);
}
inline op bxors(out STR, in STR, in STR) :base_core {
@@ -519,11 +601,16 @@
}
inline op bxors(invar PMC, invar PMC, in STR) :base_core {
- $1 = VTABLE_bitwise_xors_str(interp, $2, $3, $1);
+ STRING *a = VTABLE_get_string(interp, $2);
+ STRING *b = Parrot_str_bitwise_xor(interp, a, $3, NULL);
+ VTABLE_set_string_native(interp, $1, b);
}
inline op bxors(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_bitwise_xors(interp, $2, $3, $1);
+ STRING *a = VTABLE_get_string(interp, $2);
+ STRING *b = VTABLE_get_string(interp, $3);
+ STRING *c = Parrot_str_bitwise_xor(interp, a, b, NULL);
+ VTABLE_set_string_native(interp, $1, c);
}
=back
Modified: branches/rm_cflags/src/ops/math.ops
==============================================================================
--- branches/rm_cflags/src/ops/math.ops Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/ops/math.ops Tue Feb 16 21:05:51 2010 (r44046)
@@ -812,15 +812,35 @@
}
inline op pow(invar PMC, invar PMC, invar PMC) :base_core {
- $1 = VTABLE_pow(interp, $2, $3, $1);
+ const FLOATVAL a = VTABLE_get_number(interp, $2);
+ const FLOATVAL b = VTABLE_get_number(interp, $3);
+ const FLOATVAL c = pow(a, b);
+ if (PMC_IS_NULL($1))
+ $1 = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ else
+ $1 = pmc_new(interp, $1->vtable->base_type);
+ VTABLE_set_number_native(interp, $1, c);
}
inline op pow(invar PMC, invar PMC, in INT) :base_core {
- $1 = VTABLE_pow_int(interp, $2, $3, $1);
+ const FLOATVAL a = VTABLE_get_number(interp, $2);
+ const FLOATVAL b = (FLOATVAL)$3;
+ const FLOATVAL c = pow(a, b);
+ if (PMC_IS_NULL($1))
+ $1 = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ else
+ $1 = pmc_new(interp, $1->vtable->base_type);
+ VTABLE_set_number_native(interp, $1, c);
}
inline op pow(invar PMC, invar PMC, in NUM) :base_core {
- $1 = VTABLE_pow_float(interp, $2, $3, $1);
+ const FLOATVAL a = VTABLE_get_number(interp, $2);
+ const FLOATVAL c = pow(a, $3);
+ if (PMC_IS_NULL($1))
+ $1 = pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ else
+ $1 = pmc_new(interp, $1->vtable->base_type);
+ VTABLE_set_number_native(interp, $1, c);
}
inline op pow(out NUM, in NUM, in INT) :base_core {
Modified: branches/rm_cflags/src/pmc/bigint.pmc
==============================================================================
--- branches/rm_cflags/src/pmc/bigint.pmc Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/pmc/bigint.pmc Tue Feb 16 21:05:51 2010 (r44046)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2004-2009, Parrot Foundation.
+Copyright (C) 2004-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -323,36 +323,6 @@
mpz_neg(bi_dest->b, bi_self->b);
}
-static void
-bigint_bitwise_shl_bigint_int(PARROT_INTERP, PMC *self,
- INTVAL value, PMC *dest)
-{
- BIGINT *bi_self, *bi_dest;
- GETATTR_BigInt_bi(interp, self, bi_self);
- GETATTR_BigInt_bi(interp, dest, bi_dest);
- /* The third args to mpz_mul_2exp and mpz_tdiv_q_2exp are unsigned, so we
- need to do something sensible with negative values. */
- if (value >= 0)
- mpz_mul_2exp(bi_dest->b, bi_self->b, (unsigned long int)value);
- else
- mpz_tdiv_q_2exp(bi_dest->b, bi_self->b, (unsigned long int)-value);
-}
-
-static void
-bigint_bitwise_shr_bigint_int(PARROT_INTERP, PMC *self,
- INTVAL value, PMC *dest)
-{
- BIGINT *bi_self, *bi_dest;
- GETATTR_BigInt_bi(interp, self, bi_self);
- GETATTR_BigInt_bi(interp, dest, bi_dest);
- /* The third args to mpz_mul_2exp and mpz_tdiv_q_2exp are unsigned, so we
- need to do something sensible with negative values. */
- if (value >= 0)
- mpz_tdiv_q_2exp(bi_dest->b, bi_self->b, (unsigned long int)value);
- else
- mpz_mul_2exp(bi_dest->b, bi_self->b, (unsigned long int)-value);
-}
-
#else /* ifdef PARROT_HAS_GMP */
typedef struct BIGINT {
@@ -533,32 +503,6 @@
"no bigint lib loaded");
}
-static void
-bigint_bitwise_shl_bigint(PARROT_INTERP, PMC *self, PMC *value, PMC *dest) {
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
- "no bigint lib loaded");
-}
-
-static void
-bigint_bitwise_shl_bigint_int(PARROT_INTERP, PMC *self, INTVAL value, PMC *dest)
-{
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
- "no bigint lib loaded");
-}
-
-static void
-bigint_bitwise_shr_bigint(PARROT_INTERP, PMC *self, PMC *value, PMC *dest) {
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
- "no bigint lib loaded");
-}
-
-static void
-bigint_bitwise_shr_bigint_int(PARROT_INTERP, PMC *self, INTVAL value, PMC *dest)
-{
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
- "no bigint lib loaded");
-}
-
#endif /* ifdef PARROT_HAS_GMP */
pmclass BigInt auto_attrs {
@@ -701,20 +645,6 @@
/*
-=item C<PMC *get_bignum()>
-
-Returns SELF
-
-=cut
-
-*/
-
- VTABLE PMC *get_bignum() {
- return SELF;
- }
-
-/*
-
=item C<INTVAL get_bool()>
Returns the boolean value of the integer.
@@ -957,20 +887,13 @@
"BigInt: no multiple dispatch variant 'i_multiply_float' for FLOATVAL");
}
- VTABLE PMC *pow_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- bigint_pow_bigint_int(INTERP, SELF, value, dest);
- return dest;
- }
-
- MULTI PMC *pow(PMC *value, PMC *dest) {
+ METHOD PMC *pow(PMC *value) {
/* XXX only Integer RHS currently */
const INTVAL r = VTABLE_get_integer(INTERP, value);
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+ PMC *dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
bigint_pow_bigint_int(INTERP, SELF, r, dest);
- return dest;
+ RETURN(PMC *dest);
}
MULTI PMC *divide(BigInt value, PMC *dest) {
@@ -1188,151 +1111,6 @@
VTABLE void i_neg() {
bigint_neg(INTERP, SELF, SELF);
}
-
-/*
-
-=item C<PMC *bitwise_shl(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_shl_int(INTVAL value, PMC *dest)>
-
-Returns in C<*dest> the shift left of the BigInt by C<*value>.
-
-=item C<void i_bitwise_shl(PMC *value)>
-
-=item C<void i_bitwise_shl_int(INTVAL value)>
-
-Inplace shift left.
-
-=cut
-
-*/
-
- MULTI PMC *bitwise_shl(BigInt value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- bigint_bitwise_shl_bigint_int(INTERP, SELF,
- VTABLE_get_integer(INTERP, value),
- dest);
- return dest;
- }
-
- MULTI PMC *bitwise_shl(Integer value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- bigint_bitwise_shl_bigint_int(INTERP, SELF,
- VTABLE_get_integer(interp, value), dest);
- return dest;
- }
- MULTI PMC *bitwise_shl(DEFAULT value, PMC *dest) {
- UNUSED(dest)
- Parrot_ex_throw_from_c_args(INTERP, NULL,
- EXCEPTION_INTERNAL_NOT_IMPLEMENTED,
- "BigInt: no multiple dispatch variant 'bitwise_shl' for %Ss",
- VTABLE_name(interp, value));
- }
-
- VTABLE PMC *bitwise_shl_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- bigint_bitwise_shl_bigint_int(INTERP, SELF, value, dest);
- return dest;
- }
-
-
- MULTI void i_bitwise_shl(BigInt value) {
- bigint_bitwise_shl_bigint_int(INTERP, SELF,
- VTABLE_get_integer(INTERP, value),
- SELF);
- }
-
- MULTI void i_bitwise_shl(Integer value) {
- bigint_bitwise_shl_bigint_int(INTERP, SELF,
- VTABLE_get_integer(interp, value), SELF);
- }
-
- MULTI void i_bitwise_shl(DEFAULT value) {
- Parrot_ex_throw_from_c_args(INTERP, NULL,
- EXCEPTION_INTERNAL_NOT_IMPLEMENTED,
- "BigInt: no multiple dispatch variant 'i_bitwise_shl' for %Ss",
- VTABLE_name(interp, value));
- }
-
- VTABLE void i_bitwise_shl_int(INTVAL value) {
- bigint_bitwise_shl_bigint_int(INTERP, SELF, value, SELF);
- }
-
-/*
-
-=item C<PMC *bitwise_shr(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_shr_int(INTVAL value, PMC *dest)>
-
-Returns in C<*dest> the shift right of the BigInt by C<*value>.
-
-=item C<void i_bitwise_shr(PMC *value)>
-
-=item C<void i_bitwise_shr_int(INTVAL value)>
-
-Inplace shift left.
-
-=cut
-
-*/
-
- MULTI PMC *bitwise_shr(BigInt value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- bigint_bitwise_shr_bigint_int(INTERP, SELF,
- VTABLE_get_integer(INTERP, value),
- dest);
- return dest;
- }
-
- MULTI PMC *bitwise_shr(Integer value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- bigint_bitwise_shr_bigint_int(INTERP, SELF,
- VTABLE_get_integer(interp, value), dest);
- return dest;
- }
-
- MULTI PMC *bitwise_shr(DEFAULT value, PMC *dest) {
- UNUSED(dest)
- Parrot_ex_throw_from_c_args(INTERP, NULL,
- EXCEPTION_INTERNAL_NOT_IMPLEMENTED,
- "BigInt: no multiple dispatch variant 'bitwise_shr' for %Ss",
- VTABLE_name(interp, value));
- }
-
- VTABLE PMC *bitwise_shr_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- bigint_bitwise_shr_bigint_int(INTERP, SELF, value, dest);
- return dest;
- }
-
-
- MULTI void i_bitwise_shr(BigInt value) {
- bigint_bitwise_shr_bigint_int(INTERP, SELF,
- VTABLE_get_integer(INTERP, value),
- SELF);
- }
-
- MULTI void i_bitwise_shr(Integer value) {
- bigint_bitwise_shr_bigint_int(INTERP, SELF,
- VTABLE_get_integer(interp, value), SELF);
- }
-
- MULTI void i_bitwise_shr(DEFAULT value) {
- Parrot_ex_throw_from_c_args(INTERP, NULL,
- EXCEPTION_INTERNAL_NOT_IMPLEMENTED,
- "BigInt: no multiple dispatch variant 'i_bitwise_shr' for %Ss",
- VTABLE_name(interp, value));
- }
-
- VTABLE void i_bitwise_shr_int(INTVAL value) {
- bigint_bitwise_shr_bigint_int(INTERP, SELF, value, SELF);
- }
}
/*
Modified: branches/rm_cflags/src/pmc/bignum.pmc
==============================================================================
--- branches/rm_cflags/src/pmc/bignum.pmc Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/pmc/bignum.pmc Tue Feb 16 21:05:51 2010 (r44046)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2004-2009, Parrot Foundation.
+Copyright (C) 2004-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -929,20 +929,6 @@
/*
-=item C<PMC *get_bignum()>
-
-Returns SELF, keeping floating point precision.
-
-=cut
-
-*/
-
- VTABLE PMC *get_bignum() {
- return SELF;
- }
-
-/*
-
=item C<FLOATVAL get_bigint()>
Trunc the BigNum to an BigInt.
@@ -1242,26 +1228,25 @@
/*
-=item C<void pow()>
+=item C<METHOD PMC *pow()>
-=cut
+Raises self to the power of value. Replacement method added when the pow()
+vtable was removed
-*/
+TODO: Needs testing.
+TODO: Only supports Integer values for now.
- VTABLE PMC *pow_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
+=cut
- bignum_pow_bignum_int(INTERP, SELF, value, dest);
- return dest;
- }
+*/
- MULTI PMC *pow(PMC *value, PMC *dest) {
+ METHOD PMC *pow(PMC *value) {
/* only Integer RHS currently. TODO: check number and bignum types */
INTVAL r = VTABLE_get_integer(INTERP, value);
- dest = pmc_new(INTERP, SELF->vtable->base_type);
+ PMC *dest = pmc_new(INTERP, SELF->vtable->base_type);
bignum_pow_bignum_int(INTERP, SELF, r, dest);
- return dest;
+ RETURN(PMC *dest);
}
/*
Modified: branches/rm_cflags/src/pmc/callcontext.pmc
==============================================================================
--- branches/rm_cflags/src/pmc/callcontext.pmc Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/pmc/callcontext.pmc Tue Feb 16 21:05:51 2010 (r44046)
@@ -393,7 +393,6 @@
ATTR PMC *current_namespace; /* The namespace we're currently in */
ATTR PMC *results_signature; /* non-const results signature PMC */
ATTR opcode_t *current_pc; /* program counter of Sub invocation */
- ATTR opcode_t *current_results; /* ptr into code with get_results opcode */
ATTR PMC *current_sig; /* temporary CallContext PMC for active call */
/* deref the constants - we need it all the time */
Modified: branches/rm_cflags/src/pmc/complex.pmc
==============================================================================
--- branches/rm_cflags/src/pmc/complex.pmc Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/pmc/complex.pmc Tue Feb 16 21:05:51 2010 (r44046)
@@ -1775,9 +1775,12 @@
/*
-=item C<PMC *pow(PMC *value, PMC *dest)>
+=item C<METHOD PMC *pow(PMC *value)>
-Return SELF to the C<value>th power and return result in C<dest>.
+Raise SELF to the power of value. Replacement for the old pow() vtable, which
+was deleted.
+
+TODO: Requires testing
=item C<METHOD PMC *sqrt()>
@@ -1792,38 +1795,19 @@
*/
- MULTI PMC *pow(Complex value, PMC *dest) {
+ METHOD pow(PMC * value) {
PMC *l = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
PMC *log;
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
+ PMC *dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
Parrot_pcc_invoke_method_from_c_args(interp, SELF, CONST_STRING(interp, "ln"),
"->P", &log);
- l = Parrot_Complex_multi_multiply_Complex_PMC(INTERP,
- log, value, l);
+ l = VTABLE_multiply(INTERP, log, value, l);
Parrot_pcc_invoke_method_from_c_args(interp, l, CONST_STRING(interp, "exp"),
"->P", &dest);
-
- return dest;
- }
-
- MULTI PMC *pow(DEFAULT value, PMC *dest) {
- PMC *l = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
- PMC *log;
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- Parrot_pcc_invoke_method_from_c_args(interp, SELF, CONST_STRING(interp, "ln"),
- "->P", &log);
- l = Parrot_Complex_multi_multiply_DEFAULT_PMC(INTERP, log, value, l);
- Parrot_pcc_invoke_method_from_c_args(interp, l, CONST_STRING(interp, "exp"),
- "->P", &dest);
-
- return dest;
+ RETURN(PMC *dest);
}
METHOD sqrt() {
Modified: branches/rm_cflags/src/pmc/default.pmc
==============================================================================
--- branches/rm_cflags/src/pmc/default.pmc Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/pmc/default.pmc Tue Feb 16 21:05:51 2010 (r44046)
@@ -1692,678 +1692,6 @@
/*
-=item C<PMC *pow(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'pow'.
-
-=cut
-
-*/
-
- VTABLE PMC *pow(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "pow", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *pow_int(INTVAL value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'pow_int'.
-
-=cut
-
-*/
-
- VTABLE PMC *pow_int(INTVAL value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "pow_int", "PIP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *pow_float(FLOATVAL value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'pow_float'.
-
-=cut
-
-*/
-
- VTABLE PMC *pow_float(FLOATVAL value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "pow_float", "PNP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_pow(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_pow'.
-
-=cut
-
-*/
-
- VTABLE void i_pow(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_pow", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_pow_int(INTVAL value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_pow_int'.
-
-=cut
-
-*/
-
- VTABLE void i_pow_int(INTVAL value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_pow_int", "PI", SELF, value);
- }
-
-/*
-
-=item C<void i_pow_float(FLOATVAL value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_pow_float'.
-
-=cut
-
-*/
-
- VTABLE void i_pow_float(FLOATVAL value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_pow_float", "PN", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_or(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_or'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_or(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_or", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_or_int(INTVAL value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_or_int'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_or_int(INTVAL value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_or_int", "PIP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_or(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_or'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_or(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_or", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_or_int(INTVAL value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_or_int'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_or_int(INTVAL value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_or_int", "PI", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_and(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_and'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_and(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_and", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_and_int(INTVAL value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_and_int'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_and_int(INTVAL value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_and_int", "PIP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_and(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_and'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_and(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_and", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_and_int(INTVAL value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_and_int'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_and_int(INTVAL value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_and_int", "PI", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_xor(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_xor'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_xor(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_xor", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_xor_int(INTVAL value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_xor_int'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_xor_int(INTVAL value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_xor_int", "PIP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_xor(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_xor'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_xor(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_xor", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_xor_int(INTVAL value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_xor_int'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_xor_int(INTVAL value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_xor_int", "PI", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_ors(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_ors'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_ors(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_ors", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_ors_str(STRING *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_ors_str'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_ors_str(STRING *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_ors_str", "PSP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_ors(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_ors'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_ors(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_ors", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_ors_str(STRING *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_ors_str'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_ors_str(STRING *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_ors_str", "PS", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_ands(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_ands'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_ands(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_ands", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_ands_str(STRING *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_ands_str'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_ands_str(STRING *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_ands_str", "PSP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_ands(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_ands'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_ands(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_ands", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_ands_str(STRING *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_ands_str'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_ands_str(STRING *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_ands_str", "PS", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_xors(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_xors'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_xors(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_xors", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_xors_str(STRING *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_xors_str'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_xors_str(STRING *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_xors_str", "PSP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_xors(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_xors'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_xors(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_xors", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_xors_str(STRING *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_xors_str'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_xors_str(STRING *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_xors_str", "PS", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_shl(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_shl'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_shl(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_shl", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_shl_int(INTVAL value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_shl_int'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_shl_int(INTVAL value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_shl_int", "PIP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_shl(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_shl'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_shl(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_shl", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_shl_int(INTVAL value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_shl_int'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_shl_int(INTVAL value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_shl_int", "PI", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_shr(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_shr'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_shr(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_shr", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_shr_int(INTVAL value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_shr_int'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_shr_int(INTVAL value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_shr_int", "PIP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_shr(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_shr'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_shr(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_shr", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_shr_int(INTVAL value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_shr_int'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_shr_int(INTVAL value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_shr_int", "PI", SELF, value);
- }
-
-/*
-
-=item C<PMC *bitwise_lsr(PMC *value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_lsr'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_lsr(PMC *value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_lsr", "PPP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<PMC *bitwise_lsr_int(INTVAL value, PMC *dest)>
-
-Default fallback. Performs a multiple dispatch call for 'bitwise_lsr_int'.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_lsr_int(INTVAL value, PMC *dest) {
- PMC *result = PMCNULL;
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "bitwise_lsr_int", "PIP->P", SELF, value, dest, &result);
- return result;
- }
-
-/*
-
-=item C<void i_bitwise_lsr(PMC *value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_lsr'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_lsr(PMC *value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_lsr", "PP", SELF, value);
- }
-
-/*
-
-=item C<void i_bitwise_lsr_int(INTVAL value)>
-
-Default fallback. Performs a multiple dispatch call for 'i_bitwise_lsr_int'.
-
-=cut
-
-*/
-
- VTABLE void i_bitwise_lsr_int(INTVAL value) {
- Parrot_mmd_multi_dispatch_from_c_args(interp,
- "i_bitwise_lsr_int", "PI", SELF, value);
- }
-
-/*
-
=item C<INTVAL cmp(PMC *value)>
Default fallback. Performs a multiple dispatch call for 'cmp'.
Modified: branches/rm_cflags/src/pmc/imageio.pmc
==============================================================================
--- branches/rm_cflags/src/pmc/imageio.pmc Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/pmc/imageio.pmc Tue Feb 16 21:05:51 2010 (r44046)
@@ -324,7 +324,9 @@
*/
VTABLE void mark() {
- Parrot_gc_mark_PObj_alive(INTERP, (PObj *)(PARROT_IMAGEIO(SELF)->buffer));
+ PObj * const buffer = (PObj *)(PARROT_IMAGEIO(SELF)->buffer);
+ if (buffer)
+ Parrot_gc_mark_PObj_alive(INTERP, (PObj *)(PARROT_IMAGEIO(SELF)->buffer));
Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIO(SELF)->todo);
Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIO(SELF)->seen);
Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIO(SELF)->id_list);
@@ -357,9 +359,9 @@
*/
-VTABLE void set_pointer(void* value) {
- PARROT_IMAGEIO(SELF)->thaw_ptr = (PMC**)value;
-}
+ VTABLE void set_pointer(void* value) {
+ PARROT_IMAGEIO(SELF)->thaw_ptr = (PMC**)value;
+ }
/*
@@ -371,9 +373,9 @@
*/
-VTABLE INTVAL get_integer() {
- return PARROT_IMAGEIO(SELF)->what;
-}
+ VTABLE INTVAL get_integer() {
+ return PARROT_IMAGEIO(SELF)->what;
+ }
/*
@@ -385,11 +387,11 @@
*/
-VTABLE void push_integer(INTVAL v) {
- size_t len = PF_size_integer() * sizeof (opcode_t);
- ensure_buffer_size(interp, SELF, len);
- SET_VISIT_CURSOR(SELF, (char *)PF_store_integer(GET_VISIT_CURSOR(SELF), v));
-}
+ VTABLE void push_integer(INTVAL v) {
+ size_t len = PF_size_integer() * sizeof (opcode_t);
+ ensure_buffer_size(interp, SELF, len);
+ SET_VISIT_CURSOR(SELF, (char *)PF_store_integer(GET_VISIT_CURSOR(SELF), v));
+ }
/*
@@ -402,12 +404,12 @@
*/
-VTABLE void push_float(FLOATVAL v)
-{
- size_t len = PF_size_number() * sizeof (opcode_t);
- ensure_buffer_size(interp, SELF, len);
- SET_VISIT_CURSOR(SELF, (char *)PF_store_number(GET_VISIT_CURSOR(SELF), &v));
-}
+ VTABLE void push_float(FLOATVAL v)
+ {
+ size_t len = PF_size_number() * sizeof (opcode_t);
+ ensure_buffer_size(interp, SELF, len);
+ SET_VISIT_CURSOR(SELF, (char *)PF_store_number(GET_VISIT_CURSOR(SELF), &v));
+ }
/*
@@ -420,12 +422,12 @@
*/
-VTABLE void push_string(STRING *v)
-{
- size_t len = PF_size_string(v) * sizeof (opcode_t);
- ensure_buffer_size(INTERP, SELF, len);
- SET_VISIT_CURSOR(SELF, (char *)PF_store_string(GET_VISIT_CURSOR(SELF), v));
-}
+ VTABLE void push_string(STRING *v)
+ {
+ size_t len = PF_size_string(v) * sizeof (opcode_t);
+ ensure_buffer_size(INTERP, SELF, len);
+ SET_VISIT_CURSOR(SELF, (char *)PF_store_string(GET_VISIT_CURSOR(SELF), v));
+ }
/*
@@ -438,10 +440,10 @@
*/
-VTABLE void push_pmc(PMC *v) {
- VTABLE_set_pointer(interp, SELF, &v);
- (PARROT_IMAGEIO(SELF)->visit_pmc_now)(INTERP, v, SELF);
-}
+ VTABLE void push_pmc(PMC *v) {
+ VTABLE_set_pointer(interp, SELF, &v);
+ (PARROT_IMAGEIO(SELF)->visit_pmc_now)(INTERP, v, SELF);
+ }
/*
@@ -453,14 +455,14 @@
*/
-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);
- SET_VISIT_CURSOR(SELF, (char *)pos);
- BYTECODE_SHIFT_OK(SELF);
- return i;
-}
+ 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);
+ SET_VISIT_CURSOR(SELF, (char *)pos);
+ BYTECODE_SHIFT_OK(SELF);
+ return i;
+ }
/*
@@ -473,13 +475,13 @@
*/
-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);
- SET_VISIT_CURSOR(SELF, (char *)pos);
- BYTECODE_SHIFT_OK(SELF);
- return f;
-}
+ 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);
+ SET_VISIT_CURSOR(SELF, (char *)pos);
+ BYTECODE_SHIFT_OK(SELF);
+ return f;
+ }
/*
@@ -492,14 +494,15 @@
*/
-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);
- SET_VISIT_CURSOR(SELF, (char *)pos);
- BYTECODE_SHIFT_OK(SELF);
- return s;
-}
+ 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);
+ SET_VISIT_CURSOR(SELF, (char *)pos);
+ BYTECODE_SHIFT_OK(SELF);
+ return s;
+ }
/*
@@ -511,61 +514,61 @@
*/
-VTABLE PMC *shift_pmc() {
- PMC *result;
- VTABLE_set_pointer(interp, SELF, &result);
- (PARROT_IMAGEIO(SELF)->visit_pmc_now)(interp, NULL, SELF);
- return result;
-}
+ VTABLE PMC *shift_pmc() {
+ PMC *result;
+ VTABLE_set_pointer(interp, SELF, &result);
+ (PARROT_IMAGEIO(SELF)->visit_pmc_now)(interp, NULL, SELF);
+ return result;
+ }
-VTABLE void set_pmc(PMC *p)
-{
- UINTVAL header_length = GROW_TO_16_BYTE_BOUNDARY(PACKFILE_HEADER_BYTES);
-
- PARROT_IMAGEIO(SELF)->what = VISIT_FREEZE_NORMAL;
- PARROT_IMAGEIO(SELF)->visit_pmc_now = visit_todo_list_freeze;
- create_buffer(INTERP, p, SELF);
- ensure_buffer_size(INTERP, SELF, header_length);
- mem_sys_memcopy(GET_VISIT_CURSOR(SELF),
- PARROT_IMAGEIO(SELF)->pf->header, PACKFILE_HEADER_BYTES);
- INC_VISIT_CURSOR(SELF, header_length);
-
- PARROT_IMAGEIO(SELF)->seen = pmc_new(INTERP, enum_class_Hash);
- VTABLE_set_pointer(INTERP, PARROT_IMAGEIO(SELF)->seen,
- parrot_new_intval_hash(INTERP));
+ VTABLE void set_pmc(PMC *p)
+ {
+ UINTVAL header_length = GROW_TO_16_BYTE_BOUNDARY(PACKFILE_HEADER_BYTES);
+
+ PARROT_IMAGEIO(SELF)->what = VISIT_FREEZE_NORMAL;
+ PARROT_IMAGEIO(SELF)->visit_pmc_now = visit_todo_list_freeze;
+ create_buffer(INTERP, p, SELF);
+ ensure_buffer_size(INTERP, SELF, header_length);
+ mem_sys_memcopy(GET_VISIT_CURSOR(SELF),
+ PARROT_IMAGEIO(SELF)->pf->header, PACKFILE_HEADER_BYTES);
+ INC_VISIT_CURSOR(SELF, header_length);
- visit_loop_todo_list(INTERP, p, SELF);
-}
+ PARROT_IMAGEIO(SELF)->seen = pmc_new(INTERP, enum_class_Hash);
+ VTABLE_set_pointer(INTERP, PARROT_IMAGEIO(SELF)->seen,
+ parrot_new_intval_hash(INTERP));
-VTABLE void set_string_native(STRING *image) {
- UINTVAL header_length = GROW_TO_16_BYTE_BOUNDARY(PACKFILE_HEADER_BYTES);
- int unpacked_length;
-
- PARROT_IMAGEIO(SELF)->what = VISIT_THAW_NORMAL;
- PARROT_IMAGEIO(SELF)->visit_pmc_now = visit_todo_list_thaw;
- PARROT_IMAGEIO(SELF)->buffer = (Buffer *)image;
- PARROT_IMAGEIO(SELF)->id_list = pmc_new(INTERP, enum_class_ResizablePMCArray);
-
- PARROT_ASSERT(image->_bufstart == image->strstart);
-
- SET_VISIT_CURSOR(SELF, (char *)Buffer_bufstart(PARROT_IMAGEIO(SELF)->buffer));
- PARROT_IMAGEIO(SELF)->input_length = image->strlen;
-
- PARROT_IMAGEIO(SELF)->pf->options |= PFOPT_PMC_FREEZE_ONLY;
- unpacked_length = PackFile_unpack(interp, PARROT_IMAGEIO(SELF)->pf,
- GET_VISIT_CURSOR(SELF), PARROT_IMAGEIO(SELF)->input_length);
-
- if (!unpacked_length) {
- 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_loop_todo_list(INTERP, p, SELF);
+ }
- visit_loop_todo_list(interp, pmc, SELF);
-}
+ VTABLE void set_string_native(STRING *image) {
+ UINTVAL header_length = GROW_TO_16_BYTE_BOUNDARY(PACKFILE_HEADER_BYTES);
+ int unpacked_length;
+
+ PARROT_IMAGEIO(SELF)->what = VISIT_THAW_NORMAL;
+ PARROT_IMAGEIO(SELF)->visit_pmc_now = visit_todo_list_thaw;
+ PARROT_IMAGEIO(SELF)->buffer = (Buffer *)image;
+ PARROT_IMAGEIO(SELF)->id_list = pmc_new(INTERP, enum_class_ResizablePMCArray);
+
+ PARROT_ASSERT(image->_bufstart == image->strstart);
+
+ SET_VISIT_CURSOR(SELF, (char *)Buffer_bufstart(PARROT_IMAGEIO(SELF)->buffer));
+ PARROT_IMAGEIO(SELF)->input_length = image->strlen;
+
+ PARROT_IMAGEIO(SELF)->pf->options |= PFOPT_PMC_FREEZE_ONLY;
+ unpacked_length = PackFile_unpack(interp, PARROT_IMAGEIO(SELF)->pf,
+ GET_VISIT_CURSOR(SELF), PARROT_IMAGEIO(SELF)->input_length);
+
+ if (!unpacked_length) {
+ 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_loop_todo_list(interp, pmc, SELF);
+ }
/*
Modified: branches/rm_cflags/src/pmc/integer.pmc
==============================================================================
--- branches/rm_cflags/src/pmc/integer.pmc Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/pmc/integer.pmc Tue Feb 16 21:05:51 2010 (r44046)
@@ -179,24 +179,6 @@
/*
-=item C<PMC *get_bignum()>
-
-Return a new BigInt PMC with the value of C<SELF>.
-
-=cut
-
-*/
-
- VTABLE PMC *get_bignum() {
- const INTVAL val = SELF.get_integer();
- PMC * const ret = pmc_new(INTERP, enum_class_BigInt);
- VTABLE_set_integer_native(INTERP, ret, val);
- return ret;
- }
-
-
-/*
-
=item C<STRING *get_string()>
=item C<STRING *get_repr()>
@@ -239,10 +221,6 @@
Morphs the integer to a C<Boolean> and sets the value from C<value>.
-=item C<void set_bigint_int(INTVAL value)>
-
-Morphs the integer to a C<BigInt> and sets the value from C<value>.
-
=item C<void set_string_native(STRING *value)>
Morphs the integer to a C<String> and sets the value from C<value>.
@@ -263,11 +241,6 @@
}
- VTABLE void set_bignum_int(INTVAL value) {
- pmc_reuse(INTERP, SELF, enum_class_BigInt, 0);
- SELF.set_integer_native(value);
- }
-
VTABLE void set_string_native(STRING *value) {
pmc_reuse(INTERP, SELF, enum_class_String, 0);
@@ -301,7 +274,8 @@
else {
PMC * temp;
maybe_throw_overflow_error(interp);
- temp = VTABLE_get_bignum(interp, SELF);
+ temp = pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, a);
return VTABLE_add(interp, temp, value, dest);
}
}
@@ -323,7 +297,8 @@
MULTI PMC *add(BigInt value, PMC *dest) {
PMC *temp;
maybe_throw_overflow_error(interp);
- temp = VTABLE_get_bignum(interp, SELF);
+ temp = pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, SELF.get_integer());
return VTABLE_add(interp, temp, value, dest);
}
@@ -350,7 +325,8 @@
else {
PMC *temp;
maybe_throw_overflow_error(interp);
- temp = VTABLE_get_bignum(interp, SELF);
+ temp = pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, a);
return VTABLE_add_int(interp, temp, b, dest);
}
}
@@ -399,8 +375,8 @@
else {
PMC *temp;
maybe_throw_overflow_error(interp);
- temp = VTABLE_get_bignum(interp, SELF);
- VTABLE_i_add_int(interp, temp, b);
+ SELF = upgrade_self_to_bignum(interp, SELF);
+ VTABLE_i_add_int(interp, SELF, b);
}
}
@@ -439,7 +415,8 @@
else {
PMC *temp;
maybe_throw_overflow_error(interp);
- temp = VTABLE_get_bignum(interp, SELF);
+ temp = pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, a);
return VTABLE_subtract(interp, temp, value, dest);
}
}
@@ -461,7 +438,8 @@
MULTI PMC *subtract(BigInt value, PMC *dest) {
PMC *temp;
maybe_throw_overflow_error(interp);
- temp = VTABLE_get_bignum(interp, SELF);
+ temp = pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, SELF.get_integer());
return VTABLE_subtract(interp, temp, value, dest);
}
@@ -498,7 +476,8 @@
else {
PMC *temp;
maybe_throw_overflow_error(interp);
- temp = VTABLE_get_bignum(interp, SELF);
+ temp = pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, a);
return VTABLE_subtract_int(interp, temp, b, dest);
}
}
@@ -597,7 +576,8 @@
else {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = VTABLE_get_bignum(INTERP, SELF);
+ temp = pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, a);
return VTABLE_multiply(INTERP, temp, value, dest);
}
}
@@ -641,7 +621,8 @@
else {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = VTABLE_get_bignum(INTERP, SELF);
+ temp = pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, a);
return VTABLE_multiply_int(INTERP, temp, b, dest);
}
}
@@ -727,7 +708,8 @@
MULTI PMC *divide(BigInt value, PMC *dest) {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = VTABLE_get_bignum(INTERP, SELF);
+ temp = pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, SELF.get_integer());
return VTABLE_divide(INTERP, temp, value, dest);
}
@@ -787,7 +769,8 @@
MULTI PMC *floor_divide(BigInt value, PMC *dest) {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = VTABLE_get_bignum(INTERP, SELF);
+ temp = pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, SELF.get_integer());
return VTABLE_floor_divide(INTERP, temp, value, dest);
}
@@ -909,7 +892,8 @@
MULTI PMC *modulus(BigInt value, PMC *dest) {
PMC *temp;
maybe_throw_overflow_error(INTERP);
- temp = VTABLE_get_bignum(INTERP, SELF);
+ temp = pmc_new(interp, enum_class_BigInt);
+ VTABLE_set_integer_native(interp, temp, SELF.get_integer());
return VTABLE_modulus(INTERP, temp, value, dest);
}
@@ -993,97 +977,6 @@
intval_mod(SELF.get_integer() , (INTVAL)value));
}
-
-/*
-
-=item C<PMC *pow(PMC *value, PMC *dest)>
-
-=item C<PMC *pow_int(INTVAL value, PMC *dest)>
-
-Returns SELF to the C<value>th power in C<dest>.
-
-=item C<void i_pow(PMC *value)>
-
-=item C<void i_pow_int(INTVAL value)>
-
-Raises SELF to the C<value>th power.
-
-TODO: TT #1228: Implement Complex and BigInt RHS values for the pow() functions
-
-=cut
-
-*/
-
- MULTI PMC *pow(Integer value, PMC *dest) {
- const INTVAL v = VTABLE_get_integer(INTERP, value);
- return STATICSELF.pow_int(v, dest);
- }
-
-
- MULTI PMC *pow(DEFAULT value, PMC *dest) {
- PMC * const auxval = pmc_new(INTERP, VTABLE_type(INTERP, value));
- FLOATVAL selfval = SELF.get_integer();
- VTABLE_set_number_native(INTERP, auxval, selfval);
- return VTABLE_pow(INTERP, auxval, value, dest);
- }
-
-
- VTABLE PMC *pow_int(INTVAL b, PMC *dest) {
- const INTVAL a = SELF.get_integer();
- const INTVAL orig_b = b;
- INTVAL r = 1;
-
- if (b < 0)
- return SUPER(b, dest);
-
- if (a) {
- INTVAL temp = a;
- while (b > 0) {
- INTVAL prev = r;
- if (b & 1) {
- r *= temp;
- if (r / temp != prev) {
- PMC *temp;
- maybe_throw_overflow_error(INTERP);
- temp = VTABLE_get_bignum(INTERP, SELF);
- return VTABLE_pow_int(INTERP, temp, orig_b, dest);
- }
- }
-
- b >>= 1;
- if (!b)
- break;
-
- prev = temp;
- temp *= temp;
-
- if (prev != 0 && temp / prev != prev) {
- PMC *temp;
- maybe_throw_overflow_error(INTERP);
- temp = VTABLE_get_bignum(INTERP, SELF);
- return VTABLE_pow_int(INTERP, temp, orig_b, dest);
- }
- }
- }
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, r);
- return dest;
-
- }
-
-
- VTABLE void i_pow(PMC *value) {
- SELF.pow(value, SELF);
- }
-
-
- VTABLE void i_pow_int(INTVAL value) {
- STATICSELF.pow_int(value, SELF);
- }
-
-
/*
=item C<INTVAL is_equal(PMC *value)>
Modified: branches/rm_cflags/src/pmc/scalar.pmc
==============================================================================
--- branches/rm_cflags/src/pmc/scalar.pmc Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/pmc/scalar.pmc Tue Feb 16 21:05:51 2010 (r44046)
@@ -20,68 +20,6 @@
#include "pmc/pmc_bigint.h"
-static PMC *
-bitwise_left_shift_internal(PARROT_INTERP, PMC *self,
- PMC *dest, INTVAL shift_amount)
-{
- /* This handles both left and right shifts; the sign of shift_amount
- controls the direction, shifting left if positive and right if negative.
- If we get an error (which can only happen for left shifts) and
- PARROT_ERRORS_OVERFLOW_FLAG is set, then we throw an error, else the
- destination is promoted to a BigInt before shifting. If dest == self,
- then the shift is done in place. */
- const INTVAL base = VTABLE_get_integer(interp, self);
- INTVAL result = 0;
- int overflow_p = 0;
-
- /* Compute the shift. */
- if (shift_amount >= 8*INTVAL_SIZE) {
- /* Extreme left shift; no need to do an integer shift first. */
- overflow_p = 1;
- }
- else if (shift_amount >= 0) {
- /* Left shift. */
- result = base << shift_amount;
- overflow_p = (result >> shift_amount) != base;
- }
- else if (shift_amount > -8*INTVAL_SIZE) {
- /* Right shift. By definition, this can never overflow. */
- result = base >> -shift_amount;
- }
- else {
- /* Extreme right shift. */
- result = 0;
- }
-
- /* Store the result. */
- if (! overflow_p) {
- /* If SELF is the destination, we won't want to create a
- new PMC, because then we won't have the result in SELF.
- Only create a new PMC if we aren't saving the result
- to SELF, or if they are both NULL */
- if (dest != self || dest == NULL)
- dest = pmc_new(interp, VTABLE_type(interp, self));
-
- VTABLE_set_integer_native(interp, dest, result);
- }
- else if (PARROT_ERRORS_test(interp, PARROT_ERRORS_OVERFLOW_FLAG)) {
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_ERR_OVERFLOW,
- "Integer overflow");
- }
- else {
- /* Overflow; must promote dest to BigInt, and do a BigInt shift. */
- if (self == dest)
- pmc_reuse(interp, self, enum_class_BigInt, 0);
- else
- dest = pmc_new(interp, enum_class_BigInt);
-
- VTABLE_set_integer_native(interp, dest, base);
- VTABLE_i_bitwise_shl_int(interp, dest, shift_amount);
- }
-
- return dest;
-}
-
pmclass scalar {
/*
@@ -641,72 +579,6 @@
/*
-=item C<PMC *pow(PMC *value, PMC *dest)>
-
-=item C<PMC *pow_int(INTVAL value, PMC *dest)>
-
-=item C<PMC *pow_float(FLOATVAL value, PMC *dest)>
-
-Calculates C<SELF pow value> and returns
-the result in C<dest>. See also ops/math.ops.
-
-=item C<void i_pow(PMC *value)>
-
-=item C<void i_pow_int(INTVAL value)>
-
-=item C<void i_pow_float(FLOATVAL value)>
-
-Calculates pow inplace
-
-=cut
-
-*/
-
- MULTI PMC *pow(PMC *value, PMC *dest) {
- const FLOATVAL d = VTABLE_get_number(INTERP, value);
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_number_native(INTERP, dest, pow(SELF.get_number(), d));
- return dest;
- }
-
- VTABLE PMC *pow_int(INTVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_number_native(INTERP, dest,
- pow(SELF.get_number(), (double)value));
-
- return dest;
- }
-
- VTABLE PMC *pow_float(FLOATVAL value, PMC *dest) {
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_number_native(INTERP, dest,
- pow(SELF.get_number(), value));
- return dest;
- }
-
- VTABLE void i_pow(PMC *value) {
- const FLOATVAL d = VTABLE_get_number(INTERP, value);
-
- VTABLE_set_number_native(INTERP, SELF,
- pow(SELF.get_number(), d));
- }
-
- VTABLE void i_pow_int(INTVAL value) {
- VTABLE_set_number_native(INTERP, SELF,
- pow(SELF.get_number(), (float)value));
- }
-
- VTABLE void i_pow_float(FLOATVAL value) {
- VTABLE_set_number_native(INTERP, SELF,
- pow(SELF.get_number(), value));
- }
-
-/*
-
=item C<PMC *neg(PMC *dest)>
=item C<void i_neg()>
@@ -734,311 +606,6 @@
=back
-=head2 Bitwise Methods
-
-=over 4
-
-=item C<PMC *bitwise_or(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_or_int(INTVAL value, PMC *dest)>
-
-Returns in C<*dest> the bitwise C<OR> of the scalar and C<value>.
-
-=item C<void i_bitwise_or(PMC *value)>
-
-=item C<void i_bitwise_or_int(INTVAL value)>
-
-Inplace bitwise or.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_or(PMC *value, PMC *dest) {
- const INTVAL result = SELF.get_integer() | VTABLE_get_integer(INTERP, value);
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, result);
- return dest;
- }
-
-
- VTABLE PMC *bitwise_or_int(INTVAL value, PMC *dest) {
- const INTVAL result = SELF.get_integer() | value;
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, result);
- return dest;
- }
-
- VTABLE void i_bitwise_or(PMC *value) {
- const INTVAL result =
- SELF.get_integer() | VTABLE_get_integer(INTERP, value);
-
- SELF.set_integer_native(result);
- }
-
-
- VTABLE void i_bitwise_or_int(INTVAL value) {
- const INTVAL result = SELF.get_integer() | value;
- SELF.set_integer_native(result);
- }
-
-/*
-
-=item C<PMC *bitwise_and(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_and_int(INTVAL value, PMC *dest)>
-
-Returns in C<*dest> the bitwise C<AND> of the scalar and C<value>.
-
-=item C<void i_bitwise_and(PMC *value)>
-
-=item C<void i_bitwise_and_int(INTVAL value)>
-
-Inplace bitwise and.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_and(PMC *value, PMC *dest) {
- const INTVAL result =
- SELF.get_integer() & VTABLE_get_integer(INTERP, value);
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, result);
- return dest;
- }
-
- VTABLE PMC *bitwise_and_int(INTVAL value, PMC *dest) {
- const INTVAL result = SELF.get_integer() & value;
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, result);
- return dest;
- }
-
- VTABLE void i_bitwise_and(PMC *value) {
- const INTVAL result =
- SELF.get_integer() & VTABLE_get_integer(INTERP, value);
- SELF.set_integer_native(result);
- }
-
-
- VTABLE void i_bitwise_and_int(INTVAL value) {
- const INTVAL result = SELF.get_integer() & value;
- SELF.set_integer_native(result);
- }
-
-/*
-
-=item C<void bitwise_xor(PMC *value, PMC *dest)>
-
-=item C<void bitwise_xor_int(INTVAL value, PMC *dest)>
-
-Returns in C<*dest> the bitwise C<XOR> of the scalar and C<*value>.
-
-=item C<void i_bitwise_xor(PMC *value)>
-
-=item C<void i_bitwise_xor_int(INTVAL value)>
-
-Inplace bitwise and.
-
-=cut
-
-*/
-
- MULTI PMC *bitwise_xor(PMC *value, PMC *dest) {
- const INTVAL result =
- SELF.get_integer() ^ VTABLE_get_integer(INTERP, value);
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, result);
- return dest;
- }
-
- VTABLE PMC *bitwise_xor_int(INTVAL value, PMC *dest) {
- const INTVAL result = SELF.get_integer() ^ value;
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, result);
- return dest;
- }
-
- VTABLE void i_bitwise_xor(PMC *value) {
- const INTVAL result =
- SELF.get_integer() ^ VTABLE_get_integer(INTERP, value);
- SELF.set_integer_native(result);
- }
-
- VTABLE void i_bitwise_xor_int(INTVAL value) {
- const INTVAL result = SELF.get_integer() ^ value;
- SELF.set_integer_native(result);
- }
-
-/*
-
-=item C<PMC *bitwise_not(PMC *dest)>
-
-=item C<void i_bitwise_not()>
-
-Returns in C<*dest> the bitwise negation of the scalar and C<value>.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_not(PMC *dest) {
- const INTVAL a = ~SELF.get_integer();
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, a);
- return dest;
- }
-
- VTABLE void i_bitwise_not() {
- VTABLE_set_integer_native(INTERP, SELF, ~SELF.get_integer());
- }
-
-/*
-
-=item C<PMC *bitwise_shr(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_shr_int(INTVAL value, PMC *dest)>
-
-Returns in C<*dest> the arithmetic shift right of the scalar by C<value>.
-A negative C<value> shifts left.
-The destination may become a C<BigInt> as a result (but only if the shift amount
-is less than zero).
-
-=item C<void i_bitwise_shr(PMC *value)>
-
-=item C<void i_bitwise_shr_int(INTVAL value)>
-
-Inplace shift right. A negative C<value> shifts left.
-SELF may become a C<BigInt> as a result (but only if the shift amount is less
-than zero).
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_shr(PMC *value, PMC *dest) {
- return bitwise_left_shift_internal(INTERP, SELF, dest,
- -VTABLE_get_integer(INTERP, value));
- }
-
- VTABLE PMC *bitwise_shr_int(INTVAL value, PMC *dest) {
- return bitwise_left_shift_internal(INTERP, SELF, dest, -value);
- }
-
- VTABLE void i_bitwise_shr(PMC *value) {
- bitwise_left_shift_internal(INTERP, SELF, SELF,
- -VTABLE_get_integer(INTERP, value));
- }
-
- VTABLE void i_bitwise_shr_int(INTVAL value) {
- bitwise_left_shift_internal(INTERP, SELF, SELF, -value);
- }
-
-/*
-
-=item C<PMC *bitwise_lsr(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_lsr_int(INTVAL value, PMC *dest)>
-
-Returns in C<*dest> the logical shift right of the scalar by C<*value>.
-
-=item C<void i_bitwise_lsr(PMC *value)>
-
-=item C<void i_bitwise_lsr_int(INTVAL value)>
-
-Inplace shift right.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_lsr(PMC *value, PMC *dest) {
- const INTVAL result = (UINTVAL)SELF.get_integer() >>
- VTABLE_get_integer(INTERP, value);
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, result);
- return dest;
- }
-
- VTABLE PMC *bitwise_lsr_int(INTVAL value, PMC *dest) {
- const INTVAL result = (UINTVAL)SELF.get_integer() >> value;
-
- dest = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
-
- VTABLE_set_integer_native(INTERP, dest, result);
- return dest;
- }
-
- VTABLE void i_bitwise_lsr(PMC *value) {
- const INTVAL result = (UINTVAL)SELF.get_integer() >>
- VTABLE_get_integer(INTERP, value);
- SELF.set_integer_native(result);
- }
-
- VTABLE void i_bitwise_lsr_int(INTVAL value) {
- const INTVAL result = (UINTVAL)SELF.get_integer() >> value;
- SELF.set_integer_native(result);
- }
-
-/*
-
-=item C<PMC *bitwise_shl(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_shl_int(INTVAL value, PMC *dest)>
-
-Returns in C<*dest> the shift left of the scalar by C<*value>. A negative
-C<value> shifts right. The destination may become a C<BigInt> as a result.
-
-=item C<void i_bitwise_shl(PMC *value)>
-
-=item C<void i_bitwise_shl_int(INTVAL value)>
-
-Inplace shift left. A negative C<value> shifts right. SELF may become a
-C<BigInt> as a result.
-
-=cut
-
-*/
-
- VTABLE PMC *bitwise_shl(PMC *value, PMC *dest) {
- return bitwise_left_shift_internal(INTERP, SELF, dest,
- VTABLE_get_integer(INTERP, value));
- }
-
- VTABLE PMC *bitwise_shl_int(INTVAL value, PMC *dest) {
- return bitwise_left_shift_internal(INTERP, SELF, dest, value);
- }
-
- VTABLE void i_bitwise_shl(PMC *value) {
- bitwise_left_shift_internal(INTERP, SELF, SELF,
- VTABLE_get_integer(INTERP, value));
- }
-
- VTABLE void i_bitwise_shl_int(INTVAL value) {
- bitwise_left_shift_internal(INTERP, SELF, SELF, value);
- }
-
-/*
-
-=back
-
=head2 String Methods
=over 4
Modified: branches/rm_cflags/src/pmc/string.pmc
==============================================================================
--- branches/rm_cflags/src/pmc/string.pmc Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/pmc/string.pmc Tue Feb 16 21:05:51 2010 (r44046)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2003-2009, Parrot Foundation.
+Copyright (C) 2003-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -72,7 +72,7 @@
VTABLE PMC *clone() {
PMC * const dest = pmc_new(INTERP, SELF->vtable->base_type);
- VTABLE_set_string_native(INTERP, dest, Parrot_str_copy(INTERP, SELF.get_string()));
+ VTABLE_set_string_native(INTERP, dest, SELF.get_string());
return dest;
}
@@ -87,8 +87,9 @@
*/
VTABLE INTVAL get_integer() {
- STRING * const s = SELF.get_string();
- return Parrot_str_to_int(INTERP, s);
+ STRING *str_val;
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return Parrot_str_to_int(INTERP, str_val);
}
/*
@@ -102,25 +103,9 @@
*/
VTABLE FLOATVAL get_number() {
- STRING * const s = SELF.get_string();
- return Parrot_str_to_num(INTERP, s);
- }
-
-/*
-
-=item C<PMC *get_bignum()>
-
-Returns the big numbers representation of the string.
-
-=cut
-
-*/
-
- VTABLE PMC *get_bignum() {
- STRING * const s = SELF.get_string();
- PMC * const ret = pmc_new(INTERP, enum_class_BigInt);
- VTABLE_set_string_native(INTERP, ret, s);
- return ret;
+ STRING *str_val;
+ GET_ATTR_str_val(interp, SELF, str_val);
+ return Parrot_str_to_num(INTERP, str_val);
}
/*
@@ -136,6 +121,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;
}
@@ -150,8 +136,9 @@
*/
VTABLE INTVAL get_bool() {
- STRING * const s = SELF.get_string();
- return Parrot_str_boolean(INTERP, s);
+ STRING *str_val;
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return Parrot_str_boolean(INTERP, str_val);
}
/*
@@ -200,9 +187,8 @@
*/
VTABLE void set_string_native(STRING *value) {
- /* in lieu of a STRINGNULL, promote any NULL STRINGs to empty ones */
if (!value)
- value = Parrot_str_new(INTERP, NULL, 0);
+ value = STRINGNULL;
/* Only allow constant PMCs to embed constant strings */
if (PObj_constant_TEST(SELF) && !PObj_constant_TEST(value)) {
@@ -227,9 +213,10 @@
*/
VTABLE void assign_string_native(STRING *value) {
- if (!STRING_IS_NULL(value))
+ if (!STRING_IS_NULL(value)) {
SET_ATTR_str_val(INTERP, SELF,
- Parrot_str_set(INTERP, SELF.get_string(), value));
+ Parrot_str_set(INTERP, SELF.get_string(), value));
+ }
else
SET_ATTR_str_val(INTERP, SELF, NULL);
}
@@ -250,172 +237,6 @@
/*
-=item C<PMC *bitwise_ors(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_ors_str(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_ands(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_ands_str(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_xors(PMC *value, PMC *dest)>
-
-=item C<PMC *bitwise_xors_str(PMC *value, PMC *dest)>
-
-=item C<void bitwise_nots(PMC *value)>
-
-These functions perform bitwise operations on entire
-strings, and place the result in C<dest>.
-
-=item C<void i_bitwise_ors(PMC *value)>
-
-=item C<void i_bitwise_ors_str(PMC *value)>
-
-=item C<void i_bitwise_ands(PMC *value)>
-
-=item C<void i_bitwise_ands_str(PMC *value)>
-
-=item C<void i_bitwise_xors(PMC *value)>
-
-=item C<void i_bitwise_xors_str(PMC *value)>
-
-=item C<void i_bitwise_nots(PMC *value)>
-
-These functions perform bitwise operations on entire
-strings in place.
-
-=cut
-
-*/
- VTABLE PMC *bitwise_ors(PMC *value, PMC *dest) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
- STRING * const v = VTABLE_get_string(INTERP, value);
-
- if (!dest)
- dest = pmc_new(INTERP, SELF->vtable->base_type);
-
- VTABLE_set_string_native(INTERP, dest,
- Parrot_str_bitwise_or(INTERP, s, v, NULL));
-
- return dest;
- }
-
- VTABLE PMC *bitwise_ors_str(STRING *value, PMC *dest) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
-
- if (!dest)
- dest = pmc_new(INTERP, SELF->vtable->base_type);
-
- VTABLE_set_string_native(INTERP, dest,
- Parrot_str_bitwise_or(INTERP, s, value, NULL));
-
- return dest;
- }
-
- VTABLE void i_bitwise_ors(PMC *value) {
- STRING *s = VTABLE_get_string(INTERP, SELF);
- STRING * const v = VTABLE_get_string(INTERP, value);
- SELF.set_string_native(Parrot_str_bitwise_or(INTERP, s, v, &s));
- }
-
- VTABLE void i_bitwise_ors_str(STRING *value) {
- STRING *s = VTABLE_get_string(INTERP, SELF);
- SELF.set_string_native(Parrot_str_bitwise_or(INTERP, s, value, &s));
- }
-
- VTABLE PMC *bitwise_ands(PMC *value, PMC *dest) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
- STRING * const v = VTABLE_get_string(INTERP, value);
-
- if (!dest)
- dest = pmc_new(INTERP, SELF->vtable->base_type);
-
- VTABLE_set_string_native(INTERP, dest,
- Parrot_str_bitwise_and(INTERP, s, v, NULL));
-
- return dest;
- }
-
- VTABLE PMC *bitwise_ands_str(STRING *value, PMC *dest) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
-
- if (!dest)
- dest = pmc_new(INTERP, SELF->vtable->base_type);
-
- VTABLE_set_string_native(INTERP, dest,
- Parrot_str_bitwise_and(INTERP, s, value, NULL));
-
- return dest;
- }
-
-
- VTABLE void i_bitwise_ands(PMC *value) {
- STRING *s = VTABLE_get_string(INTERP, SELF);
- STRING * const v = VTABLE_get_string(INTERP, value);
- SELF.set_string_native(Parrot_str_bitwise_and(INTERP, s, v, &s));
- }
-
- VTABLE void i_bitwise_ands_str(STRING *value) {
- STRING *s = VTABLE_get_string(INTERP, SELF);
- SELF.set_string_native(Parrot_str_bitwise_and(INTERP, s, value, &s));
- }
-
- VTABLE PMC *bitwise_xors(PMC *value, PMC *dest) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
- STRING * const v = VTABLE_get_string(INTERP, value);
-
- if (!dest)
- dest = pmc_new(INTERP, SELF->vtable->base_type);
-
- VTABLE_set_string_native(INTERP, dest,
- Parrot_str_bitwise_xor(INTERP, s, v, NULL));
-
- return dest;
- }
-
- VTABLE PMC *bitwise_xors_str(STRING *value, PMC *dest) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
-
- if (!dest)
- dest = pmc_new(INTERP, SELF->vtable->base_type);
-
- VTABLE_set_string_native(INTERP, dest,
- Parrot_str_bitwise_xor(INTERP, s, value, NULL));
-
- return dest;
- }
-
- VTABLE void i_bitwise_xors(PMC *value) {
- STRING *s = VTABLE_get_string(INTERP, SELF);
- STRING * const v = VTABLE_get_string(INTERP, value);
- SELF.set_string_native(Parrot_str_bitwise_xor(INTERP, s, v, &s));
- }
-
- VTABLE void i_bitwise_xors_str(STRING *value) {
- STRING *s = VTABLE_get_string(INTERP, SELF);
- SELF.set_string_native(Parrot_str_bitwise_xor(INTERP, s, value, &s));
- }
-
- VTABLE PMC *bitwise_nots(PMC *dest) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
-
- if (!dest)
- dest = pmc_new(INTERP, SELF->vtable->base_type);
-
- VTABLE_set_string_native(INTERP, dest,
- Parrot_str_bitwise_not(INTERP, s, NULL));
-
- return dest;
- }
-
- VTABLE void i_bitwise_nots() {
- STRING *s = VTABLE_get_string(INTERP, SELF);
- VTABLE_set_string_native(
- INTERP, SELF, Parrot_str_bitwise_not(INTERP, s, &s));
- }
-
-/*
-
=item C<INTVAL is_equal(PMC *value)>
Compares the string with C<value>; returns true if
@@ -425,9 +246,10 @@
*/
VTABLE INTVAL is_equal(PMC *value) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
+ STRING *str_val;
STRING * const v = VTABLE_get_string(INTERP, value);
- return (INTVAL)(Parrot_str_equal(INTERP, s, v));
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return (INTVAL)(Parrot_str_equal(INTERP, str_val, v));
}
MULTI INTVAL is_equal(PMC *value) {
@@ -446,8 +268,13 @@
*/
VTABLE INTVAL is_equal_num(PMC *value) {
- const FLOATVAL sf = Parrot_str_to_num(INTERP, VTABLE_get_string(INTERP, SELF));
+ STRING *str_val;
+ FLOATVAL sf;
const FLOATVAL vf = VTABLE_get_number(INTERP, value);
+
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ sf = Parrot_str_to_num(INTERP, str_val);
+
return (INTVAL)(sf == vf);
}
@@ -462,9 +289,10 @@
*/
VTABLE INTVAL is_equal_string(PMC *value) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
+ STRING *str_val;
STRING * const v = VTABLE_get_string(INTERP, value);
- return Parrot_str_equal(INTERP, s, v);
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return Parrot_str_equal(INTERP, str_val, v);
}
/*
@@ -479,9 +307,10 @@
*/
VTABLE INTVAL cmp(PMC *value) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
+ STRING *str_val;
STRING * const v = VTABLE_get_string(INTERP, value);
- return Parrot_str_compare(INTERP, s, v);
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return Parrot_str_compare(INTERP, str_val, v);
}
/*
@@ -496,8 +325,11 @@
*/
VTABLE INTVAL cmp_num(PMC *value) {
- const FLOATVAL sf = Parrot_str_to_num(INTERP, VTABLE_get_string(INTERP, SELF));
+ STRING *str_val;
+ FLOATVAL sf;
const FLOATVAL vf = VTABLE_get_number(INTERP, value);
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ sf = Parrot_str_to_num(INTERP, str_val);
if (sf < vf)
return (INTVAL)(-1);
@@ -520,9 +352,10 @@
*/
VTABLE INTVAL cmp_string(PMC *value) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
+ STRING *str_val;
STRING * const v = VTABLE_get_string(INTERP, value);
- return Parrot_str_compare(INTERP, s, v);
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return Parrot_str_compare(INTERP, str_val, v);
}
/*
@@ -536,8 +369,9 @@
*/
VTABLE void substr(INTVAL offset, INTVAL length, PMC *dest) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
- STRING * const s2 = Parrot_str_substr(INTERP, s, offset, length, NULL, 0);
+ STRING *str_val, *s2;
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ s2 = Parrot_str_substr(INTERP, str_val, offset, length, NULL, 0);
VTABLE_set_string_native(INTERP, dest, s2);
}
@@ -552,8 +386,9 @@
*/
VTABLE STRING *substr_str(INTVAL offset, INTVAL length) {
- STRING * const s = VTABLE_get_string(INTERP, SELF);
- return Parrot_str_substr(INTERP, s, offset, length, NULL, 0);
+ STRING *str_val;
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return Parrot_str_substr(INTERP, str_val, offset, length, NULL, 0);
}
/*
@@ -568,9 +403,14 @@
*/
VTABLE INTVAL exists_keyed(PMC *key) {
- const INTVAL n = Parrot_str_byte_length(INTERP, VTABLE_get_string(INTERP, SELF));
+ STRING *str_val;
+ INTVAL n;
const INTVAL k = VTABLE_get_integer(INTERP, key);
- return (INTVAL)((k>=0 && k<=n) || (k<0 && -k<=n));
+
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ n = Parrot_str_byte_length(INTERP, str_val);
+
+ return (INTVAL)((k >= 0 && k <= n) || (k < 0 && -k <= n));
}
/*
@@ -601,8 +441,9 @@
}
VTABLE STRING *get_string_keyed_int(INTVAL pos) {
- STRING * const s = SELF.get_string();
- return Parrot_str_substr(INTERP, s, pos, 1, NULL, 0);
+ STRING *str_val;
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return Parrot_str_substr(INTERP, str_val, pos, 1, NULL, 0);
}
VTABLE INTVAL get_integer_keyed(PMC *key) {
@@ -610,8 +451,9 @@
}
VTABLE INTVAL get_integer_keyed_int(INTVAL pos) {
- STRING * const s = SELF.get_string();
- return string_ord(INTERP, s, pos);
+ STRING *str_val;
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return string_ord(INTERP, str_val, pos);
}
VTABLE PMC *get_pmc_keyed(PMC *key) {
@@ -629,10 +471,10 @@
}
VTABLE void set_string_keyed_int(INTVAL pos, STRING * const value) {
- STRING * const s = SELF.get_string();
- const INTVAL len = Parrot_str_byte_length(INTERP, value);
- Parrot_str_replace(INTERP, s, pos, len, value, NULL);
- VTABLE_set_string_native(INTERP, SELF, s);
+ 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);
}
VTABLE void set_integer_keyed(PMC *key, INTVAL value) {
@@ -640,10 +482,10 @@
}
VTABLE void set_integer_keyed_int(INTVAL pos, INTVAL value) {
- STRING * const s = SELF.get_string();
+ STRING *str_val;
STRING * const c = string_chr(INTERP, (UINTVAL) value);
- Parrot_str_replace(INTERP, s, pos, 1, c, NULL);
- VTABLE_set_string_native(INTERP, SELF, s);
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ Parrot_str_replace(INTERP, str_val, pos, 1, c, &str_val);
}
VTABLE void set_pmc_keyed(PMC *key, PMC *value) {
@@ -763,7 +605,9 @@
*/
VTABLE INTVAL elements() {
- return Parrot_str_byte_length(INTERP, VTABLE_get_string(INTERP, SELF));
+ STRING *str_val;
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ return Parrot_str_byte_length(INTERP, str_val);
}
VTABLE PMC *get_iter() {
@@ -786,8 +630,10 @@
*/
VTABLE void freeze(PMC *info) {
+ STRING *str_val;
SUPER(info);
- VTABLE_push_string(INTERP, info, VTABLE_get_string(INTERP, SELF));
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ VTABLE_push_string(INTERP, info, str_val);
}
/*
@@ -820,8 +666,11 @@
*/
METHOD lower() {
- STRING * const s = Parrot_str_downcase(INTERP,
- VTABLE_get_string(INTERP, SELF));
+ STRING *str_val;
+ STRING *s;
+
+ GET_ATTR_str_val(INTERP, SELF, str_val);
+ s = Parrot_str_downcase(INTERP, str_val);
RETURN(STRING *s);
}
Modified: branches/rm_cflags/src/pmc_freeze.c
==============================================================================
--- branches/rm_cflags/src/pmc_freeze.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/pmc_freeze.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -31,6 +31,8 @@
#define THAW_BLOCK_GC_SIZE 100000
+/* HEADERIZER HFILE: include/parrot/pmc_freeze.h */
+
/*
=head2 Public Interface
Modified: branches/rm_cflags/src/string/api.c
==============================================================================
--- branches/rm_cflags/src/string/api.c Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/string/api.c Tue Feb 16 21:05:51 2010 (r44046)
@@ -276,7 +276,8 @@
if (interp->parent_interpreter) {
interp->hash_seed = interp->parent_interpreter->hash_seed;
}
- else {
+ /* 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);
@@ -495,21 +496,9 @@
ASSERT_ARGS(Parrot_str_concat)
if (a && a->strlen) {
if (b && b->strlen) {
- const ENCODING *enc;
- const CHARSET *cs = string_rep_compatible(interp, a, b, &enc);
- STRING *result;
-
- if (!cs) {
- cs = a->charset;
- enc = a->encoding;
- }
- result = Parrot_str_new_init(interp, NULL, a->bufused + b->bufused,
- enc, cs, 0);
-
- result = Parrot_str_append(interp, result, a);
- result = Parrot_str_append(interp, result, b);
-
- return result;
+ STRING *result = Parrot_str_copy(interp, a);
+ Parrot_str_write_COW(interp, result);
+ return Parrot_str_append(interp, result, b);
}
return Parrot_str_copy(interp, a);
@@ -572,10 +561,10 @@
}
else {
/* upgrade strings for concatenation */
- enc = (a->encoding == Parrot_utf16_encoding_ptr ||
- b->encoding == Parrot_utf16_encoding_ptr ||
- a->encoding == Parrot_ucs2_encoding_ptr ||
- b->encoding == Parrot_ucs2_encoding_ptr)
+ enc = (a->encoding == Parrot_utf16_encoding_ptr
+ || 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;
Modified: branches/rm_cflags/src/vtable.tbl
==============================================================================
--- branches/rm_cflags/src/vtable.tbl Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/src/vtable.tbl Tue Feb 16 21:05:51 2010 (r44046)
@@ -41,8 +41,6 @@
FLOATVAL get_number_keyed_int(INTVAL key)
FLOATVAL get_number_keyed_str(STRING* key)
-PMC* get_bignum()
-
STRING* get_string()
STRING* get_repr()
STRING* get_string_keyed(PMC* key)
@@ -72,10 +70,6 @@
void set_number_keyed_int(INTVAL key, FLOATVAL value)
void set_number_keyed_str(STRING* key, FLOATVAL value)
-void set_bignum_int(INTVAL value)
-void set_bignum_num(FLOATVAL value)
-void set_bignum_str(STRING* value)
-
void set_string_native(STRING* value)
void assign_string_native(STRING* value)
void set_string_keyed(PMC* key, STRING* value)
@@ -177,14 +171,6 @@
void i_modulus_int(INTVAL value) :write
void i_modulus_float(FLOATVAL value) :write
-PMC* pow(PMC* value, PMC* dest)
-PMC* pow_int(INTVAL value, PMC* dest)
-PMC* pow_float(FLOATVAL value, PMC* dest)
-
-void i_pow(PMC* value) :write
-void i_pow_int(INTVAL value) :write
-void i_pow_float(FLOATVAL value) :write
-
void increment() :write
void decrement() :write
@@ -194,67 +180,6 @@
PMC* neg(PMC* dest)
void i_neg() :write
-[BITWISE]
-PMC* bitwise_or(PMC* value, PMC* dest)
-PMC* bitwise_or_int(INTVAL value, PMC* dest)
-
-void i_bitwise_or(PMC* value) :write
-void i_bitwise_or_int(INTVAL value) :write
-
-PMC* bitwise_and(PMC* value, PMC* dest)
-PMC* bitwise_and_int(INTVAL value, PMC* dest)
-
-void i_bitwise_and(PMC* value) :write
-void i_bitwise_and_int(INTVAL value) :write
-
-PMC* bitwise_xor(PMC* value, PMC* dest)
-PMC* bitwise_xor_int(INTVAL value, PMC* dest)
-
-void i_bitwise_xor(PMC* value) :write
-void i_bitwise_xor_int(INTVAL value) :write
-
-PMC* bitwise_ors(PMC* value, PMC* dest)
-PMC* bitwise_ors_str(STRING* value, PMC* dest)
-
-void i_bitwise_ors(PMC* value) :write
-void i_bitwise_ors_str(STRING* value) :write
-
-PMC* bitwise_ands(PMC* value, PMC* dest)
-PMC* bitwise_ands_str(STRING* value, PMC* dest)
-
-void i_bitwise_ands(PMC* value) :write
-void i_bitwise_ands_str(STRING* value) :write
-
-PMC* bitwise_xors(PMC* value, PMC* dest)
-PMC* bitwise_xors_str(STRING* value, PMC* dest)
-
-void i_bitwise_xors(PMC* value) :write
-void i_bitwise_xors_str(STRING* value) :write
-
-PMC* bitwise_not(PMC* dest)
-void i_bitwise_not() :write
-
-PMC* bitwise_nots(PMC* dest)
-void i_bitwise_nots() :write
-
-PMC* bitwise_shl(PMC* value, PMC* dest)
-PMC* bitwise_shl_int(INTVAL value, PMC* dest)
-
-void i_bitwise_shl(PMC* value) :write
-void i_bitwise_shl_int(INTVAL value) :write
-
-PMC* bitwise_shr(PMC* value, PMC* dest)
-PMC* bitwise_shr_int(INTVAL value, PMC* dest)
-
-void i_bitwise_shr(PMC* value) :write
-void i_bitwise_shr_int(INTVAL value) :write
-
-PMC* bitwise_lsr(PMC* value, PMC* dest)
-PMC* bitwise_lsr_int(INTVAL value, PMC* dest)
-
-void i_bitwise_lsr(PMC* value) :write
-void i_bitwise_lsr_int(INTVAL value) :write
-
[CMP]
INTVAL is_equal(PMC* value)
INTVAL is_equal_num(PMC* value)
Modified: branches/rm_cflags/t/codingstd/c_function_docs.t
==============================================================================
--- branches/rm_cflags/t/codingstd/c_function_docs.t Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/t/codingstd/c_function_docs.t Tue Feb 16 21:05:51 2010 (r44046)
@@ -99,12 +99,6 @@
compilers/imcc/reg_alloc.c
compilers/imcc/symreg.c
compilers/pirc/src/pircapi.c
-compilers/pirc/src/pircompiler.c
-compilers/pirc/src/piremit.c
-compilers/pirc/src/pirmacro.c
-compilers/pirc/src/pirpcc.c
-compilers/pirc/src/pirregalloc.c
-compilers/pirc/src/pirsymbol.c
config/gen/platform/ansi/dl.c
config/gen/platform/ansi/exec.c
config/gen/platform/ansi/time.c
@@ -123,11 +117,9 @@
config/gen/platform/openbsd/memexec.c
config/gen/platform/solaris/math.c
config/gen/platform/solaris/time.c
-examples/c/nanoparrot.c
examples/c/pbc_info.c
examples/compilers/japhc.c
src/atomic/gcc_x86.c
-src/debug.c
src/gc/generational_ms.c
src/io/io_string.c
src/string/charset/ascii.c
Modified: branches/rm_cflags/t/op/arithmetics.t
==============================================================================
--- branches/rm_cflags/t/op/arithmetics.t Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/t/op/arithmetics.t Tue Feb 16 21:05:51 2010 (r44046)
@@ -20,7 +20,7 @@
.sub main :main
.include 'test_more.pir'
- plan(129)
+ plan(130)
take_the_negative_of_a_native_integer()
take_the_absolute_of_a_native_integer()
@@ -44,6 +44,7 @@
lcm_test()
gcd_test()
integer_overflow_with_pow()
+ bnot_p_p_creates_destination()
# END_OF_TESTS
.end
@@ -558,6 +559,12 @@
end:
.end
+.sub 'bnot_p_p_creates_destination'
+ $P0 = box 3
+ $P1 = bnot $P0
+ is( $P1, -4, 'bnot_p_p_creates_destination')
+.end
+
# Local Variables:
# mode: pir
# cperl-indent-level: 4
Modified: branches/rm_cflags/t/op/arithmetics_pmc.t
==============================================================================
--- branches/rm_cflags/t/op/arithmetics_pmc.t Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/t/op/arithmetics_pmc.t Tue Feb 16 21:05:51 2010 (r44046)
@@ -20,7 +20,7 @@
.include 'test_more.pir'
.include "iglobals.pasm"
- plan(68)
+ plan(44)
# Don't check BigInt or BigNum without gmp
.local pmc interp # a handle to our interpreter object.
@@ -34,8 +34,8 @@
run_tests_for('Float')
if gmp goto do_big_ones
- skip( 34, "will not test BigInt or BigNum without gmp" )
- goto end
+ skip( 22, "will not test BigInt or BigNum without gmp" )
+ goto end
do_big_ones:
run_tests_for('BigInt')
@@ -54,15 +54,9 @@
test_concatenate(type)
test_logical_xor(type)
test_logical_or(type)
- test_bitwise_shr(type)
- test_bitwise_or(type)
- test_bitwise_shl(type)
- test_bitwise_xor(type)
test_modulus(type)
test_pow(type)
test_subtract(type)
- test_bitwise_lsr(type)
- test_bitwise_and(type)
.end
.sub test_add
@@ -86,7 +80,7 @@
add $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -116,7 +110,7 @@
div $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -146,7 +140,7 @@
mul $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -176,7 +170,7 @@
fdiv $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -206,7 +200,7 @@
and $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -236,7 +230,7 @@
concat $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -266,7 +260,7 @@
xor $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -296,127 +290,7 @@
or $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
- is( $I0, 0, $S0 )
- goto end
-
- done:
- ok(1, 'ignoring exceptions')
- end:
-.end
-
-.sub test_bitwise_shr
- .param pmc type
-
- $P0 = new type
- $P0 = 40
- $P1 = new type
- $P1 = 2
- $P2 = new type
- $P2 = 115200
-
- $P99 = $P2
-
- $S0 = "original dest is untouched in bitwise_shr for "
- $S1 = type
- concat $S0, $S1
-
- # ignore exceptions
- push_eh done
- shr $P2, $P0, $P1
-
- $I0 = cmp $P99, 115200
-
- is( $I0, 0, $S0 )
- goto end
-
- done:
- ok(1, 'ignoring exceptions')
- end:
-.end
-
-.sub test_bitwise_or
- .param pmc type
- $P0 = new type
- $P0 = 40
- $P1 = new type
- $P1 = 2
- $P2 = new type
- $P2 = 115200
-
- $P99 = $P2
-
- $S0 = "original dest is untouched in bitwise_or for "
- $S1 = type
- concat $S0, $S1
-
- # ignore exceptions
- push_eh done
- bor $P2, $P0, $P1
-
- $I0 = cmp $P99, 115200
-
- is( $I0, 0, $S0 )
- goto end
-
- done:
- ok(1, 'ignoring exceptions')
- end:
-.end
-
-.sub test_bitwise_shl
- .param pmc type
-
- $P0 = new type
- $P0 = 40
- $P1 = new type
- $P1 = 2
- $P2 = new type
- $P2 = 115200
-
- $P99 = $P2
-
- $S0 = "original dest is untouched in bitwise_shl for "
- $S1 = type
- concat $S0, $S1
-
- # ignore exceptions
- push_eh done
- shl $P2, $P0, $P1
-
- $I0 = cmp $P99, 115200
-
- is( $I0, 0, $S0 )
- goto end
-
- done:
- ok(1, 'ignoring exceptions')
- end:
-.end
-
-.sub test_bitwise_xor
- .param pmc type
-
- $P0 = new type
- $P0 = 40
- $P1 = new type
- $P1 = 2
- $P2 = new type
- $P2 = 115200
-
- $P99 = $P2
-
- $S0 = "original dest is untouched in bitwise_xor for "
- $S1 = type
- concat $S0, $S1
-
- # ignore exceptions
- push_eh done
- bxor $P2, $P0, $P1
-
- $I0 = cmp $P99, 115200
-
is( $I0, 0, $S0 )
goto end
@@ -446,7 +320,7 @@
mod $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -476,7 +350,7 @@
pow $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
+
is( $I0, 0, $S0 )
goto end
@@ -506,67 +380,7 @@
sub $P2, $P0, $P1
$I0 = cmp $P99, 115200
-
- is( $I0, 0, $S0 )
- goto end
-
- done:
- ok(1, 'ignoring exceptions')
- end:
-.end
-
-.sub test_bitwise_lsr
- .param pmc type
- $P0 = new type
- $P0 = 40
- $P1 = new type
- $P1 = 2
- $P2 = new type
- $P2 = 115200
-
- $P99 = $P2
-
- $S0 = "original dest is untouched in bitwise_lsr for "
- $S1 = type
- concat $S0, $S1
-
- # ignore exceptions
- push_eh done
- lsr $P2, $P0, $P1
-
- $I0 = cmp $P99, 115200
-
- is( $I0, 0, $S0 )
- goto end
-
- done:
- ok(1, 'ignoring exceptions')
- end:
-.end
-
-.sub test_bitwise_and
- .param pmc type
-
- $P0 = new type
- $P0 = 40
- $P1 = new type
- $P1 = 2
- $P2 = new type
- $P2 = 115200
-
- $P99 = $P2
-
- $S0 = "original dest is untouched in bitwise_and for "
- $S1 = type
- concat $S0, $S1
-
- # ignore exceptions
- push_eh done
- band $P2, $P0, $P1
-
- $I0 = cmp $P99, 115200
-
is( $I0, 0, $S0 )
goto end
Deleted: branches/rm_cflags/t/op/bitwise.t
==============================================================================
--- branches/rm_cflags/t/op/bitwise.t Tue Feb 16 21:05:51 2010 (r44045)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,474 +0,0 @@
-#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-t/op/bitwise.t - Bitwise Ops
-
-=head1 SYNOPSIS
-
- % prove t/op/bitwise.t
-
-=head1 DESCRIPTION
-
-Tests various bitwise logical operations.
-
-=cut
-
-.sub main :main
- .include 'test_more.pir'
-
- plan(68)
-
- test_shr_i_i_i_shift_rt_()
- test_shr_i_i_shift_rt_()
- test_shr_i_i_ic_shift_rt_()
- test_shr_i_ic_i_shift_rt_()
- test_shr_i_ic_ic_shift_rt_()
- test_lsr_i_ic_ic_shift_rt_()
- test_lsr_i_ic_shift_rt()
- test_lsr_i_i_i_shift_rt()
- test_lsr_i_i_ic_shift_rt()
- test_shr_i_i_ic_shift_rt_negative()
- test_shl_i_i_i_shift_lt()
- test_shl_i_i_ic_shift_lt()
- test_shl_i_ic_i_shift_lt()
- test_shl_i_ic_ic_shift_lt()
- test_shl_i_i_shift_lt()
- test_bxor_i_i_i_xor()
- test_bxor_i_i_ic_xor()
- test_bxor_i_ic_xor()
- test_band_i_i_i_and()
- test_band_i_i_ic_and()
- test_band_i_i_ic_and_2()
- test_bor_i_i_i()
- test_bor_i_i_ic()
- test_bor_i_i_ic_2()
- test_bnot_i_i_2()
- test_rot_i_i_ic_ic()
- test_i_reg_shl_and_pmc_shl_are_consistent()
- # END_OF_TESTS
-.end
-
-.macro exception_is ( M )
- .local pmc exception
- .local string message
- .get_results (exception)
-
- message = exception['message']
- is( message, .M, .M )
-.endm
-
-.sub test_shr_i_i_i_shift_rt_
- set $I0, 0b001100
- set $I1, 0b010100
- set $I2, 1
- set $I3, 2
- shr $I4, $I0, $I2
- shr $I2, $I0, $I2
- shr $I1, $I1, $I3
- is( $I4, "6", 'shr_i_i_i (>>)' )
- is( $I2, "6", 'shr_i_i_i (>>)' )
- is( $I1, "5", 'shr_i_i_i (>>)' )
- is( $I0, "12", 'shr_i_i_i (>>)' )
-.end
-
-.sub test_shr_i_i_shift_rt_
- set $I0, 0b001100
- set $I1, 0b010100
- set $I2, 1
- set $I3, 2
- shr $I0, $I2
- shr $I1, $I3
- is( $I0, "6", 'shr_i_i (>>)' )
- is( $I1, "5", 'shr_i_i (>>)' )
-.end
-
-.sub test_shr_i_i_ic_shift_rt_
- set $I0, 0b001100
- set $I1, 0b010100
- shr $I2, $I0, 1
- shr $I1, $I1, 2
- is( $I2, "6", 'shr_i_i_ic (>>)' )
- is( $I1, "5", 'shr_i_i_ic (>>)' )
- is( $I0, "12", 'shr_i_i_ic (>>)' )
-.end
-
-.sub test_shr_i_ic_i_shift_rt_
- set $I0, 1
- set $I1, 2
- shr $I2, 0b001100, $I0
- shr $I1, 0b010100, $I1
- is( $I2, "6", 'shr_i_ic_i (>>)' )
- is( $I1, "5", 'shr_i_ic_i (>>)' )
-.end
-
-.sub test_shr_i_ic_ic_shift_rt_
- shr $I2, 0b001100, 1
- shr $I1, 0b010100, 2
- is( $I2, "6", 'shr_i_ic_ic (>>)' )
- is( $I1, "5", 'shr_i_ic_ic (>>)' )
-.end
-
-# The crux of this test is that a proper logical right shift
-# will clear the most significant bit, so the shifted value
-# will be a positive value on any 2's or 1's complement CPU
-.sub test_lsr_i_ic_ic_shift_rt_
- lsr $I2, -40, 1
- lt $I2, 0, BAD
- ok( 1, 'lsr_i_ic_ic (>>)' )
- goto END
- BAD:
- ok( 0, 'lsr_i_ic_ic (>>)' )
- END:
-.end
-
-.sub test_lsr_i_ic_shift_rt
- set $I2, -100
- lsr $I2, 1
- lt $I2, 0, BAD
- ok( 1, 'lsr_i_ic (>>) OK')
- goto END
- BAD:
- ok( 0, 'lsr_i_ic (>>)')
- END:
-.end
-
-.sub test_lsr_i_i_i_shift_rt
- set $I0, -40
- set $I1, 1
- lsr $I2, $I0, $I1
- lt $I2, 0, BAD
- ok( 1, 'lsr_i_i_i (>>) OK')
- goto END
- BAD:
- ok( 0, 'lsr_i_i_i (>>)')
- END:
-.end
-
-# ... and the missing op signature was untested and wrong in JIT/i386
-.sub test_lsr_i_i_ic_shift_rt
- set $I0, -40
- lsr $I2, $I0, 1
- lt $I2, 0, BAD
- ok( 1, 'lsr_i_i_ic (>>) OK')
- goto END
- BAD:
- ok( 0, 'lsr_i_i_ic (>>)')
- END:
-.end
-
-.sub test_shr_i_i_ic_shift_rt_negative
- set $I0, -40
- shr $I2, $I0, 1
- ge $I2, 0, BAD
- ok( 1, 'shr_i_i_ic (>>) negative OK')
- goto END
- BAD:
- ok( 0, 'shr_i_i_ic (>>) negative')
- END:
-.end
-
-.sub test_shl_i_i_i_shift_lt
- set $I0, 0b001100
- set $I1, 0b010100
- set $I2, 2
- set $I3, 1
- shl $I4, $I0, $I2
- shl $I2, $I0, $I2
- shl $I1, $I1, $I3
- is( $I4, "48", 'shl_i_i_i (<<)' )
- is( $I2, "48", 'shl_i_i_i (<<)' )
- is( $I1, "40", 'shl_i_i_i (<<)' )
- is( $I0, "12", 'shl_i_i_i (<<)' )
-.end
-
-.sub test_shl_i_i_ic_shift_lt
- set $I0, 0b001100
- set $I1, 0b010100
- shl $I2, $I0, 2
- shl $I1, $I1, 1
- is( $I2, "48", 'shl_i_i_ic (<<)' )
- is( $I1, "40", 'shl_i_i_ic (<<)' )
- is( $I0, "12", 'shl_i_i_ic (<<)' )
-.end
-
-.sub test_shl_i_ic_i_shift_lt
- set $I0, 2
- set $I1, 1
- shl $I2, 0b001100, $I0
- shl $I1, 0b010100, $I1
- is( $I2, "48", 'shl_i_ic_i (<<)' )
- is( $I1, "40", 'shl_i_ic_i (<<)' )
-.end
-
-.sub test_shl_i_ic_ic_shift_lt
- shl $I2, 0b001100, 2
- shl $I1, 0b010100, 1
- is( $I2, "48", 'shl_i_ic_ic (<<)' )
- is( $I1, "40", 'shl_i_ic_ic (<<)' )
-.end
-
-.sub test_shl_i_i_shift_lt
- set $I0, 0b001100
- set $I1, 0b010100
- set $I2, 1
- set $I3, 2
- shl $I0, $I2
- shl $I1, $I3
- is( $I0, "24", 'shl_i_i (<<)' )
- is( $I1, "80", 'shl_i_i (<<)' )
-.end
-
-.sub test_bxor_i_i_i_xor
- set $I0, 0b001100
- set $I1, 0b100110
- bxor $I2, $I0, $I1
- is( $I2, "42", 'bxor_i_i_i (^)' )
- bxor $I1, $I0, $I1
- is( $I1, "42", 'bxor_i_i_i (^)' )
- is( $I0, "12", 'bxor_i_i_i (^)' )
-.end
-
-.sub test_bxor_i_i_ic_xor
- set $I0, 0b001100
- bxor $I2, $I0, 0b100110
- is( $I2, "42", 'bxor_i_i_ic (^)' )
- is( $I0, "12", 'bxor_i_i_ic (^)' )
- bxor $I0, $I0, 0b100110
- is( $I0, "42", 'bxor_i_i_ic (^)' )
-.end
-
-.sub test_bxor_i_ic_xor
- set $I0, 0b001100
- set $I2, 0b000011
- bxor $I2, $I0
- is( $I2, "15", 'bxor_i|ic (^)' )
- set $I2, 0b001100
- bxor $I2, $I0
- is( $I2, "0", 'bxor_i|ic (^)' )
- set $I2, 0b101010
- bxor $I2, $I2
- is( $I2, "0", 'bxor_i|ic (^)' )
- set $I2, 0b010101
- bxor $I2, 0b000011
- is( $I2, "22", 'bxor_i|ic (^)' )
-.end
-
-.sub test_band_i_i_i_and
- set $I0, 0b001100
- set $I1, 0b010110
- band $I2, $I0,$I1
- is( $I2, "4", 'band_i_i_i (&)' )
- band $I1,$I0,$I1
- is( $I1, "4", 'band_i_i_i (&)' )
- is( $I0, "12", 'band_i_i_i (&)' )
-.end
-
-.sub test_band_i_i_ic_and
- set $I0, 0b001100
- band $I2, $I0,0b010110
- is( $I2, "4", 'band_i_i_ic (&)' )
- is( $I0, "12", 'band_i_i_ic (&)' )
- band $I0,$I0,0b010110
- is( $I0, "4", 'band_i_i_ic (&)' )
-.end
-
-.sub test_band_i_i_ic_and_2
- set $I0, 0b001100
- set $I2, 0b000011
- band $I2, $I0
- is( $I2, "0", 'band_i_i|ic (&)' )
-
- set $I2, 0b001100
- band $I2, $I0
- is( $I2, "12", 'band_i_i|ic (&)' )
-
- set $I2, 0b101010
- band $I2, $I2
- is( $I2, "42", 'band_i_i|ic (&)' )
-
- set $I2, 0b010101
- band $I2, 0b000011
- is( $I2, "1", 'band_i_i|ic (&)' )
-.end
-
-.sub test_bor_i_i_i
- set $I0, 0b001100
- set $I1, 0b010110
- bor $I2, $I0,$I1
- is( $I2, "30", 'bor_i_i_i (|)' )
- bor $I1,$I0,$I1
- is( $I1, "30", 'bor_i_i_i (|)' )
- is( $I0, "12", 'bor_i_i_i (|)' )
-.end
-
-.sub test_bor_i_i_ic
- set $I0, 0b001100
- bor $I2, $I0,0b010110
- is( $I2, "30", 'bor_i_i_ic (|)' )
- is( $I0, "12", 'bor_i_i_ic (|)' )
- bor $I0,$I0,0b010110
- is( $I0, "30", 'bor_i_i_ic (|)' )
-.end
-
-.sub test_bor_i_i_ic_2
- set $I0, 0b001100
- set $I2, 0b000011
- bor $I2, $I0
- is( $I2, "15", 'bor_i_i|ic (|) 2' )
- set $I2, 0b001100
- bor $I2, $I0
- is( $I2, "12", 'bor_i_i|ic (|) 2' )
- set $I2, 0b101010
- bor $I2, $I2
- is( $I2, "42", 'bor_i_i|ic (|) 2' )
- set $I2, 0b010101
- bor $I2, 0b000011
- is( $I2, "23", 'bor_i_i|ic (|) 2' )
-.end
-
-.sub test_bnot_i_i_2
- set $I0, 0b001100
- set $I1, 0b001100
- set $I31, 0b111111
- bnot $I2, $I0
- band $I2, $I2, $I31
- is( $I2, "51", 'bnot_i_i (~) 2' )
- bnot $I1, $I1
- band $I1, $I1, $I31
- is( $I1, "51", 'bnot_i_i (~) 2' )
- is( $I0, "12", 'bnot_i_i (~) 2' )
-.end
-
-.sub test_rot_i_i_ic_ic
- .include "iglobals.pasm"
- .local pmc interp # a handle to our interpreter object.
- interp = getinterp
- .local pmc config
- config = interp[.IGLOBALS_CONFIG_HASH]
- .local int intvalsize
- intvalsize = config['intvalsize']
-
- .local int int_bits
- int_bits = intvalsize * 8
-
- set $I0, 0b001100
-
- gt intvalsize, 4, do64bit
-
- rot $I1, $I0, 1, 32 # 1 left
- is( $I1, "24", 'rot_i_i_ic_ic' )
- rot $I1, $I0, -1, 32 # 1 right
- is( $I1, "6", 'rot_i_i_ic_ic' )
- goto END
-
- do64bit:
- rot $I1, $I0, 1, 64 # 1 left
- is( $I1, "24", 'rot_i_i_ic_ic' )
- rot $I1, $I0, -1, 64 # 1 right
- is( $I1, "6", 'rot_i_i_ic_ic' )
-
- END:
-.end
-
-## The PMC shl op will promote Integer to Bigint when needed. We can't stuff a
-## BigInt in an I register, but we can produce the same result modulo wordsize.
-## [Only we cheat by using the word size minus one, so that we don't have to
-## deal with negative numbers. -- rgr, 2-Jun-07.]
-.sub test_i_reg_shl_and_pmc_shl_are_consistent
-
- .include "iglobals.pasm"
- .local pmc interp # a handle to our interpreter object.
- interp = getinterp
- .local pmc config
- config = interp[.IGLOBALS_CONFIG_HASH]
- .local int gmp
- gmp = config['gmp']
-
- if gmp, runtest
- skip( 2, 'no BigInt lib found' )
- goto END
-
- runtest:
-
- ## Figure out the wordsize. We need integer_modulus because assigning a
- ## too-big BigInt throws an error otherwise.
- .include 'sysinfo.pasm'
- .local int i_bytes_per_word, i_bits_per_word_minus_one
- .local pmc bits_per_word_minus_one, integer_modulus
- i_bytes_per_word = sysinfo .SYSINFO_PARROT_INTSIZE
- i_bits_per_word_minus_one = 8 * i_bytes_per_word
- dec i_bits_per_word_minus_one
- bits_per_word_minus_one = new 'Integer'
- bits_per_word_minus_one = i_bits_per_word_minus_one
- integer_modulus = new 'BigInt'
- integer_modulus = 1
- integer_modulus <<= bits_per_word_minus_one
-
- ## Test shifting a positive number.
- new $P0, 'Integer'
- set $P0, 1000001
- test_shift($P0, integer_modulus)
-
- ## Test shifting a negative number.
- set $P0, -1000001
- test_shift($P0, integer_modulus)
- END:
-.end
-
-.sub test_shift
- .param pmc number
- .param pmc integer_modulus
- new $P1, 'Integer'
- set $P1, 1
- .local int i_number
- i_number = number
-
- ## Start the loop.
- loop:
- if $P1 > 100 goto done
- ## shift number and i_number into $P2 and $I2.
- shl $P2, number, $P1
- $I1 = $P1
- shl $I2, i_number, $I1
- ## compare in I registers.
- $P3 = mod $P2, integer_modulus
- $I3 = $P3
- if $I2 >= 0 goto pos_check
- ## The register op gave a negative result, but the modulus will always be
- ## positive. If the truncated result is correct, then the difference will
- ## be the most negative INTVAL, which is the only number for which -x==x.
- $I4 = $I3 - $I2
- $I5 = - $I4
- if $I4 == $I5 goto ok
- goto bad
- pos_check:
- if $I2 == $I3 goto ok
- bad:
- ok( 0, "oops; not ok: " )
- diag( i_number )
- diag( ' << ' )
- diag( $I1 )
- diag( ' gives I ' )
- diag( $I2 )
- diag( ' vs. P ' )
- diag( $P3 )
- diag( ".\n" )
- diag( $I5 )
- diag( "\n" )
- ok:
- ## set up for the next one
- inc $P1
- goto loop
- done:
- ok( 1, 'finished ok' )
-.end
-
-# Local Variables:
-# mode: pir
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/rm_cflags/t/op/trans.t
==============================================================================
--- branches/rm_cflags/t/op/trans.t Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/t/op/trans.t Tue Feb 16 21:05:51 2010 (r44046)
@@ -4,7 +4,7 @@
=head1 NAME
-t/op/bitwise.t - Bitwise Ops
+t/op/trans.t - Bitwise Ops
=head1 SYNOPSIS
@@ -12,7 +12,7 @@
=head1 DESCRIPTION
-Tests various bitwise logical operations.
+Tests various transcendental operations
=cut
@@ -20,7 +20,7 @@
.include 'test_more.pir'
plan(16)
-
+
test_sin_n()
test_sin_i()
test_cos_n()
@@ -44,17 +44,17 @@
.sub test_sin_n
.local num epsilon
epsilon = _epsilon()
-
+
$N0 = sin 0.0
is($N0, 0.0, "sin(0.0)", epsilon)
-
+
$N0 = sin 1.0
is($N0, 0.841471, "sin(1.0)", epsilon)
-
+
$N1 = _pi()
$N0 = sin $N1
is($N0, 0.0, "sin(pi)", epsilon)
-
+
$N1 = _pi()
$N1 = $N1 / 2
$N0 = sin $N1
@@ -64,10 +64,10 @@
.sub test_sin_i
.local num epsilon
epsilon = _epsilon()
-
+
$N0 = sin 0
is($N0, 0.0, "sin(0)", epsilon)
-
+
$N0 = sin 1
is($N0, 0.841471, "sin(1)", epsilon)
.end
@@ -75,17 +75,17 @@
.sub test_cos_n
.local num epsilon
epsilon = _epsilon()
-
+
$N0 = cos 0.0
is($N0, 1.0, "cos(0.0)", epsilon)
-
+
$N0 = cos 1.0
is($N0, 0.540302, "cos(1.0)", epsilon)
-
+
$N1 = _pi()
$N0 = cos $N1
is($N0, -1.0, "cos(pi)", epsilon)
-
+
$N1 = _pi()
$N1 = $N1 / 2
$N0 = cos $N1
@@ -95,10 +95,10 @@
.sub test_cos_i
.local num epsilon
epsilon = _epsilon()
-
+
$N0 = cos 0
is($N0, 1.0, "cos(0)", epsilon)
-
+
$N0 = cos 1
is($N0, 0.540302, "cos(1)", epsilon)
.end
@@ -106,22 +106,22 @@
.sub test_tan_n
.local num epsilon
epsilon = _epsilon()
-
+
$N0 = tan 0.0
is($N0, 0.0, "tan(0.0)", epsilon)
-
+
$N0 = tan 1.0
is($N0, 1.557408, "tan(1.0)", epsilon)
-.end
+.end
.sub test_tan_i
.local num epsilon
epsilon = _epsilon()
-
+
$N0 = tan 0
is($N0, 0.0, "tan(0)", epsilon)
-
+
$N0 = tan 1
is($N0, 1.557408, "tan(1)", epsilon)
-.end
+.end
Modified: branches/rm_cflags/t/pmc/bigint.t
==============================================================================
--- branches/rm_cflags/t/pmc/bigint.t Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/t/pmc/bigint.t Tue Feb 16 21:05:51 2010 (r44046)
@@ -1,5 +1,5 @@
#!parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -20,7 +20,7 @@
.include 'test_more.pir'
- plan(45)
+ plan(34)
check_libgmp_good()
set_and_get()
@@ -35,8 +35,6 @@
interface()
boolean()
pi()
- left_shift()
- right_shift()
bugfixes()
.end
@@ -79,14 +77,14 @@
NoLibGMP:
say 'No BigInt Lib configured'
- skip(45)
+ skip(34)
exit 0
OldLibGMP:
print 'Buggy GMP version ['
print $S3
say '] with huge digit multiply - please upgrade'
- skip(45)
+ skip(34)
exit 0
ret:
@@ -935,348 +933,6 @@
ret:
.end
-.sub left_shift
- $I1 = 1
-
- $P0 = new ['BigInt']
- $P1 = new ['BigInt']
-
-# shl with a positive shift
- $P0 = 2
- $P1 = 2
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '8', OK1
- $I1 = 0
- say 'shl(bigint 2,bigint 2) did not return 8'
-OK1:
- $P0 = '100000000000'
- $P1 = 10
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '102400000000000', OK2
- $I1 = 0
- say 'shl(bigint 100000000000,bigint 10) did not return 102400000000000'
-OK2:
-
-# shl with a negative shift
- $P0 = 8
- $P1 = -2
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- is($S0, '2', 'shl(bigint, -bigint)')
- $P0 = '102400000000000'
- $P1 = -10
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '100000000000', OK3
- $I1 = 0
- say 'shl(bigint 102400000000000,bigint -10) did not return 100000000000'
-OK3:
-
- ok($I1, 'shl(bigint, +bigint)')
- $I1 = 1
-
-# shl_int with a positive shift
- $P0 = 2
- $P1 = 1
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '4', OK4
- $I1 = 0
- say 'shl(bigint 2,integer 1) did not return 4'
-OK4:
- $P0 = '100000000000'
- $P1 = 1
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '200000000000', OK5
- $I1 = 0
- say 'shl(bigint 100000000000,integer 1) did not return 200000000000'
-OK5:
- $P0 = '100000000000'
- $P1 = 10
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '102400000000000', OK6
- $I1 = 0
- say 'shl(bigint 100000000000,integer 10) did not return 102400000000000'
-OK6:
-
-# shl_int with a negative shift
-
- $P0 = 4
- $P1 = -1
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '2', OK7
- $I1 = 0
- say 'shl(bigint 4,integer -1) did not return 2'
-OK7:
- $P0 = '200000000000'
- $P1 = -1
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '100000000000', OK8
- $I1 = 0
- say 'shl(bigint 200000000000,integer -1) did not return 100000000000'
-OK8:
- $P0 = '102400000000000'
- $P1 = -10
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S0 = $P2
- eq $S0, '100000000000', OK9
- $I1 = 0
- say 'shl(bigint 102400000000000,integer -10) did not return 100000000000'
-OK9:
- ok($I1, 'shl(bigint,integer)')
- $I1 = 1
-
-# shl_int throws an error when promotion is disabled
-
- errorson .PARROT_ERRORS_OVERFLOW_FLAG
- $P0 = new ['Integer']
- $P0 = 1000001
- $P1 = new ['Integer']
- $P1 = 10
-
- ## shift by 10 bits . . .
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S1 = $P2
- $S2 = typeof $P2
- eq $S2, 'Integer', OK11
- $I1 = 0
- print 'shl(integer 1000001,integer 10) did not return an Integer PMC; got a '
- print $S2
- say ' instead.'
-
-OK11:
- eq $S1,'1024001024', OK12
- $I1 = 0
- print 'shl(integer 1000001,integer 10) did not return 1024001024; got '
- print $S1
- say ' instead.'
-OK12:
-
- ## then by 60 bits.
- $P0 = 1000001
- $P1 = 60
- push_eh E1
- $I1 = 1
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $I1 = 0
- $S1 = $P2
- $S2 = typeof $P2
- print 'Failed to throw exception; return type '
- print $S2
- print ', return value '
- say $P1
-E1:
- pop_eh
- get_results '0', $P2
- $S0 = $P2
- eq $S0, 'Integer overflow', OK13
- $I1 = 0
- say 'shl(integer 1000001, integer 60) throws exception, but wrong type'
-OK13:
- ok($I1, 'shl(integer 1000001, integer 60) throws "Integer overflow" exception')
- $I1 = 1
-
-# shl_int and i_shl_int promote Integer to Bigint
-
- errorsoff .PARROT_ERRORS_OVERFLOW_FLAG
- ## shift left by 20 bits ...
- $P0 = new ['Integer']
- $P0 = 1000001
- $P1 = new ['Integer']
- $P1 = 20
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- ## ... then by another 40 bits (total 60) in place.
- $P1 = 40
- $P2 = shl $P2, $P1
- $S1 = $P2
- $S2 = typeof $P2
- eq $S2, 'BigInt', OK14
- $S1 = ''
-OK14:
- is($S1, '1152922657528351582846976', 'shl(shl(integer 1000001, 20), 40) => bigint 1152922657528351582846976')
-
-# shl_int by 64 bits also promotes to Bigint
-## The C << and >> ops take the right arg modulo the word size in bits (at least
-## on all the systems I have available), so both 32- and 64-bit systems treat
-## shifting by 64 bits as shifting by zero.
- $P0 = new ['Integer']
- $P0 = 1000001
- $P1 = new ['Integer']
- $P1 = 64
- $P2 = new ['Integer']
- $P2 = shl $P0, $P1
- $S1 = $P2
- $S2 = typeof $P2
- eq $S2, 'BigInt', OK15
- $S1 = ''
-OK15:
- is($S1, '18446762520453625325551616', 'shl(integer 1000001, 64) => bigint 18446762520453625325551616')
-.end
-
-.sub right_shift
- $I1 = 1
-#shr_int and i_shr_int with a neg shift promote Integer to Bigint
-
- $P0 = new ['Integer']
- $P0 = 1000001
- $P1 = new ['Integer']
- $P1 = -10
- $P2 = new ['Integer']
- ## shift by 10 bits . . .
- $P2 = shr $P0, $P1
-# $S2 = typeof $P2
-# ne $S2, 'Integer', OK2
-
- ## then by another 50 bits (total 60) in place.
- $P1 = -50
- $P2 = shr $P1
- $S1 = $P2
- $S2 = typeof $P2
- eq $S2, 'BigInt', OK2
- $S1 = ''
-OK2:
- is($S1, '1152922657528351582846976', 'shr(shr(integer 1000001, integer -10), -50) => bigint 1152922657528351582846976')
-
-# shr_bigint
- $P0 = new ['BigInt']
- $P0 = 8
- $P1 = new ['BigInt']
- $P1 = 2
- $P2 = new ['BigInt']
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '2', OK3
- $I1 = 0
- say 'shr(bigint 8, bigint 2) did not return 2'
-OK3:
-
- $P0 = '102400000000000'
- $P1 = 10
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '100000000000', OK4
- $I1 = 0
- say 'shr(bigint 102400000000000, bigint 10) did not return 100000000000'
-OK4:
- ok($I1, 'shr(bigint, +bigint)')
- $I1 = 1
-
-# shr_bigint with a negative shift
-## cf the shl_bigint case.
-
- $P0 = new ['BigInt']
- $P0 = 2
- $P1 = new['BigInt']
- $P1 = -2
- $P2 = new ['BigInt']
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '8', OK5
- $I1 = 0
- say 'shr(bigint 2, bigint -2) did not return 8'
-OK5:
-
- $P0 = '100000000000'
- $P1 = -10
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '102400000000000', OK6
- $I1 = 0
- say 'shr(bigint 100000000000, bigint -10) did not return 102400000000000'
-OK6:
- ok($I1, 'shr(bigint, -bigint)')
- $I1 = 1
-
-# shr_int
- $P0 = new ['BigInt']
- $P0 = 4
- $P1 = new ['Integer']
- $P1 = 1
- $P2 = new ['BigInt']
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '2', OK7
- $I1 = 0
- say 'shr(bigint 4, integer 1) did not return 2'
-OK7:
-
- $P0 = '200000000000'
- $P1 = 1
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '100000000000', OK8
- $I1 = 0
- say 'shr(bigint 200000000000, integer 1) did not return 100000000000'
-OK8:
-
- $P0 = '102400000000000'
- $P1 = 10
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '100000000000', OK9
- $I1 = 0
- say 'shr(bigint 102400000000000, integer 10) did not return 100000000000'
-OK9:
-
- ok($I1,'shr(bigint, +integer)')
- $I1 = 1
-
-# shr_int with a negative shift
-## cf the shl_int case.
-
- $P0 = new ['BigInt']
- $P0 = 2
- $P1 = new ['Integer']
- $P1 = -1
- $P2 = new ['BigInt']
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '4', OK10
- $I1 = 0
- say 'shr(bigint 2, int -1) did not return 4'
-OK10:
-
- $P0 = '100000000000'
- $P1 = -1
- $P2 = new ['BigInt']
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '200000000000', OK11
- $I1 = 0
- say 'shr(bigint 100000000000, int -1) did not return 200000000000'
-OK11:
-
- $P1 = -10
- $P2 = new ['BigInt']
- $P2 = shr $P0, $P1
- $S0 = $P2
- eq $S0, '102400000000000', OK12
- $I1 = 0
- say 'shr(bigint 100000000000,int -10) did not return 102400000000000'
-OK12:
-
- ok($I1,'shr(bigint, -integer)')
-.end
-
.sub bugfixes
$P0 = new ['BigInt']
Modified: branches/rm_cflags/t/pmc/complex.t
==============================================================================
--- branches/rm_cflags/t/pmc/complex.t Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/t/pmc/complex.t Tue Feb 16 21:05:51 2010 (r44046)
@@ -21,7 +21,7 @@
.include 'fp_equality.pasm'
.include "iglobals.pasm"
- plan(467)
+ plan(458)
string_parsing()
exception_malformed_string__real_part()
@@ -53,7 +53,6 @@
test_sub()
test_i_sub()
sprintf_with_a_complex()
- pow_with_complex_numbers()
e_raised_pi_time_i__plus_1_equal_0()
ln_of_complex_numbers()
exp_of_complex_numbers()
@@ -641,33 +640,6 @@
.sprintf_is( "%.3f%+.3fi", "0+i", "0.000+1.000i" )
.end
-.macro pow_test_is(base, power, message)
- c = .base
- c2 = .power
- c3 = pow c, c2
- $S0 = sprintf "%.6f%+.6fi", c3
- $S1 = .message
- is( $S0, $S1, $S1 )
-.endm
-
-.sub pow_with_complex_numbers
- .local pmc c, c2, c3
- c = new ['Complex']
- c2 = new ['Complex']
- c3 = new ['Complex']
- .pow_test_is( "i", "i", "0.207880+0.000000i" )
- .pow_test_is( "i", "2", "-1.000000+0.000000i" )
- .pow_test_is( "2i", "2", "-4.000000+0.000000i" )
- .pow_test_is( "2+2i", "2+2i", "-1.452505-0.809890i" )
- .pow_test_is( "i", "0.5i", "0.455938+0.000000i" )
- .pow_test_is( 2, "2i", "0.183457+0.983028i" )
- c2 = new ['Integer']
- .pow_test_is( "2i", 2, "-4.000000+0.000000i" )
- .pow_test_is( "2", 4, "16.000000+0.000000i" )
- c2 = new ['Float']
- .pow_test_is( "2i", 0.5, "1.000000+1.000000i" )
-.end
-
.sub e_raised_pi_time_i__plus_1_equal_0
.local pmc c, c2, c3
c = new ['Complex']
Modified: branches/rm_cflags/t/pmc/multidispatch.t
==============================================================================
--- branches/rm_cflags/t/pmc/multidispatch.t Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/t/pmc/multidispatch.t Tue Feb 16 21:05:51 2010 (r44046)
@@ -9,7 +9,7 @@
use Test::More;
use Parrot::Test::Util 'create_tempfile';
-use Parrot::Test tests => 48;
+use Parrot::Test tests => 45;
=head1 NAME
@@ -239,88 +239,6 @@
42
OUTPUT
-pasm_output_is( <<'CODE', <<'OUTPUT', "PASM INTVAL - new result", todo => 'TT #452' );
-.include "datatypes.pasm"
- get_global P10, "Integer_bxor_Intval"
- add_multi "bitwise_xor_int", "Integer,INTVAL,PMC", P10
-
- new P1, ['Integer']
- set P1, 3
- bxor P9, P1, 2
- print P9
- print "\n"
- end
-.pcc_sub Integer_bxor_Intval:
- get_params "0,0,0", P5, I5, P6
- print "ok\n"
- set I10, P5
- bxor I11, I10, I5
- new P6, ['Integer']
- set P6, I11
- set_returns "0", P6
- returncc
-CODE
-ok
-1
-OUTPUT
-
-pasm_output_is( <<'CODE', <<'OUTPUT', "PASM INTVAL - existing result", todo => 'TT #452' );
-.include "datatypes.pasm"
- get_global P10, "Integer_bxor_Intval"
- add_multi "bitwise_xor_int", "Integer,INTVAL,PMC", P10
-
- new P0, ['Integer']
- new P1, ['Integer']
- set P1, 3
- bxor P0, P1, 2
- print P0
- print "\n"
- end
-.pcc_sub Integer_bxor_Intval:
- get_params "0,0,0", P5, I5, P6
- print "ok\n"
- set I10, P5
- bxor I11, I10, I5
- set P6, I11
- set_returns "0", P6
- returncc
-CODE
-ok
-1
-OUTPUT
-
-pasm_output_is( <<'CODE', <<'OUTPUT', "PASM INTVAL - mixed", todo => 'TT #452' );
-.include "datatypes.pasm"
- get_global P10, "Integer_bxor_Intval"
- add_multi "bitwise_xor_int", "Integer,INTVAL,PMC", P10
-
- new P0, ['Integer']
- new P1, ['Integer']
- set P1, 3
- bxor P0, P1, 2
- print P0
- print "\n"
- bxor P9, P1, 2
- print P9
- print "\n"
- end
-.pcc_sub Integer_bxor_Intval:
- get_params "0,0,0", P5, I5, P6
- print "ok\n"
- set I10, P5
- bxor I11, I10, I5
- new P6, ['Integer']
- set P6, I11
- set_returns "0", P6
- returncc
-
-CODE
-ok
-1
-ok
-1
-OUTPUT
-
pir_output_is( <<'CODE', <<'OUT', "first dynamic MMD call" );
.sub main :main
Modified: branches/rm_cflags/t/pmc/string.t
==============================================================================
--- branches/rm_cflags/t/pmc/string.t Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/t/pmc/string.t Tue Feb 16 21:05:51 2010 (r44046)
@@ -230,7 +230,7 @@
new $P1, ['Float']
set $P1, 6.5
repeat $P2, $P0, $P1
- is( $P2, 'yyyyyy', 'Float arg to repeat' )
+ is( $P2, 'yyyyyy', 'Float arg to repeat' )
set $P0, "z"
new $P1, ['String']
@@ -256,7 +256,7 @@
new $P1, ['Float']
set $P1, 6.5
repeat $P3, $P0, $P1
- is( $P3, 'yyyyyy', 'Float arg to repeat' )
+ is( $P3, 'yyyyyy', 'Float arg to repeat' )
set $P0, "z"
new $P1, ['String']
@@ -1026,11 +1026,11 @@
# Get
$S0 = s[0]
is($S0, 'B', 'Get string by index')
-
+
$I0 = s[1]
$I1 = ord 'A'
is($I0, $I1, 'Get integer by index')
-
+
$P0 = s[2]
is($P0, 'R', 'Get PMC by index')
Modified: branches/rm_cflags/t/run/options.t
==============================================================================
--- branches/rm_cflags/t/run/options.t Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/t/run/options.t Tue Feb 16 21:05:51 2010 (r44046)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2005-2007, Parrot Foundation.
+# Copyright (C) 2005-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -20,7 +20,7 @@
use warnings;
use lib qw( lib . ../lib ../../lib );
-use Test::More tests => 26;
+use Test::More tests => 27;
use Parrot::Config;
use File::Temp 0.13 qw/tempfile/;
use File::Spec;
@@ -80,7 +80,7 @@
for my $val (qw/ slow fast bounds trace /) {
for my $opt ( '-R ', '--runcore ', '--runcore=' ) {
$cmd = qq{"$PARROT" $opt$val "$second_pir_file" $redir};
- is( qx{$cmd}, "second\n", "<$opt$val> option" );
+ is( qx{$cmd}, "second\n", "<$opt$val> option)" ) or diag $cmd;
}
}
@@ -93,6 +93,9 @@
## TT #1150 test remaining options
+# Test --runtime-prefix
+like( qx{$PARROT --runtime-prefix}, qr/^.+$/, "--runtime-prefix" );
+
# clean up temporary files
unlink $first_pir_file;
unlink $second_pir_file;
Modified: branches/rm_cflags/tools/dev/vtablize.pl
==============================================================================
--- branches/rm_cflags/tools/dev/vtablize.pl Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/tools/dev/vtablize.pl Tue Feb 16 21:05:51 2010 (r44046)
@@ -63,7 +63,6 @@
s/^(\s*)(PMC\s+\*get_pmc_keyed\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*get_pmc_keyed_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*get_pmc_keyed_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*get_bignum\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*slice\(PMC\s+\*\w*,\s+INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+\*get_pointer\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+\*get_pointer_keyed\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
@@ -157,58 +156,12 @@
s/^(\s*)(void\s+i_cmodulus\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_cmodulus_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_cmodulus_float\(FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*pow\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*pow_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*pow_float\(FLOATVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_pow\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_pow_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_pow_float\(FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+increment\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+decrement\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*absolute\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_absolute\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*neg\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_neg\(\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_or\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_or_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_or\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_or_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_xor\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_xor_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_xor\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_xor_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_ors\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_ors_str\(STRING\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_ors\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_ors_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_xors\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_xors_str\(STRING\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_xors\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_xors_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_and\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_and_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_and\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_and_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_ands\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_ands_str\(STRING\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_ands\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_ands_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_not\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_not\(\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_nots\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_nots\(\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_shl\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_shl_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_shl\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_shl_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_shr\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_shr_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_shr\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_shr_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_lsr\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(PMC\s+\*bitwise_lsr_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_lsr\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
-s/^(\s*)(void\s+i_bitwise_lsr_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+is_equal\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+is_equal_num\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+is_equal_string\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
Modified: branches/rm_cflags/tools/util/release.json
==============================================================================
--- branches/rm_cflags/tools/util/release.json Tue Feb 16 20:51:03 2010 (r44045)
+++ branches/rm_cflags/tools/util/release.json Tue Feb 16 21:05:51 2010 (r44046)
@@ -2,8 +2,8 @@
"release.version" : "2.0.0",
"release.name" : "Inevitable",
"release.day" : "Tuesday",
- "release.date" : "19 January 2010",
- "release.nextdate" : "16 Februuary 2010",
+ "release.date" : "16 Februuary 2010",
+ "release.nextdate" : "16 March 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" : "14 February 2010",
+ "bugday.date" : "13 March 2010",
"wiki.root" : "https://trac.parrot.org/parrot/wiki/",
- "wiki.bugday" : "bug_day_2010_02_14",
+ "wiki.bugday" : "bug_day_2010_03_13",
"cpan.search" : "http://search.cpan.org/dist/parrot",
- "ftp.path" : "ftp://ftp.parrot.org/pub/parrot/releases/stable/2.0.0/",
+ "ftp.path" : "ftp://ftp.parrot.org/pub/parrot/devel/stable/2.1.0/",
"subversion.root" : "http://subversion.tigris.org/",
"svk.root" : "http://svk.bestpractical.com/"
}
More information about the parrot-commits
mailing list